CN113836231A - 一种数据库主备环境下的日志解析服务切换的方法及设备 - Google Patents

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

Info

Publication number
CN113836231A
CN113836231A CN202111115851.7A CN202111115851A CN113836231A CN 113836231 A CN113836231 A CN 113836231A CN 202111115851 A CN202111115851 A CN 202111115851A CN 113836231 A CN113836231 A CN 113836231A
Authority
CN
China
Prior art keywords
database
data synchronization
equipment
service
standby
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111115851.7A
Other languages
English (en)
Other versions
CN113836231B (zh
Inventor
孙峰
余院兰
徐娜
彭青松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Dream Database Co Ltd
Original Assignee
Wuhan Dream Database Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Dream Database Co Ltd filed Critical Wuhan Dream Database Co Ltd
Priority to CN202111115851.7A priority Critical patent/CN113836231B/zh
Publication of CN113836231A publication Critical patent/CN113836231A/zh
Application granted granted Critical
Publication of CN113836231B publication Critical patent/CN113836231B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2477Temporal data queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种数据库主备环境下的日志解析服务切换的方法及设备。其方法部分主要包括:在源端主备数据库以及目标端数据库的设备上均部署数据同步服务;源端数据同步服务获取本设备数据库的当前日志时间;源端数据同步服务获取本设备数据库在主备环境下的状态,根据主备状态的不同对获取的当前日志时间进行处理;源端数据同步服务将本设备处理后的当前日志时间向目标端数据同步服务进行注册,若注册成功,则启动日志解析服务进行日志解析和数据同步。本发明采用的方法不再仅仅依靠判断数据库自身的状态来实现日志解析服务的切换,而是通过判断当前设备上数据库的当前日志时间来决定是否优先启动日志解析服务。

Description

一种数据库主备环境下的日志解析服务切换的方法及设备
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据库主备环境下的日志解析服务切换的方法及设备。
背景技术
目前基于数据库日志分析的异构数据库复制技术应用广泛。这种技术在源端捕获出数据库的增量数据,然后发送到目标端,在目标端通过通用的数据库访问接口,将增量数据应用到目标数据库,实现数据复制。这种技术因为使用到通用数据库接口,因此支持异构数据库系统复制,支持异构操作系统环境,并且目标端备设备数据库系统可读写,是一种“双活”系统。
源端数据库为了实现高可靠性,往往会搭建主备数据库(例如:OracleDataGuard)来实现高可用性。在这种环境下搭建数据同步时,日志解析服务也会在主备两个设备上进行搭建,但是同时只有一个设备上会启动日志解析服务来实现数据同步。当备设备发生故障时(例如宕机或是日志解析服务异常宕掉),主设备上的日志解析服务就会接管数据同步的工作,启动日志解析服务分析日志后同步。
在数据库主备环境上搭建数据同步的现有的技术方案中,虽然源端数据库主设备和备设备上同时搭建了数据同步日志解析服务,但为了减轻日志解析服务对数据库性能的影响,日志解析服务通常运行在备设备上,只有当备设备异常时,数据库主设备上的数据同步才会启动日志解析服务来进行接管,实现数据同步在主备数据库环境下的高可用。但现有的技术方案存在以下一个问题,源端数据库主备环境搭建时,可能主设备和备设备走的是专用网络(例如:主备设备采用专用网卡直连的方式),当专用网络发生故障时,源端数据库主设备和备设备无法实现通讯会导致数据库主备之间同步的中断,数据库备设备无法接收到主设备的REDO日志实现同步,这种情况下备设备的数据就不是实时的。如果数据同步的日志解析服务还运行在备设备上,那么主设备新增的数据修改就无法同步到数据同步的目标端,造成数据同步的中断。
鉴于此,如何克服现有技术所存在的缺陷,解决源端数据库主备专用网络故障导致源端数据和目标端数据同步的中断问题,是本技术领域待解决的难题。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供一种数据库主备环境下的日志解析服务切换的方法及设备,源端数据同步服务分别运行在源端主备数据库设备上,数据同步服务在判断是否需要启动本机的日志解析服务时,不再仅仅依靠判断数据库自身的状态来实现(现有的方案是:如果当前设备上数据库是备设备状态,则优先启动日志解析服务),而是通过判断当前设备上数据库的当前日志时间来决定是否优先启动日志解析服务。当前日志时间指的是数据库日志文件中最后一条日志数据的写入时间。
在某些数据库(例如:ORACLE)上可以通过当前日志的LSN转换得到日志中数据的当前日志时间,在这种数据库的主备环境上,主设备和备设备的数据同步服务通过获取当前设备上数据库的日志LSN,然后再转换成相应的当前日志时间,发送到目标端数据同步服务,目标端数据同步服务对比两个设备上发过来的当前日志时间,以当前日志时间大的优先作主,来实现日志解析服务的主备切换功能。
本发明实施例采用如下技术方案:
第一方面,本发明提供了一种数据库主备环境下的日志解析服务切换的方法,包括:
在源端主备数据库以及目标端数据库的设备上均部署数据同步服务;
源端数据同步服务获取本设备数据库的当前日志时间;
源端数据同步服务获取本设备数据库在主备环境下的状态,根据主备状态的不同对获取的当前日志时间进行处理;
源端数据同步服务将本设备处理后的当前日志时间向目标端数据同步服务进行注册,若注册成功,则启动日志解析服务进行日志解析和数据同步。
进一步的,所述在源端主备数据库以及目标端数据库的设备上均部署数据同步服务具体包括:
在源端主备数据库的两个设备上分别部署包含日志解析服务的数据同步服务,源端数据同步服务的日志解析服务用于从源端数据库读取日志并解析后发送到目标端;
在目标端数据库的设备上部署数据同步服务,目标端数据同步服务用于将源端发送过来的同步操作应用到目标端数据库。
进一步的,所述源端数据同步服务获取本设备数据库的当前日志时间具体包括:
源端数据同步服务获取本设备数据库的当前日志LSN;
通过数据库函数将当前日志LSN转换为相对应的当前日志时间;
在获取到当前日志时间后将当前日志时间转换为以秒为单位的整数。
进一步的,所述源端数据同步服务获取本设备数据库在主备环境下的状态,根据主备状态的不同对获取的当前日志时间进行处理具体包括:
源端数据同步服务获取本设备数据库在主备环境下的状态,判断本设备数据库是主数据库还是备数据库;
如果是备数据库,则将获取到的当前日志时间加上N秒,如果是主数据库则保持当前日志时间不变;
其中,所述N配置的越大,同步故障切换时间就越长;所述N配置的越小,则同步故障切换时间就越短。
进一步的,所述源端数据同步服务将本设备处理后的当前日志时间向目标端数据同步服务进行注册,若注册成功,则启动日志解析服务进行日志解析和数据同步具体包括:
源端数据同步服务将本设备处理后的当前日志时间向目标端数据同步服务进行注册;
目标端数据同步服务在接收到注册请求命令后判断是否注册成功;
源端数据同步服务接收目标端数据同步服务返回的注册结果,若注册成功,则启动日志解析服务进行日志解析和数据同步。
进一步的,所述目标端数据同步服务在接收到注册请求命令后判断是否注册成功的具体判断规则包括:
目标端数据同步服务中还没有其它注册节点,则允许当前注册设备的注册请求,返回注册成功;
目标端数据同步服务中已经有一个注册节点,则对比当前注册设备的当前日志时间和已经注册设备的当前日志时间的大小,若已经注册设备的当前日志时间小于当前注册设备的当前日志时间,则关闭已经注册设备的同步通道,并允许当前注册设备的注册请求,返回注册成功;若已经注册设备的当前日志时间大于当前注册设备的当前日志时间,则拒绝当前注册设备的注册请求,返回注册失败。
进一步的,还包括:若注册失败,则睡眠S秒后重新获取本设备数据库的当前日志时间并申请注册,其中,所述S秒表示定时尝试注册的间隔时间。
进一步的,还包括:
在日志解析服务启动以后,创建一个调度线程,每隔1秒获取本设备数据库的当前日志时间并发送到目标端数据同步服务;
目标端数据同步服务在接收到该设备数据库的当前日志时间后,找到对应设备的注册信息并更新它的当前日志时间;
其中,所述调度线程在获取本设备数据库的当前日志时间时,对本设备数据库是否属于备数据库进行判断,如果是,则对当前日志时间进行加N秒后再发送到目标端数据同步服务。
进一步的,还包括:
在日志解析服务启动以后,若在发送同步的数据时发现链路通道被关闭,则重新获取本设备数据库的当前日志时间并申请注册。
另一方面,本发明提供了一种数据库主备环境下的日志解析服务切换的设备,具体为:包括至少一个处理器和存储器,至少一个处理器和存储器之间通过数据总线连接,存储器存储能被至少一个处理器执行的指令,指令在被处理器执行后,用于完成第一方面中的数据库主备环境下的日志解析服务切换的方法。
与现有技术相比,本发明的有益效果在于:通过分别对比源端主备数据库的当前日志时间来确定作主同步服务的设备,并且由目标端的数据同步服务来进行决策,这种方案可以有效进行源端同步设备的选择而不依赖于源端主备设备之间的专用网络。在本发明技术方案中,当专用网络故障一定时间以后,备设备的当前日志时间肯定会小于主设备的当前日志时间,从而备设备上的数据同步服务就可以切到数据库主设备上,使主设备启动日志解析服务,实现对目标端的数据同步。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种数据库主备环境下的日志解析服务切换的方法流程图;
图2为本发明实施例1提供的步骤100具体流程图;
图3为本发明实施例1提供的步骤200具体流程图;
图4为本发明实施例1提供的步骤300具体流程图;
图5为本发明实施例1提供的步骤400具体流程图;
图6为本发明实施例1提供的步骤500具体流程图;
图7为本发明实施例3提供的一种数据库主备环境下的日志解析服务切换的设备结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明是一种特定功能系统的体系结构,因此在具体实施例中主要说明各结构模组的功能逻辑关系,并不对具体软件和硬件实施方式做限定。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明本发明。
实施例1:
如图1所示,本发明实施例提供一种数据库主备环境下的日志解析服务切换的方法,具体步骤如下。
步骤100:在源端主备数据库以及目标端数据库的设备上均部署数据同步服务。
步骤200:源端数据同步服务获取本设备数据库的当前日志时间。
步骤300:源端数据同步服务获取本设备数据库在主备环境下的状态,根据主备状态的不同对获取的当前日志时间进行处理。
步骤400:源端数据同步服务将本设备处理后的当前日志时间向目标端数据同步服务进行注册,若注册成功,则启动日志解析服务进行日志解析和数据同步。
通过上述步骤,本发明实施例摒弃了传统源端数据库主备环境搭建时,数据同步服务仅仅依靠判断数据库自身的状态来实现的缺陷,而是将主设备和备设备的当前日志时间,发送到目标端数据同步服务,通过目标端数据同步服务来判定谁注册成功,注册成功的优先作主,以实现日志解析服务的主备切换功能。这样一来,即使主设备和备设备之间的专用网络发生故障,备设备无法实时更新数据,也还是能根据目标端数据同步服务的注册判定使主设备重新接受同步工作,不会造成数据同步的中断。
如图2所示,在本优选实施例中,步骤100(在源端主备数据库以及目标端数据库的设备上均部署数据同步服务)具体包括:
步骤101:在源端主备数据库的两个设备上分别部署包含日志解析服务的数据同步服务。在该步骤中,源端数据同步服务的日志解析服务用于从源端数据库读取日志并解析后发送到目标端。
步骤102:在目标端数据库的设备上部署数据同步服务。在该步骤中,目标端数据同步服务用于将源端发送过来的同步操作应用到目标端数据库,也即源端对目标端进行同步的数据由目标端数据同步服务进行接收并同步操作到目标端数据库。另外,目标端数据同步服务还用于分别与主备设备的源端数据同步服务进行交互,例如分别获取主备设备的源端数据同步服务发送的当前日志时间。
需要说明的是,上述两个步骤为并列步骤,属于本发明实施例的数据同步服务部署阶段,实际部署时并不分先后顺序。
如图3所示,在本优选实施例中,步骤200(源端数据同步服务获取本设备数据库的当前日志时间)具体包括:
步骤201:源端数据同步服务获取本设备数据库的当前日志LSN。
步骤202:通过数据库函数将当前日志LSN转换为相对应的当前日志时间。例如:在ORACLE数据库上可以通过执行查询语句SELECT SCN_TO_TIMESTAMP(SCN)FROM DUAL来获取日志中SCN对应的时间。
步骤203:在获取到当前日志时间后将当前日志时间转换为以秒为单位的整数。
在本优选实施例的上述步骤中,由于源端数据库搭建的是主备环境,所以在获取当前日志时间时不用管本设备的数据库是主设备还是备设备上的,在主备环境下数据库中的当前日志时间都是来自于主设备上的操作。因为备设备上的数据库当前日志时间也是主设备同步过来的。所以获取当前设备上数据库的当前日志时间就可以清楚的知道当前数据库中的数据在整个主备环境下的新旧程度。另外,将当前日志时间转换为以秒为单位的整数是为了方便目标端数据同步服务进行主设备和备设备上当前日志时间的对比。
如图4所示,在本优选实施例中,步骤300(源端数据同步服务获取本设备数据库在主备环境下的状态,根据主备状态的不同对获取的当前日志时间进行处理)具体包括:
步骤301:源端数据同步服务获取本设备数据库在主备环境下的状态,判断本设备数据库是主数据库还是备数据库。
步骤302:如果是备数据库,则将获取到的当前日志时间加上N秒,如果是主数据库则保持当前日志时间不变。
在本优选实施例的上述步骤中,由于在源端数据库为主备环境时,为了尽量不影响源端数据库系统的性能,应该尽量把数据同步服务的日志解析服务运行在主备数据库的备数据库设备上,所以在获得当前设备为数据库的备设备时,需要把当前日志时间加上一个N秒,这样可以让备设备数据库有一个优先作主的机会,当主备设备间出现同步故障问题时,主设备在N秒后才能接管数据同步服务,其中,N可以根据实际同步环境的需求来配置,N配置的越大,同步故障切换时间就越长;N配置的越小,则同步故障切换时间就越短。
在本优选实施例中,N在配置时可设置为动态配置,具体的,备数据库设备上的数据同步可以根据每秒读取的日志量来决定N的值,当每秒读取的日志量很大时,说明此时数据库上有大量的操作,主数据库设备压力大,所以将N的值配置增大,让数据同步的主机尽可能的留在备数据库的设备上,以免给主数据库上的设备添负。当每秒读取的日志量很小时或等于0时,这时有可能是主数据库负担小或是网络中断,应该将N的值配置减小,这样一来,如果是主数据库负担小,那么把数据同步的主机切到主数据库设备上也不会给主数据的设备造成太大的负担,如果是网络中断,那么更加应该把数据同步的主机切到主数据库设备上才能继续进行数据同步。
如图5所示,在本优选实施例中,步骤400(源端数据同步服务将本设备处理后的当前日志时间向目标端数据同步服务进行注册,若注册成功,则启动日志解析服务进行日志解析和数据同步)具体包括:
步骤401:源端数据同步服务将本设备处理后的当前日志时间向目标端数据同步服务进行注册。在该步骤中,如果本设备是备数据库所在的设备,也即备设备,则发送的当前日志时间是加上N秒以后的时间;如果本设备是主数据库所在的设备,也即主设备,则发送的当前日志时间不需做处理。
步骤402:目标端数据同步服务在接收到注册请求命令后判断是否注册成功。在该步骤中判断是否注册成功的具体判断规则包括:目标端数据同步服务中还没有其它注册节点,则允许当前注册设备的注册请求,返回注册成功;目标端数据同步服务中已经有一个注册节点,则对比当前注册设备的当前日志时间和已经注册设备的当前日志时间的大小,若已经注册设备的当前日志时间小于当前注册设备的当前日志时间,则关闭已经注册设备的同步通道,并允许当前注册设备的注册请求,返回注册成功;若已经注册设备的当前日志时间大于当前注册设备的当前日志时间,则拒绝当前注册设备的注册请求,返回注册失败。
步骤403:源端数据同步服务接收目标端数据同步服务返回的注册结果,若注册成功,则启动日志解析服务进行日志解析和数据同步。在该步骤中,若注册失败,则睡眠S秒后重新获取本设备数据库的当前日志时间并申请注册(即从步骤200开始循环重复),其中,所述S秒表示定时尝试注册的间隔时间。需要说明的是,在注册失败以后,说明另一方的设备有优先作主的级别,当前设备进入备选状态,所以需要通过定时尝试注册的方式来询问是否可以接管日志解析服务,而通过指定某个睡眠时间S就可以实现这一功能。
在本优选实施例中,上述的S值可以根据当前所在的设备来动态配置一个合适的值。当数据同步运行在备数据库设备上时,S可以设置较大,因为此时备设备有优先作主的权力;当数据同步运行在主数据库设备上时,S可以设置较小,这样可以及时的把数据同步主机切到备数据库设备上,以便给主数据库设备减负。
在本优选实施例中,除了上述步骤100-步骤400的基础步骤,本实施例还包括步骤500:目标端数据同步服务对已注册设备的当前日志时间进行定时更新。
具体的,如图6所示,在本优选实施例中,步骤500具体包括:
步骤501:在日志解析服务启动以后,创建一个调度线程,每隔1秒获取本设备数据库的当前日志时间并发送到目标端数据同步服务。在该步骤中,所述调度线程在获取本设备数据库的当前日志时间时,对本设备数据库是否属于备数据库进行判断,如果是,则对当前日志时间进行加N秒后再发送到目标端数据同步服务。
步骤502:目标端数据同步服务在接收到该设备数据库的当前日志时间后,找到对应设备的注册信息并更新它的当前日志时间。
在本优选实施例的上述步骤中,目标端数据同步服务定时更新相应设备注册的当前日志时间,确保该设备的当前日志时间处在一个最新的状态。这是由于源端主备的另一台设备上的数据同步服务会不断的发送注册请求来询问是否可以作主,如果不更新现有同步作主的设备的当前日志时间,那么就会造成源端主备数据库上的日志解析服务不断的相互切换。
在本优选实施例中,还包括以下步骤:在日志解析服务启动以后,若在发送同步的数据时发现链路通道被关闭,则重新获取本设备数据库的当前日志时间并申请注册。具体的,源端当前数据同步服务所在的设备作主时,如果此时另一台设备拥有更高的作主优先级,它就会在目标端数据同步服务中注册成功,此时,上次源端作主的设备和目标端建立的链路通道就会被关闭。原先作主的数据同步服务在发现链路通道被关闭以后,则重新获取本设备数据库的当前日志时间并申请注册,尝试重新获取作主的资格。
综上所述,本实施例在源端数据库主备的环境下,备设备的日志时间是由主设备同步而来,所以直接从当前设备上的数据库获取的当前日志时间就是同步数据的时间。通过判断主备两个数据库的当前日志时间大小,设置当前日志时间大的作主就可以实现主备切换的功能。在向目标端数据同步服务注册时,把备设备数据库上的当前日志时间加上一个合理值,就可以实现备设备数据库上的数据同步优先作主的特性,简单而高效。因为源端数据库主备专用网络发生故障后,备设备数据库上的当前日志时间就会被固定在故障前的那一刻,而主设备数据库上的当前日志时间则会不断的推进,所以在这种情况下,只要故障时间超过所设定的值N,主设备上的数据同步服务在当前日志时间过N秒以后就会比备设备上注册的日志时间大,从而获取到作主的机会。
其次,在现有同步高可用方案中主备的实现方式往往会采用主备之间通过专用网络的心跳线来相互判断对方的状态来决定是否可以作主,这种方式同样也会受专用网络故障的影响。而本方案的主备两个数据同步服务采用向目标端数据同步服务使用当前日志时间注册的方式来询问是否可以作主,由目标端数据同步服务统一进行决策得出由谁作主,这样可以有效的防止出现双主的现象,从而有效的解决主备数据库环境中专用网络故障所造成的数据同步系统数据不同步的问题。
实施例2:
基于实施例1提供的数据库主备环境下的日志解析服务切换的方法,本实施例2通过一个具体的应用场景来对本发明进行更详细的说明。
本实施例以ORACLE数据库为例,其整个数据同步环境为:
源端数据库使用DATAGUARD搭建的ORACLE主备环境。
目标端数据库则是达梦数据库。
假设N和S都配置固定值,分别为5秒和3秒
具体的,本实施例2基于实施例1所体现的操作步骤如下:
1.在ORACLE数据库的主备数据库(主备数据库对应有主备设备)上分别搭建一个数据同步服务,用来进行日志解析。
2.在达梦数据库上搭建一个数据同步服务用来接收和入库源端数据库的日志操作。
3.在ORACLE数据库的主设备上启动数据同步服务,获取当前数据库日志的LSN。
获取LSN的语句:SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROMDUAL;
4.把取到的当前日志LSN转换为当前日志时间。
执行语句:SELECT SCN_TO_TIMESTAMP(LSN)FROM DUAL。
5.判断当前数据库的主备状态,当前是主设备,则把获取的当前日志时间不作变化,发送到目标端数据同步服务进行注册。
6.目标端数据同步服务还没有其它注册信息,按规则返回注册成功。
7.ORACLE数据库主设备上的数据同步服务在目标端注册成功以后,启动日志解析服务并发送数据进行同步。
8.创建调度线程,每秒获取主设备上的当前日志时间后发送到目标端数据同步服务,目标端同步进行更新主设备同步通道注册的当前日志时间。
9.在ORACLE数据库的备设备上启动数据同步服务,获取当前数据库日志的LSN。
10.把取到的当前日志LSN转换为当前日志时间。
11.判断当前数据库的主备状态,当前是备设备,用获取的当前日志时间加5秒后发送到目标端数据同步服务进行注册。
12.目标端数据同步服务当前已经注册了源端数据库主设备上的同步通道,但是备设备注册的当前日志时间大于主设备通道上的当前日志时间,所以目标端数据同步服务会关闭主设备上的同步通道,然后给备设备返回注册成功,让备设备来作数据同步的主。
13.ORACLE数据库备设备上的数据同步服务在开启日志解析成功以后会创建调度线程,每秒获取备设备上的当前日志时间加5秒后发送到目标端数据同步服务,进行更新备设备同步通道注册的当前日志时间。
14.ORACLE数据库主设备上的数据同步服务间隔的使用当前日志时间尝试向目标端数据同步服务进行注册,由于目标端上备设备的当前日志时间一直被更新为最新的日志时间加5秒,导致主设备注册不成功。
15.断开源端ORACLE数据库主备之间专用网络,制造数据库主备不同步的故障。此时,源端ORACLE数据库备设备的当前日志时间将不再发生变化。在这种情况下,源端ORACLE数据库备设备上的数据同步通道注册的当前日志时间也将不再发生变化,而ORACLE数据库主设备上的当前日志时间仍然在不断的增大。
16.ORACLE数据库主设备上的数据同步服务通道在被断开以后会定时每间隔3秒使用当前日志时间尝试向目标端数据同步服务进行注册,在断开源端ORACLE数据库主备之间专用网络5秒以后,该数据库主设备上使用的当前日志时间将会比现在ORACLE数据库备设备上注册的当前日志时间大。
17.目标端数据同步服务当前已经注册了源端数据库备设备上的同步通道,但是备设备注册的当前日志时间已经停留在了5秒钟之前,所以目标端数据同步服务会关闭备设备上的同步通道,然后给主设备返回注册成功,让主设备来作数据同步的主,从而解决了源端数据库主备专用网络故障以后数据库主设备上的日志解析服务不接管的问题。
通过上述步骤可看出,本实施例通过分别对比源端主备数据库的当前日志时间来确定作主同步服务的设备,并且由目标端的数据同步服务来进行决策,这种方案可以有效进行源端同步设备的选择而不依赖于源端主备设备之间的专用网络。在本发明技术方案中,当专用网络故障一定时间以后,备设备的当前日志时间肯定会小于主设备的当前日志时间,从而备设备上的数据同步服务就可以切到数据库主设备上,使主设备启动日志解析服务,实现对目标端的数据同步。
实施例3:
在上述实施例1至实施例2提供的数据库主备环境下的日志解析服务切换的方法的基础上,本发明还提供了一种可用于实现上述方法的数据库主备环境下的日志解析服务切换的设备,如图7所示,是本发明实施例的设备架构示意图。本实施例的数据库主备环境下的日志解析服务切换的设备包括一个或多个处理器21以及存储器22。其中,图7中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图7中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1至实施例2中的数据库主备环境下的日志解析服务切换的方法、系统。处理器21通过运行存储在存储器22中的非易失性软件程序、指令以及模块,从而执行数据库主备环境下的日志解析服务切换的设备的各种功能应用以及数据处理,即实现实施例1至实施例2的数据库主备环境下的日志解析服务切换的方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
程序指令/模块存储在存储器22中,当被一个或者多个处理器21执行时,执行上述实施例1至实施例2中的数据库主备环境下的日志解析服务切换的方法,例如,执行以上描述的图1至图6所示的各个步骤。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ReadOnlyMemory,简写为:ROM)、随机存取存储器(RandomAccessMemory,简写为:RAM)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据库主备环境下的日志解析服务切换的方法,其特征在于,包括:
在源端主备数据库以及目标端数据库的设备上均部署数据同步服务;
源端数据同步服务获取本设备数据库的当前日志时间;
源端数据同步服务获取本设备数据库在主备环境下的状态,根据主备状态的不同对获取的当前日志时间进行处理;
源端数据同步服务将本设备处理后的当前日志时间向目标端数据同步服务进行注册,若注册成功,则启动日志解析服务进行日志解析和数据同步。
2.根据权利要求1所述的数据库主备环境下的日志解析服务切换的方法,其特征在于,所述在源端主备数据库以及目标端数据库的设备上均部署数据同步服务具体包括:
在源端主备数据库的两个设备上分别部署包含日志解析服务的数据同步服务,源端数据同步服务的日志解析服务用于从源端数据库读取日志并解析后发送到目标端;
在目标端数据库的设备上部署数据同步服务,目标端数据同步服务用于将源端发送过来的同步操作应用到目标端数据库。
3.根据权利要求1所述的数据库主备环境下的日志解析服务切换的方法,其特征在于,所述源端数据同步服务获取本设备数据库的当前日志时间具体包括:
源端数据同步服务获取本设备数据库的当前日志LSN;
通过数据库函数将当前日志LSN转换为相对应的当前日志时间;
在获取到当前日志时间后将当前日志时间转换为以秒为单位的整数。
4.根据权利要求1所述的数据库主备环境下的日志解析服务切换的方法,其特征在于,所述源端数据同步服务获取本设备数据库在主备环境下的状态,根据主备状态的不同对获取的当前日志时间进行处理具体包括:
源端数据同步服务获取本设备数据库在主备环境下的状态,判断本设备数据库是主数据库还是备数据库;
如果是备数据库,则将获取到的当前日志时间加上N秒,如果是主数据库则保持当前日志时间不变;
其中,所述N配置的越大,同步故障切换时间就越长;所述N配置的越小,则同步故障切换时间就越短。
5.根据权利要求1所述的数据库主备环境下的日志解析服务切换的方法,其特征在于,所述源端数据同步服务将本设备处理后的当前日志时间向目标端数据同步服务进行注册,若注册成功,则启动日志解析服务进行日志解析和数据同步具体包括:
源端数据同步服务将本设备处理后的当前日志时间向目标端数据同步服务进行注册;
目标端数据同步服务在接收到注册请求命令后判断是否注册成功;
源端数据同步服务接收目标端数据同步服务返回的注册结果,若注册成功,则启动日志解析服务进行日志解析和数据同步。
6.根据权利要求5所述的数据库主备环境下的日志解析服务切换的方法,其特征在于,所述目标端数据同步服务在接收到注册请求命令后判断是否注册成功的具体判断规则包括:
目标端数据同步服务中还没有其它注册节点,则允许当前注册设备的注册请求,返回注册成功;
目标端数据同步服务中已经有一个注册节点,则对比当前注册设备的当前日志时间和已经注册设备的当前日志时间的大小,若已经注册设备的当前日志时间小于当前注册设备的当前日志时间,则关闭已经注册设备的同步通道,并允许当前注册设备的注册请求,返回注册成功;若已经注册设备的当前日志时间大于当前注册设备的当前日志时间,则拒绝当前注册设备的注册请求,返回注册失败。
7.根据权利要求5所述的数据库主备环境下的日志解析服务切换的方法,其特征在于,还包括:若注册失败,则睡眠S秒后重新获取本设备数据库的当前日志时间并申请注册,其中,所述S秒表示定时尝试注册的间隔时间。
8.根据权利要求1-7任一所述的数据库主备环境下的日志解析服务切换的方法,其特征在于,还包括:
在日志解析服务启动以后,创建一个调度线程,每隔1秒获取本设备数据库的当前日志时间并发送到目标端数据同步服务;
目标端数据同步服务在接收到该设备数据库的当前日志时间后,找到对应设备的注册信息并更新它的当前日志时间;
其中,所述调度线程在获取本设备数据库的当前日志时间时,对本设备数据库是否属于备数据库进行判断,如果是,则对当前日志时间进行加N秒后再发送到目标端数据同步服务。
9.根据权利要求1-7任一所述的数据库主备环境下的日志解析服务切换的方法,其特征在于,还包括:
在日志解析服务启动以后,若在发送同步的数据时发现链路通道被关闭,则重新获取本设备数据库的当前日志时间并申请注册。
10.一种数据库主备环境下的日志解析服务切换的设备,其特征在于:
包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储能被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成权利要求1-9中任一项所述的数据库主备环境下的日志解析服务切换的方法。
CN202111115851.7A 2021-09-23 2021-09-23 一种数据库主备环境下的日志解析服务切换的方法及设备 Active CN113836231B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111115851.7A CN113836231B (zh) 2021-09-23 2021-09-23 一种数据库主备环境下的日志解析服务切换的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111115851.7A CN113836231B (zh) 2021-09-23 2021-09-23 一种数据库主备环境下的日志解析服务切换的方法及设备

Publications (2)

Publication Number Publication Date
CN113836231A true CN113836231A (zh) 2021-12-24
CN113836231B CN113836231B (zh) 2022-10-21

Family

ID=78969424

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111115851.7A Active CN113836231B (zh) 2021-09-23 2021-09-23 一种数据库主备环境下的日志解析服务切换的方法及设备

Country Status (1)

Country Link
CN (1) CN113836231B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107766575A (zh) * 2017-11-14 2018-03-06 中国联合网络通信集团有限公司 读写分离的数据库访问方法及装置
CN108897641A (zh) * 2018-06-21 2018-11-27 武汉达梦数据库有限公司 一种数据库主备环境下的日志分析服务实时同步系统
US20180341560A1 (en) * 2017-05-23 2018-11-29 International Business Machines Corporation Service outage time reduction for a planned event in a system
CN109871369A (zh) * 2018-12-24 2019-06-11 天翼电子商务有限公司 数据库切换方法、系统、介质和装置
CN113326325A (zh) * 2021-06-11 2021-08-31 深圳前海微众银行股份有限公司 一种数据库主从服务断开的检测方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180341560A1 (en) * 2017-05-23 2018-11-29 International Business Machines Corporation Service outage time reduction for a planned event in a system
CN107766575A (zh) * 2017-11-14 2018-03-06 中国联合网络通信集团有限公司 读写分离的数据库访问方法及装置
CN108897641A (zh) * 2018-06-21 2018-11-27 武汉达梦数据库有限公司 一种数据库主备环境下的日志分析服务实时同步系统
CN109871369A (zh) * 2018-12-24 2019-06-11 天翼电子商务有限公司 数据库切换方法、系统、介质和装置
CN113326325A (zh) * 2021-06-11 2021-08-31 深圳前海微众银行股份有限公司 一种数据库主从服务断开的检测方法及装置

Also Published As

Publication number Publication date
CN113836231B (zh) 2022-10-21

Similar Documents

Publication Publication Date Title
US10833919B2 (en) Node device operation method, work status switching apparatus, node device, and medium
WO2017177941A1 (zh) 主备数据库切换方法和装置
CN104486319B (zh) 适用于高可用系统的配置文件实时同步方法及其系统
CN100397803C (zh) N+1备份的数据实时同步方法
US20090240974A1 (en) Data replication method
CN110990432B (zh) 一种跨机房同步分布式缓存集群的装置和方法
US7124151B1 (en) Database synchronization apparatus in element management system and method therefor
KR970066900A (ko) 분산 메모리형 멀티프로세서 시스템 및 고장 회복 방법
CN107124305A (zh) 节点设备运行方法及节点设备
CN114268532A (zh) 一种基于Raft协议的竞选方法、分布式系统及存储介质
CN113934745A (zh) 数据同步处理方法、电子设备以及存储介质
CN110750594B (zh) 一种基于mysql增量日志实时跨网络数据库同步方法
CN112698978A (zh) 基于分布式图处理网络的容错方法和设备
CN113836231B (zh) 一种数据库主备环境下的日志解析服务切换的方法及设备
CN113722396A (zh) 一种数据同步接收端服务主备切换的方法及设备
CN117370316A (zh) 数据库的高可用管理方法和装置、电子设备及存储介质
CN113836230A (zh) 一种数据库主备环境下的日志解析服务切换的方法及设备
CN111917588A (zh) 边缘设备管理方法、装置、边缘网关设备和存储介质
CN111880947A (zh) 一种数据传输方法及装置
CN113472891B (zh) 一种sdn控制器集群数据处理方法、设备及介质
CN112291299B (zh) 基于AI Station推理平台的同步方法、装置、设备及存储介质
CN101751292A (zh) Atc系统中一种实现多机关键数据一致性功能的方法
CN114363350A (zh) 一种服务治理系统及方法
CN113794765A (zh) 基于文件传输的网闸负载均衡方法及装置
CN111130896A (zh) 一种nfs故障的切换方法、系统及双控存储系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant