sqlserver2005 master与msdb数据库备份恢复过程
由于系统数据库对sql server来说尤其重要,为了确保sql server系统的正常运行,除了日常备份用户的数据库之外,我们还需要备份系统数据库,如对master,model,msdb(tempdb不需备份)进行完整备份
1、还原master数据库
如果系统配置丢失或master出现问题,可以进入单用户模式进行还原;如果出现下列情况,必须重新生成损坏的 master 数据库:
a. master 数据库的当前备份不可用。
b. 存在 master 数据库备份,但由于 microsoft sql server 实例无法启动,因此无法还原该备份。
1、重新生成 master 数据库:
注意:
在 sql server 2005 中已废止 rebuildm.exe 程序。若要重新生成 master 数据库,请使用 setup.exe。
1、 start /wait setup.exe /qn instancename=<instancename> reinstall=sql_engine rebuilddatabase=1 sapwd=<newstrongpassword>
例:start /wait e:“setup.exe /qn instancename=mssqlserver reinstall=sql_engine rebuilddatabase=1 sapwd=abc123@!@
注:instancename:指定实例名,默认实例则用mssqlserver表示
reinstall:指定引擎
sapwd:强密码
setup.exe:指定光盘1中的根目录下的文件
/qn 开关用于取消所有安装程序对话框和错误消息。如果指定 /qn 开关,则所有安装程序消息(包括错误消息)都将写入安装程序日志文件。有关日志文件的详细信息,请参阅如何查看 sql server 2005 安装日志文件。
指定 /qb 开关将显示基本的安装程序对话框。还会显示错误消息。
2、 还原master备份(在恢复master的备份时要注意:必须在单用户(single user)模式下进行 ) a.进入单用户模式的方法:
'1.在命令行模式下输入sqlservr -c -f -m或者输入sqlservr -m'
'其中:-c 可以缩短启动时间,sql server 不作为windows nt的服务启动'
' -f 用最小配置启动sql server'
'-m 单用户模式启动sql server'
2.系统默认没有设置path,先进入cmd,进入“c:“program files“microsoft sql server“mssql.1“mssql“binn”,执行sqlservr.exe –m
打开ssms工具,先断开连接,再新建查询,执行以下命名还原
use master
go
restore database master
from disk=‘c:“master.bak‘
go
开始实验了~~~
master重新生成
为了模拟master数据库坏了,我们就删除master数据库(要停止sql server服务才能删除)在我的电脑,c:“ program files“microsoft sql server“mssql.1“mssql“date 中删除master.mdf
重新生成master
1.首先在cmd中输入
start /wait setup.exe /qn instancename=<instancename> reinstall=sql_engine rebuilddatabase=1 sapwd=<newstrongpassword>
其中的 setup.exe为启动光盘的路径,我这里的是 e:“setup.exe /qn
我这里的为默认实例所以其中的<instancename>用 mssqlserver代替
最后的<newstrongpassword>为密码我设密码为abc123@!@,所以就用abc123@!@代替<newstrongpassword>
若没有返回错误,我们就可以到我的电脑中c:“ program files“microsoft sql server“mssql.1“date上面又有master.mdf了
接下来进入目录
单用户模式
启动ssms工具,新建查询
输入命令
启动服务(mssql server)
打开ssms
连接到数据库后就可以发现数据库中的数据又回来了
以下是我在命令行下搞的命令,我用记事本的方式全部复制下来了,为了不传附件,我就直接粘贴到下面了
打开ssms工具,先断开连接,再新建查询,执行以下命名还原
数据库中的显示的消息应为:
已为数据库 ‘master‘,文件 ‘master‘ (位于文件 1 上)处理了 376 页。
已为数据库 ‘master‘,文件 ‘mastlog‘ (位于文件 1 上)处理了 6 页。
已成功地还原了 master 数据库。正在关闭 sql server。
sql server 正在终止此进程。
则表示master数据库还原成功,启动服务后进入ssms即可看到master数据库了
恢复master数据库
方法一:(操作步骤)
1停止mssqlserver服务
2命令行输入:
正常情况下显示如下信息:
3命令行输入:
此时显示:
已将数据库上下文更改为 'master'。
如果恢复成功,显示如下信息:
已为数据库 'master',文件 'master' (位于文件 1 上)处理了 376 页。
已为数据库 'master',文件 'mastlog' (位于文件 1 上)处理了 3 页。
已成功地还原了 master 数据库。正在关闭 sql server。
sql server 正在终止此进程。
[/code]
失败则显示:
此时需[/code]要在恢复语句后面加上:with replace。如:
1>restore database master from disk=数据库备份文件路径' with replace;
2>go
[/code]
4重启mssqlserver服务
方法二:(与方法一差不多)
1打开“sql server 配置管理器”,单击“sql server 服务”
2在右窗格中,右键单击“sql server (<实例名>)”,再单击“属性”
3在“高级”选项卡的“启动参数”框中,键入以分号“;”分隔的参数。(例如,若要以单用户模式启动,在现有启动选项之前插入“-m;”,单击“确定”,此时,弹出警告框,单击“确定”即可)
4重新启动数据库引擎
5(同方法一中步骤3)
6成功恢复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”
推荐阅读
-
sqlserver2005 master与msdb数据库备份恢复过程
-
通过数据泵expdp、impdp方式备份与还原/恢复 Oracle数据库(详细过程)
-
SQL Server中通过扩展存储过程实现数据库的远程备份与恢复
-
sqlserver2005 master与msdb数据库备份恢复过程
-
数据库技术三:索引,视图,存储过程,触发器,数据控制,数据备份与恢复
-
数据库技术:MySQL 多表,外键约束,数据库设计,索引,视图,存储过程,触发器,数据控制,数据备份与恢复
-
SQL Server 2008 master与msdb数据库的备份与恢复
-
SQL Server 2008 master与msdb数据库的备份与恢复
-
烂泥:SQLServer2005数据库备份与恢复
-
SQL Server中通过扩展存储过程实现数据库的远程备份与恢复