一种支持异构时序数据库的数据在线迁移方法与流程

文档序号:12465695阅读:353来源:国知局
一种支持异构时序数据库的数据在线迁移方法与流程

本发明涉及计算机领域,特别地,涉及一种支持异构时序数据库的数据在线迁移方法。



背景技术:

电力行业信息化是一个持续发展完善的过程,新技术在电力行业不断得到应用,尤其数据库技术近年得到了较大的发展,技术发展的同时导致了原有系统或者技术的淘汰,为了最大限度地保护现有资产,通常需要对被淘汰系统的历史数据进行迁移,以及需要在不同类型的数据库之间进行数据迁移。

发展过程中建立的各个业务系统通常存在自身的时序数据库,这些数据库通常平台不同、类型各异,形成了数据孤岛,为保证数据库系统有序、可管理和一致性,为降低数据的使用成本,通常需要为每个应用开发相应的数据接口,或通过数据迁移将不同种数据集中到一个数据中心。

现有通常的数据迁移方法主要有:直接拷贝、数据库工具导出导入迁移、存储虚拟化等。这些方法主要针对的是同种时序库,不同实例的数据转移,不能满足不同数据库(类型不同,结构不一)间的数据迁移;也有的提出了异种数据库的关系数据迁移和实现,但对具有时间序列特性的时序数据库之间的迁移不能支持;时序数据库存在数据变化频繁,数据量大,存储IO较高的特点,通常的数据迁移方式存在停机时间长的缺点,对于电力生产环境下进行数据迁移的特殊情况,对于如何在不影响或者尽可能小地影响现有数据库系统正常运行的前提下,完成数据库之间的数据迁移缺乏必要的考虑。



技术实现要素:

本发明目的在于提供一种支持异构时序数据库的数据在线迁移方法,以解决现数据库的数据在线迁移方法没能实现不同数据库间的数据迁移的技术问题。

为实现上述目的,本发明提供了一种支持异构时序数据库的数据在线迁移方法,包括如下步骤:

步骤1:数据迁移前先进行目标数据库和源数据库的准备,并确定切换的时间和频率;

步骤2:完成目标数据库和源数据库的准备后,部署多路数据代理;

步骤3:将多路数据代理接入目标数据库,设计目标数据库优先级并设置暂时禁用业务应用;

步骤4:启动源数据库的数据泵;

步骤5:将业务应用的数据操作指向多路数据代理,重新启动业务应用;

步骤6:历史数据和日志数据在源数据库进行压缩,并传到目标数据库;

步骤7:目标数据拾取器接收从源数据库传入的历史数据并进行目标数据库的数据恢复;

步骤8:根据原设定的切换的时间判断是否到达时间截止点;

步骤9:当时间戳未到达截止点时间时,返回步骤7;到达截止点时间时,进入下一步骤;

步骤10:启动中断程序,中断历史数据接收程序,进入下一步骤;

步骤11:启用日志补登程序,对日志数据进行补登;

步骤12:判断已经传输完成的日志数据是否补登完成;

步骤13:当日志数据已经补登完成时,进入下一步骤;当日志数据没有补登完成时,返回步骤11;

步骤14:启动目标数据库的结点并停用源数据库;

步骤15:多路数据代理停止日志创建,创建日志停止标识;

步骤16:多路数据代理自动切换至目标数据库的时序数据库读写;

步骤17:源数据库服务器正式下线,完成数据迁移。

上述方案中,优选的是步骤1数据迁移前准备的具体过程为:

步骤1.1:准备好一个目标数据库并把目标数据库部署好,目标数据库为X-DB数据库;

步骤1.2:准备好源数据库中的历史数据泵;

步骤1.3:准备好X-DB数据库操作日志创建模块;

步骤1.4:准备好X-DB数据库的数据操作引擎;

步骤1.5:确定目标数据库与源数据库的接口切换的时间截止点,同时确定数据抽取的频率参数。

上述方案中,优选的是步骤2中,多路数据代理启动后,需要从配置可读取可用目标结点及其优先级信息,并启用专用线程周期性检测各目标结点的可用性、CPU空闲、内存空闲、存储空间和网络跳点数信息,并通过相应影响因子计算其权限,形成按权重顺序排列的可用服务节点列表,当节点读写异常时,从节点列表中优先选择权重较大的服务节点。

上述方案中,优选的是步骤2中,多路数据代理拦截并配置源数据库、目标数据库数据日志和目标数据库。

上述方案中,优选的是步骤16中目标数据库的时序数据库读写过程为;

步骤16.1:判断是否有日记停止标识;

步骤16.2:当有日记停止标识时,选择可用的目标服务器,并对时序数据库进行写数操作,完成写数过程;当没有日记停止标识时,创建目标数据库数据日志,对目标数据库数据日志压缩并传输,进入步骤11。

上述方案中,优选的是步骤16.2中时序数据库进行写数操作中出现异常时进行服务结点调度,服务结点调度的过程为:

步骤16.2.1:启动数据代理,读入可用的目标结点的信息;

步骤16.2.2:检测目标节点的可用性、CPU信息、存储信息、内存信息和距离信息;

步骤16.2.3:时序数据库进行写数操作;

步骤16.2.4:多路数据代理检测到写数异常时,回滚本周期的时序数据读写操作;

步骤16.2.5:构造目标数据库目标结点和权重表;

步骤16.2.6:关联可用的目标结点,并进行时序数据存取,完成服务结点调度。

上述方案中,优选的是数据在线迁移方法为源数据库向目标数据库在业务应用在线的情况下进行数据迁移。

本发明具有以下有益效果:

本发明提供的一种支持异构时序数据库的数据在线迁移方法,该方法为通用的时序数据操作代理迁移,能够优化调用多节点故障进行迁移,确保不同类型数据库数据迁移的通用性和兼容性,能利用作业空闲时间做到尽可能小的系统割切影响。

除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。

附图说明

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是常规时序数据库迁移方法流程图;

图2是本发明的数据库迁移流程图;

图3是本发明目标数据库写数的流程图;

图4是本发明读写目标时序异常时服务结点调度方法流程图。

具体实施方式

以下结合附图对本发明的实施例进行详细说明,但是本发明可以根据权利要求限定和覆盖的多种不同方式实施。

图1为常规的时序数据迁移办法流程图,迁移过程中需要应用离线,且受限于时序数据库为同种类型。具体流程包括如下步骤:

1、部署目标数据库;

2、应用停机(离线);

3、导出源数据库;

4、导出数据或者文件包传输;

5、目标数据库实例导入数据包;

6、修改应用配置的时序数据库连接;

7、启用新时序数据库。

一种支持异构时序数据库的数据在线迁移方法,如图2所示,包括如下步骤:

步骤1:数据迁移前先进行目标数据库和源数据库的准备,并确定切换的时间和频率。数据迁移前准备的具体过程为:

步骤1.1:准备好一个目标数据库并把目标数据库部署好,目标数据库为X-DB数据库,目标数据库即为需要用来存储的新的数据库,其中本发明主要使用在电力方面,因此使用的为X-DB数据库。在X-DB数据库根据原存储要求进行目录、测点等进行配置。

步骤1.2:准备好源数据库中的历史数据泵,其中,需要进行数据转移的数据库即为源数据库,字啊元数据库中准备好数据泵,数据泵为在数据库间进行数据转移的接口,相当是把源数据库的数据抽取到另外的一个数据库。数据泵用于按标签读取历史数据并进行压缩和传输。

步骤1.3:准备好X-DB数据库操作日志创建模块,主要为了给后面的多路数据代理进行调用。

步骤1.4:准备好X-DB数据库的数据操作引擎,确定好X-DB数据库的在进行数据转移过程的一些规则等。

步骤1.5:确定目标数据库与源数据库的接口切换的时间截止点,同时确定数据抽取的频率参数。提前预先确定接口切换的时间截止点,从而使得在后面数据转移过程中知道哪个地方需要进行停止,确定数据抽取的频率参数,从而使得在数据转移过程中统一的抽取频率等。

步骤2:完成目标数据库和源数据库的准备后,部署多路数据代理。在多路数据代理启动后,需要从配置可读取可用目标结点及其优先级信息,并启用专用线程周期性检测各目标结点的可用性、CPU空闲、内存空闲、存储空间和网络跳点数等信息,并通过相应影响因子计算其权限,形成按权重顺序排列的可用服务节点列表,当节点读写异常时,从节点列表中优先选择权重较大的服务节点。多路数据代理配置包括拦截并配置源数据库、目标数据库数据日志和目标数据库,且将X-DB数据库结点的调用优先级设置为低于源数据库且暂时禁用。因计算服务的时序数据读写具备缓存能力,切换多路代理时,业务应用可暂停,等切换完成后恢复,业务离线时间可控制在数分钟内,也可通过在非工作时间进行切换以减少影响。

步骤3:将多路数据代理接入目标数据库,设计目标数据库优先级并设置暂时禁用业务应用,也可通过在非工作时间进行切换以减少影响。

步骤4:启动源数据库的数据泵,开启数据泵准备进行数据抽取。实现从数据库起始时间点到时间截止点的历史数据读取。

步骤5:将业务应用的数据操作指向多路数据代理,重新启动业务应用,原来的源数据库进行数据服务,由于在数据转移过程中,源数据库和目标数据库都会涉及业务应用,因此需要开启多路数据代理,从而使得业务应用正常工作。

步骤6:历史数据和日志数据在源数据库进行压缩,并传到目标数据库。前期数据库都准备好后,数据现在源数据库中进行压缩,压缩后再经过数据泵传到目标数据库。

步骤7:目标数据拾取器接收从源数据库传入的历史数据并进行目标数据库的数据恢复。目标数据库中的数据拾取器接收从源数据库传入的历史数据,接收数据后,对历史数据进行解压处理,解压后对数据进行恢复。

步骤8:根据原设定的切换的时间判断是否到达时间截止点。在数据开始转移后,时钟的时间实时与原设定的截止时间进行对比,当发现时间已经到达元设定的截止时间时,进行下一步骤。

步骤9:当时间还没到达截止点时间时,还是进行数据转移操作,目标数据拾取器还是接收源数据库传入的数据,并进行解压和回复处理。当时间已经到达截止点时间时,说明数据转移已经到时间点了,需要进行断开操作。

步骤10:在目标数据库中启动原先设定好的中断程序,执行中断程序,中断历史数据接收程序,实现数据传输的中断。

步骤11:启用日志补登程序,对日志数据进行补登,主要是对目标数据库中的一些日志数据进行完整补充

步骤12:判断已经传输完成的日志数据是否补登完成,主要通过数据查询方法判断日志数据是否完成。

步骤13:当日志数据已经补登完成时,进行下一步骤执行。当日志数据没有补登完成时,继续对日志补登进行补登操作。

步骤14:启动目标数据库的结点并停用源数据库。在目标数据库其他程序数据准备好后,开始启动使用目标数据库,同时把源数据库进行关闭停用。

步骤15:多路数据代理停止日志创建,创建日志停止标识。多路数据代理不再对日志数据进行创建,并且创建出日志停止标识符。

步骤16:多路数据代理自动切换至目标数据库的时序数据库读写。目标数据库的时序数据库读写过程包括如下步骤,如图3所示:

步骤16.1:判断是否有日记停止标识,进一步判断是否已将有日志停止标识,主要是起到判断识别的作用。

步骤16.2:当有日记停止标识时,选择可用的目标服务器,并对时序数据库进行写数操作,完成写数过程。当没有日记停止标识时,创建目标数据库数据日志,对目标数据库数据日志压缩并传输,进入步骤11。当在读写过程中出现写数操作中出现异常时,进行服务结点调度,使用服务结点调度方法的具体过程包括如下步骤,如图4所示:

步骤16.2.1:启动数据代理,读入可用的目标结点的信息,先确定哪些的目标结点是可用的。

步骤16.2.2:检测目标节点的可用性、CPU信息、存储信息、内存信息和距离信息,并根据手工配置的优先级、上述参数进行计算,通过预先检测好这些信息后,供后面写数过程使用。

步骤16.2.3:时序数据库进行写数操作,当历史数据及日志补登完成时,停用源时序数据库,时序数据读写线程进行读写时因源数据库处于不可用状态,将触发异常。

步骤16.2.4:多路数据代理检测到写数异常时,进行回滚本周期的时序数据读写操作,并重新调用可用目标结点,按计算规则,X-DB数据库将被命中。

步骤16.2.5:构造目标数据库目标结点和权重表。

步骤16.2.6:关联可用的目标结点,并进行时序数据存取,完成服务结点调度。

步骤17:源数据库服务器正式下线,完成数据迁移。

首先记录时间截止点,将从起始时间至时间截止点的数据通过数据泵进行历史数据抽取,历史数据迁移的同时进行X-DB数据操作日志创建,历史数据恢复完成后进行日志补登,日志补登完成后,停用源数据库,多路数据代理根据优先级规则实现向目标X-DB数据库切换。更具体地,多路数据代理需要同时支持源数据库、X-DB日志、X-DB数据的多结点数据写操作。多路数据代理支持目标结点的基于优先级定义、CPU、内存、存储可用性、出口带宽参数、网络节点数评估的优先调度。基于历史数据包和日志文件的数据迁移能够实现异构时序数据库之间的和不同服务器间的时序数据迁移。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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