Craig, thank you so much for the quick response! Adding these cleanup functions sounds wonderful, thank you for looking into that.
One question, why template0 vs template1 ? (My guess is because you want it to be devoid of pretty much everything?) On Tue, May 12, 2015 at 1:31 AM, Craig Ringer <cr...@2ndquadrant.com> wrote: > > > On 12 May 2015 at 14:36, Wayne E. Seguin <wayneeseg...@gmail.com> wrote: > >> Also, >> >> Is there a way to remove these things from the init target node easier? >> >> d= p=504 a=ERROR: 55000: previous init failed, manual cleanup is required >> d= p=504 a=DETAIL: Found bdr.bdr_nodes entry for bdr >> (6147869128174526660,1,16908,) with state=i in remote bdr.bdr_nodes >> d= p=504 a=HINT: Remove all replication identifiers and slots >> corresponding to this node from the init target node then drop and recreate >> this database and try again >> > > Now that we have SQL-level join it'd probably make sense to provide a > cleanup function for failed node joins. At this point there's no such > function. > > > Take note of the node identity given in the error as it corresponds to the > replication identifier name and slot name. > > You need to, on the join target node: > > SELECT pg_drop_replication_slot(slot_name) > FROM pg_replication_slots > WHERE slot_name = > bdr.bdr_format_slot_name('6147869128174526660',1,16908) > > where the sysid, timeline ID and database OID are those given in the > error. You must run this from the target node's database, as it'll only > consider slots for the current database. > > Then > > SELECT pg_replication_identifier_drop(...) > > the replication identifier used, after looking up the replication > identifier from pg_catalog.pg_replication_identifier. There isn't an > equivalent of bdr.bdr_format_slot_name for replication identifiers; I'll > look at adding one. Look it up visually or write a simple function to > format the string in the mean time. > > Then delete the bdr.bdr_nodes entry for the failed-to-join node and any > bdr.bdr_connections entries for it. > > You *must* drop and re-create the database on the failed-to-join node, > making a new blank db (preferably from template0). > > > > > -- ~Wayne Wayne E. Seguin wayneeseg...@gmail.com wayneeseguin on irc.freenode.net http://twitter.com/wayneeseguin/ https://github.com/wayneeseguin/