SQL Server 每日定期備份與定期刪除舊有備份檔

SQL Server 每日定期備份與定期刪除舊有備份檔

SQL Server 資料庫備份是將存放在資料庫裡面的資料,轉成單一檔案保存,通常是副檔名為 bak 的檔案,備份後的檔案可以保留一陣子,如果將來資料庫或是伺服器發生問題時,我們可以將備份資料再還原,就可以救回重要的資料。

而定期備份資料庫是專案管理或資料維護非常重要的一步,因為我們無法保證資料庫或伺服器何時會出現問題,可能硬體損壞也可能被駭客入侵,所以當網站或專案開始運作的時候,就要開始定期備份資料庫,以免重要資料消失。

接下來我會示範如何在 SQL Server 內設定每日定期備份,並建立第 2 個排程為刪除舊有備份。

要刪除舊有備份的原因是防止硬碟容量成長太快,每一次備份都會增加硬碟空間,如果空間有限,對於太舊的備份檔就要適時刪除,而舊有備份要還原的機率也很小。

操作系統: Windows Server 2019
資料庫版本: SQL Server 2019 Developer


每日定期備份操作

SQL Server 的操作工具是 Microsoft SQL Server Management Studio (SSMS) ,如果沒有工具的話,可到此下載

打開 SSMS 之後,執行「管理 > 維護計劃 (按右鍵) > 新增維護計劃」。

每日定期備份操作

輸入計劃名稱

設定排程時間

點擊日曆圖示開啟排程時間

每日定期備份操作

設定頻率及時間,我選擇為每日排程,於上午 12 點執行。完成後按下「確定」。

每日定期備份操作

設定備份項目

接著要選擇執行項目,在左上方的「工具箱 > 維護計劃工作 > 備份資料庫工作」

每日定期備份操作

將「備份資料庫工作」拖拉到維護計劃中。

設定備份項目

雙點擊「備份資料庫工作」,在資料庫中下拉再勾選要備份的資料庫。

設定備份項目

在「目的地」頁籤中選擇要存放的位置,可存在本機、網路芳鄰或是 NAS 。完成後按「確定」。

設定備份項目

設定完成後再「儲存」計劃就完成了。




測試備份

設定完成之後,可以初次測試,在已新增的備份名稱(看不到可以先按重整),按右鍵選「執行」。

測試成功。

檢查是否有檔案出現。

有檔案出現表示我們的每日備份資料庫計劃已經成功了喔。

刪除舊有備份檔

刪除舊有備份檔跟建立備份排程是相似的,都需要啟動一個新排程。
執行「管理 > 維護計劃 (按右鍵) > 新增維護計劃」

刪除舊有備份檔

輸入名稱「刪除舊有備份檔」

設定排程時間

點擊日曆圖示開啟排程時間

刪除舊有備份檔

設定頻率及時間,我一樣選擇為每日排程,但時間錯開備份時間。完成後按下「確定」。

刪除舊有備份檔

設定清除項目

接著要選擇執行項目,執行左上方的「工具箱 > 維護計劃工作 > 維護清除工作」,拖拉至維護內容。

刪除舊有備份檔

雙擊「維護清除工作」,接著選擇檔案位置,副檔名為 bak。
檔案存在時間就選擇想刪除多久以前的檔案,時間單位有「小時、天、週、月、年」。完成後按「確定」。

刪除舊有備份檔

設定完成後再「儲存」計劃就完成了。




問題排除

如果新增維護計劃時,出現問題: 「Agent XPs’ 元件已經由此伺服器的安裝性組態關閉。…」

此原因為維護計劃的執行服務未啟動,只要啟動 SQL Server Agent 服務就可以了。

解決方式:

開啟「設定管理員」,在 2017 以前版本名稱為「組態管理員」,也是同樣的功能。

找到「SQL Server 服務 > SQL Server Agent(MSSQLSERVER)」。

SQL Server Agent

按右鍵選「啟動」。

SQL Server Agent

這樣就可以正常使用維護計劃了,但因為 SQL Server Agent 預設為手動啟動,所以要設定成自動啟動,下次就不會再發生同樣的問題。
在 SQL Server Agent 按右鍵選內容。

在「服務 > 啟動模式」選擇「自動」。

SQL Server Agent

這樣就完成了。


重點整理

  1. 定期備份資料庫是專案管理或資料維護非常重要的一步
  2. 使用 SSMS 建立維護計劃
  3. 設定時間排程,建議每日一次
  4. 建立維護工作為備份資料庫
  5. 刪除備份檔一樣是維護計劃
  6. 刪除備份檔一樣為每日執行
  7. 刪除備份檔可選擇保留天數

相關學習文章

如果你在學習上有不懂的地方,需要諮詢服務,可以參考站長服務,我想辨法解決你的問題
如果文章內容有過時、不適用或錯誤的地方,幫我在下方留言通知我一下,謝謝

加入社團一起討論

關注我的 IG

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

3 × 3 =


The reCAPTCHA verification period has expired. Please reload the page.