在 Azure SQL Database 當中,系統預設就會自動幫你執行備份,不需要手動建立備份排程。它會每週進行一次完整備份、每 12 到 24 小時進行一次差異備份,並且每 5 到 10 分鐘進行一次交易記錄備份。
如果你想要手動微調整備份設定、延長保留時間,或是建立一個當下的資料庫複本,可以透過以下幾種常見的方法來達成。
方法一:調整自動備份的保留時間與備份策略
如果你需要讓備份保留更久,可以到 Azure Portal 調整短期或長期保留原則。
- 登入 Azure Portal 並且找到你的 Azure SQL Database。
- 在左側選單的 Data management 區塊中,點選 Backups。
- 點選畫面上方的 Configure policies。
- 調整你的 Short-term retention(短期保留,可設定 1 到 35 天)或是設定 Long-term retention(長期保留,最長可保存 10 年)。
- 在這個頁面中,你也可以更改 Backup storage redundancy(備份儲存體備援),選擇要使用本地備援、區域備援還是異地備援。
方法二:建立即時的資料庫複本
因為 Azure SQL 無法直接下達傳統的 BACKUP DATABASE 指令,如果你需要在進行重大更新前手動留底,最快的方式是直接複製一個新的資料庫。
透過 Azure Portal 操作
- 在資料庫的 Overview(概觀)頁面。
- 點選上方的 Copy(複製)按鈕。
- 輸入新資料庫的名稱、選擇目的地伺服器,系統就會在背景開始複製。
透過 T-SQL 指令操作
你也可以直接連線到資料庫,執行以下指令來進行複製:
SQL
CREATE DATABASE 新資料庫名稱 AS COPY OF 原資料庫名稱;
方法三:匯出為 BACPAC 檔案
如果你需要將備份檔案下載到地端(On-premises)環境或是移動到其他帳號,可以將資料庫匯出成 BACPAC 檔案。
- 在資料庫的 Overview(概觀)頁面。
- 點選畫面上方的 Export(匯出)。
- 輸入檔名,並選擇你要用來存放這個檔案的 Azure Storage Account(儲存體帳戶)與容器(Container)。
- 輸入 SQL Server 的管理員帳號與密碼,點選確定後系統就會開始將資料與結構打包成 BACPAC 檔案。
how to enable to my database?
這取決於你是要啟用自動備份功能、長期備份保留(LTR),還是要啟用資料庫複本。
由於 Azure SQL Database 在建立時就已經預設自動啟用了基礎備份(每週完整備份、每天差異備份、每五分鐘日誌備份),如果你需要確認它是否正常運作,或是想要啟用更進階的備份功能,可以透過以下幾種方式來完成。
檢查並確認自動備份是否啟用
系統內建的自動備份不需要額外開關,但你可以透過 Azure Portal 確認它的保留天數與狀態。
- 登入 Azure Portal,並進入你的 Azure SQL Database 頁面。
- 在左側選單的 Data management 分類下,點選 Backups。
- 切換到 Available backups 標籤頁,在這裡你就可以看到目前資料庫已經自動產生的備份列表與可還原的時間點。
啟用長期備份保留(LTR)
如果你需要將備份保留數個月或數年(預設的自動備份最多只保留 35 天),你就需要手動啟用長期保留原則。
- 在剛才的 Backups 頁面中,將標籤頁切換到 Retention policies。
- 勾選你需要調整的資料庫,並點選上方的 Configure policies。
- 在右側跳出的視窗中,勾選 Long-term retention。
- 根據需求填入你要保留的時間。例如:
- Weekly LTR backup:每週備份要保留幾週。
- Monthly LTR backup:每月第一個備份要保留幾個月。
- Yearly LTR backup:每年第一個備份要保留幾年。
- 設定完成後點選 Apply,長期備份就會開始依據排程自動執行。
透過指令直接啟用並複製一個新資料庫
如果你希望立刻啟用一個一模一樣的獨立資料庫作為測試或臨時備份,你可以直接使用 T-SQL 或是 Azure CLI 指令。
使用 T-SQL 指令
利用 SQL Server Management Studio(SSMS)或是 Azure 上的 Query editor 連線到你的主資料庫(或是 master 資料庫),執行以下指令:
SQL
CREATE DATABASE 備份資料庫名稱 AS COPY OF 原資料庫名稱;
使用 Azure CLI 指令
如果你習慣使用命令列工具,也可以直接在終端機輸入這行指令,系統就會立刻在同一個伺服器上啟用並複製一個新的資料庫:
Bash
az sql db copy --dest-name 備份資料庫名稱 --name 原資料庫名稱 --resource-group 你的資源群組名稱 --server 你的伺服器名稱
我有些資料庫可以LTR, 有些沒, 沒的database how to enable LTR?
看來你目前所在的頁面是 可用的備份 標籤頁。在這個頁面中,只有 已經成功產生長期備份 並且檔案還存在儲存體當中的資料庫,才會在 可用的 LTR 備份 欄位顯示 管理,其餘還沒有備份檔案的資料庫則會顯示 無。
如果你想要為其他顯示 無 的資料庫啟用長期保留原則(LTR),你需要切換到另一個標籤頁進行設定。請依照以下步驟操作。
啟用長期保留原則(LTR)設定步驟
- 點選畫面上方,在 可用的備份 左邊或右邊的 保留原則(Retention policies)標籤頁。
- 進入 保留原則 頁面後,你會看到所有的資料庫列表。
- 勾選你想要啟用 LTR 的資料庫(例如
NYCUAUTH、portal-stg或其他目前顯示無的資料庫)。 - 勾選後,點選列表上方出現的 配置原則(Configure policies)按鈕。
- 此時畫面右側會跳出一個設定視窗,請找到 長期留存(Long-term retention)的區塊。
- 根據你的需求,自由填入以下欄位來啟用它:
- 每週 LTR 備份:勾選並填入希望每週的備份要保留幾週或幾個月。
- 每月 LTR 備份:勾選並指定每個月第一個備份要保留多久。
- 每年 LTR 備份:勾選並指定每年第一個備份要保留幾年。
- 設定完成後,點選最下方的 套用(Apply)或 儲存 按鈕。
注意事項
當你完成設定並儲存之後,因為 Azure SQL Database 是依照你設定的排程(例如每週或每月)在背景自動執行長期備份,所以它不會立刻在 可用的備份 標籤頁中從 無 變成 管理。
系統必須等到下一個排程時間點到了,並且成功將第一份 LTR 備份檔案打包存入儲存體之後,該資料庫才會在這個頁面上顯示 管理 與上一次的備份時間。