[Pgcluster-general] Replication works :) but only one way :(

Simon Bérubé sberube at accedian.com
Wed Nov 28 19:01:23 UTC 2007


Hi everyone,

I just installed PgCluster and my replication works for the moment,
but only in one way ?!?. I think I setup the thing correctly. The user
for replication can login without password on the other database host
and vice-versa, my server have consitent DNS name and RSYNC and SSh
without pass authentification (with public/private keys) works great.
For the moment, when I update or insert a new row in the database on
server1, the row is replicated perfectly on the server2 database, wich
is correct, but when I update or insert a new row on server2 nothing
append on server1, it's seem that the replication server (pgreplicate)
situated on server1 is nerver notice. I "tail" the log of pgreplicate
and nothing is written about a "update or insert request from
server2".

For the moment, server1 host the database (postgresql) I want to
replicate and also the replication server (pgreplicate), server2 just
run the database (postgresql). So, server1 has a configuration file
for the cluster node (cluster.conf) and another one for the
replication server (pgreplicate.conf). Server2 has just one
configuration file for the cluster node (cluster.conf). Note that I
didn't use load balancer at all. There is my configuration file for
each server

#### SERVER_1 ####

==== cluster.conf ====

<Replicate_Server_Info>
  <Host_Name> server1.accedian.local </Host_Name>
  <Port> 8001 </Port>
  <Recovery_Port> 8101 </Recovery_Port>
</Replicate_Server_Info>

<Host_Name> 		server1.accedian.local 	</Host_Name>
<Recovery_Port> 	                7001 			</Recovery_Port>
<Rsync_Path> 		/usr/bin/rsync 		</Rsync_Path>
<Rsync_Option> 		ssh -2 			</Rsync_Option>
<Rsync_Compress> 	                yes 			</Rsync_Compress>
<Pg_Dump_Path>		/usr/local/pgsql/bin/pg_dump 	</Pg_Dump_Path>
<When_Stand_Alone> 	read_write			</When_Stand_Alone>
<Replication_Timeout> 	1min 			</Replication_Timeout>
<LifeCheck_Timeout> 	3s			</LifeCheck_Timeout>
<LifeCheck_Interval> 	                11s 			</LifeCheck_Interval>

==== pgreplicate.conf ====

<Cluster_Server_Info>
  <Host_Name>	  server1.accedian.local	</Host_Name>
  <Port>	                  5432	      	 	</Port>
  <Recovery_Port>       7001	  	 	</Recovery_Port>
</Cluster_Server_Info>

<Cluster_Server_Info>
  <Host_Name>          server2.accedian.local 	</Host_Name>
  <Port>                     5432	       	 	</Port>
  <Recovery_Port>      7001         	 	</Recovery_Port>
</Cluster_Server_Info>

<Host_Name>               server1.accedian.local             </Host_Name>
<Replication_Port>        8001        	                 </Replication_Port>
<Recovery_Port>           8101        		 </Recovery_Port>
<RLOG_Port>               8301        		 </RLOG_Port>
<Response_Mode>        reliable      		 </Response_Mode>
<Use_Replication_Log>  yes		                 </Use_Replication_Log>
<Replication_Timeout>  1min       		 </Replication_Timeout>
<LifeCheck_Timeout>    3s  		                 </LifeCheck_Timeout>
<LifeCheck_Interval>      15s        		 </LifeCheck_Interval>		

<Log_File_Info>
  <File_Name>	/usr/local/pgsql/data/pgreplicate.log	</File_Name>
  <File_Size>	10M				</File_Size>
  <Rotate>	                 3				</Rotate>
</Log_File_Info>


#### SERVER_2 ####

==== cluster.conf ====

<Replicate_Server_Info>
  <Host_Name> 	server1.accedian.local 	</Host_Name>
  <Port> 		8001 			</Port>
  <Recovery_Port>     8101 			</Recovery_Port>
</Replicate_Server_Info>

<Host_Name>      	                server2.accedian.local	</Host_Name>
<Recovery_Port>		7001			</Recovery_Port>
<Rsync_Path>		/usr/bin/rsync		</Rsync_Path>
<Rsync_Option>		ssh -2			</Rsync_Option>
<Rsync_Compress>	                yes			</Rsync_Compress>
<Pg_Dump_Path>		/usr/local/pgsql/bin/pg_dump	</Pg_Dump_Path>
<When_Stand_Alone>	read_write			</When_Stand_Alone>
<Replication_Timeout>	1min			</Replication_Timeout>
<LifeCheck_Timeout>	                3s			</LifeCheck_Timeout>
<LifeCheck_Interval>	                11s			</LifeCheck_Interval>


Also, the configuration file for identifing the hosts (/etc/hosts) are
configurated correctly. There they are :

#### SERVER_1 ####

==== /etc/hosts ====

127.0.0.1	                localhost
127.0.0.1	                server1.accedian.local	server1
192.168.10.40	server1.accedian.local	server1
192.168.10.41	server2.accedian.local	server2

#### SERVER_2 ####

==== /etc/hosts ====

127.0.0.1	                localhost
127.0.0.1	                server2.accedian.local	server2
192.168.10.41	server2.accedian.local	server2
192.168.10.40	server1.accedian.local	server1

Last question... do I need to start a instance of pgreplicate on each
database node ?!? (one on server1 and one on server2)
Thanks,

Simon Berube
IT Consultant,
Accedian Networks Inc,
http://www.accedian.com

P-S: Sorry for my poor english, is not my first language, but I need
to make it working, I need to prove to my boss that not just Microsoft
SQL Server exists ;)


More information about the Pgcluster-general mailing list