源端MySQL迁移评估
DTS 提供离线迁移评估工具帮助用户了解源库现状、提供评估结果为用户使用 DTS 迁移到目标库提供可行性参考。
准备环境
环境要求
- 部署环境只需网络上可连接到 MySQL 数据库的机器即可,建议不要在待评估的数据库设备上运行。
-
部署环境最低应满足以下配置要求:
- 操作系统:Linux(其他操作系统暂不支持)。
- 网络:能够连接到待采集的源数据库。
- CPU:1 core。
- 内存:4 GB。
- 硬盘:5 GB 空余。
- PHP:已安装 PHP 5 及以上版本运行环境。
部署工具
下载压缩包到本地并解压:
Linux:本地迁移评估工具
评估账号授权
使用 root 权限登录待评估 MySQL 数据库实例,为评估账号 dts_user 授权,并设置密码为 DTSPASSWORD。
grant SELECT,SHOW VIEW,SUPER on *.* to 'dts_user'@'IP' IDENTIFIED BY 'DTSPASSWORD';
执行迁移评估
填写配置文件
进入 dts_analysis
目录,填写配置文件 check_instance.conf
。该文件内容是以 JSON 格式存储的 MySQL 数据库连接信息, 可填写多个连接信息执行批量评估。
填写示例:
{
"check_instance" : [
{
"host" : "127.0.0.1",
"port" : "55555",
"user" : "dts_user",
"password" : "DTSPASSWORD"
},
{
"host" : "127.0.0.1",
"port" : "55555",
"user" : "dts_user",
"password" : "DTSPASSWORD"
}
]
}
填写完成后保存并退出。
执行迁移评估
在 dts_analysis
目录下,执行命令启动迁移评估:
php dts_analysis.php check_instance.conf
查看评估结果
输出结果每行表示一条记录, 共有 3 种不同的记录。
ERROR 记录
如下所示, 表示脚本运行期间遇到的错误:
[ERROR] 127.0.0.1:5555: Init connection failed ===>> (表示连接 IP 为 127.0.0.1, 端口为 5555 的 MySQL 实例是错误)。
Unsupport 记录
如下所示, 表示 DTS 不支持的迁移场景:
[unsupport] 127.0.0.1:55555: [UnsupportColumnDataType] tb_name: dtstest.test_dts3, column_name: g, data_type: geometry ===>> (表示 MySQL 的 dtstest.test_dts3 表存在一列类型为 geometry 的列, 该类型 DTS 不支持迁移)。
Risk 记录
如下所示, 表示 DTS 迁移有风险的情况, 需要人工介入判断:
[risk] 127.0.0.1:55555: [UnknownTableEngine] tb_name: dtstest.test_dts2, table_engine: MEMORY ===> (表示 MySQL 127.0.0.1:55555 的表 dtstest.test_dts2 的存储引擎为 MEMORY, 具体是否可以迁移, 需要人工介入判断)。
清除评估账号
使用 root 权限登录执行评估的 MySQL 数据库实例,删除评估账号 dts_user。
drop user 'dts_user'@'IP';