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