一种RDBMS在线数据迁移的方法和装置与流程

文档序号:11286556阅读:172来源:国知局
一种RDBMS在线数据迁移的方法和装置与流程

本发明属于数据库技术领域,特别是涉及一种rdbms在线数据迁移的方法和装置。



背景技术:

在现有的关系数据库管理系统(rdbms)数据迁移过程中,数据库必须处于close状态,而导致业务系统不能对数据库进行访问,也就是数据库不能对外提供服务,非常不方便,且现有的数据迁移技术多属于数据库逻辑层面的操作,包括数据库级别的导入导出,或用户级别的导入导出,如oracle数据库提供的应用程序接口exp/imp和expdp/impdp;sybase和sqlserver数据库提供的接口bcp,以及db2数据库提供的接口move/load等,或者采用第三方的数据迁移工具,如sqldeveloper、toad等,这仅适用于小数据量的业务,而对于海量数据的迁移需求往往超过了客户要求的时间窗口。



技术实现要素:

为解决上述问题,本发明提供了一种rdbms在线数据迁移的方法和装置,能够在关系数据库管理系统执行数据迁移过程中,继续对外提供业务查询服务,且在约定的时间窗口内,能够通过操作系统的物理操作实现tb级别的海量数据的迁移。

本发明提供的一种rdbms在线数据迁移的方法,包括:

把源数据库用户表空间的状态变更为只读状态,导出其中的元数据;

将所述源数据库用户表空间的数据文件和所述元数据传输到中转服务器上,传输结束后将所述源数据库用户表空间的状态设置为读写状态;

向目标数据库用户表空间导入所述元数据;

将所述目标数据库用户表空间的状态设置为读写状态。

优选的,在上述rdbms在线数据迁移的方法中,

在所述将所述源数据库用户表空间的状态设置为读写状态之后,还包括:

转换所述源数据库用户表空间的数据文件的格式。

优选的,在上述rdbms在线数据迁移的方法中,

在所述将所述目标数据库用户表空间的状态设置为读写状态之后,还包括:

导入所述源数据库用户表空间之外的数据库对象。

优选的,在上述rdbms在线数据迁移的方法中,

将所述源数据库用户表空间的数据文件和所述元数据传输到中转服务器上为:

将所述源数据库用户表空间的数据文件和所述元数据传输到nas服务器上。

本发明提供的一种rdbms在线数据迁移的装置,包括:

导出单元,用于把源数据库用户表空间的状态变更为只读状态,导出其中的元数据;

传输单元,用于将所述源数据库用户表空间的数据文件和所述元数据传输到中转服务器上,传输结束后将所述源数据库用户表空间的状态设置为读写状态;

导入单元,用于向目标数据库用户表空间导入所述元数据;

设置单元,用于将所述目标数据库用户表空间的状态设置为读写状态。

优选的,在上述rdbms在线数据迁移的装置中,还包括:

转换单元,用于转换所述源数据库用户表空间的数据文件的格式。

优选的,在上述rdbms在线数据迁移的装置中,还包括:

导入所述源数据库用户表空间之外的数据库对象。

优选的,在上述rdbms在线数据迁移的装置中,所述中转服务器为nas服务器。

通过上述描述可知,本发明提供的上述rdbms在线数据迁移的方法和装置,由于该方法包括把源数据库用户表空间的状态变更为只读状态,导出其中的元数据;将所述源数据库用户表空间的数据文件和所述元数据传输到中转服务器上,传输结束后将所述源数据库用户表空间的状态设置为读写状态;向目标数据库用户表空间导入所述元数据;将所述目标数据库用户表空间的状态设置为读写状态,因此能够在关系数据库管理系统执行数据迁移过程中,继续对外提供业务查询服务,且在约定的时间窗口内,能够通过操作系统的物理操作实现tb级别的海量数据的迁移。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的第一种rdbms在线数据迁移的方法的示意图;

图2为本申请实施例提供的第一种rdbms在线数据迁移的装置的示意图。

具体实施方式

本发明的核心思想在于提供一种rdbms在线数据迁移的方法和装置,能够在关系数据库管理系统执行数据迁移过程中,继续对外提供业务查询服务,且在约定的时间窗口内,能够通过操作系统的物理操作实现tb级别的海量数据的迁移。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请实施例提供的第一种rdbms在线数据迁移的方法如图1所示,图1为本申请实施例提供的第一种rdbms在线数据迁移的方法的示意图,该方法包括如下步骤:

s1:把源数据库用户表空间的状态变更为只读状态,导出其中的元数据;

在这种情况下,在后续的执行数据迁移过程中,关系数据库管理系统就能够继续对外提供服务,且防止了数据迁移过程中业务系统对数据库的变更操作,保证了数据的一致性。需要说明的是,在关系数据库管理系统中,表空间是关系数据库管理系统的逻辑划分,且一个表空间只能属于一个数据库,所有的数据库对象都存放在指定的表空间中,但主要存放的是表,所以称作表空间。只要数据库处于open状态,除了system表空间外的其他表空间,都可以将其置为online或offline状态,而表空间在online状态时又分为读写read-write和只读read-only两种,表空间在只读状态时数据库可以被访问,但不能被更新,所以,可以通过只读状态下表空间可以被访问的特性,既保证了数据迁移前后的数据的一致性,又可以实现数据库对外提供服务的需求。这里的元数据指描述用户表空间的数据包括表空间总大小、数据文件位置及大小信息等,导出元数据的工具可以采用但不限于oracle数据库工具exp/imp和expdp/impdp。

s2:将所述源数据库用户表空间的数据文件和所述元数据传输到中转服务器上,传输结束后将所述源数据库用户表空间的状态设置为读写状态;

需要说明的是,需要一段时间把数据文件传输到中转作用的中转服务器上,以便在不同平台转换数据字节序时作为数据的输入端。利用这种中转服务器从物理层面进行数据迁移,大大提高了迁移速度,就能够在特定的迁移时间窗口内,完成客户的数据迁移的业务要求。

s3:向目标数据库用户表空间导入所述元数据;

需要说明的是,在该导入元数据的过程中,数据库会自动关联表空间和物理文件等信息。

s4:将所述目标数据库用户表空间的状态设置为读写状态。

需要说明的是,该步骤也就是还原目标数据库用户表空间的状态,把目标数据库用户表空间状态由read-only状态变更为read-write状态,这样数据库就可对外提供服务。

通过上述描述可知,本申请实施例提供的第一种rdbms在线数据迁移的方法,由于包括把源数据库用户表空间的状态变更为只读状态,导出其中的元数据;将所述源数据库用户表空间的数据文件和所述元数据传输到中转服务器上,传输结束后将所述源数据库用户表空间的状态设置为读写状态;向目标数据库用户表空间导入所述元数据;将所述目标数据库用户表空间的状态设置为读写状态,因此能够在关系数据库管理系统执行数据迁移过程中,继续对外提供业务查询服务,且在约定的时间窗口内,能够通过操作系统的物理操作实现tb级别的海量数据的迁移。

本申请实施例提供的第二种rdbms在线数据迁移的方法,是在上述第一种rdbms在线数据迁移的方法的基础上,还包括如下技术特征:

在所述将所述源数据库用户表空间的状态设置为读写状态之后,还包括:

转换所述源数据库用户表空间的数据文件的格式。

需要说明的是,在跨平台传输数据的情况下,就需要转换源数据库数据文件格式,因为不同平台文件的存储的字节序不同,这样就需要根据要求转换为适用于该平台的文件格式,例如aix、hp-ux平台字节序为大端,linux平台字节序为小端。当然如果不跨平台传输的话无需该步骤。

本申请实施例提供的第三种rdbms在线数据迁移的方法,是在上述第一种rdbms在线数据迁移的方法的基础上,还包括如下技术特征:

在所述将所述目标数据库用户表空间的状态设置为读写状态之后,还包括:

导入所述源数据库用户表空间之外的数据库对象。

也就是说,在数据迁移完成后,将存储过程等与项目相关的对象带入进去。

本申请实施例提供的第四种rdbms在线数据迁移的方法,是在上述第一种至第三种rdbms在线数据迁移的方法中任一种的基础上,还包括如下技术特征:

将所述源数据库用户表空间的数据文件和所述元数据传输到中转服务器上为:

将所述源数据库用户表空间的数据文件和所述元数据传输到nas服务器上。

需要说明的是,利用这种nas服务器的优点在于环境易搭建,成本较低,中级别数据量的场景下速度适中。另外,还可以使用ftp直接传输或存储切换的方式,此处并不限制。还可以当数据量小于tb级别时采用ftp作为数据传输的方式,这样可以直接使用现网的环境,而数据量大于10tb级别时可以采用上述存储直接切换的方式。

本申请实施例提供的第一种rdbms在线数据迁移的装置如图2所示,图2为本申请实施例提供的第一种rdbms在线数据迁移的装置的示意图,该装置包括:

导出单元201,用于把源数据库用户表空间的状态变更为只读状态,导出其中的元数据,在这种情况下,在后续的执行数据迁移过程中,关系数据库管理系统就能够继续对外提供服务,且防止了数据迁移过程中业务系统对数据库的变更操作,保证了数据的一致性。需要说明的是,在关系数据库管理系统中,表空间是关系数据库管理系统的逻辑划分,且一个表空间只能属于一个数据库,所有的数据库对象都存放在指定的表空间中,但主要存放的是表,所以称作表空间。只要数据库处于open状态,除了system表空间外的其他表空间,都可以将其置为online或offline状态,而表空间在online状态时又分为读写read-write和只读read-only两种,表空间在只读状态时数据库可以被访问,但不能被更新,所以,可以通过只读状态下表空间可以被访问的特性,既保证了数据迁移前后的数据的一致性,又可以实现数据库对外提供服务的需求。这里的元数据指描述用户表空间的数据包括表空间总大小、数据文件位置及大小信息等,导出元数据的工具可以采用但不限于oracle数据库工具exp/imp和expdp/impdp;

传输单元202,用于将所述源数据库用户表空间的数据文件和所述元数据传输到中转服务器上,传输结束后将所述源数据库用户表空间的状态设置为读写状态,需要说明的是,需要一段时间把数据文件传输到中转作用的中转服务器上,以便在不同平台转换数据字节序时作为数据的输入端,利用这种中转服务器从物理层面进行数据迁移,大大提高了迁移速度,就能够在特定的迁移时间窗口内,完成客户的数据迁移的业务要求;

导入单元203,用于向目标数据库用户表空间导入所述元数据,需要说明的是,在导入元数据时,数据库会自动关联表空间和物理文件等信息;

设置单元204,用于将所述目标数据库用户表空间的状态设置为读写状态,需要说明的是,也就是还原目标数据库用户表空间的状态,把目标数据库用户表空间状态由read-only状态变更为read-write状态,这样数据库就可对外提供服务。

本申请实施例提供的第二种rdbms在线数据迁移的装置,是在上述第一种rdbms在线数据迁移的装置的基础上,还包括如下技术特征:

转换单元,用于转换所述源数据库用户表空间的数据文件的格式。

需要说明的是,在跨平台传输数据的情况下,就需要转换源数据库数据文件格式,因为不同平台文件的存储的字节序不同,这样就需要根据要求转换为适用于该平台的文件格式,例如aix、hp-ux平台字节序为大端,linux平台字节序为小端。

本申请实施例提供的第三种rdbms在线数据迁移的装置,是在上述第一种rdbms在线数据迁移的装置的基础上,还包括如下技术特征:

导入所述源数据库用户表空间之外的数据库对象。

也就是说,在数据迁移完成后,将存储过程等与项目相关的对象带入进去。

本申请实施例提供的第四种rdbms在线数据迁移的装置,是在上述第一种至第三种rdbms在线数据迁移的装置中任一种的基础上,还包括如下技术特征:

所述中转服务器为nas服务器。

需要说明的是,利用这种nas服务器的优点在于环境易搭建,成本较低,中级别数据量的场景下速度适中。另外,还可以使用ftp直接传输或存储切换的方式,此处并不限制。还可以当数据量小于tb级别时采用ftp作为数据传输的方式,这样可以直接使用现网的环境,而数据量大于10tb级别时可以采用上述存储直接切换的方式。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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