關鍵詞 Sybase數據庫;數據庫備份;故障恢復
一、 概述
Sybase Adaptive Server Enterprise(簡稱ASE)是sybase數據庫管理系統sql server的最新版本名稱,它是個多庫結構的RDBMS。其中master數據庫、model數據庫、tempdb數據庫、sybsystemprocs系統過程數據庫是Sybase最重要的系統數據庫。湖北地稅征管信息系統eTax數據庫是Sybase用戶數據庫。
二、 SYBASE數據庫的備份
1.利用sybase Central工具備份
sybase Central是Adaptive Server所帶的一種圖形化工具。用sybase Central做數據庫備份工作十分簡單方便,需要注意的是在做備份工作之前,必須同時啟動數據庫主服務和備份服務。右鍵單擊欲備份的數據庫,選擇Backup,按提示步驟錄入相應內容即可。
2.利用SQL語句備份
首先在命令提示符下啟動isql
命令:isql –Usa –P(密碼) –S(服務器名)
go
.數據庫備份
dump database數據庫名(如:wfds)to路徑(如:“c:akwfds.dat“)
.日志備份
dump transaction 數據庫名(如:wfds) to 路徑(“c:akwfds.log“)
如果數據庫的數據段與日志段位于不同設備,則不能使用dump transaction命令復制日志,這時只有使用dump Database
命令復制包括日志在內的整個數據庫。如master數據庫和modle數據庫均將事務日志和數據存儲在同一數據庫設備上,所
以不能單獨備份其事務日志,必須用dump Database命令備份整個數據庫,同時需要定期使用有truncate_only選項的
dump transaction命令清除數據庫事務日志。
3.遠程備份
本地機配置:
(1) 本地機主服務和備份服務都必須啟動;
(2) 本地機的interfaces文件中需要增加遠程機的備份服務器名。
遠程機配置:
(1)遠程備份服務已經啟動;
(2)遠程備份服務器名與本地服務器名需要具有不同的網絡名。
三. Sybase數據庫的恢復
1. master數據庫故障下,adaptive server的恢復
由于master數據庫有主設備的中央控制特性,它的表配置控制所有adaptive server功能及數據庫和數據設備,因此
master數據庫出現了故障對用戶來說將是災難性的。master數據庫的損壞可能是因master設備或數據內部損壞引起的,
一般情況下如果出現以下故障,可以確定master數據庫已被破壞:
.Adaptive Server不能啟動
.dbcc報告有錯誤
.有頻繁的輸入/輸出錯誤
master數據庫故障下,adaptive server的恢復過程因master數據庫備份是否存在而不同。
Master數據庫備份不存在
按以下方法恢復:
.使用bldmastr命令建立一個新的master設備
假設SYBASE安裝在c:sybase下,
在c:sybaseASE-12_0in 下執行bldmastr 命令
(bldmastr 是sybase/bin目錄下的實用程序)
.打開記事本編緝adaptive server的run file(加-d參數),使其指向新的master設備。
Run file文件在sybasease-12_0install 目錄下(如:RUN_test.bat)
.在單用戶模式下啟動server。
命令:Startserver –f run_filename –m 如下圖:
以這種方式啟動的Adaptive Server將自動配置為允許更新系統表,不允許其它操作。
.修改新的master數據庫大小,使其與原來的大小一致。
用bldmastr命令建立的master數據庫默認僅有3M,需恢復到與原來一致。如:使用命令alter database master on master=77將Master數據庫恢復到80M.
.執行disk reinit命令恢復sysdevices表的內容
命令:Disk reinit
Name=”device_name”,
Physname=”physicalname”,
Vdevno=virtual_device_number,
Size=number_of_blocks[,vstart=virtual_address,cntrltype=controller_number]
如創建一個名稱為wfds的數據庫SQL語句如下:
disk init
name="wfds",
physname="c: estdatwfds.dat",
vdevno=8,
size=5120
.執行disk refit 命令恢復sysdatabases表和sysusages表的內容
disk refit只能由系統管理員從master數據庫運行,權限不能轉移給其它用戶。命令語法為:
disk refit
go
在disk refit重建系統表后,server將關閉。
.在單用戶模式下執行installmaster T-SQL腳本和installmodel T—SQL腳本。
Isql –Usa -P –ic:SybasescriptsAse-12_0installmaster
sql –Usa –P –ic:SybasescriptsAse-12_0installmodel
用sp_addlogin重建登錄用戶
以常規模式重新啟動Adaptive Server
startserver –f RUN_servername
啟動后,仔細檢查adaptive server,看是否有錯誤信息,使用dbcc checkalloc對每個數據庫進行一致性檢查,使用常
規轉儲命令對master設備做好備份,修改sa口令。
Master數據庫備份存在
如果你有master數據庫備份,adaptive server的恢復就簡單多了。前四步與master數據庫備份不存在時相同。然后,再按以下步驟進行:
.檢查backup server的sysservers表中的內容。
命令如下:
select * from sysservers where srvname=’syb_backup’
檢查此命令輸出結果中srvname,如果與interface文件中Backup Server不相同,則必須更新sysservers。
假設原backup server的名字為wfds_backup則執行命令:
update sysservers set srvnetnam=’wfds_baxkup’
where srvnetname=’syb_backup’
.裝載master數據庫的備份
首先必須以單用戶模式啟動Server,其次新建的master數據庫必須大于或等于原來的master數據庫大小。命令如下:
load database 數據庫名(master) from 路徑( “c:akmaster.dat“)
恢復完master數據庫,關閉Server。
.執行installmode T-SQL腳本,恢復model數據庫
Isql –Usa –P –ic:SybasescriptsAse-12_0installmodel
在常規模式下啟動server。
2. 非master數據庫故障下,adaptive server的恢復
設備離線(offline)故障
假設數據庫名為wfds,處理如下:
sp_configure”allow updates to system tables”,1
update sysdatabases set status=status&~256
where dbid=db_id(‘wfds’)
因為數據庫的狀態記錄在數據表sysdatabase的status字段中,根據庫被標志為not recovered時,狀態位為64;數據庫被標志為suspect時關態位為256;數據庫被標志為loading時,狀態位為了32;如果發生錯誤,要手工關掉數據狀態位為256的數據庫,并重新啟動server。
設備損壞故障
首先用Drop databse命令刪損壞的數據庫,用sp_dropdevice刪除損壞的設備,再用disk init創建一個新設備,用create database創建數據庫,數據庫的大小和段都要與原庫相同。語法如下:
disk init
name="wfds",
physname="c: estdatwfds.dat",
vdevno=8,
size=5120
/*以上為建立數據庫設備sql語句*/
disk init
name="wfds",
physname="c: estlogwfds.log",
vdevno=9,
size=5120
/*以上為建立數據庫日志設備sql語句*/
create database test on source = 10
log on sourcelog = 10
/以上為建立數據庫test SQL語句*/
最后使用load database和load transaction 命令從備份中恢復數據庫及事務日志并用dbcc檢查數據庫的一致性。
四、結束語
.如果你是系統管理員,完整保留建立數據庫設備和數據庫的腳本是工作的重要組成部分。在出現災難性故障時可使重創整個系統成為可能。
.關閉master數據庫缺省狀況,在master設備上不要建立任何用戶對象。
.定期檢查日志內容,便于及時排錯,維持系統正常運轉。同時還要定期刪除舊的日志記錄,將日志文件保持在一個便于管理的水平,這樣不僅可以節省磁盤空間,也更容易定位當前錯誤。
.在執行災難性事故恢復之前,按以上步驟并結合自已的工作經驗制定一個適合系統需求的簡明大綱表是一個非常不錯的選擇。
.歸根到底,備份master數據庫是執行SYBASE數據庫備份與恢復計劃的基礎,master數據庫不僅包含整個數據庫系統結構 的詳細資料,它還跟蹤Adaptive Server數據庫、設備和組成數據庫的設備段。