实验目的:备份与恢复 MASTER 和 MSDB 数据库
实验讲解:MASTER 和 MSDB 是 SQL Server 2000 中两个最重要的系统数据库。MASTER 损坏极有可能导致 MSSQLSERVER 服务启动不了,MSDB 损坏会导致自动化管理作业和系统历史记录等重要资料丢失。
MASTER 和 MSDB 的备份操作比较简单,和用户数据库的备份操作一样,可以直接在企业管理器中进行,也可以在查询分析器中进行;需要注意的是 MASTER 数据库只能进行完全备份。但是 MASTER 数据库的恢复必须在单用户模式下进行,在此模式下只能有一个管理员账户连接到服务器;MSDB 的恢复和用户数据库的恢复操作一样。
实验思路:如果 MASTER 数据库损坏导致 MSSQLSERVER 服务无法启动,可以使用系统安装时自带的一个工具 rebuldm.exe重建 MASTER 数据库,使得 MSSQLSERVER 服务能够启动,然后再恢复系统数据库。rebuldm.exe 在 SQLDIR\80\Tools\Binn\ 目录下。本实验通过故意破坏 MASTER 数据库然后在恢复的过程来加强对此过程的理解。
实验环境:Windows 2000 Server + SQL Server 2000 ,SQL Server 2000 安装光盘
实验步骤:
1、 备份 MASTER 和 MSDB 数据库
可以在企业管理器中或查询分析器中备份这两个数据库,假如我们在查询分析中运行
backup database 语句将它们分别备份到 E:\master.bak 和 E:\msdb.bak 中。
2、 故意破坏系统数据库
如果要刻意破坏系统数据库,可以停止 MSSQLSERVER 服务,然后将系统数据库的文件删除。
3、 重建 MASTER 数据库
 将安装光盘上的 \X86\DATA 文件夹复制到硬盘上,并且去掉“只读”属性(这一点非常重要)
 运行 rebuldm.exe ,选择硬盘上的 DATA 文件夹并点击“重建”按钮(如果是多实例的服务器还需要选择需要重建的实例名称)
 如此之后,MASTER 、MSDB 、MODEL 、TEMPDB 、NORTHWIND 、PUBS 数据库将重建
 如果系统已经安装了补丁,重建的时间可能会长一些
4、 以单用户模式启动 MSSQLSERVER 服务
 如果要以单用户的模式运行默认实例,可以运行 sqlservr.exe –c –m 命令
 如果要以单用户的模式运行命名实例,则需要先切换到该命令实例的文件夹中的 \Binn\ 目录下,然后运行 sqlservr.exe –c –m –s InstanceName 命令
5、 在查询分析器中恢复 MASTER 数据库
 运行查询分析器并以管理员身份登录
 运行 restore database master from disk = ‘E:\master.bak’ 恢复 MASTER 数据库
6、 重新启动 MSSQLSERVER 服务
7、 在企业管理器中恢复 MSDB 数据库
其他说明:如果用户修改过 MODEL 数据库,则还需要对其进行恢复操作。