跳到主要内容

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

参考命令:

Bucardo Tutorial

Bucardo add database

Bucardo add table