SQL Server 2005 & 2008 master与msdb数据库的备份与恢复
枢木 2011-05-11
====================================================================
master与msdb数据库的备份与普通数据库一样,本文主要描述master与msdb数据库的恢复的一些个人积累。
恢复master与msdb数据库关键在于以单用户模式启动,其它并没有太大的区别。
====================================================================
恢复master数据库:
方法一:
--------------------------------------------------------------------
恢复步骤:
1 停止MSSQLSERVER服务
2 “开始”-“运行”,输入:cmd
3 a 输入:net start "SQL Server (MSSQLSERVER)" /m
正常情况下显示如下信息:
-------------------------------------
SQL Server (MSSQLSERVER) 服务正在启动 ..
SQL Server (MSSQLSERVER) 服务已经启动成功。
-------------------------------------
b 输入:sqlcmd
1>USE master;
2>GO
此时显示:
-------------------------------------
已将数据库上下文更改为 'master'。
-------------------------------------
1>RESTORE DATABASE master FROM DISK='C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\master.bak';
2>GO
如果恢复成功,显示如下信息:
-------------------------------------
已为数据库 'master',文件 'master' (位于文件 1 上)处理了 376 页。
已为数据库 'master',文件 'mastlog' (位于文件 1 上)处理了 3 页。
已成功地还原了 master 数据库。正在关闭 SQL Server。
SQL Server 正在终止此进程。
-------------------------------------
失败则显示:
-------------------------------------
消息 3154,级别 16,状态 4,服务器 HC,第 1 行
备份集中的数据库备份与现有的 'master' 数据库不同。
消息 3013,级别 16,状态 1,服务器 HC,第 1 行
RESTORE DATABASE 正在异常终止。
-------------------------------------
此时需要在恢复语句后面加上:WITH REPLACE。如:
1>RESTORE DATABASE master FROM DISK='C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\master.bak' WITH REPLACE;
2>GO
c 重启MSSQLSERVER服务
方法二:
--------------------------------------------------------------------
与方法一差不多。
1.打开“SQL Server 配置管理器”,单击“SQL Server 服务”
2.在右窗格中,右键单击“SQL Server (<实例名>)”,再单击“属性”
3.在“高级”选项卡的“启动参数”框中,键入以分号“;”分隔的参数。(例如,若要以单用户模式启动,在现有启动选项之前插入“-m;”,单击“确定”,此时,弹出警告框,单击“确定”即可)
4.重新启动数据库引擎
5.(接下来同方法一中步骤3差不多)
a 开始”-“运行”,输入:cmd
b 同方法一中步骤3 b
c 成功恢复master数据库后,若要以正常的多用户模式重新启动服务器实例,必须先从“启动参数”框中删除刚才输入的“-m;”,然后重新启动SQL Server服务
====================================================================
恢复msdb数据库:
--------------------------------------------------------------------
在msdb数据库里存储较多的是SQL Agent里的内容,如作业、调度、操作员、警告等信息,同时还存放SQL Server Integration Service(SSIS)相关信息。其恢复过程与普通数据库恢复过程大同小异,不同点就是需要在单用户模式启动下进行恢复。
1 打开SQL Server Management Studio,连接到相关的数据库服务器
2 右键单击msdb数据库,单击“属性”打开数据库属性窗口,单击“选项”,在右边的“状态”/“限制访问”指定“SINGLE_USER”,然后单击“确定”即以单用户模式启动,此时msdb显示为“msdb(单个用户)”
3 (同恢复普通数据库一样...)
4 恢复完毕后,别忘了将“限制访问”改加以前的状态“MULTI_USER”