go-mysql-total-syncer 全量同步服务

去年空闲时开发了一套go工具,全量数据库同步服务,用于切换服务器时,方便数据备份使用

过了一年,突然需要使用了,差点忘记了如何配置的,现在标记一下

mysql需要开启

[mysqld]
#配置mysql可以加载本地文件
local-infile=1

脚本total.rvicer配置

# dev 调试环境/ test 测试环境/ release 生产环境
run_env= "dev"

# mysql source config
total_source_addr = "47.114.60.23:3306"
total_source_user = "root"
total_source_pass = "123
total_source_db   = "test_source_db"
total_source_charset = "utf8mb4"
total_source_max_open_conn = 50
total_source_max_idle_conn = 50
total_source_max_life_time = 60

# mysql sink config
total_sink_addr = "localhost:3306"
total_sink_user = "root"
total_sink_pass = "123"
total_sink_db   = "test_sink_db"
total_sink_charset = "utf8mb4"
total_sink_max_open_conn = 50
total_sink_max_idle_conn = 50
total_sink_max_life_time = 60

#sync tables 需要同步的表,无时表示全部
sync_tables= []
# 如 sync_tables= ["table_goods","table_order"]

#同步数据量
#4核8G 5M带宽 性能低机器建议配置数10000到20000
#4核8G 局域网 50000
#配置越大 带宽越大 数据可调整为越大,建议最大值100000
sync_limit =200

#主键非int类型会执行一次性转移
#限制数据量 102400(单位kb 100M)
limit_all_data_size=51400

#协程数
go_channel_num=2000

进入工程,执行make, 在执行bin/total-syncer,即自动开始全量同步服务,目前项目未开源。