教你恢复SQLSERVER的master系统库的方法

1. 引言

在使用SQL Server的过程中,系统库master是非常重要的一个组成部分,其中包含了整个系统的架构信息,如果master系统库损坏或者丢失,会导致SQL Server无法启动。因此,在这篇文章中,我们将介绍如何恢复SQL Server的master系统库。

2. 确认master系统库损坏

在尝试恢复master系统库之前,我们需要先确认它是否已经损坏。

2.1 检查SQL Server错误日志

使用SQL Server Management Studio(SSMS)或者记事本等文本编辑器打开SQL Server的错误日志(默认路径为C:\Program Files\Microsoft SQL Server\MSSQLX.MSSQLSERVER\MSSQL\Log\ERRORLOG,其中X为SQL Server的版本号)。在错误日志中查找以下信息:

2019-06-29 10:30:00.00 Server Error: 17113, Severity: 16, State: 1.

2019-06-29 10:30:00.00 Server Error 2(The system cannot find the file specified.) occurred while opening file 'C:\Program Files\Microsoft SQL Server\MSSQLX.MSSQLSERVER\MSSQL\DATA\master.mdf' to obtain configuration information at startup. An invalid startup option might have caused the error. Verify your startup options, and correct or remove them if necessary.

如果错误日志中包含了类似上面的错误信息,则说明master系统库已经损坏或者丢失。

2.2 尝试启动SQL Server服务

在SQL Server Configuration Manager中尝试启动SQL Server服务。如果出现以下错误提示,则说明master系统库已经损坏或者丢失:

Windows could not start the SQL Server (MSSQLSERVER) on Local Computer. For more information, review the System Event Log. If this is a non-Microsoft service, contact the service vendor, and refer to service-specific error code 17113.

3. 恢复master系统库

在确认master系统库已经损坏或者丢失之后,我们需要进行master系统库的恢复。下面介绍两种常用的方法。

3.1 从备份文件中恢复

如果我们有master系统库的备份文件,则可以从备份文件中恢复master系统库。以下是步骤:

使用SSMS或者SQL Server Management Studio Express连接到SQL Server实例。

停止SQL Server服务。

将之前备份的master系统库恢复到SQL Server实例目录对应的位置(默认为C:\Program Files\Microsoft SQL Server\MSSQLX.MSSQLSERVER\MSSQL\DATA,其中X为SQL Server的版本号)。

启动SQL Server服务。

3.2 重建master系统库

如果我们没有master系统库的备份文件,则可以通过重建master系统库的方式进行恢复。以下是步骤:

使用SSMS或者SQL Server Management Studio Express连接到SQL Server实例。

停止SQL Server服务。

打开命令提示符,切换到SQL Server实例目录对应的位置(默认为C:\Program Files\Microsoft SQL Server\MSSQLX.MSSQLSERVER\MSSQL\Binn,其中X为SQL Server的版本号)。

执行以下命令,使用setup.exe重建master系统库:

setup.exe /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=domain\username /SAPWD=password /SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS

其中,/INSTANCENAME参数指定SQL Server实例的名称,/SQLSYSADMINACCOUNTS参数指定系统管理员帐户的名称,/SAPWD参数指定系统管理员帐户的密码,/SQLCOLLATION参数指定SQL Server的排序规则。

执行该命令后,SQL Server将会执行以下操作:

创建一个新的master系统库。

使用sys.sp_addsrvrolemember存储过程将指定的系统管理员帐户添加到sysadmin服务器角色中。

使用该系统管理员帐户身份登录SQL Server服务。

重建其他系统数据库(msdb、model和tempdb)。

执行完上述操作后,我们可以通过SSMS或者SQL Server Management Studio Express连接到SQL Server实例,并检查master系统库是否已经恢复。

4. 总结

在SQL Server中,master系统库是非常重要的一个组成部分,它包含了整个系统的架构信息。如果master系统库损坏或者丢失,将会导致SQL Server无法启动。因此,在使用SQL Server时,我们需要特别注意对master系统库的保护和维护工作。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签