|
Bucardo 是基于表复制的系统,通过触发器记录变化,同步的表必须有主键,不能同步DDL语句(truncate可以同步)。Bucardo 可以实现PostgreSQL数据库的双master/多master的方案。Bucardo的核心是一个Perl守护进程,它侦听通知请求并对其进行操作,方法是连接到远程数据库并来回复制数据。
由于Bucardo是基于Perl程序开发的,所以在安装之前的需要提前安装好各种PERL各种模块,同时要提前安装部署好PG数据库。
我的操作系统是CENTOS7 ,数据库版本是PG12,下载相应的Bucardo安装包,然后进行解压。
postgres@pg01 ~]$ unzip bucardo-master.zip
bucardo bucardo.restart.reason.log home packages.zip soft
bucardo-master bucardo.restart.reason.txt logfile postgresql-12.1
bucardo-master.zip data packages postgresql-12.1.tar.gz
进入解压目录,内容如下所示。
[postgres@pg01 ~]$ cd bucardo-master
[postgres@pg01 bucardo-master]$ ls
blib Bucardo.pm.html dist Makefile.PL MYMETA.json README t
bucardo bucardo.schema INSTALL MANIFEST MYMETA.yml README.dev TODO
bucardo.html Changes LICENSE MANIFEST.SKIP patches scripts UPGRADE
Bucardo.pm dev Makefile META.yml pm_to_blib SIGNATURE
执行perl命令进行安装,如下所示。
postgres@pg01 bucardo-master]$ perl Makefile.PL
Warning: prerequisite CGI 0 not found.
Warning: prerequisite Pod::Parser 0 not found.
Generating a Unix-style Makefile
Writing Makefile for Bucardo
Writing MYMETA.yml and MYMETA.json
从上面的输出信息看,有些先决条件没安装,用yum search进行单独查询,一个一个安装依赖就行了。
然后进行make,信息如下所示。
[postgres@pg01 bucardo-master]$ make
Skip blib/lib/Bucardo.pm (unchanged)
cp bucardo blib/script/bucardo
"/usr/bin/perl" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/bucardo
Manifying 1 pod document
Manifying 1 pod document
最后进行sudo make install
[postgres@pg01 bucardo-master]$ sudo make install
[sudo] postgres 的密码:
Manifying 1 pod document
Manifying 1 pod document
Installing /usr/local/share/bucardo/bucardo.schema
Appending installation info to /usr/lib64/perl5/perllocal.pod
上面的提示信息中,录入操作系统postgres 的密码。
查看bucardo命令版本,如下所示:
[postgres@pg01 bucardo-master]$ bucardo -version
bucardo version 5.5.0
如果执行命令,有如下的报错信息,说明还是缺少了安装依赖,进行安装就行,命令如下所示。
Can't locate Data/Dumper.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./scripts/mysql_install_db line 42.
yum install 'perl(Data::Dumper)' -y
总结:从编译安装的过程看,安装过程和其它以前编译安装三板斧很像,不过这是PERL语言的安装。在安装过程中,如果发现缺乏了安装依赖,及时进行YUM安装依赖即可。
合作电话:010-64087828
社区邮箱:greatsql@greatdb.com