数据的迁移方法和装置与流程

文档序号:12719944阅读:213来源:国知局
数据的迁移方法和装置与流程

本发明涉及互联网技术领域,特别是涉及一种数据的迁移方法和装置。



背景技术:

数据库是按照数据结构来组织、存储和管理数据的仓库。随着互联网技术的发展,在对数据库服务器硬件升级等场景中,数据库的数据往往需要由一个电子设备迁移到另一个电子设备。

数据库的数据在迁移过程中,需要将原数据库停止业务更新,将数据库的数据复制到新的环境后再启动服务。由于这种方式需要中断原数据库服务,对数据库业务造成一定影响,操作便利性低。



技术实现要素:

基于此,有必要提供操作便利性高的数据的迁移方法和装置。

为达到上述目的,本发明实施例采用以下技术方案:

一种数据的迁移方法,包括:

获取配置信息,所述配置信息包括源数据库地址和目标数据库地址;

根据所述源数据库地址连接到源数据库,并根据所述目标数据库地址连接到目标数据库以建立与所述配置信息对应的迁移通道;

通过所述迁移通道向所源数据库发送数据迁移请求,所述数据迁移请求携带有待迁移的数据表的信息;

通过所述迁移通道获取所述源数据库响应所述数据迁移请求发送的所述数据表的全量数据,并将所述全量数据通过所述迁移通道发送至对应的目标数据库;

通过所述迁移通道抽取所述源数据库的增量数据,并将所述增量数据通过所述迁移通道按照数据产生的时间顺序导入对应的所述目标数据库。

一种数据的迁移装置,包括:配置信息获取模块、迁移通道建立模块、发送模块、中转模块、抽取模块和导入模块;

所述配置信息获取模块,用于获取配置信息,所述配置信息包括源数据库地址和目标数据库地址;

所述迁移通道建立模块,用于根据所述源数据库地址连接到源数据库,并根据所述目标数据库地址连接到目标数据库以建立与所述配置信息对应的迁移通道;

所述发送模块,用于通过所述迁移通道向所源数据库发送数据迁移请求,所述数据迁移请求携带有待迁移的数据表的信息;

所述中转模块,用于通过所述迁移通道获取所述源数据库响应所述数据迁移请求发送的所述数据表的全量数据,并将所述全量数据通过所述迁移通道发送至对应的目标数据库;

所述抽取模块,用于通过所述迁移通道抽取所述源数据库的增量数据;

所述导入模块,用于将所述增量数据通过所述迁移通道按照数据产生的时间顺序导入对应的所述目标数据库。

上述的数据的迁移方法,根据源数据地址和目标数据地址分别连接到源数据库和目标数据库并建立源数据库和目标数据库的迁移通道,通过迁移通道向源数据库发送携带待迁移的数据表的信息,获取源数据库通过迁移通道发送全量数据并发送至对应的目标数据库,抽取源数据库在全量数据迁移过程中产生的增量数据并发送至对应的目标数据库。通过根据迁移请求,先对源数据库中的全量数据进行迁移,再对增量数据按时间顺序进行抽取。即使在全量数据迁移过程产生了的新的数据,也可以通过增量数据抽取的方式进行迁移,从而保持源数据库与目标数据库的数据一致性。并且,由于能够对增量数据进行抽取,从而无需中断源数据库的业务,实现数据的在线迁移。同时,迁移通道根据配置信息的源数据库地址和目标数据库地址对应生成,可同时根据不同的配置信息生成多个对应的迁移通道,并发处理多个数据库的数据迁移,操作便利性高。

附图说明

图1为本发明一个实施例方案的应用环境示意图;

图2为一个实施例的服务器的内部结构示意图;

图3为一个实施例的数据的迁移方法的流程图;

图4为一个实施例的数据的迁移方法的数据流向示意图;

图5为又一个实施例的数据的迁移方法的时序说明图;

图6为一个实施例的数据的迁移装置的结构示意图;

图7为又一个实施例的数据的迁移装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。

图1为一个实施例提供的数据迁移方法的应用环境示意图。如图1所示,该应用环境包括源数据库101、中转服务器102、目标数据库103和应用终端104,应用终端上执行有为中转服务器102输入配置信息的客户端,应用终端104与中转服务器102通信连接,用户在应用终端上操作,对数据迁移进行配置。配置信息通过网络发送至中转服务器102,配置信息包括源数据库地址和目标数据库地址。中转服务器102根据配置信息连接到源数据库101和目标数据库103,建立源数据库101和目标数据库103的数据迁移通道。其中源数据库101可以为应用程序100提供支持的数据库,通过应用程序100写入的数据都存储在源数据库101中。源数据库101中的数据通过数据迁移通道迁移至对应的目标数据库103中。在其它的实施方式中,目标数据库103可以为网络云服务器集群13中的一台服务器,客户端为网络云服务器的操作平台,用户通过登录网络云服务器的操作平台配置信息,通过中转服务器102将源数据库101中的数据迁移至网络云服务器103。在完成迁移后,应用程序100的业务数据存储在网络云服务器103。

图2为一个实施例中的中转服务器的内部结构示意图。如图2所示,中转服务器包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,中转服务器的存储介质存储有操作系统以及一种数据的迁移装置,该数据的迁移装置用于实现一种数据的迁移方法。该处理器用于提供计算和控制能力,支撑整个中转服务器的运行。中转服务器中的内存为存储介质中的数据的迁移装置运行提供环境,网络接口用于与应用终端、源数据库和目标数据库进行网络通信,接收应用终端上的客户端对数据迁移的配置信息,根据配置信息连接到源数据库和目标数据库。

本领域技术人员可以理解,图2中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

请参照图3,在一个实施例中,提供一种数据的迁移方法,该方法运行在如图1所示的中转服务器102中,包括以下步骤:

S302:获取配置信息,配置信息包括源数据库地址和目标数据库地址。

配置信息是指用户通过客户端输入的对数据迁移的配置指令,包括源数据库地址和目标数据库地址。源数据库地址即需要进行迁移的数据的存放地址。源数据库地址可以为域名,也可以为数据库的IP(Internet Protocol,互联网协议)地址,还可以为数据库的IP地址+端口号。

目标数据库地址是指需要迁移的数据的目标存放地址,目标数据库地址可以为域名,也可以为数据库的IP地址,还可以为数据库的IP地址+端口号。在配置信息中,可为此次数据迁移配置多个目标数据库地址,即可以将源数据库的数据同时迁移至多个目标数据库。

用户在应用终端的客户端输入配置信息,应用终端将配置信息发送至中转服务器。本实施例中的客户端为数据迁移平台的客户端,客户端可以为平台的网页客户端,也可以为平台的应用程序终端。客户端可以接收用户输入的源数据库地址和目标数据库地址,也可以根据用户在平台的用户名查找与其关联的源数据库地址和目标数据库地址,分别将查找到的源数据库地址和目标数据库地址展示在客户端,供用户选择。

S304:根据源数据库地址连接到源数据库,并根据目标数据库地址连接到目标数据库以建立与配置信息对应的迁移通道。

中转服务器在获取到配置信息后,根据配置信息中的源数据库地址和目标数据库地址分别连接到源数据库和目标数据库,建立与配置信息对应的迁移通道。应当可以理解的是,中转服务器根据每一个配置信息中的源数据库地址和目标数据库地址建立源数据库和目标数据库的迁移通道。本实施例中的配置信息可以为多个,中转服务器能够并发同时对多个数据迁移通道进行处理。中转服务器根据迁移通道的源数据库的数据传输到对应的目标数据库。

具体的,配置信息还包括源数据库用户名和密码、目标数据库用户名和密码。步骤S304具体包括以下步骤1至步骤2:

步骤1:向源数据库发送连接请求,连接请求包括源数据库地址、源数据库用户名和密码,由源数据库验证通过后连接到源数据库。

本实施例中,客户端提供源数据库用户名和密码的输入界面。当中转服务器获取到源数据库地址、源数据库用户名和密码后,向源数据库发送连接请求。源数据库根据源数据库地址、源数据库用户名和密码验证用户是否具有读写源数据库的权限,若验证通过,则与中转服务器连接。本实施例中的源数据库用户名和密码、目标数据库用户名和密码用于验证用户是否具有对对应数据库的读写权限。

步骤2:向目标数据库发送连接请求,连接请求包括目标数据库地址、目标数据库用户名和密码,由目标数据库验证通过后,连接到目标数据库以建立与配置信息对应的迁移通道。

本实施例中,客户端还提供目标数据库用户名和密码的输入界面。当中转服务器获取到目标数据库地址、目标数据库用户名和密码后,向目标数据库发送连接请求。目标数据库根据目标数据库地址、目标数据库用户名和密码验证用户是否具有访问目标数据库的权限,若验证通过,则与中转服务器连接。

中转服务器通过与源数据库和目标数据库连接后,建立了源数据库与目标数据库的迁移通道。

S306:通过迁移通道向所源数据库发送数据迁移请求,数据迁移请求中携带待迁移的数据表的信息。

中转服务器在与源数据库连接后,在客户端的配置页面显示源数据库的表信息,包括各数据表的名称。用户可根据需要选择全部的数据表,以对全部的数据表进行迁移。用户还可根据需要选择特定的数据表以进行迁移。本实施例中,数据迁移以数据表为单位。数据表是对所有的数据软件抽象出来的数据结构,包括字段、索引和键等信息。

中转服务器向源数据库发送数据迁移请求,数据迁移请求包括用户通过客户端的配置页面选择的需要迁移的数据表名称。源数据库根据数据表将在当前时间点之前的全量数据进行迁移数据迁移请求通过迁移通道发送至对应的源数据库。应当可以理解的是,目标数据库中应当设置有与源数据库中待迁移的数据表相同的表结构。

S308:通过迁移通道获取源数据库响应数据迁移请求发送的全量数据,并将数据表的全量数据通过迁移通道发送至对应的目标数据库。

源数据库接收到数据迁移请求后,响应数据迁移请求,向中转服务器发送对应数据表的全量数据。源数据库中的全量数据可采用现有的传输协议向中转服务器发送,例如超文本协议、文件传输协议等等。

中转服务器接收到源数据库发送的全量数据后,通过迁移通道发送至对应的目标数据库。

S310:通过迁移通道抽取源数据库的增量数据,并将增量数据通过迁移通道按照数据产生的时间顺序导入目标数据库。

增量数据是指在全量数据的迁移过程中产生的新的数据,即指数据变更,包括新增、修改和删除。中转服务器通过数据迁移通道按时间顺序从源数据库中抽取增量数据,并将增量数据放入队列,再从队列中取出增量数据导入到对应的目标数据库,根据全量数据和增量数据完成数据的迁移。

本实施例中,根据迁移请求,先对源数据库中的全量数据进行迁移,再对增量数据按时间顺序进行抽取。即使在全量数据迁移过程中产生了新的数据,也可以通过增量数据抽取的方式进行迁移,从而保持源数据库与目标数据库的数据一致性。并且,由于能够对增量数据进行抽取,从而无需中断源数据库的业务,实现数据的在线迁移。同时,迁移通道根据配置信息的源数据库地址和目标数据库地址对应生成,可同时根据不同的配置信息生成多个对应的迁移通道,并发处理多个数据库的数据迁移,操作便利性高。

在另一个实施例中,通过迁移通道抽取源数据库的增量数据的步骤包括以下步骤1和步骤2:

步骤1:为源数据库配置代理进程,通过代理进程读取并解析源数据库的数据日志,得到源数据库的增量信息。

步骤2:通过迁移通道从源数据库中根据数据产生的时间顺序抽取与增量信息对应的增量数据。

本实施例中,通过在源数据库配置代理进程,通过代理进程读取数据日志,解析数据日志的变化获取数据库的增量信息。本实施例中的代理进程为对数据库的数据日志进行读取、解析到增量信息的处理函数,通过代理进程获取到增量信息后,抽取与增量信息对应的增量数据,由中转服务器配置到需要迁移的源数据库中。代理进程对源数据库中的增量数据根据数据产生的时间顺序进行抽取,并存放在队列中。中转服务器依次从队列中将抽取的增量数据传输至对应的目标数据库。

如图4所示,本实施例中提供两种增量数据抽取的方式。具体的客户端还提供配置页面供用户选择增量数据的抽取方式,当用户选择通过数据日志分析的方式抽取时,配置页面还提示用户需要输入源数据库所在服务器的登录名和密码,以获取对数据库的处理权限。本实施例中的配置信息还包括源数据库所在服务器的登陆名和密码。根据源数据库所在服务器的登录名和密码向源数据库发送权限验证请求,并在源数据库验证通过后,为源数据库配置代理进程。

在获取到对源数据库的数据日志的处理权限后,向源数据库配置代理进程,通过代理进程读取、解析数据日志得到增量信息,并根据增量信息从数据表中抽取增量数据。

应当理解的是,在客户端的配置页面还可以提供其它增量的获取方式供用户选择,例如本实施例中还可以提供通过在源数据库创建触发器的方式从源数据库中提供增量数据。具体的,根据源数据地址连接到源数据库的步骤包括:根据源数据库地址连接到源数据库,并向源数据库发送触发器生成指令,由源数据库根据触发器生成指令生成触发器。

此时,通过迁移通道抽取源数据库的增量数据的步骤包括:扫描触发器的增量表,并从增量表中抽取增量数据。

触发器可以记录对数据表的添加、修改、删除操作。通过触发器,记录一段时间内的数据表的变动记录,并将记录变动记录写入增量表中。在一种实施方式中,触发器将变化的数据写入增量表中,从增量表中抽取增量数据。在一种实施方式中,增量表中存储了更新的源表名称、更新的关键字值和更新操作的类型,根据增量表中的信息,从对应的源表中查找到增量数据进行抽取。扫描的频率由系统进行设定,例如,每3秒扫描一次触发器的增量表,获取这段时间内增量信息。

应当理解的是,在客户端的配置页面还提供其它的增量数据的抽取方式供用户选择,例如基于时间戳方式,通过在源表上增加一个时间戳字段,系统更新修改表格数据时,同时修改时间戳的值,当进行数据抽取时,通过比较上次抽取时间与时间戳字段的值判断增量数据。又例如全表对比方式,对于数据库需要迁移的表格建立一个结构类似的临时表,该临时表记录源表主键以及根据所有字段的数据计算出来,当到达扫描时间,将当前时刻的源表与上一扫描时间的临时表进行比对找到增量数据。

在另一个实施例中,在步骤S304之后,还包括以下步骤1至步骤2:

步骤1:通过迁移通道向源数据库发送表结构同步指令。

步骤2:通过迁移通道接收源数据库响应表结构同步指令发送的数据表结构,并将数据库表结构同步到目标数据库中。

目标数据库中可能没有建立与源数据库对应的数据表,用户可在目标数据库中预先建立与源数据库对应的数据表,用户也可以在配置页面选择表结构同步的选项。中转服务器通过迁移通道向源数据库发送表结构同步指令,接收源数据库响应表结构同步指令发送的数据表结构,并同步到目标数据库中,从而无需用户手动地在目标数据库中预先建立数据表。

上述的数据的迁移方法,可应用在两个或多个数据库之间,将源数据库的数据迁移至一个或多个目标数据库。用户可对源数据库和目标数据库进行比对,确认数据迁移完成后,切换应用程序。对于全量数据迁移过程中产生的增量数据通过定时扫描抽取,不影响应用程序的数据写入,无需中断源数据库的业务,实现数据的在线迁移。并且,该数据的迁移方法,以数据表为迁移单位,通过配置代理进程对源数据库的数据日志进行分析或在源数据库建立触发器,获取增量数据,从而可扩展支持多种异构数据存储系统(包括关系型数据库、文件系统、分布式文件系统、消息队列等等)之间的数据在线迁移。

作为一个应用场景的示例,将上述的数据迁移方法应用在将源数据库的数据迁移至网络云服务器。如图5所示,包括以下步骤:

S501:用户通过客户端输入配置信息,配置信息包括源数据库地址、源数据库用户名和密码、目标数据库地址、目标数据库用户名和密码。配置信息还包括用户所选择的增量数据获取方式。若用户选择通过数据日志获取,配置信息还包括数据库登陆名和密码。

本实施例中的客户端为网络云平台的客户端,中转服务器为网络云平台的一部分,为数据的迁移提供支持。

S502:中转服务器获取配置信息,并分别向源数据库和目标数据库发送连接请求。

S503:源数据库根据源数据库用户名和密码验证通过后,与中转服务器进行连接。

中转服务器分别与源数据库和中转服务器连接后,建立与配置信息对应的迁移通道。通过迁移通道从源数据库获取数据,并将获取的数据迁移至与源数据库对应的目标数据库。

S504:目标数据库根据目标数据库用户名和密码验证通过后,与中转服务器连接。

S505:中转服务器向源数据库发送表结构同步指令。

S506:接收源数据库响应表结构同步指令发送的数据表结构,并同步到目标数据库中。

应当理解的是,在源数据库与中转服务器进行连接后,根据用户所选择的增量数据获取方式,中转服务器向源数据库配置代理进程,或中转服务器向源数据库发送触发器生成指令。本实施例以方式为触发器为例进行说明。

S507:中转服务器向源数据库发送触发器生成指令。

S508:源数据库响应触发器生成指令,建立增量表。

增量表用于记录在全量数据迁移过程中产生的增量数据。

S509:中转服务器向源数据库发送数据迁移请求,数据迁移请求包括待迁移的数据表信息。

中转服务器在连接到源数据库后,客户端显示源数据库的数据表供用户选择,用户根据需要选择待迁移的数据表信息并向源数据库发送数据迁移请求。迁移请求还包括待迁移的数据表的信息。

S510:源数据库根据数据迁移请求将全量数据传输至中转服务器。

S511:中转服务器将全量数据传输至对应的目标服务器。

S512:中转服务器定时扫描增量表,从增量表中获取增量数据,并将增量数据保存在队列中,

S513:中转服务器从队列中抽取增量数据传输至目标数据库。

通过全量数据和增量数据完成数据的迁移。

在一个实施例中,提供一种数据的迁移装置,如图6所示,包括:配置信息获取模块601、迁移通道建立模块602、发送模块603、中转模块604、抽取模块605和导入模块606。

其中,配置信息获取模块601,用于获取配置信息,配置信息包括源数据库地址和目标数据库地址。迁移通道建立模块602,用于根据源数据库地址连接到源数据库,并根据目标数据库地址连接到目标数据库以建立与配置信息对应的迁移通道。发送模块603,用于通过迁移通道向所源数据库发送数据迁移请求,数据迁移请求携带有待迁移的数据表的信息。中转模块604,用于通过迁移通道获取源数据库响应数据迁移请求发送的数据表的全量数据,并将全量数据通过迁移通道发送至对应的目标数据库。抽取模块605,用于通过迁移通道抽取源数据库的增量数据。导入模块606,用于将增量数据通过迁移通道按照数据产生的时间顺序导入对应的目标数据库。

上述的数据的迁移装置,根据迁移请求,先对源数据库中的全量数据进行迁移,再对增量数据按时间顺序进行抽取。即使在全量数据迁移过程中产生了新的数据,也可以通过增量数据抽取的方式进行迁移,从而保持源数据库与目标数据库的数据一致性。并且,由于能够对增量数据进行抽取,从而无需中断源数据库的业务,实现数据的在线迁移。同时,迁移通道根据配置信息的源数据库地址和目标数据库地址对应生成,可同时根据不同的配置信息生成多个对应的迁移通道,并发处理多个数据库的数据迁移,操作便利性高。

在另一个实施例中,如图7所示,抽取模块605包括:代理配置模块6051和增量抽取模块6052。代理配置模块6051,用于为源数据库配置代理进程,通过代理进程读取并解析源数据库的数据日志,得到源数据库的增量信息。增量抽取模块6052,用于通过迁移通道从源数据库中根据数据产生的时间顺序抽取与增量信息对应的增量数据。

在又一个实施例中,发送模块603,还用于连接到源数据库后,向源数据库发送触发器生成指令,由源数据库根据触发器生成指令生成触发器。抽取模块605,用于扫描触发器的增量表,并从增量表中抽取增量数据。

在再一个实施例中,配置信息包括源数据库用户名和密码、目标数据库用户名和密码。迁移通道建立模块602,用于向源数据库发送连接请求,连接请求包括源数据库地址、源数据库用户名和密码,由源数据库验证通过后连接到源数据库,还用于向目标数据库发送连接请求,连接请求包括目标数据库地址、目标数据库用户名和密码,由目标数据库验证通过后,连接到目标数据库以建立与配置信息对应的迁移通道。

在另一个实施例中,配置信息还包括源数据库所在服务器的登录名和密码。发送模块603,还用于根据源数据库所在服务器的登录名和密码向源数据库发送权限验证请求。代理配置模块6051,用于在源数据库验证通过后,为源数据库配置代理进程。

在又一个实施例中,发送模块603,还用于通过迁移通道向源数据库发送表结构同步指令。中转模块604,还用于通过迁移通道接收源数据库响应表结构同步指令发送的数据表结构,并将数据库表结构同步到目标数据库中。

上述的数据的迁移装置,可应用在两个或多个数据库之间,将源数据库的数据迁移至一个或多个目标数据库。用户可对源数据库和目标数据库进行比对,确认数据迁移完成后,切换应用程序。对于全量数据迁移过程中产生的增量数据通过定时扫描抽取,不影响应用程序的数据写入,无需中断源数据库的业务,实现数据的在线迁移。并且,该数据的迁移装置,以数据表为迁移单位,通过配置代理进程对源数据库的数据日志进行分析或在源数据库建立触发器,获取增量数据,从而可扩展支持多种异构数据存储系统(包括关系型数据库、文件系统、分布式文件系统、消息队列等等)之间的数据在线迁移。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1