本发明专利技术提供了一种主备数据库dataguard gap同步的方法及系统,方法包括备库持续查询是否出现了gap;若是,则触发gap处理流程,向主库发送备库当前的SCN号;主库根据所述SCN号,查询数据文件中的数据块,将数据块SCN大于备库SCN号的数据块发送给备库;备库根据主库发送数据块的SCN,更新备库内数据文件及相应的SCN号。通过备库实时查询系统gap的出现情况,一旦检测到gap的出现,即启动gap触发流程,通过向主库发送自身的SCN号,根据数据块与SCN的对应关系,获取到未备份的数据块和SCN号,保证与主库数据的同步性,避免gap出现后导致的同步异常。
A method and system of data guard gap synchronization for active and standby databases
【技术实现步骤摘要】
一种主备数据库dataguardgap同步的方法及系统
本专利技术涉及数据备份
,尤其是一种主备数据库dataguardgap同步的方法及系统。
技术介绍
Dataguard是oracle数据库常使用的一种高可用方案,是一种数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用这些日志文件,从而使目标数据库与源数据库保持同步。主库数据向备库进行同步,常用的同步方法是将主库的归档日志同步到备库,备库应用这些归档日志,实现主库和备库数据的同步。主备库正常完成首次同步配置后,主库新产生的归档日志都会自动同步到备库主机,然后备库再应用主库同步过来的归档日志,以便和主库数据保持一致。如果由于备库归档日志存储空间不足、主库归档日志被删除等原因造成主库的归档日志无法同步到备库,这就形成归档日志gap,就会造成主备库数据同步异常。当归档日志无法同步的原因解除后,如果只是少量的归档日志没有同步,可以将归档日志拷贝到备库,备库基本可以自动应用这些归档日志,但当缺少的归档日志非常多或者归档日志有丢失的情况时,主备库同步关系是无法自动恢复的,对于这种情况通常使用下面两种方式恢复:1)、删除备库,重新搭建dataguard;2)、基于备库的SCN(SystemChangeNumber,系统改变号)号,手动对主库进行增量备份,然后使用该增量备份再对备库进行恢复。以上两种恢复的方法都需要手动进行恢复,操作比较繁琐,而且一旦形成gap,主备库将失去同步状态,数据库失去保护。专利技术内容本专利技术提供了一种主备数据库dataguardgap同步的方法及系统,用于解决现有gap出现后导致数据恢复流程复杂、数据同步状态异常问题。为实现上述目的,本专利技术采用下述技术方案:本专利技术第一方面提供了一种主备数据库dataguardgap同步的方法,所述方法包括以下步骤:S1,备库持续查询是否出现了gap;S2,若是,则触发gap处理流程,向主库发送备库当前的SCN号;S3,主库根据所述SCN号,查询数据文件中的数据块,将数据块SCN大于备库SCN号的数据块发送给备库;S4,备库根据主库发送数据块的SCN,更新备库内数据文件及相应的SCN号。进一步地,所述方法还包括:在触发gap处理流程后,增加同步频率的控制机制。进一步地,所述同步频率的控制机制具体为:设置同步的起止时间,使同步过程在起止时间内进行;在起始时间和终止时间内设置同步的时间间隔,若在该时间间隔内,无法完成一次同步,则在达到下次同步时间时,继续同步。进一步地,备库持续查询是否出现了gap具体为:备库通过查询是否存在v$archive_gap视图,判断是否存在gap,若有该视图,则出现了gap。进一步地,所述方法还包括,在查询出gap后,分析出现gap的原因;若是主库归档日志被删除,则按照步骤S2-S4的操作进行主备库的同步;若是备库内归档日志目录空间不足,且数据文件目录空间充足,则步骤S4中,将更新的数据文件存储在备库原数据文件目录下。进一步地,在步骤的执行过程中,若备库检查到gap消除,则中止gap处理流程。本专利技术第二方面提供了一种主备数据库dataguardgap同步的系统,包括主库和备库,所述备库包括gap查询模块、gap触发模块和数据更新模块,所述主库包括gap处理模块;所述gap查询模块,用于持续查询系统中是否出现了gap;所述gap触发模块,用于在出现gap时,触发gap处理流程,向主库发送备库当前的SCN号;所述gap处理模块,用于根据所述SCN号,查询数据文件中的数据块,将数据块SCN大于备库SCN号的数据块发送给备库;所述数据更新模块,用于根据主库发送数据块的SCN,更新备库内数据文件及相应的SCN号。进一步地,所述系统还包括同步频率控制模块,所述同步频率控制模块设置在主库端或备库端,所述同步频率控制模块用于设定gap出现后,进行数据同步的时间间隔并控制同步频率。进一步地,所述系统还包括gap退出模块,所述gap退出模块用于获取gap查询模块的查询信息,在gap消除时,中止gap处理流程。本专利技术第二方面的所述主备数据库dataguardgap同步的系统能够实现第一方面及第一方面的各实现方式中的方法,并取得相同的效果。
技术实现思路
中提供的效果仅仅是实施例的效果,而不是专利技术所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:1、本专利技术通过备库实时查询系统gap的出现情况,一旦检测到gap的出现,即启动gap触发流程,通过向主库发送自身的SCN号,根据数据块与SCN的对应关系,获取到未备份的数据块和SCN号,保证与主库数据的同步性,避免gap出现后导致的同步异常,整个过程无需人工干预,且保证数据库的安全。2、对于gap流程触发后,设定同步的起止时间和同步时间间隔,使同步频率在恰当,避免太频繁的同步影响主库性能,同时避免长时间不同步导致主备库数据差别过大,影响备库的可用性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术所述方法的流程示意图;图2是本专利技术所述系统的结构示意图。具体实施方式为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本专利技术进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本专利技术的不同结构。为了简化本专利技术的公开,下文中对特定例子的部件和设置进行描述。此外,本专利技术可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本专利技术省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本专利技术。如图1所示,本专利技术主备数据库dataguardgap同步的方法包括以下步骤:S1,备库持续查询是否出现了gap;S2,若是,则触发gap处理流程,向主库发送备库当前的SCN号;S3,主库根据所述SCN号,查询数据文件中的数据块,将数据块SCN大于备库SCN号的数据块发送给备库;S4,备库根据主库发送数据块的SCN,更新备库内数据文件及相应的SCN号。步骤S1中,备库通过查询是否存在v$archive_gap视图,判断是否存在gap,若有该视图,即该视图有返回结果,则认为出现了gap。步骤S2中,在触发gap处理流程后,太频繁的读取主库数据块进行同步对数据库性能会有些影响,而间隔太长时间才进行读取主库数据块同步会使备库与主库数据差别过大,影响备库的可用性,所以当dataguard本文档来自技高网...
【技术保护点】
1.一种主备数据库dataguard gap同步的方法,其特征是,所述方法包括以下步骤:/nS1,备库持续查询是否出现了gap;/nS2,若是,则触发gap处理流程,向主库发送备库当前的SCN号;/nS3,主库根据所述SCN号,查询数据文件中的数据块,将数据块SCN大于备库SCN号的数据块发送给备库;/nS4,备库根据主库发送数据块的SCN,更新备库内数据文件及相应的SCN号。/n
【技术特征摘要】
1.一种主备数据库dataguardgap同步的方法,其特征是,所述方法包括以下步骤:
S1,备库持续查询是否出现了gap;
S2,若是,则触发gap处理流程,向主库发送备库当前的SCN号;
S3,主库根据所述SCN号,查询数据文件中的数据块,将数据块SCN大于备库SCN号的数据块发送给备库;
S4,备库根据主库发送数据块的SCN,更新备库内数据文件及相应的SCN号。
2.根据权利要求1所述的主备数据库dataguardgap同步的方法,其特征是,所述方法还包括:
在触发gap处理流程后,增加同步频率的控制机制。
3.根据权利要求2所述的主备数据库dataguardgap同步的方法,其特征是,所述同步频率的控制机制具体为:
设置同步的起止时间,使同步过程在起止时间内进行;
在起始时间和终止时间内设置同步的时间间隔,若在该时间间隔内,无法完成一次同步,则在达到下次同步时间时,继续同步。
4.根据权利要求1或2所述的主备数据库dataguardgap同步的方法,其特征是,备库持续查询是否出现了gap具体为:
备库通过查询是否存在v$archive_gap视图,判断是否存在gap,若有该视图,则出现了gap。
5.根据权利要求1或2所述的主备数据库dataguardgap同步的方法,其特征是,所述方法还包括,
在查询出gap后,分析出现gap的原因;
若是主库归档日志被删除,则按照步骤S2-S4的...
【专利技术属性】
技术研发人员:马国良,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。