数据库同步方法及系统、源数据和目标数据同步装置制造方法及图纸

技术编号:15391544 阅读:100 留言:0更新日期:2017-05-19 04:49
本发明专利技术提供了源数据、目标数据同步装置和数据库同步方法及系统,通过对源数据库中的源表的监测,将源表中发生基于数据操纵语言的操作的源数据的源唯一索引添加到与源表对应的中间表中,在满足同步条件后,在根据中间表中记录的源唯一索引在源表中查找相关的待同步源数据,并向与源表对应的目标库中的目标表发送带有源唯一索引的同步消息,再根据该同步消息在目标表中进行查找并同步;该同步过程无须在归档模式下完成,保证了数据库的性能,节约了磁盘空间。

Database synchronization method and system, source data and target data synchronization device

The present invention provides a system and source data and target data synchronization device and database synchronization method, based on the source data in the source table monitoring, the source tables in source data operation and data manipulation language of the source only added to the source table and index table based on the corresponding intermediate, met in synchronous conditions, in the middle of the table in the source records according to the unique index in search of the source tables related to synchronization of the source data, and to the source table corresponding to the target database in the target table sent with a unique index source synchronous message, according to the synchronous message search in the target table and synchronization; the synchronization process not completed in archive mode, to ensure the performance of the database, save disk space.

【技术实现步骤摘要】
数据库同步方法及系统、源数据和目标数据同步装置
本专利技术涉及数据库领域,尤其涉及一种数据库同步方法及系统、源数据和目标数据同步装置。
技术介绍
目前有多种实现oracle数据库同步的方法,包括dataguard、stream、goldengate等成熟技术实现。在以上数据库同步技术中,均属于在oracle归档模式下完成,基于挖掘oracle归档日志或者redo日志完成数据同步。而oracle开启归档模式对数据库磁盘空间有一定要求,且需要配置定期的清理机制清理归档。而且,以上技术适用于大型的多数据量的同步,对于一些特定场景的数据库同步,可能没有条件采用上述技术实现数据同步,在归档开启后,数据库性能与磁盘空间会受到限制,尤其越是数据量大的数据库这个问题越严重。
技术实现思路
本专利技术提供了一种数据库同步方法及系统、源数据和目标数据同步装置,解决了现有技术中因数据库同步在归档模式下完成而导致的数据库性能不佳,磁盘空间受限的问题。为解决上述技术问题,本专利技术提供了一种数据库同步方法,包括如下步骤:对源数据库中的源表进行监测;当监测到所述源表中的某一部分源数据发生基于数据操纵语言的操作时,将这部分源数据对应的源唯一索引添加到与所述源表对应的中间表中;在第一同步条件满足后,根据所述中间表中的源唯一索引在所述源表中确定出待同步源数据,并向目标库中对应目标表发送至少包含所述待同步源数据对应的源唯一索引的同步消息。进一步的,一个所述源表唯一对应一个所述中间表;所述第一同步条件包括:到达预设的时间和/或所述中间表累计的数量达到预设的阈值。进一步的,所述源唯一索引包括所述源表中的源数据对应的主键值。进一步的,所述在源表中确定出待同步源数据,并向目标库中对应目标表发送至少包含所述待同步源数据的源唯一索引的同步消息包括:判断所述源唯一索引在所述源表中是否存在;若否,则在所述同步消息中仅包含所述源唯一索引;若是,则提取所述源唯一索引对应的源数据作为待同步数据,并加入所述同步消息中。进一步的,在所述对源数据库中的源表进行监测之前,还包括:判断所述源表的数据量级是否小于预设的数量级阈值;若是,则在第二同步条件满足后,将所述源表当前的所有源数据和对应的源唯一索引发送给所述目标表进行同步匹配。进一步的,所述同步匹配包括:基于merge语句进行匹配同步。为了解决上述技术问题,本专利技术还提供了一种数据库同步方法,包括如下步骤:接收来自源数据库中的源表的同步消息,所述同步消息至少包括发生基于数据操纵语言的操作的待同步源数据对应的源唯一索引;从所述同步消息中提取出所述源唯一索引;根据所述源唯一索引在目标库的对应的目标表中查找对应的目标唯一索引,并根据查找结果和所述同步消息进行同步操作。进一步的,所述根据查找结果和同步消息进行同步操作包括:当查找结果为所述目标表中存在与所述源唯一索引对应的目标唯一索引,而所述同步消息中仅包含所述源唯一索引时,删除所述目标表中的所述目标唯一索引及对应的目标数据;当查找结果为所述目标表中存在与所述源唯一索引对应的目标唯一索引,且所述同步消息中包含所述源唯一索引和对应的待同步源数据时,则用所述待同步源数据更新所述目标表中与目标唯一索引对应的目标数据;当查找结果为所述目标表中不存在与所述源唯一索引对应的目标唯一索引,且所述同步消息中包含所述源唯一索引和对应的待同步源数据时,则将所述源唯一索引和对应的待同步源数据插入所述目标表中。为了解决上述技术问题,本专利技术还提供了一种数据库同步方法,包括如下步骤:对源数据库中的源表的数据进行监测;当监测到所述源表中的某一部分源数据发生基于数据操纵语言的操作时,将这部分源数据对应的源唯一索引添加到与所述源表对应的中间表中;在第一同步条件满足后,根据所述中间表中的源唯一索引在所述源表中确定出待同步源数据,并向目标库中对应目标表发送至少包含所述待同步源数据对应的源唯一索引的同步消息;从所述同步消息中提取出所述源唯一索引;根据所述源唯一索引在所述目标表中查找对应的目标唯一索引,并根据查找结果和所述同步消息进行同步操作。为了解决上述技术问题,本专利技术还提供了一种源数据同步装置,包括触发模块,消息模块,第一发送模块;所述触发模块用于对所述源数据库的源表进行监测,当监测到所述源表中的某一部分源数据发生基于数据操纵语言的操作时,将这部分源数据对应的源唯一索引添加到与所述源表对应的中间表中;所述消息模块用于根据所述中间表中的源唯一索引在所述源表中确定出待同步源数据,并生成同步消息;所述同步消息至少包括所述待同步源数据的源唯一索引;所述第一发送模块用于将所述同步消息发送给目标库中对应的目标表。进一步的,还包括判断模块,第二发送模块;所述判断模块用于判断所述源表的数据量级是否小于预设的数量级阈值;所述第二发送模块用于当所述判断模块判断所述源表的数据量级小于预设的数量级阈值时,在满足第二同步条件后,将所述源表当前的所有源数据对应的源唯一索引发送给所述目标表。为了解决上述技术问题,本专利技术还提供了一种目标数据同步装置,包括接收模块,提取模块,同步模块;所述接收模块用于接收来自源数据库中的源表的同步消息;所述同步消息包括所述源表中发生基于数据操纵语言的操作的源数据对应的源唯一索引;所述提取模块用于从所述同步消息中提取出所述源唯一索引;所述同步模块用于根据所述源唯一索引在所述目标表中查找对应的目标唯一索引,并根据查找结果和所述同步消息进行同步操作。进一步的,所述同步模块包括查询子模块,删除子模块,插入子模块,更新子模块;所述查询子模块用于查询所述源唯一索引对应的所述目标表中的目标唯一索引;所述删除子模块用于当查询到所述目标表中存在与所述源唯一索引对应的目标唯一索引,而所述同步消息中仅包含所述源唯一索引时,删除所述目标表中的所述目标唯一索引及对应的目标数据;所述更新子模块用于当查询到所述目标表中存在与所述源唯一索引对应的目标唯一索引,且所述同步消息中包含所述源唯一索引和对应的待同步源数据时,则用所述待同步源数据更新所述目标表中与目标唯一索引对应的目标数据;所述插入子模块用于当查询到所述目标表中不存在与所述源唯一索引对应的目标唯一索引,且所述同步消息中包含所述源唯一索引和对应的待同步源数据时,则将所述源唯一索引和对应的待同步源数据插入所述目标表中。为了解决上述技术问题,本专利技术还提供了一种数据库同步系统,包括源数据同步装置和目标数据同步装置;所述源数据同步装置包括触发模块,消息模块,第一发送模块;所述目标数据同步装置包括接收模块,提取模块,同步模块;所述触发模块用于对所述源数据库的源表进行监测,当监测到所述源表中的某一部分源数据发生基于数据操纵语言的操作时,将这部分源数据对应的源唯一索引添加到与所述源表对应的中间表中;所述消息模块用于根据所述中间表中的源唯一索引在所述源表中确定出待同步源数据,并生成同步消息;所述同步消息至少包括所述待同步源数据的源唯一索引;所述第一发送模块用于将所述同步消息发送给目标库中对应的目标表;所述接收模块用于接收来自所述源表的同步消息;所述提取模块用于从所述同步消息中提取出所述源唯一索引;所述同步模块用于根据所述源唯一索引在所述目标表中查找对应的目标唯一索引,并根据查找结果进行同步操作。有益本文档来自技高网...
数据库同步方法及系统、源数据和目标数据同步装置

【技术保护点】
一种数据库同步方法,其特征在于,包括如下步骤:对源数据库中的源表进行监测;当监测到所述源表中的某一部分源数据发生基于数据操纵语言的操作时,将这部分源数据对应的源唯一索引添加到与所述源表对应的中间表中;在第一同步条件满足后,根据所述中间表中的源唯一索引在所述源表中确定出待同步源数据,并向目标库中对应目标表发送至少包含所述待同步源数据对应的源唯一索引的同步消息。

【技术特征摘要】
1.一种数据库同步方法,其特征在于,包括如下步骤:对源数据库中的源表进行监测;当监测到所述源表中的某一部分源数据发生基于数据操纵语言的操作时,将这部分源数据对应的源唯一索引添加到与所述源表对应的中间表中;在第一同步条件满足后,根据所述中间表中的源唯一索引在所述源表中确定出待同步源数据,并向目标库中对应目标表发送至少包含所述待同步源数据对应的源唯一索引的同步消息。2.如权利要求1所述的数据库同步方法,其特征在于,一个所述源表唯一对应一个所述中间表;所述第一同步条件包括:到达预设的时间和/或所述中间表累计的数量达到预设的阈值。3.如权利要求1所述的数据库同步方法,其特征在于,所述源唯一索引包括所述源表中的源数据对应的主键值。4.如权利要求1至3任一项所述的数据库同步方法,其特征在于,所述在源表中确定出待同步源数据,并向目标库中对应目标表发送至少包含所述待同步源数据的源唯一索引的同步消息包括:判断所述源唯一索引在所述源表中是否存在;若否,则在所述同步消息中仅包含所述源唯一索引;若是,则提取所述源唯一索引对应的源数据作为待同步数据,并加入所述同步消息中。5.如权利要求1至3任一项所述的数据库同步方法,其特征在于,在所述对源数据库中的源表进行监测之前,还包括:判断所述源表的数据量级是否小于预设的数量级阈值;若是,则在第二同步条件满足后,将所述源表当前的所有源数据和对应的源唯一索引发送给所述目标表进行同步匹配。6.如权利要求5所述的数据库同步方法,其特征在于,所述同步匹配包括:基于merge语句进行匹配同步。7.一种数据库同步方法,其特征在于,包括如下步骤:接收来自源数据库中的源表的同步消息,所述同步消息至少包括发生基于数据操纵语言的操作的待同步源数据对应的源唯一索引;从所述同步消息中提取出所述源唯一索引;根据所述源唯一索引在目标库的对应的目标表中查找对应的目标唯一索引,并根据查找结果和所述同步消息进行同步操作。8.如权利要求7所述的数据库同步方法,其特征在于,所述根据查找结果和同步消息进行同步操作包括:当查找结果为所述目标表中存在与所述源唯一索引对应的目标唯一索引,而所述同步消息中仅包含所述源唯一索引时,删除所述目标表中的所述目标唯一索引及对应的目标数据;当查找结果为所述目标表中存在与所述源唯一索引对应的目标唯一索引,且所述同步消息中包含所述源唯一索引和对应的待同步源数据时,则用所述待同步源数据更新所述目标表中与目标唯一索引对应的目标数据;当查找结果为所述目标表中不存在与所述源唯一索引对应的目标唯一索引,且所述同步消息中包含所述源唯一索引和对应的待同步源数据时,则将所述源唯一索引和对应的待同步源数据插入所述目标表中。9.一种数据库同步方法,其特征在于,包括如下步骤:对源数据库中的源表的数据进行监测;当监测到所述源表中的某一部分源数据发生基于数据操纵语言的操作时,将这部分源数据对应的源唯一索引添加到与所述源表对应的中间表中;在第一同步条件满足后,根据所述中间表中的源唯一索引在所述源表中确定出待同步源数据,并向目标库中对应目标表发送至少包含所述待同步源数据对应的源唯一索引的同步消息;从所述同步消息中提取出所述源唯一索引;根据所述源唯一索引在所述目标表中查找对应的目标唯一索引,并根据...

【专利技术属性】
技术研发人员:于维贺
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1