master数据库的备份与恢复

12月 13th, 2010

master数据库内保存了SQL Server最重要的信息,主要包括:

1.服务器系统配置

2.用户登录账户

3.用户数据库的配置及文件位置

 

master数据库备份的原则是:只要SQL Server系统配置有任何更改或者执行各项数据库管理工作,都要备份master数据库

1.创建或者删除数据库

2.新建或者移除文件和文件组

3.新建SQL Server登录账户或变更安全性设置

4.更改SQL Server服务器级别设置,或者数据库配置选项

5.创建或者移除备份设备

6.配置SQL Server分布式查询与远程调用(RPC)功能

 

master数据库还原步骤

1.执行setup.exe重建master数据库

2.以’单一用户模式’启动SQL Server实例

3.利用最近一次的备份数据还原master数据库

4.重新启动SQL Server实例

 

在SQL Server 2008中,如果需要重新创建master数据库,必须利用SQL Server的安装程序从命令行执行setup.exe,语法为:

setup.exe /QUIET /INSTANCENAME=MSSQLSERVER /ACTION=REBUILDDATABASE /SQLSYSADMINACCOUNTS=Administrator /SAPWD=…

/QUIET:setup.exe工具程序不呈现互动画面,直接完成指令所要求的工作

/INSTANCENAME:目标实例名称,如果是默认实例则为MSSQLSERVER

/ACTION:要setup.exe执行的工作,此处REBUILDDATABASE选项代表要创建系统数据库

/SQLSYSADMINACCOUNTS:管理SQL Server实例的Windows账户

/SAPWD:若SQL Server的验证采用混合验证模式,则通过这个参数给定sa账户的密码,要满足复杂度

SQL Server 2008后setup.exe工具程序在路径 C:/Program Files/Microsoft SQL Server/100/Setup Bootstrap/Release 下

 

执行sqlservr.exe 加上-m选项,以单用户模式启动SQL Server,如:sqlservr.exe -m

sqlservr.exe在路径C:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/Binn下

利用单用户模式启动SQL Server实例后,应先停用SQL Server相关服务,包括:

1.SQL Server Agent

2.SQL Server Analysis Services

3.SQL Server Fulltext Search

4.SQL Server Integration Services

5.SQL Server Reporting Services

 

执行RESTORE DATABASE语句还原master数据库

[c-sharp] view plaincopy

  1. USE MSDB
  2. GO
  3. RESTORE DATABASE master
  4. FROM DISK = N’物理路径’

 

 

详细步骤:

1.创建master的备份设备

 

[c-sharp] view plaincopy

  1. EXEC sp_addumpdevice N’DISK’, N’Master_BackupDevice’, N’D:/master.bak’

 

 

2.设置master数据库的恢复模式为完整

 

[c-sharp] view plaincopy

  1. ALTER DATABASE master SET RECOVERY FULL
  2. — 或者用修改数据库选项方式:
  3. EXEC sp_dboption master, N’trunc. log on chkpt.’, FALSE
  4. EXEC sp_dboption master, N’select into/bulkcopy’, FALSE

 

 

3.备份master数据库到Master_BackupDevice备份设备中

 

[c-sharp] view plaincopy

  1. BACKUP DATABASE master
  2. TO Master_BackupDevice
  3. WITH NAME = N’master 完全备份’, COMPRESSION, INIT

 

 

4.备份master数据库后创建,测试还原master之后的结果

 

[c-sharp] view plaincopy

  1. CREATE DATABASE AfterMaster

 

 

5.停掉SQL Server所有服务,并在路径C:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/DATA下删除master数据库文件(master.mdf)和mastlog.ldf文件,以模拟master数据库的损坏

 

6.重建master数据库,进入命令行界面执行 cd C:/Program Files/Microsoft SQL Server/100/Setup Bootstrap/Release进入此路径,然后执行 setup.exe /QUIET /INSTANCENAME=MSSQLSERVER /ACTION=REBUILDDATABASE /SQLSYSADMINACCOUNTS=CA0043416 /SAPWD=1q2w3e.!! 命令,如下图,此时C:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/DATA路径下出现了master.mdf和mastlog.ldf文件

 

 

7.单用户模式启动SQL Server实例,进入命令行界面执行 cd C:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/Binn进入此路径,然后执行命令sqlservr.exe -m,如下图所示:

 

8.还原master数据库,再打开一个命令行界面,执行sqlcmd命令,利用sqlcmd工具程序登陆SQL Server

 

[c-sharp] view plaincopy

  1. — 执行RESTORE DATABASE语句还原master数据库
  2. USE msdb
  3. GO
  4. RESTORE DATABASE master
  5. FROM DISK = N’D:/master.bak’
  6. WITH REPLACE
  7. GO

 

 

9.还原成功 执行NET START MSSQLSERVER命令,重新启动SQL Server实例

 

 

10.如预期所想,启动SQL Server实例后没有AfterMaster数据库,则附加数据库到SQL Server

 

[c-sharp] view plaincopy

  1. USE [master]
  2. GO
  3. CREATE DATABASE [AfterMaster] ON
  4. ( FILENAME = N’C:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/DATA/AfterMaster.mdf’ ),
  5. ( FILENAME = N’C:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/DATA/AfterMaster_log.LDF’ )
  6. FOR ATTACH
  7. GO

 

更多0 

目前还没有任何评论.
您必须在 登录 后才能发布评论.