1.环境
OS:windows Server 2003 SP1;
PostGreSQL: postgresql-8.2.4-1;
Slony-I: postgresql-8.2.4-1自带的Slony-I;
2.实现要求
单向同步主服务器“user_level”到从服务器的“user_level”;
其中主服务器IP:192.168.0.42,DBName:XTSMH,UserName:postgres,PassWord:1234;
从服务器IP:192.168.0.50,DBName:XTSMH,UserName:postgres,PassWord:1234;
3.配置步骤
step1:
注册相应的动态链接库:
进入%PG%/lib目录,运行“regsvr32 slevent.dll”;
step2:
注册服务:
在主服务器上以及从服务器上,进入%PG%/bin目录,运行“slon -regservice”;
step3:
建立联通性:
在主服务器上以及从服务器上,编辑%PG%/data/pg_hba.conf,使网络中的两个数据库服务器能相互访问;
step4:
建立主服务器脚本文件“master.script”;
step5:
运行脚本文件:
在主服务器里进入%PG%/bin运行“slonik master.script” ;
如报错提示缺少相应的*.sql文件,请将%PG%/share下的xxid.v80.sql, slony1_funcs.v80.sql,slony1_base.v80.sql复制后更名为相应的文件(只改文件名,如将xxid.v80.sql复制后改为xxid.v81.sql);
step6:
在主服务器上建立引擎配置文件“slony_master.conf”其内容是集群名称以及指向从服务器的连接配置;
step7:
为服务添加引擎:
在主服务器里进入%PG%/bin运行“slon -addengine slony_master.conf”;
step8:
建立从服务器脚本文件“slave.script”;
step9:
运行脚本文件:
在从服务器里进入%PG%/bin运行“slonik slave.script” ;
如报错提示缺少相应的*.sql文件,请参看step5;
step10:
在从服务器上建立引擎配置文件“slony_slave.conf”其内容是集群名称以及指向主服务器的连接配置;
step11:
为服务添加引擎:
在从服务器里进入%PG%/bin运行“slon -addengine slony_slave.conf”;
step12:
分别在主服务器和从服务器上挂起服务并监听引擎;
4. master.script
#定义集群名称
cluster name=SMHSYN;
# 定义复制节点
#主节点
node 1 admin conninfo = 'dbname=XTSMH host=192.168.0.42 user=postgres password=1234';
#从节点
node 2 admin conninfo = 'dbname=XTSMH host=192.168.0.50 user=postgres password=1234';
# 初始化集群,id从1开始
init cluster ( id = 1, comment = 'Master Node' );
#设置参与同步的数据表,创建复制集,id也是从1开始,从复制集添加表
create set ( id = 1, origin = 1, comment = 'All XTSMH Tables' );
set add table ( set id = 1, origin = 1, id = 1, fully qualified name = 'public.user_level', comment = 'Table user_level' );
#设置存储节点,存储主从两个节点的信息
store node ( id = 2, comment = 'Slave Node' );
#设置存储路径
#主节点
store path ( server = 1, client = 2, conninfo = 'dbname=XTSMH host=192.168.0.42 user=postgres password=1234');
#从节点
store path ( server = 2, client = 1, conninfo = 'dbname=XTSMH host=192.168.0.50 user=postgres password=1234');
#设置侦听事件和订阅方向,复制中角色,主节点是原始提供者,从节点是接受者
store listen ( origin = 1, provider = 1, receiver = 2 );
store listen ( origin = 2, provider = 2, receiver = 1 );
5. slony_master.conf
#集群名称
cluster_name = 'SMHSYN'
#连接主服务器的信息
conn_info = 'dbname=XTSMH host=192.168.0.42 user=postgres password=1234'
6. slave.script
#定义集群名称
cluster name=SMHSYN;
#定义复制节点
#主节点
node 1 admin conninfo = 'dbname=XTSMH host=192.168.0.42 user=postgres password=1234';
#从节点
node 2 admin conninfo = 'dbname=XTSMH host=192.168.0.50 user=postgres password=1234';
#定义订阅
SUBSCRIBE SET (ID = 1, PROVIDER = 1, RECEIVER = 2, FORWARD = YES);
7. slony_slave.conf
#集群名称
cluster_name = 'SMHSYN'
#连接从服务器的信息
conn_info = 'dbname=XTSMH host=192.168.0.50 user=postgres password=1234'
分享到:
相关推荐
主要给大家介绍了关于PostgreSQL中Slony-I同步复制部署的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用PostgreSQL具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
只是一个使用 wx 工具包(Slony [CO]nfiguration to [OL])用 c++ 编写的用于 slony 配置的小型 GUI 工具。
slony源代码和配置文件 10分钟内,解决安装雨配置
实用与特色兼顾:书中不仅介绍了与PostgreSQL配套的实用性很强的主流开源软件(如PgBouncer、Slony-I、Bucardo、PL/Proxy、pgpool-II、Postgres-XC),还针对PostgreSQL的特色功能(如规则系统、正则表达式、序列...
添加Slony手册文档时,它已重命名。 文档文件为XML格式,由于使用了Makefile文件,因此可以生成不同格式的文件:HTML,PDF,文本。 版本7.4和8.0为SGML格式。 Slony目录 该目录包含XML格式的Slony文档。 它还在...
与PostgreSQl配合的开源软件很多,有很多分布式集群软件,如pgpool、pgcluster、slony、plploxy等等,很容易做读写分离、负载均衡、数据水平拆分等方案,而这在MySQL下则比较困难。 3. PostgreSQL源代码写的很清晰...
2. 与PostgreSQl配合的开源软件很多,有很多分布式集群软件,如pgpool、pgcluster、slony、plploxy等等,很容易做读写分离、负载均衡、数据水平拆分等方案,而这在MySQL下则比较困难。 3. PostgreSQL源代码写的很...
SM Framework Postgresql扩展集 此SM Framework扩展集包含以下与postgresql相关的扩展: PostgreSQL PostgreSQL数据库系统。 阅读postgresql / README.md以获取更多详细信息。 pgpool 提供连接池,复制,负载平衡,...
What you will learn Protect your data with PostgreSQL replication and management tools such as Slony, Bucardo, pglogical, and WAL-E Hardware planning to help your database run efficiently Prepare for ...
pgologic:针对PostgreSQL 13、12、11、10、9.6、9.5、9.4(Postgres)的逻辑复制扩展,提供了比Slony,Bucardo或Londiste更快的复制,以及跨版本升级
Slony让我们可以复制数据(有时候也可以分区),而pgbouncer为我们解决了保持链接和连接池的问题。 另外,让我们看看他们的语言:我这个星期很高兴能够学会如何在PGSQL8.4中使用递归查询,他们实在太强大了。这就是...
2.保留所有可以捕获的记录——以 PostgresQL 为例,包括有 WAL 文件,Slony 复制,快照技术,基于硬盘的 DB 版本(快照附带的) 3.不要因为优化引入更多问题。通常我们解决问题时做出来的东西都会转变成之后运维工作的...