一种数据库在线迁移的方法及系统技术方案

技术编号:27610953 阅读:15 留言:0更新日期:2021-03-10 10:37
本申请公开了一种数据库在线迁移的方法及系统,该方法包括:在源数据库中建立记录变更表,为用户业务表增加触发器,利用记录变更表和触发器,执行数据库逻辑导出;按照先导入全量数据再导入增量数据的顺序,执行数据库逻辑导入。该系统包括:记录变更表建立模块、触发器增加模块、逻辑导出模块和逻辑导入模块。通过本申请,能够实现在线数据库迁移,减少业务系统停止时间,有效提高数据库迁移效率。有效提高数据库迁移效率。有效提高数据库迁移效率。

【技术实现步骤摘要】
一种数据库在线迁移的方法及系统


[0001]本申请涉及数据库备份
,特别是涉及一种数据库在线迁移的方法及系统。

技术介绍

[0002]数据库迁移是数据库备份中常见的一种操作。在数据库逻辑迁移中,又包括:跨操作系统和硬件平台迁移和同操作系统同平台内迁移。在数据库迁移过程中,如何确保数据库迁移操作稳定进行、确保源库数据和目标库数据的一致,是个重要的技术问题。
[0003]目前的数据库迁移,通常采用expdp/impdp的逻辑迁移方式。具体地,采用expdp/impdp的逻辑迁移方式时,需要确保源库的数据是静止的,即:在导出开始后源库数据需要停止业务系统,不允许有增删改操作,从而确保源库数据和目标库数据的一致。
[0004]然而,目前的数据库迁移方法中,由于需要确保源库静止,才能进行数据库迁移,而且采用expdp/impdp的逻辑迁移方式会使得源库停止时间较长。在源库静止时,会影响业务系统正常使用。尤其当数据量较大的情况下,逻辑导出和逻辑导入需要花费较长的时间,使得业务系统中断时间也相对较长。因此,目前的数据库迁移方法使得数据库迁移效率较低,进而导致业务系统工作效率较低。

技术实现思路

[0005]本申请提供了一种数据库在线迁移的方法及系统,以解决现有技术中数据库迁移效率较低的问题。
[0006]为了解决上述技术问题,本申请实施例公开了如下技术方案:
[0007]一种数据库在线迁移的方法,所述方法包括:
[0008]在源数据库中建立记录变更表,所述记录变更表用于记录导出操作开始后源数据库用户业务表中发生的数据变化,以及记录用户业务表中最新操作的增删改信息,所述记录变更表中的记录变更参数包括:用户名、表名、前HASH值、后HASH值、操作以及ROWID信息;
[0009]为用户业务表增加触发器,所述触发器用于捕获表记录增删改操作,并根据增删改操作生成并记录不同的操作内容,其中,任一用户业务表与一个触发器相匹配;
[0010]利用所述记录变更表和触发器,执行数据库逻辑导出;
[0011]按照先导入全量数据再导入增量数据的顺序,执行数据库逻辑导入。
[0012]可选地,所述为用户业务表增加触发器,包括:
[0013]当前记录为新增记录时,新增记录插入到用户业务表后,将所有列值聚合后进行HASH计算,生成第一HASH值,并记录当前的记录变更参数;
[0014]当前记录为删除记录时,在删除前,将所有列值聚合后进行HASH计算,生成第二HASH值,并记录当前的记录变更参数;
[0015]当前记录为更改记录时,在更改前将所有列值聚合后进行HASH计算,生成第三HASH值,并记录当前的记录变更参数。
[0016]可选地,利用所述记录变更表和触发器,执行数据库逻辑导出的方法,包括:
[0017]利用所述记录变更表和触发器,对数据库进行全量导出,生成一个全量导出文件;
[0018]停止业务系统,使源数据库达到静止状态;
[0019]根据记录变更表中所记录的内容,对所述数据库进行增量导出。
[0020]可选地,所述根据记录变更表中所记录的内容,对所述数据库进行增量导出,包括:
[0021]当变更记录操作类型为新增操作时,通过ROWID信息查找当前的用户业务表记录,读取并保存当前的变更记录;
[0022]当变更记录操作类型为删除操作时,不执行任何操作;
[0023]当变更记录操作类型为修改操作时,通过ROWID信息查找当前的用户业务表记录,读取并保存当前的变更记录。
[0024]可选地,所述按照先导入全量数据再导入增量数据的顺序,执行数据库逻辑导入,包括:
[0025]根据所述导出文件,向目标库中导入全量数据;
[0026]根据记录变更表中的行记录操作类型,向目标库中导入增量数据,所述行记录操作类型包括:新增记录、删除记录和修改记录。
[0027]可选地,当行记录操作类型为新增记录时,所述根据记录变更表中的记录操作类型,向目标库中导入增量数据,包括:
[0028]计算与行记录相匹配的原记录变更表中所有的HASH值;
[0029]判断原记录变更表中是否有和读取行记录相同的HASH值;
[0030]如果是,判定数据库导出时有新增记录,无需再次插入原记录变更表中;
[0031]如果否,判定数据库导出时没有导出所述新增记录;
[0032]在增量文件中读取所述新增记录,并将所述新增记录插入原记录变更表中。
[0033]可选地,当行记录操作类型为删除记录时,所述根据记录变更表中的记录操作类型,向目标库中导入增量数据,包括:
[0034]计算与行记录相匹配的原记录变更表中所有的HASH值;
[0035]判断原记录变更表中是否有和读取行记录相同的HASH值;
[0036]如果是,判定数据库导出时已经导出所述删除记录;
[0037]将相同的HASH值在原记录变更表中删除;
[0038]如果否,判定数据库导出时没有导出所述删除记录,无需操作。
[0039]可选地,当行记录操作类型为修改记录时,所述根据记录变更表中的记录操作类型,向目标库中导入增量数据,包括:
[0040]计算与行记录相匹配的原记录变更表中所有的HASH值;
[0041]判断原记录变更表中是否有和读取行记录相同的前HASH值;
[0042]如果是,判定原记录变更表需要修改;
[0043]读取增量文件中记录更新原记录表;
[0044]如果否,判断原记录变更表中是否有和行读取记录相同的后HASH值;
[0045]如果有和行读取记录相同的后HASH值,判定导出的数据为修改后的数据,无需操作;
[0046]如果没有和行读取记录相同的后HASH值,判定导出的数据为错误数据。
[0047]一种数据库在线迁移的系统,所述系统包括:
[0048]记录变更表建立模块,用于在源数据库中建立记录变更表,所述记录变更表用于记录导出操作开始后源数据库用户业务表中发生的数据变化,以及记录用户业务表中最新操作的增删改信息,所述记录变更表中的记录变更参数包括:用户名、表名、前HASH值、后HASH值、操作以及ROWID信息;
[0049]触发器增加模块,用于为用户业务表增加触发器,所述触发器用于捕获表记录增删改操作,并根据增删改操作生成并记录不同的操作内容,其中,任一用户业务表与一个触发器相匹配;
[0050]逻辑导出模块,用于利用所述记录变更表和触发器,执行数据库逻辑导出;
[0051]逻辑导入模块,用于按照先导入全量数据再导入增量数据的顺序,执行数据库逻辑导入。
[0052]可选地,所述逻辑导入模块包括:
[0053]全量数据导入单元,用于根据所述导出文件,向目标库中导入全量数据;
[0054]增量数据导入单元,用于根据记录变更表中的行记本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库在线迁移的方法,其特征在于,所述方法包括:在源数据库中建立记录变更表,所述记录变更表用于记录导出操作开始后源数据库用户业务表中发生的数据变化,以及记录用户业务表中最新操作的增删改信息,所述记录变更表中的记录变更参数包括:用户名、表名、前HASH值、后HASH值、操作以及ROWID信息;为用户业务表增加触发器,所述触发器用于捕获表记录增删改操作,并根据增删改操作生成并记录不同的操作内容,其中,任一用户业务表与一个触发器相匹配;利用所述记录变更表和触发器,执行数据库逻辑导出;按照先导入全量数据再导入增量数据的顺序,执行数据库逻辑导入。2.根据权利要求1所述的一种数据库在线迁移的方法,其特征在于,所述为用户业务表增加触发器,包括:当前记录为新增记录时,新增记录插入到用户业务表后,将所有列值聚合后进行HASH计算,生成第一HASH值,并记录当前的记录变更参数;当前记录为删除记录时,在删除前,将所有列值聚合后进行HASH计算,生成第二HASH值,并记录当前的记录变更参数;当前记录为更改记录时,在更改前将所有列值聚合后进行HASH计算,生成第三HASH值,并记录当前的记录变更参数。3.根据权利要求1所述的一种数据库在线迁移的方法,其特征在于,利用所述记录变更表和触发器,执行数据库逻辑导出的方法,包括:利用所述记录变更表和触发器,对数据库进行全量导出,生成一个全量导出文件;停止业务系统,使源数据库达到静止状态;根据记录变更表中所记录的内容,对所述数据库进行增量导出。4.根据权利要求3所述的一种数据库在线迁移的方法,其特征在于,所述根据记录变更表中所记录的内容,对所述数据库进行增量导出,包括:当变更记录操作类型为新增操作时,通过ROWID信息查找当前的用户业务表记录,读取并保存当前的变更记录;当变更记录操作类型为删除操作时,不执行任何操作;当变更记录操作类型为修改操作时,通过ROWID信息查找当前的用户业务表记录,读取并保存当前的变更记录。5.根据权利要求1所述的一种数据库在线迁移的方法,其特征在于,所述按照先导入全量数据再导入增量数据的顺序,执行数据库逻辑导入,包括:根据所述导出文件,向目标库中导入全量数据;根据记录变更表中的行记录操作类型,向目标库中导入增量数据,所述行记录操作类型包括:新增记录、删除记录和修改记录。6.根据权利要求5所述的一种数据库在线迁移的方法,其特征在于,当行记录操作类型为新增记录时,所述根据记录变更表中的记录操作类型,向目标库中导入增量数据,包括:计算与行记录相匹配的原记录变更...

【专利技术属性】
技术研发人员:陈彬马国良
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1