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

 人大金仓有奖征文

  • 什么是数据迁移?

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

  • DTS迁移工具概述

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

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

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

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

  • DTS迁移工具体系结构

炫“库”行动-人大金仓有奖征文-Kingbase 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 数据迁移工具支持全量数据迁移、支持修改列映射关系、支持修改数据类型映射关系、支持自动转换对象名、支持表列名大小写转换、支持数据迁移条件过滤等

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

  • 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

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

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

工具主界面

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 步骤5:迁移日志管理

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

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

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

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

  • 步骤6:二次迁移

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

  • 数据迁移工具支持迁移出错的对象进行二次迁移,步骤如下:
  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

上一篇:nginx通过https方式反向代理多实例tomcat


下一篇:[记录一个bug]ffmpeg转码时间戳-伪代码版流程要点小记[已解决]