-1

在 SQL Server 中,Restore 有三种状态,Recovery、Unrecovery 和 Standby,它们决定了处理“未提交事务”的方式。

但是,如果要恢复的备份绝对没有明确的未提交事务怎么办?

我很确定 Recovery 仍然不同于 Unrecovery。在 Recovery 状态下无法恢复日志备份,在 Unrecovery 状态下无法读取数据。

但是 SQL Server 怎么知道呢?是否有任何隐含的标志或后台事务?

感谢所有的建议。

4

1 回答 1

0

SQL Server 还原经历三个阶段:

  1. 加载数据
  2. 重新应用未完全写入磁盘的已提交事务。
  3. 撤消进行中但未提交的事务。

前两个在每次还原时执行。仅当您指定RECOVERY选项时才进入 UNDO 阶段。这允许 SQL Server 将日志备份的还原应用到此数据库,该数据库可能包含COMMIT一个或多个正在进行的事务。

如果发生 UNDO 阶段的信息与进一步操作所需的 lsn 编号一起存储在数据库中。

您可以在此处阅读有关所有这些的详细信息:http: //msdn.microsoft.com/en-us/library/ms191455 (v=sql.105).aspx

您可以使用此查询查看数据库的当前状态:

SELECT name,state_desc FROM sys.databases;
于 2013-01-21T19:39:15.987 回答