PDF文库 - 千万精品文档,你想要的都能搜到,下载即用。

KDTS迁移工具使用指南.pdf

Burning(燃烧)92 页 4.781 MB下载文档
KDTS迁移工具使用指南.pdfKDTS迁移工具使用指南.pdfKDTS迁移工具使用指南.pdfKDTS迁移工具使用指南.pdfKDTS迁移工具使用指南.pdfKDTS迁移工具使用指南.pdf
当前文档共92页 2.88
下载后继续阅读

KDTS迁移工具使用指南.pdf

KDTS 迁移工具使用指南 金仓数据库管理系统 KingbaseES 文档版本:V9(V009R001C001B0024) 发布日期:2023 年 10 月 12 日 北京人大金仓信息技术股份有限公司 目 目 录 录 第 1 章 前言 1 1.1 适用读者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 相关文档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 术语 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.4 手册约定 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 2 章 简介 3 2.1 源端数据库版本支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 源端数据库迁移对象支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 目标数据库版本支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4 系统版本说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 第 3 章 系统部署 3.1 3.2 3.3 准备工作 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.1.1 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.1.2 内存 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.1.3 磁盘 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 BS 版部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.1 迁移程序说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.2 JDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.3 启动命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.3.1 配置启动脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2.3.2 执行启动脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2.4 访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2.5 国际化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 SHELL 版部署 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3.1 迁移程序说明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3.2 JDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3.3 启动命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3.3.1 配置启动脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3.3.2 执行启动脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 I 目 第 4 章 BS 版使用说明 录 15 4.1 概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2 数据源管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 源数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.2.1.1 列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.2.1.2 查询 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2.1.3 新建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2.1.4 测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.1.5 编辑 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.2.1.6 删除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 目标数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2.2.1 列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2.2.2 查询 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.2.2.3 新建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2.2.4 测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.2.2.5 编辑 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2.2.6 删除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 迁移任务管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 迁移任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.3.1.1 列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.3.1.2 迁移对象列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.3.1.3 查询 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.3.1.4 新建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.3.1.4.1 选择数据源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.3.1.4.2 选择模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.3.1.4.3 选择迁移对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.3.1.4.4 配置参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.3.1.4.5 保存或保存并迁移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 删除迁移任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.3.2 处理中 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.3.3 迁移完成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.3.4 迁移失败 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.3.5 未启动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2.1 4.2.2 4.3 4.3.1 4.3.1.5 4.4 迁移日志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.4.1 系统日志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.4.2 Error 日志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.4.3 Info 日志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.5 迁移结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.6 线程池配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.7 个人中心 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.7.1 账号信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.7.2 修改密码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 II 目 第 5 章 SHELL 版使用说明 5.1 录 52 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.1.1 源库类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.1.2 运行模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.1.3 源数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.1.3.1 源库连接设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.1.3.2 包含或排除的模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.1.3.3 大表拆分设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.1.3.4 表过滤设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.1.3.5 包含或排除的对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.1.3.6 要迁移的对象类别 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.1.3.7 kdms 转换设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.1.3.8 杂项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.1.3.9 数据对比设置(仅“数据对比”运行模式时有效) . . . . . . . . . . . . . . . . . . . . 58 5.1.3.10 源数据库最大连接数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 目标数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.1.4.1 目标库连接设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.1.4.2 杂项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.1.4.3 数据对比设置(仅“数据对比”运行模式时有效) . . . . . . . . . . . . . . . . . . . . 60 5.1.4.4 目标数据库最大连接数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.1.5 线程池线程数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.1.6 其他配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.1.4 5.2 运行日志 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.3 迁移报告 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.4 KingbaseES 优化配置参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 第 6 章 GIS 迁移步骤说明 71 迁移前准备 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 源库是 ArcGIS / GeoScene 平台的数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.2 KDTS 配置迁移任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 6.3 执行迁移任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.4 迁移后注册数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.5 常见问题 77 6.1 6.1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 7 章 注意事项 80 7.1 BS 版 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.2 SHELL 版 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.2.1 迁移顺序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.2.2 大表拆分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.2.3 并行计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.2.3.1 SQLServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.2.3.2 达梦数据库(DM8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 集群异步模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.2.4 III 目 录 7.2.5 大对象数据 (LOB,Large Object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.2.6 网络抖动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 7.2.7 无日志表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 7.2.8 国际化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 第 8 章 部署常见问题 84 版权声明 85 服务周期承诺 86 IV 第 1 章 前言 1 第 章 前言 本文档描述了金仓数据库迁移工具(KDTS)对同构、异构数据库数据迁移指导,旨在帮助用户快速迁移数据到 KingbaseES 中。 前言部分包含以下主题: • 适用读者 • 相关文档 • 术语 • 手册约定 1.1 适用读者 金仓数据库迁移工具(KDTS)面向所有使用 KingbaseES 的用户,主要是数据库管理员和应用程序开发人员。 1.2 相关文档 无 1.3 术语 无 1.4 手册约定 本文档中可能出现“注意、提示、警告、另请参阅”等标志,它们所代表的含义如下: 1 第 1 章 前言 注意: 用于突出重要/关键信息、最佳实践等。 提示: 用于突出小窍门、捷径等。 警告: 用于传递设备或环境安全警示信息,若不避免,可能会导致设备损坏、数据丢失、设备性能降低或其 它不可预知的结果。 另请参阅: 用于突出参考、参阅等。 以下程序代码书写约定适用于本文档: 符号 说明 [] 表示包含一个或多个可选项。不需要输入中括号本身。 {} 表示包含两个以上(含两个)的候选,必须在其中选取一个。不需要输入花括号本身。 | 分割中括号或者花括号中的两个或两个以上选项。不需要输入“|”本身。 ... 表示其之前的元素可以被重复。 斜体 表示占位符或者需要提供特定值的变量。 大写 表示系统提供的元素,以便与用户定义的元素相互区分。除出现在方括号中的元素外,应当按 照顺序逐字输入。当然,部分元素在系统中是大小写不敏感的,因此用户可以根据系统说明以 小写形式输入。 小写 表示由用户提供的元素。 2 第 2 章 简介 2 第 章 简介 数据库数据迁移平台 (KDTS: Kingbase Data Transformation Service) 是为用户提供 Oracle、Mysql、 SQLServer、Gbase、PostgreSQL、DM、KingbaseES 数据库数据迁移到 KingbaseES 数据库的数据迁移工具。 本章节包括的主题如下: • 源端数据库版本支持 • 源端数据库迁移对象支持 • 目标数据库版本支持 • 系统版本说明 2.1 源端数据库版本支持 表 2.1.1: 源端数据库支持版本 源端数据库 支持版本 Oracle 9i、10g、11g、12c、19c MySQL 5.X、8.X SQLServer 2000、2005、2008、2012、2014、2016、2017、2019 Gbase 8s、8g PostgreSQL 12 DM 8 Db2 11 神通 (OSCAR) 7 KingbaseES V7、V8R3、V8R6、V8R6C7、V9 3 第 2 章 简介 当前源端数据库版本支持 Oracle 的“19c”、“12c”、“11g”、“10g”、“9i”。根据您自己的 Oracle 数据 库版本号选择合适的类型(查看 Oracle 数据库版本号可通过 SQL 语句:select * from v$version;)。 当前源端数据库版本支持 MySQL 的“5.1”,“5.X”,“8.X”。根据您自己的 MySQL 数据库版本号选择合 适的类型(查看 MySQL 数据库版本号可通过 SQL 语句:select version();)。 当前源端数据库版本支持 SQLServer 的“2000”、“2005”、“2008”、“2012”、“2014”、“2016”、“2017”、“201 根据您自己的 SQLServer 数据库版本号选择合适的类型(查看 SQLServer 数据库版本号可以通过 SQL 语句:select @@version;)。 当前源端数据库版本支持 PostgreSQL12。根据您自己的 PostgreSQL 数据库版本号选择合适的类型(查看 PostgreSQL 数据库版本号可通过 SQL 语句:select version();)。 当前源端数据库版本支持 DM8。根据您自己的 DM 数据库版本号选择合适的类型(查看 DM 数据库版本号信息 可以通过语句:select * from v$version; select * from v$instance;)。 当前源端数据库版本支持 Gbase 的“8s”、“8g”。根据您自己的 Gbase 数据库版本号选择合适的类型(查看 Gbase 数据库版本号信息可以通过语句:select * from v$version;)。 当前源端数据库版本支持 Db2 11。根据您自己的 Db2 数据库版本号选择合适的类型(查看 Db2 数据库版本号 信息可以通过语句:”select service_level from sysibmadm.env_inst_info”)。 当前源端数据库版本支持神通 (OSCAR) 7。根据您自己的神通数据库版本号选择合适的类型(select version();)。 当前源端 KingbaseES 数据库版本支持 V7、V8R3、V8R6、V8R6C7、V9。根据您自己的 KingbaseES 版本号选 择合适的类型(查看 KingbaseES 版本号信息可以通过语句:select version();)。 后续会陆续开放其他数据库(如 Sybase)及现有数据库其他版本的支持。 4 第 2 章 简介 2.2 源端数据库迁移对象支持 表 2.2.1: 源端数据库支持迁移对象 源端数据库 支持迁移对象 Oracle 表(包含指定表、排除指定表)、视图、序列、函数、存储过程、程序包、同义词、触发器、用户 自定义类型、注释 MySQL 表(包含指定表、排除指定表)、视图、函数、存储过程、触发器、用户自定义类型、注释 SQLServer 表(包含指定表、排除指定表)、视图、序列、函数、存储过程、同义词、触发器、用户自定义类 型、注释 表(包含指定表、排除指定表)、视图、序列、函数、存储过程、同义词、触发器、用户自定义类 Gbase 型、注释 PostgreSQL 表(包含指定表、排除指定表)、视图、序列、函数、存储过程、同义词、触发器、用户自定义类 型、注释 表(包含指定表、排除指定表)、视图、序列、函数、存储过程、程序包、同义词、触发器、用户 DM 自定义类型、注释 表(包含指定表、排除指定表)、视图、序列、函数、存储过程、同义词、触发器、用户自定义类 Db2 型、注释 神通 (OS- 表(包含指定表、排除指定表)、视图、序列、函数、存储过程、同义词、触发器、注释 CAR) KingbaseES 表(包含指定表、排除指定表)、视图、序列、函数、存储过程、程序包、同义词、触发器、用户 自定义类型、注释 2.3 目标数据库版本支持 表 2.3.1: 目标数据库支持版本 目标数据库 支持版本 KingbaseES V7、V8R3、V8R6、V8R6C7、V9 当前目标端 KingbaseES 版本支持 V7、V8R3、V8R6、V8R6C7、V9。根据您自己的 KingbaseES 版本号选择合 适的类型(查看 KingbaseES 版本号信息可以通过语句:select version();)。 5 第 2 章 简介 2.4 系统版本说明 KDTS 数据库迁移工具的产品形态有以下两种: • BS 版 通过浏览器以可视化界面方式设置配置项,完成数据迁移。 • SHELL 版 通过手动修改配置文件的方式设置配置项,完成数据迁移。 SHELL 版本常用于以下三种场景: – 堡垒机:通过堡垒机形式访问主机 – 远程终端访问:通过远程终端形式访问主机 – 系统未安装图形化界面:访问未安装图形化界面主机 注:专用机只提供 SHELL 版本。 6 第3章 系统部署 3 第 章 系统部署 本章节包括的主题如下: • 准备工作 • BS 版部署 • SHELL 版部署 3.1 准备工作 迁移程序从源数据库读取数据后写入目标数据库,因此需要一定量的内存作为中转缓存(并行度越高、表中单行 数据越大(特别是大对象(LOB,Large Object)字段,如 BLOB、CLOB、NCLOB 等)需要的内存越多)。此外, 还需要一定量的磁盘空间用于存储日志、脚本、报告等。 3.1.1 CPU 根据 CPU 架构类型(x64、AArch64 等)和操作系统选择相匹配的 JDK,并根据计算机 CPU 的核心数/线程 数、可用内存并兼顾源库和目标库服务器的性能及负载情况给迁移程序规划和设置合理并行度以最大化提升迁移效 率。 3.1.2 内存 启动脚本(bin/startup.sh 或 startup.bat)会自动根据根据计算机的可用内存自动计算分配给迁移程序 Java 虚 拟机内存(可用内存的三分之二),如果条件允许,可适当手动增大分配给迁移程序的 JVM 内存(修改启动脚本中 的 JAVA_MEMORY)。 7 第3章 3.1.3 系统部署 磁盘 检查计算机磁盘的剩余空间,应预留足够的磁盘空间(500MB 以上,取决于迁移的对象和数据的多少)给迁移 程序,多次迁移时应注意清理过时的内容(logs 和 results 目录)。 3.2 BS 版部署 3.2.1 迁移程序说明 迁移工具 BS 版随数据库一起打包发布,安装完数据库后,在 ‘$ {KES_HOME}/ ClientTools/ guitools/ KDts/ KDTS-WEB‘目录下,其中 ‘${KES_HOME}‘代表 Kingbase 数据库的安装根目录,程序包括如下目录: • bin: 启动脚本 • conf: 配置文件 • drivers: 数据库连接驱动 • jdk: jdk 目录 • lib: 程序包 • web: 页面文件 3.2.2 JDK 迁移程序需要 JDK11 及以上的版本,如果计算机中已有可用的 JDK,配置迁移程序启动脚本(bin/startup.sh 或 startup.bat)中 JAVA_PATH 即可。如果没有,可从 OpenJDK 网站 https://jdk.java.net/archive/ 上下载与计 算机操作系统和 CPU 架构相匹配的版本(如 Liunx/AArch64、Linux/x64、Windows/x64 等),然后将 JDK 安装 包解压为 jdk 目录。 注意: 1. 应使用解压版本的 JDK,也不要把 JDK 设置到系统环境变量里,以免影响计算机上的其它应用。 2. 下载时应选择最新更新的 JDK 版本,例如在下载页面上 Open JDK 11 有“11 GA(build 11+28)、11.0.1(build 11.0.1+13)、11.0.2(build 11.0.2+9)”等 3 个版本,应下载 11.0.2。 3.2.3 启动命令 迁移程序的启动脚本在 bin 目录下,Linux 平台为 startup.sh,Windows 平台为 startup.bat。 8 第3章 3.2.3.1 系统部署 配置启动脚本 1. 设置 JAVA_PATH 如果 JDK 没有安装在 jdk 目录,将如下的“JAVA_PATH”配置为实际的 JDK 安装目录。 • Linux 平台(startup.sh) #JAVA 路径 JAVA_PATH=${BASE_PATH}"/jdk" • Windows 平台(startup.bat) rem JAVA 路径 set "JAVA_PATH=%BASE_PATH%/jdk" 2. 设置 Java 虚拟机内存 系统会根据服务器可用内存自动调整 Java 虚拟机内存,如果需要手动调整,将启动脚本中的 JAVA_MEMORY 参数前的注释去掉修改为调整值即可。 • Linux 平台(startup.sh) # 如果需要手动设置,把下面的注释(#)去掉后设置即可 #JAVA_MEMORY=18G #======================================================= # JVM 参数设置 #======================================================= JAVA_OPT=" -server -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dcache_enable=true -Dconfig.path=${CONFIG_DIR} -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED -Djava.security.properties=./lib/enableLegacyTLS.security -Duser.country=CN -Duser.language=zh -Djsse.enableCBCProtection=false -Dthread.jvmSize=${JVM_SIZE} -Xms${JAVA_MEMORY} -Xmx${JAVA_MEMORY} " 9 第3章 系统部署 • Windows 平台(startup.bat) rem 如果需要手动设置,把下面的注释(rem)去掉即可 rem set JAVA_MEMORY=13G rem ======================================================= rem JVM 参数设置 rem ======================================================= set "JAVA_OPT=-server -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true Dcache_enable=true" set "JAVA_OPT=%JAVA_OPT% -Dconfig.path=^"%CONFIG_DIR%^" -Dlog.path=^"%LOG_DIR%^" -Djavax.xml.parsers. SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Djava.security. properties=./conf/enableLegacyTLS.security -Duser.country=CN -Duser.language=zh -Djsse. enableCBCProtection=false" set "JAVA_OPT=%JAVA_OPT% --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens jdk.zipfs/ jdk.nio.zipfs=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang. invoke=ALL-UNNAMED" set "JAVA_OPT=%JAVA_OPT% -XX:+UseG1GC -XX:G1ReservePercent=20 -XX:+UseCompressedOops -XX: +UseCompressedClassPointers -XX:G1HeapRegionSize=8M -XX:+SegmentedCodeCache -XX:+PrintCommandLineFlags -XX:+ExplicitGCInvokesConcurrent" set "JAVA_OPT=%JAVA_OPT% -Xms%JAVA_MEMORY% -Xmx%JAVA_MEMORY%" 执行启动脚本 3.2.3.2 • Linux 平台 startup.sh 注意: 1. Linux 平台启动后程序在后台运行,如果需要查看运行日志,可使用 tail 命令:tail -f logs/ kdts-appconsole_2022-06-24_22-22-22.log 2. 如果需要停止运行中的程序,可执行 shutdown.sh。 • Windows 平台 startup.bat 3.2.4 访问 1. 使用谷歌浏览器进行访问 10 第3章 系统部署 2. 访问地址:http://localhost:54523/ 3. 默认用户名及密码:kingbase / kingbase 4. 会话保存策略:会话保存时间为一天 3.2.5 国际化 1. 系统自动读取浏览器语言设置作为默认语言,支持中、英两种语言. 2. 更换语言设置:谷歌浏览器打开设置,搜索语言,提示“根据您的偏好设置对语言进行排序”,最顶部的语言 即为当前浏览器所使用的语言。 3. 执行启动脚本时,默认启动语言为中文,如果是英文环境,需要进行指定,命令如下: # 指定中文环境 -Duser.country=CN -Duser.language=zh # 指定英文环境 -Duser.country=US -Duser.language=en 3.3 SHELL 版部署 3.3.1 迁移程序说明 迁移工具 SHELL 版随数据库一起打包发布,安装完数据库后,在 ‘$ {KES_HOME}/ ClientTools/ guitools/ KDts/KDTS-CLI‘目录下,其中 ‘${KES_HOME}‘代表 Kingbase 数据库的安装根目录,程序包括如下目录: • bin: 启动脚本 • conf: 配置文件(包括 manual_script(手工脚本)、mapping_rule(映射规则)等子目录,详见 readme.md) • drivers: 数据库连接驱动(注意不同版本驱动的存放目录差异,详见 readme.md) • jdk: jdk 目录 • lib: 程序包 • logs: 运行日志 • results: 结果报告 • version: 版本查看脚本 11 第3章 系统部署 3.3.2 JDK 迁移程序需要 JDK11 及以上的版本,如果计算机中已有可用的 JDK,配置迁移程序启动脚本(kdts-plus/bin/ startup.sh 或 startup.bat)中 JAVA_PATH 即可。如果没有,可从 OpenJDK 网站 https://jdk.java.net/archive/ 上 下载与计算机的操作系统和 CPU 架构相匹配的版本(如 Liunx/AArch64、Linux/x64、Windows/x64 等),然后将 JDK 安装包解压为 jdk 目录。 注意: 1. 应使用解压版本的 JDK,也不要把 JDK 设置到系统环境变量里,以免影响计算机上的其它应用。 2. 下载时应选择最新更新的 JDK 版本,例如在下载页面上 Open JDK 11 有“11 GA(build 11+28)、11.0.1(build 11.0.1+13)、11.0.2(build 11.0.2+9)”等 3 个版本,应下载 11.0.2。 启动命令 3.3.3 迁移程序的启动脚本在 bin 目录下,Linux 平台为 startup.sh,Windows 平台为 startup.bat。 3.3.3.1 配置启动脚本 1. 设置 JAVA_PATH 如果 JDK 没有安装在 jdk 目录,将如下的“JAVA_PATH”配置为实际的安装目录。 • Linux 平台(startup.sh) #JAVA 路径 JAVA_PATH=${BASE_PATH}"/jdk" • Windows 平台(startup.bat) rem JAVA 路径 set "JAVA_PATH=%BASE_PATH%/jdk" 2. 设置 Java 虚拟机内存 系统会根据服务器可用内存自动调整 Java 虚拟机内存,如果需要手动调整,将启动脚本中的 JAVA_MEMORY 参数前的注释去掉修改为调整值即可。 • Linux 平台(startup.sh) # 如果需要手动设置,把下面两行的注释(#)去掉后设置 #JAVA_MEMORY=12G #======================================================= 12 第3章 系统部署 # JVM 参数设置 #======================================================= KDTS_JAVA_OPT=" -server -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Dcache_enable=true -Dconfig.path=${CONFIG_DIR} -Dloader.path=${LIB_DIR} -Dlog.path=${LOG_DIR} -Dlogback.configurationFile=${LOG_CONFIG_FILE} -Dtask.name=${NOW_STR} -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Djava.security.properties=./conf/enableLegacyTLS.security -Djsse.enableCBCProtection=false --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens jdk.zipfs/jdk.nio.zipfs=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED -Xms${JAVA_MEMORY} -Xmx${JAVA_MEMORY} " • Windows 平台(startup.bat) rem 如果需要手动设置,把下面两行的注释(rem)去掉即可 rem set JAVA_MEMORY=6G rem ======================================================= rem JVM 参数设置 rem ======================================================= set "JAVA_OPT=-server -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Dcache_enable=true" set "JAVA_OPT=%JAVA_OPT% -Dconfig.path=^"%CONFIG_DIR%^" -Dloader.path=^"%LIB_DIR%^" -Dlog.path=^"%LOG_ DIR%^" -Dlogback.configurationFile=^"%LOG_CONFIG_FILE%^" -Dtask.name=%NOW_STR% -Djavax.xml.parsers. SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Djava.security. properties=./conf/enableLegacyTLS.security -Djsse.enableCBCProtection=false" set "JAVA_OPT=%JAVA_OPT% --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens jdk.zipfs/ jdk.nio.zipfs=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang. invoke=ALL-UNNAMED" set "JAVA_OPT=%JAVA_OPT% -XX:+UseG1GC -XX:G1ReservePercent=20 -XX:+UseCompressedOops -XX: +UseCompressedClassPointers -XX:G1HeapRegionSize=8M -XX:+SegmentedCodeCache -XX: +ExplicitGCInvokesConcurrent" set "JAVA_OPT=%JAVA_OPT% -Xms%JAVA_MEMORY% -Xmx%JAVA_MEMORY%" 13 第3章 3.3.3.2 系统部署 执行启动脚本 • Linux 平台 startup.sh 注意: 1. Linux 平台启动后程序在后台运行,如果需要查看运行日志,可使用 tail 命令:tail -f kdts-plus/ logs/ kdtsplus_2022-06-24_22-22-22.log 2. 如果需要停止运行中的程序,可执行 shutdown.sh。 • Windows 平台 startup.bat 14 第4章 4 第 章 BS 版使用说明 BS 版使用说明 本章节包括的主题如下: • 概览 • 数据源管理 • 迁移任务管理 • 迁移结果 • 线程池配置 • 个人中心 4.1 概览 以图表形式展示数据库连接总数、任务安排总数、作业执行总数及作业数与任务数在指定时间内每天执行的次 数,便于您快速了解系统使用情况。 15 第4章 4.2 BS 版使用说明 数据源管理 为了完成数据迁移工作,您需要管理数据源信息。数据源分为源数据库与目标数据库两种,包括添加和删除数据 源连接信息,添加时填写数据库基本信息等。 4.2.1 源数据库 管理源数据库信息,在数据迁移时作为被迁移数据库使用。 4.2.1.1 列表 列表显示您所建立的所有数据源连接详细信息,包括:“连接名称”、“数据库”、“数据库类型”、“数据库 版本”、“服务器地址”、“用户名”、“操作”。 操作包括:“测试”、“编辑”、“删除”。 16 第4章 4.2.1.2 BS 版使用说明 查询 在搜索框内输入连接名称关键字,点击“查询”按钮可快速找到对应的源数据库,支持模糊搜索。 用于存在大量数据源连接时的快速检索。 17 第4章 4.2.1.3 BS 版使用说明 新建 新建源数据库连接,填写需要的相关数据源连接信息,包括:“连接名称”、“数据库类型”、“数据库版 本”、“服务器地址”、“端口”、“用户名”、“密码”、“数据库”、“驱动”、“URL”、“连接参数”。 • 连接名称: 输入自定义的连接名称,用于标注此数据源连接。 • 数据库类型: 在 源 数 据 库 中 支 持 “Oracle”、“MySQL”、“SQLServer”、“Db2”、“Gbase”、“PostgreSQL”、“DM”、“KingbaseES”数据库类型。 • 数据库版本: 与数据库类型相关联的迁移工具支持迁移的数据库版本。 • 服务器地址: 数据库所在服务器 IP 地址。 • 端口: 数据库端口号。 • 用户名: 操作数据库的用户名。 • 密码: 与操作数据库用户名相匹配的密码。 18 第4章 BS 版使用说明 • 数据库: 操作数据库的名称。 • 驱动: 数据库驱动信息,会根据数据库类型及数据库版本动态调整。 • URL: 完 成 “服 务 器 地 址”、“端 口 号”、“数 据 库” 的 键 入, 如 果 源 数 据 库 为 “SID”、“ServiceName”; 如 果 源 数 据 库 为 KingbaseES Oracle 数 据 库, 需 要 选 择 数 据 库, 需 要 选 择 “JDBC”、“UnixDo- mainSocket”,选择完成后,自动生成 URL。 SID:数据库实例名用于和操作系统进行联系的标识。 ServiceName:数据库服务名,对于集群环境来说,每个节点的 SID 可能不一致,但 ServiceName 是一致的, 简化客户端连接配置。 UnixDomainSocket 用于实现同一主机上的进程间通信。当迁移工具与目标数据库(KingbaseES)安装在同一 台 Linux 服务器上时可以使用,可提高数据传输效率。 • 连接参数 根据数据库做相应适配,可自行添加或删除参数。 4.2.1.4 测试 测试此数据源是否连接成功,连接成功将会弹出“测试连接成功”提示框,失败会显示出错原因,有助于您了解 连接失败原因。 19 第4章 4.2.1.5 BS 版使用说明 编辑 如果您需要修改数据库连接相关信息,可点击“编辑”按钮修改数据源连接信息,修改后要保证数据源连接依旧 成功。 4.2.1.6 删除 点击“删除”按钮可删除此数据源连接信息。 20 第4章 BS 版使用说明 当需要批量删除数据源连接时,可勾选“连接名称”前的复选框选中需要删除的源数据库连接信息,点击“批量 删除”即可。在未勾选任何数据库连接时“批量删除”呈不可选择状态。 4.2.2 目标数据库 管理目标数据库信息,在数据迁移时作为存放迁移数据的数据库使用。 4.2.2.1 列表 列表显示您所建立的所有目标数据源连接的详细信息,包括:“连接名称”、“数据库”“数据库类型”、“数 据库版本”、“服务器地址”、“用户名”、“操作”。 操作包括:“测试”、“编辑”、“删除”。 21 第4章 4.2.2.2 BS 版使用说明 查询 在搜索框内输入连接名称关键字,然后点击“查询”按钮可快速找到对应的目标数据库,支持模糊搜索。 用于存在大量数据源连接时的快速检索。 22 第4章 4.2.2.3 BS 版使用说明 新建 新 建 目 标 数 据 库 连 接。 完 成 新 建 目 标 数 据 库 需 要 填 写 相 关 数 据 源 连 接 信 息, 包 括:“连 接 名 称”、“数 据 库 类 型”、“数 据 库 版 本”、“服 务 器 地 址”、“端 口”、“用 户 名”、“密 码”、“数 据 库”、“驱 动”、“URL”、“连接参数”。 • 连接名称: 输入自定义的连接名称,用于标注此数据源连接。 • 数据库类型: 在目标数据源中仅支持“KingbaseES”数据库类型。 • 数据库版本: 与数据库类型相关联的系统支持的数据库版本。 • 服务器地址: 数据库所在服务器 IP 地址。 • 端口: 数据库端口号。 • 用户名: 操作数据库的用户名。 • 密码: 与操作数据库用户名相匹配的密码。 23 第4章 BS 版使用说明 • 数据库: 操作数据库的名称。 • 驱动: 数据库驱动信息,会根据数据库类型及数据库版本动态调整。 • URL: 完成“服务器地址”、“端口号”、“数据库”的键入以及“JDBC”、“UnixDomainSocket”的选择,URL 会自动生成。 UnixDomainSocket 用于实现同一主机上的进程间通信。当迁移工具与目标数据库(KingbaseES)安装在同一 台 Linux 服务器上时可以使用,可提高数据传输效率。 • 连接参数 根据数据库做相应适配,可自行添加或删除参数。 4.2.2.4 测试 测试此数据源是否连接成功,连接成功将会弹出“测试连接成功”提示框,失败会显示出错原因,有助于您了解 连接失败原因。 24 第4章 4.2.2.5 BS 版使用说明 编辑 如果您的数据库修改了相关信息,可修改目标数据源连接信息以保证目标数据源连接依旧连接成功。 4.2.2.6 删除 点击“删除”可删除此目标数据源连接信息。 当需要批量删除数据源连接时,可勾选“连接名称”前的复选框选中需要删除的源数据库连接信息,点击“批量 删除”即可。在未勾选任何数据库连接时“批量删除”呈不可选择状态。 25 第4章 4.3 BS 版使用说明 迁移任务管理 迁移任务管理可以操作或查看迁移的全过程。 4.3.1 迁移任务 管理迁移任务,以便于数据迁移操作。 4.3.1.1 列表 列表显示您所建立的所有迁移任务的详细信息,包括:“任务名称”、“源库”、“目标库”、“状态”、“启 动时间”、“结束时间”、“操作”。 “状态”栏显示任务结束执行是否成功,“启动时间”为迁移任务开始时间,“结束时间”为迁移任务结束时 间。 操作包括:“启动”、“重启”、“详情”、“编辑”、“删除”、“二次迁移”。 26 第4章 BS 版使用说明 • 启动 执行从未执行过的迁移任务。 • 重启 执行迁移失败或者需要再次迁移的迁移任务。 • 详情 您可以查看当前迁移任务上次迁移结果的详细信息。如您上次迁移任务失败,可通过点击“详情”按钮打开 “结果查看”页面,通过点击错误日志查看,有助于您找到失败原因,可修改迁移任务配置,以至下次重启时 可以完成迁移。 27 第4章 BS 版使用说明 • 编辑 如您需要修改迁移任务的模式、迁移对象和配置参数的信息,可以通过点击“编辑”按钮进行修改。 • 二次迁移 您可以对迁移失败的对象进行二次迁移。二次迁移以临时任务形式进行,迁移完成后,会合并迁移结果至此任 务中。 28 第4章 4.3.1.2 BS 版使用说明 迁移对象列表 在“详情”中点击成功数、失败数或忽略数即可显示迁移对象列表。 点击“成功数”即显示“迁移对象成功列表”。可点击对象名查看具体 DDL 语句。 点击“失败数”即显示“迁移对象失败列表”。可点击对象名查看具体 DDL 语句。 29 第4章 BS 版使用说明 点击“失败信息”可查看 ERROR 信息。 30 第4章 BS 版使用说明 支持手动修改数据库对象迁移结果,可将迁移成功的对象修改为迁移失败,将迁移失败的对象修改为迁移成功, 可用于手动迁移后同步迁移结果。 4.3.1.3 查询 在搜索框内输入任务名称关键字,点击“查询”可快速找到对应的迁移任务,支持模糊搜索。 31 第4章 BS 版使用说明 用于存在大量迁移任务时的快速检索。 4.3.1.4 新建 新建迁移任务以进行数据迁移。新建任务包含四步:“选择数据源”、“选择模式”、“选择迁移对象”、“配 置参数”。 4.3.1.4.1 选择数据源 填写自定义任务名称(任务名称不能重复),选择“源数据库”和“目标数据库”,或者选择“新建数据源”后 使用。 32 第4章 BS 版使用说明 4.3.1.4.2 选择模式 根据您的数据迁移所需选择对应模式(如需选择模式在系统模式中可选中“包含系统模式”复选框)的表、视 图、序列、函数、存储过程、程序包、同义词、触发器、用户自定义类型、注释及配置搜索路径。当模式较多时也可 以通过左上方的查询框进行检索。请您至少选择一种模式,否则将收到错误提示,以至于不能完成新建任务。 在选择模式的前提下如您未选择“表”,即没有迁移对象,则系统将认为您不需要迁移对象,将提示您直接跳过 “选择迁移对象”进入“配置参数”。 33 第4章 BS 版使用说明 搜索路径配置需要手动填写源库搜索路径及目标库搜索搜索路径。 4.3.1.4.3 选择迁移对象 通过已选模式选择您需要迁移数据的表,模式较多时可在已选模式搜索框内输入模式名关键字进行快速检索。 34 第4章 BS 版使用说明 可迁移此模式下全部表,也可以指定或排除部份表,当您选择“包含指定表”或“排除指定表”时,请您通过 “从列表选择”、“从文件导入”或者在输入框内输入表名将数据添加到包含列表中,如您未添加数据,则会提示错 误导致无法进行下一步并完成新建任务。 当您点击“包含指定表”时也可选择多种方式。可直接在输入框内填写表名,多个表用“,”分割,回车确 认;“从列表选择”可在模式中选择指定表;如您要“从文件导入”,可点击“下载导入模板”,根据导入模板规则 填写,然后从文件导入该模板。当您需要“排除指定表”时,同指定部份表相同操作,但结果相反。 35 第4章 BS 版使用说明 从列表选择表时,可选择对应模式、检索表名关键字、数据条数限制进行快速检索对应的表。点击“添加”按钮 后加入到已选列表,当您想要移除部份表时可以选择对应的表点击“移除”按钮取消表。选择完成后点击确定。 4.3.1.4.4 配置参数 您可以通过对参数的更改获得预估的数据迁移结果。其中迁移配置包括“表默认处理方式”、“表排序依 据”、“表数据读取和写入”、“大表拆分阈值依据”、“非对象设置”、“设置表名、列名大小写”、“数据库连 36 第4章 BS 版使用说明 接数设置”、“kdms 转换设置”及“其他设置”。 • 表默认处理方式: 包括两个复选框项(“建表/重建表”、“导入数据”),迁移到 KingBaseES 数据库是否需要建表或者重建 表,以及是否只迁移表结构而不迁移数据的选择,根据您的需求选择合适的选项(默认是全选)。 • 表排序依据: 对迁移的表进行排序,可通过“按行数和大字段大小交替”、“行数”、“大小进行排序”(默认是按行数和 37 第4章 BS 版使用说明 大字段大小交替)。 • 表数据读取和写入: 对表数据的读取和写入制定规则,可操作项包括“源库游标读取记录数”(默认是 100)、“批量写入目标库 记录数”(默认是 1000)、“每次批量提交大小”(默认是 100MB)、“LOB 字段预读取大小”(默认是 4000Byte)。 • 大表拆分阈值依据: 对大表进行拆分迁移,设置拆分界限。 表 4.3.1: 大表拆分阈值依据 操作项 备注 拆分阈值行数 根据行数拆分大表进行迁移 拆分阈值大小 根据表大小拆分进行迁移 拆分最大块数 设置块数上限 含大对象表游标读取记录数 设置游标读取记录数上限 • 非对象设置: 其 中 包 含 “主 键”、“检 查 约 束”、“唯 一 约 束”、“外 键”、“索 引”、“触 发 器”、“自 动 转 换 对 象 名”、“注释”。您可以根据自己的需求选择是否迁移这些非对象数据(默认是全选)。 • 设置表名、列名大小写: 您根据迁移需求将迁移表的表名和列名改为大写、小写或者与源数据库相同(默认是不变)。 • 数据库连接数设置: 您可以限制迁移程序对源数据库和目标数据库的最大连接数(默认是 100)。 • kdms 转换设置: 开启后可以使用 kdms 对视图、函数、存储过程、包、触发器进行转换后迁移,默认关闭。开启后需要维护正 确的 kdms 信息。 • 其他配置: 配置连接池线程数,源库及目标库最大重试次数及重试间隔,目标数据库字符集,是否记录成功脚本,是否创 建目标模式,是否按照 unlogged 表迁移,是否将 unlogged 表重置为普通表。 数据类型映射包括“源数据类型”、“目标数据类型”、“源库最小版本”、“源库最大版本”、“目标库最小 版本”、“目标库最大版本”及“配置”。 38 第4章 BS 版使用说明 线程配置可以设置“线程池信息”、“表数据读线程池”、“表数据写线程池”、“元数据读线程池”、“元 数 据 写 线 程 池”、“表 数 据 读 取 线 程 池 (逆 序)”、“表 数 据 写 线 程 池 (逆 序)”、“元 数 据 读 线 程 池 (逆 序)”、“元数据写线程池(逆序)”、“大数据对象(CLOB 和 BLOB)写线程池”、“线程池状态收集汇 总配置”、“线程状态收集汇总配置”、“线程堆栈收集配置”。默认为关闭状态,关闭时则使用全局线程池配置, 开启后,迁移任务使用独立线程池配置。 39 第4章 BS 版使用说明 4.3.1.4.5 保存或保存并迁移 您可将此任务作为预迁移任务点击“保存”,或者作为执行任务点击“保存并迁移”。 • 迁移完成: 迁移结束“状态”栏显示“完成”,则迁移任务成功。 • 迁移失败: 40 第4章 BS 版使用说明 迁移结束“状态”栏显示“失败”,则迁移任务失败。失败后可点击详情查看日志有助于解决问题。 4.3.1.5 删除迁移任务 点击“删除”按钮可删除此迁移任务。 当迁移任务过多且需要删除大量迁移任务时,可勾选“任务名称”前的复选框将需要删除的迁移任务全部选中, 点击“批量删除”即可,在未勾选任何迁移任务时“批量删除”呈不可选择状态。 4.3.2 处理中 “处理中”功能的工作区显示正在进行的迁移任务。可点击“停止”按钮取消该任务(停止任务将导致迁移任务 失败)。 41 第4章 BS 版使用说明 点击“进度”按钮可查看该处理中的任务完成进度。在“进度查看”中也可以点击“停止”按钮取消此任务,或 点击“删除”按钮,直接删除此任务。 4.3.3 迁移完成 “迁移完成”功能的列表页面显示已经结束并成功的迁移任务。具体操作可参考 3.1.1 节。 42 第4章 4.3.4 BS 版使用说明 迁移失败 “迁移失败”功能的工作区页面显示迁移失败的任务。具体操作可参考 3.1.1 节。 43 第4章 4.3.5 BS 版使用说明 未启动 “未启动”功能的工作区显示新建的迁移任务,但并未启动过的任务。具体操作可参考 3.1.1 节。 4.4 迁移日志 迁移日志打印迁移任务执行后的日志,具体可分为“系统日志”、“Error 日志”、“Info 日志”。 4.4.1 系统日志 “系统日志”显示 error、warn、info 级别的日志。如需自动滚动日志可以点击“自动滚动”复选框。 44 第4章 BS 版使用说明 4.4.2 Error 日志 “Error 日志”仅显示 error 级别的日志。在迁移任务失败时有助于帮您找到错误原因。如需自动滚动日志可以 点击“自动滚动”复选框。 45 第4章 BS 版使用说明 4.4.3 Info 日志 “Info 日志”仅显示 info 级别的日志。如需自动滚动日志可以点击“自动滚动”复选框。 46 第4章 4.5 BS 版使用说明 迁移结果 “迁移结果”功能的工作区包括“任务执行批次”、“迁移对象”、“总数”、“成功数”、“失败数”、“略 过数”、“操作”。您可以查看历史迁移任务执行的每次记录,以及每次迁移的对象、成功数、失败数、查看失败任 务的错误日志。 47 第4章 BS 版使用说明 迁移成功对象 迁移失败对象 48 第4章 BS 版使用说明 迁移略过对象 4.6 线程池配置 配置全局线程池信息,包括:线程池名称、JVM 内存大小、表数据读线程池配置、表数据写线程池配置、元数 据读线程池配置、元数据写线程池配置、表数据读线程池配置 (逆序)、表数据写线程池配置 (逆序)、元数据读线程池 49 第4章 BS 版使用说明 配置 (逆序)、元数据写线程池配置 (逆序)、大数据对象 (Clob 和 Blob) 写线程池配置、线程池状态收集汇总配置、线 程状态收集汇总配置、线程堆栈收集配置等信息。 注意: 全局线程池配置归所有迁移任务所共享,迁移任务默认采用全局线程池配置。如果迁移任务想采用独立的线程 池,需要在迁移任务线程池配置中将开关打开并设置相关线程池信息。 4.7 个人中心 展示账号信息及修改登录密码。 4.7.1 账号信息 展示账号基本信息,包括:账号、姓名、邮箱、地址、账号锁定、创建时间信息。 50 第4章 4.7.2 BS 版使用说明 修改密码 修改账号登录密码,输入原密码、新密码及确定密码,完成账号密码修改。 51 第 5 章 SHELL 版使用说明 5 第 章 SHELL 版使用说明 本章节包括的主题如下: • 配置 • 运行日志 • 迁移报告 • KingbaseES 优化配置参数 5.1 配置 5.1.1 源库类型 迁移程序支持迁移多种源数据库,为了避免不同源数据库配置相互的干扰,按不同的源数据库类型进行生成独立 的配置文件,因此需要知道当前激活的配置。进入 kdts-plus/conf 目录,打开 application.yml 文件,把“active”的 值设置当前激活的源数据库类型(spring -> profiles -> active): active: oracle # 准备迁移的数据库,如 dm(达梦)、gbase、kingbase、mysql、oracle 等,具体的配置在 kdts-XXX.yml 文件中 当前设置的是 oracle,激活的“数据库连接”配置就是 kdts-oracle.yml,如果配置的是 mysql,则对应 kdtsmysql.yml,以此类推。 5.1.2 运行模式 迁移工具除了进行数据迁移还可进行源库和目标库的数据对比,可根据需要切换运行模式。进入 kdts-plus/conf 目录,打开 application.yml 文件,去掉“running-mode”前的 # 号(注释)后设置需要的运行模式: datasource: type: 52 第 5 章 SHELL 版使用说明 source: Hikari # Hikari、Druid、Simple # 源库为 gbase8g 时,只能选择 Simple target: Hikari # Hikari、Druid、Simple log: home: logs # 日志主目录 level: # 日志级别 console-appender: INFO # 控制台输出(OFF、TRACE、DEBUG、INFO、WARN、ERROR) file-appender: INFO # 文件输出(OFF、TRACE、DEBUG、INFO、WARN、ERROR) #running-mode: DataCompare # 数据比较 注意: 注释掉“running-mode”即为缺省的数据迁移模式,以后若有新运行模式,按注释说明填写。 5.1.3 源数据库 根据设置的“源库类型”,打开 conf 目录中与之对应的配置文件(如 kdts-oracle.yml),按实际环境中的运行 参数进行配置。 5.1.3.1 源库连接设置 # 源数据库类型 dbType: oracle # 源数据库版本 (9i,10g,11g,12c,19c) dbVersion: 11g # 连接字符串 url: jdbc:oracle:thin:@1.2.3.4:1521/orcl # 驱动类名 driver-class-name: oracle.jdbc.OracleDriver # 用户名 username: oracle # 密码 password: 123456 # 数据库连接验证 SQL validationQuery: select 1 from dual 注意: 1. 如果源库的类型为 MariaDB 时使用与 Mysql 使用相同的接口和配置文件,不再单独处理,请按照下表中的版 本对应关系进行配置: 53 第 5 章 SHELL 版使用说明 MariaDb MySql kdts-plus 对应的 dbVersion 5.5、10.0 5.5 5.5 10.1 5.6 5.7 10.2、10.3、10.4 5.7 5.7 10.5、10.6、10.7 8.0 8.0 2. 配置“连接字符串”时需要考虑数据库的初始化字符集等因素,例如当 MySQL 数据库的字符集是 GBK 或 GB2312 时,应在 url 中添加“useUnicode=true&characterEncoding=utf-8”。 5.1.3.2 包含或排除的模式 # 要迁移的模式,多个模式用英文逗号隔开,如:A,B,C(不要回车换行),也可填入"*"(需要双引号,将迁移源库中此用户所 能访问的所有模式) #schemas: Sehcma1,Sehcma2,Sehcma3 #schemas: "*" schemas: Sehcma1 # 不迁移的模式,多个模式用英文逗号隔开,如:A,B,C(不要回车换行) schema-excludes: SYS,SYSTEM,MGMT_VIEW,DBSNMP,SYSMAN,OUTLN,FLOWS_FILES,MDSYS,ORDSYS,EXFSYS,WMSYS,APPQOSSYS, APEX_030200,OWBSYS_AUDIT,ORDDATA,CTXSYS,ANONYMOUS,XDB,ORDPLUGINS,OWBSYS,SI_INFORMTN_SCHEMA,OLAPSYS,SCOTT, ORACLE_OCM,XS$NULL,BI,PM,MDDATA,IX,SH,DIP,OE,APEX_PUBLIC_USER,HR,SPATIAL_CSW_ADMIN_USR,SPATIAL_WFS_ADMIN_USR 5.1.3.3 大表拆分设置 # 大表拆分阈值行数(当表的行数超过此值时,将对表进行拆分,每块的记录数为此值和表总记录数除以“拆分最大块数”中的 最大值) large-table-split-threshold-rows: 5000000 # 大表拆分阈值大小(单位为 M)(当表的数据大小(普通字段 + 大对象字段)超过此值时,将对表进行拆分) large-table-split-threshold-size: 5000 # 大表拆分最大块数(每张表的最大拆分块数,应不超过总的读线程数) large-table-split-max-chunk-num: 24 # 大表拆分条件定义文件(优先于按行数和大小拆分) large-table-split-condition-file: largetable-split-condition.json 5.1.3.4 表过滤设置 54 第 5 章 SHELL 版使用说明 # 表数据过滤条件定义文件 table-data-filter-condition-file: table-data-filter-condition.json 5.1.3.5 包含或排除的对象 # 注意:在下面使用英文逗号隔开的配置项中,如果对象名称中包含!@#$%^&*(_+}{]|\\'g;:?/,< 等特殊字符时可使用双引号, 但双引号需加斜杠转义,如\"Schema1\".\"Table!@#$%^&*(_+}{]|\\,11 60 第 5 章 SHELL 版使用说明 1588830015000048483007588300300000883002088300150000 61 第 5 章 SHELL 版使用说明 484830075883003000008830020161630016 其他配置 5.1.6 {安装目录}/conf 目录下的配置项功能说明: conf ��manual_script --手工脚本,用于迁移编辑后的迁移失败的对象 ��mapping_rule ��column --自定义表字段映射规则 ��data_type --自定义数据类型映射规则 ��default_value --自定义字段缺省值映射规则 ��table_data --自定义数据映射规则 每个目录下都有对应的使用说明文档 readme.md 和示例文件 example.json,请参考对应文档使用。 5.2 运行日志 迁移程序会在 kdts-plus/logs 目录下按迁移日期和时间创建日志目录,该目录下会有 3 个日志文件以及不同模 式名的子目录,每个子目录下存放该模式相关的日志(error.log、info.log、warn.log),请注意查看 error.log 中的内 容。 Schema1 # 模式 1 的日志 Schema2 # 模式 2 的日志 Schema2 # 模式 3 的日志 error.log # 错误 info.log # 信息 warn.log # 警告 注意: 63 第 5 章 SHELL 版使用说明 1. Linux 平台下在 logs 根目录下会有一个名为“kdts-plus-日期 + 时间.log”的日志,里面会包含全部的日志内 容,Windows 平台受限于操作系统,无此日志。 2. “数据对比”的日志目录名有“DataCompare-”前缀。 5.3 迁移报告 迁移程序会在 kdts-plus/result 目录下按迁移日期和时间创建报告目录,该目录下会有 index.html 以及不同模式 名的子目录,每个子目录下存放该模式的详细报告,可打开 index.html 进行查看。每个模式名子目录下内容如下: AcrpyRegisterScript #ArcGIS 注册脚本(迁移 GIS 数据时从此目录下取注册数据的 脚本文件) FailedScript # 失败脚本目录 IgnoredScript # 略过脚本目录 SuccessScript # 成功脚本目录 index.html # 模式信息首页 detail_check_constraint.html # 检查约束详细信息页 detail_comment.html # 注释详细信息页 detail_foreign_key_constraint.html # 外键详细信息页 detail_function.html # 函数详细信息页 detail_index.html # 索引详细信息页 detail_package.html # 包详细信息页 detail_primary_key_constraint.html # 主键详细信息页 detail_procedure.html # 存储过程详细信息页 detail_sequence.html # 序列详细信息页 detail_synonym.html # 同义词详细信息页 detail_table.html # 表详细信息页 detail_table_data.html # 表数据详细信息页 detail_trigger.html # 触发器详细信息页 detail_unique_constraint.html # 唯一性约束详细信息页 detail_view.html # 视图详细信息页 • 迁移报告目录 64 第 5 章 SHELL 版使用说明 • 模式信息首页(index.html) • XXX 详细信息(如表结构、表数据、表主键等, detail_XXX.html) 65 第 5 章 SHELL 版使用说明 • 失败脚本目录 (FailedScript) • 成功脚本目录 (SuccessScript) 在 FailedScript、IgnoredScript 和 SuccessScript 目录下会生成与之对应(失败、略过、成功)的脚本: check_constraint.sql # 检查约束 SQL 脚本 comment.sql # 注释 SQL 脚本 foreign_key_constraint.sql # 外键 SQL 脚本 function.sql # 函数 SQL 脚本 index.sql # 索引 SQL 脚本 package.sql # 包 SQL 脚本 primary_key_constraint.sql # 主键 SQL 脚本 66 第 5 章 SHELL 版使用说明 procedure.sql # 存储过程 SQL 脚本 sequence.sql # 序列 SQL 脚本 synonym.sql # 同义词 SQL 脚本 table.sql # 表 SQL 脚本 table_data.sql # 表数据 SQL 脚本 trigger.sql # 触发器 SQL 脚本 unique_constraint.sql # 唯一性约束 SQL 脚本 view.sql # 视图 SQL 脚本 • 迁移成功表结构 SQL 脚本 67 第 5 章 SHELL 版使用说明 • 迁移失败表结构 SQL 脚本 68 第 5 章 SHELL 版使用说明 注意: “数据对比”的日志目录名有“DataCompare-”前缀。 5.4 KingbaseES 优化配置参数 max_connections=2000 shared_buffers=RAM*0.4GB #RAM 指内存,最大设置为 64GB work_mem =10MB maintenance_work_mem=6GB effective_cache_size=RAM*0.5GB #RAM 指内存(free -g)RAM*0.5GB max_locks_per_transaction=1024 #wal_level = minimal max_wal_size=100GB checkpoint_timeout=5min checkpoint_completion_target=0.9 max_parallel_workers_per_gather=0 logging_collector=on log_destination='stderr' log_directory='sys_log' log_filename='kingbase-%d.log' log_truncate_on_rotation=on log_rotation_age=1440 log_connections=on log_disconnections=on log_statement='ddl' log_checkpoints=on log_lock_waits=on log_autovacuum_min_duration=0 log_temp_files=0 lc_messages='C' log_min_duration_statement=1000 log_line_prefix='%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h' ignore_char_null_check=true 69 第 5 章 SHELL 版使用说明 max_worker_processes=100 max_parallel_workers=80 #max_parallel_workers_per_gather=64 max_parallel_maintenance_workers=64 #maintenance_work_mem=16GB 70 第 6 章 GIS 迁移步骤说明 6 第 章 GIS 迁移步骤说明 系统已完成与主流 GIS 平台的适配工作,能够实现平滑快速迁移至 Kingbase 数据库。目标支持的源库有 Oracle 与 Postgresql。 以下将介绍主流平台 ArcGIS / GeoScene 的数据迁移步骤。 • 迁移前准备 • KDTS 配置迁移任务 • 执行迁移任务 • 迁移后注册数据 • 常见问题 6.1 迁移前准备 迁移前准备主要是指 Kingbase 数据库的准备工作。以下将以 Linux x86 平台介绍 Kingbase 库的准备步骤。 先准备好 kingbase-server-linux-x86_64.tar 和 postgis_libs.tar 包。 6.1.1 源库是 ArcGIS / GeoScene 平台的数据 1. 在 Kingbase 数据库所在机器做如下操作: tar -xvf kingbase-server-linux-x86_64.tar ## 若数据库目录(lib、bin、extension)下已有 postgis 相关的包, 则不需要再拷贝 cp /home/kingbase/20220105/lib/postgis_libs/* /home/kingbase/20220105/lib/ cp /home/kingbase/20220105/postgis-3.1.2/bin/* /home/kingbase/20220105/bin/ cp /home/kingbase/20220105/postgis-3.1.2/lib/* /home/kingbase/20220105/lib/ cp /home/kingbase/20220105/postgis-3.1.2/share/extension/* /home/kingbase/20220105/share/extension/ ./initdb -U system -D data; vim kingbase.conf ./sys_ctl -D data start 71 第 6 章 GIS 迁移步骤说明 ./ksql -Usystem -p54321 test create user sde superuser; create schema sde; alter schema sde owner to sde; alter user sde password '123456'; create user rds_superuser superuser ; alter user rds_superuser password '123456'; create database kingbase; create extension postgis; create extension postgis_raster; create extension postgis_sfcgal; create extension fuzzystrmatch; create extension postgis_tiger_geocoder; set exclude_reserved_words = 'level'; create extension postgis_topology; create extension address_standardizer; create extension address_standardizer_data_us; select oid, proname, proargtypes, proisstrict from sys_proc where proname ilike '%addgeometrycolumn%'; ## update sys_proc set proisstrict = false where oid = 上一条 sql 的 oid update sys_proc set proisstrict = false where oid = 16705; 2. 完成以上步骤后,执行测试 ./pgsql2shp -f /home/gpadmin/kes/v9/Server/test2.shp -u system -p 54321 test "select * from test.sde.dltb2 3. 打开 ArcMap 软件,新建数据库,如下图所示: 72 第 6 章 GIS 迁移步骤说明 4. 在 ArcMap 软件,启动 Kingbase 地理信息数据库。(此步骤不可省略) 6.2 KDTS 配置迁移任务 以源库为 Oracle 11g、KDTS 的 SHELL 版本为例进行迁移配置并完成迁移。 1. 编辑 conf/application.yml 文件,编辑 active: Oracle,如下所示: active: oracle 2. 编辑 conf/kdts-oracle.yml 文件,编辑源库信息,并编辑要迁移的表 (POINT、LINE、POLYGONT),配置如 下所示: sources: - dbType: oracle dbVersion: 11g url: jdbc:oracle:thin:@ip:port/dbName driver-class-name: oracle.jdbc.oracleDriver 73 第 6 章 GIS 迁移步骤说明 username: SDE password: password schemas: SDE talbe-includes: POINT,LINE,POLYGONT 注意: 请使用 Oracle 的 SDE 用户进行迁移工作,以避免其他用户权限不足,读取 GIS 数据失败。 3. 编辑 conf/kdts-oracle.yml 文件,编辑目标库信息,配置如下所示: target: dbType: KINGBASE dbVersion: V9 url: jdbc:kingbase8://ip:port/dbName driver-class-name: com.kingbase8.Driver username: SDE password: password schemas: SDE 注意: 请使用 SDE 用户进行迁移工作,并且迁移至 SDE 模式下。(避免迁移至其他模式下注册数据信息失败)。 4. 编辑数据类型映射文件,将 Oracle 的 numeric(38, 0) 类型映射为 Kingbase 的 int 类型。 编辑 conf/mapping_rule/data_type/oracle_to_kingbase.json 文件,增加以下内容: { "sourceType": { "name": "NUMBER", "precisionMin": 0, "precisionMax": 38, "scaleMin": 0, "scaleMax": 0 }, "targetType": { "name": "int" } } 6.3 执行迁移任务 迁移配置完成后,执行以下命令,运行迁移任务。 74 第 6 章 GIS 迁移步骤说明 ./bin/startup.sh 6.4 迁移后注册数据 ArcGIS / GeoScene 平台的数据迁移后,必须要进行注册,后续应用才能正常使用。 1. 迁移后,在形如”result/2021-12-02_15_15_15/SDE/AcrpyRegisterScript/” 目录下的 acrpyRegisterWithGeodatabase.py 文件拷贝到 ArcGIS 所在的机器上,放到形如:”c:/python27/ArcGIS10.0” 目录下: 2. 查看 ArcMap 的 kingbase 数据库连接信息,并拷贝。如下图: 75 第 6 章 GIS 迁移步骤说明 3. 编辑 acrpyRegisterWithGeodatabase.py 文件,将上一步复制的内容粘贴到以下位置,保存文件,如下图所示: 76 第 6 章 GIS 迁移步骤说明 4. 执行 acrpyRegisterWithGeodatabase.py 脚本,将表注册到 ArcGIS 地理信息库。 5. 执行完成后使用 ArcMap 软件进行验证,能否正常显示图层信息。 6.5 常见问题 1. 问: 执行 acrpyRegisterWithGeodatabase.py 脚本时报错”ERROR 001050”,如下图所示: 77 第 6 章 GIS 迁移步骤说明 答: 原因是 acrpyRegisterWithGeodatabase.py 脚本内容有误,请检查是否已修改 arcpy.env.workspace 值,是否 与 ArcMap 的 kingbase 库连接信息一致。 2. 问: 执行 acrpyRegisterWithGeodatabase.py 脚本时报错”ERROR 001400”,如下图所示: 答: 原因是将 GIS 数据迁移到了 kingbase 的非 sde 模式下,请重新迁移至 sde 模式下,再进行注册。 3. 问: 执行 acrpyRegisterWithGeodatabase.py 脚本时报错”ERROR 999999”,如下图所示: 78 第 6 章 GIS 迁移步骤说明 答: 报错“999999”原因比较复杂,一般有以下原因: • 该表未指定 objectid 为唯一键,可以手动修改表定义,指定 objectid 字段为主键或者唯一约束。 • 该表的 objectid 字段的数据类型非 int 类型。可以 ksql 手动修改该字段类型为 int 或者修改 KDTS 的数据类型 映射文件,重新进行迁移。 • 如果是所有表均报以上错误,则可能是未启动地理信息数据库,可以通过 ArcMap 软件,在 kingbase 数据库连 接上右键,点击启动地理信息数据库。 • 如果不是以上原因,可以通过 ArcMap 软件手动注册。 79 第7章 注意事项 7 第 章 注意事项 本章节包括的主题如下: • BS 版 • SHELL 版 7.1 BS 版 1. 源端数据库类型为 MySQL5.1 版本时,数据库版本选择 5.5 2. KingbaseES 数据库采用 Unix Domain Socket 方式进行连接时,必须确保数据库服务与迁移工具程序在同一台 Linux 服务器上. 7.2 SHELL 版 7.2.1 迁移顺序 由于对象之间存在依赖关系,可按“1、序列;2、表结构、表数据、主键约束、索引、唯一性约束;3、外键约 束;4、检查约束、视图、函数、存储过程、包;5、同义词;6、触发器;7、注释”这样的顺序进行迁移。 7.2.2 大表拆分 为了最大化迁移数据的效率,迁移工具按表中的数据行数和大对象大小对表进行了排序,并对达到拆分阈值的大 表进行了拆分(拆分操作仅读取表数据记录标识,不影响数据),然后按分块并行读取,这些操作依赖于数据库统计 信息并需要对拆分操作进行授权,如果条件允许,可在迁移前对源数据库做数据统计分析和拆分授权。 注意: 1. 该机制仅针对 Oracle 和达梦数据库,其它数据库需手动拆分。 80 第7章 注意事项 2. 对表的排序和拆分不影响迁移的结果,只影响效率。 7.2.3 并行计算 7.2.3.1 SQLServer SQL Server 2016 或更高版本支持设置 Max Degree of Parallellism(最大并行度配置),可使用如下命令来查 看: exec sp_configure; 注意: 建议该参数的值设置为 0(由数据库自动管理)或一个大于 0 的值(由数据库专家给定)。 exec sp_configure 'max degree of parallelism', 0; go reconfigure with override; go 7.2.3.2 达梦数据库(DM8) 1. 可开启并行查询来提高查询效率,详见数据库的 PARALLEL_POLICY、PARALLEL_THRD_NUM 、 MAX_PARALLEL_DEGREE 等配置参数。 2. 保证数据库的 DBMS_STATS.GATHER_SCHEMA_STATS 可用,若报错” 错误的包或类名或当前环境不支 持 [DBMS_STATS]”,说明该包未启用。可以通过达梦管理工具--> 工具包-->SYSTEM PACKAGE--> 右键-> 点击启用,开启服务。 7.2.4 集群异步模式 目标库为集群模式时可将主从库的同步模式调整为异步,在主库数据迁移完成后等待从库追平后再恢复为同步模 式。 7.2.5 大对象数据 (LOB,Large Object) 如果要迁移的表中有大对象数据字段(BLOB、BFILE、CLOB、NCLOB 等)时,应先评估大对象数据的大 小,如果单行数据的大小达到 100M 以上,为了避免内存溢出 (Out Of Memory) 导致迁移失败,应控制 Java 虚 拟机内存的合理使用: 81 第7章 注意事项 1. 条件允许可增大内存,详见:bin/startup.sh 和 startup.bat 中 JAVA_OPT 里的“-Xms 和-Xms”参数项 2. 控制大对象表的读/写并发度,确保读入内存的大对象数据在合理的范围,相关的参数有: conf/kdts-xxx.yml # 源数据库含大对象数据表的游标读取记录数(同上,只是此参数针对有大对象字段的表) table-with-large-object-fetch-size: 5 # 源数据库含大大对象数据表的游标读取记录数(同上,只是此参数针对大对象字段长度超过 1G 的表) table-with-big-large-object-fetch-size: 5 # 大表拆分阈值行数(当表的行数超过此值时,将对表进行拆分,每块的记录数为此值和表总记录数除以“拆分最大块数”中的 最大值) large-table-split-threshold-rows: 5000000 # 大表拆分阈值大小(单位为 M)(当表的数据大小(普通字段 + 大对象字段)超过此值时,将对表进行拆分) large-table-split-threshold-size: 5000 # 大表拆分最大块数(每张表的最大拆分块数,应不超过总的读线程数) large-table-split-max-chunk-num: 5 conf/kb-thread-config.xml 553005 应满足:(table-with-large-object-fetch-size + large-table-split-max-chunk-num + writeLargeObject.maxPoolSize + writeLargeObject.workQueueSize)× 每行大数据大小 <= Java 虚拟机内存 ×0.9 7.2.6 网络抖动 在数据迁移的过程中可能会出现抖动、丢包等网络异常,它们除了会引发网络读写错误,还可能导致连接假死, 卡住迁移程序(在日志的 Running Jobs 会显示 read/write 已明显用时超长的任务),遇到这种情况可设置合适的 “网络读取超时”参数值,通过主动超时来中断网络连接以避免长时间的等待。注意,由于此参数会因超时中断连 接从而导致长耗时的数据库操作(如创建大索引)失败,需谨慎设置(须大于最耗时的时长)!若出现类似“Socket read timed out”异常时,可增大此值。建议: (1)将表结构、主键、外键、约束等和数据分开迁移,在迁移表数据时设置较短的“网络读取超时”,而迁移 其它对象可以设置较长的值甚至关闭(值设为 0 或者去掉该参数)。 (2)尽量保证迁移程序和源库之间的连接可靠,这样能取得较稳定的数据,而在往目标库写的时候可以做多次 的失败尝试。以下是常见数据库的设置示例:(kdts-xxx.yml 中的源/目标数据库连接信息中 url 参数) 1、KingbaseES 单位为秒,示例:url: jdbc:kingbase8://localhost:54321/db1?socketTimeout=900 82 第7章 注意事项 2、Oracle 单位为秒,不支持 url 传入,需配置 kdts-xxx.yml 中的 net-read-timeout(网络读取超时) 3、MySQL 单位为毫秒,示例:url=jdbc:mysql://localhost:3306/db1?socketTimeout=900000 4、SQLServer 单位为秒,示例:url=jdbc:sqlserver://localhost:1433;DatabaseName=db1;socketTimeout=900 5、PostgreSQL 单位为秒,示例:url=jdbc:postgresql://localhost:5432/db1?socketTimeout=900 6、DM(达梦)单位为毫秒,示例:url=jdbc:dm://192.168.1.116:5236?socketTimeout=900000 7.2.7 无日志表 无日志表不记录日志,可大大提高数据写入的效率,在需要时可设置以无日志表的方式进行迁移,相关参数如 下: # 连接字符串,其中“ApplicationName=kingbase_transfer”指示数据库服务器使用无日志表 url: jdbc:kingbase8://1.2.3.4:54321/test?ApplicationName=kingbase_transfer #V8R3 和 V9 使用 # 是否使用无日志表 unlogged-table: true # 是否将无日志表重改为有日志表 relogged-table: true # 是否执行检查点 issue-checkpoint: true 7.2.8 国际化 如果程序中的文字与预期的不一致,可在启动脚本中设置国际化参数: 1. kdts-plus/bin/startup.sh(删除行首的 # 可去掉注释) #JAVA_OPT="${JAVA_OPT} -Duser.country=CN -Duser.language=zh" 2. kdts-plus/bin/startup.bat(删除行首的 rem 可去掉注释) rem set "JAVA_OPT=%JAVA_OPT% -Duser.country=CN -Duser.language=zh" 83 第8章 8 第 章 部署常见问题 部署常见问题 • 加载数据库驱动失败 – 错误特征: ERROR11028 --- [nio-8080-exec-3] com.kingbase.kdts.b.b : 加载数据库驱动 ORACLE 11g oracle.jdbc.OracleDriver 失败! java.lang.reflect.InaccessibleObjectException: Unable java.net.URLClassLoader.addURL(java.net.URL) accessible: to make protected void module java.base does not ” opens java.net” to unnamed module @6e0dec4a – 造成原因: 从错误的提示可以分析是 java.base 包没有开放到任意模块下,而模块又通过反射使用了一些包内 的属性值,这样的操作是不被允许的。这种情况一般在使用高于 Java 8 版本的 JDK 时会出现, 大多情况是 OpenJDK 出现,原因是在 Java 9 及之后的版本对源码进行了模块化重构,public 不 再意味着完全开放,而是使用了 export 的机制来更细粒度地控制可见性。 – 解决方案: 添加 JVM 参数:--add-opens java.base/java.net=ALL-UNNAMED 84 版权声明 版权声明 北京人大金仓信息技术股份有限公司(简称:人大金仓)版权所有,并保留对本手册及本声明的一切权利。 未得到人大金仓的书面许可,任何人不得以任何方式或形式对本手册内的任何部分进行复制、摘录、备份、修 改、传播、翻译成其他语言、将其全部或部分用于商业用途。 免责声明 本手册内容依据现有信息制作,由于产品版本升级或其他原因,其内容有可能变更。人大金仓保留在没有任何通 知或者提示的情况下对手册内容进行修改的权利。 本手册仅作为使用指导,人大金仓在编写本手册时已尽力保证其内容准确可靠,但并不确保手册内容完全没有错 误或遗漏,本手册中的所有信息也不构成任何明示或暗示的担保。 技术支持 • 人大金仓官方网站:http://www.kingbase.com.cn/ • 人大金仓文档中心:http://help.kingbase.com.cn/ • 全国服务热线:400-601-1188 • 人大金仓技术支持与反馈信箱:support@kingbase.com.cn 85 服务周期承诺 服务周期承诺 由于市场需求在不断变化,技术创新和发展的进程不断加剧,产品的版本更迭不可避免。人大金仓对于产品版本 生命周期的有效管理,有助于您提前规划项目,更好地从产品服务终止上过渡。 表 1: KingbaseES 产品生命周期里程碑 关键里程碑点 定义 产品发布日期 产品正式发布版本,即 GA(general availability)版本的发布日期。 停止销售日期 正式停止销售的日期,版本停止接受订单日。该日之后,产品将不再销售。 停止功能升级日期 在该日期之后,不再提供新特性和新硬件支持。但依旧提供错误修复、安全修复、功 能维护等服务。 停止功能维护日期 在该日期之后,不再维护功能,修复问题。但依旧提供安全修复等服务 停止安全维护日期 在该日期之后,不再发布补丁版本修复中高风险漏洞,仅提供有限的支持。 产品服务终止日期 停止提供产品服务和支持的日期。包括软件维护版本,缺陷修复,以及针对该产品的 所有服务支持(包括服务热线和远程/现场支持)。 服务周期策略 金仓数据库管理系统 KingbaseES 产品确保以下的服务周期: 1)产品自发布之日起至产品停止功能升级(包含新特性、新硬件支持)之日不少于 5 年。 2)产品停止功能升级之日起至产品停止功能维护(主要包括问题修复)之日不少于 4 年。 3)产品功能维护停止之日起至产品停止安全维护(包括中高风险漏洞修复)之日不少于 2 年。 服务终止策略 金仓数据库管理系统 KingbaseES 产品确保在销售后,至少提供 6 年的服务支持。 注意: 人大金仓将会综合各方因素来确定产品服务终止日期。并将在实际产品服务终止日期之前至少 90 天,通过公 86 服务周期承诺 开方式宣布产品服务终止日期。 87

相关文章