Bifrost 可以在同步各种数据数据,类似于 Canal
本处场景为将 IP1 上的数据库 test 中的 user 表同步到 IP2 上的数据库的 test_bifrost 库中的 user 表;
此处通过 Docker 进行安装
# docker pull jc3wish/bifrost
创建保存配置及数据文件夹
# mkdir -p /home/data/dockerfile/bifrost
# cd /home/data/dockerfile/bifrost
# vim Bifrost.ini
[user]
#登 入 用 户 名 和 密 码
#用 户 名 在 前 , = 号 后 面 是 密 码
Bifrost=Bifrost123
BifrostMonitor=Bifrost123
[groups]
#administrator 管 理 人 员 可 以 添 加 删 除 等 操 作
#monitor 只 能 查 看 数 据
Bifrost=administrator
BifrostMonitor=monitor
[Bifrostd]
#log写 到 入 的 文 件 夹 , 默 认 为 启 动 文 件 所 在 文 件 夹 下 的 logs目 录
#log_dir=/data/log/
#监 听 端 口 ,默 认 0.0.0.0:21036
listen=0.0.0.0:21036
#通 过 界 面 配 置 的 信 息 保 存 文 件 夹 ,默 认 为 启 动 文 件 所 在 文 件 夹 下 的 data目 录
data_dir=./
#设 置 同 步 给 第 三 方 服 务 的 队 列 大 小 , 默 认 5000
toserver_queue_size=5000
#通 道 队 列 的 大 小 , 默 认 1000
channel_queue_size=1000
#是 否 支 持 动 态 加 plugin so 插 件 , 默 认 为 false
#这 个 参 数 只 在 linux 下 有 效 , 其 他 平 台 全 部 为 false
dynamic_plugin=false
#是 否 支 持 https
tls=true
#server.key 及 server.crt 相 对 于 Bifrost 的 路 径 , 也 可 以 填 绝 对 路 径
tls_key_file=./etc/server.key
tls_crt_file=./etc/server.crt
#采 用 什 么 方 式 存 储 ,默 认 文 件 方 式
#meta_storage_type=redis
#存 储 介 质 的 连 接 地 址
#meta_storage_path=127.0.0.1:6379
#用 于 区 别 实 例 的 名 字
#cluster_name=bifrostTestClusterName
# mkdir etc
# cd etc
# openssl genrsa -out server.key 2048
# openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
生成证书文件:server.crt 和 server.key
# docker run -d -p21036:21036 -v /etc/localtime:/etc/localtime -v /home/data/dockerfile/bifrost:/linux/data jc3wish/bifrost
端口为 21036
(named 服务之前已经安装过)
将 bifrost.zsoft.com 到 安装主机IP 的解析添加到 named 服务的 zsoft.com.zone 配置文件中,并重启 named 服务;
用浏览器访问 https://bifrost.zsoft.com 打开管理页面
用户名、密码是在配置文件中配置的:Bifrost / Bifrost123
登录网页后台 https://bifrost.zsoft.com
本例实现 IP1 上的 test 库的 user 表同步到 IP2 上的 test_bifrost 库的 user 表;
点击页面上方“数据源”,进入数据源配置页面;
Add new DB:
点击“提交”
创建完数据源后系统会自动跳转到创建“目标库列表”页(点击页面顶端的“目标库列表”按钮同样进入此页面);
Add new Server:
点击“提交”
切换到“数据源”页面,在已经创建好的 user|test|80 数据源最后点击“Setting”按钮;
左侧选择 test 数据库,在中间 Table List 中点击 user 表后的 “ADD” 按钮,点击“保存”,然后点击表明 user,在右侧进行配置:
点击“提交”
在“数据源”页面,在配置好的 user|test|80 项的 ConnStatus 中点击“Start”,状态变为“running”;
此时在 IP1 服务器的 test 库的 user 表添加一条数据:
INSERT INTO user values('1004', now(), now(), '赵六','pic04',1);
在 IP2 服务器的 test_bifrost 库的 user 表中就会看到数据已经同步过来!