使用 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 日

相关推荐

  • MySQL 优化利器 SHOW PROFILE 的实现原理

    背景 近期,我遇到了一个案例,涉及到通过可传输表空间的方式导入一个体积达4GB的表,整个过程耗时13分钟。通过使用PROFILE进行性能分析,意外发现大部分时间都耗费在了System lock阶段。 mysql> set profiling=1; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> a…

    未分类 2024 年 12 月 27 日
    56600
  • 国内支付宝开通Claude Pro三分钟教程

    国内支付宝开通Claude Pro时,先确认账号邮箱、套餐和付款后验收方式。

    未分类 2026 年 5 月 25 日
    4000
  • Grok Super国内支付充值指南

    国内用户开通Grok Super和SuperGrok的新手教程文章,说明Grok充值、Grok代充、卡密验证和账号ID确认流程。

    未分类 2026 年 6 月 3 日
    3700
  • ChatGPT Plus充值微信支付宝开通指南详细版

    对高频使用 ChatGPT 的人来说,共享账号并不是好选择。自己的账号能保留历史记录和使用习惯,所以国内支付开通 Plus 更适合长期使用。 充值前先看清邮箱和账号信息,后续刷新页面确认 Plus 状态。

    未分类 2026 年 6 月 6 日
    2800
  • python SQLAlchemy ORM——从零开始学习 01 安装库

    01基础库 1-1安装 依赖库:sqlalchemy “`python pip install sqlalchemy #直接安装即可 “` 1-2导入使用 这里讲解思路【个人的理解】,具体写其实就是这个框架: 导入必要的接口【有创建engine以及declarative_base】 通过create_engine接口创建engine,根据翻译可以翻译成引…

    2025 年 1 月 11 日
    70700

发表回复

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

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信