这里假定:
l Master数据库已损坏,或主设备已损坏。
l有系统表的最新打印输出。
l主设备只包括master数据库、tempdb和model
l有master数据库的最新备份,且上次转储master数据库后没有初始化任何设备或创建、变更任何数据库。
关于恢复过程
l将主设备重建为第一次安装服务器时的缺省状态;
l将master数据库恢复为缺省状态;
l将master数据库恢复为上次备份时的状态;
注意:在恢复master数据库的早期阶段,不能使用系统存储过程。
恢复步骤
步骤1:查找系统表
查找已保存到文件的系统表sysdatabases、sysdevices、sysusages、sysloginroles和syslogins的副本。用这些副本可以保证在此过程结束时系统已经全部恢复。
步骤2:建立新的主设备
如果Adaptive Server正在运行,关闭它,然后重建主设备。重建主设备时,必须指定设备大小。开始重建前,记住以下几点:
l保留旧设备,以防遇到问题,旧设备可提供至关重要的信息。
l使用buildmaster命令之前应关闭Adaptive Server。
l不同操作系统上创建主设备的命令有所不同,如:buildmast(unix)、bldmaster(windows NT),并安装通用master数据库的副本。
l命令中给出主设备的全名和大小。
示例:重建一个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通信)。
l检查interfaces文件中Backup Server的名称;
l并发出下面的命令:
select * from sysservers
where srvname=”SYB_BACKUP”
l检查此命令中输出结果的srvnetname。是否与服务器的backup Server的interfaces文件条目匹配,若匹配跳过步骤5;
l如不同,则必须更新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的当前备份
l如果发出最新的disk init、create database或alter database命令以后已备份了master数据库,则sysusages、sysdatabases、和sysdevice的内容将与书面副本匹配。
l如果副本中的任何设备未包含在已恢复的sysdevices中,则上次备份以后已添加了设备,必须运行disk reinit和disk refit。
步骤11:重新启动Adaptive Server
以常规(多用户)模式重新启动Adaptive Server
步骤12:检查Adaptive server
l将sysusages的书面副本与新联机版本比较
l将sysdatabase的书面副本与新联机版本比较
l在每个数据库上运行dbcc checkalloc
l检查每个数据库中重要的表
完全恢复master数据库并运行全部的dbcc完整性检查后,使用常规转储命令备份此数据库。