TaurusDB 外置
一、前置条件
- TaurusDB 参数
rds_global_sql_log_bin配置为ON(登录数据库执行show variables like 'rds_global_sql_log_bin';查询)。 - 准备好 TaurusDB 数据库系统管理员用户 root 的密码。
- 准备好用于数据迁移工具 dm-to-mysql-tool。压缩包 dm-to-mysql-tool.tgz,arm64 为 dm-to-mysql-tool-arm64.tgz。
二、从达梦迁移到 TaurusDB
- 移除达梦数据库相关配置 vi config/private.yaml。
# dbDriver: 'dm'
# wizEditorUseDB: 'dm'
# wizMysqlSkipTableCreate: 'true'
- 补充 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'
-
执行
make init-db。 -
执行
make setup-ones。(执行完后需要确保 camunda 和 wizeditor pod 发生了重启) -
使用
dm-to-mysql工具从达梦导出数据并导入到 TaurusDB。- 将 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}"):/- 进入 ones-tools pod 内解压工具
mkdir -p dm-to-mysql-tool
tar -xzf dm-to-mysql-tool.tgz -C dm-to-mysql-tool- 执行导出命令(注意将 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- 导入到 TaurusDB。(注意提前复制好 mysqlRootPassword 以及将 127.0.0.1 替换为 TaurusDB 实际地址)
./scripts/import_mysql.sh dm-dump -- -h127.0.0.1 -P3306 -uroot -p -
重启 api 相关组件
kubectl get pod -n ones |grep -iE 'api|wiz|platform|plugin' | awk '{print $1}' |xargs kubectl delete pod -n ones
- 最后执行
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'@'%';