CN117194390A - 数据库迁移方法和装置 - Google Patents

数据库迁移方法和装置 Download PDF

Info

Publication number
CN117194390A
CN117194390A CN202311477204.XA CN202311477204A CN117194390A CN 117194390 A CN117194390 A CN 117194390A CN 202311477204 A CN202311477204 A CN 202311477204A CN 117194390 A CN117194390 A CN 117194390A
Authority
CN
China
Prior art keywords
database
target database
data
target
production application
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
CN202311477204.XA
Other languages
English (en)
Other versions
CN117194390B (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.)
CCB Finetech Co Ltd
Original Assignee
CCB Finetech 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 CCB Finetech Co Ltd filed Critical CCB Finetech Co Ltd
Priority to CN202311477204.XA priority Critical patent/CN117194390B/zh
Publication of CN117194390A publication Critical patent/CN117194390A/zh
Application granted granted Critical
Publication of CN117194390B publication Critical patent/CN117194390B/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是本发明第三实施例提供的一种数据库迁移方法的流程示意图;
图4是本发明的实施例提供的一种数据库迁移装置的结构示意图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,本发明的技术方案中,所涉及的用户个人信息的采集、分析、使用、传输、存储等方面,均符合相关法律法规的规定,被用于合法且合理的用途,不在这些合法使用等方面之外共享、泄露或出售,并且接受监管部门的监督管理。应当对用户个人信息采取必要措施,以防止对此类个人信息数据的非法访问,确保有权访问个人信息数据的人员遵守相关法律法规的规定,确保用户个人信息安全。一旦不再需要这些用户个人信息数据,应当通过限制甚至禁止数据收集和/或删除数据的方式将风险降至最低。
图1是本发明第一实施例提供的一种数据库迁移方法的流程示意图,如图1所示,该方法包括:
步骤101:响应于源端数据库所在服务器的资源信息符合同步条件,进行源端数据库到目标数据库的全量数据同步。
资源信息及同步条件都可根据具体需求进行设置。资源信息可以为:CPU使用率、内存使用大小和磁盘IO繁忙程度等。同步条件可以为当前时间到达预设时间、CPU使用率小于预设使用率、内存使用大小小于预设大小等。
全量数据同步用于将当前时间的源端数据库中的所有数据同步到目标数据库中。需要说明的是,进行源端数据库到目标数据库的全量数据同步的过程中,生产应用仍连接源端数据库对外提供服务,因此,在全量数据同步过程中,仍不断地有数据写入源端数据库中。全量数据同步之后,源端数据库有部分数据未被同步到目标数据库中,需要进行源端数据库到目标数据库的增量数据同步。
步骤102:进行源端数据库到目标数据库的增量数据同步,并对目标数据库进行第一数据检验。
执行步骤101-步骤103的过程中,生产应用连接源端数据库对外提供服务。因此,在步骤101-步骤103的同步过程中,仍不断地有数据写入源端数据库中。可能需要进行多次增量数据同步,才能使目标数据库通过第一数据检验。
第一数据检验用于将目标数据库与源端数据库之间的数据差异控制在一个较小的范围内。在本发明的一个实施例中,对目标数据库进行第一数据检验,包括:对目标数据库进行数据库对象检验,数据库对象检验用于检验目标数据库中的数据库对象的数量、名称及状态是否正确;对目标数据库进行第一差异检验,第一差异检验用于检验目标数据库与源端数据库的表中的数据差异是否在第一范围内。
数据库对象可包括:表、分区表、约束、索引、视图、函数、存储过程、包头、包体、同义词及触发器等。通过对目标数据库进行数据库对象检验,确保目标数据库中数据库对象与源端数据库中的数据对象完全一致,且目标数据库中各数据库对象的状态正常。
第一差异检验用于检验目标数据库与源端数据库的表中的数据差异是否在第一范围内。可以检查检验目标数据库与源端数据库中的每个表中的数据差异是否都在第一范围内,也可以检验目标数据库与源端数据库中的所有表的数据总量的差异是否在第一范围内。
第一差异检验可通过如下两种方式进行:检查目标数据库及源端数据库中表的行数、对目标数据库及源端数据库中的表进行某个时间点的MD5值检查。检查表的行数方式会比较快,占用资源比较少,但是因为生产应用不停的往源端数据库写入数据,无法保证在同一时间点对目标数据库及源端数据库进行查询,所以检查的结果会存在少量差异。
对表进行MD5值检查占用CPU及内存资源比较多,需要注意对比过程中对资源的占用情况,同时对表MD5值进行检查耗费时间比较长,需要在执行步骤104之前进行多轮验证,建议迁移前至少进行3轮验证,已排除潜在的风险。
步骤103:响应于目标数据库未通过第一数据检验,继续进行源端数据库到目标数据库的增量数据同步,直至目标数据库通过第一数据检验。
如果目标数据库通过第一数据检验,则可以切断生产应用与源端数据库之间的连接,执行步骤104。如果目标数据库未通过第一数据检验,则继续进行源端数据库到目标数据库的增量数据同步。
步骤104:响应于目标数据库通过第一数据检验,对生产应用与源端数据库之间的连接进行切断处理,以使生产应用无法访问源端数据库。
可以通过修改生产应用的配置文件和/或源端数据库配置文件,来对生产应用与源端数据库之间的连接进行切断处理。执行步骤104-步骤106的过程中,生产应用停止提供应用服务。直至步骤106之后,生产应用恢复提供应用服务。
步骤105:进行源端数据库到目标数据库的增量数据同步,并对目标数据库进行第二数据检验。
第一数据检验条件及第二数据检验条件都可以根据需求进行设置。第二数据检验条件可以使目标数据库中数据不影响生产应用的正常运行。第二数据检验条件对目标数据库中数据的检验条件应比第一数据检验条件更为严格。
在本发明的一个实施例中,对目标数据库进行第二数据检验,包括:确定数据同步日志中是否存在报错;响应于数据同步日志中不存在报错,对目标数据库进行第二差异检验,第二差异检验用于检验目标数据库与源端数据库的表中的数据差异是否在第二范围内。
如果数据同步日志中存在报错,确定报错对应的修改策略,执行修改策略对应的处理之后,再对目标数据库进行第二差异检验。第二差异检验用于检验目标数据库与源端数据库的表中的数据差异是否在第二范围内。可以检查检验目标数据库与源端数据库中的每个表的数据差异是否都在第二范围内,也可以检验目标数据库与源端数据库中所有表的数据总量的差异是否在第二范围内。
第二范围应小于第一范围,以使目标数据库中的数据与源端数据库中的数据更为接近,目标数据库中数据不影响生产应用的正常运行。第二范围可以为0,即使目标数据库中的数据与源端数据库中的数据完全一样。
对目标数据库进行第二数据检验之后,还包括:响应于目标数据库未通过第二数据检验,继续进行源端数据库到目标数据库的增量数据同步,直至目标数据库通过第二数据检验。
如果目标数据库通过第二数据检验,执行步骤106。如果目标数据库未通过第二数据检验,继续进行源端数据库到目标数据库的增量数据同步。
步骤106:响应于目标数据库通过第二数据检验,对生产应用与目标数据库进行连接处理,以使生产应用访问目标数据库。
可以通过修改生产应用的配置文件和/或目标数据库配置文件,来对生产应用与目标数据库进行连接处理。步骤106之后,生产应用恢复提供应用服务。因此,应用本发明实施例的方案,生产应用停止提供应用服务的时间为执行步骤104-步骤106的过程中。
在本发明实施例的方案中,在源端数据库所在服务器的资源信息符合同步条件时,先进行源端数据库到目标数据库的全量数据同步,再循环进行源端数据库到目标数据库的增量数据同步,直至目标数据库通过第一数据检验。对生产应用与源端数据库之间的连接进行切断处理,进行源端数据库到目标数据库的增量数据同步。在目标数据库通过第二数据检验时,对生产应用与目标数据库进行连接处理,完成从源端数据库到目标数据库的迁移。
本发明实施例的方案先使目标数据库通过第一数据检验之后,再切断生产应用与源端数据库之间的连接,继续进行源端数据库到目标数据库的增量数据同步,直至目标数据库通过第二数据检验,再连接生产应用与目标数据库,使生产应用恢复正常服务。相比进行数据库同步时,就切断生产应用与源端数据库之间的连接的方式,不需要长时间的暂停连接源端数据库的生产应用,能够减轻由于数据库迁移给用户的正常使用带来的不良影响。
图2是本发明第二实施例提供的一种数据库迁移方法的流程示意图,如图2所示,该方法包括:
步骤201:响应于源端数据库所在服务器的资源信息符合同步条件,进行源端数据库到目标数据库的全量数据同步。
步骤202:进行源端数据库到目标数据库的增量数据同步,并对目标数据库进行第一数据检验。
步骤203:响应于目标数据库未通过第一数据检验,继续进行源端数据库到目标数据库的增量数据同步,直至目标数据库通过第一数据检验。
步骤204:响应于目标数据库通过第一数据检验,对生产应用与源端数据库之间的连接进行切断处理,以使生产应用无法访问源端数据库。
步骤205:进行源端数据库到目标数据库的增量数据同步,并对目标数据库进行第二数据检验。
步骤206:响应于目标数据库通过第二数据检验,对生产应用与目标数据库进行连接处理,以使生产应用访问目标数据库。
步骤207:获取生产应用的运转信息。
如果运转信息表征生产应用运转正常,则使生产应用继续访问目标数据库,对为提供应用服务。如果运转信息表征生产应用运转异常,则执行步骤208。
步骤208:响应于运转信息表征生产应用运转异常,切断生产应用与目标数据库之间的连接;连接生产应用与源端数据库,以使生产应用访问源端数据库。
可以通过修改生产应用的配置文件和/或目标数据库配置文件,来对生产应用与目标数据库之间的连接进行切断处理。可以通过修改生产应用的配置文件和/或源端数据库配置文件,来使生产应用访问源端数据库。
在本发明实施例的方案中,数据库迁移之后,可轮循获取生产应用的运转信息,以确定生产应用是否正常运转。如果生产应用运转异常,则将生产应用回退到源端数据库,以最大限度地保证生产应用能够正常对外提供服务。
在本发明的一个实施例中,进行源端数据库到目标数据库的全量数据同步,包括:获取源端数据库所在服务器的资源信息;根据资源信息,确定第一并发数量;利用第一并发数量个同步进程,进行源端数据库到目标数据库的全量数据同步。
资源信息可包括:CPU使用率、内存使用大小和磁盘IO繁忙程度等。可在系统中预设资源信息与第一并发数量的第一映射关系,根据第一映射关系,合理确定第一并发数量,减少对源端数据库所在服务器正常运转的不良影响。
在本发明的一个实施例中,进行源端数据库到目标数据库的增量数据同步,包括:获取源端数据库所在服务器的资源信息;根据资源信息,确定第二并发数量;利用第二并发数量个同步进程,进行源端数据库到目标数据库的全量数据同步。可在系统中预设资源信息与第二并发数量的第二映射关系,根据第二映射关系,合理确定第二并发数量,减少对源端数据库所在服务器正常运转的不良影响。
全量数据同步阶段,由于数据量较大,尽量放在生产应用的业务低峰期进行。同步过程中需要检查同步软件对服务器资源占用情况,避免对生产应用的影响,主要检查CPU使用率、内存使用大小和磁盘IO繁忙程度。进入增量数据同步阶段后,同样检查同步软件对服务器资源的占用情况,尤其是在业务高峰期对资源的占用情况。如果资源占用过高,可以考虑通过限制同步进程的并发数量,设置同步进程对内存的最大占用量来解决问题。
图3是本发明第三实施例提供的一种数据库迁移方法的流程示意图,如图3所示,该方法包括:
步骤301:对目标数据库进行环境准备检验,环境准备检验包括以下至少之一:用户信息检验、文件信息检验、操作系统信息检验、网络检验、软件检验及数据库参数检验。
在进行数据同步之前,先对目标数据库进行环境准备检验。用户信息检验用于检验目标数据库及源端数据库中的用户是否一致。文件信息检验用于检验目标数据库及源端数据库的各环境文件名称、大小等是否一致。操作系统信息检验用于检验目标数据库中的目录使用率是否合理,相关参数设置是否合理。网络检验用于检验目标数据库的防火墙策略及各设备配置是否已完毕,目标端数据库只允许源端数据库复制端口及参与迁移人员的工作电脑IP可以访问。软件检验用于对目标数据库的版本及补丁进行检查,数据库版本及补丁采用最新稳定版本,并保存检查结果。数据库参数检验用于对目标数据库的数据库参数进行检查。
步骤302:响应于目标数据库通过环境准备检验,确定源端数据库所在服务器的资源信息是否符合同步条件。
步骤303:响应于源端数据库所在服务器的资源信息符合同步条件,进行源端数据库到目标数据库的全量数据同步。
步骤304:进行源端数据库到目标数据库的增量数据同步,并对目标数据库进行第一数据检验。
步骤305:响应于目标数据库未通过第一数据检验,继续进行源端数据库到目标数据库的增量数据同步,直至目标数据库通过第一数据检验。
步骤306:响应于目标数据库通过第一数据检验,对生产应用与源端数据库之间的连接进行切断处理,以使生产应用无法访问源端数据库。
步骤306可包括:停生产应用、切断网络等。切断网络用于断开源端数据库与生产应用之间的网络连接,修改目标数据库的防火墙的策略,使目标数据库接入业务网络,连通生产应用与目标数据库之间的访问连接。
步骤307:进行源端数据库到目标数据库的增量数据同步,并对目标数据库进行第二数据检验。
步骤308:响应于目标数据库通过第二数据检验,对生产应用与目标数据库进行连接处理,以使生产应用访问目标数据库。
开启生产应用并获取生产应用的运转信息。修改生产应用的数据库连接,使数据库连接指向目标数据库地址。对生产应用的功能及数据进行检查,确定生产应用的各项功能是否能访问正常。运转信息无误后,则确定数据库的迁移成功。
在本发明实施例的方案中,在进行数据同步之前,先对目标数据库进行环境准备检验,以确保目标数据库服务器的各项准备工作均就绪,减少由于环境设置不正确,造成数据库迁移失败请求的发生。
图4是本发明的一个实施例提供的一种数据库迁移装置的结构示意图,如图4所示,该装置包括:
全量同步模块401,用于响应于源端数据库所在服务器的资源信息符合同步条件,进行源端数据库到目标数据库的全量数据同步;
增量同步模块402,用于进行源端数据库到目标数据库的增量数据同步,并对目标数据库进行第一数据检验;
第一检验模块403,用于响应于目标数据库未通过第一数据检验,继续进行源端数据库到目标数据库的增量数据同步,直至目标数据库通过第一数据检验;
连接切断模块404,用于响应于目标数据库通过第一数据检验,对生产应用与源端数据库之间的连接进行切断处理,以使生产应用无法访问源端数据库;
第二检验模块405,用于进行源端数据库到目标数据库的增量数据同步,并对目标数据库进行第二数据检验;
连接模块406,用于响应于目标数据库通过第二数据检验,对生产应用与目标数据库进行连接处理,以使生产应用访问目标数据库。
可选地,还包括:
回退模块,用于获取生产应用的运转信息;
响应于运转信息表征生产应用运转异常,切断生产应用与目标数据库之间的连接;连接生产应用与源端数据库,以使生产应用访问源端数据库。
可选地,第一检验模块403具体用于:
对目标数据库进行数据库对象检验,数据库对象检验用于检验目标数据库中的数据库对象的数量、名称及状态是否正确;
对目标数据库进行第一差异检验,第一差异检验用于检验目标数据库与源端数据库的表中的数据差异是否在第一范围内。
可选地,第二检验模块405具体用于:
确定数据同步日志中是否存在报错;
响应于数据同步日志中不存在报错,对目标数据库进行第二差异检验,第二差异检验用于检验目标数据库与源端数据库的表中的数据差异是否在第二范围内。
可选地,第二检验模块405还用于:
响应于目标数据库未通过第二数据检验,继续进行源端数据库到目标数据库的增量数据同步,直至目标数据库通过第二数据检验。
可选地,全量同步模块401具体用于:
获取源端数据库所在服务器的资源信息;
根据资源信息,确定第一并发数量;
利用第一并发数量个同步进程,进行源端数据库到目标数据库的全量数据同步。
可选地,增量同步模块402具体用于:
获取源端数据库所在服务器的资源信息;
根据资源信息,确定第二并发数量;
利用第二并发数量个同步进程,进行源端数据库到目标数据库的全量数据同步。
可选地,还包括:
环境检验模块,用于对目标数据库进行环境准备检验,环境准备检验包括以下至少之一:用户信息检验、文件信息检验、操作系统信息检验、网络检验、软件检验及数据库参数检验;
响应于目标数据库通过环境准备检验,执行进行源端数据库到目标数据库的全量数据同步的步骤。
本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述任一实施例的方法。
本发明实施例提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述任一实施例的方法。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机系统500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了根据本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:全量同步模块、增量同步模块、第一检验模块、连接切断模块、第二检验模块及连接模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,全量同步模块还可以被描述为“响应于源端数据库所在服务器的资源信息符合同步条件,进行所述源端数据库到目标数据库的全量数据同步的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
响应于源端数据库所在服务器的资源信息符合同步条件,进行所述源端数据库到目标数据库的全量数据同步;
进行所述源端数据库到所述目标数据库的增量数据同步,并对所述目标数据库进行第一数据检验;
响应于所述目标数据库未通过所述第一数据检验,继续进行所述源端数据库到所述目标数据库的增量数据同步,直至所述目标数据库通过所述第一数据检验;
响应于所述目标数据库通过所述第一数据检验,对生产应用与所述源端数据库之间的连接进行切断处理,以使所述生产应用无法访问所述源端数据库;
进行所述源端数据库到所述目标数据库的增量数据同步,并对所述目标数据库进行第二数据检验;
响应于所述目标数据库通过所述第二数据检验,对所述生产应用与所述目标数据库进行连接处理,以使所述生产应用访问所述目标数据库。
根据本发明实施例的技术方案,在源端数据库所在服务器的资源信息符合同步条件时,先进行源端数据库到目标数据库的全量数据同步,再循环进行源端数据库到目标数据库的增量数据同步,直至目标数据库通过第一数据检验。对生产应用与源端数据库之间的连接进行切断处理,进行源端数据库到目标数据库的增量数据同步。在目标数据库通过第二数据检验时,对生产应用与目标数据库进行连接处理,完成从源端数据库到目标数据库的迁移。
第一数据检验条件及第二数据检验条件都可以根据需求进行设置。第二数据检验条件可以使目标数据库中数据不影响生产应用的正常运行。第二数据检验条件对目标数据库中数据的检验条件应比第一数据检验条件更为严格。本发明实施例的方案先使目标数据库通过第一数据检验之后,再切断生产应用与源端数据库之间的连接,继续进行源端数据库到目标数据库的增量数据同步,直至目标数据库通过第二数据检验,再连接生产应用与目标数据库,使生产应用恢复正常服务。相比进行数据库同步时,就切断生产应用与源端数据库之间的连接的方式,不需要长时间的暂停连接源端数据库的生产应用,能够减轻由于数据库迁移给用户的正常使用带来的不良影响。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (15)

1.一种数据库迁移方法,其特征在于,包括:
响应于源端数据库所在服务器的资源信息符合同步条件,进行所述源端数据库到目标数据库的全量数据同步;
进行所述源端数据库到所述目标数据库的增量数据同步,并对所述目标数据库进行第一数据检验;
响应于所述目标数据库未通过所述第一数据检验,继续进行所述源端数据库到所述目标数据库的增量数据同步,直至所述目标数据库通过所述第一数据检验;
响应于所述目标数据库通过所述第一数据检验,对生产应用与所述源端数据库之间的连接进行切断处理,以使所述生产应用无法访问所述源端数据库;
进行所述源端数据库到所述目标数据库的增量数据同步,并对所述目标数据库进行第二数据检验;
响应于所述目标数据库通过所述第二数据检验,对所述生产应用与所述目标数据库进行连接处理,以使所述生产应用访问所述目标数据库。
2.根据权利要求1所述的方法,其特征在于,所述对所述生产应用与所述目标数据库进行连接处理,以使所述生产应用访问所述目标数据库之后,还包括:
获取所述生产应用的运转信息;
响应于所述运转信息表征所述生产应用运转异常,切断所述生产应用与所述目标数据库之间的连接;连接所述生产应用与所述源端数据库,以使所述生产应用访问所述源端数据库。
3.根据权利要求1所述的方法,其特征在于,所述对所述目标数据库进行第一数据检验,包括:
对所述目标数据库进行数据库对象检验,所述数据库对象检验用于检验所述目标数据库中的数据库对象的数量、名称及状态是否正确;
对所述目标数据库进行第一差异检验,所述第一差异检验用于检验所述目标数据库与所述源端数据库的表中的数据差异是否在第一范围内。
4.根据权利要求1所述的方法,其特征在于,所述对所述目标数据库进行第二数据检验,包括:
确定数据同步日志中是否存在报错;
响应于数据同步日志中不存在报错,对所述目标数据库进行第二差异检验,所述第二差异检验用于检验所述目标数据库与所述源端数据库的表中的数据差异是否在第二范围内。
5.根据权利要求1所述的方法,其特征在于,所述对所述目标数据库进行第二数据检验之后,还包括:
响应于所述目标数据库未通过所述第二数据检验,继续进行所述源端数据库到所述目标数据库的增量数据同步,直至所述目标数据库通过所述第二数据检验。
6.根据权利要求1所述的方法,其特征在于,所述进行所述源端数据库到目标数据库的全量数据同步,包括:
获取所述源端数据库所在服务器的资源信息;
根据所述资源信息,确定第一并发数量;
利用所述第一并发数量个同步进程,进行所述源端数据库到目标数据库的全量数据同步。
7.根据权利要求1所述的方法,其特征在于,所述进行所述源端数据库到所述目标数据库的增量数据同步,包括:
获取所述源端数据库所在服务器的资源信息;
根据所述资源信息,确定第二并发数量;
利用所述第二并发数量个同步进程,进行所述源端数据库到目标数据库的全量数据同步。
8.根据权利要求1所述的方法,其特征在于,所述进行所述源端数据库到目标数据库的全量数据同步之前,还包括:
对所述目标数据库进行环境准备检验,所述环境准备检验包括以下至少之一:用户信息检验、文件信息检验、操作系统信息检验、网络检验、软件检验及数据库参数检验;
响应于所述目标数据库通过所述环境准备检验,执行所述进行所述源端数据库到目标数据库的全量数据同步的步骤。
9.一种数据库迁移装置,其特征在于,包括:
全量同步模块,用于响应于源端数据库所在服务器的资源信息符合同步条件,进行所述源端数据库到目标数据库的全量数据同步;
增量同步模块,用于进行所述源端数据库到所述目标数据库的增量数据同步,并对所述目标数据库进行第一数据检验;
第一检验模块,用于响应于所述目标数据库未通过所述第一数据检验,继续进行所述源端数据库到所述目标数据库的增量数据同步,直至所述目标数据库通过所述第一数据检验;
连接切断模块,用于响应于所述目标数据库通过所述第一数据检验,对生产应用与所述源端数据库之间的连接进行切断处理,以使所述生产应用无法访问所述源端数据库;
第二检验模块,用于进行所述源端数据库到所述目标数据库的增量数据同步,并对所述目标数据库进行第二数据检验;
连接模块,用于响应于所述目标数据库通过所述第二数据检验,对所述生产应用与所述目标数据库进行连接处理,以使所述生产应用访问所述目标数据库。
10.根据权利要求9所述的装置,其特征在于,还包括:
回退模块,用于获取所述生产应用的运转信息;
响应于所述运转信息表征所述生产应用运转异常,切断所述生产应用与所述目标数据库之间的连接;连接所述生产应用与所述源端数据库,以使所述生产应用访问所述源端数据库。
11.根据权利要求9所述的装置,其特征在于,所述第一检验模块具体用于:
对所述目标数据库进行数据库对象检验,所述数据库对象检验用于检验所述目标数据库中的数据库对象的数量、名称及状态是否正确;
对所述目标数据库进行第一差异检验,所述第一差异检验用于检验所述目标数据库与所述源端数据库的表中的数据差异是否在第一范围内。
12.根据权利要求9所述的装置,其特征在于,所述第二检验模块具体用于:
确定数据同步日志中是否存在报错;
响应于数据同步日志中不存在报错,对所述目标数据库进行第二差异检验,所述第二差异检验用于检验所述目标数据库与所述源端数据库的表中的数据差异是否在第二范围内。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8中任一项所述的方法。
CN202311477204.XA 2023-11-08 2023-11-08 数据库迁移方法和装置 Active CN117194390B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311477204.XA CN117194390B (zh) 2023-11-08 2023-11-08 数据库迁移方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311477204.XA CN117194390B (zh) 2023-11-08 2023-11-08 数据库迁移方法和装置

Publications (2)

Publication Number Publication Date
CN117194390A true CN117194390A (zh) 2023-12-08
CN117194390B CN117194390B (zh) 2024-02-09

Family

ID=89003841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311477204.XA Active CN117194390B (zh) 2023-11-08 2023-11-08 数据库迁移方法和装置

Country Status (1)

Country Link
CN (1) CN117194390B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718570A (zh) * 2016-01-20 2016-06-29 北京京东尚科信息技术有限公司 用于数据库的数据迁移方法和装置
CN110413693B (zh) * 2019-07-31 2020-04-03 上海英方软件股份有限公司 一种数据库实时同步系统数据一致性的检验方法及装置
CN111400276A (zh) * 2020-03-03 2020-07-10 杭州天谷信息科技有限公司 实时同步数据库迁移装置及方法
CN112363995A (zh) * 2020-10-30 2021-02-12 北京新数科技有限公司 基于日志解析的增量数据比对方法、装置和电子设备
WO2022063223A1 (zh) * 2020-09-28 2022-03-31 华为技术有限公司 数据校验方法、装置和系统
CN110019138B (zh) * 2017-12-29 2022-06-03 中国移动通信集团公司 一种基于Zabbix的传输表空间自动迁移方法和系统
CN115373889A (zh) * 2021-05-19 2022-11-22 中移动信息技术有限公司 数据同步中的数据比对校验及数据修复的方法及装置
CN115543967A (zh) * 2022-11-02 2022-12-30 中国建设银行股份有限公司 一种数据迁移方法、装置、电子设备及计算机可读介质
US20230087447A1 (en) * 2020-05-29 2023-03-23 Alibaba Group Holding Limited Data migration method and device
CN116089285A (zh) * 2023-01-06 2023-05-09 苏州浪潮智能科技有限公司 一种数据库测试方法、装置、电子设备及可读介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718570A (zh) * 2016-01-20 2016-06-29 北京京东尚科信息技术有限公司 用于数据库的数据迁移方法和装置
CN110019138B (zh) * 2017-12-29 2022-06-03 中国移动通信集团公司 一种基于Zabbix的传输表空间自动迁移方法和系统
CN110413693B (zh) * 2019-07-31 2020-04-03 上海英方软件股份有限公司 一种数据库实时同步系统数据一致性的检验方法及装置
CN111400276A (zh) * 2020-03-03 2020-07-10 杭州天谷信息科技有限公司 实时同步数据库迁移装置及方法
US20230087447A1 (en) * 2020-05-29 2023-03-23 Alibaba Group Holding Limited Data migration method and device
WO2022063223A1 (zh) * 2020-09-28 2022-03-31 华为技术有限公司 数据校验方法、装置和系统
CN112363995A (zh) * 2020-10-30 2021-02-12 北京新数科技有限公司 基于日志解析的增量数据比对方法、装置和电子设备
CN115373889A (zh) * 2021-05-19 2022-11-22 中移动信息技术有限公司 数据同步中的数据比对校验及数据修复的方法及装置
CN115543967A (zh) * 2022-11-02 2022-12-30 中国建设银行股份有限公司 一种数据迁移方法、装置、电子设备及计算机可读介质
CN116089285A (zh) * 2023-01-06 2023-05-09 苏州浪潮智能科技有限公司 一种数据库测试方法、装置、电子设备及可读介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张春瑞;赵成坤;吴川;陈非;: "银行管理信息系统服务器国产化过程中的ETL应用迁移", 计算机系统应用, no. 10 *

Also Published As

Publication number Publication date
CN117194390B (zh) 2024-02-09

Similar Documents

Publication Publication Date Title
CN107480014B (zh) 一种高可用设备切换方法及装置
JP6633642B2 (ja) 分散データベースにおけるデータブロックを処理する方法およびデバイス
CN110063042A (zh) 一种数据库故障的响应方法及其终端
CN110716912B (zh) 一种sql性能检测方法及服务器
US11200052B1 (en) Documentation enforcement during compilation
CN107451202B (zh) 一种数据访问方法及设备
CN117194390B (zh) 数据库迁移方法和装置
CN110795495A (zh) 数据处理方法、装置、电子设备及计算机可读介质
CN117076196A (zh) 一种数据库容灾的管控方法和装置
US10140187B1 (en) Techniques for system backup
US20230092030A1 (en) Automatically cataloging application programming interface (api) specifications
US9471409B2 (en) Processing of PDSE extended sharing violations among sysplexes with a shared DASD
CN108769246B (zh) 一种nfs共享最大化的测试方法和系统
CN112131077A (zh) 故障节点的定位方法和定位装置、以及数据库集群系统
CN109032955B (zh) 一种ui自动化测试方法、装置、设备及可读存储介质
CN114138578B (zh) 一种服务器测试方法和装置
US11330079B2 (en) Environment for developing of distributed multicloud applications
US11520752B2 (en) Remote control of a change data capture system
CN116302718A (zh) 任务处理方法、介质、装置和计算设备
CN116028577A (zh) 数据同步方法及装置、电子设备和存储介质
CN116700824A (zh) 配置策略的同步方法、装置及计算机程序产品
CN112099963A (zh) 二进制日志文件解析的方法和装置
CN115934657A (zh) 微服务管理方法、装置、设备及存储介质
CN112925721A (zh) 一种分布式系统的测试方法及装置
CN117675846A (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