用于同步异构数据库之间的查询结果的方法、服务器和计算机可读介质技术

技术编号:29584344 阅读:15 留言:0更新日期:2021-08-06 19:42
根据本发明专利技术的示例性实施例,公开一种用于对第一数据库服务器中运行的数据库之间的查询结果进行同步的方法。该方法包括:确定存在于远离第一数据库服务器的第二数据库服务器中的物化视图的同步,其中物化视图参考存在于第一数据库服务器中的主表,并且第一数据库服务器和第二数据库服务器是异构的;响应同步的确定,产生待发送至第二数据库服务器的同步命令;和发送产生的同步命令至第二数据库服务器,以允许第二数据库服务器对存在于第二数据库服务器中的物化视图和存在于第一数据库服务器中的主表进行同步。

【技术实现步骤摘要】
用于同步异构数据库之间的查询结果的方法、服务器和计算机可读介质本申请是申请日为2016年3月29日提交的名为“用于对异构数据库之间的查询结果进行同步的方法、服务器和存储于计算机可读介质中的计算机程序”的中国专利技术专利申请201610186622.7的分案申请。其母案的相关申请作为参考并入本文中。
本专利技术涉及数据库管理系统(DBMS),特别地,涉及利用远程物化视图对异构数据库之间的查询结果进行同步。
技术介绍
由于爆炸式增长的数据和各种各样的环境和平台,公司迅速扩展业务。由于新的业务环境已经到来,更加高效且灵活的数据服务、信息处理和数据管理功能是必须的。为了适应这种变化,用于解决作为业务一体化基础的高性能、高可用性和可扩展性的问题的数据库在被持续研究中。在数据库管理系统(DBMS)中,数据可以被存储在数据存储中。在关系数据库管理系统(RDBMS)中,数据存储可以指表。该表包括一个或多个行,且一个或多个行中的每个包括一个或多个列。当数据库包括大量数据时,将花费相对较长的时间进行查询以检索用户可能感兴趣的数据。当数据库花费长时间响应查询时,可能对数据库的性能造成不利影响。在这种情况下,限制直接访问大量用户经常访问的某一列或者某张表是可取的。这个问题可以由通过“视图”间接访问列或者表,而不直接访问列或表,而得到解决。“视图”可以指由一个或多个主表引起的虚拟或逻辑表,具有类似于主表的形状,但是不物理存在。换言之,当执行视图时,在存储器中产生定义的查询的结果集,并且当会话结束时,结果集消失。物化视图可以参考物理存储视图查询的结果的表。为了提高查询的执行速度,物化视图可以从直接存储查询结果的表中得出结果,无需单独地执行查询。换言之,在物化视图中,因为查询的结果集存储于表空间的表中,可以以低成本容易地且持续地更新数据。进一步,物化视图可以被用于缓存复杂的查询或者复制特定的表至另一个数据库。当物化视图所参考的主表的数据改变时,为了保持查询结果值的一致性,主表中改变的数据需要被反映到物化视图(即,物化视图表或容器表)。因此,各种关于物化视图的同步(即刷新)的研究被持续进行。
技术实现思路
本专利技术努力实现使用高效的方法同步异构数据库之间的查询结果。本专利技术努力进一步实现快速刷新彼此不兼容的异构数据库之间的物化视图。本专利技术的示例性实施例提供一种用于对第一数据库服务器中运行的数据库之间的查询结果进行同步的方法。该方法可以包括:确定存在于远离第一数据库服务器的第二数据库服务器中的物化视图的同步,其中物化视图参考存在于第一数据库服务器中的主表,并且所述第一数据库服务器和第二数据库服务器是异构的;响应于同步的确定,产生待发送至第二数据库服务器的同步命令;和发送产生的同步命令至所述第二数据库服务器,以允许所述第二数据库服务器对存在于第二数据库服务器中的所述物化视图和存在于所述第一数据库服务器中的所述主表进行同步。本专利技术的另一个示例性实施例提供一种用于对第二数据库服务器中执行的数据库之间的查询结果进行同步的方法。该方法可以包括:接收来自远离第二数据库服务器的第一数据库服务器的同步命令,其中所述第一数据库服务器中存在主表,所述第二数据库服务器中存在参考所述主表的物化视图,并且所述第一数据库服务器和第二数据库服务器是异构的;以及响应于接收到的所述同步命令,在存在于所述第二数据库服务器中的所述物化视图和存在于所述第一数据库服务器中的所述主表之间进行同步。本专利技术的另一个示例性实施例提供一种用于对数据库之间的查询结果进行同步的第一数据库服务器。该服务器可以包括:同步确定模块,用于确定存在于远离第一数据库服务器的第二数据库服务器中的物化视图的同步,其中所述物化视图参考存在于第一数据库服务器中的主表,并且所述第一数据库服务器和第二数据库服务器是异构的;同步命令产生模块,用于响应于同步的确定,产生待发送至第二数据库服务器的同步命令;和通信模块,用于发送产生的同步命令至所述第二数据库服务器,以允许所述第二数据库服务器对存在于第二数据库服务器中的所述物化视图和存在于所述第一数据库服务器中的所述主表进行。本专利技术的另一个示例性实施例提供一种用于对数据库之间的查询结果进行同步的第二数据库服务器。该服务器可以包括:通信模块,用于接收来自远离第二数据库服务器的第一数据库服务器的同步命令,其中所述第一数据库服务器中存在主表,所述第二数据库服务器中存在参考所述主表的物化视图,并且所述第一数据库服务器和第二数据库服务器是异构的;和同步模块,用于响应于接收到的所述同步命令,在存在于所述第二数据库服务器的所述物化视图和存在于所述第一数据库服务器的所述主表之间进行同步。本专利技术的另一个示例性实施例提供一种存储于计算机可读介质中的包括编码命令的计算机程序。当所述计算机程序被计算机系统的一个或多个处理器执行时,所述计算机程序允许所述一个或多个处理器执行以下操作。所述操作可以包括:确定存在于远离第一数据库服务器的第二数据库服务器中的物化视图的同步的操作,其中所述物化视图参考存在于第一数据库服务器中的主表,并且所述第一数据库服务器和第二数据库服务器是异构的;响应于同步的确定,产生待发送至第二数据库服务器的同步命令的操作;和发送产生的同步命令至所述第二数据库服务器,以允许所述第二数据库服务器对存在于第二数据库服务器中的所述物化视图和存在于所述第一数据库服务器中的所述主表进行同步的操作。本专利技术的另一个示例性实施例提供一种存储于计算机可读介质中的包括编码命令的计算机程序。当所述计算机程序被计算机系统的一个或多个处理器执行时,所述计算机程序允许所述一个或多个处理器执行以下操作。所述操作包括:接收来自远离第二数据库服务器的第一数据库服务器的同步命令的操作,其中所述第一数据库服务器中存在主表,所述第二数据库服务器中存在参考所述主表的物化视图,并且所述第一数据库服务器和第二数据库服务器是异构的;和响应接收到的所述同步命令,在存在于所述第二数据库服务器的所述物化视图和存在于所述第一数据库服务器的所述主表之间进行同步的操作。根据本专利技术的示例性实施例,异构数据库之间的查询结果可以被有效同步。根据本专利技术的示例性实施例,彼此不兼容的异构数据库之间的物化视图的快速刷新可以实现。附图说明将参照附图描述各个方面并且相同的标记表示相同的组件。在以下示例性实施例中,为了描述的目的,将建议多个具体细节以更好的理解一个或多个方面。然而,显而易见的是,上述方面可被体现为不具有这些具体细节。在其它实施例中,已知的结构和装置将被示为框图以容易地描述一个或多个方面。图1示出根据本专利技术示例性实施例的数据库系统的示意图。图2示出根据本专利技术示例性实施例的第一数据库服务器的示意图。图3示出根据本专利技术示例性实施例的第二数据库服务器的示意图。图4示出根据本专利技术示例性实施例的同步第一数据库服务器中执行的数据库之间的查询结果的流程图。图5示出根据本专利技术示例性实施例的同步第二数据库服务本文档来自技高网
...

【技术保护点】
1.一种用于对第一数据库服务器中运行的数据库之间的查询结果进行同步的方法,所述方法包括:/n通过检查存在于第一数据库服务器中并与存在于所述第一数据库服务器中的主表相关的日志表集合以确定所述主表中的数据是否变化来确定存在于远离所述第一数据库服务器的第二数据库服务器中的物化视图的同步,其中所述物化视图参考所述主表,并且所述第一数据库服务器和所述第二数据库服务器是异构的;/n通过从存在于所述第一数据库服务器中的物化视图对象获取包括所述第一数据库服务器和第二数据库服务器之间的通信的数据库链接信息的元数据,产生待发送至所述第二数据库服务器的同步命令;和/n发送产生的所述同步命令至所述第二数据库服务器以允许所述第二数据库服务器对存在于所述第二数据库服务器中的所述物化视图和存在于所述第一数据库服务器中的所述主表进行同步。/n

【技术特征摘要】
20160229 KR 10-2016-00245591.一种用于对第一数据库服务器中运行的数据库之间的查询结果进行同步的方法,所述方法包括:
通过检查存在于第一数据库服务器中并与存在于所述第一数据库服务器中的主表相关的日志表集合以确定所述主表中的数据是否变化来确定存在于远离所述第一数据库服务器的第二数据库服务器中的物化视图的同步,其中所述物化视图参考所述主表,并且所述第一数据库服务器和所述第二数据库服务器是异构的;
通过从存在于所述第一数据库服务器中的物化视图对象获取包括所述第一数据库服务器和第二数据库服务器之间的通信的数据库链接信息的元数据,产生待发送至所述第二数据库服务器的同步命令;和
发送产生的所述同步命令至所述第二数据库服务器以允许所述第二数据库服务器对存在于所述第二数据库服务器中的所述物化视图和存在于所述第一数据库服务器中的所述主表进行同步。


2.如权利要求1所述的方法,其中所述元数据包括:关于物化视图的查询信息、用于所述第一数据库服务器和所述第二数据库服务器之间的通信的数据库链接信息、以及所述物化视图的表名信息中的至少一个。


3.如权利要求1所述的方法,其中所述同步命令包括将存在于所述第一数据库服务器中并与所述主表相关的日志表集合中的日志信息插入存在于所述第二数据库服务器的第二物化视图日志表中的命令。


4.如权利要求3所述的方法,其中所述日志表集合包括第一物化视图日志表、DD_SLOG表和DD_MLOG表中的至少一个,其中所述第一物化视图日志表包括所述主表的数据变化的内容;所述DD_SLOG表存储参考所述主表的所述物化视图的信息和所述物化视图的最后同步时间的信息中的至少一个;所述DD_MLOG表存储所述物化视图的最后同步时间的最早的最后刷新时间和最晚的最后刷新时间信息。


5.如权利要求4所述的方法,其中所述同步的确定包括:当确定所述数据未变化时确定不进行同步,当确定所述数据变化时确定进行同步。


6.如权利要求4所述的方法,进一步包括:
当所述同步完成时,
将所述DD_SLOG表中的所述最后同步时间改变为当前时间;
改变所述DD_MLOG表中的所述最早的最后刷新时间和最晚的最后刷新时间信息;和
从所述第一物化视图日志表中移除不必要的变化数据。


7.如权利要求1所述的方法,其中基于来自所述第二数据库服务器的用户的同步请求、预定同步周期和所述主表的数据变化的情况中的至少一个进行所述同步的确定。


8.如权利要求1所述的方法,其中所述同步是所述第一数据库服务器的所述主表和所述第二数据库服务器的所述物化视图之间的快速刷新。


9.一种用于对第二数据库服务器中运行的数据库之间的查询结果进行同步的方法,所述方法包括:
接收来自远离所述第二数据库服务器的第一数据库服务器的同步命令,其中所述第一数据库服务器中存在主表,所述第二数据库服务器中存在参考所述主表的物化视图,并且所述第一数据库服务器和所述第二数据库服务器是异构的,其中在检查存在于所述第一数据库服务器中并与所述主表相关的日志表集合以确定所述主表中的数据是否变化时接收所述同步命令,以及其中通过从存在于所述第一数据库服务器中的物化视图对象获取包括所述第一数据库服务器和第二数据库服务器之间的通信的数据库链接信息的元数据,产生所述同步命令;和
响应于接收到的所述同步命令,在存在于所述第二数据库服务器的所述物化视图和存在于所述第一数据库服务器的所述主表之间进行同步。


10.如权利要求9所述的方法,其中所述同步的进行包括将存在于所述第一数据库服务器中并与所述主表相关的日志表集合中的日志信息插入存在于所述第二数据库服务器的第二物化视图日志表中。


11.如...

【专利技术属性】
技术研发人员:李周玹朴相永李容在崔永宰姜奉材
申请(专利权)人:株式会社特迈数据
类型:发明
国别省市:韩国;KR

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

1