Jan Wieck jan at wi3ck.info
Tue Sep 29 14:46:06 PDT 2015
On 09/29/2015 05:23 PM, Mark Steben wrote:
> Good evening
>
> Fairly simple question (I think)
> Can I use the pg_upgrade contrib module to upgrade from postgres 9.2 to
> 9.4 without having to
> re-define and re-subscribe all of the slony replicated data?  My initial
> pg_upgrade tests are yelling at me that some slony libraries are not
> found in the new 9.4 binaries:
>
> Could not load library "$libdir/slony1_funcs"
> ERROR:  could not access file "$libdir/slony1_funcs": No such file or
> directory
>
> Hopefully it is just and issue of copying the slony binaries from 9.2 to
> the same libraries in 9.4 on master and slave, or is a re-creation
> necessary?  (We are running slony 2.2.3)

Not that simple. Slony is quite dependent on version numbers.

All nodes in a Slony cluster must run the exact same Slony version.

Each node can run against a different PostgreSQL version, as long as the 
cluster's Slony version supports that PostgreSQL version. However, the 
shared libs and such on each node must be of that Slony version compiled 
against that PostgreSQL version.

So just copying the 9.2 slony $lib and other content over to the 9.4 lib 
and shared directories isn't going to do it. You need those files to be 
built against the 9.4 tree. This is because of code shift inside the 
PostgreSQL backend. One and the same Slony shared lib function is using 
different backend code to accomplish the same task. There is quite a bit 
of #ifdef stuff dependent on PostgreSQL versions in the Slony shared 
object code.


Regards, Jan


-- 
Jan Wieck
Senior Software Engineer
http://slony.info


More information about the Slony1-general mailing list