一种数据库主备环境下的日志解析服务切换的方法及设备与流程

文档序号:28161675发布日期:2021-12-24 20:16阅读:64来源:国知局
一种数据库主备环境下的日志解析服务切换的方法及设备【
技术领域
:】1.本发明涉及计算机
技术领域
:,特别是涉及一种数据库主备环境下的日志解析服务切换的方法及设备。
背景技术
::2.目前基于数据库日志分析的异构数据库复制技术应用广泛。这种技术在源端捕获出数据库的增量数据,然后发送到目标端,在目标端通过通用的数据库访问接口,将增量数据应用到目标数据库,实现数据复制。这种技术因为使用到通用数据库接口,因此支持异构数据库系统复制,支持异构操作系统环境,并且目标端备设备数据库系统可读写,是一种“双活”系统。3.源端数据库为了实现高可靠性,往往会搭建主备数据库(例如:oracledataguard)来实现高可用性。在这种环境下搭建数据同步时,日志解析服务也会在主备两个设备上进行搭建,但是同时只有一个设备上会启动日志解析服务来实现数据同步。当备设备发生故障时(例如宕机或是日志解析服务异常宕掉),主设备上的日志解析服务就会接管数据同步的工作,启动日志解析服务分析日志后同步。4.在数据库主备环境上搭建数据同步的现有的技术方案中,虽然源端数据库主设备和备设备上同时搭建了数据同步日志解析服务,但为了减轻日志解析服务对数据库性能的影响,日志解析服务通常运行在备设备上,只有当备设备异常时,数据库主设备上的数据同步才会启动日志解析服务来进行接管,实现数据同步在主备数据库环境下的高可用。但现有的技术方案存在以下一个问题,源端数据库主备环境搭建时,可能主设备和备设备走的是专用网络(例如:主备设备采用专用网卡直连的方式),当专用网络发生故障时,源端数据库主设备和备设备无法实现通讯会导致数据库主备之间同步的中断,数据库备设备无法接收到主设备的redo日志实现同步,这种情况下备设备的数据就不是实时的。如果数据同步的日志解析服务还运行在备设备上,那么主设备新增的数据修改就无法同步到数据同步的目标端,造成数据同步的中断。5.鉴于此,如何克服现有技术所存在的缺陷,解决源端数据库主备专用网络故障导致源端数据和目标端数据同步的中断问题,是本
技术领域
:待解决的难题。技术实现要素:6.针对现有技术的以上缺陷或改进需求,本发明提供一种数据库主备环境下的日志解析服务切换的方法及设备,源端数据同步服务分别运行在源端主备数据库设备上,数据同步服务在判断是否需要启动本机的日志解析服务时,不再仅仅依靠判断数据库自身的状态来实现(现有的方案是:如果当前设备上数据库是备设备状态,则优先启动日志解析服务),而是通过判断当前设备上数据库的当前数据快照时间来决定是否优先启动日志解析服务。当前数据快照时间指的是数据库中数据的最新修改时间。7.本发明实施例采用如下技术方案:8.第一方面,本发明提供了一种数据库主备环境下的日志解析服务切换的方法,包括:9.在源端主数据库的设备上创建定时更新当前时间列的辅助表;10.在源端主备数据库以及目标端数据库的设备上均部署数据同步服务;11.源端数据同步服务查询本设备辅助表中的当前时间列,从而获取本设备数据库的当前数据快照时间;12.源端数据同步服务获取本设备数据库在主备环境下的状态,根据主备状态的不同对获取的当前数据快照时间进行处理;13.源端数据同步服务将本设备处理后的当前数据快照时间向目标端数据同步服务进行注册,若注册成功,则启动日志解析服务进行日志解析和数据同步。14.进一步的,所述在源端主数据库的设备上创建定时更新当前时间列的辅助表具体包括:15.在源端主数据库的设备上创建辅助表,并在所述辅助表的时间列中插入当前系统时间;16.启动一个进程,每秒定时更新所述辅助表的时间列中的当前系统时间。17.进一步的,所述在源端主备数据库以及目标端数据库的设备上均部署数据同步服务具体包括:18.在源端主备数据库的两个设备上分别部署包含日志解析服务的数据同步服务,源端数据同步服务的日志解析服务用于从源端数据库读取日志并解析后发送到目标端;19.在目标端数据库的设备上部署数据同步服务,目标端数据同步服务用于将源端发送过来的同步操作应用到目标端数据库。20.进一步的,所述源端数据同步服务查询本设备辅助表中的当前时间列,从而获取本设备数据库的当前数据快照时间具体包括:21.源端数据同步服务查询本设备数据库中辅助表的时间列,将获取到的当前系统时间作为当前数据快照时间;22.在获取到当前数据快照时间后将当前数据快照时间转换为以秒为单位的整数。23.进一步的,所述源端数据同步服务获取本设备数据库在主备环境下的状态,根据主备状态的不同对获取的当前数据快照时间进行处理具体包括:24.源端数据同步服务获取本设备数据库在主备环境下的状态,判断本设备数据库是主数据库还是备数据库;25.如果是备数据库,则将获取到的当前数据快照时间加上n秒,如果是主数据库则保持当前数据快照时间不变;26.其中,所述n配置的越大,同步故障切换时间就越长;所述n配置的越小,则同步故障切换时间就越短。27.进一步的,所述源端数据同步服务将本设备处理后的当前数据快照时间向目标端数据同步服务进行注册,若注册成功,则启动日志解析服务进行日志解析和数据同步具体包括:28.源端数据同步服务将本设备处理后的当前数据快照时间向目标端数据同步服务进行注册;29.目标端数据同步服务在接收到注册请求命令后判断是否注册成功;30.源端数据同步服务接收目标端数据同步服务返回的注册结果,若注册成功,则启动日志解析服务进行日志解析和数据同步;若注册失败,则睡眠s秒后重新获取本设备数据库的当前数据快照时间并申请注册,其中,所述s秒表示定时尝试注册的间隔时间。31.进一步的,所述目标端数据同步服务在接收到注册请求命令后判断是否注册成功的具体判断规则包括:32.目标端数据同步服务中还没有其它注册节点,则允许当前注册设备的注册请求,返回注册成功;33.目标端数据同步服务中已经有一个注册节点,则对比当前注册设备的当前数据快照时间和已经注册设备的当前数据快照时间的大小,若已经注册设备的当前数据快照时间小于当前注册设备的当前数据快照时间,则关闭已经注册设备的同步通道,并允许当前注册设备的注册请求,返回注册成功;若已经注册设备的当前数据快照时间大于当前注册设备的当前数据快照时间,则拒绝当前注册设备的注册请求,返回注册失败。34.进一步的,还包括:35.在日志解析服务启动以后,创建一个调度线程,每隔1秒获取本设备数据库的当前数据快照时间并发送到目标端数据同步服务;36.目标端数据同步服务在接收到该设备数据库的当前数据快照时间后,找到对应设备的注册信息并更新它的当前数据快照时间;37.其中,所述调度线程在获取本设备数据库的当前数据快照时间时,对本设备数据库是否属于备数据库进行判断,如果是,则对当前数据快照时间进行加n秒后再发送到目标端数据同步服务。38.进一步的,还包括:39.在日志解析服务启动以后,若在发送同步的数据时发现链路通道被关闭,则重新获取本设备数据库的当前数据快照时间并申请注册。40.另一方面,本发明提供了一种数据库主备环境下的日志解析服务切换的设备,具体为:包括至少一个处理器和存储器,至少一个处理器和存储器之间通过数据总线连接,存储器存储能被至少一个处理器执行的指令,指令在被处理器执行后,用于完成第一方面中的数据库主备环境下的日志解析服务切换的方法。41.与现有技术相比,本发明的有益效果在于:通过分别对比源端主备数据库的当前数据快照时间来确定作主同步服务的设备,并且由目标端的数据同步服务来进行决策,这种方案可以有效进行源端同步设备的选择而不依赖于源端主备设备之间的专用网络。在本发明技术方案中,当专用网络故障一定时间以后,备设备的当前数据快照时间肯定会小于主设备的当前数据快照时间,从而备设备上的数据同步服务就可以切到数据库主设备上,使主设备启动日志解析服务,实现对目标端的数据同步。【附图说明】42.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。43.图1为本发明实施例1提供的一种数据库主备环境下的日志解析服务切换的方法流程图;44.图2为本发明实施例1提供的步骤100具体流程图;45.图3为本发明实施例1提供的步骤200具体流程图;46.图4为本发明实施例1提供的步骤300具体流程图;47.图5为本发明实施例1提供的步骤400具体流程图;48.图6为本发明实施例1提供的步骤500具体流程图;49.图7为本发明实施例1提供的步骤600具体流程图;50.图8为本发明实施例3提供的一种数据库主备环境下的日志解析服务切换的设备结构示意图。【具体实施方式】51.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。52.本发明是一种特定功能系统的体系结构,因此在具体实施例中主要说明各结构模组的功能逻辑关系,并不对具体软件和硬件实施方式做限定。53.此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明本发明。54.实施例1:55.如图1所示,本发明实施例提供一种数据库主备环境下的日志解析服务切换的方法,具体步骤如下。56.步骤100:在源端主数据库的设备上创建定时更新当前时间列的辅助表。57.步骤200:在源端主备数据库以及目标端数据库的设备上均部署数据同步服务。58.步骤300:源端数据同步服务查询本设备辅助表中的当前时间列,从而获取本设备数据库的当前数据快照时间。59.步骤400:源端数据同步服务获取本设备数据库在主备环境下的状态,根据主备状态的不同对获取的当前数据快照时间进行处理。60.步骤500:源端数据同步服务将本设备处理后的当前数据快照时间向目标端数据同步服务进行注册,若注册成功,则启动日志解析服务进行日志解析和数据同步。61.通过上述步骤,本发明实施例摒弃了传统源端数据库主备环境搭建时,数据同步服务仅仅依靠判断数据库自身的状态来实现的缺陷,而是将主设备和备设备的当前数据快照时间,发送到目标端数据同步服务,通过目标端数据同步服务来判定谁注册成功,注册成功的优先作主,以实现日志解析服务的主备切换功能。这样一来,即使主设备和备设备之间的专用网络发生故障,备设备无法实时更新数据,也还是能根据目标端数据同步服务的注册判定使主设备重新接受同步工作,不会造成数据同步的中断。62.如图2所示,在本优选实施例中,步骤100(在源端主数据库的设备上创建定时更新当前时间列的辅助表)具体包括:63.步骤101:在源端主数据库的设备上创建辅助表,并在所述辅助表的时间列中插入当前系统时间。64.步骤102:启动一个进程,每秒定时更新所述辅助表的时间列中的当前系统时间。65.对于本实施例的上述步骤,在数据库的主备环境中,主设备数据库可读可写,备设备数据库则提供只读服务,而在正常情况下,备设备数据库是实时和主设备数据库同步的,也就是说,在主备数据库正常的情况下,在数据库主设备写入某个数据,在备设备立刻就能查询到该数据。在不能直接通过数据库日志lsn转换得到当前日志时间的数据库中,就可以通过在数据库系统上创建辅助表,插入当前系统时间,然后定时在主备数据库的主设备上更新该辅助表中的当前系统时间,这样就可以在数据库备设备上也通过查询该辅助表获得备设备的当前日志时间(与当前系统时间一致),通过辅助表时间列来变相的得到备数据库最新数据的日志时间。66.由于源端主数据库有定时更新辅助表的时间列,更新为设备的最新系统时间(也即所述当前系统时间),所以在主数据库查询该时间列就可以得到最新的数据快照时间;而源端备数据库没有定时更新辅助表的时间列,它的时间列中的值是从主数据库同步而来,那么在备数据库查询该时间列就可以得到数据同步的数据快照时间,它和主数据库辅助表时间列中的值之差就是源端数据库主备之间同步的延迟时间。67.如图3所示,在本优选实施例中,步骤200(在源端主备数据库以及目标端数据库的设备上均部署数据同步服务)具体包括:68.步骤201:在源端主备数据库的两个设备上分别部署包含日志解析服务的数据同步服务。在该步骤中,源端数据同步服务的日志解析服务用于从源端数据库读取日志并解析后发送到目标端。69.步骤202:在目标端数据库的设备上部署数据同步服务。在该步骤中,目标端数据同步服务用于将源端发送过来的同步操作应用到目标端数据库,也即源端对目标端进行同步的数据由目标端数据同步服务进行接收并同步操作到目标端数据库。另外,目标端数据同步服务还用于分别与主备设备的源端数据同步服务进行交互,例如分别获取主备设备的源端数据同步服务发送的当前数据快照时间。70.需要说明的是,上述两个步骤为并列步骤,属于本发明实施例的数据同步服务部署阶段,实际部署时并不分先后顺序。71.如图4所示,在本优选实施例中,步骤300(源端数据同步服务查询本设备辅助表中的当前时间列,从而获取本设备数据库的当前数据快照时间)具体包括:72.步骤301:源端数据同步服务查询本设备数据库中辅助表的时间列,将获取到的当前系统时间作为当前数据快照时间。73.步骤302:在获取到当前数据快照时间后将当前数据快照时间转换为以秒为单位的整数。74.在本优选实施例的上述步骤中,由于源端数据库搭建的是主备环境,由于源端数据库搭建的是主备环境,在主设备上获取辅助表中的当前系统时间就是102步骤中每秒定时更新后的当前系统时间;而在备设备上,备设备上的数据是通过数据库redo日志同步还原而成,那么备设备上获取的辅助表中的当前系统时间就可以直接反映出数据库主备同步的状态,在主备同步正常的情况下,从备设备查询辅助表获取的时间和查询主设备是一致的,表明数据库主备同步无故障。另外,将当前数据快照时间转换为以秒为单位的整数是为了方便目标端数据同步服务进行主设备和备设备上当前数据快照时间的对比。75.如图5所示,在本优选实施例中,步骤400(源端数据同步服务获取本设备数据库在主备环境下的状态,根据主备状态的不同对获取的当前数据快照时间进行处理)具体包括:76.步骤401:源端数据同步服务获取本设备数据库在主备环境下的状态,判断本设备数据库是主数据库还是备数据库。77.步骤402:如果是备数据库,则将获取到的当前数据快照时间加上n秒,如果是主数据库则保持当前数据快照时间不变。78.在本优选实施例的上述步骤中,由于在源端数据库为主备环境时,为了尽量不影响源端数据库系统的性能,应该尽量把数据同步服务的日志解析服务运行在主备数据库的备数据库设备上,所以在获得当前设备为数据库的备设备时,需要把当前数据快照时间加上一个n秒,这样可以让备设备数据库有一个优先作主的机会,当主备设备间出现同步故障问题时,主设备在n秒后才能接管数据同步服务,其中,n可以根据实际同步环境的需求来配置,n配置的越大,同步故障切换时间就越长;n配置的越小,则同步故障切换时间就越短。79.在本优选实施例中,n在配置时可设置为动态配置,具体的,备数据库设备上的数据同步可以根据每秒读取的日志量来决定n的值,当每秒读取的日志量很大时,说明此时数据库上有大量的操作,主数据库设备压力大,所以将n的值配置增大,让数据同步的主机尽可能的留在备数据库的设备上,以免给主数据库上的设备添负。当每秒读取的日志量很小时或等于0时,这时有可能是主数据库负担小或是网络中断,应该将n的值配置减小,这样一来,如果是主数据库负担小,那么把数据同步的主机切到主数据库设备上也不会给主数据的设备造成太大的负担,如果是网络中断,那么更加应该把数据同步的主机切到主数据库设备上才能继续进行数据同步。80.如图6所示,在本优选实施例中,步骤500(源端数据同步服务将本设备处理后的当前数据快照时间向目标端数据同步服务进行注册,若注册成功,则启动日志解析服务进行日志解析和数据同步)具体包括:81.步骤501:源端数据同步服务将本设备处理后的当前数据快照时间向目标端数据同步服务进行注册。在该步骤中,如果本设备是备数据库所在的设备,也即备设备,则发送的当前数据快照时间是加上n秒以后的时间;如果本设备是主数据库所在的设备,也即主设备,则发送的当前数据快照时间不需做处理。82.步骤502:目标端数据同步服务在接收到注册请求命令后判断是否注册成功。在该步骤中判断是否注册成功的具体判断规则包括:目标端数据同步服务中还没有其它注册节点,则允许当前注册设备的注册请求,返回注册成功;目标端数据同步服务中已经有一个注册节点,则对比当前注册设备的当前数据快照时间和已经注册设备的当前数据快照时间的大小,若已经注册设备的当前数据快照时间小于当前注册设备的当前数据快照时间,则关闭已经注册设备的同步通道,并允许当前注册设备的注册请求,返回注册成功;若已经注册设备的当前数据快照时间大于当前注册设备的当前数据快照时间,则拒绝当前注册设备的注册请求,返回注册失败。83.步骤503:源端数据同步服务接收目标端数据同步服务返回的注册结果,若注册成功,则启动日志解析服务进行日志解析和数据同步。在该步骤中,若注册失败,则睡眠s秒后重新获取本设备数据库的当前数据快照时间并申请注册(即从步骤300开始循环重复),其中,所述s秒表示定时尝试注册的间隔时间。需要说明的是,在注册失败以后,说明另一方的设备有优先作主的级别,当前设备进入备选状态,所以需要通过定时尝试注册的方式来询问是否可以接管日志解析服务,而通过指定某个睡眠时间s就可以实现这一功能,其中的s可以根据实际需要来配置一个合适的值。84.在本优选实施例中,上述的s值可以根据当前所在的设备来动态配置一个合适的值。当数据同步运行在备数据库设备上时,s可以设置较大,因为此时备设备有优先作主的权力;当数据同步运行在主数据库设备上时,s可以设置较小,这样可以及时的把数据同步主机切到备数据库设备上,以便给主数据库设备减负。85.在本优选实施例中,除了上述步骤100‑步骤500的基础步骤,本实施例还包括步骤600:目标端数据同步服务对已注册设备的当前数据快照时间进行定时更新。86.具体的,如图7所示,在本优选实施例中,步骤600具体包括:87.步骤601:在日志解析服务启动以后,创建一个调度线程,每隔1秒获取本设备数据库的当前数据快照时间并发送到目标端数据同步服务。在该步骤中,所述调度线程在获取本设备数据库的当前数据快照时间时,对本设备数据库是否属于备数据库进行判断,如果是,则对当前数据快照时间进行加n秒后再发送到目标端数据同步服务。88.步骤602:目标端数据同步服务在接收到该设备数据库的当前数据快照时间后,找到对应设备的注册信息并更新它的当前数据快照时间。89.在本优选实施例的上述步骤中,目标端数据同步服务定时更新相应设备注册的当前数据快照时间,确保该设备的当前数据快照时间处在一个最新的状态。这是由于源端主备的另一台设备上的数据同步服务会不断的发送注册请求来询问是否可以作主,如果不更新现有同步作主的设备的当前数据快照时间,那么就会造成源端主备数据库上的日志解析服务不断的相互切换。90.在本优选实施例中,还包括以下步骤:在日志解析服务启动以后,若在发送同步的数据时发现链路通道被关闭,则重新获取本设备数据库的当前数据快照时间并申请注册。具体的,源端当前数据同步服务所在的设备作主时,如果此时另一台设备拥有更高的作主优先级,它就会在目标端数据同步服务中注册成功,此时,上次源端作主的设备和目标端建立的链路通道就会被关闭。原先作主的数据同步服务在发现链路通道被关闭以后,则重新获取本设备数据库的当前数据快照时间并申请注册,尝试重新获取作主的资格。91.综上所述,本实施例在源端数据库主备的环境下,备设备的数据快照时间(也即当前系统时间)是由主设备同步而来,所以直接从当前设备上的数据库获取的当前数据快照时间就是同步数据的时间。通过判断主备两个数据库的当前数据快照时间大小,设置当前数据快照时间大的作主就可以实现主备切换的功能。在向目标端数据同步服务注册时,把备设备数据库上的当前数据快照时间加上一个合理值,就可以实现备设备数据库上的数据同步优先作主的特性,简单而高效。因为源端数据库主备专用网络发生故障后,备设备数据库上的当前数据快照时间就会被固定在故障前的那一刻,而主设备数据库上的当前数据快照时间则会不断的推进,所以在这种情况下,只要故障时间超过所设定的值n,主设备上的数据同步服务在当前数据快照时间过n秒以后就会比备设备上注册的数据快照时间大,从而获取到作主的机会。92.其次,在不支持通过数据库日志lsn转换成当前日志时间的数据库上,通过在数据库主机上每秒定时更新辅助表中的时间列,然后通过查询该辅助表中的时间列就可以变相的得到数据库日志文件中最新数据的日志时间(也即数据快照时间)。通过该时间就可以获取主备数据库之间的同步状态和同步延时,不再仅仅依赖主备数据库的自身状态来判断谁该作数据同步的主机,从而有效的解决了主备数据库环境中专用网络故障造成数据同步系统数据不同步的问题。93.实施例2:94.基于实施例1提供的数据库主备环境下的日志解析服务切换的方法,本实施例2通过一个具体的应用场景来对本发明进行更详细的说明。95.本实施例以达梦数据库为例,其整个数据同步环境为:96.源端数据库使用达梦主备环境(采用redo日志进行主备同步)。97.目标端数据库则是oracle数据库。98.假设n和s都配置固定值,分别为5秒和3秒99.具体的,本实施例2基于实施例1所体现的操作步骤如下:100.在达梦数据库的主数据库设备上创建辅助表t并插入当前时间。101.createtablet(cdatetime);102.insertintot(c)values(sysdate);103.创建一个进程,每秒定时更新辅助表t中的时间列c为当前系统时间。104.updatetsetc=sysdate;105.在达梦数据库的主备数据库(主备数据库对应有主备设备)上分别搭建一个数据同步服务,用来进行日志解析。106.在oracle数据库上搭建一个数据同步服务用来接收和入库源端数据库的日志操作。107.在达梦数据库的主设备上启动数据同步服务,获取当前数据库辅助表t中的时间列c的当前系统时间,从而获得当前数据快照时间。108.获取当前数据快照时间的语句:selectcfromt;109.判断当前数据库的主备状态,当前是主设备,则把获取的当前数据快照时间发送到目标端数据同步服务进行注册。110.目标端数据同步服务还没有其它注册信息,按规则返回注册成功。111.达梦数据库主设备上的数据同步服务在目标端注册成功以后,启动日志解析服务并发送数据进行同步。112.创建调度线程,每秒获取主设备上辅助表t中的时间列c的当前系统时间作为当前数据快照时间发送到目标端数据同步服务,目标端同步进行更新主设备同步通道注册的当前数据快照时间。113.在达梦数据库的备设备上启动数据同步服务,获取当前数据库辅助表t中的时间列c的当前系统时间作为当前数据快照时间。114.判断当前数据库的主备状态,当前是备设备,用获取的当前数据快照时间加5秒后发送到目标端数据同步服务进行注册。115.目标端数据同步服务当前已经注册了源端数据库主设备上的同步通道,但是备设备注册的当前数据快照时间加5秒后会大于主设备通道上的当前数据快照时间,所以目标端数据同步服务会关闭主设备上的同步通道,然后给备设备返回注册成功,让备设备来作数据同步的主。116.达梦数据库备设备上的数据同步服务在开启日志解析成功以后会创建调度线程,每秒获取备设备上辅助表t中的时间列c的当前系统时间作为当前数据快照时间加5秒后发送到目标端数据同步服务,进行更新备设备同步通道注册的当前数据快照时间。117.达梦数据库主设备上的数据同步服务同步通道被断开以后会定时的重新获取辅助表t中的时间列c的当前系统时间作为当前数据快照时间,并尝试向目标端数据同步服务进行注册,由于目标端上备设备的数据快照时间一直被更新为最新的数据快照时间加5秒的值,导致注册不成功。118.断开源端达梦数据库主备之间专用网络,制造数据库主备不同步的故障。此时,源端达梦数据库备设备的辅助表t中的时间列c的当前系统时间不再被更新,备设备的当前数据快照时间将不再发生变化。在这种情况下,源端达梦数据库备设备上的数据同步通道注册的当前数据快照时间也将不再发生变化,而达梦数据库主设备上的当前数据快照时间仍然在不断的增大。119.达梦数据库主设备上的数据同步服务通道在被断开以后会定时每间隔3秒去获取辅助表t中的时间列c的当前系统时间作为当前数据快照时间,尝试向目标端数据同步服务进行注册,在断开源端达梦数据库主备之间专用网络5秒以后,该数据库主设备上使用的当前数据快照时间将会比现在达梦数据库备设备上注册的当前数据快照时间大。120.目标端数据同步服务当前已经注册了源端数据库备设备上的同步通道,但是备设备注册的当前数据快照时间已经停留在了5秒钟之前,所以目标端数据同步服务会关闭备设备上的同步通道,然后给主设备返回注册成功,让主设备来作数据同步的主,从而解决了源端数据库主备专用网络故障以后数据库主设备上的日志解析服务不接管的问题。121.通过上述步骤可看出,本实施例通过分别对比源端主备数据库的当前数据快照时间来确定作主同步服务的设备,并且由目标端的数据同步服务来进行决策,这种方案可以有效进行源端同步设备的选择而不依赖于源端主备设备之间的专用网络。在本发明技术方案中,当专用网络故障一定时间以后,备设备的当前数据快照时间肯定会小于主设备的当前数据快照时间,从而备设备上的数据同步服务就可以切到数据库主设备上,使主设备启动日志解析服务,实现对目标端的数据同步。122.实施例3:123.在上述实施例1至实施例2提供的数据库主备环境下的日志解析服务切换的方法的基础上,本发明还提供了一种可用于实现上述方法的数据库主备环境下的日志解析服务切换的设备,如图8所示,是本发明实施例的设备架构示意图。本实施例的数据库主备环境下的日志解析服务切换的设备包括一个或多个处理器21以及存储器22。其中,图8中以一个处理器21为例。124.处理器21和存储器22可以通过总线或者其他方式连接,图8中以通过总线连接为例。125.存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1至实施例2中的数据库主备环境下的日志解析服务切换的方法、系统。处理器21通过运行存储在存储器22中的非易失性软件程序、指令以及模块,从而执行数据库主备环境下的日志解析服务切换的设备的各种功能应用以及数据处理,即实现实施例1至实施例2的数据库主备环境下的日志解析服务切换的方法。126.存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。127.程序指令/模块存储在存储器22中,当被一个或者多个处理器21执行时,执行上述实施例1至实施例2中的数据库主备环境下的日志解析服务切换的方法,例如,执行以上描述的图1至图7所示的各个步骤。128.本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(readonlymemory,简写为:rom)、随机存取存储器(randomaccessmemory,简写为:ram)、磁盘或光盘等。129.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1