三. 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:\Sybase\ASE-12_0\bin\ 下執行bldmastr 命令
(bldmastr 是Sybase/bin目錄下的實用程序)
.打開記事本編緝adaptive server的run file(加-d參數),使其指向新的master設備。
Run file文件在Sybase\ase-12_0\install\ 目錄下(如: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:\testdat\wfds.dat",
vdevno=8,
size=5120
.執行disk refit 命令恢復sysdatabases表和sysusages表的內容
disk refit只能由系統管理員從master數據庫運行,權限不能轉移給其它用戶。命令語法為:
disk refit
在disk refit重建系統表後,server將關閉。
.在單用戶模式下執行installmaster T-SQL腳本和installmodel T—SQL腳本。
Isql –Usa -P –ic:\Sybase\scripts\Ase-12_0\installmaster
Isql –Usa –P –ic:\Sybase\scripts\Ase-12_0\installmodel
. 用sp_addlogin重建登錄用戶