http://msdn.microsoft.com/zh-cn/library/ms190190.aspx
22号由于数据库服务器重做系统,于是需要对数据库做备份,在这之前,参考《Microsoft SQL Server企业级平台管理实践OCR》在本机对系统数据库做了备份与还原测试,脚本如下(这里对备份操作不做详述):
假设原服务器为PC1,备用服务器为PC2,还原涉及步骤如下:
1、确认备用服务器的SQL Server版本和原服务器是否一致。
select @@version
2、在备用服务器的命令行窗口,用指令以单用户模式启动SQL Server服务。
NET START MSSQLSERVER /m
---正常情况下会提示正在启动。。启动成功
---如出现1706错误,则直接更改MSSQLSERVER服务的启动参数,在-d前面加-m;并停止其余所有服务,重启MSSQLSERVER服务
3、在命令行窗口,用sqlcmd这个命令行工具连接SQL Server。
sqlcmd -E -S PC2
4、首先恢复Master数据库。
4.1 在sqlcmd的那个连接里,运行下面恢复语句(假设备份文件为'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\master.bak')。
restore database master from disk = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\master.bak'
go
4.2由于恢复的master数据库里记载的其他数据库的路径和现在的路径不一致,这时候重新启动SQL Server会失败。必须要用trace flag 3608来启动。
net start MSSQLSERVER /f /m /T3608
--如果正常,应该返回下面的信息。
--SQL Server服务正在启动.
--SQL Server服务启动成功.
也可以用DBCC traceon(3608,-1)--跟踪执行
4.3 用sqlcmd连接修改其他数据库的文件路径到现有的正确路径('C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data')。
用下面语句修改各个系统数据库的文件路径。
alter d