一种石油测井主从数据库系统实时同步系统和方法
【技术领域】
[0001]本发明涉及石油测井数据库系统领域,特别是涉及一种石油测井主从数据库系统实时同步系统和方法。
【背景技术】
[0002]测井数据库系统主要用于对各类测井数据进行管理以及基于数据库,对数据进行相关的处理、解释、评价等应用。随着数据库技术的发展、测井评价水平的不断提高以及对多井分析、区域综合评价需求的越来越强烈,传统的基于文件的处理无法满足目前的业务需求,因此,基于数据库的应用在石油行业已经成为一种趋势,随之面临的就是测井数据的共享和安全问题,而数据同步是解决数据共享和数据安全的一种有效的手段之一。然而对于数据库系统来讲,现有的数据同步方法有很多,但是无法满足数据文件和数据库数据同时同步、数据延时同步、同步验证等问题。
【发明内容】
[0003]为克服现有技术中的问题,本发明的目的是提供一种石油测井主从数据库系统实时同步接口,该接口提供实时监控服务、实时同步、失败处理、数据比对核实再次同步功能,提高数据的实时性,保证数据的完整。
[0004]为实现上述目的,本发明采用如下的技术方案:
[0005]—种石油测井主从数据库系统实时同步方法,包括以下步骤:
[0006]a)接口拦截器对主数据库的接口进行拦截,将拦截到的接口的参数及数据记录到数据库文件F中,通过接口管理器进行管理,同时将拦截到的接口发送到主数据库的实时监听器;
[0007]b)主数据库的实时监听器将所拦截到的接口实时发送到从数据库,并实时监控需要同步接口的调用情况、文件的传输情况、网络情况以及从数据库接收情况;
[0008]c)从数据库将接收到的接口,记录到数据库文件F中,并通过接口管理器进行管理;
[0009]d)主数据库通过数据传输器,将接口和需要解析的数据文件传输到从数据库中,从数据库的实时监听器进行监听,并接收接口和需要解析的数据文件;
[0010]e)从数据库按照接收的接口和需要解析的数据文件的先后顺序,反射执行接口和需要解析的数据文件,完成同步。
[0011 ]所述主数据库、从数据库数据结构、功能一致,并且异地部署。
[0012]进行步骤a)前,对主数据库和从数据库通过配置信息管理器进行定义和设置。
[0013]定义主数据库和从数据库的服务地址和端口、同步命令发送和接收端口、文件发送和接收端口、同步模式、失败命令处理模式、失败命令再次同步定时器。
[0014]进行步骤a)前,对主数据库的接口进行定义,主数据库的接口为涉及到修改数据的接口,包括增加、删除、更新、文件传输以及文件解析。
[0015]所述数据库文件F为多个,按照时间命名,命名为YMDH.db,其中Y表示年,Μ表示月,D表示日,Η表示小时。
[0016]所述数据库文件F中的参数及数据的格式为接口名、所属类、调用时间、调用服务器ΙΡ、端口、状态、开始调用时间、结束调用时间和参数。
[0017]实时发送到从数据库的接口,如果由于网络原因,导致发送失败,则会记录到数据库文件F中,是否发送成功状态置为0标识。
[0018]发送失败的接口,根据同步配置文件,定时再次发送进行同步;反射执行接口时,如果执行失败,则将失败的接口记录到数据库文件F中,并将是否执行成功状态置为0标识。
[0019]—种石油测井主从数据库系统实时同步系统,包括:
[0020]1)接口管理器,用于管理拦截到的接口,通过定义文件定义接口规范,同步的接口为使数据发送改变的接口,包括增加、删除、修改、更新、文件传送标志接口及传送文件接Ρ;
[0021]2)实时监听器,用于实时监控同步接口的调用情况、文件的传输情况、网络情况以及对方数据库接收情况;
[0022]3)接口拦截器,用于拦截接口,并按照时间存储到数据库文件F中;
[0023]4)配置信息管理器,用于管理两个数据库以及两个同步实时监听器的配置信息;
[0024]5)数据传输器,用于传送测井数据文件及文件正确性比对。
[0025]与现有技术相比,本发明具有的有益效果:
[0026]本发明通过接口拦截器,接口拦截器对主数据库的接口进行拦截,将拦截到的接口的参数及数据记录到数据库文件F中,通过接口管理器进行管理,同时将拦截到的接口发送到主数据库的实时监听器;主数据库的实时监听器将所拦截到的接口实时发送到从数据库,并实时监控需要同步接口的调用情况、文件的传输情况、网络情况以及从数据库接收情况;从数据库将接收到的接口,记录到数据库文件F中,并通过接口管理器进行管理;主数据库通过数据传输器,将数据文件传输到从数据库中,从数据库的实时监听器进行监听,并接收接口和文件;从数据库按照接收的接口和文件先后顺序,反射执行接口,完成同步,能够实现数据文件和数据库数据同时同步,克服了现有技术中无法满足数据文件和数据库数据同时同步的问题,本发明具有方法简单,易于实现的优点,并且实现了数据的共享,保证了数据的安全。
[0027]进一步的,本发明通过自定义数据同步各个参数控制数据同步的类型及操作,大大提高了系统的扩展性,相比于传统的数据同步接口,本接口能够满足主从数据库系统之间的实时同步,并且在网络环境或者系统异常情况下,具备异常处理方案,当环境或者系统恢复正常后,能够自动将之前的未同步数据进行同步,保证数据的完整性。应用本发明的数据库系统,支持异地部署同步,由于两个系统数据完全一致,使用用户可以根据自己的网络情况选择使用一个数据库系统,降低系统用户的并发访问量。
【附图说明】
[0028]图1为本发明系统的原理及流程图。
[0029]图2为同步系统参数说明图。
【具体实施方式】
[0030]为使本发明的技术方案、优点更加清楚,下面结合附图和具体实例对本发明进行进一步说明。
[0031 ]主数据库系统和从数据库系统,具有如下特点:
[0032]a)主从数据库系统由关系型数据库和数据文件组成,关系型数据库中存储数据文件的综合索引信息以及文件内部结构信息。
[0033]b)主从数据库系统数据结构、功能一致。
[0034]c)主从数据库系统异地部署。
[0035]—种石油测井主从数据库系统实时同步系统,包括:
[0036]1)接口管理器,用于管理需要拦截到的接口,通过定义文件定义接口规范。通常情况下,需要同步的接口为会使数据发送改变的接口,包括增加、删除、修改、更新、文件传送标志接口及传送文件接口 ;
[0037]2)实时监听器,用于实时监控需要同步接口的调用情况、文件的传输情况、网络情况以及对方数据库接收情况;
[0038]3)接口拦截器,用于拦截接口,并按照时间存储到数据库文件F中;
[0039]4)配置信息管理器,用于管理两个数据库以及两个同步实时监听器的配置信息;
[0040]5)数据传输器,用于传送测井数据文件及文件正确性比对。
[0041 ]本发明中数据库文件F为多个,按照时间命名,命名为YMDH.db,其中Y表示年,Μ表示月,D表示日,Η表示小时。
[0042]基于上述石油测井主从数据库系统实时同步系统的实时同步方法,包括以下步骤:
[0043]a)对主数据库和从数据库通过配置信息管理器进行定义和设置,定义主数据库和从数据库的服务地址和端口、同步命令发送和接收端口、文件发送和接收端口、同步模式、失败命令处理模式、失败命令再次同步定时器等。
[0044]对主数据库的接口进行定义,主数据库的接口为涉及到修改数据的接口,包括增加、删除、更新、文件传输以及文件解析等。
[0045]主数据库系统和从数据库系统在检测到同步启动后,则生成的数据库唯一主键为带有数据库节点标识的主键,该主键作为一条记录的唯一主键。
[0046]接口拦截器对主数据库的接口进行拦截,将拦截到的接口的参数及数据记录到一个数据库文件F中,同时将拦截到的接口发送到主数据库的实时监听器;
[0047]b)主数据库的实时监听器将所拦截到的接口实时发送到从数据库,并实时监控需要同步接口的调用情况、文件的传输情况、网络情况以及从数据库接收情况;拦截的接口按照接口调用顺序存储到一个数据库文件F中,数据库文件F按照小时生成,按照日期进行组织。如果因为网络原因,接口发送失败,则会在数据库文件中记录这条接口的记录设置为失败标识,再根据配置文件中定义的失败同步定时时间,再次发送该接口命令。
[0048]c)从数据库将接收到的接口,记录到数据库文件F中,并通过接口管理器进行管理;其中,数据库文件F为多个,按照时间命名,命名为YMDH.db,其中Y表示年,Μ表示月,D表示日,Η表示小时。数据库文件F中的参数及数据的格式为接口名、所属类、调用时间、、调用服务器IP、端口、状态、开始调用时间、结束调用时间和参数。如果从数据库系统中执行接口失败,则会把执行失败的命令记录到一个error目录
下的数据库文件中。
[0049]d)主数据库通过数据传输器,将接口和需要解析的数据文件传输到从数据库中,从数据库的实时监听器进行监听,并接收接口和需要解析的数据文件;实时发送到从数据库的接口,如果由于网络原因,导致发送失败,则会记录到数据库文件F中,是否发送成功状态置为0标识。
[0050]e)从数据库按照接收发的接口和需要解析的数据文件先后顺序,反射执行接口和需要解析的数据文件,完成同步。
[0051]实时发送到从数据库的接口,如果由于网络原因,导致发送失败,则会记录到数据库文件F中,是否发送成功状态置为0标识。
[0052]发送失败的接口,根据同步配置文件,定时再次发送进行同步;反射执行接口时,如果执行失败,则将失败的接口记录到数据库文件F中,并将是否执行成功置为0标识。
[0053]如图1所示,主数据库系统1和从数据库系统2为两个异地部署的数据库系统,两个数据库系统数据由关系型数据库和数据文件组成,其中数据文件的(综合索引信息)检索信息和文件内部结构信息存储在关系型数据库中。为了使主数据库系统1和从数据库系统2之间数据能够保持一致,并且要求数据文件与关系型数据库数据保持同步,本发明的数据库实时同步接口就是为了解决上述问题。
[0054]参见图1,实时同步系统包含数据库系统和实时同步系统。数据库系统的同步处理主要包括拦截器拦截服务请求的应用以及队列、Socket数据通信、服务反射执行等的相关应用。同步系统的同步处理主要包括队列、Socket数据通信、命令数据存储、quartz定时器、文件命令封装处理等的应用。
[0055]主数据库系统1接收网页或者应用客户端的接口服务请求后,接口拦截器拦截更新(IDU)服务请求,更新服务请求包括增加(Insert)、删除(Delete)和修改(Update)操作,构建命令对象并将命令对象发送到发送队列中,调用Socket与实时同步系统进行命令通信,将命令对象发送给实时同步系统。当Socket命令通信发生异常情况时,保存发送失败的命令对象到同步参数日志;实时同步系统(sync)定时同步参数日志中的失败命令。
[0056]实时同步系统启动Socket服务监听器接收命令对象请求,保存到接收队列,通过服务命令分发器将该命令对象保存到同步参数日志,同时,对于实时同步,分别将命令对象发送到非文件发送队列和文件发送队列。调用Socket服务命令通信,发送非文件发送队列中的服务命令对象与从数据库系统2进行接口服务同步;调用Socket文件命令通信,发送文件发送队列中的服务命令对象与从数据库系统2同步系统进行数据文件同步,同时,从数据库系统2同步系统根据接收到的文件命令对象读取文件解析服务接口命令,调用Socket服务命令通信与从数据库系统2进行文件解析服务接口数据同步。
[0057]从数据库系统2启动Socket服务监听器来接收非文件服务接口命令和文件服务接口命令;将接收到的服务命令保存到接收队列,进而执行反射接口服务接口操作;执行失败的命令保存到同步参数日志中。
[0058]图2为同步系统的参数说明,主要用于定义socket通信的服务ip和端口,需要重点说明的是参数sync.task.mode,同步任务模式。
[0059]0分别定时执行;1:连续执行。
[0060] ①当[sync.1nstant = 0]和[sync.task.mode = 1 ]时,连续执行命令发送失败的异常请求重新同步、文件命令解析失败重新同步、文件命令接收失败重新同步、清空缓存加载的四天前的db文件名称;执行监听定时任务。
[0061 ] ②当[sync.1nstant = 0]和[sync.task.mode = 0]时,分别执行命令发送失败的异常请求重新同步、文件命令解析失败重新同步、文件命令接收失败重新同步、清空缓存加载的四天前的db文件名称、执行监听定时任务。
[0062]③当[sync.1nstant = l]和[sync.task.mode = l]时,
[0063]连续执行命令发送失败的异常请求重新同步、文件命令解析失败重新同步、文件命令接收失败重新同步、未发送的直接请求同步、未发送的文件片段请求同步、清空缓存加载的四天前的db文件名称;执行监听定时任务。
[0064]④当[sync,instant = 1]和[sync.task.mode = 0]时,
[0065]分别执行命令发送失败的异常请求重新同步、文件命令解析失败重新同步、文件命令接收失败重新同步、未发送的直接请求同步、未发送的文件片段请求同步、清空缓存加载的四天前的db文件名称;执行监听定时任务。
【主权项】
1.一种石油测井主从数据库系统实时同步方法,其特征在于,包括以下步骤: a)接口拦截器对主数据库的接口进行拦截,将拦截到的接口的参数及数据记录到数据库文件F中,通过接口管理器进行管理,同时将拦截到的接口发送到主数据库的实时监听器; b)主数据库的实时监听器将所拦截到的接口实时发送到从数据库,并实时监控需要同步接口的调用情况、文件的传输情况、网络情况以及从数据库接收情况; c)从数据库将接收到的接口,记录到数据库文件F中,并通过接口管理器进行管理; d)主数据库通过数据传输器,将接口和需要解析的数据文件传输到从数据库中,从数据库的实时监听器进行监听,并接收接口和需要解析的数据文件; e)从数据库按照接收的接口和需要解析的数据文件的先后顺序,反射执行接口和需要解析的数据文件,完成同步。2.根据权利要求1所述的一种石油测井主从数据库系统实时同步方法,其特征在于,所述主数据库、从数据库数据结构、功能一致,并且异地部署。3.根据权利要求1所述的一种石油测井主从数据库系统实时同步方法,其特征在于,进行步骤a)前,对主数据库和从数据库通过配置信息管理器进行定义和设置。4.根据权利要求3所述的一种石油测井主从数据库系统实时同步方法,其特征在于,定义主数据库和从数据库的服务地址和端口、同步命令发送和接收端口、文件发送和接收端口、同步模式、失败命令处理模式、失败命令再次同步定时器。5.根据权利要求3所述的一种石油测井主从数据库系统实时同步方法,其特征在于,进行步骤a)前,对主数据库的接口进行定义,主数据库的接口为涉及到修改数据的接口,包括增加、删除、更新、文件传输以及文件解析。6.根据权利要求1所述的一种石油测井主从数据库系统实时同步方法,其特征在于,所述数据库文件F为多个,按照时间命名,命名为YMDH.db,其中Y表示年,Μ表示月,D表示日,Η表示小时。7.根据权利要求1或6所述的一种石油测井主从数据库系统实时同步方法,其特征在于,所述数据库文件F中的参数及数据的格式为接口名、所属类、调用时间、调用服务器ΙΡ、端口、状态、开始调用时间、结束调用时间和参数。8.根据权利要求1所述的一种石油测井主从数据库系统实时同步方法,其特征在于,实时发送到从数据库的接口,如果由于网络原因,导致发送失败,则会记录到数据库文件F中,是否发送成功状态置为0标识。9.根据权利要求1所述的一种石油测井主从数据库系统实时同步方法,其特征在于,发送失败的接口,根据同步配置文件,定时再次发送进行同步;反射执行接口时,如果执行失败,则将失败的接口记录到数据库文件F中,并将是否执行成功状态置为0标识。10.—种石油测井主从数据库系统实时同步系统,其特征在于,包括: 1)接口管理器,用于管理拦截到的接口,通过定义文件定义接口规范,同步的接口为使数据发送改变的接口,包括增加、删除、修改、更新、文件传送标志接口及传送文件接口 ; 2)实时监听器,用于实时监控同步接口的调用情况、文件的传输情况、网络情况以及对方数据库接收情况; 3)接口拦截器,用于拦截接口,并按照时间存储到数据库文件F中;4)配置信息管理器,用于管理两个数据库以及两个同步实时监听器的配置信息;5)数据传输器,用于传送测井数据文件及文件正确性比对。
【专利摘要】一种测井主从数据库系统实时同步系统和方法,接口拦截器对主数据库的接口进行拦截,将拦截到的接口的参数及数据记录到数据库文件F中,将拦截到的接口发送到主数据库的实时监听器;主数据库的实时监听器将所拦截到的接口实时发送到从数据库,并实时监控需要同步接口的调用情况、文件的传输情况以及从数据库接收情况;从数据库将接收到的接口,记录到数据库文件F中;主数据库将接口和需要解析的数据文件传输到从数据库中,从数据库的实时监听器进行监听,并接收接口和需要解析的数据文件;从数据库反射执行接口和需要解析的数据文件,完成同步。本发明具有方法简单,易于实现的优点,并且实现了数据的共享,保证了数据的安全。
【IPC分类】G06F17/30, H04L29/08
【公开号】CN105491106
【申请号】CN201510796739
【发明人】张娟, 段先斐, 余长江, 周军, 李国军, 雷蕾, 王青艳
【申请人】中国石油天然气集团公司, 中国石油集团测井有限公司
【公开日】2016年4月13日
【申请日】2015年11月18日