一、背景
之前寫過一篇關於備份的文章:SQL Server 維護計划實現數據庫備份,上面文章使用完整備份和差異備份基本上能解決數據庫備份的問題,但是為了保障數據更加安全,我們需要再次完善我們的備份計划;
下面這篇文章主要加入了日志備份,並對設計備份的頻率和設計命名規范等問題進行實戰;
二、最佳實踐
(一) 備份計划
1) 每周星期日的2:00:00執行數據庫的完整備份;
2) 每周星期一至星期六每天的2:00:00執行數據庫的差異備份;
3) 每天在8:00:00和23:59:59之間、每1小時執行數據庫的日志備份;
4) 每個月的最后一個星期日的1:00:00執行數據庫的完整備份;
(二) 計划講解
1. 根據備份文件的不同,我創建了4個文件用於存放備份文件:(Medusa是數據庫名)
1) Medusa_Full:用於存放完整備份文件;
2) Medusa_Diff:用於存放差異備份文件;
3) Medusa_Log:用於存放日志備份文件;
4) Medusa_Save:用於存放保留備份文件;
上面的4個文件夾與備份計划的4個步驟是一 一對應的;
(Figure1:文件夾命名規范)
2. 創建名為Medusa的維護計划,並創建如下圖的4個子計划:
(Figure2:子計划列表)
3. 設置【清除歷史記錄】、【清除維護】的保留時間:
1) Subplan_Full:保留完整備份文件4周;(1個*4周=4個文件)
2) Subplan_Diff:保留差異備份文件2周;(6個*2周=12個文件)
3) Subplan_Log:保留日志備份文件1周;(16個*7天=112個文件)
4) Subplan_Save:保留備份文件1年;(1個*12月=12個文件)
上面的時間策略需要根據數據庫的安全級別、磁盤空間、業務特性等情況共同解決的,你可以根據的實際情況進行修改和調整;
4. 下面的Figure3、Figure4、Figure5、Figure6是具體設置的效果圖:
(Figure3:子計划Full)
(Figure4:子計划Diff)
(Figure5:子計划Log)
(Figure6:子計划Save)
5. 保存維護計划后,在SQL Server代理的作業中會生成Figure7的作業列表:
(Figure7:Job列表)
6. 執行一段時間后,在各個文件夾中會生成一系列的文件:
(Figure8:Full文件)
(Figure9:Diff文件)
(Figure10:Log文件)
(Figure11:Save文件)
7. 有了這些文件之后,我們可以雖然還原到某個時間點上的數據,數據的差異為一個小時,例如你是在2012-12-11的15:48:00分誤操作了數據庫,我能回滾到最接近這個時間的是:2012-12-11的15:00:00
(Figure12:還原完整備份文件)
(Figure13:還原差異、日志備份文件)
在使用SSMS的還原的時候,系統會幫你找到最近的備份文件,並且進行了勾選,要完成上面的還原,根據我們之前的備份計划,我們需要文件:
1) 完整備份文件:Barfoo.Medusa_backup_2012_12_09_020005_0612500.bak
2) 差異備份文件:Barfoo.Medusa_backup_2012_12_11_020005_8354977.bak
3) 日志備份文件:
Barfoo.Medusa_backup_2012_12_11_080005_4808937.trn
Barfoo.Medusa_backup_2012_12_11_090005_4816881.trn
Barfoo.Medusa_backup_2012_12_11_100005_6543553.trn
Barfoo.Medusa_backup_2012_12_11_110005_7645233.trn
Barfoo.Medusa_backup_2012_12_11_120005_8434417.trn
Barfoo.Medusa_backup_2012_12_11_130004_9379977.trn
Barfoo.Medusa_backup_2012_12_11_140005_2044137.trn
Barfoo.Medusa_backup_2012_12_11_150005_2208329.trn
還原的步驟就是先還原完整備份文件,接着還原差異備份文件,再依次執行日志備份文件,這樣就能回滾到你想要的時間點:2012-12-11的15:00
三、注意事項
1. 備份計划中“每個月的最后一個星期日的1:00:00執行數據庫的完整備份”這個可以換成“僅復制備份(COPY_ONLY)”,這樣就需要在維護計划中使用T-SQL進行備份;
2. 維護計划的可以通過T-SQL腳本生成嘛?
sp_add_maintenance_plan
sp_delete_maintenance_plan_db
sp_add_maintenance_plan_db
sp_delete_maintenance_plan_job
sp_add_maintenance_plan_job
sp_help_maintenance_plan
sp_delete_maintenance_plan
四、參考文獻
源文來源於
http://www.cnblogs.com/Leo_wl/p/3288518.html#top