2009年1月20日星期二

修复SQL2000的Master数据库

今天SQL2000数据库遇到了一些奇怪的症状,新建登录的菜单是灰色的,数据库对象的属性等菜单根本不存在,链接服务器也不见了,甚至代理节点下的数据库日志也消失了……

似乎系统出了大问题,重起了一下仍然没有解决,使用DBCC CheckDB Master 尝试修复,但是没有异常。
于是,准备重新恢复master数据库

在恢复master的备份时必须在单用户(single user)模式下进行
进入单用户模式的方法:
首先,在命令行模式下输入sqlservr -c -f -m或者输入sqlservr -m
其中:-c 可以缩短启动时间,SQL Server不作为Windows NT的服务启动;
-f 用最小配置启动SQL Server;
-m 单用户模式启动SQL Server。
也可以在控制面板-服务-MSSQLServer的启动参数中输入-c -f -m或者输入-m,点击开始
其次,进行master数据库的恢复
直接进入查询分析器,有个提示不要理会它。输入恢复语句进行数据库恢复:
RESTORE DATABASE master from disk='master.bak'

完成后,重起了sql服务,居然一切都恢复了。
虽然不知道是什么导致了这些问题,但是恢复master最终解决了问题。

对于master数据库彻底垮掉的情况,可以使用下面的步骤修复

重建Master库,使用Rebuildm.exe,将用到SQL的安装文件,从安装目录X86\Data中拷取原文件。
重建成功后,不要启动SQL Server,以单用户模式进入SQL
\bin\sqlservr.exe -m

然后还原数据库备份即可:
restore database master from disk='e:\master.bak'