Slony-I for Win的配置文档

时间:2023-02-07 05:22:16

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'

相关文章