bucardo
01 安装依赖
-
通过yum安装
#通过yum安装DBIx-Safe
yum install perl-DBIx-Safe
yum install perl-DBD-Pg
yum install postgresql-plperl -
下载编译安装
wget https://bucardo.org/downloads/dbix_safe.tar.gz
tar -zxvf dbix_safe.tar.gz
cd DBIx-Safe-1.2.5
perl Makefile.PL
make
make test
sudo make install
02 下载并安装bucardo
可参考:Bucardo Tutorial
下载安装完成后,还需要安装bucardo数据库。
wget https://bucardo.org/downloads/Bucardo-5.6.0.tar.gz
tar -vxzf Bucardo-5.6.0.tar.gz
cd Bucardo-5.6.0
perl Makefile.PL
make
sudo make install
#创建bucardo用户及数据库
adduser bucardo
passwd bucardo
su - bucardo
initdb btest
exit
# root or web_server
mkdir /var/run/bucardo /var/log/bucardo
chmod 777 /var/run/bucardo /var/log/bucardo /var/run/postgresql
su - bucardo
# 启动pg数据库,数据库存储目录为btest,日志为logfile,都在/home/bucardo下
pg_ctl -D btest -l logfile start
# 创建bucardo数据库及用户
bucardo install
# 连续输入p即可
03 bucardo基本概念
-
db 命名的pg数据库,包含connection相关信息
-
dbgroup 命名的数据库库集合,包含0个或者多个数据库
-
table 要复制的表
-
sequences 要复制的序列
-
relation 要复制的一个对象,例如表或者序列,内部因历史原因称为goat(山羊)
-
relgroup 要复制的relation的集合,内部称为herd(羊群)
-
sync 命名的复制事件,包括要复制什么(比如relgroup),从哪儿复制到哪儿等等。
04 bucardo配置同步
# 添加数据库
bucardo add db pg1 host=x.x.x.x port=5632 dbname=kong user=kong password=kong
bucardo add db pg2 host=x1.x1.x1.x1 port=5632 dbname=kong user=kong password=kong
# 添加要复制的table,要复制的表会被以group的形式命名为relgroup
# 该命令会创建一个名为pg1dbs_grp的relgroup,包含pg1数据库的所有表
bucardo add all tables db=pg1 --relgroup=pg1dbs_grp --verbose
# 添加同步
# 该命令会创建一个名为pg1to2的从pg1向pg2同步任务
# 要同步的对象为pg1dbs_grp
# 同时会创建一个名为pg1to2的dbgroup
bucardo add sync pg1to2 relgroup=pg1dbs_grp dbs=pg1,pg2
参考命令: