一种双单向数据库同步数据一致性保护方法与流程

文档序号:17762696发布日期:2019-05-24 21:50阅读:193来源:国知局
本发明涉及一种双单向数据库同步数据一致性保护方法,属于计算机数据处理领域。
背景技术
::目前,内外网之间采用网络隔离技术已经越来越普遍,在网络隔离环境下,采用数据库同步方式进行内、外网之间数据交换成为一种常见的数据交换方式。通常来说,很多应用系统需要在内、外网分别部署相同库、表结构的数据库,并经常需要由内网到外网和由外网到内网,2个方向的数据库同步,即双单向数据库同步。当网络隔离环境下进行双单向数据库同步时,由于内网数据库和外网数据库相互独立,因此,当内、外网同时操作数据库的相同表单时,会造成双单向数据库同步后,内外网数据库表单数据不一致,尤其是在内外网同时对相同主键的数据记录进行操作时,更容易产生内外网数据库记录不一致问题。技术实现要素:本发明提供一种双单向数据库同步数据一致性保护方法,通过检查源数据库锁状态,并将源数据库锁状态同步到目标数据库锁状态的方法,实现了内网和外网2个独立数据库之间的锁状态同步,从而保证了内、外网数据库同步数据的一致性。。本发明的技术方案包括一种双单向数据库同步数据一致性保护方法,其特征在于,所述方法包括:同步判定步骤,判断是否满足双单向数据库同步一致性条件;满足一致性条件,则执行双单向数据库同步任务;不满足一致性条件,则同步锁状态,停止双单向数据库同步任务;解锁判定步骤,间隔一个数据库同步周期并判断是否满足解除锁状态条件;满足解除锁状态,解除锁状态,重新判断是否满足双单向数据库同步一致性条件;不满足解除锁状态,重新返回间隔一个数据库同步周期步骤。在一个优选的实施方案中,同步判定步骤还包括:其中判断是否满足双单向数据库同步一致性条件具体为:检查数据库同步任务中,源数据库表单是否处于表级锁状态;检查数据库同步任务中,源数据库表单是否处于行级锁状态;检查数据库同步任务中,应用当前操作表中是否添加了源数据库表单;若满足以上任何一种条件,则判定为不满足双单向数据库同步一致性条件。在一个优选的实施方案中,同步判定步骤具体还包括:其中满足一致性条件的执行步骤具体为:内网数据库与外网数据库分别建立由内到外和由外到内2个独立的单向数据库同步任务,通过单向网络隔离设备实现网络隔离环境下的数据库同步;每个单向数据库同步任务都执行从源表触发器创建的删除、插入操作临时记录表单中读取记录,并将数据同步到目标数据库表单。在一个优选的实施方案中,同步判定步骤还包括:其中不满足一致性条件的执行步骤具体为:按照源数据库表单相同的锁状态,对目标数据库表单执行相同的锁状态;停止与表单有关的双单向数据库同步任务。在一个优选的实施方案中,解锁判定步骤还包括:其中间隔一个数据库同步周期并判断是否满足解除锁状态条件具体为等待数据库同步任务的预设间隔周期后,判断源数据库表单锁状态是否解除。在一个优选的实施方案中,解锁判定步骤还包括:其中满足解除锁状态的执行步骤为:解除目标数据库锁状态;重新返回判断是否满足双单向数据库同步一致性条件。在一个优选的实施方案中,解锁判定步骤还包括:其中不满足解除锁状态的执行步骤为重新返回间隔一个数据库同步周期步骤。本发明的有益效果为:采用简单方便的间隔一个数据库同步周期的方法,等待源数据库解锁,保证数据库数据同步一致性,减少数据库同步性能消耗。附图说明图1所示为根据本发明的方法的总体流程图。具体实施方式本发明的技术方案适用于网络隔离环境下双单向数据库同步数据一致性保护,以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本
技术领域
:的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。图1所示为根据本发明的方法的总体流程图。具体为为本发明提供的网络隔离环境下双单向数据库同步数据一致性保护方法一种实施方式流程示意图,在图中可以看出,在该双单向数据库同步数据一致性保护中,包括:s10判断是否满足双单向数据库同步一致性条件,s20执行双单向数据库同步任务,s30同步锁状态,停止双单向数据库同步任务,s40间隔一个数据库同步周期,s50判断是否满足解除锁状态条件,s60解除锁状态。基于图1,本发明的技术方案进一步提供了具体的实施方式,包括:在本实施方式中,首先建立双单向数据库同步任务,当同步任务源、目的数据库位于网络隔离的内网和外网,且为相同结构的数据库表单时,采用s10-判断是否满足双单向数据库同步一致性条件。在本实施方式中,s10判断是否满足双单向数据库同步一致性条件,主要是采用数据库语句,在每个数据库同步任务周期中,对源数据库进行锁状态检查,包括:检查数据库同步任务中,源数据库表单是否处于表级锁状态,不同数据库采用不同的表级锁状态查询语句,根据实际情况使用;检查数据库同步任务中,源数据库表单是否处于行级锁状态,不同数据库采用不同的行级锁状态查询语句,根据实际情况使用;检查数据库同步任务中,应用当前操作表中是否添加了源数据库表单,不同应用系统采用不同的应用当前操作表结构,根据实际情况使用;以上任何一种条件满足,则判定为不满足双单向数据库同步一致性条件。在本实施方式中,若是,执行双单向数据库同步任务,包括:内网数据库与外网数据库分别建立由内到外和由外到内2个独立的单向数据库同步任务,通过单向网络隔离设备实现网络隔离环境下的数据库同步。在本实施方式中,若否,同步锁状态,停止双单向数据库同步任务,按照源数据库表单相同的锁状态,对目标数据库表单执行相同的锁状态,不同数据库采用不同的锁执行语句,根据实际情况使用;并停止相应的双单向数据库同步任务。在本实施方式中,间隔一个数据库同步周期后,数据库同步任务再次查询源数据库锁状态,并判断是否满足解除锁状态条件。若源数据库所状态没有解除,则判断为否,重新返回间隔一个数据库同步周期步骤,不断重复直至源数据库表单锁状态解除;若源数据库所状态已解除,则判断为是,数据库同步任务解除对应的目标数据库表单锁状态,并恢复数据库同步任务工作,返回判断是否满足双单向数据库同步一致性条件,继续执行双单向数据库数据同步任务。在一实例中,内、外网间采用网络隔离技术,内、外网数据库均为mysql数据库,并分别创建了表结构相同的表单test_in和test_out。配置双单向数据库同步任务,同步任务1:即内网test_in数据库表单同步到外网test_out数据库表单;同步任务2:即外网test_in数据库表单同步到内网test_out数据库表单。缺省数据库同步任务周期为5秒。同步任务1和同步任务2每隔1秒(可以根据实际需要设置)分别对源数据库test_in和test_out进行锁状态检查;表级锁采用showstatuslike'table%'命令查询锁状态,其中,table参数为表单名。行级锁采用select*from表单名where主键='值'forupdate命令查询锁状态,应用当前操作表采用select*from应用当前操作表where字段='表单名'命令查询锁状态。当源数据库表单test_in处于锁状态时,同步任务1对目标数据库表单test_out设置与源数据库表单test_in一致的锁状态。当源数据库表单test_out处于锁状态时,同步任务2对目标数据库表单test_in设置与源数据库表单test_out一致的锁状态;同步任务1和同步任务2均停止数据库同步任务。mysql数据库对目标数据库表单设置锁采用locktabledb_bookwrite命令。每隔5秒,同步任务1和同步任务2分别查询test_in、test_out锁状态,当锁状态未解除时,继续等待5秒,再次查询锁状态。当源数据库锁状态解除时,同步任务对目标数据库表单解除锁状态。重新判断是否满足双单向数据库同步一致性条件后,恢复数据库同步任务。数据库同步任务,通过单向网络隔离设备实现网络隔离环境下的数据库同步;每个单向数据库同步任务都执行从源表触发器创建的删除、插入操作临时记录表单中读取记录,并将数据同步到目标数据库表单。本发明公开的一种网络隔离环境下双单向数据库同步数据一致性保护方法,通过检查源数据库锁状态,并将源数据库锁状态同步到目标数据库锁状态的方法,实现了内网和外网2个独立数据库之间的锁状态同步,从而保证了内、外网数据库同步数据的一致性。应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1