您当前的位置:首页 > 其他技术 > 系统技术

SQL SERVER 2005 Master备份与还原

本文出处:网游动力作者:本站发布时间:2008-12-22阅读次数:
一、备份Master 及相关的系统数据库 
由于系统数据库对Sql Server来说尤其重要,为了确保SQL SERVER系统的正常运行,除了日常备份用户的数据库之外,我们还需要备份系统数据库,如对Master,Model,Msdb(TempDB不需备份)进行完整备份 
二、还原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备份 
先进入单用户模式,系统默认没有设置PATH,先进入CMD,进入“C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBinn”,执行SQLSERVR.EXE –M 
打开SSMS工具,先断开连接,再新建查询,执行以下命名还原 
USE master 
GO 
RESTORE DATABASE master 
FROM disk='c:master.bak' 
GO 

开始实验了~~~ 
MASTER重新生成 
为了模拟MASTER数据库坏了,我们就删除MASTER数据库(要停止SQL SERVER服务才能删除)在我的电脑,C: PROGRAM FILESMICROSOFT SQL SERVERMSSQL.1MSSQLDATE 中删除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 FILESMICROSOFT SQL SERVERMSSQL.1DATE上面又有MASTER.MDF了 


接下来进入目录 
单用户模式 
启动SSMS工具,新建查询 
输入命令 
启动服务(MSSQL SERVER) 
打开SSMS 
连接到数据库后就可以发现数据库中的数据又回来了 

以下是我在命令行下搞的命令,我用记事本的方式全部复制下来了,为了不传附件,我就直接粘贴到下面了 
Microsoft Windows [版本 5.2.3790] 
(C) 版权所有 1985-2003 Microsoft Corp. 
C:Documents and SettingsAdministrator>start /wait e:setup.exe /qn INSTANCENAME=mssqlserver REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=abc123@!@ 
C:Documents and SettingsAdministrator>cd C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBinn 
C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBinn>sqlservr.exe -m 
2008-04-18 15:47:46.56 Server Authentication mode is MIXED. 
2008-04-18 15:47:46.59 Server Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) 
Oct 14 2005 00:33:37 
Copyright (c) 1988-2005 Microsoft Corporation 
Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 1) 
2008-04-18 15:47:46.59 Server (c) 2005 Microsoft Corporation. 
2008-04-18 15:47:46.59 Server All rights reserved. 
2008-04-18 15:47:46.59 Server Server process ID is 3984. 
2008-04-18 15:47:46.59 Server Logging SQL Server messages in file 'C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLLOGERRORLOG'. 
2008-04-18 15:47:46.59 Server This instance of SQL Server last reported using a process ID of 764 at 2008-4-18 15:46:40 (local) 2008-4-18 7:46:40 (UTC). This is an informational message only; no user action is required. 
2008-04-18 15:47:46.60 Server Registry startup parameters: 
2008-04-18 15:47:46.60 Server -d C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATAmaster.mdf 
2008-04-18 15:47:46.60 Server -e C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLLOGERRORLOG 
2008-04-18 15:47:46.60 Server -l C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATAmastlog.ldf 
2008-04-18 15:47:46.62 Server Command Line Startup Parameters: 
2008-04-18 15:47:46.62 Server -m 
2008-04-18 15:47:46.64 服务器 SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required. 
2008-04-18 15:47:46.67 服务器 Detected 1 CPUs. This is an informational message; no user action is required. 
2008-04-18 15:47:46.78 服务器 Using dynamic lock allocation. Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node. This is an informational message only. No user action is required. 
2008-04-18 15:47:46.84 服务器 Attempting to initialize Microsoft Distributed Transaction Coordinator (MS DTC). This is an informational message only. No user action is required.