SQL Server 2008 維護計划實現數據庫備份(最佳實踐)


一、背景

之前寫過一篇關於備份的文章: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個步驟是一 一對應的;

clip_image001

(Figure1:文件夾命名規范)

 

2. 創建名為Medusa的維護計划,並創建如下圖的4個子計划:

clip_image003

(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是具體設置的效果圖:

clip_image004

(Figure3:子計划Full)

clip_image005

(Figure4:子計划Diff)

clip_image006

(Figure5:子計划Log)

clip_image007

(Figure6:子計划Save)

 

5. 保存維護計划后,在SQL Server代理的作業中會生成Figure7的作業列表:

clip_image008

(Figure7:Job列表)

 

6. 執行一段時間后,在各個文件夾中會生成一系列的文件:

clip_image009

(Figure8:Full文件)

clip_image010

(Figure9:Diff文件)

clip_image012

(Figure10:Log文件)

clip_image013

(Figure11:Save文件)

 

7. 有了這些文件之后,我們可以雖然還原到某個時間點上的數據,數據的差異為一個小時,例如你是在2012-12-11的15:48:00分誤操作了數據庫,我能回滾到最接近這個時間的是:2012-12-11的15:00:00

clip_image015

(Figure12:還原完整備份文件)

clip_image017

(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

 

四、參考文獻

SQL Server 備份和還原全攻略

SQL Server 維護計划實現數據庫備份

數據庫維護計划存儲過程 (Transact-SQL)

源文來源於

http://www.cnblogs.com/Leo_wl/p/3288518.html#top


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM