摘要:數(shù)據(jù)庫備份是數(shù)據(jù)庫安全的重要保證。以天財高校財務(wù)管理系統(tǒng)為例,分析其后臺SQL Server為數(shù)據(jù)庫的數(shù)據(jù)構(gòu)成及變動情況,提出每天中午和下午分別對賬務(wù)和收費的當(dāng)前數(shù)據(jù)庫進行兩次自動異地備份的策略,并利用SQL Server的數(shù)據(jù)庫維護計劃功能和文件同步軟件Second Copy來實現(xiàn)備份。
關(guān)鍵詞:SQL Server;數(shù)據(jù)庫;異地備份;自動化
中圖分類號:TP309文獻標(biāo)識碼:A文章編號:1009-3044(2008)14-20798-02
1 SQL Server及在天財系統(tǒng)中的應(yīng)用
Microsoft SQL Server是一個關(guān)系型數(shù)據(jù)引擎,也是一個高性能數(shù)據(jù)庫管理系統(tǒng),它基于多線程的客戶/服務(wù)器體系結(jié)構(gòu),既能支持小型數(shù)據(jù)庫,也能支持企業(yè)級大型數(shù)據(jù)庫。Microsoft SQL Server具有在整個LAN內(nèi)部保證數(shù)據(jù)庫信息的完整性和一致性的功能,免去在應(yīng)用程序內(nèi)部保證完整性的必要[1]?;谝陨咸攸c,Microsoft SQL Server作為后臺程序和數(shù)據(jù)庫廣泛應(yīng)用于計算機管理系統(tǒng)。隨著SQL Server使用越來越多,SQL Server數(shù)據(jù)庫的安全越來越受到更多的關(guān)注。通過對數(shù)據(jù)庫的定時備份可在一定程度保證SQL Server 數(shù)據(jù)庫的安全。
我院從1999年開始使用天財高校財務(wù)計算機管理系統(tǒng)進行賬務(wù)和收費管理,它基于C/S模式、以SQL Server為后臺數(shù)據(jù)庫。其客戶端安裝天財公司的應(yīng)用程序,其服務(wù)器端就是運行在Windows 2000 Server上的SQL Server2000數(shù)據(jù)庫管理系統(tǒng),其數(shù)據(jù)直接表現(xiàn)為帳務(wù)系統(tǒng)數(shù)據(jù)庫gxcw35和收費系統(tǒng)的數(shù)據(jù)庫xssf40,其數(shù)據(jù)庫中的數(shù)據(jù)表等由天財軟件首個客戶端程序安裝時系統(tǒng)初始化自動產(chǎn)生。系統(tǒng)所有業(yè)務(wù)數(shù)據(jù)均存儲于這兩個數(shù)據(jù)庫中,也必須依靠兩個數(shù)據(jù)庫的正常運轉(zhuǎn)。由于各種原因,服務(wù)器(操作系統(tǒng))崩潰或Microsoft SQL Server系統(tǒng)崩潰既不可避免又不可預(yù)測,如何保證系統(tǒng)數(shù)據(jù)安全是系統(tǒng)運行中必須解決的嚴重問題。因為一旦系統(tǒng)崩潰,要人工逐條重錄數(shù)據(jù)將是不可想象的事情。利用SQL Server提供數(shù)據(jù)功能,定期備份數(shù)據(jù)庫是比較可行的防止系統(tǒng)發(fā)生故障的方法,它能有效的恢復(fù)數(shù)據(jù),這也是最簡單的確保能恢復(fù)大部分信息的方法[2]。
2 備份策略確定
2.1 SQL Server數(shù)據(jù)庫備份方式
按備份數(shù)據(jù)的范圍、來源,可分為完全備份、增量備份、差異備份三種方式,三種方式的比較如表1所示。
2.2 備份策略的選擇
建立一個完整的備份策略需要考慮很多因素,包括:(1)備份范圍:備份哪些數(shù)據(jù)庫;(2)備份方式:采用完全備份、增量備份、差異備份中的哪一種;(3)備份周期(或頻率):每周、每日、每時進行備份;(4)使用什么介質(zhì)(磁帶還是磁盤),存儲到哪里;(5)使用手工備份還是自動備份以及決定哪一級別的自動化;(6)備份需要保留多長時間[1]。
在天財系統(tǒng)的數(shù)據(jù)庫中,既有數(shù)據(jù)不再發(fā)生變動的歷史數(shù)據(jù)庫(如過去年份的帳務(wù)數(shù)據(jù)gxcw35_2006等;已完清費用的已畢業(yè)生的收費數(shù)據(jù)xssf40_2006等),也有數(shù)據(jù)幾乎每天都發(fā)生變動的當(dāng)前數(shù)據(jù)庫(包括帳務(wù)數(shù)據(jù)庫gxcw35和收費數(shù)據(jù)庫xssf40兩個)。對歷史數(shù)據(jù)庫,采用手動方式做一次完全備份即可。由于學(xué)校規(guī)模中等,其SQL Serve是小型系統(tǒng),當(dāng)前數(shù)據(jù)庫的SQL文件所占空間不大,同時也為了以后數(shù)據(jù)恢復(fù)方便,采用完全備份的方法。
定期備份雖能有效恢復(fù)數(shù)據(jù),但最后一次備份之后到故障發(fā)生之前的數(shù)據(jù)還是要丟失;同時備份太頻繁,將耗費太多的系統(tǒng)時間和存儲空間,所以需要確定恰當(dāng)?shù)膫浞葜芷冢ɑ蝾l率)。結(jié)合實際情況,確定對當(dāng)前數(shù)據(jù)庫,每周星期一至星期五每天分別進行兩次數(shù)據(jù)庫備份。數(shù)據(jù)庫備份文件要占用存儲空間,所以只存儲數(shù)據(jù)恢復(fù)的必要文件并適當(dāng)冗余,確定當(dāng)前數(shù)據(jù)庫備份文件保留3天。
雖然SQL Server 2000支持數(shù)據(jù)庫動態(tài)備份,但備份總要耗費系統(tǒng)開銷,同時也為了從時間概念上簡易區(qū)分具體業(yè)務(wù),當(dāng)前數(shù)據(jù)庫兩次備份時間分別確定在每天中午剛下班后和下午要下班之前。為了確保每次的所有實時數(shù)據(jù)都能被完整備份,應(yīng)事先讓各個環(huán)節(jié)的工作人員了解備份時間,以便在備份前能結(jié)束該時段各自的工作,從而方便數(shù)據(jù)恢復(fù)。
備份到本地磁盤通常是最快的方法。如果要將數(shù)據(jù)備份到本地磁盤,一定要使用一個和你的數(shù)據(jù)或事務(wù)處理日志文件分離的物理磁盤,建立專用文件夾,該文件夾不要和操作系統(tǒng)放、SQL Server系統(tǒng)在同一邏輯分區(qū),制訂好備份路徑和名稱。在安裝系統(tǒng)時,就作好規(guī)劃,如C盤安裝Windows 2000 Server,D盤安裝 SQL Server 2000,E盤上建立專門文件夾用于存放備份數(shù)據(jù)。同時,當(dāng)服務(wù)器或Microsoft SQL Server數(shù)據(jù)庫系統(tǒng)發(fā)生崩潰時,本機的備份數(shù)據(jù)很難讀取并用來恢復(fù),所以備份數(shù)據(jù)不能僅僅本地存放,必須異地存放。即使備份到本地磁盤,備份文件也需要即使復(fù)制到其他計算機、移動硬盤或光盤,否則即使能恢復(fù)部分數(shù)據(jù),也還要輸入較多數(shù)據(jù)。
手工備份,雖然可以靈活地選擇備份方式、備份時間、備份目的地、備份文件存在方式、備份文件名進行備份,但是手工備份一次只能對一個數(shù)據(jù)庫完成一種方式的備份,同時要求管理員熟悉SQL Server 的基本操作。因為每天至少要對帳務(wù)和收費兩個數(shù)據(jù)庫各進行兩次備份,所以不宜采用手工備份,宜采用自動備份。自動備份,是指利用SQL Server 2000提供的數(shù)據(jù)庫維護計劃,讓系統(tǒng)定時對指定一個或多個數(shù)據(jù)庫進行完全備份。
綜上,選擇對帳務(wù)和收費數(shù)據(jù)庫自動每天分別進行兩次定時完全備份到異地計算機的策略。
3 備份策略的實現(xiàn)
(1) 利用SQL Sever的“數(shù)據(jù)庫維護計劃”將有關(guān)數(shù)據(jù)庫定時自動完全備份到當(dāng)前SQL Sever服務(wù)器的指定文件夾。
運行SQL Sever“企業(yè)管理器”進入控制臺根目錄界面,單擊對應(yīng)服務(wù)器cwserver,單擊其下的“管理”,右擊“數(shù)據(jù)庫維護計劃”選擇“新建維護計劃”,建立兩個數(shù)據(jù)庫維護計劃。兩個維護計劃都是對帳務(wù)系統(tǒng)當(dāng)前數(shù)據(jù)庫gxcw35和收費系統(tǒng)當(dāng)前數(shù)據(jù)庫xssf40進行備份,只是維護計劃1的備份時間是12:30,維護計劃2的備份時間是17:30分。
“新建維護計劃”過程中,在“選擇數(shù)據(jù)庫”時,選擇用戶數(shù)據(jù)庫gxcw35和xssf40。在“指定數(shù)據(jù)庫備份計劃”時,勾選“作為維護計劃的一部分來備份數(shù)據(jù)庫”和“完成時驗證備份的完整性”,點選“磁盤[K]”作為“指定存儲文件的位置”。單擊“調(diào)度”后的“更改”,出現(xiàn)“編輯反復(fù)出現(xiàn)的作業(yè)調(diào)度”工作界面,“作業(yè)頻率”選擇“每周”,并選擇星期一至星期五,在“每日頻率”中點選“一次發(fā)生于”并調(diào)整時間到確定的備份發(fā)生時間12:30?!爸付▊浞荽疟P目錄”中,點選“使用此目錄”,并調(diào)整為設(shè)定文件夾E:\\sjbf,勾選“為每個數(shù)據(jù)庫創(chuàng)建子目錄”,勾選“刪除早于此時間的文件”并將時間調(diào)整為3天。[3]
新建維護計劃完成后,系統(tǒng)很可能會提示Sql Server Agent服務(wù)未啟動,先點確定完成計劃設(shè)定,然后找到桌面最右邊狀態(tài)欄中的SQL綠色圖標(biāo),雙擊點開,在服務(wù)中選擇Sql Server Agent,然后點擊運行箭頭,選下方的當(dāng)啟動OS時自動啟動服務(wù)。一旦服務(wù)器啟動成功,Sql Server也將啟動,其代理的數(shù)據(jù)庫維護計劃將定時啟動,自動完成數(shù)據(jù)庫備份。
Sql Server將在每周星期一至星期五每天中午12:30和下午17:30分別對數(shù)據(jù)庫gxcw35和xssf40自動備份,將備份文件存儲到E:\\sjbf下與數(shù)據(jù)庫同名的子目錄下,其備份文件以數(shù)據(jù)庫文件名加上備份時間的方式命名,如gxcw200711231732.bak,并將刪除早于當(dāng)前日期3天前的備份文件。
(2) 將服務(wù)器cwserver的E:\\sjbf文件夾共享。
(3) 利用文件備份軟件Second Copy,將服務(wù)器的備份數(shù)據(jù)復(fù)制到異地客戶端計算機。
Second Copy是一個文件備份軟件,它會常駐在System Tray系統(tǒng)托盤,你可設(shè)定每隔幾分鐘(或是幾小時、幾天)自動執(zhí)行一次備份工作,它會依你指定的時間間隔在后臺作業(yè),自動幫你將重要的文件或是整個文件夾備份到指定的目錄。除了進行簡單的復(fù)制,程序還可以將要備份的文件壓縮到 Zip 文件,以及使源文件夾和目標(biāo)文件夾保持同步。
在客戶端計算機上安裝并啟動文件備份程序Second Copy,建立兩個方案,分別將服務(wù)器上gxcw35和xssf40的備份文件復(fù)制到其上。
建立方案時,選擇“個性化設(shè)置”;“源文件夾”選擇時,單擊“瀏覽”通過“網(wǎng)上鄰居”選擇服務(wù)器cwserver的共享文件夾E:\\sjbf下的gxcw35文件夾,即源文件夾為\\\\cwserver\\sjbf\\gxcw35;“目標(biāo)文件夾”選擇時,單擊“瀏覽”選擇本機的F:\\sjbf\\gxcw35為目標(biāo)文件夾;“頻率”選擇時,選擇“當(dāng)文件更改時”;選擇“精確復(fù)制”方式即可。另一個方案中僅將“源文件夾”和“目標(biāo)文件夾”選擇為\\\\cwserver\\sjbf\\xssf40 和F:\\sjbf\\xssf40,其他選項與另一方案完全一致。
當(dāng)該客戶端計算機啟動后,Second Copy就常駐系統(tǒng)托盤,當(dāng)源文件夾中文件有新備份文件后,會自動將新備份文件復(fù)制到目標(biāo)文件夾中,同時還自動會將目標(biāo)文件夾存在而源文件夾中不存在的過時備份文件刪除,保證目標(biāo)文件夾和源文件夾同步。
4 結(jié)束語
本文提出的自動化定時異地備份策略能滿足所用系統(tǒng)數(shù)據(jù)安全需要,其實現(xiàn)方案簡單可行不需要任何編程,同時可根據(jù)需要靈活調(diào)整需備份數(shù)據(jù)庫、備份時間等。采用上述方案自動化定時異地備份,基于SQL Server的帳務(wù)和收費數(shù)據(jù)的安全是能夠得到保障的,結(jié)合客戶端程序的異地備份,系統(tǒng)正常運行也能夠得到保障。
參考文獻:
[1] 王?。甋QL Server備份策略與恢復(fù)[J].農(nóng)業(yè)網(wǎng)絡(luò)信息.2006,(10):61-62.
[2] 樊志平,莊育飛,潘慶浩.SQL Server數(shù)據(jù)庫的備份與恢復(fù)策略研究[J].電腦知識與技術(shù),2007,(14):304.
[3] Brad McGehee,Rob Kraft.實用Microsoft SQL Server 7 教程[M]. 北京:清華大學(xué)出版社,2001.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文