本文以从 Oracle 迁移到 GreatSQL 为例讲述如何使用gt-checksum分析迁移对象。
gt-checksum 是 GreatSQL 社区开源的一款静态数据库校验修复工具,支持MySQL、Oracle等主流数据库。如下是一个简单的分析迁移对象的使用案例。
本次使用的是 gt-checksum 商业版本
首先我们通过一个项目案例来说明一下去O过程中为什么需要分析迁移对象。
当前有个去O项目,总共3000张业务表 ,总数据量大概在3T左右,业务方要求在3小时内迁移完成。
这时,我们就要思考,如何能在规定时间内完成迁移?影响迁移效率的因素有哪些?
业务表有没有索引;是主键索引还是普通索引;是全局索引还是本地索引;若存在索引,索引的离散度如何。
业务表中有没有lob或者text字段,若存在,总共有多少个lob或text字段;业务表是否是分区表,表的分区类型是什么以及总共有多少个分区。
每张表各有多少数据量,百万级、千万级还是亿级别。
上述的这些信息,通过gt-checksum的迁移对象分析,我们都可以获取到。
下面开始分析流程。
分析行为依赖于配置文件 config-simple/gc-task.cnf
,在分析操作开始前,需要先根据项目实际信息配置好此文件,如下是配置说明。
DSNs(连接模块)
rules(规则模块)
详细说明见 gc-task.cnf 文件注释
object 支持如下四种配置方式:
以迁移PCMS库下BMSQL_WAREHOUSE
、BMSQL_CONFIG
、 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
$ cat qianyi
PCMS,BMSQL_WAREHOUSE
PCMS,BMSQL_CONFIG
PCMS,BMSQL_DISTRICT_TMP
$ cp -r config-simple config
$ cat config/gc-task.cnf
DSNs {
srcDSN = "oracle|user/password@ip:port/sid"
dstDSN = "cluster|user:password@tcp(ip:port)/information_schema?charset=utf8mb4"
}
rules {
task {
object = "qianyi"
limiter = ","
igcount = false
active = struct
}
}
gc-task.cnf 配置完成后即可进行迁移对象的分析操作,执行命令如下
$ ./gt-checksum -f config/gc-task.cnf
如下输出表示分析操作成功
SOURCE --> DEST
-- 示例1:PCMS,BMSQL_WAREHOUSE
PCMS.BMSQL_WAREHOUSE --> PCMS.BMSQL_WAREHOUSE
0
分析操作执行成功后,会在 gt-checksum 同级目录下生成分析结果Excel ,文件以 “gt_tableObjectOptimizer_” 为前缀。
Excel中包含三个sheet,各个sheet说明如下:
注意:
- “迁移对象”指业务方给出的需要做迁移的表清单
- tableMiss 中的表特别注意,这部分表需要拿出来去跟业务侧确认是否迁移
Excel 中含三个 sheet 的 title 一致,内容解析如下:
SOURCE --> DEST
-- 示例1:PCMS,BMSQL_WAREHOUSE
PCMS.BMSQL_WAREHOUSE --> PCMS.BMSQL_WAREHOUSE
1
到此就是一个完整的迁移对象分析流程了。
Enjoy GreatSQL
GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。
相关链接: GreatSQL社区 Gitee GitHub Bilibili
社区博客有奖征稿详情:https://greatsql.cn/thread-100-1-1.html
微信:扫码添加
GreatSQL社区助手
微信好友,发送验证信息加群
。