发生灾难恢复时,数据库还原到的
master
实例应尽可能与原始实例完全匹配。 此恢复实例至少应具有与原始实例相同的版本和修补程序级别,并且应具有与原始实例相同的功能选择和相同的外部配置(主机名、群集成员身份等)。 否则,可能会导致未定义的 SQL Server 实例行为,功能支持不一致,并且不能保证其可行。
还原
master
数据库
在单用户模式下启动服务器实例。
可以使用 或
-f
启动参数启动SQL Server
-m
。 有关启动参数的详细信息,请参阅
数据库引擎服务启动选项
。
在命令提示符下运行以下命令,并确保将 替换为
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 DATABASETransact-SQL 语句:
RESTORE DATABASE master FROM <backup_device> WITH REPLACE
REPLACE 选项指示 SQL Server 即使已经存在同名数据库也要还原指定的数据库。 现有的数据库(如果存在)被删除。 在单用户模式下,建议在 sqlcmd 实用工具中输入 RESTORE DATABASE 语句。 有关详细信息,请参阅 使用 sqlcmd 实用工具。
在还原 master 后, SQL Server 实例会关闭,并终止 sqlcmd 进程。 在重新启动服务器实例之前,请删除单用户引导参数。 有关详细信息,请参阅配置服务器启动选项(SQL Server 配置管理器)。
通常以服务的形式重启服务器实例,而无需使用任何启动参数。
继续执行其他恢复步骤,例如还原其他数据库、附加数据库和更正用户不匹配。
下面的示例将在默认服务器实例上还原 master
数据库。 该示例假定服务器实例是在单用户模式下运行。 该示例启动 sqlcmd
并执行 RESTORE DATABASE
语句,以便从磁盘设备 master
还原 Z:\SQLServerBackups\master.bak
的完整数据库备份。
对于命名实例, sqlcmd 命令必须指定 -S<ComputerName>\<InstanceName> 选项。
C:\> sqlcmd
1> RESTORE DATABASE master FROM DISK = 'Z:\SQLServerBackups\master.bak' WITH REPLACE;
完整数据库还原(简单恢复模式)
完整数据库还原(完整恢复模式)
孤立用户故障排除 (SQL Server)
数据库分离和附加 (SQL Server)
重新生成系统数据库
数据库引擎服务启动选项
SQL Server 配置管理器
系统数据库的备份和还原 (SQL Server)
RESTORE (Transact-SQL)
在单用户模式下启动 SQL Server