跳到主要内容
版本:v3&v6

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 删除迁移任务。

切换到达梦数据库

  1. 补充达梦数据库相关配置 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'
  1. 手动拉取镜像img.ones.pro/dev/dm-tool:v0.0.9img.ones.pro/library/oceanbase-ce:v4.3.1 放到客户环境;
  2. 执行 make setup-ones
  3. 关闭内置 MySQL make setup-ones-built-in-mysql