跳到主要内容

TaurusDB 外置

一、前置条件

  1. TaurusDB 参数 rds_global_sql_log_bin 配置为 ON(登录数据库执行 show variables like 'rds_global_sql_log_bin'; 查询)。
  2. 准备好 TaurusDB 数据库系统管理员用户 root 的密码。
  3. 准备好用于数据迁移工具 dm-to-mysql-tool。压缩包 dm-to-mysql-tool.tgz,arm64 为 dm-to-mysql-tool-arm64.tgz

二、从达梦迁移到 TaurusDB

  1. 移除达梦数据库相关配置 vi config/private.yaml。
# dbDriver: 'dm'
# wizEditorUseDB: 'dm'
# wizMysqlSkipTableCreate: 'true'
  1. 补充 TaurusDB 数据库相关配置 vi config/private.yaml
dbRootUser: "root" # TaurusDB 数据库管理员用户
mysqlRootPassword: "" # TaurusDB 数据库管理员用户密码
mysqlHost: "127.0.0.1" # TaurusDB 地址
mysqlPort: 3306 # TaurusDB 端口
platformMysqlHost: "127.0.0.1" # TaurusDB 地址
platformMysqlPort: 3306
pluginMysqlHost: "127.0.0.1"
pluginMysqlPort: 3306
openapiMysqlHost: "127.0.0.1"
openapiMysqlPort: 3306
migrationRuntime: "img.ones.pro/library/mysqldump8:8.0.34_2" # TaurusDB 为 MySQL 8.x 时需要该镜像
internalComponentMysqlEnable: 'false'
  1. 执行 make init-db

  2. 执行 make setup-ones。(执行完后需要确保 camunda 和 wizeditor pod 发生了重启)

  3. 使用 dm-to-mysql 工具从达梦导出数据并导入到 TaurusDB。

    1. 将 dm-to-mysql-tool.tgz 放到 ones-tools pod 的 / 目录下
    kubectl -n ones cp dm-to-mysql-tool.tgz $(kubectl -n ones get pod -l app=ones-tools -o jsonpath="{.items[0].metadata.name}"):/
    1. 进入 ones-tools pod 内解压工具
    mkdir -p dm-to-mysql-tool
    tar -xzf dm-to-mysql-tool.tgz -C dm-to-mysql-tool
    1. 执行导出命令(注意将 PASSWORD 替换为达梦 sysdba 用户的实际密码以及 127.0.0.1 替换为达梦数据库实际地址)
    cd dm-to-mysql-tool
    ./bin/dm-dump -schema project -schema wiki -schema wizeditor -schema oauth \
    -schema identity -schema events -schema camunda -schema plugin_platform \
    -schema plugin_built_in_gvmbef2y \
    -schema open_platform_plugin \
    -ddl -ddl-schema open_platform_plugin \
    -out dm-dump \
    -dsn dm://sysdba:PASSWORD@127.0.0.1:5236 \
    -table-timeout 60m \
    -batch 2000 \
    -rows-per-insert 500 \
    -workers 4
    1. 导入到 TaurusDB。(注意提前复制好 mysqlRootPassword 以及将 127.0.0.1 替换为 TaurusDB 实际地址)
    ./scripts/import_mysql.sh dm-dump -- -h127.0.0.1 -P3306 -uroot -p
  4. 重启 api 相关组件

kubectl get pod -n ones |grep -iE 'api|wiz|platform|plugin' | awk '{print $1}' |xargs kubectl delete pod -n ones
  1. 最后执行 make rebuild-cdc,然后即可使用。

三、清空 TaurusDB 上的 ONES 数据

如果要清除 TaurusDB 上的 ONES 数据,可以用 MySQL 客户端登录进 TaurusDB 执行以下 SQL:

drop database project;
drop database wiki;
drop database wizeditor;
drop database oauth;
drop database identity;
drop database events;
drop database camunda;
drop database `plugin_platform`;
drop database `plugin_built_in_gvmbef2y`;
drop database `open_platform_plugin`;

drop user 'ones'@'%';
drop user 'camunda'@'%';
drop user 'platform'@'%';
drop user 'plugin_built_in_gvmbef2y'@'%';
drop user 'plugin'@'%';
drop user 'wizeditor'@'%';
drop user 'oauth'@'%';
drop user 'events'@'%';
drop user 'identity'@'%';
drop user 'oneswatch'@'%';