欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

sqlserver2005 master与msdb数据库备份恢复过程

程序员文章站 2023-10-31 09:33:28
由于系统数据库对sql server来说尤其重要,为了确保sql server系统的正常运行,除了日常备份用户的数据库之外,我们还需要备份系统数据库,如对master,mo...

由于系统数据库对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”