仝虎,張剛
(1.南京旅游職業學院電教中心,南京 211100;2.焦作師范高等??茖W校信息工程系,焦作 454000)
SQL Server數據庫自動異地備份方案分析與探討
仝虎1,張剛2
(1.南京旅游職業學院電教中心,南京 211100;2.焦作師范高等??茖W校信息工程系,焦作 454000)
數據庫是應用系統的心臟,對于很多企事業單位來說,數據無價,所以數據庫備份十分重要,但又經常做得不好。以SQL Server 2008 R2數據庫為例,介紹并分析各種自動異地備份方案和具體實現方法,并指出各類方案方法的優劣,以便讀者在工作中自行選擇和取舍。
數據庫;SQL Server;異地備份;自動化
近年來,以數據庫為核心的計算機管理信息系統的普及,使現代企事業單位的工作效率大大提高,但同時也增加了現代企事業單位對計算機軟硬件的依賴。數據無價,單位的業務數據大都存儲在數據庫服務器上。各類基于數據庫的管理信息系統,都要考慮數據庫的安全問題,要想保障數據庫的安全,最主要的方法就是做好數據庫的備份工作,不但要做好手工備份,更要做好自動備份;不但要做好本地備份,更要做好異地備份。以防工作服務器出現災難性的硬件故障,未雨綢繆,提前做好應對措施。本文介紹了SQL Server數據庫各種自動異地備份方案和具體實現方法,并對各類方案方法做了簡單分析與比較。
測試環境如下:
工作服務器A(主機),IP地址:10.0.0.1;異地服務器B(備用機),IP地址:10.0.0.2。
操作系統:Windows 2008 R2。
數據庫:SQL Server 2008 R2。數據庫名:test_db。
自動本地備份是自動異地備份的基礎,這里先介紹一下如何利用SQL Server作業實現本地定時自動備份數據庫,每天備份的文件以日期時間命名,存放在工作服務器A(10.0.0.1)的文件夾E:DB_BK。具體操作步驟如下:
①打開SQL Server Management Studio
②啟動SQL Server代理,圖示。
③點擊作業-〉新建作業,在“常規”中輸入作業的名稱test_db_fullbk_job
④點擊步驟,點擊新建按鈕,新建步驟,輸入名稱test_db_fullbk_bz;類型選T-SQL,數據庫選擇master,在命令的空白處輸入下面語句,然后點擊確定,返回。

⑤點擊計劃,點擊新建按鈕,添加計劃,輸入名稱test_db_fullbk_plan,設置好執行頻率和具體觸發時間等。
⑥點擊確定,完成。完成后,可以選中該作業,然后右鍵,選中“作業開始步驟”,測試一下該作業是否成功執行。若成功會出現如圖2界面。
目前自動異地備份方案主要有兩種,方案一:直接把數據庫定時自動備份至異地,然后做壓縮文件、定期清除歷史文件等后續工作。方案二:先把數據庫定時自動備份至本地,再定時壓縮文件,然后傳送至異地服務器,最后做定期的清理工作。方案一對網絡速度和穩定性要求很高,一旦備份過程中網絡信號差或者網絡中斷,則備份就無法完成;方案二比方案一更好一些,因為先把備份文件放在本地然后再傳送至異地,所以更靈活,對網速和穩定性要求也沒那么嚴格。兩種方案又細分為幾種不同的實現方法,下面對這兩種方案及具體實現方法進行介紹和分析。

圖1 SQL Server代理服務

圖2 作業執行
(1)方案一:直接備份至異地
直接把數據庫備份至異地服務器的主要方法有4種:
①通過映射網絡盤和執行cmdshell命令實現。
具體過程與前文提到的自動本地備份相同,只是將第4步的T-SQL語句換成如下內容:


②利用域用戶登錄的方式實現。
該實現方法的思路來源于SQL Server服務帳號模式和安全機制。具體做法是,首先在備用機(10.0.0.2)中建立一個與主機(10.0.0.1)啟動SQL Server服務的域用戶帳號同名帳號,且密碼保持相同,例如都用administrator,密碼相同;然后在備用機中建立一個共享文件夾DB_BK,設置合適權限;最后在主機中創建數據庫維護計劃,備份時使用共享文件夾的UNC路徑(\10.0.0.1DB_BK)即可。
③利用SQL Server的導入導出功能(DTS)實現。
在服務器B(備用機)上安裝與服務器A(主機)相同的操作系統與SQL Server,然后利用SQL Server的導入導出功能。具體做法是,從主機的Enterprise Manager中添加注冊目標數據庫,然后任務→導出功能,在DTS wizard中選好源數據庫和目標數據庫,選中源數據庫中所有對象,并記得配置每個表的transform項為“清空目標表”,有自增長字段的話要選“允許添加自增長字段”,接下來要選定期執行并選好計劃,保存。
④利用鏈接服務器,寫存儲過程實現。
這種方法類似于方法3,只是把數據庫中所有對象的導入導出操作用T-SQL語句實現,寫成一個或幾個存儲過程,然后創建作業,定時執行存儲過程。
四種方法各有優劣。單就數據庫備份而言,方法1和方法2較為常用;方法3常用來把數據庫中某些表中數據的導入導出和轉換,若是數據庫很大,用這種方法備份數據庫將會耗時很久;方法4則常用于跨數據庫查詢。
(2)方案二:先備份至本地,后傳送至異地
這種方案的思路是:考慮到網絡傳送的速度限制與不確定性,所以先把數據庫定時自動備份至本地,再定時壓縮文件,然后傳送至異地服務器,最后做定期的清理工作。具體實現步驟如下:
①自動本地備份。
②定時自動壓縮。
利用批處理命令和Windows任務計劃實現。具體做法分兩個階段。
第一階段:先安裝WinRAR軟件,然后新建一個批處理文件test_db_rar.bat,編輯該文件,寫入如下命令代碼,寫好后保存。

第二階段:打開Windows系統管理工具中的任務計劃程序,創建基本任務,把test_db_rar.bat加入進去,然后設置好執行頻次和觸發時間即可。
③傳送至異地。
傳送壓縮后的備份文件至備用機(10.0.0.2),具體做法分為三種:(1)建立批處理文件,利用xcopy命令實現文件傳送,然后添加Windows計劃任務定時執行。(2)建立批處理文件,利用ftp命令實現,然后添加Windows計劃任務定時執行。(3)利用文件同步備份工具實現,比較好的有SecondCopy、FreeFileSync等。
三種傳送文件的方法各有利弊:xcopy命令、ftp命令速度快,易控制,但需要了解命令的具體用法和命令附帶的各類參數的定義,還需要了解Windows任務計劃的操作方法,需要讀者有一定的耐心和細心;SecondCopy等軟件簡單直觀,易于實現,但不如前兩種靈活。
本文對SQL Server數據庫自動異地備份方案和具體實現方法進行了探討和分析,使讀者對SQL Server數據庫的自動異地備份策略有了宏觀的了解和認識,讀者可以從各自的實際情況出發,根據本單位軟硬件設備、網絡環境和生產系統合理的選擇異地備份方案和方法,未雨綢繆,做好數據庫的備份工作。
[1] Chris Leiter,Dan Wood等著.SQL Server 2008 DBA入門經典[M].張德群等譯.北京:清華大學出版社,2010
[2] 張景輝,侯建海,秦洋.一種實現SQL Server數據庫的備份和恢復的方法[J].微計算機應用,2005,26:228~230
[3] 吳彥,張冬.SQL Server自動異地備份的研究與應用[J].電腦知識與技術,2009,5(33):9617~9619
[4] 劉明軍,王正凱.通過局域網實現異地自動備份HIS數據庫的方法[J].醫療裝備,2011,11:30~31
[5] 謝搶來,余麗娜等.SQL Server數據庫異地備份的研究與實現[J].科技廣場,2009,1:89~91
[6] 于澤德.基于SQL Server的財務管理系統的自動化異地備份[J].電腦知識與技術,2008,3:798~799
[7] 陳宇慶.SQL 2005數據庫異地備份方法探討[J].科技情報開發與經濟,2012,22(20):114~115
Analysis and Discussion on Automatic Remote Backup Methods for SQL Server Database
TONG Hu1,ZHANG Gang2
(1.Audio-visual Center,Nanjing Institute of Tourism and Hospitality,Nanjing 211100;2.Department of Information Engineering,Jiaozuo Teachers College,Jiaozuo 454000)
Database is the heart of application system.Database backup is very important because data is priceless for many enterprises and institutions,while it is not often well done.Takes the SQL Server 2008 R2 database as an example,introduces and analyzes the various methods and concrete steps of automatic remote backup database,gives the comparison of various solution methods,through which readers can choose one and trade-offs it at work.
Database;SQL Server;Remote Backup;Automatic
1007-1423(2015)01-0019-04
10.3969/j.issn.1007-1423.2015.01.005
仝虎(1979-),男,河南修武人,工程師,工學碩士,研究方向為數據庫與數據挖掘
張剛(1978-),男,河南修武人,碩士,講師,研究方向為地理信息系統應用與開發
2014-11-27
2014-12-15