ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

炫“库”行动-人大金仓有奖征文-Kingbase DTS数据迁移工具

2021-10-12 11:58:17  阅读:288  来源: 互联网

标签:金仓 对象 数据库 Kingbase 支持 DTS 迁移 数据 工具


 人大金仓有奖征文

  • 什么是数据迁移?

  • 定义:在不同存储类型、格式和计算机系统之间的数据转换
  • 迁移时机:
  1. 一个企业机构决定使用新的数据库系统
  2. 不同版本迭代替换需要移植数据
  • 特点:
  1. 繁锁而又单调的工作
  2. 一般采用半自动化/自动化方式进行
  • 举例:
  1. 把oracle数据库移植到金仓数据库上
  2. 把低版本的金仓数据库移植到高版本的金仓数据库上

  • DTS迁移工具概述

  • 跨平台 、图形化、可定制的通用数据迁移工具
  • 允许动态加载新的数据库插件(迁移数据源):
  1. 插件存放在install dir\plugins目录下
  2. 插件的内容:

        plugin.xml:系统通过识别该文件进行加载

        mapping.xml:类型映射文件,用来描述从迁移数据源(插件)到目的的类型的映射关系

  • 迁移方式:采用数据类型映射匹配+向导式执行进行数据迁移
  • 容错能力:提供二次迁移的能力,发生各错误时,DTS仍可继续迁移

  • DTS迁移工具体系结构

 

  • Extract Data:通过JDBC数据源抽取源端数据库各类对象的定义以及数据
  • Transform Data:表和列名的大小写、 数据类型等转换
  • Load Data:SQL语句、COPY命令、批量提交、单条提交等

  • DTS迁移工具功能介绍 

  • 部署平台:支持Linux、WindowsX86以及国产龙芯、飞腾、兆芯、申威等平台部署;
  • 迁移数据源:
    • 同构数据源:
      • 数据迁移工具支持KES V7版本->KESv8r3版本、KES V7版本->KES V8R3版 本、 KESV8R3版本->KESV8R6的数据迁移
      • (支持迁移的对象:表、约束、注释、索引、触发器、视图、物化视图、函数、 存储过程、序列、程序包、同义词)
    • 异构数据源:
      • 1.支持Oracle9i、10g、11g、12c、19c到KingbaseES V8R6 的数据库迁移
      • (支持迁移的对象:表、约束、注释、索引、触发器、视图、物化视图、函数、 存储过程、序列、程序包、同义词)
      • (支持迁移oracle11g、12c的分区表到V8R6数据库)
      • 2.支持mysql5.1,mysql5.7,mysql8.0, dm7.1,神通7、sybase15.7、sybase12.5、DB2、gbase8s 到KingbaseES V8R6 的数据库迁移。
      • (支持迁移的对象有表、约束、索引、注释)
      • (不支持视图、物化视图、函数、存储过程、包、同义词、序列、触发器)
      • 3.支持sqlserver2000、2005、2008、2012、2014、2016、2017到KingbaseES V8R6 的 数据库迁移
      • (支持迁移的对象有表、约束、索引、注释)
      • (不支持视图、物化视图、函数、存储过程、包、同义词、序列、触发器)
      • 4.反向迁移:支持KingbaseES V8R6到Oracle11g的数据迁移(仅支持表对象)
  • 迁移场景:
    • KingbaseES 数据迁移工具支持全量数据迁移、支持修改列映射关系、支持修改数据类型映射关系、支持自动转换对象名、支持表列名大小写转换、支持数据迁移条件过滤等

  • DTS迁移工具目录结构

  • configuration:源库驱动配置文件以及启动工具后生成的缓存文件;
  • dts:二进制工具用于启动工具
  • dts.ini:工具相关的配置文件
  • plugins:插件库
  • static-kingbase2oracle.properties:反向迁移的依赖文件
  • .kingbase:启动工具后会在安装目录生成此隐藏文件夹
    • connection:工具中新建源端目标端的连接信息都会存在connection.xml中
    • Results:迁移结果存储目录,以任务名称以及时间做区分
    • transfer:存储新建迁移任务后生成的.kbt文件
  • DTS迁移工具启动方式

  • 方式一:Windows界面

        --选择『开始』|『程序』|『KingbaseES V8』|『数据迁移工具』,启动数据迁移工具。

  • 方式二:Linux图形化界面

        --选择应用程序---KingbaseEs V8---ClientTools---数据迁移工具,启动迁移工具。

  • 方式三:命令行模式

        --cd切换到KingbaseEs V8的DtsTools目录下,如:cd /home/xx/v8/DtsTools,执行./dts

  • 数据迁移工具布局及迁移主流程

工具主界面

  • 步骤1:数据库连接管理

  1. 采用JDBC方式配置数据库连接
  2. 支持JDBC URL参数配置
  3. 可以在资源管理器上对数据库连接进行删除或者编辑操作
  4. 数据库连接信息持久化本地,迁移时不需要重复配置连接

  • 步骤2:需要选择步骤1中已建立连接的源端目标端数据库完成任务创建

  1. 通过图形化向导方式勾选迁移的模式及对象
  2. 目标库不存在该模式会自动去创建
  3. 支持按模式及类型筛选具体对象
  4. 支持搜索框只显示对象

  • 步骤3:迁移配置管理,根据不同的需求可供用户随意配置

  • 线程设置包含最大并发数、写缓冲大小以及数据提交量
  • 最大并发数:执行迁移任务的线程数
  • 写缓冲大小:迁移数据时单个线程一次写入目标库的数据量大小
  • 数据提交量:迁移数据时,在目标库中一次提交的记录数
  • 支持迁移表对象时设定不同的处理方式
  • 重建表并导入数据:删除表后重建,导入数据
  • 删除已存在表数据后导入数据:保留目标库中的同名表,删除表中数据再迁移数据---数据类型是目标表的类型,表中数据是源表数据
  • 追加数据:保留目标库中表以及数据,进行数据追加
  • 迁移方式默认为copy方式,暂不支持fdw
  • 迁移出错处理
  • 出错终止迁移:任务中出现任意一个表记录出错,工具立即结束迁移,适用于对数据准确率要求很高的场景
  • 出错继续执行:当前任务中迁移出错不会影响其他任务执行
  • 非对象设置:支持用户自定义非表对象迁移
  • 快速迁移:只针对迁移Oracle11g,当源库包含大量对象场景下,能显著提高迁移速度
  • 步骤4:完成迁移后自动显示迁移结果及生成报告

                迁移结束后会自动跳转至结果界面:

                        1.迁移结果确认:采用提示框方式,统计此次迁移任务耗时情况

                        2.迁移报告:迁移对象比对

                                (1)分为文本报告以及柱状图报告

                                (2)统计各类对象迁移总数、创建成功数以及创建失败数

                        3.迁移报告:表数量比对

                                (1)统计各个表中数据量、迁移成功数量

                                (2)当源库表中数据量同迁移后表中数据量一致,显示Y,不一致则显示N

                        4.控制台输出信息:按照对象类型划分模块来显示迁移结果及耗时情况

  • 步骤5:迁移日志管理

  1. 迁移完成后用户可以在资源管理器中找到本次迁移的日志文件:
  2. 文件中包含创建表的sql、迁移过程、创建主键sql和所有非表对象创建的sql语句;还包括迁移异常信息
  3. 在迁移过程中一旦某个对象创建失败,DTS会将该对象的创建sql保留到本次迁移任务文件夹下的ErrorScripts目录中,用户可以手动修改后通过ksql或者对象管理工具手动执行

注:迁移日志可以持久化本地,存放的位置在数据库安装路径下的.kingbase目录中

  • 步骤6:二次迁移

 

  • 数据迁移工具支持迁移出错的对象进行二次迁移,步骤如下:
  1. 当首次迁移时对象出错,生成迁移报告后点击出错对象,弹出二次迁移界面
  2. 双击出错对象,右侧在显示错误SQL以及编辑SQL框中会显示改对象的创建语句
  3. 在编辑SQL界面中修改为正确的语句,点击保存
  4. 点击确定,完成二次迁移
  5. 二次迁移完成后控制台输出日志显示迁移成功,且再次点击出错对象后不会该表的相关记录

  • 迁移常见问题

  • 数据库连接时报错:Error: Connection to 127.0.0.1:50021 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

        A:排查数据库服务是否启动、连接参数:IP、端口等是否正确

  • 2.源库为MYSQL,执行迁移后,中文表报错:找不到创建表的sql语句

        A:在新建MySQL连接的时候,增加两个参数,useUnicode=true,characterEncoding=utf-8, 否则会报错找不到创建表的sql语句

  • 3.迁移Oracle时,报错网络适配器无法建立连接>The network adapter could not establish the connection

        A:排查思路:防火墙是否关闭?   sqlplus是否能连接数据库? 是否开启监听服务?

  • 4.执行第一次迁移报错关系不存在,执行二次迁移仍然报错?

        A:部分源库的数据是迁移至非public模式下,因为服务器search_path默认为public, 导致select语句中对象查询不到,需要在二次迁移之前手动在select语句中增加模式名

 

【本文正在参与炫“库”行动-人大金仓有奖征文】

活动链接:https://marketing.csdn.net/p/98bd30353e7cb998b6070a89e8b91edb

标签:金仓,对象,数据库,Kingbase,支持,DTS,迁移,数据,工具
来源: https://blog.csdn.net/weixin_49217078/article/details/120720139

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有