实践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既适合初学者,也适合有经验的数据库管理员,相信它能够为用户带来更多的便利和价值。
相关文章:

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

WebGIS实战开源项目:智慧机场三维可视化(学习笔记)
From:新中地 1.简介 智慧机场解决方案,基于数字化大平台,融合AI、大数据、IoT、视频云、云计算等技术,围绕机场“运控、安防、服务”三大业务领域,构建“出行一张脸”及“运行一张图”两大场景化解决方案。 https://…...

2025年PMP项目管理考试时间一览表
PMP认证是全球项目管理领域公认的权威认证,它不仅能证明你在项目管理方面的专业水平,还能大大提升你的职场竞争力! 随着企业对项目管理人才的需求不断增长,获得PMP认证将为你带来更多的职业机会和高薪职位。 为了帮助大家合理安排…...

20241224在ubuntu20.04.6下的终端分屏软件terminator的安装以及使用
20241224在ubuntu20.04.6下的终端分屏软件terminator的安装以及使用 2024/12/24 18:35 百度:终端分屏软件 https://blog.csdn.net/weixin_49693003/article/details/143683326 可以实现终端分屏的工具:terminator 安装: sudo apt-get insta…...

打造高效租赁小程序让交易更便捷
内容概要 在如今节奏飞快的商业世界里,租赁小程序如同一只聪明的小狐狸,迅速突围而出,成为商家与消费者之间的桥梁。它不仅简化了交易流程,还在某种程度上将传统租赁模式带入了互联网时代。越来越多的企业意识到,这种…...

光谱相机在农业中的具体应用案例
作物生长监测与产量预测 美国爱荷华州玉米种植园:农场主使用无人机搭载高光谱相机,定期对玉米田进行拍摄。通过分析光谱数据,获取玉米的叶面积指数、叶绿素含量等生长参数。在玉米生长关键期,依据这些参数及时调整施肥和灌溉方案…...

Linux RTC 驱动框架
目录 一、实时时钟(RTC)介绍1.1 概述1.2 功能1.3 应用场景1.4 工作原理1.5 对外接口1.6 常见 RTC 芯片1.7 在 Linux 系统中的应用1.8 注意事项 二、Linux 内核 RTC 驱动框架2.1 相关源码文件介绍2.2 核心数据结构2.2.1 struct rtc_device2.2.2 rtc_class…...

msyql数据库读写分离搭建
一.mysql读写分离:缓解主服务器的压力1.概念:主服务器写数据,从服务器读数据2.实现方法:客户端分离: 开发手动分离地址服务端分离: 数据库与应用之间加一个中间件,分离读写请求mysql-proxy,mysql-route,maxscaleamoeba,cobar,mycat2atlas,kingshard,vitees3.mycat配置方法:冷配…...

WWW23-多行为级联|级联图卷积网络的多行为推荐
论文:https://arxiv.org/abs/2303.15720 代码:https://github.com/SS-00-SS/MBCGCN 这篇论文MB-CGCN和上一篇CRGCN是同一个团队的,都是级联的方式。一个用了残差,一个用了特征转换,文章最后有discussion讨论了两者的不…...

【EthIf-14】EthIfGeneral容器配置-02
1.实际EthIfGeneral的配置实例 关闭DET接口开启发送确认中断开启接收中断主周期接收timeout主周期 2. 代码实例参考 阅读此部分代码,搞清楚代码分为几个section,大概瞄一眼就好,不用深究其含义,只需有一个宏观的层次结构的映像即可。 //Appl/GenData/EthIf_Cfg.h #...

近实时”(NRT)搜索、倒排索引
近实时(Near Real-Time, NRT)搜索 近实时(NRT)搜索是 Elasticsearch 的核心特性之一,指的是数据在被写入到系统后,可以几乎立即被搜索和查询到。虽然它不像传统数据库那样完全实时,但它的延迟通…...

Ubuntu20.04安装openMVS<成功>.colmap<成功>和openMVG<失败(已成功)>
一、安装openMVS 参考官方文档 sudo apt-get -y install git mercurial cmake libpng-dev libjpeg-dev libtiff-dev libglu1-mesa-dev eigen git clone https://gitlab.com/libeigen/eigen --branch 3.4 mkdir eigen_build cd eigen_build &&\cmake . ../eigen -…...

从测试服务器手动热部署到生产环境的实现
为了实现从测试服务器(192.168.0.255)手动热部署到生产环境(172.168.20.100),可以采用多种方法。以下是详细的步骤和最佳实践,帮助你实现这一目标。 1. 准备生产环境 确保生产环境上的 Docker 和 Docker …...

【c++高阶DS】图
🔥个人主页:Quitecoder 🔥专栏:c笔记仓 目录 01.并查集02.图的介绍03.图的存储结构03.1.邻接矩阵03.2.邻接表03.3.矩阵版本代码实现03.4.邻接表版本代码实现 完整代码: 01.并查集 在一些应用问题中,需要将…...

React第十八节 useEffect 用法使用技巧注意事项详解
1、概述 useEffect 是React中一个用于 将组件与外部系统同步的 Hook;在函数式组件中处理副作用函数的 Hook,用于替代类式组件中的生命周期函数; 可以在副作用函数中 实现以下操作: a、请求接口,获取后台提供数据 b、操…...

C++ 指针基础:开启内存操控之门
1. 指针为何如此重要 在 C 编程领域,指针堪称一项极为关键的特性。它赋予了程序员直接访问和操控内存的能力,这使得程序在处理复杂数据结构与优化性能时具有更高的灵活性。想象一下,在编写大型程序时,高效地管理内存资源是多么重要…...

Nginx的stream模块代理四层协议TCP的流量转发
Nginx的stream模块是一个功能强大的工具,专门用于处理四层协议(即网络层和传输层,如TCP和UDP)的流量。以下是对Nginx stream模块的详细解析: 一、基本功能 Nginx的stream模块主要用于实现TCP和UDP数据流的代理、转发…...

UE5 渲染管线 学习笔记
兰伯特 SSS为散射的意思 带Bias的可以根据距离自动切换mip的卷积值 而带Level的值mipmaps的定值 #define A8_SAMPLE_MASK .a 这样应该就很好理解了 这个只采样a通道 带Level的参考上面的 朝左上和右下进行模糊 带Bias参考上面 随机数 4D 3D 2D 1D...

Echarts连接数据库,实时绘制图表详解
文章目录 Echarts连接数据库,实时绘制图表详解一、引言二、步骤一:环境准备与数据库连接1、环境搭建2、数据库连接 三、步骤二:数据获取与处理1、查询数据库2、数据处理 四、步骤三:ECharts图表配置与渲染1、配置ECharts选项2、动…...

Electron 学习笔记
目录 一、安装和启动electron 1. 官网链接 2. 根据文档在控制台输入 3. 打包必填 4. 安装electron开发依赖 5. 在开发的情况下打开应用 6. 修改main为main.js,然后创建main.js 7.启动 二、启动一个窗口 1. main.js 2. index.html 3. 隐藏菜单栏 三、其他…...

Debian 12 安装配置 fail2ban 保护 SSH 访问
背景介绍 双十一的时候薅羊毛租了台腾讯云的虚机, 是真便宜, 只是没想到才跑了一个月, 系统里面就收集到了巨多的 SSH 恶意登录失败记录. 只能说, 互联网真的是太不安全了. 之前有用过 fail2ban 在 CentOS 7 上面做过防护, 不过那已经是好久好久之前的故事了, 好多方法已经不…...

http反向代理
通过反向代理实现访问biying,目前访问一些网站需要绕过cloudfare还没有解决,代码如下: from fastapi import FastAPI, Request from fastapi.responses import StreamingResponse import httpx import uvicorn import logging# 设置日志 logging.basicConfig(level=logging.…...

java12.24日记
运算符: 算术运算符: 顾名思义进行算数运算的 多为:四则运算,加一个取余 ,-,*,/以及 %(取余) 而外的:自增 以及自减--,对原数进行1或者-1 i…...

vue中proxy代理配置(测试一)
接口地址:http://jsonplaceholder.typicode.com/posts 1、配置一(代理没起作用) (1)设置baseURL为http://jsonplaceholder.typicode.com (2)proxy为 ‘/api’:’ ’ (3&a…...

[OpenGL]使用TransformFeedback实现粒子效果
一、简介 本文介绍了如何使用 OpenGL 中的 Transform Feedback 实现粒子效果,最终可以实现下图的效果: 本文的粒子系统实现参考了modern-opengl-tutorial, ogldev-tutorial28 和 粒子系统–喷泉 [OpenGL-Transformfeedback]。 二、使用 TransformFeed…...

GitCode 光引计划投稿 | GoIoT:开源分布式物联网开发平台
GoIoT 是基于Gin 的开源分布式物联网(IoT)开发平台,用于快速开发,部署物联设备接入项目,是一套涵盖数据生产、数据使用和数据展示的解决方案。 GoIoT 开发平台,它是一个企业级物联网平台解决方案ÿ…...

用 gdbserver 调试 arm-linux 上的 AWTK 应用程序
很多嵌入式 linux 开发者都能熟练的使用 gdb/lldb 调试应用程序,但是还有不少朋友在调试开发板上的程序时,仍然在使用原始的 printf。本文介绍一下使用 gdbserver 通过网络调试开发板上的 AWTK 应用程序的方法,供有需要的朋友参考。 1. 下载 …...

攻防世界web第一题
最近开始学习网络安全的相关知识,开启刷题,当前第一题 题目为攻防世界web新手题 这是题目 翻译:在这个训练挑战中,您将了解 Robots_exclusion_standard。网络爬虫使用 robots.txt 文件来检查是否允许它们对您的网站或仅网站的一部…...

轮播图带详情插件,插件
超级好用的轮播图 介绍访问地址参数介绍使用方法(简单使用,参数结构点击链接查看详情)图片展示 介绍 video(15) 带有底部物品介绍以及价格的轮播图组件,持续维护,uniApp插件,直接下载填充数据就可以在项目里…...

gesp(三级)(14)洛谷:B4039:[GESP202409 三级] 回文拼接
gesp(三级)(14)洛谷:B4039:[GESP202409 三级] 回文拼接 题目描述 一个字符串是回文串,当且仅当该字符串从前往后读和从后往前读是一样的,例如, aabaa \texttt{aabaa} aabaa 和...