在SQL Server中,Restore有3种状态,Recovery,Unrecovery和Standby,它们决定了处理“未提交的事务”的方式。
但是如果要恢复的备份绝对没有明确的未提交事务呢?
我很确定恢复与Unrecovery有所不同;您无法在恢复状态下还原日志备份,并且无法读取处于“未恢复”状态的数据。
但SQL Server如何知道?是否有任何隐式的Flag或后台交易?
感谢您的所有建议。
答案 0 :(得分:0)
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;