KingbaseES数据库:KDTS迁移工具使用指南_kingbase迁移工具
KingbaseES数据库:KDTS迁移工具使用指南
KingbaseES数据库:KDTS迁移工具使用指南
,详细介绍了金仓数据库迁移工具 KDTS 的使用方法。该工具支持将 Oracle、MySQL 等多种数据库迁移至 KingbaseES,有 BS 和 SHELL 两个版本,前者通过浏览器可视化操作,后者需修改配置文件。指南涵盖系统部署的准备工作与两种版本的部署步骤,还说明了 BS 版的数据源管理、迁移任务管理等功能,SHELL 版的配置、运行日志等内容,以及 GIS 迁移步骤和注意事项,旨在帮助用户高效完成数据迁移。
前言
中电科金仓(北京)科技股份有限公司(以下简称“电科金仓”)成立于1999年,是成立最早的拥有自主知识产权的国产数据库企业,也是中国电子科技集团(CETC)成员企业。电科金仓以“提供卓越的数据库产品助力企业级应用高质量发展”为使命,致力于“成为世界卓越的数据库产品与服务提供商”。
电科金仓自成立起始终坚持自主创新,专注数据库领域二十余载,具备出色的数据库产品研发及服务能力,核心产品金仓数据库管理系统KingbaseES(简称“KES”)是面向全行业、全客户关键应用的企业级大型通用数据库。KES产品V9版本已通过国家权威机构认证,产品核心源代码自主率达到100%。2018年,电科金仓申报的“数据库管理系统核心技术的创新与金仓数据库产业化”项目荣获国家科学技术进步二等奖。金仓数据库管理系统KES于2022年入选国务院国资委发布的十项国有企业数字技术典型成果,彰显数据库领域国家队硬实力。继2023年金仓数据库管理系统V8通过第一批《安全可靠测评》后,2024年金仓数据库管理系统V9、金仓分布式HTAP数据库软件集群V3再度入围,至此电科金仓共计2款产品3个版本通过《安全可靠测评》*。
🥇 点击进入金仓数据库专栏,本专栏聚焦金仓数据库(KingbaseES)这一国产企业级融合数据库,为开发者及技术决策者提供从基础操作到架构设计的系统化学习路径。从多语法兼容(Oracle/MySQL/PostgreSQL)、多模数据存储(关系 / 文档 / 时序 / GIS)等功能展开讲解!
🌞 正文开始:
一、KDTS工具简介
金仓数据库迁移工具(KDTS: Kingbase Data Transformation Service)是一款专为数据库迁移设计的专业工具,支持将多种主流数据库迁移至金仓数据库管理系统(KingbaseES)。无论是同构数据库还是异构数据库迁移,KDTS都能提供高效、稳定的解决方案。
1.1 支持的源端数据库及版本
KDTS支持多种主流数据库作为源端,具体版本如下:
1.2 支持的迁移对象
不同源数据库支持的迁移对象略有差异,主要包括:
- 表(可指定包含或排除特定表)
- 视图
- 序列
- 函数
- 存储过程
- 程序包(Oracle、DM、KingbaseES)
- 同义词
- 触发器
- 用户自定义类型
- 注释
1.3 目标数据库版本
KDTS支持的目标数据库为KingbaseES,具体版本包括:V7、V8R3、V8R6、V8R6C7、V9。
1.4 产品形态
KDTS提供两种产品形态,以适应不同的使用场景:
- BS版:通过浏览器以可视化界面方式设置配置项,完成数据迁移,操作简便直观
- SHELL版:通过手动修改配置文件的方式设置配置项,适用于堡垒机环境、远程终端访问或未安装图形化界面的系统
二、系统部署
2.1 准备工作
在部署KDTS之前,需确保系统满足以下要求:
- CPU:根据CPU架构类型(x64、AArch64等)选择相匹配的JDK
- 内存:启动脚本会自动根据可用内存分配JVM内存(为可用内存的三分之二),可手动调整
- 磁盘:需预留至少500MB空间,用于存储日志、脚本、报告等,多次迁移后需清理过时内容
2.2 BS版部署
2.2.1 迁移程序说明
BS版随数据库一起打包发布,安装完成后,程序位于${KES_HOME}/ClientTools/guitools/KDts/KDTS-WEB
目录下,主要包含以下目录:
- bin:启动脚本
- conf:配置文件
- drivers:数据库连接驱动
- jdk:jdk目录
- lib:程序包
- web:页面文件
2.2.2 JDK要求
需要JDK11及以上版本,可从OpenJDK网站下载与操作系统和CPU架构相匹配的版本,解压后使用。注意应使用解压版本的JDK,且不要设置到系统环境变量中。
2.2.3 启动配置
-
配置启动脚本
- Linux平台(startup.sh):设置JAVA_PATH为实际JDK安装目录
JAVA_PATH=${BASE_PATH}\"/jdk\"
- Windows平台(startup.bat):
set \"JAVA_PATH=%BASE_PATH%/jdk\"
- 如需手动调整Java虚拟机内存,可修改JAVA_MEMORY参数
-
执行启动脚本
- Linux平台:直接运行startup.sh,程序在后台运行,可通过tail命令查看日志
- Windows平台:运行startup.bat
2.2.4 访问方式
- 使用谷歌浏览器访问地址:http://localhost:54523/
- 默认用户名及密码:kingbase / kingbase
- 会话保存时间为一天
2.3 SHELL版部署
2.3.1 迁移程序说明
SHELL版位于${KES_HOME}/ClientTools/guitools/KDts/KDTS-CLI
目录下,包含以下目录:
- bin:启动脚本
- conf:配置文件(含manual_script、mapping_rule等子目录)
- drivers:数据库连接驱动
- jdk:jdk目录
- lib:程序包
- logs:运行日志
- results:结果报告
- version:版本查看脚本
2.3.2 JDK要求
同BS版,需要JDK11及以上版本。
2.3.3 启动配置
-
配置启动脚本
- 类似BS版,设置JAVA_PATH和Java虚拟机内存参数
-
执行启动脚本
- Linux平台:运行startup.sh,程序后台运行
- Windows平台:运行startup.bat
三、BS版使用说明
3.1 概览
BS版以图表形式展示数据库连接总数、任务安排总数、作业执行总数及作业数与任务数在指定时间内的每日执行次数,方便用户快速了解系统使用情况。
3.2 数据源管理
数据源管理包括源数据库和目标数据库的管理,支持添加、编辑、删除和测试连接等操作。
3.2.1 源数据库管理
- 列表:显示所有数据源连接详细信息,包括连接名称、数据库类型、版本、服务器地址等
- 查询:支持通过连接名称关键字进行模糊搜索
- 新建:填写连接信息,包括:
- 连接名称(自定义)
- 数据库类型(支持Oracle、MySQL、SQLServer等)
- 数据库版本
- 服务器地址、端口、用户名、密码
- 数据库名称
- 驱动和URL(自动生成)
- 连接参数
- 测试:测试数据源是否连接成功
- 编辑:修改已有数据源连接信息
- 删除:支持单个删除和批量删除
3.2.2 目标数据库管理
目标数据库仅支持KingbaseES,管理操作与源数据库类似,包括列表、查询、新建、测试、编辑和删除。
3.3 迁移任务管理
迁移任务管理可以操作和查看迁移的全过程,包括迁移任务的创建、启动、重启、详情查看等。
3.3.1 迁移任务列表
显示所有迁移任务的详细信息,包括任务名称、源库、目标库、状态、启动时间、结束时间和操作。操作包括启动、重启、详情、编辑、删除和二次迁移。
3.3.2 新建迁移任务
新建迁移任务分为四步:
- 选择数据源:填写任务名称,选择源数据库和目标数据库
- 选择模式:根据需求选择对应模式,可通过查询框检索模式
- 选择迁移对象:通过已选模式选择需要迁移的数据表,支持包含指定表或排除指定表
- 配置参数:包括表默认处理方式、表排序依据、表数据读取和写入规则、大表拆分阈值、非对象设置等
3.3.3 任务状态管理
- 处理中:显示正在进行的迁移任务,可停止任务
- 迁移完成:显示已成功完成的迁移任务
- 迁移失败:显示迁移失败的任务,可查看详情找失败原因
- 未启动:显示新建但未启动的任务
3.4 迁移日志
迁移日志包括系统日志、Error日志和Info日志,分别记录不同级别和类型的日志信息,支持自动滚动查看。
3.5 迁移结果
展示历史迁移任务执行的每次记录,包括任务执行批次、迁移对象、总数、成功数、失败数、略过数和操作,可查看失败任务的错误日志。
3.6 线程池配置
配置全局线程池信息,包括线程池名称、JVM内存大小、各类线程池配置等。全局线程池配置为所有迁移任务共享,迁移任务也可采用独立线程池配置。
3.7 个人中心
展示账号信息(账号、姓名、邮箱等),并支持修改登录密码。
四、SHELL版使用说明
4.1 配置
SHELL版通过修改配置文件进行设置,主要配置包括源库类型、运行模式、源数据库和目标数据库信息等。
4.1.1 源库类型配置
进入kdts-plus/conf
目录,打开application.yml
文件,设置active
的值为当前激活的源数据库类型,如:
active: oracle
4.1.2 运行模式配置
在application.yml
文件中设置运行模式,支持数据迁移和数据对比模式:
#running-mode: DataCompare # 数据比较,注释掉即为数据迁移模式
4.1.3 源数据库配置
根据设置的源库类型,打开对应的配置文件(如kdts-oracle.yml
),配置源库连接信息,包括:
- 数据库类型和版本
- 连接字符串URL
- 驱动类名
- 用户名和密码
- 包含或排除的模式
- 大表拆分设置
- 表过滤设置
- 包含或排除的对象
- 要迁移的对象类别
- kdms转换设置
- 杂项配置
4.1.4 目标数据库配置
在对应的配置文件中配置目标库连接信息,包括:
- 数据库类型(KINGBASE)和版本
- 连接字符串URL
- 驱动类名
- 用户名和密码
- 目标模式
- 杂项配置(批量提交记录数、是否删除目标库已存在对象等)
4.1.5 线程池配置
编辑kdts-plus/conf/kb-thread-config.xml
文件,配置线程池信息,包括核心线程数、最大线程数、线程空闲存活时间和工作队列大小等。
4.2 运行日志
迁移程序在kdts-plus/logs
目录下按迁移日期和时间创建日志目录,包含error.log、info.log、warn.log三个日志文件以及不同模式名的子目录。
4.3 迁移报告
迁移程序在kdts-plus/result
目录下按迁移日期和时间创建报告目录,包含index.html以及不同模式名的子目录,每个子目录下存放该模式的详细报告,可通过浏览器打开index.html查看。
4.4 KingbaseES优化配置参数
提供了KingbaseES的优化配置参数,如max_connections、shared_buffers、work_mem等,可根据实际情况进行调整。
五、GIS迁移步骤说明
KDTS支持主流GIS平台(如ArcGIS/GeoScene)的数据迁移,目标支持的源库有Oracle与Postgresql。
5.1 迁移前准备
主要是Kingbase数据库的准备工作,包括安装数据库、拷贝相关包、初始化数据库、创建用户和模式、安装扩展等。
5.2 KDTS配置迁移任务
以源库为Oracle 11g、SHELL版本为例:
- 编辑
conf/application.yml
文件,设置active: oracle
- 编辑
conf/kdts-oracle.yml
文件,配置源库和目标库信息 - 编辑数据类型映射文件,将Oracle的numeric(38, 0)类型映射为Kingbase的int类型
5.3 执行迁移任务
配置完成后,执行./bin/startup.sh
命令运行迁移任务。
5.4 迁移后注册数据
GIS数据迁移后必须进行注册,步骤如下:
- 将迁移报告目录下的
acrpyRegisterWithGeodatabase.py
文件拷贝到ArcGIS所在机器 - 查看ArcMap的kingbase数据库连接信息并复制
- 编辑
acrpyRegisterWithGeodatabase.py
文件,粘贴数据库连接信息 - 执行脚本,将表注册到ArcGIS地理信息库
- 使用ArcMap软件验证图层信息
5.5 常见问题
- 执行注册脚本时报错\"ERROR 001050\":检查
arcpy.env.workspace
值是否与数据库连接信息一致 - 报错\"ERROR 001400\":GIS数据迁移到了非sde模式,需重新迁移至sde模式
- 报错\"ERROR 999999\":可能是未指定objectid为唯一键、objectid字段类型非int、未启动地理信息数据库等原因
六、注意事项
6.1 BS版注意事项
- 源端数据库类型为MySQL5.1版本时,数据库版本选择5.5
- KingbaseES数据库采用Unix Domain Socket方式连接时,需确保数据库服务与迁移工具在同一台Linux服务器上
6.2 SHELL版注意事项
- 迁移顺序:按序列→表结构、数据、主键等→外键约束→检查约束、视图等→同义词→触发器→注释的顺序迁移
- 大表拆分:仅针对Oracle和达梦数据库,其它数据库需手动拆分
- 并行计算:SQLServer 2016及以上版本可设置Max Degree of Parallellism;达梦数据库可开启并行查询
- 集群异步模式:目标库为集群模式时可将主从库同步模式调整为异步
- 大对象数据迁移:需评估大对象数据大小,控制JVM内存和并发度
- 网络抖动:可设置合适的\"网络读取超时\"参数避免连接假死
- 无日志表:可设置以无日志表方式迁移提高写入效率
- 国际化:可在启动脚本中设置国际化参数调整程序文字显示
七、总结
金仓数据库迁移工具KDTS为用户提供了强大的数据库迁移解决方案,支持多种源数据库迁移至KingbaseES。无论是通过直观的BS版界面操作,还是通过灵活的SHELL版配置,都能满足不同场景下的迁移需求。本文详细介绍了KDTS的部署和使用方法,希望能帮助用户快速掌握工具的使用,顺利完成数据库迁移工作。
联系博主
xcLeigh 博主,全栈领域优质创作者,博客专家,目前,活跃在CSDN、微信公众号、小红书、知乎、掘金、快手、思否、微博、51CTO、B站、腾讯云开发者社区、阿里云开发者社区等平台,全网拥有几十万的粉丝,全网统一IP为 xcLeigh。希望通过我的分享,让大家能在喜悦的情况下收获到有用的知识。主要分享编程、开发工具、算法、技术学习心得等内容。很多读者评价他的文章简洁易懂,尤其对于一些复杂的技术话题,他能通过通俗的语言来解释,帮助初学者更好地理解。博客通常也会涉及一些实践经验,项目分享以及解决实际开发中遇到的问题。如果你是开发领域的初学者,或者在学习一些新的编程语言或框架,关注他的文章对你有很大帮助。
亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。
愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。
至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。
💞 关注博主 🌀 带你实现畅游前后端!
🥇 从零到一学习Python 🌀 带你玩转Python技术流!
🏆 人工智能学习合集 🌀 搭配实例教程与实战案例,帮你构建完整 AI 知识体系
💦 注:本文撰写于CSDN平台,作者:xcLeigh(所有权归作者所有) ,https://xcleigh.blog.csdn.net/,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。
📣 亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(或者关注下方公众号,看见后第一时间回复,还有海量编程资料等你来领!),博主看见后一定及时给您答复 💌💌💌