CN109947592A - 一种数据同步方法、装置以及相关设备 - Google Patents

一种数据同步方法、装置以及相关设备 Download PDF

Info

Publication number
CN109947592A
CN109947592A CN201711386845.9A CN201711386845A CN109947592A CN 109947592 A CN109947592 A CN 109947592A CN 201711386845 A CN201711386845 A CN 201711386845A CN 109947592 A CN109947592 A CN 109947592A
Authority
CN
China
Prior art keywords
source
file
service equipment
database
target
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
CN201711386845.9A
Other languages
English (en)
Other versions
CN109947592B (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201711386845.9A priority Critical patent/CN109947592B/zh
Publication of CN109947592A publication Critical patent/CN109947592A/zh
Application granted granted Critical
Publication of CN109947592B publication Critical patent/CN109947592B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据同步理方法、装置以及相关设备,所述方法包括:源服务设备接收目标服务设备发送的热备启动命令;源服务设备根据热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;源服务设备生成同步文件名列表;源服务设备对同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至目标服务设备,以使目标服务设备启动目标数据库,并从所接收到的源数据库文件中选择具备目标检查点标识的存储数据文件和引擎文件,并将具备目标检查点标识的存储数据文件和引擎文件存储至目标数据库。采用本发明,可以提高数据库存储资源的使用率。

Description

一种数据同步方法、装置以及相关设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据同步方法、装置以及相关设备。
背景技术
计算机在现如今的社会发展环境中已经越来越成为人们日常工作与生活的中流砥柱,虽然计算机技术为人们的发展提供了极大便利,但其也产生了许多安全隐患问题,而计算机数据库资料的安全问题尤为突出。为了确保计算机数据库资料的稳定性与安全性,计算机数据库备份技术应运而生,从而保障了计算机的正常运行,和保障了人们工作的正常开展。
现有数据库数据同步技术主要是全量数据拷贝,而为了保证移数据一致性,要求数据库停止提供服务,通过网络传输将源数据库(提供源数据的数据库)中的源文件拷贝至目标数据库(存储拷贝数据的数据库),以完成源数据库和目标数据库之间的数据同步,待所有的源数据拷贝完成后,启动源数据库和目标数据库并提供服务。而源数据库中的待同步的源数据量大,需要花费大量的时间用于传输数据库中的数据,造成数据库长时间停机,对业务产生极大影响。
上述可见,停止数据库提供服务以同步数据的方法会造成存储资源的大量浪费,存储资源的使用率低下。
发明内容
本发明实施例提供一种数据同步方法、装置以及相关设备,可以节约存储资源,提高存储资源的使用率。
本发明一方面提供了一种数据同步方法,包括:
源服务设备接收目标服务设备发送的热备启动命令;
所述源服务设备根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件具备目标检查点标识;
所述源服务设备生成同步文件名列表;所述同步文件名列表至少包括具备所述目标检查点标识的源数据库文件对应的文件名;
所述源服务设备对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备,以使所述目标服务设备根据所接收到的所有源数据库文件,将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
其中,所述源数据库文件包括存储数据文件和引擎文件;
所述源服务设备生成同步文件名列表,包括:
所述源服务设备获取所述源数据库文件中用于存放元数据的引擎文件中的键值对,并将所述键值对写入至临时创建的引擎文件中,将所述临时创建的引擎文件的文件名添加至所述同步文件名列表中;所述键值对包括文件类型与文件名;
所述源服务设备获取所述文件类型为存放数据文件类型的键值对,作为目标键值对,将所述目标键值对中的文件名确定为所述存储数据文件的文件名,并将所述存储数据文件的文件名添加至所述同步文件名列表中;
所述源服务设备将所述源数据库文件中与存储引擎相关配置的引擎文件的文件名添加至所述同步文件名列表中。
其中,所述源服务设备根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理,包括:
所述源服务设备中的源数据库根据所述热备启动命令设置租约标识,并根据所述租约标识对应的租约,在所述源数据库文件中所包含的存储数据文件和引擎文件中均设置目标检查点标识,并将热备标志位设置为封锁标志位;所述封锁标志位是用于在生成新的检查点标识时保留所述目标检查点标识;所述租约标识对应的租约用于持续保持热备标志位为封锁标志位;
则所述方法还包括:
在所述源服务设备发送完所述同步文件名列表中的所有文件名所对应的源数据库文件后,所述源数据库接收所述目标服务设备对应的目标同步代理进程发送的热备结束命令;
所述源数据库根据所述热备结束命令终止所述租约标识对应的租约,并将所述热备标志位设置为释放标志位,根据所述释放标志位删除所述目标检查点标识,并删除所述租约标识。
其中,还包括:
所述源服务设备检测所述租约标识所对应的租约是否超过有效期;
若所述租约没有超过有效期,则所述源服务设备持续保持热备标志位为封锁标志位;
若所述租约超过有效期,则所述源服务设备终止所述租约标识对应的租约,并将所述热备标志位设置为释放标志位,根据所述释放标志位删除所述目标检查点标识,并删除所述租约标识。
其中,还包括:
所述源数据库接收所述目标服务设备中的目标同步代理进程定时发送的心跳信号,根据所述心跳信号生成延长租约命令,并根据所述延长租约命令延长所述租约标识对应的租约有效期。
其中,所述同步文件名列表还包括重做日志文件的文件名;
则所述方法还包括:
所述源服务设备将所述同步文件名列表中所述重做日志文件的文件名所对应的重做日志文件拷贝并发送至所述目标服务设备,以使所述目标服务设备在将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件后,根据所述重做日志文件还原生成所述同步文件名列表期间所产生的不具备所述目标检查点标识的源数据库文件。
其中,所述源服务设备对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备,包括:
所述源服务设备中的所述源数据库将所述同步文件名列表发送至所述目标同步代理进程,以使所述目标同步代理进程返回数据拷贝请求;
所述源服务设备中的源同步代理进程根据所述数据拷贝请求对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备。
其中,所述源服务设备对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备,包括:
所述源服务设备中的所述源数据库将所述同步文件名列表发送至所述目标同步代理进程,以使所述目标同步代理进程发送数据拷贝请求到源同步代理进程;
所述源服务设备根据所述源同步代理进程转发的所述数据拷贝请求,对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述源同步代理进程,以使所述源同步代理进程将所拷贝的源数据库文件转发至所述目标服务设备。
其中,所述同步文件名列表还包括在生成所述同步文件名列表期间内新增的源数据库文件对应的文件名;
所述源服务设备对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备,包括:
所述源服务设备将所述同步文件名列表中所有文件名对应的具备所述目标检查点标识的源数据库文件和检查点备份处理后新增的源数据库文件拷贝并发送至所述目标服务设备,以使所述目标服务设备根据所接收到的所有源数据库文件将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
本发明另一方面提供了一种数据同步方法,包括:
目标服务设备向源服务设备发送热备启动命令,以使所述源服务设备根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理,并生成同步文件名列表;检查点备份处理后的源数据库文件具备目标检查点标识;
所述目标服务设备接收所述源服务设备拷贝并发送的所述同步文件名列表中的所有文件名所对应的源数据库文件,并启动目标数据库;
所述目标服务设备从接收到的所有源数据库文件中选择具备目标检查点标识的源数据库文件,并将具备目标检查点标识的源数据库文件存储至所述目标数据库,以将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
其中,还包括:
所述目标服务设备控制目标同步代理进程向所述源服务设备中的所述源数据库定时发送心跳信号,以使所述源数据库根据所述心跳信号生成延长租约命令,并根据所述延长租约命令延长与所述目标服务设备之间的租约有效期。
其中,所述同步文件名列表还包括重做日志文件的文件名;
则所述方法还包括:
所述目标服务设备接收所述源服务设备拷贝并发送的所述重做日志文件的文件名所对应的重做日志文件;
所述目标服务设备在将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件后,根据所述重做日志文件还原生成所述同步文件名列表期间所产生的不具备所述目标检查点标识的源数据库文件。
其中,所述将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件之后,还包括:
所述目标服务设备控制所述目标同步代理进程将所述目标数据库加入至数据库集群,所述数据库集群包括所述源数据库和所述目标数据库;
所述目标服务设备提取所述源数据库的写操作日志;
所述目标服务设备根据所述写操作日志,将所述目标数据库中的数据库文件还原至最新的源数据库文件。
本发明另一方面提供了一种数据同步方法,包括:
目标服务设备向源服务设备发送热备启动命令;
源服务设备接收所述热备启动命令,并跟根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件具备目标检查点标识;
所述源服务设备生成同步文件名列表;所述同步文件名列表至少包括具备所述目标检查点标识的源数据库文件对应的文件名;
所述源服务设备对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备;
所述目标服务设备接收所述源服务设备拷贝并发送的所述同步文件名列表中的所有文件名所对应源数据库文件,并启动目标数据库;
所述目标服务设备从接收到的所有源数据库文件中选择具备目标检查点标识的源数据库文件,并将具备目标检查点标识的源数据库文件存储至所述目标数据库,以将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
本发明另一方面提供了一种数据同步装置,包括:
第一接收模块,用于接收目标服务设备发送的热备启动命令;
备份模块,用于根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件具备目标检查点标识;
第一生成模块,用于生成同步文件名列表;所述同步文件名列表至少包括具备所述目标检查点标识的源数据库文件对应的文件名;
第一发送模块,用于对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备,以使所述目标服务设备根据所接收到的所有源数据库文件将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
其中,所述源数据库文件包括存储数据文件和引擎文件;
所述第一生成模块,包括:
第一添加单元,用于获取所述源数据库文件中用于存放元数据的引擎文件中的键值对,并将所述键值对写入至临时创建的引擎文件中,将所述临时创建的引擎文件的文件名添加至所述同步文件名列表中;所述键值对包括文件类型与文件名;
第二添加单元,用于获取所述文件类型为存放数据文件类型的键值对,作为目标键值对,将所述目标键值对中的文件名确定为所述存储数据文件的文件名,并将所述存储数据文件的文件名添加至所述同步文件名列表中;
第三添加单元,用于将所述源数据库文件中与存储引擎相关配置的引擎文件的文件名添加至所述同步文件名列表中。
其中,所述备份模块,具体用于:
根据所述热备启动命令设置租约标识,并根据所述租约标识对应的租约,在所述源数据库文件中所包含的存储数据文件和引擎文件中均设置目标检查点标识,并将热备标志位设置为封锁标志位;所述封锁标志位是用于在生成新的检查点标识时保留所述目标检查点标识;所述租约标识对应的租约用于持续保持热备标志位为封锁标志位;
则所述装置还包括:
源数据库模块,用于接收所述目标服务设备对应的目标同步代理进程发送的热备结束命令;
源数据库模块,还用于根据所述热备结束命令终止所述租约标识对应的租约,并将所述热备标志位设置为释放标志位,根据所述释放标志位删除所述目标检查点标识。
其中,还包括:
检测模块,用于检测所述租约标识所对应的租约是否超过有效期;
保留模块,用于若所述租约没有超过有效期,则所述源服务设备持续保持热备标志位为封锁标志位;
删除模块,用于若所述租约超过有效期,则终止所述租约标识对应的租约,并将所述热备标志位设置为释放标志位,根据所述释放标志位删除所述目标检查点标识,并删除所述租约标识。
其中,
所述源数据库模块,还用于接收所述目标服务设备中的目标同步代理进程定时发送的心跳信号,根据所述心跳信号生成延长租约命令,并根据所述延长租约命令延长所述租约标识对应的租约有效期。
其中,所述同步文件名列表还包括重做日志文件的文件名;
则所述装置还包括:
第二发送模块,用于将所述同步文件名列表中所述重做日志文件的文件名所对应的重做日志文件拷贝并发送至所述目标服务设备,以使所述目标服务设备根据所述重做日志文件还原生成所述同步文件名列表期间所产生的不具备所述目标检查点标识的源数据库文件。
其中,所述第一发送模块,包括:
数据库单元,用于将所述同步文件名列表发送至所述目标同步代理进程,以使所述目标同步代理进程返回数据拷贝请求;
代理进程单元,用于根据所述数据拷贝请求对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备。
其中,所述第一发送模块,包括:
第一发送单元,用于控制所述源数据库将所述同步文件名列表发送至所述目标同步代理进程,以使所述目标同步代理进程发送数据拷贝请求到源同步代理进程;
第二发送单元,用于根据所述源同步代理进程转发的所述数据拷贝请求,对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述源同步代理进程,以使所述源同步代理进程将所拷贝的源数据库文件转发至所述目标服务设备。
其中,所述同步文件名列表还包括在生成所述同步文件名列表期间内新增的源数据库文件对应的文件名;
所述第一发送模块,具体用于:
将所述同步文件名列表中所有文件名对应的具备所述目标检查点标识的源数据库文件和检查点备份处理后新增的源数据库文件拷贝并发送至所述目标服务设备,以使所述目标服务设备根据所接收到的所有源数据库文件将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
本发明另一方面提供了一种数据同步装置,包括:
第三发送模块,用于向源服务设备发送热备启动命令,以使所述源服务设备根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理,并生成同步文件名列表;检查点备份处理后的源数据库文件具备目标检查点标识;
第三接收模块,用于接收所述源服务设备拷贝并发送的所述同步文件名列表中的所有文件名所对应的源数据库文件,并启动目标数据库;
第一还原模块,用于从接收到的所有源数据库文件中选择具备目标检查点标识的源数据库文件,并将具备目标检查点标识的源数据库文件存储至所述目标数据库,以将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
其中,还包括:
第四发送模块,用于控制目标同步代理进程向所述源服务设备中的所述源数据库定时发送心跳信号,以使所述源数据库根据所述心跳信号生成延长租约命令,并根据所述延长租约命令延长与所述目标服务设备之间的租约有效期。
其中,所述同步文件名列表还包括重做日志文件的文件名;
则所述装置还包括:
第四接收模块,用于接收所述源服务设备拷贝并发送的所述重做日志文件的文件名所对应的重做日志文件;
第二还原模块,用于根据所述重做日志文件还原生成所述同步文件名列表期间所产生的不具备所述目标检查点标识的源数据库文件。
其中,还包括:
添加模块,用于控制所述目标同步代理进程将所述目标数据库加入至数据库集群,所述数据库集群包括所述源数据库和所述目标数据库;
提取模块,用于提取所述源数据库的写操作日志;
第三还原模块,用于根据所述写操作日志,将所述目标数据库中的数据库文件还原至最新的源数据库文件。
本发明另一方面提供了一种终端设备,包括:处理器和存储器;
所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如本发明实施例中一方面中的方法。
本发明另一方面提供了一种终端设备,包括:处理器和存储器;
所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如本发明实施例中另一方面中的方法。
本发明实施例另一方面提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如本发明实施例中一方面中的方法。
本发明实施例另一方面提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如本发明实施例中另一方面中的方法。
本发明实施例中的源服务设备接收目标服务设备发送的热备启动命令;源服务设备根据热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件具备目标检查点标识;源服务设备生成同步文件名列表;同步文件名列表包括具备所述目标检查点标识的源数据库文件对应的文件名以及在生成所述同步文件名列表期间内新增的源数据库文件对应的文件名;源服务设备对同步文件名列表中的所有文件名所对应的具备所述目标检查点标识的源数据库文件以及在检查点备份处理后新增的源数据库文件进行拷贝并发送至目标服务设备;目标服务设备启动目标数据库,并从所接收到的所有源数据库文件中选择具备目标检查点标识的源数据库文件,并将具备目标检查点标识的源数据库文件存储至目标数据库,以将目标数据库中的数据库文件还原为具备目标检查点标识的源数据库文件。由此可见,通过对源数据库中的文件进行检查点备份处理,并将携带目标检查点标识的文件传输至目标服务设备,目标服务设备再将传输的文件还原,可以在源服务设备不停机的前提下,完成对源服务设备中文件的备份,进而使源服务设备在对外提供服务的同时也可以同步进行文件备份,从而可以提高数据库存储资源的使用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据同步方法的场景示意图;
图2是本发明实施例提供的一种数据同步方法的流程示意图;
图3是本发明实施例提供的另一种数据同步方法的流程示意图;
图3a是本发明实施例提供的一种数据同步方法的交互示意图;
图4是本发明实施例提供的一种数据同步方法的时序示意图;
图5是本发明实施例提供的一种数据同步装置的结构示意图;
图6是本发明实施例提供的另一种数据同步装置的结构示意图;
图7是本发明实施例提供的一种终端设备的结构示意图;
图8是本发明实施例提供的另一种终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,是本发明实施例提供的一种数据同步方法的场景示意图。如图1所示,当前数据库集群100a中存在数据库A、数据库B和数据库C,当然,数据库A、数据库B和数据库C中存储的文件以及文件中的数据都是一致的。为了实现读写分离,数据库集群100a需要扩大容量,就要把数据库D添加至数据库集群100a中,此时的数据库D是一个没有存储任何文件的空白数据库。为了将数据库D加入至数据库集群100a和数据库A、数据库B、数据库C的数据达到同步,需要同步数据库A或者数据库B或者数据库C中的文件。首先,数据库D的客户端向数据库A、数据库B、数据库C中负载最小的数据库发送热备份请求,当前数据库A的负载小于数据库B的负载小于数据库C的负载,因此由数据库A来接收并响应数据库D的热备份请求。数据库A接收到热备份请求后,数据库D的客户端定时向数据库A发送心跳信号,当数据库A接收到心跳信后,就延长与数据库D的租约,租约可以使数据库A与数据库D保持长连接关系,且数据库A可以向数据库D发送拷贝的文件。在T1时刻,数据库A中存在3个数据库文件,分别是:文件a、文件b、文件c,数据库A利用数据库存储引擎为文件a、文件b、文件c进行快照,即执行checkpoint处理,也即是为文件a添加目标检查点标识100e、为文件b添加目标检查点标识100e、为文件c添加目标检查点标识100e(目标检查点标识100e可以用checkpoint_lsn进行表示),并将热备标志位(hot_backup)设置为封锁标志位,封锁标志位表示当前的目标检查点标识100e是封锁状态,即使生成了新的目标检查点标识也不能覆盖当前的目标检查点标识100e,且通过封锁标志位可以始终保留具有目标检查点标识100e的数据库文件;添加目标检查点标识100e是用于标记数据库A在T1时刻存储数据的状态。同步地,数据库A生成一张拷贝文件列表100b,但在生成拷贝文件列表的5分钟内,数据库A又被写入了文件d(由于没有对文件d进行checkpoint处理,所以文件d不携带目标检查点标识100e;但文件a、文件b和文件c仍携带目标检查点标识100e),因此拷贝文件列表100b中记录的是数据库A在T1时刻的3个数据库文件的文件名和文件d的文件名,换句话后,拷贝文件列表100b中记录的是文件a的文件名、文件b的文件名、文件c的文件名、文件d的文件名,对应的,文件a、文件b、文件c、文件d存储在数据库A中的存储区域100c中。数据库A向数据库D发送生成的拷贝文件列表100b,数据库D接收到拷贝文件列表后,通知数据库A发送拷贝文件。数据库A接收到上述通知后,依次拷贝文件a并发送至数据库D,拷贝文件b并发送至数据库D,拷贝文件c并发送至数据库D,拷贝文件d并发送至数据库D,可以根据数据库A当前的负载情况,拷贝文件和发送文件同步执行,或者先拷贝完所有的文件后在一并发送至数据库D。数据库D接收到文件a、文件b、文件c和文件d后,分别检测上述4个文件是否携带目标检查点标识100e,因为文件d不具备目标检查点标识100e,因此数据库D只还原文件a、文件b、文件c,并将文件a、文件b、文件c存储至数据库D中的存储区域100f中,此时数据库D中的文件和数据库A在T1时刻中的文件是一致的,并将数据库D加入至数据库集群100d中,数据库集群100d中存在数据库A、数据库B、数据库C、数据库D。由于在拷贝文件和传输文件的过程中,数据库A中的文件仍可能被修改,因此数据库D后续还需要提取数据库A的日志,重现数据库A在拷贝文件和传输文件的过程中的操作。数据库A若检测到文件a、文件b、文件c和文件d均发送完毕,则主动终止与数据库D之间的租约,并将热备标志位由封锁标志位改为释放标志位,也即允许为文件a、文件b、文件c添加新的目标检查点标识,也即允许对文件a、文件b、文件c进行后续的修改。
其中,同步数据库文件的具体过程可以参见以下图2至图4所对应的实施例。
进一步地,请参见图2,是本发明实施例提供的一种数据同步方法的流程示意图。如图2所示,所述方法可以包括:
步骤S101,源服务设备接收目标服务设备发送的热备启动命令;
具体的,目标服务设备中的目标同步代理进程向源服务设备中的源同步代理进程发送热备启动命令,源服务设备中的源同步代理进程监听并获取上述热备启动命令后,目标服务设备和源服务设备之间建立热备连接关系。其中目标服务设备可以包括目标同步代理进程和目标数据库,目标服务设备也可以只包括目标数据库,而目标代理进程作为一个单独的进程运行在任意一台服务设备中;同理源服务设备可以包括源同步代理进程和源数据库,源服务设备也可以只包括源数据库,而源代理进程作为一个单独的进程运行在任意一台服务设备中。热备启动命令是在数据库不停机的前提下拷贝数据库中数据库文件的命令;源服务设备是提供待拷贝数据库文件的服务设备,目标服务设备是存储源服务设备所拷贝的数据库文件的服务设备。也就是说,在源服务设备运行状态下,将源服务设备中源数据库中的数据库文件拷贝至目标服务设备中的目标数据库中。目标同步代理进程可以是目标数据库的客户端,也即是目标服务设备中的worker,源同步代理进程可以是源数据库的客户端,也即是源服务设备中的worker。其中,源数据库和目标数据库均可以为MongoDB,MongoDB是一种分布式文件存储的数据库。
步骤S102,所述源服务设备根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件具备目标检查点标识;
具体的,源服务设备接收热备启动命令后,提取源数据库中的源数据库文件,上述源数据库文件包括存储数据文件和引擎文件,对上述存储数据文件和引擎文件进行检查点备份处理,检查点备份处理后的存储数据文件和引擎文件具备目标检查点标识。检查点备份处理的过程可以为:在存储数据文件和引擎文件中设置检查点标识,检查点标识是指在某一时刻对源数据库文件所包含的存储数据文件和引擎文件进行时间点标记,检查点标识可以是数值、字母或者其他具有标识意义的字符,检查点标识可以用checkpoint_lsn进行表示。其中,检查点备份处理即为进行checkpoint(检查点)处理。其中,对当前的源数据库文件进行检查点备份处理所得到的检查点标识可以称之为目标检查点标识。引擎文件是源数据库文件中和存储引擎(存储引擎可以用WiredTiger表示)相关的文件,例如,checkpoint处理生成的元数据引擎文件(可以用WiredTiger.backup表示)、存储引擎相关配置的引擎文件,其中,存储引擎相关配置的引擎文件主要包括:WiredTiger.config(数据库配置文件)、WiredTiger(引擎版本信息文件)、WiredTiger.basecfg(引擎配置文件);存储数据文件是存放元数据的引擎文件(WiredTiger.wt)中键值对(key-value pairs)中的key(即键)的前缀名是file(即文件)的数据文件。例如,在下午2点钟,源数据库A中的源数据库文件B包含存储数据文件C、存储数据文件D和引擎文件E,因此对存储数据文件C、存储数据文件D和引擎文件E进行检查点备份处理的过程即为:在存储数据文件C中设置目标检查点标识C1、在存储数据文件D中设置目标检查点标识C1、在引擎文件E中设置目标检查点标识C1,此处的目标检查点标识C1是特指在下午2点钟对存储数据文件C、存储数据文件D和引擎文件E所进行的checkpoint标记。
步骤S103,所述源服务设备生成同步文件名列表;所述同步文件名列表包括具备目标检查点标识的源数据库文件;
具体的,源服务设备在做完checkpoint后,源数据库可以获取用于存放元数据的引擎文件(WiredTiger.wt)中的键值对,并将上述键值对写入至临时创建的引擎文件中,将上述临时创建的引擎文件的文件名添加至同步文件名列表中;键值对包括存储数据文件/引擎文件的文件类型和文件名,键值对中的键和值是存在一一映射的关系,也就是通过一个键可以确定唯一的值,例如,键值对(性别,男),因此文件类型(键)是“性别”,对应的文件名(值)是“男”。例如,源数据库首先生成一个空白的临时引擎文件(可以用WiredTiger.backup.tmp表示),打开存放元数据的引擎文件(可以为WiredTiger.wt),读取存放元数据的引擎文件中的键值对(key-value pair),将上述键值对写入空白的临时创建的引擎文件中,键值对添加完成后的临时创建的引擎文件中只包括存放元数据的引擎文件(WiredTiger.wt)中的键值对,对临时创建的引擎文件重命名,且重命名后的临时创建的引擎文件可以表示为WiredTiger.backup,此过程也是得到checkpoint处理生成的元数据引擎文件的过程,即checkpoint处理生成的元数据引擎文件的文件名为WiredTiger.backup,并将重命名后的临时创建的引擎文件(WiredTiger.backup)的文件名称写入同步文件名列表中。源数据库获取文件类型是存放数据文件类型的键值对,作为目标键值对,并将上述目标键值对中的文件名,作为存储数据文件的文件名,将存储数据文件的文件名添加至同步文件名列表中,换句话说,若键值对中的键(key)是file(即存放数据的文件),则源数据库将key为file的键值对中的值(即value,也即为存储数据文件的文件名)添加至同步文件名列表中。源数据库将与存储引擎相关配置的引擎文件(主要包括WiredTiger.config、WiredTiger、WiredTiger.basecfg)的文件名添加至同步文件名列表中。同步文件名列表中包含一个或者多个存储数据文件的文件名、引擎文件的文件名。
举例来说,临时创建的引擎文件的文件名为:文件名a,源数据库将“文件名a”添加至同步文件名列表b中;存放数据文件类型的键值对kv中的文件名为:文件名c,源数据库将“文件名c”添加至同步文件名列表b中;源数据库中存在与存储引擎相关配置的3个引擎文件,上述3个存储引擎相关配置的引擎文件的文件名分别为:文件名d、文件名e和文件名f,并将“文件名d”、“文件名e”和“文件f”添加至上述同步文件名列表b中。因此同步文件名列表b中包含5个文件名,分别为:文件名a、文件名c、文件名d、文件名e和文件名f。
步骤S104,所述源服务设备对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备,以使所述目标服务设备根据所接收到的所有源数据库文件将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
具体的,在所述源服务设备持续保持热备标志位为封锁标志位的情况下,当源数据库和源同步代理进程集成在源服务设备中时,源服务设备中的源数据库可以向目标服务设备中的目标同步代理进程发送上述生成的同步文件名列表。目标同步代理进程接收到同步文件名列表后,目标同步代理进程向源服务设备发送数据拷贝请求,该请求用于使源服务设备拷贝并发送同步文件名列表中的所有文件名所对应的源数据库文件(存储数据文件和引擎文件)。源同步代理进程接收到上述数据拷贝请求后,拷贝同步文件名列表中的所有文件名对应的源数据库文件,并通过网络字节流向目标服务设备发送拷贝的上述源数据库文件。目标服务设备接收到拷贝的存储数据文件、拷贝的引擎文件后,启动目标服务设备中的目标数据库,并建立目标数据库中的Mongod层和wiredTiger(存储引擎)层之间的链接,用于后续还原具备目标检查点标识的源数据库文件。目标服务设备首先检测接收到的所有源数据库文件是否具备目标检查点标识,选择出具备目标检查点标识的存储数据文件和具备目标检查点标识的引擎文件(不具备目标检查点标识的存储数据文件和引擎文件可以删除),并将具备目标检查点标识的存储数据文件和具备目标检查点标识的引擎文件存储至目标数据库中,在目标数据库中建立存储数据文件和引擎文件的映射关系,以将目标数据库中的数据库文件还原为源数据库文件,也就是说使目标数据库中的数据库文件和生成目标检查点标识时的源数据库中的源数据库文件一致。目标源同步代理进程再将目标数据库以vote=0(表决同意)的配置加入至数据库集群中,而当前源数据库中的源数据库文件和当前目标数据库中的数据库文件没有完全一致(由于在生成同步文件名列表、拷贝和发送的过程中源数据库文件仍可能被修改),因此后续目标数据库还需要提取数据库集群中任意一台数据库的日志(可以是数据库集群中主数据库的日志,也可以是数据库集群中从数据库的日志),并根据日志还原检查点备份处理后的源数据库文件,以使当前源数据库中的源数据库文件和当前目标数据库中的数据库文件达到一致,再将目标数据库的vote由0更改为1。上述数据库集群至少包括目标数据库和源数据库。在源数据库不停机的提前下,将源数据库中的源数据库文件拷贝至目标数据库中,以完成源数据库与目标数据库之间的数据同步。
可选的,在所述源服务设备持续保持热备标志位为封锁标志位的情况下,当源数据库集成在源服务设备中,且与源数据库对应的源同步代理进程运行在代理服务设备中,目标代理进程也运行在代理服务设备中时(源服务设备、目标服务设备、代理服务设备是3台独立的服务设备),源服务设备中的源数据库将生成的文件名列表发送至目标服务设备中的目标同步代理进程。目标同步代理进程接收到同步文件名列表后,向源同步代理进程发送数据拷贝请求,由于源同步代理进程没有集成在源服务设备中,因此源同步代理进程还需将数据拷贝请求转发至源服务设备。源服务设备再根据该数据拷贝请求,对同步文件名列表中的所有文件名对应的源数据库文件进行拷贝并发送至源同步代理进程。源同步代理进程再通过网络字节流将拉取到的源数据库文件转发至目标服务设备。目标服务设备接收到拷贝的存储数据文件、拷贝的引擎文件后,还需选择具有目标检查点标识的源数据库文件、启动目标数据库以及使当前源数据库中的源数据库文件和当前目标数据库中的数据库文件达到一致。其中,选择具有目标检查点标识的源数据库文件、启动目标数据库以及还原目标数据库的具体过程可以参见上述图2中的步骤S104。
本发明实施例中的源服务设备接收目标服务设备发送的热备启动命令;源服务设备根据热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件所包含的存储数据文件和引擎文件均具备目标检查点标识;源服务设备生成同步文件名列表;同步文件名列表包括源数据库文件所包含的存储数据文件和引擎文件分别对应的文件名;源服务设备对同步文件名列表中的所有文件名所对应的存储数据文件和引擎文件进行拷贝并发送至目标服务设备;目标服务设备启动目标数据库,并从所接收到的存储数据文件和引擎文件中选择具备目标检查点标识的存储数据文件和引擎文件,并将具备目标检查点标识的存储数据文件和引擎文件存储至目标数据库,以将目标数据库中的数据库文件还原为源数据库文件。由此可见,通过对源数据库中的文件进行检查点备份处理,并将携带目标检查点标识的文件传输至目标服务设备并还原传输的文件,可以在源服务设备不停机的前提下,完成对源服务设备中文件的备份,进而使源服务设备在对外提供服务的同时也可以同步进行文件备份,从而可以提高数据库存储资源的使用率。
请一并参加图3,是本发明实施例提供的另一种数据同步方法的流程示意图。如图3所示,所述方法可以包括:
步骤S201,源服务设备接收目标服务设备发送的热备启动命令;
其中,步骤S201的具体实现方式可参见上述图2所对应实施例中对步骤S101的描述,这里将不在继续进行赘述。
步骤S202,所述源服务设备中的源数据库根据所述热备启动命令,设置租约标识,并根据所述租约标识对应的租约,在源数据库文件中所包含的存储数据文件和引擎文件中均设置目标检查点标识,并将热备标志位设置为封锁标志位;所述封锁标志位是用于在生成新的检查点标识时保留所述目标检查点标识;所述租约标识对应的租约用于持续保持热备标志位为封锁标志位;
具体的,源服务设备中的源数据库根据接收到的热备启动命令后,根据上述热备启动命令设置租约标识,租约标识可以是token。根据租约标识所对应的租约,源数据库在源数据库文件所包含的存储数据文件中设置目标检查点标识,在源数据库文件所包含的引擎文件中也设置目标检查点标识。设置完成目标检查点标识后,源数据库通过打开特定uri(Uniform Resource Identifier,统一资源标识符)的cursor(游标)后,该特定统一资源定位符可以用backup表示,可以找到热备标志位(可以用hot_backup表示),并将热备标志位设置为封锁标志位并开启热备标志位开关(热备标志位开关可以用backup-cursor),即将hot_backup设置为true,并保持backup-cursor持续是开启状态。开启热备标志位开关可以保证设置的封锁标志位有效,封锁标志位用于在生成新的检查点标识时保留上述生成的目标检查点标识以及具有目标检查点标识的源数据库文件,这是因为源数据库在每间隔固定时长或者源数据库的写操作日志(写操作日志可以用oplog表示)的容量达到2G时,就会执行将存储数据文件和引擎文件进行检查点备份处理的步骤,即执行checkpoint处理,因此在源同步代理进程拷贝并发送存储数据文件和引擎文件至目标同步代理进程的过程中,源服务设备可能再次对存储数据文件和引擎文件进行检查点备份处理,也就是说源数据库文件所包含的存储数据文件和引擎文件在具备目标检查点标识时,源服务设备可能再次为存储数据文件和引擎文件中生成新的目标检查点标识,而为了避免新的检查点标识覆盖历史检查点标识(即目标检查点标识),因此将热备标志位设置为封锁标志位,并通过封锁标志位保留目标检查点标识以及具有目标检查点标识的源数据库文件。租约标识(token)对应的租约是用于持续保持热备标志位为封锁标志位,即在租约的有效期内,封锁标志位不会被更改。当然,租约是有时间期限的,当租约到期后,可以改变热备标志位的状态。租约可以包括:与源数据库建立租约关系的目标数据库的名称、与源数据库建立租约关系的目标数据库的编号、租约的有效期时长。若热备标志位为封锁标志位,且为存储数据文件和引擎文件生成了新的检查点标识,则存储数据文件和引擎文件可以既具备目标检查点标识也具备新的检查点标识,存储数据文件和引擎文件也可以是具备优先级更高的检查点标识,其中目标检查点标识的优先级高于新的检查点标识的优先级。目标检查点标识、新的检查点标识、热备标志位均可以是数字、字母或者其他具有标识意义的字符。
可选的,目标服务设备中的目标同步代理进程定时向源服务设备中源数据库发送心跳信号(例如,目标同步代理进程t1每隔30秒向源同步代理进程t2发送心跳信号),心跳信号是每隔一段时间向互联的另一方发送一个很小的数据包,通过对方回复情况判断互联的双方之间的通讯链路是否已经断开的消息。源数据库接收到上述心跳信号后,生成延长租约命令,并根据上述延长租约命令延长租约标识对应的租约有效期。可以理解的是,发送心跳信号的时间间隔是小于延长租约有效期的时长的,以保证租约在热备过程中一直有效。例如,发送心跳信号的时间间隔是1分钟,而源数据库一旦接收到上述心跳信号则延长租约有效期5分钟,因此可以保证只要目标同步代理进程持续定时地发送心跳信号,那么源服务设备和目标服务设备之间的租约就持续有效。由于检测租约标识所对应的租约是否在有效期内是持续于整个热备操作(检查点备份处理、生成同步文件名列表、向目标服务设备拷贝并传输存储数据文件和引起文件)过程中,因此在热备操作过程中,为了拷贝源数据库文件的完整性,目标服务设备和源服务设备之间的租约是一直持续有效的,直至当源数据库文件备份完成,显示地终止租约,或者当源服务设备或目标服务设备出现故障时,隐式地终止租约。
步骤S203,所述源服务设备生成同步文件名列表;所述同步文件名列表包括具备目标检查点标识的源数据库文件的文件名;
步骤S204,所述源服务设备对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备,以使所述目标服务设备根据所接收到的所有源数据库文件将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件;
其中,步骤S204-步骤S205的具体实现方式可参见上述图1所对应实施例中对步骤S103-步骤S104的描述,这里将不在继续进行赘述。
步骤S205,源数据库接收目标服务设备对应的目标同步代理进程发送的热备结束命令;
若目标同步代理进程检测到同步文件名列表中的所有文件名对应的源数据库文件已经发送完毕,则目标同步代理进程向源数据库发送热备结束命令。
步骤S206,源数据库根据所述热备结束命令控制所述源数据库终止所述租约标识对应的租约,并将所述热备标志位设置为释放标志位,根据所述释放标志位删除所述目标检查点标识,并删除租约标识;
具体的,源数据库根据热备结束命令自动显示地终止上述租约标识所对应的租约,释放租约标识、热备标志位相关的数据库资源,并将热备标志位由封锁标志位改为释放标志位,并将热备标志位开关(backup-cursor)关闭。例如,热备标志位为数值1时,对应封锁标志位;热备标志位为数值0时,对应释放标志位,热备标志位由封锁标志位改为释放标志位的方式就是将热备标志位由数值1改为数值0。若热备标志位是释放标志位,则删除目标检查点标识,一并删除租约标识。删除目标检查点标识后,存储数据文件和引擎文件将不具备目标检查点标识;删除租约标识后,源服务设备和目标服务设备之间将不再存在租约关系。上述可见,源数据库创建了3个命令接口,以用于生成延长租约命令,以及接收目标同步代理进程发送热备启动命令、热备结束命令。
请参考图3a,是本发明实施例提供的一种数据同步方法的交互示意图。如图3a所示,源数据库中的源数据库文件存储在文件磁盘中,当接收到热备启动命令后,对当前源数据库中的源数据库文件执行checkpoint处理,即为源数据库文件添加目标检查点标识,并开启热备标志开关和将热备标志位设置为封锁标志位,即是在热备的过程中,当前的目标检查点标识不会被新的目标检查点标识覆盖,即可以保留具有检查点标识的源数据库文件。源数据库接收到发送请求后,将携带目标检查点标识的源数据库文件和新增的源数据库文件一并发送至目标数据库,这是由于在发送源数据库文件的过程中可能有新增的源数据库文件被写入至源数据库中,而这些新增的源数据库文件可以通过缓冲区写入文件磁盘中。目标数据库在接收到所有源数据库文件后,可以从中选择携带目标检查点标识的源数据库文件进行还原,并存储在目标数据库中的文件磁盘中。在目标数据库完成还原操作后,可以进行一次全局checkpoint处理,用于后续的数据备份。
本发明实施例中的源服务设备接收目标服务设备发送的热备启动命令;源服务设备根据热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件所包含的存储数据文件和引擎文件均具备目标检查点标识;源服务设备生成同步文件名列表;同步文件名列表包括源数据库文件所包含的存储数据文件和引擎文件分别对应的文件名;源服务设备对同步文件名列表中的所有文件名所对应的存储数据文件和引擎文件进行拷贝并发送至目标服务设备;目标服务设备启动目标数据库,并从所接收到的存储数据文件和引擎文件中选择具备目标检查点标识的存储数据文件和引擎文件,并将具备目标检查点标识的存储数据文件和引擎文件存储至目标数据库,以将目标数据库中的数据库文件还原为源数据库文件。由此可见,通过对源数据库中的文件进行检查点备份处理,并将携带目标检查点标识的文件传输至目标服务设备并还原传输的文件,可以在源服务设备不停机的前提下,完成对源服务设备中文件的备份,进而使源服务设备在对外提供服务的同时也可以同步进行文件备份,从而可以提高数据库存储资源的使用率。
请参见图4,是本发明实施例提供的一种数据同步方法的时序示意图。如图4所示,数据同步方法可以包括:
步骤S301,源服务设备接收目标服务设备发送的热备启动命令;
步骤S302,所述源服务设备根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件具备目标检查点标识;
其中,步骤S301-步骤S302的具体实现方式可参见上述图2所对应实施例中对步骤S101-步骤102的描述,且检查点备份处理的具体流程可以参见上述图3中的步骤S202-步骤S203,这里将不在继续进行赘述。
步骤S303,所述源服务设备生成同步文件名列表;所述同步文件名列表包括所述源数据库文件的文件名、生成所述同步文件名列表期间内新增的源数据库文件对应的文件名和重做日志文件分别对应的文件名;
具体的,源数据库将临时创建的引擎文件的文件名、存放数据文件类型文件所对应的文件名、以及存储引擎相关配置的引擎文件的文件名都添加至同步文件名列表,具体过程可见参见上述图2中的步骤S103,并将在生成同步文件名列表中过程中,有新的源数据库文件被写入源数据库中,则将新的源数据库文件的文件名、重做日志文件的文件名一并添加至同步文件名列表中,重做日志文件可以用redolog表示。由于在生成同步文件名列表的过程中源目标服务设备没有停机,重做日志文件就是源服务设备生成同步文件名列表过程中,对存储数据文件和引擎文件中内容修改(增加数据、删除数据、更改数据等)的记录。例如,源服务设备生成同步文件名列表耗时1分钟,在这一分钟内,删除了3对源数据库中的源数据库文件中的键值对,分别为:(性别,男)、(年龄,20)、(职业,医生),并在这一分钟内及插入5对新的键值对,分别为:(性别,女)、(年龄,24)、(住址,北京)、(职业,教师)、(邮箱,123),因此重做文件日志可以记录为:[03:52:10文档A中删除(性别,男)、(年龄,20)、(职业,医生)],[03:52:50文档B中添加(性别,女)、(年龄,24)、(住址,北京)、(职业,教师)、(邮箱,123)]。同步文件名列表中包含一个或者多个存储数据文件的文件名、引擎文件的文件名、生成同步文件名列表期间新增的文件的文件名、重做日志文件的文件名。
步骤S304,所述源服务设备中的所述源数据库将所述同步文件名列表发送至所述目标同步代理进程;
具体的,源数据库将包含一个或者多个存储数据文件的文件名、引擎文件的文件名、生成同步文件名列表期间新增的文件的文件名、重做日志文件的文件名的同步文件名列表发送至目标同步代理进程。
步骤S305,目标同步代理进程定时发送心跳信号,并延长租约的有效期;
具体的,目标同步代理进程通过发送心跳信号可以延长租约的有效期,同时源数据库可以根据心跳信号生成延长租约命令,并根据延长租约命令更新租约到期的时间戳。为了拷贝源数据库文件的完整性,需要保证目标服务设备和源服务设备之间的租约是一直持续有效的,直至当源数据库文件备份完成,显示地终止租约,或者当源服务设备或目标服务设备出现故障时,隐式地终止租约。因此,步骤S305-步骤S306会在整个热备过程持续、重复地执行,直到源数据库文件备份完成。
步骤S306,所述源服务设备检测所述租约标识所对应的租约是否超过有效期;
具体的,源服务设备可以一直轮询设置的租约标识所对应的租约是否到达租约到期的时间戳。例如,租约标识R所对应的租约r1有效期为:15:00-15:30,而当前时间戳为15:31,因此租约标识R对应的租约r1已经超过有效期(15:31不在15:00-15:30时间范围内)。检测租约标识对应的租约是否超过有效期的过程会一直持续于热备操作(源数据库具备进行检查点备份处理、生成同步文件名列表、向目标服务设备拷贝并传输存储数据文件和引擎文件等操作)过程中,以避免拷贝的存储数据文件和引擎文件的数据不完整。
步骤S307,若所述租约没有超过有效期,则所述源服务设备持续保持热备标志位为封锁标志位;
具体的,若租约在有效期内,则源服务设备和目标服务设备之间存在租约关系,且源服务设备持续保持热备标志位为封锁标志位。这是为了避免由于租约不在有效期内,源服务设备和目标服务设备之间不存在租约关系,导致拷贝并传输至目标服务设备的存储数据文件和引擎文件的数据不完整。S304-S305步骤可以在整个热备(源数据库具备进行checkpoint处理、生成同步文件名列表、向目标服务设备拷贝并传输存储数据文件和引擎文件等热备操作)过程中一直执行。
步骤S308,所述目标同步代理进程返回数据拷贝请求;
步骤S309,所述源服务设备中的源同步代理进程根据所述数据拷贝请求对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备;
具体的,在源服务设备持续保持热备标志位为封锁标志位的情况下,当源数据库和源同步代理进程集成在源服务设备中时,目标同步代理进程接收到同步文件名列表后,目标同步代理进程向源服务设备发送数据拷贝请求,该请求用于请求源服务设备拷贝并发送同步文件名列表中的所有文件名所对应的源数据库文件(存储数据文件、引擎文件、生成同步文件名列表期间新增的文件、重做日志文件)。可以理解的是,检查点备份处理后新增的源数据库文件(包括生成同步文件名列表期间新增的文件)不具备目标检查点标识的。源同步代理进程接收到上述数据拷贝请求后,拷贝同步文件名列表中的所有文件名对应的源数据库文件和检查点备份处理后新增的源数据库文件,并通过网络字节流向目标服务设备发送拷贝的上述源数据库文件。
可选的,在所述源服务设备持续保持热备标志位为封锁标志位的情况下,当源数据库集成在源服务设备中,且与源数据库对应的源同步代理进程运行在代理服务设备中,目标代理进程也运行在代理服务设备中时(源服务设备、目标服务设备、代理服务设备是3台独立的服务设备),目标同步代理进程向源同步代理进程发送数据拷贝请求,由于源同步代理进程没有集成在源服务设备中,因此源同步代理进程还需将数据拷贝请求转发至源服务设备。源服务设备再根据该数据拷贝请求,对同步文件名列表中的所有文件名对应的源数据库文件(存储数据文件、引擎文件、生成同步文件名列表期间新增的文件、重做日志文件)和检查点备份处理后新增的源数据库文件,进行拷贝并发送至源同步代理进程。源同步代理进程再通过网络字节流将拉取到的源数据库文件转发至目标同步进程,目标同步进程再将拷贝的数据转发至目标服务设备。
步骤S310,源数据库根据所述热备结束命令控制所述源数据库终止所述租约标识对应的租约,并将所述热备标志位设置为释放标志位,根据所述释放标志位删除所述目标检查点标识,并删除租约标识;
其中,步骤S310的具体实现方式可参见上述图3所对应实施例中对步骤S206的描述,这里将不在继续进行赘述。
步骤S311,所述目标服务设备启动目标数据库,并从所接收到的源数据库文件中选择具备目标检查点标识的存储数据文件和引擎文件,并将具备目标检查点标识的存储数据文件和引擎文件存储至所述目标数据库,以将所述目标数据库中的数据库文件还原为具备目标检查点标识的源数据库文件,并根据所述重做日志文件还原生成所述同步文件名列表期间所产生的不具备所述目标检查点标识的存储数据文件和引擎文件;
具体的,将目标数据库中的数据库文件还原为具备目标检查点标识的源数据库文件后,根据重做日志文件中的记录在目标数据库中,还原生成同步列表期间产生的不具备目标检查点标识的存储数据文件和引擎文件。其中还原具备目标检查点标识的源数据库文件的具体实现方式可参见上述图1所对应实施例中对步骤S104的描述。目标源同步代理进程再将目标数据库加入至数据库集群中,而当前源数据库中的源数据库文件和当前目标数据库中的数据库文件没有完全一致(由于在拷贝和发送的过程中源数据库文件仍可能被修改),因此后续目标数据库还需要提取数据库集群中任意一台数据库的日志,并根据日志将还原生成同步文件名列表后的源数据库文件,以使当前源数据库中的源数据库文件和当前目标数据库中的数据库文件达到一致,上述数据库集群至少包括目标数据库和源数据库。还原重做日志文件可以减少后续还原数据库最新的数据库文件的工作量,这是因为,后续可以只还原拷贝并发送存储数据文件和引擎文件期间的存储文件和引擎文件。
步骤S312,若所述租约超过有效期,则所述源服务设备终止所述租约标识对应的租约,并将所述热备标志位设置为释放标志位,根据所述释放标志位删除所述目标检查点标识,并删除所述租约标识。
具体的,若租约超过有效期,则源服务设备自动隐式地终止租约标识所对应的租约,并释放租约标识相关的数据库资源,将热备标志位由封锁标志位改为释放标志位,若热备标志位是释放标志位,则删除目标检查点标识,并将租约标识一并删除,删除目标检查点标识后,存储数据文件和引擎文件将不具备目标检查点标识;删除租约标识后,源服务设备和目标服务设备之间将不再存在租约关系。这样是为了避免当源服务设备中的源同步代理进程发送了热备启动命令后出现异常或者在热备过程中目标服务设备(包括目标同步代理进程和目标数据库)出现故障,而源数据库这一侧无法得知,导致热备标志位和租约标识一直得不到释放,占用了源数据库资源。
本发明实施例中的源服务设备接收目标服务设备发送的热备启动命令;源服务设备根据热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件所包含的存储数据文件和引擎文件均具备目标检查点标识;源服务设备生成同步文件名列表;同步文件名列表包括源数据库文件所包含的存储数据文件和引擎文件分别对应的文件名;源服务设备对同步文件名列表中的所有文件名所对应的存储数据文件和引擎文件进行拷贝并发送至目标服务设备;目标服务设备启动目标数据库,并从所接收到的存储数据文件和引擎文件中选择具备目标检查点标识的存储数据文件和引擎文件,并将具备目标检查点标识的存储数据文件和引擎文件存储至目标数据库,以将目标数据库中的数据库文件还原为源数据库文件。由此可见,通过对源数据库中的文件进行检查点备份处理,并将携带目标检查点标识的文件传输至目标服务设备并还原传输的文件,可以在源服务设备不停机的前提下,完成对源服务设备中文件的备份,进而使源服务设备在对外提供服务的同时也可以同步进行文件备份,从而可以提高数据库存储资源的使用率。
进一步的,请参见图5,是本发明实施例提供的一种数据同步装置的结构示意图。如图5所示,所述数据同步装置1可以应用于上述图2所对应实施例中的源服务设备,所述数据同步装置1可以包括:第一接收模块11、备份模块12、第一生成模块13、第一发送模块14;
第一接收模块11,用于接收目标服务设备发送的热备启动命令;
备份模块12,用于根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件具备目标检查点标识;
第一生成模块13,用于生成同步文件名列表;所述同步文件名列表至少包括具备所述目标检查点标识的源数据库文件对应的文件名;
第一发送模块14,用于对所述同步文件名列表中的所有文件名所对应源数据库文件进行拷贝并发送至所述目标服务设备,以使所述目标服务设备根据所接收到的所有源数据库文件将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
其中,第一接收模块11、备份模块12、第一生成模块13、第一发送模块14的具体功能实现方式可以参见上述图2对应实施例中的步骤S101-步骤S104,这里不再进行赘述。
请参见图5,备份模块12具体用于:
根据所述热备启动命令设置租约标识,并根据所述租约标识对应的租约,在所述源数据库文件中所包含的存储数据文件和引擎文件中均设置目标检查点标识,并将热备标志位设置为封锁标志位;所述封锁标志位是用于在生成新的检查点标识时保留所述目标检查点标识;所述租约标识对应的租约用于持续保持热备标志位为封锁标志位。
其中,备份模块12的具体功能实现方式可以参见上述图3对应实施例中的步骤S202,备份模块12可以集成在上述图2对应实施例中的源数据库中,这里不再进行赘述。
请一并参见图5,数据同步装置1还可以包括:源数据库模块15;
源数据库模块15,用于接收所述目标服务设备对应的目标同步代理进程发送的热备结束命令;
源数据库模块15,还用于根据所述热备结束命令终止所述租约标识对应的租约,并将所述热备标志位设置为释放标志位,根据所述释放标志位删除所述目标检查点标识,并删除租约标识;
其中,源数据库模块15的具体功能实现方式可以参见上述图3对应实施例中的步骤S205-步骤S206,这里不再进行赘述,且源数据库模块15可以集成在上述图2对应实施例中的源数据库中。
请参见图5,第一生成模块13可以包括:第一添加单元131,第二添加单元132,第三添加单元133;
第一添加单元131,用于获取所述源数据库文件中用于存放元数据的引擎文件中的键值对,并将所述键值对写入至临时创建的引擎文件中,将所述临时创建的引擎文件的文件名添加至所述同步文件名列表中;所述键值对包括文件类型与文件名;
第二添加单元132,用于获取所述文件类型为存放数据文件类型的键值对,作为目标键值对,将所述目标键值对中的文件名确定为所述存储数据文件的文件名,并将所述存储数据文件的文件名添加至所述同步文件名列表中;
第三添加单元133,用于将所述源数据库文件中与存储引擎相关配置的引擎文件的文件名添加至所述同步文件名列表中。
其中,第一添加单元131,第二添加单元132,第三添加单元133的具体功能实现方式可以参见上述图2对应实施例中的步骤S103,这里不再进行赘述。
请一并参见图5,数据同步装置1可以包括:第一接收模块11、备份模块12、第一生成模块13、第一发送模块14、数据库模块15;数据同步装置1还可以包括:检测模块16,保留模块17,删除模块18,第二发送模块19;
检测模块16,用于检测所述租约标识所对应的租约是否超过有效期;
保留模块17,用于若所述租约没有超过有效期,则所述源服务设备持续保持热备标志位为封锁标志位;
删除模块18,用于若所述租约超过有效期,则终止所述租约标识对应的租约,并将所述热备标志位设置为释放标志位,根据所述释放标志位删除所述目标检查点标识,并删除所述租约标识;
源数据库模块15,还用于接收所述目标服务设备中的目标同步代理进程定时发送的心跳信号,根据所述心跳信号生成延长租约命令,并根据所述延长租约命令延长所述租约标识对应的租约有效期;
第二发送模块19,用于将所述同步文件名列表中所述重做日志文件的文件名所对应的重做日志文件拷贝并发送至所述目标服务设备,以使所述目标服务设备在将所述目标数据库中的数据库文件还原为所述源数据库文件后,根据所述重做日志文件还原生成所述同步文件名列表期间所产生的不具备所述目标检查点标识的源数据库文件;
其中,检测模块16,保留模块17的具体功能实现方式可以参见上述图4对应实施例中的步骤S307-步骤S308,删除模块18的具体功能实现方式可以参见上述图4对应实施例中的步骤S312,源数据库模块15的具体功能实现方式可以参见上述图4对应实施例中的步骤S305,第二发送模块19的具体功能实现方式可以参见上述图4对应实施例中的步骤S310,此处不再赘述。
请参见图5,第一发送模块14可以包括:数据库单元141,代理进程单元142;
源数据库单元141,用于将所述同步文件名列表发送至所述目标同步代理进程,以使所述目标同步代理进程返回数据拷贝请求;
源代理进程单元142,用于根据所述数据拷贝请求对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备。
其中,数据库单元141,代理进程单元142的具体功能实现方式可以参见上述图2对应实施例中的步骤S104,且源数据库单元141可以集成在上述图2对应实施例中的源数据库中,源代理进程单元142可以集成在上述图2对应实施例中的源数据库中,也可以作为一个进程单独运行,此处不再赘述。
请参见图5,第一发送模块14还可以包括:第一发送单元143,第二发送单元144;
第一发送单元143,用于控制所述源数据库将所述同步文件名列表发送至所述目标同步代理进程,以使所述目标同步代理进程发送数据拷贝请求到源同步代理进程;
第二发送单元144,用于根据所述源同步代理进程转发的所述数据拷贝请求,对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述源同步代理进程,以使所述源同步代理进程将所拷贝的源数据库文件转发至所述目标服务设备。
其中,第一发送单元143,第二发送单元144的具体功能实现方式可以参见上述图2对应实施例中的步骤S104,且第一发送单元143可以集成在上述图2对应实施例中的源数据库中,第二发送单元144可以集成在上述图2对应实施例中的源数据库中,也可以作为一个进程单独运行,此处不再赘述。
本发明实施例中的源服务设备接收目标服务设备发送的热备启动命令;源服务设备根据热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件所包含的存储数据文件和引擎文件均具备目标检查点标识;源服务设备生成同步文件名列表;同步文件名列表包括源数据库文件所包含的存储数据文件和引擎文件分别对应的文件名;源服务设备对同步文件名列表中的所有文件名所对应的存储数据文件和引擎文件进行拷贝并发送至目标服务设备;目标服务设备启动目标数据库,并从所接收到的存储数据文件和引擎文件中选择具备目标检查点标识的存储数据文件和引擎文件,并将具备目标检查点标识的存储数据文件和引擎文件存储至目标数据库,以将目标数据库中的数据库文件还原为源数据库文件。由此可见,通过对源数据库中的文件进行检查点备份处理,并将携带目标检查点标识的文件传输至目标服务设备并还原传输的文件,可以在源服务设备不停机的前提下,完成对源服务设备中文件的备份,进而使源服务设备在对外提供服务的同时也可以同步进行文件备份,从而可以提高数据库存储资源的使用率。
进一步的,请参见图6,是本发明实施例提供的另一种数据同步装置的结构示意图。如图6所示,所述数据同步装置2可以应用于上述图2所对应实施例中的目标服务设备,所述数据同步装置2可以包括:第三发送模块22、第三接收模块23、第一还原模块24;
第三发送模块22,用于向源服务设备发送热备启动命令,以使所述源服务设备根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理,并生成同步文件名列表;检查点备份处理后的源数据库文件具备目标检查点标识;
第三接收模块23,用于接收所述源服务设备拷贝并发送的所述同步文件名列表中的所有文件名所对应源数据库文件,并启动目标数据库;
第一还原模块24,用于从接收到的所有源数据库文件中选择具备目标检查点标识的源数据库文件,并将具备目标检查点标识的源数据库文件存储至所述目标数据库,以将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
第三发送模块22、第三接收模块23、第一还原模块24的具体功能实现方式可以参见上述图2对应实施例中的步骤S101-步骤S104,此处不再赘述。
请一并参见图6,数据同步装置2还可以包括:第四发送模块25,第四接收模块26,第二还原模块27;
第四发送模块25,用于控制目标同步代理进程向所述源服务设备中的源数据库定时发送心跳信号,以使所述源数据库根据所述心跳信号生成延长租约命令,并根据所述延长租约命令延长与所述目标服务设备之间的租约有效期;
第四接收模块26,用于接收所述源服务设备拷贝并发送的所述重做日志文件的文件名所对应的重做日志文件;
第二还原模块27,用于根据所述重做日志文件还原生成所述同步文件名列表期间所产生的不具备所述目标检查点标识的源数据库文件。
其中,第四发送模块25的具体功能实现方式可以参见上述图3对应实施例中的步骤S203,第四接收模块26、第二还原模块27的具体功能实现方式可以参见上述图4对应实施例中的步骤S307,此处不再赘述。
请一并参见图6,数据同步装置2还可以包括:添加模块28,提取模块29,第三还原模块30;
添加模块28,用于控制所述目标同步代理进程将所述目标数据库加入至数据库集群,所述数据库集群包括所述源数据库和所述目标数据库;
提取模块29,用于提取所述源数据库的写操作日志;
第三还原模块30,用于根据所述写操作日志,将所述目标数据库中的数据库文件还原至最新的源数据库文件。
其中,添加模块28,提取模块29,第三还原模块30的具体功能实现方式可以参见上述图4对应实施例中的步骤S310,此处不再赘述。
本发明实施例中的源服务设备接收目标服务设备发送的热备启动命令;源服务设备根据热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件所包含的存储数据文件和引擎文件均具备目标检查点标识;源服务设备生成同步文件名列表;同步文件名列表包括源数据库文件所包含的存储数据文件和引擎文件分别对应的文件名;源服务设备对同步文件名列表中的所有文件名所对应的存储数据文件和引擎文件进行拷贝并发送至目标服务设备;目标服务设备启动目标数据库,并从所接收到的存储数据文件和引擎文件中选择具备目标检查点标识的存储数据文件和引擎文件,并将具备目标检查点标识的存储数据文件和引擎文件存储至目标数据库,以将目标数据库中的数据库文件还原为源数据库文件。由此可见,通过对源数据库中的文件进行检查点备份处理,并将携带目标检查点标识的文件传输至目标服务设备并还原传输的文件,可以在源服务设备不停机的前提下,完成对源服务设备中文件的备份,进而使源服务设备在对外提供服务的同时也可以同步进行文件备份,从而可以提高数据库存储资源的使用率。
进一步地,请参见图7,是本发明实施例提供的一种终端设备的结构示意图。如图7所示,所述终端设备1000可以为上述图2对应实施例中的源服务设备,所述终端设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,所述终端设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1004可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图7所示,作为一种计算机存储介质的存储器1004中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
所述终端设备1000可以为上述图2对应实施例中的源服务设备,在图7所示的终端设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1004中存储的设备控制应用程序,以实现:
接收目标服务设备发送的热备启动命令;
根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件具备目标检查点标识;
生成同步文件名列表;所述同步文件名列表至少包括具备所述目标检查点标识的源数据库文件对应的文件名;
对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备,以使所述目标服务设备根据所接收到的所有源数据库文件将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
在一个实施例中,所述源数据库文件包括存储数据文件和引擎文件;
所述处理器1001在执行生成同步文件名列表时,具体执行以下步骤:
获取所述源数据库文件中用于存放元数据的引擎文件中的键值对,并将所述键值对写入至临时创建的引擎文件中,将所述临时创建的引擎文件的文件名添加至所述同步文件名列表中;所述键值对包括文件类型与文件名;
获取所述文件类型为存放数据文件类型的键值对,作为目标键值对,将所述目标键值对中的文件名确定为所述存储数据文件的文件名,并将所述存储数据文件的文件名添加至所述同步文件名列表中;
将所述源数据库文件中与存储引擎相关配置的引擎文件的文件名添加至所述同步文件名列表中。
在一个实施例中,所述处理器1001在执行根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理时,具体执行以下步骤:
根据所述热备启动命令设置租约标识,并根据所述租约标识对应的租约,在所述源数据库文件中所包含的存储数据文件和引擎文件中均设置目标检查点标识,并将热备标志位设置为封锁标志位;所述封锁标志位是用于在生成新的检查点标识时保留所述目标检查点标识;所述租约标识对应的租约用于持续保持热备标志位为封锁标志位;
则所述处理器1001还执行以下步骤:
接收所述目标服务设备对应的目标同步代理进程发送的热备结束命令;
根据所述热备结束命令终止所述租约标识对应的租约,并将所述热备标志位设置为释放标志位,根据所述释放标志位删除所述目标检查点标识,并删除所述租约标识。
在一个实施例中,所述处理器1001还执行以下步骤:
检测所述租约标识所对应的租约是否超过有效期;
若所述租约没有超过有效期,则所述源服务设备持续保持热备标志位为封锁标志位;
若所述租约超过有效期,则终止所述租约标识对应的租约,并将所述热备标志位设置为释放标志位,根据所述释放标志位删除所述目标检查点标识,并删除所述租约标识。
在一个实施例中,所述处理器1001还执行以下步骤:
接收所述目标服务设备中的目标同步代理进程定时发送的心跳信号,根据所述心跳信号生成延长租约命令,并根据所述延长租约命令延长所述租约标识对应的租约有效期。
在一个实施例中,所述同步文件名列表还包括重做日志文件的文件名;
则所述处理器1001还执行以下步骤:
将所述同步文件名列表中所述重做日志文件的文件名所对应的重做日志文件拷贝并发送至所述目标服务设备,以使在将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件后,根据所述重做日志文件还原生成所述同步文件名列表期间所产生的不具备所述目标检查点标识的源数据库文件。
在一个实施例中,所述处理器1001在执行对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备时,具体执行以下步骤:
将所述同步文件名列表发送至所述目标同步代理进程,以使所述目标同步代理进程返回数据拷贝请求;
根据所述数据拷贝请求对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备。
在一个实施例中,所述处理器1001在执行对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备时,具体执行以下步骤:
将所述同步文件名列表发送至所述目标同步代理进程,以使所述目标同步代理进程发送数据拷贝请求到源同步代理进程;
根据所述源同步代理进程转发的所述数据拷贝请求,对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述源同步代理进程,以使所述源同步代理进程将所拷贝的源数据库文件转发至所述目标服务设备。
在一个实施例中,所述同步文件名列表还包括在生成所述同步文件名列表期间内新增的源数据库文件对应的文件名,
则所述处理器1001在执行对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备时,具体执行以下步骤:
将所述同步文件名列表中所有文件名对应的具备所述目标检查点标识的源数据库文件和检查点备份处理后新增的源数据库文件拷贝并发送至所述目标服务设备,以使所述目标服务设备根据所接收到的所有源数据库文件将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
应当理解,本发明实施例中所描述的终端设备1000可执行前文图2到图4所对应实施例中对所述数据同步方法的描述,也可执行前文图5所对应实施例中对所述数据同步装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本发明实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的数据同步装置1所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图2到图4所对应实施例中对所述数据同步方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
进一步地,请参见图8,是本发明实施例提供的另一种终端设备的结构示意图。如图8所示,所述终端设备2000可以为上述图2对应实施例中的目标服务设备,所述终端设备2000可以包括:处理器2001,网络接口2004和存储器2005,此外,所述终端设备2000还可以包括:用户接口2003,和至少一个通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。其中,用户接口2003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口2003还可以包括标准的有线接口、无线接口。网络接口2004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器2004可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器2004可选的还可以是至少一个位于远离前述处理器2001的存储装置。如图8所示,作为一种计算机存储介质的存储器2004中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
所述终端设备2000可以为上述图2对应实施例中的目标服务设备,在图8所示的终端设备2000中,网络接口2004可提供网络通讯功能;而用户接口2003主要用于为用户提供输入的接口;而处理器2001可以用于调用存储器2004中存储的设备控制应用程序,以实现:
向源服务设备发送热备启动命令,以使所述源服务设备根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理,并生成同步文件名列表;检查点备份处理后的源数据库文件具备目标检查点标识;
接收所述源服务设备拷贝并发送的所述同步文件名列表中的所有文件名所对应的源数据库文件,并启动目标数据库;
从接收到的所有源数据库文件中选择具备目标检查点标识的源数据库文件,并将具备目标检查点标识的源数据库文件存储至所述目标数据库,以将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
在一个实施例中,所述处理器2001还执行以下步骤:
控制目标同步代理进程向所述源服务设备中的源数据库定时发送心跳信号,以使所述源数据库根据所述心跳信号生成延长租约命令,并根据延长租约命令延长与所述目标服务设备之间的租约有效期。
在一个实施例中,所述同步文件名列表还包括重做日志文件的文件名;
则所述处理器2001还执行以下步骤:
接收所述源服务设备拷贝并发送的所述重做日志文件的文件名所对应的重做日志文件;
根据所述重做日志文件还原生成所述同步文件名列表期间所产生的不具备所述目标检查点标识的源数据库文件。
在一个实施例中,所述处理器2001还执行以下步骤:
控制所述目标同步代理进程将所述目标数据库加入至数据库集群,所述数据库集群包括所述源数据库和所述目标数据库;
提取所述源数据库的写操作日志;
根据所述写操作日志,将所述目标数据库中的数据库文件还原至最新的源数据库文件。
本发明实施例中的源服务设备接收目标服务设备发送的热备启动命令;源服务设备根据热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件所包含的存储数据文件和引擎文件均具备目标检查点标识;源服务设备生成同步文件名列表;同步文件列名表包括源数据库文件所包含的存储数据文件和引擎文件分别对应的文件名;源服务设备对同步文件名列表中的所有文件名所对应的存储数据文件和引擎文件进行拷贝并发送至目标服务设备;目标服务设备启动目标数据库,并从所接收到的存储数据文件和引擎文件中选择具备目标检查点标识的存储数据文件和引擎文件,并将具备目标检查点标识的存储数据文件和引擎文件存储至目标数据库,以将目标数据库中的数据库文件还原为源数据库文件。由此可见,通过对源数据库中的文件进行检查点备份处理,并将携带目标检查点标识的文件传输至目标服务设备并还原传输的文件,可以在源服务设备不停机的前提下,完成对源服务设备中文件的备份,进而使源服务设备在对外提供服务的同时也可以同步进行文件备份,从而可以提高数据库存储资源的使用率。
本发明实施例中所描述的终端设备2000可执行前文图2到图4所对应实施例中对所述数据同步方法的描述,也可执行前文图6所对应实施例中对所述数据同步装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本发明实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的数据同步装置2所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图2到图4所对应实施例中对所述数据同步方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (17)

1.一种数据同步方法,其特征在于,包括:
源服务设备接收目标服务设备发送的热备启动命令;
所述源服务设备根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件具备目标检查点标识;
所述源服务设备生成同步文件名列表;所述同步文件名列表至少包括具备所述目标检查点标识的源数据库文件对应的文件名;
所述源服务设备对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备,以使所述目标服务设备根据所接收到的所有源数据库文件,将目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
2.根据权利要求1所述的方法,其特征在于,所述源数据库文件包括存储数据文件和引擎文件;
所述源服务设备生成同步文件名列表,包括:
所述源服务设备获取所述源数据库文件中用于存放元数据的引擎文件中的键值对,并将所述键值对写入至临时创建的引擎文件中,将所述临时创建的引擎文件的文件名添加至所述同步文件名列表中;所述键值对包括文件类型与文件名;
所述源服务设备获取所述文件类型为存放数据文件类型的键值对,作为目标键值对,将所述目标键值对中的文件名确定为所述存储数据文件的文件名,并将所述存储数据文件的文件名添加至所述同步文件名列表中;
所述源服务设备将所述源数据库文件中与存储引擎相关配置的引擎文件的文件名添加至所述同步文件名列表中。
3.根据权利要求2所述的方法,其特征在于,所述源服务设备根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理,包括:
所述源服务设备中的源数据库根据所述热备启动命令设置租约标识,并根据所述租约标识对应的租约,在所述源数据库文件中所包含的存储数据文件和引擎文件中均设置目标检查点标识,并将热备标志位设置为封锁标志位;所述封锁标志位是用于在生成新的检查点标识时保留所述目标检查点标识;所述租约标识对应的租约用于持续保持所述热备标志位为所述封锁标志位;
则所述方法还包括:
在所述源服务设备发送完所述同步文件名列表中的所有文件名所对应的源数据库文件后,所述源数据库接收所述目标服务设备对应的目标同步代理进程发送的热备结束命令;
所述源数据库根据所述热备结束命令终止所述租约标识对应的租约,并将所述热备标志位设置为释放标志位,根据所述释放标志位删除所述目标检查点标识,并删除所述租约标识。
4.根据权利要求3所述的方法,其特征在于,还包括:
所述源服务设备检测所述租约标识所对应的租约是否超过有效期;
若所述租约没有超过有效期,则所述源服务设备持续保持热备标志位为封锁标志位;
若所述租约超过有效期,则所述源服务设备终止所述租约标识对应的租约,并将所述热备标志位设置为释放标志位,根据所述释放标志位删除所述目标检查点标识,并删除所述租约标识。
5.根据权利要求2所述的方法,其特征在于,所述同步文件名列表还包括重做日志文件的文件名;
则所述方法还包括:
所述源服务设备将所述同步文件名列表中所述重做日志文件的文件名所对应的重做日志文件拷贝并发送至所述目标服务设备,以使所述目标服务设备在将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件后,根据所述重做日志文件还原生成所述同步文件名列表期间所产生的不具备所述目标检查点标识的源数据库文件。
6.根据权利要求2所述的方法,其特征在于,所述源服务设备对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备,包括:
所述源服务设备中的所述源数据库将所述同步文件名列表发送至所述目标服务设备中的目标同步代理进程,以使所述目标同步代理进程返回数据拷贝请求;
所述源服务设备中的源同步代理进程根据所述数据拷贝请求,对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝,并发送至所述目标服务设备。
7.根据权利要求2所述的方法,其特征在于,所述源服务设备对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备,包括:
所述源服务设备中的所述源数据库将所述同步文件名列表发送至与所述目标服务设备对应的目标同步代理进程,以使所述目标同步代理进程发送数据拷贝请求到源同步代理进程;
所述源服务设备根据所述源同步代理进程转发的所述数据拷贝请求,对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝,并发送至所述源同步代理进程,以使所述源同步代理进程将所拷贝的源数据库文件转发至所述目标服务设备。
8.根据权利要求2所述的方法,其特征在于,所述同步文件名列表还包括在生成所述同步文件名列表期间内新增的源数据库文件对应的文件名;
所述源服务设备对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备,包括:
所述源服务设备将所述同步文件名列表中所有文件名对应的具备所述目标检查点标识的源数据库文件和检查点备份处理后新增的源数据库文件拷贝并发送至所述目标服务设备,以使所述目标服务设备根据所接收到的所有源数据库文件将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
9.一种数据同步方法,其特征在于,包括:
目标服务设备向源服务设备发送热备启动命令,以使所述源服务设备根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理,并生成同步文件名列表;检查点备份处理后的源数据库文件具备目标检查点标识;
所述目标服务设备接收所述源服务设备拷贝并发送的所述同步文件名列表中的所有文件名所对应的源数据库文件,并启动目标数据库;
所述目标服务设备从接收到的所有源数据库文件中选择具备目标检查点标识的源数据库文件,并将具备目标检查点标识的源数据库文件存储至所述目标数据库,以将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
10.根据权利要求9所述的方法,其特征在于,还包括:
所述目标服务设备控制目标同步代理进程向所述源服务设备中的所述源数据库定时发送心跳信号,以使所述源数据库根据所述心跳信号生成延长租约命令,并根据所述延长租约命令延长与所述目标服务设备之间的租约有效期。
11.根据权利要求9所述的方法,其特征在于,所述同步文件名列表还包括重做日志文件的文件名;
则所述方法还包括:
所述目标服务设备接收所述源服务设备拷贝并发送的所述重做日志文件的文件名所对应的重做日志文件;
所述目标服务设备在将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件后,根据所述重做日志文件还原生成所述同步文件名列表期间所产生的不具备所述目标检查点标识的源数据库文件。
12.根据权利要求9所述的方法,其特征在于,所述将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件之后,还包括:
所述目标服务设备控制所述目标同步代理进程将所述目标数据库加入至数据库集群,所述数据库集群包括所述源数据库和所述目标数据库;
所述目标服务设备提取所述源数据库的写操作日志;
所述目标服务设备根据所述写操作日志,将所述目标数据库中的数据库文件还原至最新的源数据库文件。
13.一种数据同步方法,其特征在于,包括:
目标服务设备向源服务设备发送热备启动命令;
源服务设备接收所述热备启动命令,并跟根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库文件具备目标检查点标识;
所述源服务设备生成同步文件名列表;所述同步文件名列表至少包括具备所述目标检查点标识的源数据库文件对应的文件名;
所述源服务设备对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备;
所述目标服务设备接收所述源服务设备拷贝并发送的所述同步文件名列表中的所有文件名所对应源数据库文件,并启动目标数据库;
所述目标服务设备从接收到的所有源数据库文件中选择具备目标检查点标识的源数据库文件,并将具备目标检查点标识的源数据库文件存储至所述目标数据库,以将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
14.一种数据同步装置,其特征在于,包括:
第一接收模块,用于接收目标服务设备发送的热备启动命令;
备份模块,用于根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理;检查点备份处理后的源数据库具备目标检查点标识;
第一生成模块,用于生成同步文件名列表;所述同步文件名列表至少包括具备所述目标检查点标识的源数据库文件对应的文件名;
第一发送模块,用于对所述同步文件名列表中的所有文件名所对应的源数据库文件进行拷贝并发送至所述目标服务设备,以使所述目标服务设备根据所接收到的所有源数据库文件,将所述目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
15.一种数据同步装置,其特征在于,包括:
第三发送模块,用于向源服务设备发送热备启动命令,以使所述源服务设备根据所述热备启动命令,对源数据库中的源数据库文件进行检查点备份处理,并生成同步文件名列表;检查点备份处理后的源数据库文件具备目标检查点标识;
第三接收模块,用于接收所述源服务设备拷贝并发送的所述同步文件名列表中的所有文件名所对应的源数据库文件,并启动目标数据库;
第一还原模块,用于从接收到的所有源数据库文件中选择具备目标检查点标识的源数据库文件,并将具备目标检查点标识的源数据库文件存储至所述目标数据库,以将目标数据库中的数据库文件还原为具有所述目标检查点标识的源数据库文件。
16.一种终端设备,其特征在于,包括:处理器和存储器;
所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1-13任一项所述的方法。
17.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-13任一项所述的方法。
CN201711386845.9A 2017-12-20 2017-12-20 一种数据同步方法、装置以及相关设备 Active CN109947592B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711386845.9A CN109947592B (zh) 2017-12-20 2017-12-20 一种数据同步方法、装置以及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711386845.9A CN109947592B (zh) 2017-12-20 2017-12-20 一种数据同步方法、装置以及相关设备

Publications (2)

Publication Number Publication Date
CN109947592A true CN109947592A (zh) 2019-06-28
CN109947592B CN109947592B (zh) 2022-11-18

Family

ID=67005675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711386845.9A Active CN109947592B (zh) 2017-12-20 2017-12-20 一种数据同步方法、装置以及相关设备

Country Status (1)

Country Link
CN (1) CN109947592B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400279A (zh) * 2020-03-12 2020-07-10 腾讯科技(深圳)有限公司 数据操作方法、装置和计算机可读存储介质
CN112650625A (zh) * 2020-12-28 2021-04-13 武汉达梦数据技术有限公司 一种针对数据库的流式备份还原方法、存储介质及装置
CN114625564A (zh) * 2020-12-08 2022-06-14 中国移动通信集团四川有限公司 文件备份方法、装置及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150370641A1 (en) * 2014-06-24 2015-12-24 Oracle International Corporation Storage integrated snapshot cloning for database
CN106354425A (zh) * 2015-07-13 2017-01-25 三星电子株式会社 基于数据属性的数据布局的方法和系统
CN106354583A (zh) * 2016-08-30 2017-01-25 广州鼎甲计算机科技有限公司 一种MySQL数据库的热备份方法与系统
CN106777225A (zh) * 2016-12-26 2017-05-31 腾讯科技(深圳)有限公司 一种数据的迁移方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150370641A1 (en) * 2014-06-24 2015-12-24 Oracle International Corporation Storage integrated snapshot cloning for database
CN106354425A (zh) * 2015-07-13 2017-01-25 三星电子株式会社 基于数据属性的数据布局的方法和系统
CN106354583A (zh) * 2016-08-30 2017-01-25 广州鼎甲计算机科技有限公司 一种MySQL数据库的热备份方法与系统
CN106777225A (zh) * 2016-12-26 2017-05-31 腾讯科技(深圳)有限公司 一种数据的迁移方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
C. GRAY; D. CHERITON: "Leases: an efficient fault-tolerant mechanism for distributed file cache consistency", 《OPERATING SYSTEMS REVIEW》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400279A (zh) * 2020-03-12 2020-07-10 腾讯科技(深圳)有限公司 数据操作方法、装置和计算机可读存储介质
CN111400279B (zh) * 2020-03-12 2021-02-12 腾讯科技(深圳)有限公司 数据操作方法、装置和计算机可读存储介质
CN114625564A (zh) * 2020-12-08 2022-06-14 中国移动通信集团四川有限公司 文件备份方法、装置及设备
CN112650625A (zh) * 2020-12-28 2021-04-13 武汉达梦数据技术有限公司 一种针对数据库的流式备份还原方法、存储介质及装置

Also Published As

Publication number Publication date
CN109947592B (zh) 2022-11-18

Similar Documents

Publication Publication Date Title
WO2019154394A1 (zh) 分布式数据库集群系统、数据同步方法及存储介质
US7788223B2 (en) Resource freshness and replication
US8775387B2 (en) Methods and systems for validating accessibility and currency of replicated data
CN104813321B (zh) 在分布式对象存储生态系统中的去耦合的内容以及元数据
US7953710B2 (en) Multi-master database synchronization without loss of convergence
CN104239166B (zh) 一种对运行中虚拟机实现文件备份的方法
CN113396407A (zh) 用于利用区块链技术扩充数据库应用的系统和方法
CN107667351A (zh) 用于移动设备上的自动基于云的全数据备份和恢复的系统和方法
CN105574187B (zh) 一种异构数据库复制事务一致性保障方法及系统
CN105843702B (zh) 一种用于数据备份的方法以及装置
US20150213100A1 (en) Data synchronization method and system
CN111209346A (zh) 一种区块链数据归档方法、装置和计算机可读存储介质
CN102968486B (zh) 一种基于变化日志的高可靠文件同步方法
CN109189608B (zh) 一种保证复制事务一致性的方法以及相应的复制装置
CN104391930A (zh) 分布式文件存储装置和方法
CN105376277B (zh) 一种数据同步方法及装置
CN102360410B (zh) 一种文件系统的用户操作发现方法和装置
CN106484565B (zh) 多数据中心间的数据同步方法及相关设备
CN106790713B (zh) 云计算环境下的跨数据中心虚拟机迁移方法
CN103902405B (zh) 一种准连续性数据复制方法及装置
US20120278429A1 (en) Cluster system, synchronization controlling method, server, and synchronization controlling program
CN109947592A (zh) 一种数据同步方法、装置以及相关设备
EP4189914B1 (en) Using multiple blockchains for applying transactions to a set of persistent data objects in persistent storage systems
US20090063486A1 (en) Data replication using a shared resource
CN108762982B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230925

Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.