但是最近筆者遇到了一個棘手的問題,隨着數據庫數據的日益增長,即使采用壓縮備份方式,生成的備份文件尺寸也是很大,特別是數據庫中含有圖像數據時,壓縮率很低,備份文件有幾個G那么大,遠程備份經常因為連接中斷導致備份失敗的情況就出現了。為此,筆者嘗試了多種辦法,但是一直無法解決這個問題。
最近筆者終於想出了一個新方法,經測試有效解決了這個問題。辦法如下:
1、在SqlServer2008R2數據庫中建立兩個數據庫備份計划,一個是完整備份方式,每月初運行一次,另一個是差異備份方式,每日運行一次,當然都要采用壓縮方式。為什么要這樣做呢,是因為如果每天都進行完整備份,則每天都要把整個數據量向遠程FTP服務器傳輸一次,占用了許多流量,沒有這個必要。
2、建立一個批處理文件,輸入兩條命令:
Del /q *.rar
Rar a –m0 –v100mXXX.rar XXX*.bak
第一條命令是把老的壓縮文件先刪掉,第二條命令是用rar壓縮軟件的命令行方式對第一步中生成的完整數據庫備份文件進行分卷處理,命令a是指壓縮方式,命令-m0是指零壓縮率,即不再進一步壓縮,因為備份文件已經是壓縮方式備份的,沒必要再壓縮一次,這樣速度就比較快,命令-v100m是指定每個分卷文件的大小是100兆,這個大小可以根據網絡帶寬來調整,網速快的可增大一些,網速慢就減小一些,這個要通過測試來自行調整。
第二條命令中必須要添加好絕對路徑,因為這個批處理要放到數據庫作業中去自動執行的,當然還要把rar.exe這個文件從winrar軟件中提取出來放到需要的文件夾中。
3、在SqlServer2008R2數據庫中建立一個作業,作業中建立一個步驟,步驟的類型選擇“操作系統(CmdExec)”,命令中輸入第二步建立的批處理文件名,也要輸入絕對路徑。這個作業不需要制訂計划,可以單獨先測試一下,看是否能正常執行。
4、把第三步建立的作業掛到完整備份計划的最后一步,這樣當每月初進行完整備份時能自動把備份好的文件進行分卷處理,這樣大文件就變成了多個小文件,有利於通過網絡傳輸,即使網絡出現中斷,也不用全部從頭開始傳輸了。
5、設置SyncBackSE軟件進行每日自動定時遠程備份,只需要把差異備份文件和經過分卷處理的完整備份文件傳輸到遠程FTP服務器上就可以了。需要恢復時先從分卷壓縮包中把完整備份文件解出來,恢復到數據庫中,再把差異壓縮文件選擇最新的那個恢復到數據庫中就能把數據庫完整恢復出來了。
以上辦法希望對需要的朋友有所幫助。