发明名称 |
一种基于Oracle数据库的一致点捕获方法 |
摘要 |
本发明涉及一种基于Oracle数据库的一致点捕获方法,其主要技术特点是:包括以下步骤:连接数据库并定时取得CPHBT字段、CPODT字段及CPODR_SEQ字段值并将首次查询到字段值要作为基准参考值进行保存;通过分析CPHBT字段值、CPODR_SEQ字段值及CPODT字段值发生变化的情况捕获Oracle数据库一致性点。本发明明可以在Oracle数据库相应事务结束后秒级时间内确定事务的一致性时间点,当处于CDP状态的Oracle数据库需要进行数据恢复时,可以对照被捕获的一致性状态时间点,将数据库数据恢复到最近的一致性时间点,从而保证数据库处于事务一致性状态。 |
申请公布号 |
CN103399921B |
申请公布日期 |
2016.08.10 |
申请号 |
CN201310334842.6 |
申请日期 |
2013.08.01 |
申请人 |
天津火星科技有限公司 |
发明人 |
黄疆 |
分类号 |
G06F17/30(2006.01)I;G06F11/00(2006.01)I |
主分类号 |
G06F17/30(2006.01)I |
代理机构 |
天津盛理知识产权代理有限公司 12209 |
代理人 |
王利文 |
主权项 |
一种基于Oracle数据库的一致点捕获方法,其特征在于:包括以下步骤:步骤1、使用SYS帐户连接到需要捕获一致性点的Oracle数据库,并保持数据库连接,定时对数据库数据字典X$Kcccp表进行查询,取得表中CPHBT字段、CPODT字段及CPODR_SEQ字段值;步骤2、将首次查询到的CPHBT字段值、CPODT字段值及CPODR_SEQ字段值要作为基准参考值进行保存;步骤3、分析CPHBT字段是否发生变化,如果没有发生变化,则等待进行下一查询周期;步骤4、如果CPHBT字段发生变化,则说明数据库已进入另一数据写磁盘周期,进入步骤5;步骤5、分析CPODR_SEQ字段是否变化?如果CPODR_SEQ值变化,说明则此时数据库处于一致性状态,记录此CPODR_SEQ对应的CPODT时间点,并更新作为参考的三个数值为当前查询到的数值以备下次查询使用,同时更新两个CPHBT周期内的CPODT时间数组,本次捕获一致性点周期结束,等待进行下一查询周期;如果CPODR_SEQ值没有变化,则进入步骤6;步骤6、分析CPODT字段值是否变化,如果没有变化,等待进行下一查询周期,同时CPODT数组更新记录本次查询到两个CPHBT前的CPODT时间,作为之后的数据分析所用;步骤7、分析CPODT字段值与上一次一致性点时的CPODT字段值是否相同?如果不相同,则更新作为参考的三个数值为当前查询到的数值以备下次查询使用,并更新记录两个CPHBT周期内的CPODT时间数组,本次捕获一致性点周期结束,等待进行下一查询周期;如果相同,则等待进行下一查询周期;所述CPHBT字段用于Oracle中检查点事件的心跳,检查点事件每三秒发生一次;所述CPODT字段用于检查点事件将数据库Redo日志写到磁盘上的最晚时间,精度为秒;所述CPODR_SEQ字段用于检查点事件写入日志文件的最后一个RBA的日志序列号。 |
地址 |
300384 天津市滨海新区华苑产业园区华天道8号海泰信息广场D座1612室 |