发明名称 一种基于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室