一种数据库管理平台中数据迁移方法和装置制造方法

文档序号:6505157阅读:251来源:国知局
一种数据库管理平台中数据迁移方法和装置制造方法
【专利摘要】本发明公开了一种数据库管理平台中数据迁移方法和装置。本发明实施例提供的一种数据库管理平台中的数据迁移方法包括:选取需要导出数据的源数据库实例和用于导入数据的目标数据库实例;配置源数据库实例的导出参数和目标数据库实例的导入参数;从数据库管理平台中获取源数据库实例和目标数据库实例的相关信息;利用所述导出参数将数据从源数据库实例导出,生成备份数据;利用所述导入参数将所述备份数据导入至目标数据库实例;利用所述相关信息和备份数据建立源数据库实例和目标数据库实例的主从关系,并执行源数据库实例和目标数据库实例的同步;设置源数据库实例和目标数据库实例的域名,实现目标数据库实例的上线运行。
【专利说明】一种数据库管理平台中数据迁移方法和装置

【技术领域】
[0001] 本发明涉及数据库【技术领域】,特别涉及一种数据库管理平台中数据迁移方法和装 置。

【背景技术】
[0002] MySQL数据库服务器拥有很好的可扩展性,从仅有1MB的深度嵌入式应用到高达 千兆的大型数据仓库,它都能够应对自如。MySQL还支持各种Linux、UNIX和Windows平台。 同时,MySQL开源的特性使得其可以根据用户的需要进行定制,将用户的特殊要求加入到数 据库服务器中。
[0003] 在数据库的开发过程中,由于需求变更等多种原因,导致MySQL数据库系统运行 一段时间后,架构不再适合业务发展,无法满足业务增长需求,数据库服务器性能无法满足 业务需求等,数据迁移就成为一个不可避免的问题。
[0004] 现有方案在执行MySQL数据库的数据迁移时,一般情况下是选择在一个业务低峰 夜晚,停掉应用对数据库的读写,用事先写好的迁移程序,把MySQL数据库数据迁移到新结 构的MySQL数据库中,迁移完成后,切换应用至新结构的MySQL数据库。现有方式最大的缺 点就是随着数据量的增加停机时间会变得特别长,而导致应用中断的时间过长,影响了应 用的运行。


【发明内容】

[0005]本发明提供了一种数据库管理平台中数据迁移方法和装置,以解决现有迁移方案 中停机时间特别长,导致应用中断的时间过长,影响应用运行的问题。
[0006] 为达到上述目的,本发明实施例采用了如下技术方案:
[0007] 本发明实施例提供了一种数据库管理平台中的数据迀移方法,所述方法包括: [0008]选取需要导出数据的源数据库实例和用于导入数据的目标数据库实例;
[0009]配置源数据库实例的导出参数和目标数据库实例的导入参数;
[0010]从数据库管理平台中获取源数据库实例和目标数据库实例的相关信息;
[0011]利用所述导出参数将数据从源数据库实例导出,生成备份数据; '
[0012]利用所述导入参数将所述备份数据导入至目标数据库实例;'
[0013]利用所述相关信息和备份数据建立源数据库实例和目标数据库实例的主从关系, 并执行源数据库实例和目标数据库实例的同步;
[0014]设置源数据库实例和目标数据库实例的域名,实现目标数据库实例的上线运行。 [0015]本发明实施例还提供了一种数据库管理平台中的数据迁移装置,所述装置包括:
[0016]实例选取单元,用于选取需要导出数据的源数据库实例和用于导入数据的目标数 据库实例;
[0017]参数配置单兀,用于配置源数据库实例的导出参数和目标数据库实例的导入参 数; 、夕
[0018]信息获取单兀,用于从数据库管理平台中获取源数据库实例和目标数据库实例的 相关信息;
[0019]数据导出单元,用于利用所述导出参数将数据从源数据库实例导出,生成备份数 据;
[0020]数据导入单元,用于利用所述导入参数将所述备份数据导入至目标数据库实例; [0021]主从同步单兀,用于利用所述相关信息和备份数据建立源数据库实例和目标数据 库实例的主从关系,并执行源数据库实例和目标数据库实例的同步;
[0022]域名设置单元,用于设置源数据库实例和目标数据库实例的域名,实现目标数据 库实例的上线运行。
[0023] 本发明实施例的有益效果是:
[0024]本发明实施例提供了一种基于数据库管理平台的数据迁移方案,采用在数据库实 例之间执行数据导出导入操作的技术手段,由于数据库实例为处于运行状态的数据库程 序,正是通过数据库实例的运行才使数据库向应用提供相应的服务,所以在数据库实例之 间的执行数据导入导出的技术手段基本不需要停机,能够在应用访问数据库的同时,执行 数据库数据的迁移操作,解决了现有迁移方案中停机时间特别长,导致应用中断时间过长, 影响应用运行的问题,从而实现了数据库数据的无缝迁移,保证了应用的正常运行。

【专利附图】

【附图说明】
[0025]图1为本发明一个实施例提供了一种数据库管理平台中的数据迁移方法流程图; [0026]图2为本发明又一个实施例提供的一种数据库管理平台中的数据迁移装置结构 示意图。

【具体实施方式】
[0027]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0028]本发明一个实施例提供了一种数据库管理平台中的数据迁移方法,参见图i,该方 法包括如下步骤:
[0029] S100 :选取需要导出数据的源数据库实例和用于导入数据的目标数据库实例。
[0030] S101:配置源数据库实例的导出参数和目标数据库实例的导入参数。
[0031] Sl〇2 :从数据库管理平台中获取源数据库实例和目标数据库实例的相关信息。 [0032] Sl〇3 :利用导出参数将数据从源数据库实例导出,生成备份数据。
[0033] S104 :利用导入参数将备份数据导入至目标数据库实例。
[0034] Sl〇5 :利用相关彳旨息和备份数据建立源数据库实例和目标数据库实例的主从关 系,并执行源数据库实例和目标数据库实例的同步。
[0035] Sl〇6 :设置源数据库实例和目标数据库实例的域名,实现目标数据库实例的上线 运行。
[0036]需要说明的是,本发明实施例中的数据库实例指计算机中处于运行状态的数据库 程序,以及为这些程序分配的一些内存空间。实例只在数据库处于运行状态时才存在。数 据库实例负责实现给用户提供网络连接、读写数据文件等等各种功能。
[0037]数据库管理平台对数据库实例进行配置和管理(如数据库实例的创建、启动、上 线、下线等),并维护数据库实例、实例组、域名等各种信息。
[0038]本发明实施例提供了一种基于数据库管理平台的数据迁移方案,通过在数据库实 例之间执行数据导出导入操作的技术手段,能够在应用访问数据库的同时,执行数据库数 据的迁移操作,解决了现有迁移方案中停机时间特别长,导致应用中断时间过长,影响应用 运行的问题,从而实现了数据库数据的无缝迁移,保证了应用的正常运行。
[0039]在图1所示实施例的基础上,本发明另一个实施例提供的方法中,上述步骤S100 可以至少通过下述方式中的一种选取源数据库实例和目标数据库实例:
[0040]方式一、在源数据库实例所在的实例组中,从除源数据库实例之外的已存在的数 据库实例中选取一数据库实例作为目标数据库实例。
[0041 ]这种方式下,源数据库实例和目标数据库实例位于同一实例组中。
[0042]方式二、在源数据库实例所在的实例组中增加一新的数据库实例,将该新的数据 库实例作为目标数据库实例。
[0043]这种方式下,源数据库实例和目标数据库实例位于同一实例组中。可以在数据库 管理平台中设置一台新的数据库主机,上述新增的数据库实例运行在该新的数据库主机 上,该方式实现了对数据库结构的扩容。
[0044]方式三、在数据库管理平台上已存在的实例组中,从除源数据库实例所在的实例 组之外选取一数据库实例作为目标数据库实例。
[0045] 这种方式下,源数据库实例和目标数据库实例位于不同实例组中。
[0046]方式四、在数据库管理平台上新建一新实例组,从该新实例组中选取一数据库实 例作为目标数据库实例。
[0047]上述新建的实例组可以为一个临时的实例组,例如为该实例组配置的域名只是一 个临时域名,数据库管理平台并不利用该临时域名向应用提供服务。
[0048]需要说明的是,本方案中数据库管理平台基于实例组对数据库实例进行管理,数 据库管理平台将运行相同数据的数据库实例划分在同一实例组中。
[0049]上述步骤S101中配置的源数据库实例的导出参数包括:源数据库实例的主机IP、 源数据库实例端口、导出数据使用的数据库用户名、导出数据使用的用户密码、数据存放路 径;配置的目标数据库实例的导入参数包括:目标数据库实例的主机IP、目标数据库实例 端口、导入数据使用的数据库用户名、导入数据使用的用户密码、数据存放路径。通过导出 参数和导入参数的配置建立一个实例间的数据导出导入任务。
[0050] 可选的,本实施例在执行上述步骤S101时,还可以包括步骤SlOlb。在建立导出导 入任务时,数据库管理平台先检查两个实例所在服务器的磁盘空间,如果磁盘空间充裕则 将数据备份到本地后进行恢复,如空间不够则使用远程或管道的方式导入到新实例,生成 相应的脚本。
[0051]即在步骤Sioib中,判断所述源数据库实例所在的主机的磁盘空间是否大于预定 阈值,若是,磁盘空间比较充裕,则生成第一脚本,后续在利用该第一脚本执行数据导出时, 会在本地对导出的数据进行备份,生成备份数据;若否,磁盘空间比较紧张,则生成第二脚 本,在利用该第二脚本执行数据导出时,会采用远程方式或管道方式,将导出的数据传输至 目标主机(该目标主机可以为目标数据库实例所在的主机,也可以为备份时用于暂存备份 数据的主机)进行备份,生成备份数据。
[0052] 采用上述操作的主要原因在于,在执行数据备份操作时,备份中处理的数据量会 大于需要备份的数据量,例如,需要导出的数据总量为50G时,在备份操作中使用的磁盘空 间总量可能会达到150G (原数据量的2-3倍的存储空间),所以必需保证有充裕的磁盘空间 以供备份操作的正常执行。
[0053] 示例性的,可以利用mysqldump备份软件实现按照管道方式进行在线数据备份, 或者利用Xtrabackup备份软件实现按照远程方式进行在线数据备份。
[0054] 上述步骤S102中,获取到的相关信息主要包括实例组相关信息、实例相关信息和 域名相关信息。
[0055] 从数据库管理平台为每个实例组维护的实例组记录中获取实例组相关信息。所需 获取的实例组相关信息主要包括实例组标识ID、实例组名和实例组端口。
[0056] 数据库管理平台会为生成的每个实例组生成一条实例组记录,将该记录保存在实 例组表中,实例组表中一条记录的示例可以参见下述表1 :
[0057] 表1、实例组表
[0058] 字段Field 数据类型Type 描述Comment id int (10)unsigned NOT NULL 实例组 ID name varchar (32)N0T NULL 实例组名 port int (10)unsigned NOT NULL 实例组端口 dbName varchar (128)NULL 数据库名,多个库之间以","分隔 varchar (255) NOT NULL 实例组使用域 masterlsRead tinyint(4)N0T NULL 主库读标识:实例组中主实例是否可读 cfgTemplate text NOT NULL 实例组配置模板 extlnfo text NOT NULL 扩展信息,由JS0N序列化存储 isRobin tinyint(4)N0T NULL 轮询开关1 :参加轮询〇 :不参加轮询
[0059] 上述实例组表中记载了数据库管理平台中各实例组的信息,例如,对于每一实例 组,实例组表中记录的信息可以包括实例组ID (标识)、实例组名、实例组独有的端口、实例 组关联的数据库名、实例组使用域、主库读标识、实例组默认实例配置模板、扩展信息和轮 询开关等。
[0060] 从数据库管理平台为每个实例维护的实例记录中获取实例相关信息。获取的该实 例相关信息主要包括实例ID、所属实例组ID、主机ID、IP地址和端口。
[0061] 数据库管理平台会为生成的每个实例生成一条实例记录,将该记录保存在实例表 中,实例表中一条实例记录的示例可以参见下述表 2 :
[0062] 表2、实例表
[0063]
[0064]

【权利要求】
1. 一种数据库管理平台中的数据迁移方法,其特征在于,所述方法包括: 选取需要导出数据的源数据库实例和用于导入数据的目标数据库实例; 配置源数据库实例的导出参数和目标数据库实例的导入参数; 从数据库管理平台中获取源数据库实例和目标数据库实例的相关信息; 利用所述导出参数将数据从源数据库实例导出,生成备份数据; 利用所述导入参数将所述备份数据导入至目标数据库实例; 利用所述相关信息和备份数据建立源数据库实例和目标数据库实例的主从关系,并执 行源数据库实例和目标数据库实例的同步; 设置源数据库实例和目标数据库实例的域名,实现目标数据库实例的上线运行。
2. 根据权利要求1所述的方法,其特征在于, 所述配置的源数据库实例的导出参数包括:源数据库实例的主机IP、源数据库实例端 口、导出数据使用的数据库用户名、导出数据使用的用户密码和数据存放路径; 所述配置的目标数据库实例的导入参数包括:目标数据库实例的主机IP、目标数据库 实例端口、导入数据使用的数据库用户名、导入数据使用的用户密码和数据存放路径。
3. 根据权利要求2所述的方法,其特征在于, 所述利用所述导出参数将数据从源数据库实例导出,生成备份数据包括: 利用所述源数据库实例的主机IP和源数据库实例端口定位到源数据库实例; 确认所述导出数据使用的数据库用户名和导出数据使用的用户密码具有从源数据库 实例导出数据的权限; 利用所述导出参数中的数据存放路径查找到需要导出的数据,将该数据从源数据库实 例导出;以及, 所述利用所述导入参数将所述备份数据导入至目标数据库实例包括: 利用所述目标数据库实例的主机IP和目标数据库实例端口定位到目标数据库实例; 确认所述导入数据使用的数据库用户名和导入数据使用的用户密码具有从目标数据 库实例导入数据的权限; 按照所述导入参数中的数据存放路径将所述备份数据导入至目标数据库实例。
4. 根据权利要求1至3任一项所述的方法,其特征在于,在利用所述导出参数将数据从 源数据库实例导出之前,所述方法还包括: 计算需要导出的数据的总大小; 所述利用所述导出参数将数据从源数据库实例导出包括: 在执行导出任务时,每隔预定时间计算已导出的数据大小与需要导出的数据的总大小 的比例值,得到数据导出进度; 以及, 在利用所述导入参数将所述备份数据导入至目标数据库实例之前,所述方法还包括: 计算需要导入的备份数据的总大小; 所述利用所述导入参数将所述备份数据导入至目标数据库实例包括: 在执行导入任务时,每隔预定时间计算已导入的数据大小与需要导入的备份数据的总 大小的比例值,得到数据导入进度。
5. 根据权利要求1所述的方法,其特征在于,在所述配置源数据库实例的导出参数和 目标数据库实例的导入参数时,所述方法还包括: 判断所述源数据库实例所在的主机的磁盘空间是否大于预定阈值,若是,则生成第一 脚本,在利用该第一脚本执行数据导出时,会在本地对导出的数据进行备份,生成备份数 据;若否,则生成第二脚本,在利用该第二脚本执行数据导出时,会采用远程方式或管道方 式,将导出的数据传输至目标主机进行备份,生成备份数据。
6. 根据权利要求1所述的方法,其特征在于,所述利用所述相关信息和备份数据建立 源数据库实例和目标数据库实例的主从关系,并执行源数据库实例和目标数据库实例的同 步包括: 根据获取到的所述相关信息定位到源数据库实例和目标数据库实例; 提取所述备份数据中记录的二进制日志binlog信息和日志位置binlog_pos信息建立 源数据库实例和目标数据库实例的主从关系; 启动主从同步操作,检查日志传输健康状态I〇_Running值和日志执行健康状态SQL_ Running值,以及获取同步延迟数据; 当日志传输健康状态值和日志执行健康状态值都指示同步健康,且同步延迟时间值指 示延迟时间为零时,确认满足上线条件。
7. 根据权利要求1所述的方法,其特征在于,将运行相同数据的数据库实例划分在同 一实例组中,所述选取需要导出数据的源数据库实例和用于导入数据的目标数据库实例包 括: 在源数据库实例所在的实例组中,从除源数据库实例之外的已存在的数据库实例中选 取一数据库实例作为目标数据库实例;和/或, 在源数据库实例所在的实例组中增加一新的数据库实例,将该新的数据库实例作为目 标数据库实例;和/或, 在数据库管理平台上已存在的实例组中,从除源数据库实例所在的实例组之外选取一 数据库实例作为目标数据库实例;和/或, 在数据库管理平台上新建一新实例组,从该新实例组中选取一数据库实例作为目标数 据库实例。
8. 根据权利要求1所述的方法,其特征在于,所述设置源数据库实例和目标数据库实 例的域名,实现目标数据库实例的上线运行包括: 将源数据库实例的域名设置为不可解析状态,将源数据库实例域名指向的IP设置为 目标数据库实例的IP;和/或, 保持源数据库实例和目标数据库实例的原有域名。
9. 根据权利要求1所述的方法,其特征在于,在所述设置源数据库实例和目标数据库 实例的域名,实现目标数据库实例的上线运行后,所述方法还包括: 验证当目标数据库实例的连接为正常时,将域名为不可解析状态但物理状态保持正常 的源数据库实例作为目标数据库实例的从库进行数据同步,以当目标数据库实例出现故障 时,将目标数据库实例中的数据退回至源数据库实例。
10. -种数据库管理平台中的数据迁移装置,其特征在于,所述装置包括: 实例选取单元,用于选取需要导出数据的源数据库实例和用于导入数据的目标数据库 实例; 参数配置单元,用于配置源数据库实例的导出参数和目标数据库实例的导入参数; 信息获取单元,用于从数据库管理平台中获取源数据库实例和目标数据库实例的相关 信息; 数据导出单元,用于利用所述导出参数将数据从源数据库实例导出,生成备份数据; 数据导入单元,用于利用所述导入参数将所述备份数据导入至目标数据库实例; 主从同步单元,用于利用所述相关信息和备份数据建立源数据库实例和目标数据库实 例的主从关系,并执行源数据库实例和目标数据库实例的同步; 域名设置单元,用于设置源数据库实例和目标数据库实例的域名,实现目标数据库实 例的上线运行。
【文档编号】G06F17/30GK104252502SQ201310270329
【公开日】2014年12月31日 申请日期:2013年6月29日 优先权日:2013年6月29日
【发明者】乔婧, 王春涛 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1