CN113722396B - 一种数据同步接收端服务主备切换的方法及设备 - Google Patents

一种数据同步接收端服务主备切换的方法及设备 Download PDF

Info

Publication number
CN113722396B
CN113722396B CN202110978746.XA CN202110978746A CN113722396B CN 113722396 B CN113722396 B CN 113722396B CN 202110978746 A CN202110978746 A CN 202110978746A CN 113722396 B CN113722396 B CN 113722396B
Authority
CN
China
Prior art keywords
service
target
data
address
auxiliary table
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.)
Active
Application number
CN202110978746.XA
Other languages
English (en)
Other versions
CN113722396A (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 CN202110978746.XA priority Critical patent/CN113722396B/zh
Publication of CN113722396A publication Critical patent/CN113722396A/zh
Application granted granted Critical
Publication of CN113722396B publication Critical patent/CN113722396B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Abstract

本发明公开了一种数据同步接收端服务主备切换的方法及设备,方法包括:在目标端数据库上创建第一辅助表T1和第二辅助表T2;在目标端设备上部署并启动数据同步接收服务,在源端数据库部署数据同步服务的日志解析服务;查询目标端数据库中第二辅助表T2中作主的设备IP地址,源端数据同步服务向目标端数据同步服务发送注册消息进行设备IP地址注册;目标端数据同步服务接收到注册请求命令后,对目标端数据库的第一辅助表T1上排它锁,且标记当前设备IP地址为主;源端数据同步服务注册成功,启动日志解析服务并发送数据到目标端进行同步。本发明保证多个数据同步服务在同一时刻只有一个作为数据同步接收服务的主机,摆脱了对第三方高可用软件的依赖。

Description

一种数据同步接收端服务主备切换的方法及设备
技术领域
本发明属于计算机技术领域,更具体地,涉及一种数据同步接收端服务主备切换的方法及设备。
背景技术
目前基于数据库日志分析的异构数据库复制技术应用广泛。这种技术在源端捕获出数据库的增量数据,然后发送到目标端,在目标端通过通用的数据库访问接口,将增量数据应用到目标数据库,实现数据复制。这种技术因为使用到通用数据库接口,因此支持异构数据库系统复制,支持异构操作系统环境,并且目标端备机数据库系统可读写,是一种“双活”系统。
为了提升整个数据同步架构的可靠性,在整个数据同步的架构中为了实现目标端的数据同步接收服务在整个同步架构中的高可用,目前最常用的方案就是借助于第三方的高可用软件(例如:high availability,简称HA)来实现目标端的数据接收服务的高可用。但加入了第三方软件以后不但会增加部署数据同步系统的复杂度,还会增加整个系统的运维成本。现有基于日志解析的数据同步架构中经常利用HA来实现数据同步接收端的高可用,利用两台设备来进行互备,数据同步接收服务在同一刻仅在一台设备上运行,当设备发生故障时,HA会停止故障设备上的数据同步接收服务然后切换到另一台正常的设备上。
可以看到上述的数据同步接收服务主备切换是由第三方高可用软件来完成的,维护人员不光要熟练撑握数据同步软件系统,还需要能够使用第三方高可用软件来搭建高可用平台,这极大的增加了运维人员的工作难度和运维成本。为了简化部署的复杂度,需要从高可用方案中剔除第三方高可用软件,完全由数据同步服务本身来实现数据接收功能的主备切换。
鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种数据同步接收端服务主备切换的方法及设备,其目的在于利用数据同步服对应的目标端数据库排它锁互斥机制,在多台设备上同时运行数据同步接收服务,在目标端数据库拥有指定对象排它锁时才允许作主,由此解决数据同步系统实现目标端数据同步接收服务的高可用技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种数据同步接收端服务主备切换的方法,方法包括:
在目标端数据库上创建第一辅助表T1和第二辅助表T2;
在目标端设备上部署并启动数据同步接收服务,在源端数据库部署数据同步服务的日志解析服务;
查询目标端数据库中所述第二辅助表T2中作主的设备IP地址,源端数据同步服务向目标端数据同步服务发送注册消息进行设备IP地址注册;
目标端数据同步服务接收到注册请求命令后,对目标端数据库的第一辅助表T1上排它锁,且标记当前设备IP地址为主;
源端数据同步服务注册成功,启动日志解析服务并发送数据到目标端进行同步。
作为对上述方案进一步的完善和补充,本发明还包括以下附加技术特征。
优选地,所述查询目标端数据库所述第二辅助表T2中作主的设备IP地址,具体方法包括:
若作主的设备IP地址存在于所述第二辅助表T2中,使用作主的设备IP地址进行连接目的端数据同步服务;
若作主的设备IP地址不存在于所述第二辅助表T2中,依次选择已配置数据同步接收服务设备的下一个IP地址准备连接目的端数据同步服务,直至连接成功;
连接成功后,源端数据同步服务向目标端数据同步服务发送注册消息进行设备IP地址注册,并等待目标端返回注册结果。
优选地,所述目标端数据同步服务接收到注册请求命令后,对目标端数据库的第一辅助表T1上排它锁,具体方法包括:
若所述目标端数据库的第一辅助表T1上锁成功,标记当前设备IP地址为主,并返回源端显示注册成功;
若所述目标端数据库的第一辅助表T1上锁不成功,则返回源端显示注册失败,源端取已配置数据同步接收服务设备的下一个IP地址准备连接目的端数据同步服务,直至连接后对目标端数据库的第一辅助表上锁成功,标记当前设备IP地址为主,返回源端显示注册成功。
优选地,所述查询目标端数据库所述第二辅助表T2中作主的设备IP地址,具体方法包括:
第一次启动所述第二辅助表T2中获取主机设备信息时,获取的信息为空。
优选地,所述在源端数据库部署数据同步服务的日志解析服务,具体方法包括:
在配置目标端设备IP地址时,指定已运行数据同步接收服务的设备IP地址和端口;
将目标端已运行数据同步接收服务的设备IP地址和端口发送给源端的数据发送模块。
优选地,所述在目标端数据库上创建第一辅助表T1和第二辅助表T2,其中:
所述第一辅助表T1的创建内容为:CREATE TABLE T1(C INT);
所述第二辅助表T2的创建内容为:CREATE TABLE T2(IP地址VARCHAR(20))。
优选地,目标端数据同步服务接收到注册请求命令后,对目标端数据库的第一辅助表T1上排它锁,所述标记当前设备IP地址为主,具体方法包括:
清空目标端数据库所述第二辅助表T2中登记的上一个作主设备IP地址;
插入当前设备IP地址;
若目标端数据库发生故障重启,所述第一辅助表T1的排它锁失效,源端数据同步日志解析模块优先连接所述第二辅助表T2中已登记的设备,当前设备IP地址重新获取辅助表T1的排它锁,当前设备IP地址继续做主设备IP地址。
优选地,所述源端数据同步服务注册成功,启动日志解析服务并发送数据到目标端进行同步,具体方法包括:
若发送同步数据时链路断开,源端设备重连到与所述第一辅助表T1的排它锁对应的当前作主设备IP地址,数据同步接收设备注册成功,数据同步接收端服务主设备未切换。
优选地,所述源端数据同步服务注册成功,启动日志解析服务并发送数据到目标端进行同步,具体方法包括:
若当前作主设备的数据同步接收设备或服务进程发生故障,所述第一辅助表T1的排它锁失效,源端日志解析服务连接到其它备用的任一数据同步接收服务,继续投递同步数据。
按照本发明的另一方面,提供了一种数据同步接收端服务主备切换的设备,设备包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行权利要求1-9任一所述的数据同步接收端服务主备切换的方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
第一方面,本发明利用目标端数据库的第一辅助表T1上排它锁,确保多个开启了数据同步接收服务的设备中只有一个设备作为数据同步接收服务的主机,由此保证多个数据同步服务在同一时刻只有一个作为数据同步接收服务的主机设备,从而摆脱了对第三方高可用软件的依赖。
第二方面,本发明利用目标端数据库的第二辅助表T2登记上一次作主的数据同步接收端设备信息,防止目标端数据库故障以后,现有作主的数据同步接收服务丢失了辅助表T1的排它锁却仍然作主的情况,避免出现源端数据同步服务重启以后却连接到其它数据同步接收设备形成双主的问题。源端数据同步每次重启后,通过查询目标端数据库的第二辅助表T2优先连接到上一次作为数据同步接收服务的主机设备,从而解决双主问题。
附图说明
图1是本实施例一提供的一种数据同步接收端服务主备切换的方法流程示意图;
图2是本实施例三提供的一种数据同步接收端服务主备切换的设备示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例一:
本实施例一提供一种数据同步接收端服务主备切换的方法,简化整个数据同步架构的部署复杂度,从高可用方案中剔除掉第三方高可用软件,完全由数据同步服务本身来实现数据接收功能的主备切换,方法包括以下步骤,如图1所示:
S101:在目标端数据库上创建第一辅助表T1和第二辅助表T2。
本实施例一中,在目的端数据库C上创建第一辅助表T1和第二辅助表T2:
CREATE TABLE T1(C INT);
CREATE TABLE T2(IP地址VARCHAR(20));
其中第一辅助表T1用来上排它锁,第二辅助表T2用来存贮目标端最新作主的设备信息。
S102:在目标端设备上部署并启动数据同步接收服务,在源端数据库部署数据同步服务的日志解析服务。
本实施例一中,目标端数据同步服务负责把源端发送的操作同步映射到目标端数据库,从而实现数据同步功能。
在源端数据库部署数据同步服务的日志解析服务,源端数据同步服务的日志解析模块从源端数据库读取日志并解析后发送到目标端的数据同步接收服务。
目标端设备IP地址和端口给源端日志解析服务的数据发送配置数据,由于目标端有多个数据同步接收服务的设备,在配置IP地址时需要指定所有已运行数据同步接收服务设备的IP地址和端口。
在现有利用第三方高可用软件实现接收端高可用的方案中,由于第三方高可用软件具备IP地址漂移的功能,多个目标端数据同步接收服务设备可以共用一个IP地址,所以源端数据发送时只需要指定一个IP地址即可。但是在本实施例一中,由于目标端多个设备没有共用的IP地址,源端数据发送时需要同时指定多个数据同步服务所在的设备IP地址,以便源端在发送数据发生故障时进行切换。
S103:查询目标端数据库中所述第二辅助表T2中作主的设备IP地址,源端数据同步服务向目标端数据同步服务发送注册消息进行设备IP地址注册。
源端数据同步启动时,需要向目标端数据库中获取上一次作主的数据同步接收服务设备的IP,这是因为本实施例一中是通过现有作主的数据同步服务接收设备需要同时拥有目标端数据库上第一辅助表T1上的排它锁,从而确定现有作主的数据同步服务接收设备有资格作为数据同步服务接收端的主机。
S104:目标端数据同步服务接收到注册请求命令后,对目标端数据库的第一辅助表T1上排它锁,且标记当前设备IP地址为主。
由于目标端多个数据同步接收服务对应的目的端数据库是同一个,本实施例中利用目标端数据库的第一辅助表T1上排它锁,确保多个数据同步接收服务只有一个设备作为数据同步接收服务的主机。在排它锁上锁成功以后,数据同步接收服务要一直保持持有排它锁,一旦失去排它锁,主设备便失去作主的资格。
S105:源端数据同步服务注册成功,启动日志解析服务并发送数据到目标端进行同步。
上述方案数据同步接收服务通过判断是否拥有目标端数据库辅助表T1的排它锁来决定谁可以作主,实现在多个设备上选择一个唯一的数据同步接收服务主机,实现了在不依赖第三方高可用软件的前提下数据同步接收的高可用。
本实施例一提供一种数据同步接收端服务主备切换的方法,首先,利用目标端数据库的第一辅助表T1上排它锁,确保多个开启了数据同步接收服务的设备中只有一个设备作为数据同步接收服务的主机,由此保证多个数据同步服务在同一时刻只有一个作为数据同步接收服务的主机设备,从而摆脱了对第三方高可用软件的依赖。
其次,利用目标端数据库的第二辅助表T2登记上一次作主的数据同步接收端设备信息,防止目标端数据库故障以后,现有作主的数据同步接收服务丢失了辅助表T1的排它锁却仍然作主的情况,避免出现源端数据同步服务重启以后却连接到其它数据同步接收设备形成双主的问题。源端数据同步每次重启后,通过查询目标端数据库的第二辅助表T2优先连接到上一次作为数据同步接收服务的主机设备,从而解决双主问题。
为了避免出现源端数据同步服务重启以后却连接到其它数据同步接收设备发生双重主机的问题,结合本发明实施例,还存在一种优选的实现方案,具体的,所述查询目标端数据库所述第二辅助表T2中作主的设备IP地址,具体方法包括:
若作主的设备IP地址存在于所述第二辅助表T2中,使用作主的设备IP地址进行连接目的端数据同步服务;
若作主的设备IP地址不存在于所述第二辅助表T2中,依次选择已配置数据同步接收服务设备的下一个IP地址准备连接目的端数据同步服务,直至连接成功;
连接成功后,源端数据同步服务向目标端数据同步服务发送注册消息进行设备IP地址注册,并等待目标端返回注册结果。
本实施例一中,目标端数据库的第二辅助表T2登记上一次作主的数据同步接收端设备信息,确保作主的设备IP地址存在于所述第二辅助表T2中,防止目标端数据库故障以后,现有作主的数据同步接收服务丢失了辅助表T1的排它锁却仍然作主的情况。
本实施例一中,上一次作主的设备IP保存在第二辅助表T2中至少有两个好处:
1、防止出现双重主机。如果上一次作主的设备IP不保存在第二辅助表T2中,若发生源端数据同步服务和目标端数据库同时故障重启,源端不知道上一次作主的目标端设备IP,若按设置的IP顺序向下一个IP连接,会连接到另一个设备上去,由于上一次作主的目标端设备已经失去了第一辅助表T1的排它锁,所以另一个设备就可以拥有第一辅助表T1的排它锁,从而成为主机。但是上一次作主的目标端设备不知道自己已经失去了作主的资格,却依然在等着接收同步操作,形成双主。将上一次作主的设备IP保存在第二辅助表T2中,若发生源端数据同步服务和目标端数据库同时故障重启,源端知道上一次作主的目标端设备IP就不会按设置的IP顺序向下一个IP连接,若源端知道第二辅助表T2中不存在作主的目标端设备IP就会按设置的IP顺序向下一个IP连接。
2、加快重连速度。源端在故障重启以后,直接连接到上一次作主的设备可以加快同步链路的恢复速度。因为原来作主设备上缓存有同步数据信息,如果切换到别的目标端设备,原来作主设备上的同步数据就都要废弃,源端要重新传输历史同步数据。若原来作主的设备继续作主,源端维持现状,继续向目标端同步数据,以便降低传输代价。
为了保证多个数据同步服务在同一时刻只有一个作为数据同步接收服务的主机设备,结合本发明实施例,还存在一种优选的实现方案,具体的,所述目标端数据同步服务接收到注册请求命令后,对目标端数据库的第一辅助表T1上排它锁,具体方法包括:
若所述目标端数据库的第一辅助表T1上锁成功,标记当前设备IP地址为主,并返回源端显示注册成功;
若所述目标端数据库的第一辅助表T1上锁不成功,则返回源端显示注册失败,源端取已配置数据同步接收服务设备的下一个IP地址准备连接目的端数据同步服务,直至连接后对目标端数据库的第一辅助表上锁成功,标记当前设备IP地址为主,返回源端显示注册成功。
本实施例一中,目标端数据同步服务在接收到注册请求命令后采用不等待的方式对目标端数据库的第一辅助表T1尝试上一个排它锁,如果上锁成功,则标记自己为主,并返回源端注册成功;如果上锁不成功,则返回源端注册失败。
由于目标端有多个设备开启了数据同步接收服务,但是对应的目的端数据库是同一个,本实施例一中利用对目的端数据库的第一辅助表T1上排它锁,确保多个开启了数据同步接收服务的设备中只有一个设备作为数据同步接收服务的主机。在排它锁上锁成功后,当前设备的数据同步接收服务需要一直保持持有排它锁,一旦失去了排它锁,当前设备就失去了作为数据同步接收服务主机设备的资格。
为了在源端数据库设备第一次启动日志解析服务时获取不到主机设备信息,结合本发明实施例,还存在一种优选的实现方案,具体的,所述查询目标端数据库所述第二辅助表T2中作主的设备IP地址,具体方法包括:
第一次启动所述第二辅助表T2中获取主机设备信息时,获取的信息为空。
本实施例一中,在数据库架构搭建完成的环境中,辅助表T2是个空表,源端数据库第一次启动日志解析服务时是获取不到任何作主的设备IP信息。
在第一次启动日志解析服务时,由于目标端先前没有作主的设备,可以选择配置在第一个的IP作主。后面再次启动日志解析服务时,源端数据库优先选择在第二辅助表T2中获得上一次作主的目标端设备IP。
为了避免配置到目标端未运行数据同步接收服务设备的IP地址和端口,结合本发明实施例,还存在一种优选的实现方案,具体的,所述在源端数据库部署数据同步服务的日志解析服务,具体方法包括:
在配置目标端设备IP地址时,指定已运行数据同步接收服务的设备IP地址和端口;
将目标端已运行数据同步接收服务的设备IP地址和端口发送给源端的数据发送模块。
本实施例一中,目标端有多个数据同步接收服务的设备,在配置IP时需要指定所有已运行数据同步接收服务设备IP和端口,以便源端的数据发送模块向目标端设备的数据同步服务发送数据。
为了符合数据库的场景需求,结合本发明实施例,还存在一种优选的实现方案,具体的,所述在目标端数据库上创建第一辅助表T1和第二辅助表T2,其中:
所述第一辅助表T1的创建内容为:CREATE TABLE T1(C INT);
所述第二辅助表T2的创建内容为:CREATE TABLE T2(IP地址VARCHAR(20))。
本实施例一中,参照SQL语言的语法规则,利用数据库的字符串类型,比如VARCHAR,用来存放IP地址。
为了对第二辅助表T2中已登记的作主设备设置排它锁,结合本发明实施例,还存在一种优选的实现方案,具体的,目标端数据同步服务接收到注册请求命令后,对目标端数据库的第一辅助表T1上排它锁,所述标记当前设备IP地址为主,具体方法包括:
清空目标端数据库所述第二辅助表T2中登记的上一个作主设备IP地址;
插入当前设备IP地址;
若目标端数据库发生故障重启,所述第一辅助表T1的排它锁失效,源端数据同步日志解析模块优先连接所述第二辅助表T2中已登记的设备,当前设备IP地址重新获取辅助表T1的排它锁,当前设备IP地址继续做主设备IP地址。
本实施例一中,标记当前设备为主时,需要先清空目标端数据库第二辅助表T2中登记的上一个作主设备的信息,再插入当前设备IP,当目标端数据库发生故障重启后,当前作主的设备会失去拥有的辅助表T1排它锁,源端的数据同步日志解析模块会优先连接T2表中已完成登记的当前作主设备,当前作主设备可以重新获取在第一辅助表T1的排它锁,继续作主设备。
若目标端数据库发生故障重启后,切换到别的目标端设备作主设备,切换代价会很高,因为原来作主设备上缓存有同步数据信息,如果切换到别的目标端设备,原来作主设备上的同步数据就都要废弃,源端要重新传输历史同步数据。若原来作主的设备继续作主,源端维持现状,继续向目标端同步数据,以便降低传输代价。
为了在网络故障导致的链路断开情况下完成数据同步服务,结合本发明实施例,还存在一种优选的实现方案,具体的,所述源端数据同步服务注册成功,启动日志解析服务并发送数据到目标端进行同步,具体方法包括:
若发送同步数据时链路断开,源端设备重连到与所述第一辅助表T1的排它锁对应的当前作主设备IP地址,数据同步接收设备注册成功,数据同步接收端服务主设备未切换。
本实施例一中,源端设备优先连接第一辅助表T1的排它锁对应的当前作主设备IP地址,因为第一辅助表T1的排它锁对应的当前作主设备再次作主的可能性更大。
同步链路断开有两种情况:1.网络故障,例如网络交换机故障;2.现有作主的目标端数据同步服务故障重启。
如果是第一种情况,优先连接原有作主的设备恢复性能最佳,因为它没有失去作主的资格,其它目标端接收服务设备无法拥有第一辅助表T1的排它锁,源端设备连接其它目标端接收服务设备都会返回注册不成功。
如果是第二种情况,不论连接哪个目标端设备,恢复性能都一样,但是会优先连接上一个主机,上一个主机继续作主,源端可以维持现状,继续向目标端同步数据,以便降低传输代价。
为了在当前作主设备的数据同步接收设备或服务进程发生故障后完成数据同步服务,结合本发明实施例,还存在一种优选的实现方案,具体的,所述源端数据同步服务注册成功,启动日志解析服务并发送数据到目标端进行同步,具体方法包括:
若当前作主设备的数据同步接收设备或服务进程发生故障,所述第一辅助表T1的排它锁失效,源端日志解析服务连接到其它备用的任一个数据同步接收服务继续投递同步数据。
本实施例一中,在原来作主的目标端设备发生异常后,原来作主的目标端设备对应的目标端数据库第一辅助表T1排它锁会自动释放,原来作主的数据同步接收设备失去拥有目的端数据库第一辅助表T1的排它锁,源端数据库需要连接到另一个正常状态的目标端设备IP,另一个正常状态的目标端设备对第一辅助表T1的上锁操作成功后,获得作为数据同步接收服务的主机资格,源端可以继续投递同步数据,实现了目标端数据同步服务的高可用。
实施例二:
本实施例二中以一种示例性的场景阐述实施例一中数据同步接收端服务主备切换的方法。
源端数据库设备称为A,目标端两台作数据同步接收的设备分别称为B1和B2,目标端数据库所在设备称为C。
S201:在目的端数据库C上创建第一辅助表T1和第二辅助表T2。
第一辅助表T1的创建内容为:CREATE TABLE T1(C INT);
第二辅助表T2的创建内容为:CREATE TABLE T2(IP VARCHAR(20))。
其中:第一辅助表T1用来上排它锁,第二辅助表T2用来存贮最新一次目标端作主的设备信息。
S202:在源端数据库设备A上部署数据同步的日志解析服务,并把目标端的设备B1和B2的IP配置到日志解析服务的数据发送模块。
S203:在目标端设备B1和B2上部署数据同步接收服务并启动。
S204:在源端数据库设备A上启动日志解析服务,日志解析服务先从目标端数据库C的第二辅助表T2中尝试获取上一个主机设备信息,第一次启动时,获取的信息为空。
S205:源端数据库设备A上启动日志解析服务从数据发送模块配置中选择目标端设备B1作为目标端。
S206:源端数据库设备A上日志解析服务连接目标端设备B1上的数据同步接收服务,并发送注册消息。
S207:目标端设备B1上的数据同步服务在接收到注册请求以后,尝试对目标端数据库C的第一辅助表T1上排它锁。
在目标端数据库上执行:LOCK TABLE T1 IN EXCLUSIVE MODE NOWAIT。
S208:第一辅助表T1上排它锁上锁成功后,把目标端设备B1的IP信息在第二辅助表T2中进行登记,然后给源端数据同步返回注册成功。
清理第二辅助表T2中旧的注册信息:DELETE FROM T2;
在目标端数据库上登记作主的目标端设备B1信息:INSERT INTO T2VALUES(IPB1);
S209:源端数据库设备A上启动日志解析服务目标端设备B1注册成功以后,启动日志解析服务并发送数据进行同步。
S210:拔掉源端数据库设备A上的网线后重新插上,人为制造网络故障。
S211:源端数据库设备A上的日志解析服务发送同步数据失败,查询目标数据库T2中注册的上一次作主的目标端设备B1的IP。
S212:源端数据库设备A上的日志解析服务优选连接目标端设备B1的IP,由于目标端设备B1本身就是主机,它拥有辅助表T1的排它锁,所以能连接注册成功,日志解析服务可以继续投递同步数据。
S213:人为制造数据同步接收端故障,例如人为将目标端设备B1关机。
S214:源端数据库设备A上日志解析服务发送数据到目标端设备B1失败,尝试重连和重新注册,由于目标端设备B1上的日志接收服务已经停止,重连失败;切换到下一个目标端设备B2进行连接和注册。
S215:目标端设备B2接收到注册消息以后,尝试对目标端数据库C的第一辅助表T1上排它锁。
在目标端数据库C上执行:LOCK TABLE T1 IN EXCLUSIVE MODE NOWAIT。
S216:第一辅助表T1上排它锁上锁成功后,把目标端设备B2的IP信息在第二辅助表T2中进行登记,然后给源端数据同步返回注册成功。
清理第二辅助表T2中旧的注册信息:DELETE FROM T2;
在目标端数据库C上登记作主的目标端设备B2信息:INSERT INTO T2 VALUES(IPB2)。
S217:源端数据库设备A上日志解析服务向目标端设备B2注册成功后,继续日志解析服务并发送数据进行同步。
本实施例二是在目标端设备B1或服务进程出现故障后,目标端设备B1对应的第一辅助表T1的排它锁失效,源端数据同步服务通过配置的多个目标端数据同步服务接收设备继续向下一个设备的IP地址尝试连接,连接成功后实现目标端设备的切换,实现高可用。
实施例三:
如图2所示,是本发明实施例三中一种数据同步接收端服务主备切换的设备示意图。本实施例三中,数据同步接收端服务主备切换的设备包括一个或多个处理器21以及存储器22。其中,图2中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图2中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例一中的数据同步接收端服务主备切换的方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行数据同步接收端服务主备切换的方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例一数据同步接收端服务主备切换的方法,例如,执行以上描述的图1所示的各个步骤。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据同步接收端服务主备切换的方法,其特征在于,方法包括:
在目标端数据库上创建第一辅助表T1和第二辅助表T2;
在目标端设备上部署并启动数据同步接收服务,在源端数据库部署数据同步服务的日志解析服务;
查询目标端数据库中所述第二辅助表T2中作主的设备IP地址,源端数据同步服务向目标端数据同步服务发送注册消息进行设备IP地址注册;
目标端数据同步服务接收到注册请求命令后,对目标端数据库的第一辅助表T1上排它锁,且标记当前设备IP地址为主;
源端数据同步服务注册成功,启动日志解析服务并发送数据到目标端进行同步。
2.如权利要求1所述的数据同步接收端服务主备切换的方法,其特征在于,所述查询目标端数据库所述第二辅助表T2中作主的设备IP地址,具体方法包括:
若作主的设备IP地址存在于所述第二辅助表T2中,使用作主的设备IP地址进行连接目的端数据同步服务;
若作主的设备IP地址不存在于所述第二辅助表T2中,依次选择已配置数据同步接收服务设备的下一个IP地址准备连接目的端数据同步服务,直至连接成功;
连接成功后,源端数据同步服务向目标端数据同步服务发送注册消息进行设备IP地址注册,并等待目标端返回注册结果。
3.如权利要求1所述的数据同步接收端服务主备切换的方法,其特征在于,所述目标端数据同步服务接收到注册请求命令后,对目标端数据库的第一辅助表T1上排它锁,具体方法包括:
若所述目标端数据库的第一辅助表T1上锁成功,标记当前设备IP地址为主,并返回源端显示注册成功;
若所述目标端数据库的第一辅助表T1上锁不成功,则返回源端显示注册失败,源端取已配置数据同步接收服务设备的下一个IP地址准备连接目的端数据同步服务,直至连接后对目标端数据库的第一辅助表上锁成功,标记当前设备IP地址为主,返回源端显示注册成功。
4.如权利要求2所述的数据同步接收端服务主备切换的方法,其特征在于,所述查询目标端数据库所述第二辅助表T2中作主的设备IP地址,具体方法包括:
第一次启动所述第二辅助表T2中获取主机设备信息时,获取的信息为空。
5.如权利要求1所述的数据同步接收端服务主备切换的方法,其特征在于,所述在源端数据库部署数据同步服务的日志解析服务,具体方法包括:
在配置目标端设备IP地址时,指定已运行数据同步接收服务的设备IP地址和端口;
将目标端已运行数据同步接收服务的设备IP地址和端口发送给源端的数据发送模块。
6.如权利要求1所述的数据同步接收端服务主备切换的方法,其特征在于,所述在目标端数据库上创建第一辅助表T1和第二辅助表T2,其中:
所述第一辅助表T1的创建内容为:CREATE TABLE T1(C INT);
所述第二辅助表T2的创建内容为:CREATE TABLE T2(IP地址VARCHAR(20))。
7.如权利要求1所述的数据同步接收端服务主备切换的方法,其特征在于,目标端数据同步服务接收到注册请求命令后,对目标端数据库的第一辅助表T1上排它锁,所述标记当前设备IP地址为主,具体方法包括:
清空目标端数据库所述第二辅助表T2中登记的上一个作主设备IP地址;
插入当前设备IP地址;
若目标端数据库发生故障重启,所述第一辅助表T1的排它锁失效,源端数据同步日志解析模块优先连接所述第二辅助表T2中已登记的设备,当前设备IP地址重新获取辅助表T1的排它锁,当前设备IP地址继续做主设备IP地址。
8.如权利要求1所述的数据同步接收端服务主备切换的方法,其特征在于,所述源端数据同步服务注册成功,启动日志解析服务并发送数据到目标端进行同步,具体方法包括:
若发送同步数据时链路断开,源端设备重连到与所述第一辅助表T1的排它锁对应的当前作主设备IP地址,数据同步接收设备注册成功,数据同步接收端服务主设备未切换。
9.如权利要求1所述的数据同步接收端服务主备切换的方法,其特征在于,所述源端数据同步服务注册成功,启动日志解析服务并发送数据到目标端进行同步,具体方法包括:
若当前作主设备的数据同步接收设备或服务进程发生故障,所述第一辅助表T1的排它锁失效,源端日志解析服务连接到其它备用的任一数据同步接收服务,继续投递同步数据。
10.一种数据同步接收端服务主备切换的设备,其特征在于,设备包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行权利要求1-9任一所述的数据同步接收端服务主备切换的方法。
CN202110978746.XA 2021-08-25 2021-08-25 一种数据同步接收端服务主备切换的方法及设备 Active CN113722396B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110978746.XA CN113722396B (zh) 2021-08-25 2021-08-25 一种数据同步接收端服务主备切换的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110978746.XA CN113722396B (zh) 2021-08-25 2021-08-25 一种数据同步接收端服务主备切换的方法及设备

Publications (2)

Publication Number Publication Date
CN113722396A CN113722396A (zh) 2021-11-30
CN113722396B true CN113722396B (zh) 2023-12-22

Family

ID=78677735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110978746.XA Active CN113722396B (zh) 2021-08-25 2021-08-25 一种数据同步接收端服务主备切换的方法及设备

Country Status (1)

Country Link
CN (1) CN113722396B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115022175A (zh) * 2022-06-21 2022-09-06 工银科技有限公司 一种配置信息的同步方法及装置
CN114978892A (zh) * 2022-07-04 2022-08-30 北京尽微致广信息技术有限公司 一种目标节点确定方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073177A (en) * 1997-08-05 2000-06-06 Sterling Software, Inc. Dynamic method for connecting a client to a server application
CN107391758A (zh) * 2017-08-24 2017-11-24 阿里巴巴集团控股有限公司 数据库切换方法、装置及设备
CN108897641A (zh) * 2018-06-21 2018-11-27 武汉达梦数据库有限公司 一种数据库主备环境下的日志分析服务实时同步系统
CN109271452A (zh) * 2018-10-19 2019-01-25 武汉达梦数据库有限公司 Db2数据库数据同步更新方法及设备
CN109933630A (zh) * 2019-03-19 2019-06-25 武汉达梦数据库有限公司 数据库数据实时同步方法及设备
CN110489483A (zh) * 2019-07-08 2019-11-22 中国平安人寿保险股份有限公司 数据同步方法、装置、计算机设备以及存储介质
WO2020224374A1 (zh) * 2019-05-05 2020-11-12 腾讯科技(深圳)有限公司 数据复制方法、装置、计算机设备及存储介质
CN112083889A (zh) * 2020-09-14 2020-12-15 腾讯科技(深圳)有限公司 数据迁移方法、装置、设备及可读存储介质
CN112328697A (zh) * 2020-11-18 2021-02-05 樊馨 一种基于大数据的数据同步方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073177A (en) * 1997-08-05 2000-06-06 Sterling Software, Inc. Dynamic method for connecting a client to a server application
CN107391758A (zh) * 2017-08-24 2017-11-24 阿里巴巴集团控股有限公司 数据库切换方法、装置及设备
CN108897641A (zh) * 2018-06-21 2018-11-27 武汉达梦数据库有限公司 一种数据库主备环境下的日志分析服务实时同步系统
CN109271452A (zh) * 2018-10-19 2019-01-25 武汉达梦数据库有限公司 Db2数据库数据同步更新方法及设备
CN109933630A (zh) * 2019-03-19 2019-06-25 武汉达梦数据库有限公司 数据库数据实时同步方法及设备
WO2020224374A1 (zh) * 2019-05-05 2020-11-12 腾讯科技(深圳)有限公司 数据复制方法、装置、计算机设备及存储介质
CN110489483A (zh) * 2019-07-08 2019-11-22 中国平安人寿保险股份有限公司 数据同步方法、装置、计算机设备以及存储介质
CN112083889A (zh) * 2020-09-14 2020-12-15 腾讯科技(深圳)有限公司 数据迁移方法、装置、设备及可读存储介质
CN112328697A (zh) * 2020-11-18 2021-02-05 樊馨 一种基于大数据的数据同步方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于全局目录的集中型数据库分布式加锁仿真;薛小燕等;《计算机仿真》;全文 *

Also Published As

Publication number Publication date
CN113722396A (zh) 2021-11-30

Similar Documents

Publication Publication Date Title
CN113722396B (zh) 一种数据同步接收端服务主备切换的方法及设备
US7974315B2 (en) Method for implementing synchronization of link state database, router, line card and master board
CN100397803C (zh) N+1备份的数据实时同步方法
CN103036717B (zh) 分布式数据的一致性维护系统和方法
CN107016087B (zh) 基于哨兵模型的层级数据库高可用系统
US7304940B2 (en) Network switch assembly, network switching device, and method
CN1649341B (zh) 应用路由选择协议的堆叠式路由器
JP3932994B2 (ja) サーバ引継システムおよびその方法
US6941327B2 (en) Apparatus and method for database synchronization in a duplex system
KR20040071331A (ko) 오류 허용 데이터 통신을 위한 시스템 및 방법
CN103747091A (zh) 一种嵌入式设备的分布式数据同步系统及方法
CN108897641B (zh) 一种数据库主备环境下的日志分析服务实时同步系统
US9577871B2 (en) Method and device of interface registration for a network device to join in a cluster system
CN111460029B (zh) 数据同步方法和装置
CN105790985A (zh) 数据倒换的方法、第一设备、第二设备及设备
KR100445194B1 (ko) 데이터베이스 이중화 방법
KR100837434B1 (ko) 클라이언트와 서버 간의 인터페이스를 수행하는 매개장치및 그의 인터페이스방법
US7184394B2 (en) Routing system providing continuity of service for the interfaces associated with neighboring networks
CN106230747B (zh) 恢复tcp连接序列号的方法、装置及系统
CN111241200B (zh) 基于SQLite数据库的主备同步处理方法及装置
CN1251447C (zh) 一种实现网络网络接口连接的同步和恢复方法
JP2003186722A (ja) クラスタシステムにおけるデータベースサーバフェイルオーバー方法
CN1275410C (zh) 一种会话数据操作和维护的实现方法
KR940004574B1 (ko) 상위 프로세서와 다수의 하위 프로세서간의 통신방법
CN115412603B (zh) 一种消息中间件的消息客户端模块的高可用的方法及装置

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