SQLServer的数据库还原比较简单,用企业管理器操作就行了。可是master数据库损坏了,连服务都启动不了了,那该如何还原呢。
1、首先,必须先重新建立一个可以使用的master数据库,使服务可以启动起来。
在C盘的SQL共享文件夹下找到setup.exe文件,默认存放在C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Release文件夹。
单击开始菜单,运行,输入cmd回车。
在命令窗口中输入 cd C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Release 转到安装目录
然后再输入 setup.exe /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQL2008 /SQLSYSADMINACCOUNTS="WWW-CC04E3DA6C9\Administrator" /SAPWD=yjj 开始重建master
/QUIET代表静默安装,也就是重建过程不会弹出任何界面
/ACTION=REBUILDDATABASE 代表指定动作为重建数据库
/INSTANCENAME=MSSQL2008指定实例名称,这里使用了MSSQL2008这个实例,默认实例请修改为 /INSTANCENAME=mssqlserver
/SQLSYSADMINACCOUNTS=WWW-CC04E3DA6C9\administrator 域管理员,WWW-CC04E3DA6C9 是计算机名称
/SAPWD=yjj 这里指定SA账号的密码
确定之后就开始重建了,因为指定了静默安装,在重建完成前不会有任何提示。
等待一会之后重建完成。现在数据库服务已经可能启动了,但是master数据库里的所有配置全部丢失,所以必须还原master。
2、从备份服务器上将master的备份文件 master_backup_2011_04_18_010002_6161640.bak 拷贝到C盘。
尝试还原数据库,会提示失败,这是因为master数据库必须在单用户模式下才能还原。
首先我们停止所有的SQL相关服务,并且并闭掉连接SQL的企业管理器。
然后在SQL安装目录下找到 sqlservr.exe 文件,假设这里设定的目录是 D:\Microsoft SQL Server\MSSQL10.MSSQL2008\MSSQL\Binn\
现在在命令窗口下输入命令
d:
cd Microsoft SQL Server\MSSQL10.MSSQL2008\MSSQL\Binn\
sqlservr.exe -c -f -m -s MSSQL2008
–c 缩短从命令提示符启动SQLServer 的启动时间,此参数可忽略
- f 以最省资源模式启动,此参数可忽略
- m 指定在单用户模式下启动SQL Server 实例
- s MSSQL2008 启动指定的实例,这里的MSSQL2008是实例名,若使用默认实例此参数可忽略
3、还原master数据库。
现在打开企业管理器,新建一个查询,再次输入还原语句。
RESTORE DATABASE master FROM DISK='C:\master_backup_2011_04_18_010002_6161640.bak' WITH REPLACE
现在可以看到还原已经成功了。并且SQL服务被自动关闭了。
结果发现,使用Windows账户登录失败了,这是因为master备份是从另一台计算机上拷贝过来的,所以在master库中的账户信息与本机不符。只须使用sa账户登录,并在安全性账户中作相应修改即可。