Kevin Kempter kevink at consistentstate.com
Wed Dec 10 10:41:32 PST 2008
Hi All;

I've setup a replicaton set in part by running the script listing below (The 
variables are defined in the referenced slony.setup.env file):


Once I ran all the other bits replication started ok, and seems to be largely 
working however I see these messages in the logs related to the 
esmasemailreports table:



# Initially it looked fine and I have several entries like this in the slon.log 
on the slave node:

2008-12-09 21:01:39 MST DEBUG2 remoteWorkerThread_1: all tables for set 1 
found on subscriber
2008-12-09 21:01:39 MST DEBUG2 remoteWorkerThread_1: copy table 
"public"."esmasemailreports"
2008-12-09 21:01:40 MST DEBUG3 remoteWorkerThread_1: table 
"public"."esmasemailreports" does not require Slony-I serial key
2008-12-09 21:01:41 MST DEBUG2 syncThread: new sl_action_seq 1 - SYNC 59
2008-12-09 21:01:41 MST DEBUG2 remoteListenThread_1: queue event 1,4452 SYNC
2008-12-09 21:01:41 MST DEBUG2 remoteWorkerThread_1: Begin COPY of table 
"public"."esmasemailreports"
2008-12-09 21:01:41 MST DEBUG2 remoteWorkerThread_1:  nodeon73 is 0
NOTICE:  truncate of "public"."esmasemailreports" succeeded
2008-12-09 21:01:41 MST DEBUG2 remoteWorkerThread_1: 1684 bytes copied for 
table "public"."esmasemailreports"
2008-12-09 21:01:41 MST DEBUG2 remoteWorkerThread_1: 2.496 seconds to copy 
table "public"."esmasemailreports"





However I also see errors like this later in the log:

2008-12-10 08:46:12 MST DEBUG2 remoteWorkerThread_1: all tables for set 1 
found on subscriber
2008-12-10 08:46:12 MST DEBUG2 remoteWorkerThread_1: copy table 
"public"."esmasemailreports"
2008-12-10 08:46:12 MST DEBUG2 localListenThread: Received event 2,4169 SYNC
2008-12-10 08:46:13 MST DEBUG3 remoteWorkerThread_1: table 
"public"."esmasemailreports" does not require Slony-I serial key
2008-12-10 08:46:14 MST DEBUG2 remoteListenThread_1: queue event 1,18169 SYNC
2008-12-10 08:46:14 MST ERROR  remoteWorkerThread_1: "select 
"_reporting_rep".setAddTable_int(1, 1, '"public"."esmasemailreports"', 
'esmasemailreports_primary_key', 'public.esmasemailreports'); " 
PGRES_FATAL_ERROR ERROR:  Slony-I: setAddTable_int: table id 1 has already 
been assigned!
2008-12-10 08:46:14 MST WARN   remoteWorkerThread_1: data copy for set 1 
failed - sleep 60 seconds




The table does have a PK - here's a describe:


# \d esmasemailreports
                                         Table "public.esmasemailreports"
    Column    |            Type             |                              
Modifiers
--------------+-----------------------------+----------------------------------------------------------------------
 reportname   | character varying           |
 toemail      | character varying           |
 reportrange  | character varying           |
 frequency    | character varying           |
 lastrun      | date                        |
 todate       | date                        |
 reportid     | integer                     | not null default 
nextval('esmasemailreports_reportid_seq'::regclass)
 reportformat | character varying           |
 started      | timestamp without time zone |
 groupby      | character varying           |
 programname  | character varying           |
 site         | character varying           |
 affid        | character varying           |
 priority     | integer                     | not null default 99
Indexes:
    "esmasemailreports_primary_key" PRIMARY KEY, btree (reportid)
Triggers:
    _reporting_rep_logtrigger_1 AFTER INSERT OR DELETE OR UPDATE ON 
esmasemailreports FOR EACH ROW EXECUTE PROCEDURE 
_reporting_rep.logtrigger('_reporting_rep', '1', 'vvvvvvkvvvvvvv')



Also SLONY does have the table already inserted into  sl_table on both the 
master and the slave

Here's the master listing:

# select * from sl_table where tab_relname = 'esmasemailreports';
-[ RECORD 1 ]------------------------------
tab_id      | 1
tab_reloid  | 155141059
tab_relname | esmasemailreports
tab_nspname | public
tab_set     | 1
tab_idxname | esmasemailreports_primary_key
tab_altered | t
tab_comment | public.esmasemailreports


and here's the slave listing:

# select * from sl_table where tab_relname = 'esmasemailreports';
-[ RECORD 1 ]------------------------------
tab_id      | 1
tab_reloid  | 669891954
tab_relname | esmasemailreports
tab_nspname | public
tab_set     | 1
tab_idxname | esmasemailreports_primary_key
tab_altered | t
tab_comment | public.esmasemailreports




Thanks in advance for any input, suggestions, etc...







============================
setup script listing
============================
 #!/bin/bash                                                  

. slony.setup.env



slonik <<_EOF_

cluster name = $CLUSTERNAME;

node 1 admin conninfo = 'dbname=$MASTERDBNAME host=$MASTERHOST 
port=$MASTERPORT user=$REPUSER password=none';                                                             
node 2 admin conninfo = 'dbname=$SLAVEDBNAME host=$SLAVEHOST port=$SLAVEPORT 
user=$REPUSER password=none';                                                                

init cluster ( id=1, comment = 'Master Node');

create set ( id=1, origin=1, comment = 'ESMAS REPLICATION SET' );


set add table ( set id=1, origin=1, id=1, fully qualified name = 
'public.esmasemailreports');                                                                             
set add table ( set id=1, origin=1, id=2, fully qualified name = 
'public.customersetting');                                                                               
set add table ( set id=1, origin=1, id=3, fully qualified name = 'public.dma');      
set add table ( set id=1, origin=1, id=4, fully qualified name = 
'public.summary');  
set add table ( set id=1, origin=1, id=5, fully qualified name = 
'public.qmxprofiles');                                                                                   
set add table ( set id=1, origin=1, id=6, fully qualified name = 
'public.logsprocessed');                                                                                 
set add table ( set id=1, origin=1, id=7, fully qualified name = 
'public.internalsummarystats');                                                                          
set add table ( set id=1, origin=1, id=8, fully qualified name = 
'public.internaloscpustats');                                                                            
set add table ( set id=1, origin=1, id=9, fully qualified name = 
'public.internalcpu');                                                                                   
set add table ( set id=1, origin=1, id=10, fully qualified name = 
'public.internalbrowser');                                                                              
set add table ( set id=1, origin=1, id=11, fully qualified name = 
'public.esmascrossover');                                                                               
set add table ( set id=1, origin=1, id=12, fully qualified name = 
'public.esmasqmxurl');
set add table ( set id=1, origin=1, id=13, fully qualified name = 
'public.esmasshows');
set add table ( set id=1, origin=1, id=14, fully qualified name = 
'public.esmasstatus');
set add table ( set id=1, origin=1, id=15, fully qualified name = 
'public.lgxuser');
set add table ( set id=1, origin=1, id=16, fully qualified name = 
'public.esmasepisodestats');
set add table ( set id=1, origin=1, id=17, fully qualified name = 
'public.esmaslocstats');
set add table ( set id=1, origin=1, id=18, fully qualified name = 
'public.esmassites');
set add table ( set id=1, origin=1, id=19, fully qualified name = 
'public.esmasuniqueid');

store node (id=2, comment = 'Slave Node 1');

store path (server = 1, client = 2, conninfo='dbname=$MASTERDBNAME 
host=$MASTERHOST port=$MASTERPORT user=$REPUSER password=none');
store path (server = 2, client = 1, conninfo='dbname=$SLAVEDBNAME 
host=$SLAVEHOST port=$SLAVEPORT user=$REPUSER password=none');


#store listen (origin=1, provider = 1, receiver =2);
#store listen (origin=2, provider = 2, receiver =1);

_EOF_



More information about the Slony1-general mailing list