适用范围:SQL Server
本文说明如何通过完整数据库备份还原 master
数据库。
警告
发生灾难恢复时,要将 master
数据库还原到的实例应尽可能接近与原始数据库完全匹配的实例。 此恢复实例至少应具有与原始实例相同的版本和修补程序级别,并且应具有与原始实例相同的功能选择和相同的外部配置(主机名、群集成员身份等)。 否则可能会导致未定义的 SQL Server 实例行为,且功能支持不一致,并且不能保证可行。
还原 master
数据库
在单用户模式下启动服务器实例。
可以使用
-m
或-f
启动参数来启动 SQL Server。 有关启动参数的详细信息,请参阅 数据库引擎服务启动选项。在命令提示符中运行以下命令,并确保将
MSSQLXX.instance
替换为相应的文件夹名称:cd C:\Program Files\Microsoft SQL Server\MSSQLXX.instance\MSSQL\Binn sqlservr -c -f -s <instance> -mSQLCMD
- 该
-mSQLCMD
参数可确保只有 sqlcmd 可以连接到 SQL Server。 - 对于默认实例名称,请使用
-s MSSQLSERVER
-c
将 SQL Server 作为应用程序启动,从而绕过服务控制管理器以缩短启动时间
如果 SQL Server 实例由于
master
数据库损坏而无法启动,则必须先重新生成系统数据库。 有关详细信息,请参阅重新生成系统数据库。- 该
从另一个命令提示符窗口中使用 sqlcmd 连接到 SQL Server:
sqlcmd -S <instance> -E -d master
若要还原完整数据库备份
master
,请使用以下 RESTORE 语句Transact-SQL 语句:RESTORE DATABASE master FROM <backup_device> WITH REPLACE;
该
REPLACE
选项指示 SQL Server 即使已存在同名数据库,也还原指定的数据库。 现有的数据库(如果存在)被删除。 在单用户模式下,建议在 sqlcmd 实用工具中输入RESTORE DATABASE
语句。 有关详细信息,请参阅 使用 sqlcmd。重要
还原后
master
,SQL Server 实例将关闭并终止sqlcmd
进程。 在重新启动服务器实例之前,请删除单用户引导参数。 有关详细信息,请参阅 SQL Server Configuration Manager:配置服务器启动选项。通常将服务器实例作为服务重启,而不使用任何启动参数。
继续执行其他恢复步骤,例如还原其他数据库、附加数据库以及更正用户不匹配问题。
例子
下面的示例将在默认服务器实例上还原 master
数据库。 该示例假定服务器实例是在单用户模式下运行。 该示例启动 sqlcmd,并执行一条RESTORE DATABASE
语句,从磁盘设备Z:\SQLServerBackups\master.bak
还原master
的完整数据库备份。
对于命名实例, sqlcmd 命令必须指定 -S<computer-name>\<instance-name>
该选项。
C:\> sqlcmd
1> RESTORE DATABASE master FROM DISK = 'Z:\SQLServerBackups\master.bak' WITH REPLACE;
2> GO