池興穎,袁 勇
(遵義師范學(xué)院計算機與信息科學(xué)學(xué)院,貴州遵義563000)
實現(xiàn)SQL Server 2005數(shù)據(jù)庫異地備份的方法很多,可以先在本地備份,然后再將本地備份通過FTP軟件定時傳送到異地硬盤[1];也可用編程的方式實現(xiàn)異地備份[2],但操作方式相對復(fù)雜。本文通過維護(hù)計劃的方式,利用SQL自帶的xp_cmdshell外圍命令,先實現(xiàn)本機服務(wù)器與異地服務(wù)器的連接,在異地服務(wù)器上建立一個用于存放備份數(shù)據(jù)的共享文件夾,文件夾設(shè)置具有存取權(quán)限,之后利用維護(hù)計劃中的T-SQL任務(wù)和備份數(shù)據(jù)庫任務(wù)來實現(xiàn)SQLServer 2005數(shù)據(jù)庫的異地自動備份,為數(shù)據(jù)庫系統(tǒng)管理維護(hù)提供可靠保障。
通過此方法實現(xiàn)異地自動備份的優(yōu)勢是操作簡單、便捷、易于實現(xiàn),并且不用借助第三方軟件;不足的地方是xp_cmdshell外圍命令功能太強大,容易被黑客利用攻擊。但對于安全性要求不是太高的數(shù)據(jù)庫管理維護(hù),也是一種可供參考的自動遠(yuǎn)程備份方法。
為了能夠使用SQLServer2005數(shù)據(jù)庫,需要開啟 SQL Server(MSSQLSERVER) 和 Server Agent(MSSQLSERVER)服務(wù),具體操作步驟:
(1)Microsoft SQL Server 2005→ 配置工具 →SQL Server Configuration Manager→SQL Server 2005服務(wù);
(2)分別進(jìn)入SQLServer和ServerAgent兩個服務(wù)屬性中的服務(wù),將啟動模式修改為自動模式,確定后啟動服務(wù)即可。
(1)MicrosoftSQLServer2005→配置工具→外圍應(yīng)用配置器→功能的外圍應(yīng)用配置器,進(jìn)入外圍應(yīng)用配置器;
(2)在外圍應(yīng)用配置器中,依次點擊 MSSQLSERVER→Database Engine → xp_cmdshell,勾選啟用xp_cmdshell,確定即可。
本地SQLServer2005服務(wù)器IP地址為10.0.192.189,需要將數(shù)據(jù)自動存儲到IP地址為10.0.192.77的主機上。
(1)異地共享文件夾的建立與訪問權(quán)限分配
在異地主機上(IP:10.0.192.77)建立一個用于存放備份數(shù)據(jù)的共享文件夾(名為:backup),共享文件夾設(shè)置訪問權(quán)限為具有存取權(quán)限。
(2)SQL Server 2005與共享文件夾的連接建立
exec master..xp_cmdshell'net usez:\10.0.192.77ackup"123654"/user:10.0.192.189administrator'
123654為10.0.192.77的系統(tǒng)管理員賬號密碼。
(3)將數(shù)據(jù)庫備份到共享文件夾
backup database test to disk='D:BACKUP.bak'with init
將數(shù)據(jù)庫test先備份到 D盤根目錄,命名為“BACKUP.bak”。
exec master..xp_cmdshell'copy D:BACKUP.bak z:'
將備份文件復(fù)制到共享文件夾。
exec master..xp_cmdshell'del D:BACKUP.bak'
刪除本地備份文件。
(4)連接刪除
exec master..xp_cmdshell'net use z:/delete'
這樣就完成了數(shù)據(jù)庫文件備份到異地共享文件夾,接下來通過維護(hù)計劃的方式,實現(xiàn)數(shù)據(jù)庫與共享文件夾的連接、數(shù)據(jù)庫備份到共享文件夾、連接刪除,從而實現(xiàn)異地自動備份。以上命令可以修改參數(shù)后在SQL Server2005中進(jìn)行測試,測試成功后方可進(jìn)行下面的操作。
在異地主機上建立一個用于存放備份數(shù)據(jù)的共享文件夾,將文件夾設(shè)置為具有存取權(quán)限,然后利用維護(hù)計劃實現(xiàn)數(shù)據(jù)庫的自動備份。
(1)新建維護(hù)計劃,命名為“remote_backup”,并將“執(zhí)行T-SQL語句”任務(wù)、“備份數(shù)據(jù)庫”任務(wù)拖動到該維護(hù)計劃中。并做好連接順序,參見圖1。
圖1 維護(hù)計劃任務(wù)設(shè)置圖
(2)設(shè)置remote_backup維護(hù)計劃的屬性為每天執(zhí)行一次,具體見圖2。
圖2 維護(hù)計劃屬性設(shè)置圖
(3)將建立與異地文件夾的連接和刪除連接命令分別寫在“執(zhí)行T-SQL語句”任務(wù)、“執(zhí)行T-SQL語句”任務(wù)1中,以達(dá)到每天執(zhí)行計劃時,先與異地共享文件夾建立連接,然后執(zhí)行備份、備份完成后刪除連接。因此,將第2部分SQLServer2005與異地共享文件夾的連接建立與刪除中第二步和第四步的代碼分別錄入到“執(zhí)行T-SQL語句”任務(wù)、“執(zhí)行TSQL語句”任務(wù)1中并確定,見圖3。
圖3 “執(zhí)行T-SQL語句”任務(wù)設(shè)置圖
(4)在“備份數(shù)據(jù)庫”任務(wù)中設(shè)置需要備份的數(shù)據(jù)庫,并設(shè)置備份的具體目錄,這里是指遠(yuǎn)程共享文件夾的路徑和文件名,見圖4。
圖4 “備份數(shù)據(jù)庫”任務(wù)設(shè)置圖
(5)以上設(shè)置完成后,保存維護(hù)計劃并執(zhí)行,則彈出成功執(zhí)行維護(hù)計劃對話框,見圖5。
圖5 成功執(zhí)行維護(hù)計劃圖
到此,數(shù)據(jù)庫遠(yuǎn)程自動備份設(shè)置基本完成,但是為了萬無一失,應(yīng)該修改執(zhí)行維護(hù)計劃的執(zhí)行時間,再檢查主機10.0.192.77的共享文件夾“backup”是否執(zhí)行了遠(yuǎn)程備份,以檢驗操作是否成功。
通過在異地服務(wù)器上建立一個用于存放備份數(shù)據(jù)的共享文件夾,將文件夾設(shè)置為具有存取權(quán)限,然后利用維護(hù)計劃建立連接異地主機的T-SQL任務(wù)、備份數(shù)據(jù)庫任務(wù)、刪除連接的T-SQL任務(wù)實現(xiàn)了數(shù)據(jù)庫的自動遠(yuǎn)程備份。該方法比利用編程和一些FTP軟件來實現(xiàn)自動遠(yuǎn)程備份更簡單和專業(yè),可為SQL Server 2005數(shù)據(jù)庫管理人員提供管理參考。
[1]于澤德.SQL Server數(shù)據(jù)庫的自動化遠(yuǎn)程備份[J].實驗科學(xué)與技術(shù),2008,5(6):71-73.
[2]張順吉,董婧.VB實現(xiàn)SQLServer數(shù)據(jù)庫遠(yuǎn)程備份/還原一法[J].中國科技信息,2009,(8):121-122.
[3]閃四清.SQL Server 2005基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2007.