SQL Server系统数据库恢复

      在SQL Server2000数据库系统中,有多个系统数据库,如master,model,msdb,tempdb等。其中master数据库是最重要的数据库,存储的是SQL Server系统的所有系统级别信息,包括磁盘空间,文件分配和使用、系统级的配置参数。同时还记录了所有的登录帐户信息、初始化信息和其他数据库信息。一旦master数据库异常,会导致整个数据库系统都无法正常功能。由于master数据库的重要性,所以一般禁止用户直接访问,如果一定要修改,确保在修改前要做完整的数据备份。

 一:备份master数据库
   1:master数据库的备份场景:
    在下列情况下,应该备份master数据库。
    创建或删除用户数据库
    添加/删除登录帐户或修改的数据库级别的角色,从而影响了整个数据库服务器的安全性
    更改了服务器级别的配置选项或数据库配置选项
    简单的说,也就是涉及到服务器级别的更改,都应该及时备份master。

           2:master数据库备份方法
   默认情况下,master数据库使用简单恢复模型,对于master数据库备份只需要使用完全备份。完全备份方法很简单,不多描述。
        
  二:恢复master数据库基本思路
         如果master数据库损坏,SQL Server就不能启动,且在事件管理器中可以查看到相应的master数据库无法访问的日志信息。在这种情况下,就需要恢复master数据库。
  恢复master数据库的思路比较清晰,主要分为如下步骤:
        1:重建全新master数据库,以保证SQL Server服务器可以启动。
        2:启动SQL Server服务后,通过企业管理器或命令,将SQL Server服务器置于单用户模式
  3:在单用户模式下进行master数据库恢复
  4:恢复完成后,将SQL Server实例重新置于多用户模式。
 
 三:恢复master数据库具体演示
     1:利用rebuildm.exe工具重建master数据库
   该工具在安装SQL Server实例时已经安装到程序目录下。默认路径为:
     C:\Program Files\Microsoft SQL Server\80\Tools\Binn
           运行该工具,在弹出的重建master窗口中,设置好正确的参数信息:SQL Server服务器,排序规则  以及SQL Server 2000安装文件中master文件所在路径。见下图:
              
 
          注: 重建过程会重建全部四个系统数据库以及两个示例数据库northwind和pubs,接着对数据库服务器进行配置。
    重建完成后,通过服务管理器或企业管理器启动SQL Server服务器。
       需要注意的是:此时SQL Server数据库中只有dbo角色相关的登录帐户,且sa帐户密码已经重置为空。同时所有的用户数据库都不可见。

     2:将SQL Server服务器置于单用户模式
         将SQL Server服务器设置为单用户模式方法很简单:打开企业管理器,选择服务器右键单击,选择“属性”在“属性配置”窗口“常规”选项框单击“启动参数”,在“启动参数”中添加“-m”参数。如下图:
            
 
     3:在单用户模式下进行master数据库恢复
   设置好单用户模式后,重新启动SQL Server实例,进入真正的master数据库还原。还原方式可以通过企业管理器进行还原
            

   也可以通过查询分析器运行T-SQL命令执行还原:
            
 
   注: 使用企业管理器进行还原时,还原成功后可能会出现一些连接错误提示。建议使用查询分析器来执行还原,可以避免出现错误提示。

 4:恢复完成后,将SQL Server实例重置于多用户模式
          恢复完成后,重新启动SQL Server实例,去除第2步设置的单用户模式参数­-m。
  重新启动SQL Server实例,打开企业管理器,可以看到所有的用户数据库已经可见,且安全性相关登录帐户也已经恢复!
 
        注:
          在恢复master数据库时model和msdb数据库也会被更建,
   所以master数据恢复完成后,应该立即还原model和msdb数据库。
 
     五:其它系统数据库的恢复
         对于其它系统数据库,如model数据库和msdb数据库都是很重要的系统数据库。model数据库作为所有新建的用户数据库和tempdb数据库的样板,任何新建数据库默认结构都与model数据库一样。
  Msdb数据库是SQLSERVER2000代理服务以及自动化作业使用的数据库。
         这两个数据库异常也会影响SQL Server服务器正常工作。
         特别是model数据库,是作为所有新建数据库的模板,如果model数据库损坏也会导致SQL Server服务不能启动,在这种情况下,也需要先重建master数据库,然后再依次恢复master,model和msdb数据库,恢复操作与恢复master数据库操作相类似。
         稍有不同的是,msdb数据库损坏不会导致SQL Server服务无法启动,此时只需通过企业管理器进行恢复工作即可!

本文出自 “我儿子真帅!” 博客,转载请与作者联系!

你可能感兴趣的:(sql,server,Model,系统数据库,msdb)