命令如下:
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:\bak\master.dat“)
恢复完master数据库,关闭Server。
.执行installmode T-SQL脚本,恢复model数据库
Isql –Usa –P –ic:\Sybase\scripts\Ase-12_0\installmodel
在常规模式下启动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:\testdat\wfds.dat",
vdevno=8,
size=5120
/*以上为建立数据库设备sql语句*/
disk init
name="wfds",
physname="c:\testlog\wfds.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数据库、设备和组成数据库的设备段。
