实践KDTS-WEB从mysql迁移到kingbasev9

数据库国产化替代数据迁移是一个复杂且关键的过程。这涉及到将原有数据库中的数据准确、完整地迁移到新的国产数据库中,同时确保数据的完整性和一致性。人大金仓提供了强大的数据库迁移工具(KDTS)对同构、异构数据库数据迁移;

数据库数据迁移平台(KDTS: Kingbase Data Transformation Service)是为用户提供 Oracle、Mysql、SQLServer、Gbase、PostgreSQL、DM、KingbaseES 数据库数据迁移到 KingbaseES数据库的数据迁移工具。

一、基础介绍:

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

2、KDTS版本不同差异

KDTS分两个版本一个BS版,一个SHELL版,喜闻乐道的是,两个工具都随数据库打包发布,不需要再单独部署

迁移工具BS版随数据库一起打包发布,安装完数据库后,在`${KES_HOME}/ClientTools/guitools/KDts/KDTS-WEB`目录下

迁移工具SHELL版随数据库一起打包发布,安装完数据库后,在`${KES_HOME}/ClientTools/guitools/KDts/KDTS-CLI`目录下

二、起动KDTS

进入KDTS-WEB目录

cd $KES_HOME/ClientTools/guitools/KDts/KDTS-WEB

执行启动

这里吐槽一下,建议启动完后最下面打印一下登录地址和端口

[kingbase@localhost ~]$ cd $KES_HOME/ClientTools/guitools/KDts/KDTS-WEB
[kingbase@localhost KDTS-WEB]$ cd bin/
[kingbase@localhost bin]$ ls
shutdown.bat shutdown.sh startup.bat startup.sh
[kingbase@localhost bin]$ ./startup.sh
------------------------------------------------------------------------
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
------------------------------------------------------------------------
================================================ 2024-12-17_10-52-11 ================================================
kdts-app-console v1.0.3.258
jar name: kdts-app-console-1.0.3.258.jar
base path: /Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB
bin path: /Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB/bin
config path: /Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB/conf
log path: /Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB/logs/kdts-app-console_2024-12-17_10-52-11.log
java path: /Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB/jdk
JAVA_OPT: -server -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Dcache_enable=true -Dconfig.path=/Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB/conf -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 --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 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./logs/ -Xms8G -Xmx8G -XX:+UseG1GC -XX:G1ReservePercent=20 -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:G1HeapRegionSize=8M -XX:+SegmentedCodeCache -XX:+PrintCommandLineFlags -XX:+ExplicitGCInvokesConcurrent
FreeMemory=13795M JavaMemory=8G
cpu_arch=x86_64
startup command: /Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB/jdk/bin/java -server -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Dcache_enable=true -Dconfig.path=/Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB/conf -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 --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 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./logs/ -Xms8G -Xmx8G -XX:+UseG1GC -XX:G1ReservePercent=20 -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:G1HeapRegionSize=8M -XX:+SegmentedCodeCache -XX:+PrintCommandLineFlags -XX:+ExplicitGCInvokesConcurrent -jar /Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB/lib/kdts-app-console-1.0.3.258.jar > /Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB/logs/kdts-app-console_2024-12-17_10-52-11.log 2>&1 &
application pid: 129778

See "../logs/kdts-app-console_2024-12-17_10-52-11.log" or use the command-line "tail -f ../logs/kdts-app-console_2024-12-17_10-52-11.log" for more detail.
[kingbase@localhost bin]$ tail -f ../logs/kdts-app-console_2024-12-17_10-52-11.log
-XX:+ExplicitGCInvokesConcurrent -XX:G1ConcRefinementThreads=8 -XX:G1HeapRegionSize=8388608 -XX:G1ReservePercent=20 -XX:GCDrainStackTargetSize=64 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./logs/ -XX:InitialHeapSize=8589934592 -XX:MaxHeapSize=8589934592 -XX:+PrintCommandLineFlags -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseG1GC
10:52:21.356 [main] INFO com.kingbase.kdts.DataMigrationApplication - ForkJoinPool.common.parallelism: 7
10:52:21.533 [main] INFO com.kingbase.kdts.DataMigrationApplication - PlatformClassLoader: jdk.internal.loader.ClassLoaders$PlatformClassLoader
10:52:21.533 [main] INFO com.kingbase.kdts.DataMigrationApplication - SystemClassLoader: jdk.internal.loader.ClassLoaders$AppClassLoader
10:52:21.533 [main] INFO com.kingbase.kdts.DataMigrationApplication - ContextClassLoader: org.springframework.boot.loader.LaunchedURLClassLoader
2024-12-17 10:52:34.642 INFO 129778 --- [ main] c.k.kdts.DataMigrationApplication : Starting DataMigrationApplication v1.0.3.258 using Java 11.0.2 on localhost.localdomain with PID 129778 (/Kingbase/ES/V9/KESRealPro/V009R001C001B0030/ClientTools/guitools/KDts/KDTS-WEB/lib/kdts-app-console-1.0.3.258.jar started by kingbase in /Kingbase/ES/V9/KESRealPro/V009R001C001B0030/ClientTools/guitools/KDts/KDTS-WEB)
2024-12-17 10:52:34.644 INFO 129778 --- [ main] c.k.kdts.DataMigrationApplication : No active profile set, falling back to 1 default profile: "default"

查看进程

[kingbase@localhost bin]$ ps -ef|grep kdts
kingbase 129778 1 99 10:52 pts/0 00:01:05 /Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB/jdk/bin/java -server -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Dcache_enable=true -Dconfig.path=/Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB/conf -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 --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 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./logs/ -Xms8G -Xmx8G -XX:+UseG1GC -XX:G1ReservePercent=20 -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:G1HeapRegionSize=8M -XX:+SegmentedCodeCache -XX:+PrintCommandLineFlags -XX:+ExplicitGCInvokesConcurrent -jar /Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB/lib/kdts-app-console-1.0.3.258.jar
kingbase 129931 126746 0 10:52 pts/0 00:00:00 grep --color=auto kdts

验证登录

访问地址: http://localhost:54523/  《远程登录修改成自己的ip》

默认用户名及密码:kingbase / kingbase

三、实施迁移

1、创建数据源

添加源数据库

点击新建,然后输入源数据库信息,点击测试,测试通过后点击保存

添加目标数据库

同源端体检基本一致

2、创建迁移任务

选择新建迁移任务,选择源与目标的数据库连接

选择要迁移的数据库,和目标属主,下一步

选中要迁移的数据库,可以选择迁移范围,还可以字段类型过滤等,结合自己情况可以按需配置

对源库和目标库进行配置

特殊需要提一下的,还可以数据类型映射,不同数据库之间的字段类型长度可能不同,这个就很方便的自定义自己的数据类型映射了

点击保存并启动后就开始了迁移任务,可以再迁移任务里看到迁移任务,点击详情查看任务的详细信息

迁移结果

四、总结

KDTS作为人大金仓数据库管理系统(KingbaseES)的配套工具,为数据库迁移提供了高效、稳定的解决方案。在实际操作中,我KDTS能够顺利迁移表结构和数据,生产上用的oracle迁移,虽然部分游标和自定义存储过程可能需要手动调整,提供了BS版和SHELL版两种使用方式,满足不同用户的需求。BS版通过浏览器以可视化界面方式设置配置项,使得迁移过程更加直观易懂;而SHELL版则通过手动修改配置文件的方式设置配置项,为高级用户提供了更多的灵活性。这种设计使得KDTS既适合初学者,也适合有经验的数据库管理员‌,相信它能够为用户带来更多的便利和价值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/943935.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多旋翼无人机理论 | 四旋翼动力学数学模型与Matlab仿真

多旋翼无人机理论 | 四旋翼动力学数学模型与Matlab仿真 力的来源数学模型数学模型总结Matlab 仿真 力的来源 无人机的动力系统:电调-电机-螺旋桨 。 给人最直观的感受就是 电机带动螺旋桨转,产生升力。 螺旋桨旋转产生升力的原因,在很多年…

为什么要在PHY芯片和RJ45网口中间加网络变压器

在PHY芯片和RJ45网口之间加入网络变压器是出于以下几个重要的考虑: 1. 电气隔离:网络变压器提供了电气隔离功能,有效阻断了PHY芯片与RJ45之间直流分量的直接连接。这样可以防止可能的电源冲突,降低系统故障的风险,并保…

Windows 安装 Jenkins 教程

Jenkins 简介 Jenkins 是一个开源的自动化服务器,主要用于持续集成(CI)和持续交付(CD)。它可以自动化软件开发生命周期中的许多任务,如构建、测试、部署和发布。Jenkins 最初是由 Kohsuke Kawaguchi 在 20…

Docker中的MYSQL导入本地SQL语句

在本地mysql安装的bin目录下打开cmd窗口并执行以下命令导出sql文件 mysqldump -uroot -p mysql >schema.sql mysql -数据库 schema.sql -导出的SQL语句文件名 使用xftp上传文件到centos7中的某个文件夹中 使用docker cp schema.sql mysql:.(有一个点)上传到mys…

javaweb 04 springmvc

0.1 在上一次的课程中,我们开发了springbootweb的入门程序。 基于SpringBoot的方式开发一个web应用,浏览器发起请求 /hello 后 ,给浏览器返回字符串 “Hello World ~”。 其实呢,是我们在浏览器发起请求,请求了我们…

LinkedList类 (链表)

目录 一. LinkedList 基本介绍 二. LinkedList 中的法及其应用 1. 添加元素 (1) add() (2) addAll() (3) addFirst() (4) addLast() 2. 删除元素 (1) remove() (2) removeAll() (3) removeFirst() (4) removeLast() 3. 遍历元素 (1) for 循环遍历 (2) for - each …

Python毕业设计选题:基于Python的社区爱心养老管理系统设计与实现_django

开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 身体健康界面 公共书籍界面 借阅信息界面 归还…

第T4周:TensorFlow实现猴痘识别(Tensorboard的使用)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标: 1、学习tensorboard的使用 具体实现: (一)环境: 语言环境:Python 3.10 编 译 器…

Gitlab17.7+Jenkins2.4.91实现Fastapi/Django项目持续发布版本详细操作(亲测可用)

一、gitlab设置: 1、进入gitlab选择主页在左侧菜单的下面点击管理员按钮。 2、选择左侧菜单的设置,选择网络,在右侧选择出站请求后选择允许来自webhooks和集成对本地网络的请求 3、webhook设置 进入你自己的项目选择左侧菜单的设置&#xff…

嵌入式硬件杂谈(七)IGBT MOS管 三极管应用场景与区别

引言:在现代嵌入式硬件设计中,开关元件作为电路中的重要组成部分,起着至关重要的作用。三种主要的开关元件——IGBT(绝缘栅双极型晶体管)、MOSFET(金属氧化物半导体场效应晶体管)和三极管&#…

Kafka数据迁移全解析:同集群和跨集群

文章目录 一、同集群迁移二、跨集群迁移 Kafka两种迁移场景,分别是同集群数据迁移、跨集群数据迁移。 一、同集群迁移 应用场景: broker 迁移 主要使用的场景是broker 上线,下线,或者扩容等.基于同一套zookeeper的操作。 实践: 将需要新添加…

我的秋招总结

我的秋招总结 个人背景 双非本,985硕,科班 准备情况 以求职为目的学习Java的时间大概一年。 八股,一开始主要是看B站黑马的八股文课程,背JavaGuide和小林coding还有面试鸭。 算法,250,刷了3遍左右 项目&…

构建全志 T113 Tina SDK

1、环境配置: 准备一个 Ubuntu 系统,可以是 WSL,虚拟机等,建议版本是 20.04。 1.1、安装必要的软件 进入系统后,输入下方命令安装需要的工具 : sudo apt update -y sudo apt full-upgrade -y sudo apt i…

Datawhale-AI冬令营二期

目录 一、番茄时钟(1)输入Prompt(2)创建 HTML 文件解析1:HTML结构解析2:计时器内容解析3:按钮区域解析4:脚本引用 (3)使用JavaScript实现时钟功能解析1&#…

初探C语言|C语言中有哪些操作符呢?

文章目录 前言算术操作符示例 移位操作符原码,反码 与补码正数负数计算 左移<<右移>> 位操作符例题 赋值操作符单目操作符sizeof 操作符 关系操作符逻辑操作符短路现象 条件操作符逗号表达式下标引用、函数调用和结构成员表达式求值算术转换操作符属性 欢迎讨论: 如…

学习记录:配置mybatisplus的分页查询插件,mybatis-plus-jsqlparser 依赖

来源官方文档:分页插件 | MyBatis-Plus 于 v3.5.9 起&#xff0c;PaginationInnerInterceptor 已分离出来。如需使用&#xff0c;则需单独引入 mybatis-plus-jsqlparser 依赖 配置Maven bom 在我们的配置文件&#xff0c;pom.xml中 <properties> 这个标签下面&#xf…

电子应用设计方案74:智能家庭对讲系统设计

智能家庭对讲系统设计 一、引言 智能家庭对讲系统作为智能家居的重要组成部分&#xff0c;为家庭成员之间以及与访客的沟通提供了便捷、高效的方式。本设计方案旨在打造一个功能强大、稳定可靠、操作简便且具有良好扩展性的智能家庭对讲系统。 二、系统概述 1. 系统目标 - 实…

数据库高安全—openGauss安全整体架构安全认证

openGauss作为新一代自治安全数据库&#xff0c;提供了丰富的数据库基础安全能力&#xff0c;并逐步完善各类高阶安全能力。这些安全能力涵盖了访问登录认证、用户权限管理、审计与追溯及数据安全隐私保护等。本章节将围绕openGauss安全机制进行源码解读&#xff0c;以帮助数据…

埃斯顿机器人程序模版案例,欢迎指点

埃斯顿机器人程序模版案例&#xff0c;欢迎指点

python监控数据处理应用服务Socket心跳解决方案

1. 概述 从网页、手机App上抓取数据应用服务&#xff0c;涉及到多个系统集成协同工作&#xff0c;依赖工具较多。例如&#xff0c;使用Frida进行代码注入和动态分析&#xff0c;以实现对网络通信的监控和数据捕获。在这样的集成环境中&#xff0c;手机模拟器、手机中应用、消息…