oracle数据库:Oracle进程_笔记6
???3.RECO:分布式数据库恢复
RECO有一个很中心的任务:由于两段提交(two-phase commit,2PC)期间的崩溃或连接丢失等原因,有些事务可能会保持准备状态,这个进程就是要恢复这些事务。2PC是一种分布式协议,允许影响多个不同数据库的修改实现原子提交。它力图在提交之前尽可能地关闭分布式失败窗口。如果在N个数据库之间采用2PC,其中一个数据库(通常是客户最初登录的那个数据库,但也不一定)将成为协调器(coordinator)。这个站点会询问其他N-1个站点是否准备提交。实际上,这个站点会转向另外这N-1个站点,问它们是否准备好提交。这N-1个站点都会返回其“准备就绪状态”,报告为YES或NO。如果任何一个站点投票NO,整个事务就要回滚。如果所有站点都投票YES,站点协调器就会广播一条消息,使这N-1个站点真正完成提交。
如果某个站点投票YES,称其准备好要提交,但是在此之后,并且在得到协调器的指令真正提交之前,网络失败了,或者出现了另外某个错误,事务就会成为一个可疑的分布式事务(in-doubt distributed transaction)。2PC力图限制出现这种情况的时间窗口,但是无法根除这种情况。如果正好在那时(这个时间窗口内)出现一个失败,处理事务的工作就要由RECO负责。RECO会试图联系事务的协调器来发现协调的结果。在此之前,事务会保持未提交状态。当再次到达事务协调器时。RECO可能会提交事务,也可能将事务回滚。
需要说明,如果失败(outrage)持续很长一段时间,而且你有一些很重要的事务,可以自行手动地提交或回滚。有时你可能想要这样做,因为可疑的分布式事务可能导致写入器阻塞读取器(Oracle中只有此时会发生“写阻塞读”的情况)。你的DBA可以通知另一个数据库的DBA,要求他查询那些可疑事务的状态。然后你的DBA再提交或回滚,而不再由RECO完成这个任务。
4.CKPT:检查点进程
检查点进程(Checkpoint Process)并不像它的名字所暗示的那样真的建立检查点,建立检查点主要是DBWn的任务。CKPT只是更新数据文件的文件首部,以辅助真正建立检查点的进程(DBWn)。以前CKPT是一个可选的进程,但从8.0版本开始,这个进程总会启动,所以,如果你在UNIX上执行一个ps命令,就肯定能看到这个进程。
sys@ORCL>select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
5129578
sys@ORCL>select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
5129341
sys@ORCL>select checkpoint_change# from v$datafile;
CHECKPOINT_CHANGE#
------------------
5129341
5129341
5129341
5129341
sys@ORCL>select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
5129341
5129341
5129341
5129341
sys@ORCL>select name,last_change# from v$datafile;
NAME
----------------------------------------------------------------------------------------------------
LAST_CHANGE#
------------
/home/oracle/app/oracle/oradata/orcl/system01.dbf
/home/oracle/app/oracle/oradata/orcl/sysaux01.dbf
/home/oracle/app/oracle/oradata/orcl/undotbs01.dbf
/home/oracle/app/oracle/oradata/orcl/users01.dbf
sys@ORCL>select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
5129644
ckpt
http://wenku.baidu.com/view/5b983ede5022aaea998f0f2f.html
http://www.52ij.com/jishu/5179.htmloracle数据库:Oracle进程_笔记5
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5180.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
