本文以从 Oracle 迁移到 GreatSQL 为例讲述如何使用 gt-checksum 迁移表结构。
gt-checksum是GreatSQL社区开源的一款静态数据库校验修复工具,支持MySQL、Oracle等主流数据库。其商业版本近期新增了表结构迁移功能,如下是一个简单的表结构迁移使用案例。
本次使用的是 gt-checksum 商业版本
gc-task.cnf是gt-checksum的初始配置文件,内容包括源端目标端DB连接串以及迁移对象列表等信息,位于gt-checksum程序的config-simple目录下,gt-cheksum会根据gc-task.cnf来生成表结构迁移相关配置文件。
$ cd ${gtdir}
$ cp -r config-simple config
$ cd config
$ vi gc-task.cnf
#源端URL
srcDSN = "oracle|user/password@ip:port/sid"
#目标端URL
dstDSN = "mysql|user:password@tcp(ip:port)/information_schema?charset=utf8mb4"
#待迁移对象列表
object = "qianyi"
#object中 库名表名的分隔符
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
迁移对象列表配置方式说明
object 支持如下四种配置方式:
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
$ cat qianyi
PCMS,BMSQL_WAREHOUSE
PCMS,BMSQL_CONFIG
PCMS,BMSQL_DISTRICT_TMP
0
gc-struct.cnf是表结构迁移的任务配置文件,gt-checksum根据gc-task.cnf来生成,放在gt-checksum同级目录下,生成方式如下:
$ cat qianyi
PCMS,BMSQL_WAREHOUSE
PCMS,BMSQL_CONFIG
PCMS,BMSQL_DISTRICT_TMP
1
如下输出表示配置文件生成成功
$ cat qianyi
PCMS,BMSQL_WAREHOUSE
PCMS,BMSQL_CONFIG
PCMS,BMSQL_DISTRICT_TMP
2
gc-struct.cnf中部分参数根据gc-task.cnf生成,无需修改,还有部分参数是默认配置,需要根据项目实际情况来修改,此处仅展示表结构迁移过程中部分必改参数,其余参数及其含义见文件内容。
$ cat qianyi
PCMS,BMSQL_WAREHOUSE
PCMS,BMSQL_CONFIG
PCMS,BMSQL_DISTRICT_TMP
3
gc-struct.cnf配置完成后即可开始迁移表结构,需要注意的是要提前在目标端创建数据库。
$ cat qianyi
PCMS,BMSQL_WAREHOUSE
PCMS,BMSQL_CONFIG
PCMS,BMSQL_DISTRICT_TMP
4
执行表结构迁移
$ cat qianyi
PCMS,BMSQL_WAREHOUSE
PCMS,BMSQL_CONFIG
PCMS,BMSQL_DISTRICT_TMP
5
如下输出表示表结构迁移任务完成
$ cat qianyi
PCMS,BMSQL_WAREHOUSE
PCMS,BMSQL_CONFIG
PCMS,BMSQL_DISTRICT_TMP
6
$ cat qianyi
PCMS,BMSQL_WAREHOUSE
PCMS,BMSQL_CONFIG
PCMS,BMSQL_DISTRICT_TMP
7
到此表结构成功从 Oracle 迁移到 GreatSQL。
Enjoy GreatSQL
GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。
相关链接: GreatSQL社区 Gitee GitHub Bilibili
社区博客有奖征稿详情:https://greatsql.cn/thread-100-1-1.html
微信:扫码添加
GreatSQL社区助手
微信好友,发送验证信息加群
。