Hi, list, I have a single master / single slave set up with Slony-I 1.2.11 and PG 8.2. It has been running well for quite a long time until yesterday, when after executing a DDL script on the master server, the replication broke. The DDL script just added a column to a table in the replication set.
The slave log shows the following entries: ... 2009-01-15 13:03:48 GMT-8 DEBUG2 remoteListenThread_1: queue event 1,2517085 SYNC 2009-01-15 13:03:48 GMT-8 ERROR remoteWorkerThread_1: "select "_homemaster".ddlScript_prepare_int(1, -1); " PGRES_FATAL_ERROR ERROR: Slony-I: alterTableRestore(): Table " public"."department" is not in altered state CONTEXT: SQL statement "SELECT "_homemaster".alterTableRestore( $1 )" PL/pgSQL function "ddlscript_prepare_int" line 46 at perform 2009-01-15 13:03:48 GMT-8 ERROR remoteWorkerThread_1: DDL preparation failed - set 1 - only on node % 2009-01-15 13:03:48 GMT-8 DEBUG2 slon_retry() from pid=5981 2009-01-15 13:03:48 GMT-8 DEBUG1 slon: retry requested 2009-01-15 13:03:48 GMT-8 DEBUG2 slon: notify worker process to shutdown "public"."department" is the first table in the replication set, but not the table whose schema is modified. I browsed throught the code and found that in dllscript_prepare_int, alterTableRestore is called on all tables in the replication set, and in this function, the field "tab_altered" is checked to see if the table is altered. I found that in sl_table on the master node, the "tab_altered" field is set to True for all tables, while on the slave node, it is set to False. If the function alterTableRestore is run on the slave node, the False value of the 'tab_altered' would cause the above error. But I don't know what caused the error and how to fix it. Any information would be highly appreciated. Thanks! -- Hong Yuan 大管家网上建材超市 装修装潢建材一站式购物 http://www.homemaster.cn
_______________________________________________ Slony1-general mailing list [email protected] http://lists.slony.info/mailman/listinfo/slony1-general
