恢复 SQL Server 数据库挂了?

恢复 SQL Server 数据库挂了?

我从 SQL Server 9.0.4053 进行了备份,将 bak 文件复制到运行 SQL Server 10.0.2531 的另一台计算机,并尝试使用

RESTORE DATABASE [MyDatabase] FROM  DISK = N'C:\Temp\MyDatabase.bak' WITH  FILE = 1,  NORECOVERY, REPLACE,  STATS = 10

这很快就完成了(数据库相当小),缩短的输出如下:

11 Prozent verarbeitet.
[...]
100 Prozent verarbeitet.
208 Seiten wurden für die 'MyDatabase'-Datenbank, Datei 'MyDatabase' für Datei 1, verarbeitet.
4 Seiten wurden für die 'MyDatabase'-Datenbank, Datei 'MyDatabase_log' für Datei 1, verarbeitet.
RESTORE DATABASE hat erfolgreich 212 Seiten in 1.014 Sekunden verarbeitet (1.631 MB/s).

完成此操作后,数据库在 SQL Server Management Studio 中显示为“正在恢复”。并且它持续显示数小时,没有任何进展。

事件日志包含三条信息消息(此处粗略翻译):
1)“M​​yDatabase”正在启动。2
)“MyDatabase”被标记为 RESTORING 并且处于无法执行恢复的状态。3
)“MyDatabase”已成功恢复。

这是怎么回事?从所有消息来看,数据库似乎已恢复,但我无法访问它,它一直被标记为“正在恢复”。

答案1

您使用了“NORECOVERY”标志,该标志向 SQL 服务器表明您想要恢复额外的 T-log 备份。您应该改用“RECOVERY”标志(或者什么都不用,因为这是默认设置)。

要恢复,请恢复丢失的 T 日志,或者,如果您不想恢复任何日志,请发出以下语句:

RESTORE DATABASE [MyDatabase] WITH RECOVERY

它应该使数据库联机。

阅读有关恢复命令的集成帮助。它确实包含您无法忽略的信息。

相关内容