Mon Nov 16 19:32:14 PST 2015
- Previous message: [Slony1-general] remote listener serializability
- Next message: [Slony1-general] slony newbie setup trouble
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Please pardon the length of this email but I felt it is best to give a global view I was looking at slonik for a project. All the setup info, tutorials etc etc seems to vary http://raghavt.blogspot.com/2012/07/simple-slony-i-replication-setup.html and http://www.linuxjournal.com/article/7834 Just to name two sources of study So I used two approaches 1 - Passing commands to slonik directly. All ok 2 - Using the provided perl scripts . Not ok and this is where I would like some tips , guidance master node: 192.168.5.221 master db: primdb slave node: 192.168.5.222 slave db: bkdb I use .pgpass /etc/slony1-94/slon_tools.conf I stripped out all comments to keep things to a minimum 1 # 2 # Author: Christopher Browne 3 # Copyright 2004-2009 Afilias Canada 4 # Revised extensively by Steve Simms 5 6 # Keeping the following three lines for backwards compatibility in 7 # case this gets incorporated into a 1.0.6 release. 8 # 9 # TODO: The scripts should check for an environment variable 10 # containing the location of a configuration file. That would 11 # simplify this configuration file and allow Slony-I tools to still work 12 # in situations where it doesn't exist. 13 # 14 if ($ENV{"SLONYNODES"}) { 15 require $ENV{"SLONYNODES"}; 16 } else { 17 21 $CLUSTER_NAME = 'armandpc'; 26 $PIDFILE_DIR = '/var/run/slony1'; 36 $LOGDIR = '/var/log/slony1-94'; 53 $MASTERNODE = 1; 56 $DEBUGLEVEL = 2; 63 $SLEEP_TIME = 60; 64 65 # Watchdog version to use 1 or 2 (default 1) 66 # $WATCHDOG_VERSION = 1; 67 # Be verbose (default 1) 68 $WATCHDOG_VERBOSE = 0; 75 add_node(node => 1, 76 host => '192.168.5.221', 77 dbname => 'primdb', 78 port => 5432, 79 user => 'postgres', 80 password => '', 81 config => '/etc/slony1-94/slon_tools.conf'); 83 add_node(node => 2, 84 host => '192.168.5.222', 85 dbname => 'bkdb', 86 port => 5432, 87 user => 'postgres', 88 password => '', 89 config => '/etc/slony1-94/slon_tools.conf'); 91 } 96 $SLONY_SETS = { 98 # A unique name for the set 99 "set1_1" => { 101 # The set_id, also unique 102 "set_id" => 1, 127 "table_id" => 1, 128 "sequence_id" => 1, 132 "pkeyedtables" => [ 133 'test1', 134 ], 138 "keyedtables" => {}, 139 "sequences" => [], 140 }, 142 }; 152 if ($ENV{"SLONYSET"}) { 153 require $ENV{"SLONYSET"}; 154 } 156 # Please do not add or change anything below this point. 157 1; And now the questions/steps a - add_node(node => 1, host => '192.168.5.221', dbname => 'primdb', port => 5432, user => 'postgres', password => '', config => '/path/to/node1_config_file.conf'); I presume this would be config => '/etc/slony1-94/slon_tools.conf' or am I wrong ? b - "pkeyedtables" => [ 'test1', ], The table name in single or double quotes ? I saw an example with double quotes c - steps done /usr/pgsql-9.4/bin/slonik_init_cluster -c /etc/slony1-94/slon_tools.conf # INIT CLUSTER cluster name = armandpc; node 1 admin conninfo='host=192.168.5.221 dbname=primdb user=postgres port=5432'; node 2 admin conninfo='host=192.168.5.222 dbname=bkdb user=postgres port=5432'; init cluster (id = 1, comment = 'Node 1 - primdb at 192.168.5.221'); # STORE NODE store node (id = 2, event node = 1, comment = 'Node 2 - bkdb at 192.168.5.222'); echo 'Set up replication nodes'; # STORE PATH echo 'Next: configure paths for each node/origin'; store path (server = 1, client = 2, conninfo = 'host=192.168.5.221 dbname=primdb user=postgres port=5432'); store path (server = 2, client = 1, conninfo = 'host=192.168.5.222 dbname=bkdb user=postgres port=5432'); echo 'Replication nodes prepared'; echo 'Please start a slon replication daemon for each node'; -bash-4.1$ /usr/pgsql-9.4/bin/slonik_init_cluster -c /etc/slony1-94/slon_tools.conf |/usr/pgsql-9.4/bin/slonik <stdin>:10: Set up replication nodes <stdin>:13: Next: configure paths for each node/origin <stdin>:16: Replication nodes prepared <stdin>:17: Please start a slon replication daemon for each node /usr/pgsql-9.4/bin/slonik_create_set -c /etc/slony1-94/slon_tools.conf 1 cluster name = armandpc; node 1 admin conninfo='host=192.168.5.221 dbname=primdb user=postgres port=5432'; node 2 admin conninfo='host=192.168.5.222 dbname=bkdb user=postgres port=5432'; # TABLE ADD KEY # CREATE SET create set (id = 1, origin = 1, comment = 'Set 1 (set1_1) for armandpc'); # SET ADD TABLE echo 'Subscription set 1 (set1_1) created'; echo 'Adding tables to the subscription set'; set add table (set id = 1, origin = 1, id = 1, full qualified name = 'public.test1', comment = 'Table public.test1 with primary key'); echo 'Add primary keyed table public.test1'; # SET ADD SEQUENCE echo 'Adding sequences to the subscription set'; echo 'All tables added'; /usr/pgsql-9.4/bin/slonik_create_set -c slon.conf 1|/usr/pgsql-9.4/bin/slonik <stdin>:11: Subscription set 1 (set1_1) created <stdin>:12: Adding tables to the subscription set <stdin>:16: Add primary keyed table public.test1 <stdin>:19: Adding sequences to the subscription set <stdin>:20: All tables added /usr/pgsql-9.4/bin/slon_start -c /etc/slony1-94/slon_tools.conf 1 & fails to start 2015-11-16 20:59:50 CST ERROR syntax error in file "/etc/slony1-94/slon_tools.conf" line 13, near end of line 2015-11-16 20:59:50 CST CONFIG main: slon version 2.2.4 starting up usage: /usr/pgsql-9.4/bin/slon [options] clustername conninfo Options: -h print usage message and exit -v print version and exit -d <debuglevel> verbosity of logging (1..4) -s <milliseconds> SYNC check interval (default 10000) -t <milliseconds> SYNC interval timeout (default 60000) -o <milliseconds> desired subscriber SYNC processing time -g <num> maximum SYNC group size (default 6) -c <num> how often to vacuum in cleanup cycles -p <filename> slon pid file -f <filename> slon configuration file -a <directory> directory to store SYNC archive files -x <command> program to run after writing archive file -q <num> Terminate when this node reaches # of SYNCs -r <num> # of syncs for -q option -l <interval> this node should lag providers by this interval So what gives ? How do I debug, fix , move forward ? Aside the doc which maybe I missed , has an example which yes it works but it not going in all these details, any other examples and so on ? Many thanks Armand
- Previous message: [Slony1-general] remote listener serializability
- Next message: [Slony1-general] slony newbie setup trouble
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-general mailing list