Plan alternativo:
1. Haga una copia de seguridad del esquema slony existente (_slonyschema) de maestro/esclavo
2. Haga una copia de seguridad de los archivos binarios de Slony ANTIGUOS
3. Copia de seguridad de todo crea inicialmente archivos de configuración slony.
Procedimiento de actualización:
1. Detenga todos los procesos slon en ejecución en todos los nodos.
2. Instale la nueva versión de los archivos binarios de Slony 2.1.x.
3. Ejecute el script de actualización de SLONIK
4. Comience slony con nuevos binarios en todos los nodos.
Enlace:http://slony.info/documentation/2.1/slonyupgrade.html
Current PostgreSQL & Slony version:
repdb=# select substr(version(),1,26) as "PostgreSQL-Version",_myrep.slonyversion();
PostgreSQL-Version | slonyversion
----------------------------+--------------
PostgreSQL 9.1.3 on x86_64 | 2.0.7
(1 row)
Instalar/Configurar la última versión de Slony-I 2.1.x source
wget http://main.slony.info/downloads/2.0/source/slony1-2.1.0.tar.bz2
./configure --prefix=/opt/PostgreSQL/9.1/bin --with-pgconfigdir=/opt/PostgreSQL/9.1/bin
make
make install
After installation, you can find three executables slon, slonik & slon_logshipper under "/opt/PostgreSQL/9.1/bin/bin".
-bash-4.1$ ./slon -v
slon version 2.1.0
Script de actualización:
## Upgrade script
cluster name = myrep;
node 1 admin conninfo='host=localhost dbname=postgres user=postgres port=5432';
node 2 admin conninfo='host=localhost dbname=repdb user=postgres port=5433';
UPDATE FUNCTIONS ( ID = 1 );
UPDATE FUNCTIONS ( ID = 2 );
Note: Update all the nodes with UPDATE FUNCTIONS. I have two nodes Master(5432) and Slave(5433).
Ejecute el script:
-bash-4.1$ slonik upgrade_207_201.slonik
Inicie el proceso slony con nuevos binarios y verifique los cambios.
postgres=# select substr(version(),1,26) as "PostgreSQL-Version",_myrep.slonyversion();
PostgreSQL-Version | slonyversion
----------------------------+--------------
PostgreSQL 9.1.3 on x86_64 | 2.1.0
(1 row)
Puede ver que mi versión slony se ha actualizado a la última. También puede realizar una verificación de estado en el esquema con una función proporcionada por Slony-I en su documentación. La función Health Check debe devolver TRUE, de lo contrario, sus catálogos PG y Slony están dañados.
Enlace de función:http://slony.info/documentation/2.1/function.slon-node-health-check.html
postgres=# select node_health_check();
node_health_check
-------------------
t
(1 row)