恢复master数据库时错误“必须以单用户模式使用restore database”

来源:互联网 发布:php pop3发送邮件 编辑:程序博客网 时间:2024/05/18 03:02

因为有一次在恢复master数据库时记得恢复没有成功,今天特意在本机上做了一次测试,得到的结果一样,当我备份好master数据库后,我直接用恢复数据库来恢复数据库时,显示恢复失败,错误提示为“必须以单用户模式使用restore database”,于是开始找解决办法,经过本人测试,按照下面的方法操作,可以成功恢复master数据库。
如果要恢复一已被损坏的master数据库,则必须要启动SQL Server的单用户模式。单用户模式下仅允许一个系统管理员向SQL Server注册。这是系统的逻辑限制,必须如此。
有以下几种办法进入单用户模式:

1、可以在命令行模式下输入sqlservr -c -f -m或者输入sqlservr -m其中:-c 可以缩短启动时间,SQL Server 不作为Windows NT的服务启动,-f 用最小配置启动SQL Server,-m 单用户模式启动SQL Server2、**可以在控制面板-管理工具-服务-MSSQLServer的启动参数中输入-c -f -m或者输入-m,点击启动。**3、还有一种更灵活的启动方法:用存在注册表里的启动参数启动:在MSSQLServer项下添加项SingleUser,具体内容如下所示:HKEY_LOCAL_MACHINESoftwareMicrosoftMSSQLServerSingleUserParametersSQLArg0 : REG_SZ : -dC:MSSQL7DATAMASTER.DATSQLArg1 : REG_SZ : -eC:MSSQL7LOGERRORLOGSQLArg2 : REG_SZ : -lC:MSSQL7DATAMASTLOG.DATSQLArg3 : REG_SZ : -m在命令行下输入SQLServr -c -sSingleUser,注意:必须是在命令行下进入单用户模式后,启动Query Analyzer(查询分析器)执行restore语句即可。恢复数据库的sql语句:RESTORE   DATABASE   master   from   disk='c:\具体的备份文件名'。在实际操作过程中我使用的是第二种方法,简单快捷,首先按照路径打开MSSQLServer服务,然后停止服务,在输入参数那一栏内输入“-m”,然后重新启动服务,然后回到企业管理器中来恢复master数据库,ok,恢复成功。在SQL   Server数据库中,系统信息存储在系统数据库中,主要的系统数据库包括:    master-从整体上控制用户数据库和SQL   Server操作,在创建了任何用户定义的对象后,都要备份它  model-为新数据库提供模版和原型    msdb-包含了有关作业、报警及操作员等信息如果包含系统数据库的介质变了,那么必须重建系统数据库,如果你仍然可以启动SQL   Server服务,则可以通过RESTORE语句从系统数据库的备份中恢复数据库。    

 如果master坏了,不能启动系统,可以按照下面步骤进行恢复
1.重建系统数据库 运行c:\mssql7\binn\rebuildm.exe,按照提示即 可,过程中需要系统数据库样本的路径,可在安装光盘中找到;

2   重建系统数据库后,启动SQL   Server服务,用系统数据库的备份恢复数据库就行了通常恢复顺序为master->msdb->model    

在恢复master的备份时要注意:必须在单用户(single user)模式下进行。按照上面介绍的方式进行就可以。

0 0