羅繼云
摘 要:Sybase數(shù)據(jù)庫維護主要包括備份和恢復兩項重要內(nèi)容,結(jié)合實際工作經(jīng)驗,具體從Sybase數(shù)據(jù)庫的備份和恢復兩方面對Sybase數(shù)據(jù)庫的軟件維護進行探討。
關(guān)鍵詞:Sybase數(shù)據(jù)庫 維護 備份 恢復
中圖分類號:TP311.138 文獻標識碼:A 文章編號:1007-3973(2013)009-110-02
1 引言
Sybase數(shù)據(jù)庫是美國Sybase公司研制的一種關(guān)系型數(shù)據(jù)庫系統(tǒng),是一種典型的UNIX或Windows平臺上客戶機/服務器環(huán)境下的大型數(shù)據(jù)庫系統(tǒng)。由于Sybase數(shù)據(jù)庫采用集中式數(shù)據(jù)管理方式,其數(shù)據(jù)庫服務器一端數(shù)據(jù)相對集中,數(shù)據(jù)風險比較集中,因此如何做好數(shù)據(jù)庫的維護,成為至關(guān)重要的問題。
Sybase系統(tǒng)的備份與恢復機制保證了在系統(tǒng)失敗時重新獲取數(shù)據(jù)的可能性。SQL Server 提供了兩種不同類型的恢復機制:一類是系統(tǒng)自動完成的恢復;另一類是人工完成的恢復,這是通過 DUMP 和 LOAD 命令來執(zhí)行人工備份和恢復工作。
2 Sybase數(shù)據(jù)庫的備份
數(shù)據(jù)庫的備份可以通過dbbackup命令進行完全備份和增量備份,此外可以執(zhí)行備份從服務器端到客戶端。
(1)完整備份與增量備份。
一個完整的備份主數(shù)據(jù)庫文件和事務日志文件的副本。這是最基本和最重要的備份類型,它通常是不實際的執(zhí)行完整備份大型數(shù)據(jù)庫而是常用的增量備份。增量備份使得單獨的交易記錄副本。它作為一個循環(huán),一個完整的備份是由給定數(shù)量的增量備份形成。由于只有交易記錄會被復制,增量備份使用更少的時間和資源,使得它特別適合于大型數(shù)據(jù)庫。
(2)在線與離線備份。
在不停止數(shù)據(jù)庫服務器的情況下進行聯(lián)機備份提供了一致的數(shù)據(jù)庫快照。具有高可用性要求的數(shù)據(jù)庫在線備份是非常必要的,這種備份將帶來更大的服務器消耗。相比之下,可以采取定期進行脫機備份數(shù)據(jù)庫也非常必要。
(3)服務器端與客戶端的備份。
從客戶端使用dbbackup命令可以進行聯(lián)機備份。這就是客戶端的備份,并備份到客戶機上的數(shù)據(jù)庫中,也可以進行聯(lián)機備份在服務器上發(fā)出BACKUP語句在SQL。服務器端備份通常要更快一些,客戶端的備份的速度取決于網(wǎng)絡傳輸速度。
(4)如何進行備份。
在命令行其語法如下:
DBBACKUP [參數(shù)] 目錄
-c 指定要備份的數(shù)據(jù)庫連接字符串;-D 創(chuàng)建一個主數(shù)據(jù)庫文件的備份;-T 只創(chuàng)建一個事務日志備份;-R 重命名事務日志備份;-X 刪除任何以前的事務日志備份,并創(chuàng)建一個新的。
例如,如果你創(chuàng)建你的第一個備份,使用下面的命令:
DBBACKUP-C“UID = DBA; PWD = SQL; DBN = MyDatabase的”
接下來的幾個備份,增量備份,所以使用以下命令:
DBBACKUP-T-R-C“UID = DBA; PWD = SQL; DBN = MyDatabase的”
1)SQL語句備份數(shù)據(jù)庫。您必須具有DBA權(quán)限使用BACKUP DATABASE,其語法如下
BACKUP DATABASE
[TRANSACTION LOG ONLY]
[TRANSACTION LOG RENAME [MATCH]
2)從Sybase Central
從Sybase Central進行備份,打開Utilities文件夾下的“Adaptive Server Anywhere”,然后雙擊“備份數(shù)據(jù)庫”,打開一個對話框,它會引導你備份過程。
備份事務日志:
當數(shù)據(jù)與日志是放在不同的設(shè)備時,可用DUMP TRANsaction命令單獨備份日志。卸出日志要比備份數(shù)據(jù)庫花更少的時間和存儲空間。與備份數(shù)據(jù)庫相同,日志的備份同樣可在數(shù)據(jù)庫活動時發(fā)生。
命令的使用:
DUMP TRANsaction database_name [to dump_device] [WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE]
注意:DUMP DATABASE只備份數(shù)據(jù)庫,并不清除日志,若不使用DUMP TRAN命令刪除日志,日志會越來越大。
3 Sybase數(shù)據(jù)庫的恢復
數(shù)據(jù)庫的恢復:必須使用nsrsybrc 來做;如果想恢復數(shù)據(jù)到新的數(shù)據(jù)庫,必須先使用 for load 選項創(chuàng)建新庫;nsrsybrc不創(chuàng)建數(shù)據(jù)庫,如果必要,應該先創(chuàng)建數(shù)據(jù)庫再使用nsrsybrc程序。Sybase建議保留數(shù)據(jù)庫定義和設(shè)備分配的硬拷貝,以便于再建。
恢復到新的數(shù)據(jù)庫;建立新的數(shù)據(jù)庫和舊數(shù)據(jù)庫擁有相同的設(shè)備分配;設(shè)置NSR_SERVER,NSR_CLIENT 環(huán)境變量以節(jié)省恢復時間。
災難恢復:如果主磁盤包括SQL_server 和NetWorker客戶程序遭到損壞。
(1)重新安裝NetWorker 客戶端程序,數(shù)據(jù)庫Server 軟件,BSMS模塊。
(2)使用打印出的數(shù)據(jù)庫設(shè)備分配重新創(chuàng)建數(shù)據(jù)庫。
(3)恢復master庫:
重建丟失的master設(shè)備,使用“buildmaster”;
單用戶模式運行數(shù)據(jù)庫服務器;重建一些master的額外設(shè)備;確信數(shù)據(jù)庫服務器在sysservers表中有正確的Sybase Backup Server 名字;
裝入master數(shù)據(jù)庫:
# nsrsybrc -Uusername -Ppassword
SYBASE:/SQL_Server_name/master
該命令恢復master庫并關(guān)閉數(shù)據(jù)庫服務器;如果必要,在數(shù)據(jù)庫關(guān)閉時重新建立設(shè)備配置參數(shù)數(shù)目;重啟數(shù)據(jù)庫服務器;如果在最后一次DUMP后對系統(tǒng)目錄信息作過改動,此時恢復改變。
(4)恢復model庫:
刪除或重建master設(shè)備上的其他數(shù)據(jù)庫。
(5)恢復非master 設(shè)備上的數(shù)據(jù)庫:
得到每個數(shù)據(jù)庫設(shè)備的當前日志備份;
檢查每個設(shè)備上數(shù)據(jù)庫的空間用法,例如:select * from sysdatabases;select * from sysusages;select * from sysdevices。
一旦得到每個設(shè)備上所有數(shù)據(jù)庫的信息,卸掉每個數(shù)據(jù)庫,指整個數(shù)據(jù)庫都在主庫設(shè)備上;
dbcc dbrepai (database_name, dropdb)
根據(jù)缺少的設(shè)備,在sysdevices文件中手工刪除相應的行,即刪掉失敗的設(shè)備;
單用戶模式重啟數(shù)據(jù)庫;初始化新設(shè)備;依次重建數(shù)據(jù)庫;重啟數(shù)據(jù)庫,保證數(shù)據(jù)庫不在單用戶模式;恢復數(shù)據(jù)庫。
4 結(jié)語
當前網(wǎng)絡環(huán)境中,Sybase數(shù)據(jù)庫安全受到多種原因的影響,為了保證Sybase數(shù)據(jù)庫的安全性,企業(yè)應加強設(shè)備、技術(shù)等方面管理。普通Sybase數(shù)據(jù)庫的備份可采用dump命令來實現(xiàn)數(shù)據(jù)庫的備份。對于商用或比較重要的數(shù)據(jù)庫可采用在線數(shù)據(jù)流的備份模式,以加快數(shù)據(jù)備份和恢復速度,增強數(shù)據(jù)庫備份和恢復的可管理性。
參考文獻:
[1] 謝聲時.Sybase數(shù)據(jù)庫的備份和恢復[J].華南金融電腦,2008(10):37-38.
[2] 邱斌.Sybase數(shù)據(jù)庫的備份和恢復[J].銅業(yè)工程,2009(3):66-68.
[3] 邵佩英,楊孝如.Sybase數(shù)據(jù)庫系統(tǒng)基礎(chǔ)知識[M].北京:中國水利水電出版社,1998.
[4] 莊驊,莫愛華.Sybase數(shù)據(jù)庫自動備份的實現(xiàn)[J].電信技術(shù),2007(6):309-311.