Tue Oct 11 05:13:06 PDT 2005
- Previous message: [Slony1-general] The multi-master question
- Next message: [Slony1-general] Slony-I implementation problem
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Regarding the first problem, the slony control schema i.e. "_slony_rep" is already created in the master database. So first remove the schema by issuing the following command via pgAdmin/psql. drop schema _slony_rep cascaded; And then execute the script that should work. In a specific replication configuration, the "init cluster" command is executed only against the master node and this marks the specific node as the master. After that you only need to add other nodes as the slave by using "store node" slonik command that adds the specific node as the slave node. So you don't need to run the script on the slave as node 2 is already joined as the slave via slony_test.sh that is run against master node. Thanks, Zahid -----Original Message----- From: slony1-general-bounces at gborg.postgresql.org [mailto:slony1-general-bounces at gborg.postgresql.org] On Behalf Of Melvin Davidson Sent: Saturday, October 01, 2005 12:36 AM To: slony1-general at gborg.postgresql.org Subject: [Slony1-general] Slony-I implementation problem I am having two problems implementing Slony-I across a network and was hoping perhaps someone can help me out. The first problem is that the slonik on the master complains that there is no admin conninfo for the slave node. I have the following env variables in both master and slave CLUSTERNAME=slony_rep MASTERDBNAME=important_db SLAVEDBNAME=important_db MASTERHOST=mas_serv.ournet.com SLAVEHOST=slv_serv.ournet.com REPLICATIONUSER=postgres The following is the script for the Master: ======================================================================= #!/bin/sh slonik <<_EOF_ # define the namespace the replication system uses in our example it is # slony_example cluster name = $CLUSTERNAME; # admin conninfo's are used by slonik to connect to the nodes one for each # node on each side of the cluster, the syntax is that of PQconnectdb in # the C-API node 1 admin conninfo = 'dbname=$MASTERDBNAME host=$MASTERHOST user=$REPLICATIONUSER'; node 2 admin conninfo = 'dbname=$SLAVEDBNAME host=$SLAVEHOST user=$REPLICATIONUSER'; # init the first node. Its id MUST be 1. This creates the schema # _$CLUSTERNAME containing all replication system specific database # objects. init cluster ( id=1, comment = 'Master Node'); # Because the history table does not have a primary key or other unique # constraint that could be used to identify a row, we need to add one. # The following command adds a bigint column named # _Slony-I_$CLUSTERNAME_rowID to the table. It will have a default value # of nextval('_$CLUSTERNAME.s1_rowid_seq'), and have UNIQUE and NOT NULL # constraints applied. All existing rows will be initialized with a # number table add key (node id = 1, fully qualified name = 'important_db.slony_test'); table add key (node id = 2, fully qualified name = 'important_db.slony_test'); # Slony-I organizes tables into sets. The smallest unit a node can # subscribe is a set. The following commands create one set containing # all 4 pgbench tables. The master or origin of the set is node 1. create set (id=1, origin=1, comment='All pgbench tables'); set add table (set id=1, origin=1, id=1, fully qualified name = 'radius.slony_test', comment='slony test table'); # Create the second node (the slave) tell the 2 nodes how to connect to # each other and how they should listen for events. store node (id=2, comment = 'Slave node'); store path (server = 1, client = 2, conninfo='dbname=$MASTERDBNAME host=$MASTERHOST user=$REPLICATIONUSER port-$PGPORT'); store path (server = 2, client = 1, conninfo='dbname=$SLAVEDBNAME host=$SLAVEHOST user=$REPLICATIONUSER port=$PGPORT'); store listen (origin=1, provider = 1, receiver =2); store listen (origin=2, provider = 2, receiver =1); _EOF_ ======================================================================= Problem 1. The script fails with: [postgres at tts postgres]$ ./slony_test.sh <stdin>:15: Error: namespace "_slony_rep" already exists in database of node 1 <stdin>:15: ERROR: no admin conninfo for node 152637712 I do not understand why the connect info does not work, since the full DNS is specified. On the Slave, I have the following script: ======================================================================= #!/bin/sh slonik <<_EOF_ # ---- # This defines which namespace the replication system uses # ---- cluster name = $CLUSTERNAME; # ---- # Admin conninfo's are used by the slonik program to connect # to the node databases. So these are the PQconnectdb arguments # that connect from the administrators workstation (where # slonik is executed). # ---- node 1 admin conninfo = 'dbname=$MASTERDBNAME host=$MASTERHOST user=$REPLICATIONUSER'; node 2 admin conninfo = 'dbname=$SLAVEDBNAME host=$SLAVEHOST user=$REPLICATIONUSER'; init cluster ( id=2, comment = 'Slave Node'); #---- #Add the key to be identical to master table #---- table add key (node id = 2, fully qualified name = 'important_db.slony_test'); #-- # Create the second node (the slave) tell the 2 nodes how to connect to # each other and how they should listen for events. #-- store node (id=1, comment = 'Master node'); store node (id=2, comment = 'Slave node'); store path (server = 1, client = 2, conninfo='dbname=$MASTERDBNAME host=$MASTERHOST user=$REPLICATIONUSER'); store path (server = 2, client = 1, conninfo='dbname=$SLAVEDBNAME host=$SLAVEHOST user=$REPLICATIONUSER'); store listen (origin=1, provider = 1, receiver =2); # ---- # Node 2 subscribes set 1 # ---- subscribe set ( id = 1, provider = 1, receiver = 2, forward = no); _EOF_ ======================================================================= Problem 2. The script fails with: [postgres at nas postgres]$ ./slony_slv_tst.sh <stdin>:25: Error: ev_origin for store_node cannot be the new node <stdin>:15: loading of file /usr/local/pgsql/share//xxid.v73.sql: PGRES_FATAL_ERROR ERROR: current transaction is aborted, queries ignored until end of transaction block ERROR: current transaction is aborted, queries ignored until end of transaction block <stdin>:15: ERROR: no admin conninfo for node 156827920 I'm not really sure what I am doing wrong. Your imput would be greatly appreciated. _______________________________________________ Slony1-general mailing list Slony1-general at gborg.postgresql.org http://gborg.postgresql.org/mailman/listinfo/slony1-general
- Previous message: [Slony1-general] The multi-master question
- Next message: [Slony1-general] Slony-I implementation problem
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-general mailing list