本實驗描述了如何在master數據庫毀壞的情況下,如何重建主設備,恢復master數據庫,得以重新恢復系統。
這裡假定:
Master數據庫已損壞,或主設備已損壞。
有系統表的最新打印輸出。
主設備只包括master數據庫、tempdb和model
有master數據庫的最新備份,且上次轉儲master數據庫後沒有初始化任何設備或創建、變更任何數據庫。
關於恢復過程
將主設備重建為第一次安裝服務器時的缺省狀態;
將master數據庫恢復為缺省狀態;
將master數據庫恢復為上次備份時的狀態;
注意:在恢復master數據庫的早期階段,不能使用系統存儲過程。
恢復步驟
步驟1:查找系統表
查找已保存到文件的系統表sysdatabases、sysdevices、sysusages、sysloginroles和syslogins的副本。用這些副本可以保證在此過程結束時系統已經全部恢復。
步驟2:建立新的主設備
如果Adaptive Server正在運行,關閉它,然後重建主設備。重建主設備時,必須指定設備大小。開始重建前,記住以下幾點:
保留舊設備,以防遇到問題,舊設備可提供至關重要的信息。
使用buildmaster命令之前應關閉Adaptive Server。
不同操作系統上創建主設備的命令有所不同,如:buildmast(unix)、bldmaster(Windows NT),並安裝通用master數據庫的副本。
命令中給出主設備的全名和大小。
示例:重建一個30兆(15360個2k的頁)
在Window NT上:
bldmastr -d d:\devices\master.dat –s15360
步驟3:以主恢復方式啟動Adaptive Server
使用-m選項以主恢復方式啟動Adaptive Server。在Window NT上,使用sqlsrvr命令從命令行啟動Aadaptive Server。
Sqlsrvr.exe –d:\devices\master.dat –sserver_name –ed:\sybase\install\errorlog –id:\sybase\ini –MD:\Sybase –m
說明:以主恢復方式啟動Adaptive Server時,只允許一個用戶(系統管理員)登錄。
步驟4:重建master的設備分配
檢查sysusages系統表的書面副本,如果有多行dbid=1的記錄,則需要增加master的大小以便裝載轉儲。最簡單情況下,對master進行額外分配只需要使用alter database即可。復雜情況,必須為其它數據庫分配空間,以便重新構造恢復master所需的正確的vstart值。
示例:
alter datbase master on master=2
步驟5:檢查Backup Server和sysservers系統表信息。
使用空口令以“sa“用戶登錄服務器(如果Backup Server的網絡名不是SYB_BACKUP,則必須更新sysservers以便Adaptive Server可以與其Backup Server通信)。
檢查interfaces文件中Backup Server的名稱;
並發出下面的命令:
select * from sysservers
where srvname=”SYB_BACKUP”
檢查此命令中輸出結果的srvnetname。是否與服務器的backup Server的interfaces文件條目匹配,若匹配跳過步驟5;
如不同,則必須更新sysservers
示例:
begin tranaction
updata sysserver
set srvnetname=”backupserver_name”
where srvname=”SYB_BACKUP”
l核實該命令,如果updata修改了多行,或者修改了不應修改的行,則發出rollback tranaction命令,然後嘗試再次更新。
如果該命令正確修改了Backup Server的行,則發出commit transaction命令。
步驟6:核實Backup Server正在運行
Window NT平台上,本地安裝的Sybase Central和服務管理器可以顯示Backup Server是否正在運行。
步驟7:裝載master數據庫的備份
在Window NT上:
load database master from “d:\device\master.bck”
在load database成功完成後,Adaptive Server將關閉。
步驟8:更新number of devices配置參數
僅當使用的數據庫設備比缺省值多時才執行此步驟。
步驟9:以主恢復方式方式重新啟動Adaptive Server
Sqlsrvr.exe –d:\devices\master.dat –sserver_name –ed:\sybase\install\errorlog –id:\sybase\ini –MD:\Sybase –m
注意:裝載master的備份將使“sa”帳號恢復到以前的狀態。如果sa帳號有口令,則口令恢復。
步驟10:檢查系統表以檢驗master的當前備份
如果發出最新的disk init、create database或alter database命令以後已備份了master數據庫,則sysusages、sysdatabases、和sysdevice的內容將與書面副本匹配。
如果副本中的任何設備未包含在已恢復的sysdevices中,則上次備份以後已添加了設備,必須運行disk reinit和disk refit。
步驟11:重新啟動Adaptive Server
以常規(多用戶)模式重新啟動Adaptive Server
步驟12:檢查Adaptive server
將sysusages的書面副本與新聯機版本比較
將sysdatabase的書面副本與新聯機版本比較
在每個數據庫上運行dbcc checkalloc
檢查每個數據庫中重要的表
完全恢復master數據庫並運行全部的dbcc完整性檢查後,使用常規轉儲命令備份此數據庫。