使用 gt-checksum 迁移表结构到 GreatSQL

将数据库表结构迁移至 GreatSQL 的指南

引言

本文旨在指导如何利用 gt-checksum 工具,将数据库表结构从 ORACLE 迁移至 GreatSQL。

gt-checksum 简介

gt-checksum 是 GreatSQL 社区开发的开源静态数据库校验和修复工具,它支持包括 MySQL 和 Oracle 在内的多种主流数据库系统。其商业版本最近增加了表结构迁移的功能,以下是如何使用该功能的简单示例。

本文使用的是 gt-checksum 的商业版本。

配置 gc-task.cnf 文件

gc-task.cnf 是 gt-checksum 的配置文件,包含了源数据库和目标数据库的连接信息以及需要迁移的对象列表等。该文件位于 gt-checksum 程序的 config-simple 目录下,gt-checksum 将根据此文件生成表结构迁移的相关配置文件。

$ cd ${gtdir}
$ cp -r config-simple config
$ cd config

$ vi gc-task.cnf
# 源数据库连接字符串
srcDSN = "oracle|user/password@ip:port/sid"
# 目标数据库连接字符串                                        
dstDSN = "mysql|user:password@tcp(ip:port)/information_schema?charset=utf8mb4"
# 待迁移对象列表   
object = "qianyi" 
# 对象中库名和表名的分隔符                                                                               
limiter = "," 
# 任务类型,struct 表示迁移表结构                                                                                   
active = struct

配置迁移对象列表

以迁移 PCMS 库下的 BMSQL_WAREHOUSE、BMSQL_CONFIG 和 BMSQL_DISTRICT_TMP 三张表为例,配置方式如下:

配置格式为:库名 分隔符 表名

文件位置与 gt-checksum 同级目录

配置示例

$ cat qianyi
PCMS,BMSQL_WAREHOUSE
PCMS,BMSQL_CONFIG
PCMS,BMSQL_DISTRICT_TMP

迁移对象列表配置方式说明:

  • 一般情况,无需映射(迁移到目标端后,库名和表名保持不变)
PCMS,BMSQL_WAREHOUSE
PCMS,BMSQL_CONFIG
PCMS,BMSQL_DISTRICT_TMP

映射关系示意图

SOURCE                 -->  DEST
# 示例1:PCMS,BMSQL_WAREHOUSE
PCMS.BMSQL_WAREHOUSE   --> PCMS.BMSQL_WAREHOUSE
  • 库映射(迁移到目标端后,表名保持不变,库名改变)
PCMS:WLKY,BMSQL_WAREHOUSE
PCMS:WLKY,BMSQL_CONFIG
PCMS:WLKY,BMSQL_DISTRICT_TMP

映射关系示意图

SOURCE                 -->  DEST
# 示例1:PCMS:WLKY,BMSQL_WAREHOUSE
PCMS.BMSQL_WAREHOUSE   --> WLKY.BMSQL_WAREHOUSE
  • 表映射(迁移到目标端后,库名保持不变,表名改变)
PCMS,BMSQL_WAREHOUSE:BMSQL_WAREHOUSE_0429
PCMS,BMSQL_CONFIG:BMSQL_CONFIG_0429
PCMS,BMSQL_DISTRICT_TMP:BMSQL_DISTRICT_TMP_0429

映射关系示意图

SOURCE                 -->  DEST
# 示例1:PCMS,BMSQL_WAREHOUSE:BMSQL_WAREHOUSE_0429
PCMS.BMSQL_WAREHOUSE   --> PCMS.BMSQL_WAREHOUSE_0429
  • 库表映射(迁移到目标端后,库名和表名都改变)
PCMS:WLKY,BMSQL_WAREHOUSE:BMSQL_WAREHOUSE_0429
PCMS:WLKY,BMSQL_CONFIG:BMSQL_CONFIG_0429
PCMS:WLKY,BMSQL_DISTRICT_TMP:BMSQL_DISTRICT_TMP_0429

映射关系示意图

SOURCE                 -->  DEST
# 示例1:PCMS:WLKY,BMSQL_WAREHOUSE:BMSQL_WAREHOUSE_0429
PCMS.BMSQL_WAREHOUSE   --> WLKY.BMSQL_WAREHOUSE_0429

Oracle 端表结构

```sql
CREATE TABLE "PCMS"."BMSQL_WAREHOUSE"
( "W_ID" NUMBER(*,0) NOT NULL ENABLE,
"W_YTD" NUMBER(12,2

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/4375.html

(0)
LomuLomu
上一篇 2024 年 12 月 24 日
下一篇 2024 年 12 月 24 日

相关推荐

  • 用 Cursor 写出第一个程序

    大家好,我是汤师爷 最近几个月,Cursor迅速走红,成为一款强大的编程助手。Cursor不仅使用简单,而且通过集成各种大模型技术,编程能力一流。 Cursor是什么? Cursor是一个类似VSCode的编辑器,集成了GPT-4、Claude 3.5等LLM模型。它本质上是在VSCode的基础上添加了AI辅助编程功能。 从界面布局到操作方式都与VSCode…

    2025 年 1 月 6 日
    36700
  • Redis 8.0重磅登场:全面开源与性能飞跃

    各位技术爱好者,我是技术观察员T哥。近日,Redis团队带来一个激动人心的公告:Redis 8.0版本正式亮相! 这次升级不仅是简单的版本更新,更代表着重要的战略转变——官方宣布恢复完全开源模式!可能有人会疑惑:Redis不是一直开源的吗?事实并非如此。自Redis 7.4版本起,其核心授权协议已经变更:Redis 7.4实际上采用了SSPLv1(受限开源)…

    2025 年 5 月 12 日
    24800
  • 深度解读 JDK 8、JDK 11、JDK 17 和 JDK 21 的区别

    “`markdown 随着Java生态系统的持续发展,每个新发布的JDK版本都带来了众多新特性、改进和性能优化。对于Java开发者来说,掌握这些不同版本间的差异对于在项目中选择最合适的JDK版本至关重要。本文将深入探讨JDK 8、JDK 11、JDK 17和JDK 21之间的主要差异,帮助你洞察每个版本的变化及其对开发实践的影响。 一、JDK 8:Java…

    未分类 2024 年 12 月 27 日
    47600
  • 比想象中更复杂一点的MySQL Slow Query Log

    1. 问题概述 在分析 Slow Query Log 时,记录下的SQL语句,明明会对一张表执行全表扫描,可为什么慢日志中的 Rows_sent 、Rows_examined 和表的真实记录数也是不一样,甚至相差N多倍。还有一个细节就是上述的SQL语句,执行多次,在慢日志中记录下多条记录,记录之间Rows_sent 、Rows_examined也差别明显。 …

    未分类 2025 年 1 月 14 日
    45500
  • Java垃圾回收机制深度解析与优化实践

    目录导航一、Java内存自动管理机制的核心原理(一)GC基础概念全面解析1.垃圾回收的三种维度理解2.应用线程的内存分配行为3.线程专属内存分配区4.跨代引用追踪技术(二)开发者掌握GC知识的必要性1.系统响应性能影响2.内存资源高效管理3.计算资源合理分配4.系统瓶颈消除策略5.运行时状态监控6.高并发场景支持二、GC工作机制详解(一)内存区域划分1.堆栈…

    未分类 2025 年 5 月 13 日
    9800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信