暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

金仓数迁平台 KDTS 初体验:高效迁移的秘诀

原创 严少安 2024-12-06
547

金仓数迁平台 KDTS 初体验:高效迁移的秘诀

在当今数据驱动的时代,数据库迁移是一个复杂而又至关重要的过程。市场上虽有众多开源及商业数据库迁移工具,但若论对金仓数据库的深刻理解和迁移效率,金仓自家的 KDTS(Kingbase Data Transformation Service)和 KFS 无疑是其中的佼佼者。本文将带您深入了解 KDTS 的基本操作,并分享实际应用案例。

KDTS 是一款专为用户设计的数据库数据迁移平台,它能够将数据从 Oracle、MySQL、SQL Server、Gbase、PostgreSQL、DM、KingbaseES 等数据库平滑迁移至 KingbaseES 数据库。支持迁移对象,包括但不限于表、视图、序列、函数、存储过程、同义词、触发器和注释,具体支持对象会根据源数据库的不同而有所差异。

KDTS 提供了两种产品形态,以满足不同用户的需求:

  • BS 版:通过浏览器的可视化界面,用户可以便捷地设置配置项,完成数据迁移任务。
  • SHELL 版:通过手动修改配置文件来设置配置项,实现数据迁移。

SHELL 版特别适合以下场景:堡垒机操作、远程终端访问以及未安装图形化界面的系统。

KDTS 作为金仓数据库的一部分,安装完整版金仓数据库后,用户可以在客户端目录下轻松找到 KDTS 程序。以下是 KDTS 目录结构的概览:

[shawnyan@rl9 KDts]$ pwd
/opt/Kingbase/ES/V9/ClientTools/guitools/KDts
[shawnyan@rl9 KDts]$ tree -L 2
.
├── KDTS-CLI
│   ├── bin
│   ├── conf
│   ├── drivers
│   ├── jdk
│   ├── lib
│   ├── logs
│   ├── results
│   └── version
└── KDTS-WEB
    ├── bin
    ├── conf
    ├── drivers
    ├── jdk
    ├── lib
    ├── logs
    ├── pid
    ├── results
    └── web

17 directories, 2 files

KDTS BS 版的启停操作简单快捷,仅需运行指令脚本即可。以下是运行启动脚本的示例:

[shawnyan@rl9 bin]$ pwd
/opt/Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB/bin
[shawnyan@rl9 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-06_16-30-36 ================================================
kdts-app-console v1.0.3.322
jar name: kdts-app-console-1.0.3.322.jar
base path: /opt/Kingbase/ES/V9/ClientTools/guitools/KDts/KDTS-WEB
...
application pid: 76899

See "../logs/kdts-app-console_2024-12-06_16-30-36.log" or use the command-line "tail -f ../logs/kdts-app-console_2024-12-06_16-30-36.log" for more detail.

KDTS 默认搭载 OpenJDK,用户也可以根据需要替换为其他版本的 JDK,但需确保版本至少为 JDK 11。

服务启动后,KDTS 会监听两个端口,其中 54523 为 HTTP 监听端口,54524 为 HTTPS 监听端口。

[shawnyan@rl9 bin]$ ss -antpl | grep java
LISTEN 0      100                *:54524            *:*    users:(("java",pid=76899,fd=18))
LISTEN 0      100                *:54523            *:*    users:(("java",pid=76899,fd=15))
[shawnyan@rl9 bin]$

通过浏览器访问 KDTS 服务器地址 https://192.168.43.90:54524/,即可打开登录页面。

kd7.png

登录后,用户将看到一个直观的大屏界面,展示已配置的数据源数量、任务执行情况以及 KDTS 所在主机的资源状况。

kd2.png

图形化操作流程简单直观。首先,用户需要配置源数据库和目标数据库。

kd1.png

本文以 MariaDB 数据库作为源库,并已预先创建好测试库、表和数据。

MariaDB [mydb]> show tables;
+----------------------------------+
| Tables_in_mydb                   |
+----------------------------------+
| mysql_all_data_types_partitioned |
| v1                               |
+----------------------------------+
2 rows in set (0.001 sec)

MariaDB [mydb]> select count(*) from mysql_all_data_types_partitioned;
+----------+
| count(*) |
+----------+
|        4 |
+----------+
1 row in set (0.000 sec)

MariaDB [mydb]> select count(*) from v1;
+----------+
| count(*) |
+----------+
|        2 |
+----------+
1 row in set (0.001 sec)

接下来,用户点击【迁移任务管理】菜单,添加新任务。

kd4.png

迁移过程中,用户可以在可视化界面查看迁移进度,也可以在后台查看 KDTS 日志,监控迁移进度。

Collecting table metadata...
Collect table metadata completed.
Collecting table large object information...
Collect table large object information completed.
Counting the number of database objects...7% (PRIMARY_KEY_CONSTRAINT)
Counting the number of database objects...14% (TABLE)
Counting the number of database objects...21% (FOREIGN_KEY_CONSTRAINT)
Counting the number of database objects...28% (INDEX)
Counting the number of database objects...35% (FUNCTION)
Counting the number of database objects...42% (VIEW)
Counting the number of database objects...50% (USER_DEFINED_TYPE)
Counting the number of database objects...57% (USER_DEFINED_TYPE_BODY)
Counting the number of database objects...64% (UNIQUE_CONSTRAINT)
Counting the number of database objects...78% (CHECK_CONSTRAINT)
Counting the number of database objects...78% (TRIGGER)
Counting the number of database objects...85% (PROCEDURE)
Counting the number of database objects...92% (COMMENT)
Counting the number of database objects...100%
Counting the size of database objects

迁移完成后,用户可以在 KDTS 平台上查看迁移报告。

kd5.png

也可以在服务器上拉取 HTML 格式的迁移报告。

kd6.png

在目标端 KES 数据库上查看迁移完成后的对象,验证迁移结果。

shawnyan=# select version();
                                                       version
----------------------------------------------------------------------------------------------------------------------
 KingbaseES V009R001C002B0014 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)

shawnyan=# set search_path = mydb;
SET
shawnyan=# \d
                                  List of relations
 Schema |                     Name                     |       Type        |  Owner
--------+----------------------------------------------+-------------------+----------
 mydb   | mysql_all_data_types_partitioned             | partitioned table | shawnyan
 mydb   | mysql_all_data_types_partitioned_DEFAULT_SYS | table             | shawnyan
 mydb   | mysql_all_data_types_partitioned_p0          | table             | shawnyan
 mydb   | mysql_all_data_types_partitioned_p1          | table             | shawnyan
 mydb   | mysql_all_data_types_partitioned_p2          | table             | shawnyan
 mydb   | mysql_all_data_types_partitioned_p3          | table             | shawnyan
 mydb   | v1                                           | view              | shawnyan
(7 rows)

shawnyan=# select count(*) from mysql_all_data_types_partitioned;
 count
-------
     4
(1 row)

shawnyan=# select count(*) from v1;
 count
-------
     2
(1 row)

至此,一次简单的数据库迁移验证测试圆满完成,整个过程流畅且高效。

数据库表迁移只是数据库替换过程中的一个环节,用户还需考虑 SQL 执行时间、SQL 执行结果一致性、应用程序代码中的方言调整等诸多问题。

641.webp


金仓数据库文章合辑

Have a nice day ~


🌻 往期精彩 ▼

– / END / –

👉 这里可以找到我

👉 这里有得聊

如果对国产基础软件(操作系统、数据库、中间件)感兴趣,可以加群一起聊聊。
关注微信公众号:少安事务所,后台回复[群],即可看到入口。

如果这篇文章为你带来了灵感或启发,就请帮忙点『』or『在看』or『转发』吧,感谢!ღ( ´・ᴗ・` )~

最后修改时间:2024-12-06 13:33:10
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论