如果数据库服务器在未提交操作处于待执行状态时出现了故障,则它必须在启动时回退或者提交那些操作,以保持事务的原子特征。
如果在恢复过程中发现来自分布式事务的未提交操作,则数据库服务器将尝试连接到 DTC,并请求被重新征用到待执行或不确定的事务中。重新征用完成后,DTC 即会指示数据库服务器回退或提交未完成的操作。
如果重新征用过程失败,则 SQL Anywhere 将无法知道是应该提交还是应该回退不确定的操作,因而恢复将失败。如果要恢复此类状态下的数据库而不考虑数据的不确定状态,则可使用以下数据库服务器选项来强制恢复:
-tmf 如果找不到 DTC,则未完成的操作将回退,并继续进行恢复。请参见-tmf 服务器选项。
-tmt 如果重新征用未能在指定的时间之前实现,则未完成的操作将回退,并继续进行恢复。请参见-tmt 服务器选项。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |