SQL SERVER 2008 重建损坏的master (转)
--重建之前
--记录配置信息
--SELECT * FROM sys.configurations;
--确认还原后的系统数据库文件位置.
--SELECT name, physical_name AS current_file_location
--FROM sys.master_files
--WHERE database_id IN (DB_ID('master'), DB_ID('model'), DB_ID('msdb'), DB_ID('tempdb'));
--确认版本信息
--SELECT
--SERVERPROPERTY('ProductVersion ') AS ProductVersion,
--SERVERPROPERTY('ProductLevel') AS ProductLevel,
--SERVERPROPERTY('ResourceVersion') AS ResourceVersion,
--SERVERPROPERTY('ResourceLastUpdateDateTime') AS ResourceLastUpdateDateTime,
--SERVERPROPERTY('Collation') AS Collation;
--必须有最近的系统数据库备份。最好养成备份数据库的习惯。以下大概说一下系统数据库需要备份.
--导致master 更新并要求进行备份的操作类型包括:
--创建或删除用户数据库。
--用户数据库自动增长以容纳新数据时,master 数据库不受影响。
--添加或删除文件和文件组。
--添加登录或其他与登录安全相关的操作。
--数据库安全操作(如向数据库中添加用户)对master 数据库没有影响。
--更改服务器范围的配置选项或数据库配置选项。
--创建或删除逻辑备份设备。
--配置用于分布式查询和远程过程调用(RPC) 的服务器,如添加链接服务器或远程登录。
--执行任一修改数据库的操作后,必须备份model 或msdb 数据库。这些数据库是用下列方法修改的:
--msdb 数据库由下列操作自动更新:
--计划任务。
--在SQL Server 实例中通过导入/导出向导创建存储Integration Services 包。
--维护联机备份与还原历史记录。
--复制。
--Setup.exe 将恢复模式重置为SIMPLE。
--对基于策略的管理策略或条件进行补充或更改。
--只有用户更改才能更新model 数据库。
--一、重建系统数据库
--命令行下转换到安装文件setup.EXE所在目录(如D:/SQL SERVER 2008 R2 RTM)执行如下命令
--/QUIE 指定在没有任何用户界面的情况下运行安装程序。
--/ACTION=REBUILDDATABASE 标识重建系统数据库
--/INSTANCENAME=MSSQL200801 实例名称
--/SQLSYSADMINACCOUNTS="ALEX/LIDONGSHENG"--需要添加的windows账号。。最好是启动账号
--/SAPWD=54546546 SA密码
--Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQL200801 /SQLSYSADMINACCOUNTS="ALEX/LIDONGSHENG" /SAPWD=54546546
--二、单用户启动数据库实例(记住必须先停止数据库再进行以下动作)
--命令行下转换到SQL目录(D:/Program Files/Microsoft SQL Server/MSSQL10_50.MSSQL200801/MSSQL/Binn 根据个人安装,默认的在C盘)执行如下命令
--sqlservr.EXE -m -s mssql200801
--或者手动
--1.在SQL Server 配置管理器中,单击“SQL Server 服务”。
--2.在右窗格中,右键单击SQL Server (<实例名>),再单击“属性”。
--3。在“高级”选项卡的“启动参数”框中,键入以分号(;) 分隔的参数。
--4.例如,若要以单用户模式启动,请在现有启动选项之前插入-m;,然后重新启动数据库。(以单用户模式启动SQL Server 时,请首先停止SQL Server 代理。否则,SQL Server 代理可能会首先连接,并阻止您作为第二个用户连接。)
--重要提示:结束单用户模式的使用之后,若要以正常的多用户模式重新启动服务器实例,必须先从“启动参数”框中删除-m;。
--5.单击“确定”。重新启动数据库引擎。
--还原数据库(打开ssms工具,先断开连接,再新建查询,执行下面的还原)
--restore database master from disk='d:/master20110221.bak' with replace
--restore database msdb from disk='d:/msdb20110221.bak' with replace
--restore database model from disk='d:/model20110221.bak' with replace