在 SQL Server 中,Restore 有三种状态,Recovery、Unrecovery 和 Standby,它们决定了处理“未提交事务”的方式。
但是,如果要恢复的备份绝对没有明确的未提交事务怎么办?
我很确定 Recovery 仍然不同于 Unrecovery。在 Recovery 状态下无法恢复日志备份,在 Unrecovery 状态下无法读取数据。
但是 SQL Server 怎么知道呢?是否有任何隐含的标志或后台事务?
感谢所有的建议。
在 SQL Server 中,Restore 有三种状态,Recovery、Unrecovery 和 Standby,它们决定了处理“未提交事务”的方式。
但是,如果要恢复的备份绝对没有明确的未提交事务怎么办?
我很确定 Recovery 仍然不同于 Unrecovery。在 Recovery 状态下无法恢复日志备份,在 Unrecovery 状态下无法读取数据。
但是 SQL Server 怎么知道呢?是否有任何隐含的标志或后台事务?
感谢所有的建议。
SQL Server 还原经历三个阶段:
前两个在每次还原时执行。仅当您指定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;