使用 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
  • 库映射:迁移到目标端后,表名保持不变,库名改变。
PCMS:WLKY,BMSQL_WAREHOUSE
PCMS:WLKY,BMSQL_CONFIG
PCMS:WLKY,BMSQL_DISTRICT_TMP
  • 表映射:迁移到目标端后,库名保持不变,表名改变。
PCMS,BMSQL_WAREHOUSE:BMSQL_WAREHOUSE_0429
PCMS,BMSQL_CONFIG:BMSQL_CONFIG_0429
PCMS,BMSQL_DISTRICT_TMP:BMSQL_DISTRICT_TMP_0429
  • 库表映射:迁移到目标端后,库名和表名都改变。
PCMS:WLKY,BMSQL_WAREHOUSE:BMSQL_WAREHOUSE_0429
PCMS:WLKY,BMSQL_CONFIG:BMSQL_CONFIG_0429
PCMS:WLKY,BMSQL_DISTRICT_TMP:BMSQL_DISTRICT_TMP_0429

Oracle端表结构定义

```sql
CREATE TABLE "PCMS"."BMSQL_WAREHOUSE"
( "W_ID" NUMBER(*,0) NOT NULL ENABLE,
"W_YTD" NUMBER(12,2),
"W_TAX" NUMBER(4,4),
"W_NAME" VARCHAR2(10),
"W_STREET_1" VARCHAR2(20),
"W_STREET_2" VARCHAR2(20),
"W_CITY" VARCHAR2(20),
"W_STATE" CHAR(2),
"W_ZIP" CHAR(9),
CONSTRAINT "BMSQL_WAREHOUSE_PKEY" PRIMARY KEY ("W_ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ENABLE
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMP

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

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

相关推荐

  • ChatGPT Plus代充开通会员教程新手教程

    国内用户想开通 ChatGPT Plus,常见阻碍不是注册,而是订阅付款。不想注册虚拟卡时,很多人会把时间耗在支付工具上。对于主要用 ChatGPT 处理办公协作里的英文邮件的学生党,更实用的思路是先解决付款门槛,先把会员开到自己的原账号,再用真实任务观察是否适合继续续费。

    未分类 2026 年 8 月 21 日
    6700
  • Claude Pro原账号升级充值开通方法

    国内用户开通 Claude Pro 的充值教程,整理 Claude Pro 充值、代充、国内支付和 Organization ID 提交步骤。

    未分类 2026 年 6 月 23 日
    19300
  • 【GreatSQL优化器-10】find_best_ref

    【GreatSQL优化器-10】find_best_ref 一、find_best_ref介绍 GreatSQL的优化器对于join的表需要根据行数和cost来确定最后哪张表先执行哪张表后执行,这里面就涉及到预估满足条件的表数据,在keyuse_array数组有值的情况下,会用find_best_ref函数来通过索引进行cost和rows的估计,并且会找出最…

    2025 年 1 月 14 日
    60100
  • 华为OD机试E卷 –流浪地球–24年OD统一考试(Java & JS & Python & C & C++)

    文章目录 题目描述 输入描述 输出描述 用例 题目解析 JS算法源码 Java算法源码 python算法源码 c算法源码 c++算法源码 题目描述 流浪地球计划在赤道上均匀部署了N个转向发动机,按位置顺序编号为O~N-1。1)初始状态下所有的发动机都是未启动状态;2)发动机起动的方式分为“手动启动”和“关联启动”两种方式;3)如果在时刻1一个发动机被启动,下…

    未分类 2025 年 1 月 21 日
    1.2K00
  • ChatGPT自己账号订阅实用步骤教程

    想开通会员但碰到虚拟卡申请和维护成本较高,最省理解成本的思路是先保留自己的原账号,再单独解决付款。负责跨境沟通的外贸从业者日常需要完成面试问题准备与回答练习,如果改用共享号,历史内容和登录环境都不方便延续。使用卡密充值时,先完成国内付款,再由本人核对账号信息,既不需要重新搭建海外支付环境,也不会把工作资料分散到多个账号。

    未分类 2026 年 8 月 28 日
    4300

发表回复

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信