如何恢复系统数据库? 
 
关于系统数据库的恢复总结如下: 
  在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模式下进行,有以下几种方法进入单用户模式: 
1 可以在命令行模式下输入sqlservr -c -f -m或者输入sqlservr -m 
  其中:-c 可以缩短启动时间,SQL Server 不作为Windows NT的服务启动 
        -f 用最小配置启动SQL Server 
        -m 单用户模式启动SQL Server 
2 可以在控制面板-服务-MSSQLServer的启动参数中输入-c -f -m或者输入-m,点击开始 
  
3 还有一种更灵活的启动方法:用存在注册表里的启动参数启动 
  在MSSQLServer项下添加项SingleUser,具体内容如下所示: 
  HKEY_LOCAL_MACHINE 
    \Software 
       \Microsoft 
          \MSSQLServer 
            \SingleUser 
              \Parameters 
                   SQLArg0 : REG_SZ : -dC:\MSSQL7\DATA\MASTER.DAT 
                   SQLArg1 : REG_SZ : -eC:\MSSQL7\LOG\ERRORLOG 
                   SQLArg2 : REG_SZ : -lC:\MSSQL7\DATA\MASTLOG.DAT 
                   SQLArg3 : REG_SZ : -m 
在命令行下输入SQLServr -c -sSingleUser,注意:必须是在命令行下进入单用户模式后启动 Query Analyzer执行语句: 
RESTORE DATABASE master form disk='c:\(具体的备份文件名)
 

解决方案 »

  1.   

    1、使用完全备份,备份master数据库(恢复时较简单,生成.dat文件)
    2、使用单用户模式恢复master数据库
    开始---运行--CMD
    进入sqlserver安装目录\MSSQL\Binn\sqlservr.exe -c -m <回车>
    3、从备份文件恢复master数据库
      

  2.   

    USE master
    EXEC sp_who下面是结果集:spid ecid status     loginame       hostname  blk dbname cmd                  
    ---- ---- ------     ------------   --------  --- ------ -----                
    1    0    background sa                       0   pubs   LAZY WRITER          
    2    0    sleeping   sa                       0   pubs   LOG WRITER           
    3    0    background sa                       0   master SIGNAL HANDLER       
    4    0    background sa                       0   pubs   RA MANAGER           
    5    0    background sa                       0   master TASK MANAGER         
    6    0    sleeping   sa                       0   pubs   CHECKPOINT SLEEP     
    7    0    background sa                       0   master TASK MANAGER         
    8    0    background sa                       0   master TASK MANAGER         
    9    0    background sa                       0   master TASK MANAGER         
    10   0    background sa                       0   master TASK MANAGER         
    11   0    background sa                       0   master TASK MANAGER         
    51   0    runnable   DOMAIN\loginX  serverX   0   Nwind  BACKUP DATABASE      
    51   2    runnable   DOMAIN\loginX  serverX   0   Nwind  BACKUP DATABASE      
    51   1    runnable   DOMAIN\loginX  serverX   0   Nwind  BACKUP DATABASE      
    52   0    sleeping   DOMAIN\loginX  serverX   0   master AWAITING COMMAND     
    53   0    runnable   DOMAIN\loginX  serverX   0   pubs   SELECT               
    (16 row(s) affected)将所有连接kill后sp_dboption 'master','single user','true'
      

  3.   

    晕倒,搞错了,master数据库是不可以设置single user的
      

  4.   

    谢谢各位老大的指教,还想请问一下,用参数 “-f最小配置启动SQL Server”与不用参数 c有什么区别。
    to:大力
    "使用完全备份,备份master数据库(恢复时较简单,生成.dat文件)"
    我想请问一下,我好象也是用完全备份的,怎么扩展名是 ".ckp"
      

  5.   

    1:还原master数据库?
    2:还原数据库时不能使用当前数据库.