MySQL 数据迁移至达梦
前置要求
- ONES >= v6.1.77 或 v6.2.5;
- 达梦数据库已经按这里的要求部署完成,可正常访问;
- 手动拉取镜像
img.ones.pro/dev/mysql-to-dm:v1.0.1
放到客户环境; - 迁移操作需要在停机情况下进行,主要停止 project-api、platform-api 和 wiki-api 服务。
操作步骤
1. 初始化达梦数据库
进入 ones-ai-k8s.sh
配置达梦数据库相信息,然后执行初始化操作:
vi config/private.yaml
dm8Host: '127.0.0.1' #达梦数据库地址
dm8Port: 5236 #达梦数据库 port
dm8SysDbaPassword: 'onesdev123' #达梦数据库系统管理员密码
修改保存后,执行 make init-dm-db
初始化达梦数据库。
2. 生成迁移任务编排文件
进入 ones-ai-k8s.sh
执行如下操作:
cp -r script/mysql-to-dm overlay-templates/ones/v1/
make config-ones
执行完成后,会在 tmp/ones/v1/
目录下生成 mysql-to-dm
目录,里面包含了迁移任务编排文件。
3. 执行迁移任务
直接应用步骤2生成的迁移任务编排文件,执行迁移任务:
kubectl -n ones apply -f tmp/ones/v1/mysql-to-dm/mysql-to-dm.yaml
4. 验证迁移结果
查看 mysql-to-dm pod 的日志如果看到了包含 Migration complete
的内容且 failure: 0
则说明迁移完成。如果 failure 不为 0 联系相关同事作进一步处理。
迁移完成后可以执行 kubectl -n ones delete -f tmp/ones/v1/mysql-to-dm/mysql-to-dm.yaml
删除迁移任务。
切换到达梦数据库
- 补充达梦数据库相关配置 vi config/private.yaml
dbDriver: 'dm'
wizEditorUseDB: 'dm'
wizMysqlSkipTableCreate: 'true'
internalComponentMysqlEnable: 'false'
onesDMClientToolkitImage: img.ones.pro/dev/dm-tool:v0.0.9
oceanbaseImage: img.ones.pro/library/oceanbase-ce:v4.3.1
dmCdcDbUser: 'root@mysql01'
dmCdcDbHost: 'oceanbase-service'
- 手动拉取镜像
img.ones.pro/dev/dm-tool:v0.0.9
和img.ones.pro/library/oceanbase-ce:v4.3.1
放到客户环境; - 执行
make setup-ones
- 关闭内置 MySQL
make setup-ones-built-in-mysql
。