工具箱
提供了数据迁移,性能测试等各种工具。
进入工具箱页面,在工具列表内运行,运行结果在下方历史记录处显示。
运行结束后,在响应结果中查看执行详细信息。

数据导入
从MySQL,MS SQL,Oracle,SQLite,PostgreSQL,IBB ixf,b3文件,dbf文件,csv文件,固定格式的文件 导入到udb。
在工具箱页面中,运行数据导入,根据页面提示输入源端账号信息和目标端账号信息,执行 即可。

TPC-C标准测试
测试数据库 OLTP 事务并发执行能力
在工具箱页面中,运行TPC-C标准测试,根据页面提示输入目标账号信息,执行 即可。

刷新页面,等待任务执行完成,点击查看详情可显示执行结果。

Mysql同步到udb
从MySQL同步到udb,支持全量和增量迁移。
注意: 同步迁移仅支持有主键的表
在工具箱页面中,运行Mysql同步到udb,根据页面提示输入源端账号信息和目标端账号信息,执行 即可。

更多操作
准备数据
源端mysql开启binlog
binlog_format= ROW
binlog_row_image=FULL
log-bin = mysql-bin
server-id = 1
expire_logs_days = 10
源端mysql创建同步账号
CREATE USER rep ;
SET PASSWORD FOR rep=PASSWORD('rep');
GRANT ALL ON test.* TO 'rep';
GRANT RELOAD ON *.* to 'rep';
GRANT REPLICATION CLIENT ON *.* to 'rep';
GRANT REPLICATION SLAVE ON *.* to 'rep';
FLUSH PRIVILEGES;
目标端创建用户和数据库
CREATE USER test WITH PASSWORD 'testpwd';
CREATE DATABASE test WITH OWNER test;
准备配置文件
准备 /dir/sample.yml 配置文件,内容如下
---
# global settings
pid_dir: '/tmp/'
log_dir: '/tmp/'
log_dest: file
log_level: info
log_days_keep: 10
rollbar_key: ''
rollbar_env: ''
# type_override allows the user to override the default type conversion
# into a different one.
type_override:
"tinyint(1)":
override_to: boolean
override_tables:
- "*"
# unvdb destination connection
pg_conn:
host: "目标数据库IP"
port: "目标数据库端口"
user: "目标数据库用户"
password: "目标数据库密码"
database: "目标数据库名称"
#目标数据库配置
charset: "utf8"
sources:
mysql:
db_conn:
host: "源数据库IP"
port: "源数据库端口"
user: "源数据库用户"
password: "源数据库密码"
charset: 'utf8'
connect_timeout: 10
schema_mappings:
源数据库名称: 目标数据库模式名比如public
limit_tables:
#只包含以下表
# - test.a
skip_tables:
#排除以下表
# - test.b
grant_select_to:
- usr_readonly
lock_timeout: "120s"
my_server_id: 100
replica_batch_size: 10000
replay_max_rows: 10000
batch_retention: '1 day'
copy_max_memory: "300M"
copy_mode: 'file'
out_dir: /tmp
sleep_loop: 1
on_error_replay: continue
#出错时继续,如不开启可能导致时实同步失败
on_error_read: continue
auto_maintenance: "disabled"
gtid_enable: false
type: mysql
skip_events:
insert:
#跳过以下表的插入事件
# - test.d
delete:
#跳过以下表的删除事件
# - test.e
update:
#跳过以下表的更新事件
# - test.f
keep_existing_schema: No
启动容器
docker run -it --name chameleon -v /dir/sample.yml:/home/unvdb/.pg_chameleon/configuration/sample.yml chameleon /bin/bash
创建迁移任务
chameleon create_replica_schema --config sample --debug
添加源端数据库
chameleon add_source --config sample --source mysql --debug
启动全量迁移,此时将进行全量数据迁移
chameleon init_replica --config sample --source mysql --debug
查看任务状态
chameleon show_status --source mysql --config sample --debug
开启持续同步,开启debug时会在前台运行
chameleon start_replica --config sample --source mysql --debug
停止同步
chameleon stop_replica --config sample --source mysql
删除同步记录
chameleon detach_replica --config sample --source mysql
删除任务
chameleon drop_replica_schema --config sample
其它操作命令
目标故障时恢复同步任务
chameleon enable_replica --source mysql --config sample --debug
当目标故障后,同步状态中断。
当目录恢复后,需要执行 enable_replica 将同步状态更新为 stopped
再次 start_replica 开启同步即可恢复同步任务。
查看任务错误信息
chameleon show_errors --config sample
查看配置文件信息
chameleon show_config --source mysql --config sample
停止所有任务
chameleon stop_all_replicas --config sample