Wed Nov 23 18:41:42 PST 2011
- Previous message: [Slony1-general] error while slonik_execute_script(slony 2.1.0+postgresql 8.3.16)
- Next message: [Slony1-general] Slony err
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, 22 Nov 2011 10:25:57 -0500 "Steve Singer" <ssinger at ca.afilias.info> wrote: > On 11-11-22 08:00 AM, Michael Cheung wrote: > > Hi all; > > (postgres version 8.3.16, slony version 2.1.0) > > > > While I run sql to create index on a huge table(named tableA) by slonik_execute_script, > > (actually this operation cost me almost 20 min.) > > And slonik_execute_script command end with following error message. > > > > <stdin>:5: NOTICE: public.tableB has an invalid configuration on the log trigger. This was not corrected because > > only_lock is true and the table is not locked. > > CONTEXT: SQL statement "SELECT "_apl_repl1".repair_log_triggers(true)" > > PL/pgSQL function "ddlscript_complete_int" line 5 at PERFORM > > SQL statement "SELECT "_apl_repl1".ddlScript_complete_int( $1 , $2 )" > > PL/pgSQL function "ddlscript_complete" line 7 at PERFORM > > > > And I have check the new index on table A on every node, it is created and seems fine. > > And record count on tableB is same on every node. Everything seems well. > > > > But anyone can tell me what happened with this message? And is it safe to just ignore it? > > > > If you look at the Slony log trigger on when of your tables it will look > something like this: > > > _test_logtrigger AFTER INSERT OR DELETE OR UPDATE ON a FOR EACH ROW > EXECUTE PROCEDURE _test.logtrigger('_test', '1', 'kvk') > > The 'kvk' means that the first column in the table is part of the key, > the second column is not part of a key(primary key or unique > constraint), and the third column makes up the second component of the > unique key. > > If you do something to the table to change this, ie drop the second > column. Then this argument order is no longer correct and slony needs > to recreate the logtrigger to have the correct arguments. Doing that > will require an exclusive lock. If EXECUTE SCRIPT in 2.1 determines > that the script has already taken out an exclusive lock on the table > then it will just fix the trigger. However it won't go and obtain the > lock. > > The function select _test.determineAttKindUnique('public.a','a_pkey'); > (where _test is your slony schema name) will tell you want the arguments > should be for a particular function. Compare the output of that for > your tableB with the arguments on the trigger (\d in psql). > > If you call _test.repair_log_trigger(false) it will take an exclusive > lock on the tables it requires and repair the trigger arguments. (You > would need to do that on all nodes). > Thanks for your guide in detail. I do change the pkey for tableA before , and now I have repaired trigger on tableA by repair_log_triggers as you said. Thanks for your help.
- Previous message: [Slony1-general] error while slonik_execute_script(slony 2.1.0+postgresql 8.3.16)
- Next message: [Slony1-general] Slony err
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-general mailing list