PostgreSQL的OGG -- bucardo
perl Makefile.PL
make
make install
log_conflict_file = /home/postgres/log/bucardo_conflict.log
piddir = /home/postgres/run
reason_file = /home/postgres/log/bucardo.restart.reason.log
warning_file = /home/postgres/log/bucardo.warning.log
4. 初始化bucardo
[postgres@sdserver40_222 ~]$ bucardo install
This will install the bucardo database into an existing Postgres cluster.
Postgres must have been compiled with Perl support,
and you must connect as a superuser Current connection settings:
. Host: <none>
. Port:
. User: postgres
. Database: bucardo
. PID directory: /home/postgres/run
Enter a number to change it, P to proceed, or Q to quit: Change the host to: 127.0.0.1 Changed host to: 127.0.0.1
Current connection settings:
. Host: 127.0.0.1
. Port:
. User: postgres
. Database: bucardo
. PID directory: /home/postgres/run
Enter a number to change it, P to proceed, or Q to quit: Change the database name to: mydb Changed database name to: mydb
Current connection settings:
. Host: 127.0.0.1
. Port:
. User: postgres
. Database: mydb
. PID directory: /home/postgres/run
Enter a number to change it, P to proceed, or Q to quit: P Postgres version is: 9.5
Attempting to create and populate the bucardo database and schema
Database creation is complete Updated configuration setting "piddir"
Installation is now complete.
If you see errors or need help, please email bucardo-general@bucardo.org You may want to check over the configuration variables next, by running:
bucardo show all
Change any setting by using: bucardo set foo=bar
[postgres@sdserver40_222 ~]$ bucardo add db db1 dbname=mydb host=127.0.0.1 port= user=postgres
Added database "db1"
[postgres@sdserver40_222 ~]$ bucardo add db db2 dbname=mydb host=192.168.1.202 port= user=postgres
Added database "db2"
1)若添加若有表则用 all tables;
2) 只能同步存在主键的table;像这里的lottu01我是没建主键的;下面添加同步步骤会出现错误。
4. 添加同步
[postgres@sdserver40_222 ~]$ bucardo add sync sync1 relgroup=relgroup1 dbs=dbgroup1
Added sync "sync1"
Failed to add sync: DBD::Pg::st execute failed: ERROR: Table "public.lottu01" must specify a primary key! at line . at line .
CONTEXT: PL/Perl function "validate_sync" at /usr/local/bin/bucardo line
add sync:
bucardo add sync name relgroup=xxx dbs=xxx Adds a sync, which is a named replication event containing information
about what to replicate from where to where. The supported parameters
are: "dbs"
The name of a dbgroup or comma-delimited list of databases. All of
the specified databases will be synchronized. Required. "dbgroup"
The name of a dbgroup. All of the databases within this group will
be part of the sync. If the dbgroup does not exists and a separate
list of databases is given, the group will be created and populated. "relgroup"
The name of a relgroup to synchronize. All of the tables and/or
sequences in the relgroup will be synchronized. Required unless
"tables" is specified. "tables"
List of tables to add to the sync. This implicitly creates a
relgroup with the same name as the sync. Required unless "relgroup"
is specified. "status"
Indicates whether or not the sync is active. Must be either "active"
or "inactive". Defaults to "active". "rebuild_index"
Boolean indicating whether or not to rebuild indexes after every
sync. Defaults to off. "lifetime"
Number of seconds a KID can live before being reaped. No limit by
default. "maxkicks"
Number of times a KID may be kicked before being reaped. No limit by
default. "conflict_strategy"
The conflict resolution strategy to use in the sync. Supported
values: "bucardo_source"
The rows on the "source" database always "win". In other words,
in a conflict, Bucardo copies rows from source to target. "bucardo_target"
The rows on the "target" database always win. "bucardo_skip"
Any conflicting rows are simply not replicated. Not recommended
for most cases. "bucardo_random"
Each database has an equal chance of winning each time. This is
the default. "bucardo_latest"
The row that was most recently changed wins. "bucardo_abort"
The sync is aborted on a conflict. "onetimecopy"
Determines whether or not a sync should switch to a full copy mode
for a single run. Supported values are: : off
: always full copy
: only copy tables that are empty on the target "stayalive"
Boolean indicating whether or not the sync processes (CTL) should be
persistent. Defaults to false. "kidsalive"
Boolean indicating whether or not the sync child processes (KID)
should be persistent. Defaults to false. "autokick"
Boolean indicating whether or not tables in the sync should
automatically send kick messages when they're modified. May be
overridden by the "autokick" parameter of individual tables. "checktime"
An interval specifying the maximum time a sync should go before
being kicked. Useful for busy systems where you don't want the
overhead of notify triggers. "priority"
An integer indicating the priority of the sync. Lower numbers are
higher priority. Currently used only for display purposes. "analyze_after_copy"
Boolean indicating whether or not to analyze tables after every
sync. Off by default. Optional. "overdue"
An interval specifying the amount of time after which the sync has
not run that it should be considered overdue. "check_bucardo_sync"
issues a warning when a sync has not been run in this amount of
time. "expired"
An interval specifying the amount of time after which the sync has
not run that it should be considered expired. "check_bucardo_sync"
issues a critical message when a sync has not been run in this
amount of time. "track_rates"
Boolean indicating whether or not to track synchronization rates. "rebuild_index"
Boolean indicating whether or not to rebuild indexes after every
sync. Off by default. Optional. "strict_check"
Boolean indicating whether or not to be strict when comparing tables
in the sync. If the columns have different names or data types, the
validation will fail. But perhaps the columns are allowed to have
different names or data types. If so, disable "strict_check" and
column differences will result in warnings rather than failing the
validation. Defaults to true.
5. 启动bucardo
bucardo start
bucardo stop
bucardo restart
[postgres@sdserver40_222 ~]$ psql mydb
psql (9.5.)
Type "help" for help.
mydb=# delete from lottu03;
DELETE mydb=# insert into lottu03 values (1001,'bucardo');
INSERT
在目标库查看
[postgres@sdserver40_210 ~]$ psql mydb
psql (9.5.)
Type "help" for help. mydb=# select * from lottu03;
id | name
------+---------
| bucardo
( row)
Creating superuser 'bucardo'
Attempting to create and populate the bucardo database and schema INSTALLATION FAILED! (psql:/usr/local/share/bucardo/bucardo.schema:: ERROR: language "plperlu" does not exist
HINT: Use CREATE LANGUAGE to load the language into the database.)
解决方法;看提示知道需要“create language plperlu;”但是在我的环境之下
mydb=# create language plperlu;
ERROR: could not access file "$libdir/plperl": No such file or directory
postgres=# CREATE LANGUAGE plperlu;
CREATE LANGUAG
install_driver(Pg) failed: DBI version 1.614 required--this is only version 1.609 at /usr/share/perl5/Exporter/Heavy.pm line , <> line .
Compilation failed in require at (eval ) line , <> line .
perl: symbol lookup error: /usr/local/lib64/perl5/auto/DBD/Pg/Pg.so: undefined symbol: DBIc_AIADESTROY
Checking for existing processes
Can't locate boolean.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 /usr/local/share/perl5/Bucardo.pm line 34.
BEGIN failed--compilation aborted at /usr/local/share/perl5/Bucardo.pm line 34.
Compilation failed in require at /usr/local/bin/bucardo line 833.
解决方法: yum install perl-boolean
PostgreSQL的OGG -- bucardo的更多相关文章
- 使用ogg实现oracle到postgresql表的实时同步
参考:https://docs.oracle.com/goldengate/c1221/gg-winux/index.html https://blog.51cto.com/hbxztc/188071 ...
- OGG For Oracle To PostgreSQL
本文档描述OGG(Oracle goldengate)为Oracle同步到PostgreSQL数据库配置.在目前去“IOE”潮流.PostgreSQL确实是Oracle最好的替代品之一. 实验环境如下 ...
- 配置ogg从Oracle到PostgreSQL的同步复制json数据
标签:goldengate postgresql oracle json 测试环境说明 Oracle:Windows 8.1 + Oracle 12.2.0.1.0 + GoldenGate 12.3 ...
- PostgreSQL高可用性、负载均衡、复制与集群方案介绍
目录[-] 一.高可用性.负载均衡.复制的几个方案比较: 二.多节点集群方案比较 9.3官方文档(中文):http://58.58.27.50:8079/doc/html/9.3.1_zh/high- ...
- PostgreSQL and bloat
The bucardo project has released its nagios plugins for PostgreSQL and we can extract from them this ...
- Top PG Clustering HA Solutions for PostgreSQL
转自:https://severalnines.com/blog/top-pg-clustering-ha-solutions-postgresql If your system relies on ...
- PostgreSQL逻辑复制之pglogical篇
PostgreSQL逻辑复制之slony篇 一.pglogical介绍 pglogical 是 PostgreSQL 的拓展模块, 为 PostgreSQL 数据库提供了逻辑流复制发布和订阅的功能. ...
- PostgreSQL Replication之第六章 监控您的设置(4)
6.4 处理监控工具 还有几个监控工具可以使您的日常生活更轻松. 其中最流行的监控工具是Nagios.它被广泛地使用,也支持各种软件组件. 要使用 Nagios 来监控您的 PostgreSQL 集群 ...
- PostgreSQL、Greenplum 日常监控 和 维护任务
背景 Greenplum的日常监控点.评判标准,日常维护任务. 展示图层 由于一台主机可能跑多个实例,建议分层展示. 另外,即使是ON ECS虚拟机(一个虚拟机一个实例一对一的形态)的产品形态,实际上 ...
随机推荐
- 获取程序的SHA1值
android获取程序的SHA1值 public static String getSHA1(Context context) { try { PackageInfo info = context.g ...
- Python 中的枚举类型~转
Python 中的枚举类型 摘要: 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期.月份.状态等. 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表 ...
- uploadfile图片上传和ashx
uploadify.swf需要是支持中文 $(function () { //获取所有上传按钮id $("div[id^='fileInput_']").each(fu ...
- 动态加载多国语言 ---- cookie + 浏览器
一.多国语言缩写列表 因为涉及到浏览器的可接收语言,所以需要知道各个国家的语言缩写. 这个百度一下即可. en 英文 en_US 英文 (美国) ar 阿拉伯文 ar_AE 阿拉伯文 (阿拉伯联合酋长 ...
- Flink – window operator
参考, http://wuchong.me/blog/2016/05/25/flink-internals-window-mechanism/ http://wuchong.me/blog/201 ...
- PostgreSQL全文检索zhparser使用
本文引用自: http://blog.chinaunix.net/uid-20726500-id-4820580.html 防止文章丢失才进行复制 PostgreSQL支持全文检索,其内置的缺省的分词 ...
- HTML表单
表单的主要作用在于在网页上提供一个图形用户界面,以采集和提交用户输入的数据.使用输入控件:1.文本框<input type="text">:2.口令输入框input t ...
- Python开发【前端】:汇总
页面模板 1.EasyUI(推荐指数★) JQuery EasyUI中文网 下载 使用方法:把文件下载到本地.直接从官网上把源码拷贝过来,更改下js的路径即可 优点:功能非常多.非常齐全 偏做后台管理 ...
- 以rem为单位根据移动设备的分辨率动态设置font-size
无需指定font-size的大小 <script> // //- 设置根元素fontSize~ // (function (doc, win) { // var _root = doc.d ...
- Linux 搭建NTP服务器
NTP服务器[Network Time Protocol(NTP]是用来使计算机时间同步化的一种协议,NTP服务器可以对其它服务器做时间同步化,从而达到时间统一. 配置环境及要求: A. 假设10.8 ...