sql >> Base de Datos >  >> RDS >> PostgreSQL

Actualización de Slony-I 2.0.x a la última versión 2.1.x

Slony-1 2.1 tiene muy buenas correcciones y nuevas características como la adición de tablas masivas, mejoras en WAIT FOR con Merge Set/Move Set, compatibilidad con TRUNCATE en tablas de replicación y muchas más. Estoy usando Slony-I 2.0.7, así que pensé en actualizarlo a la última versión. Actualizar Slony-I es muy simple y se puede lograr en unos pocos pasos. Mi procedimiento de actualización asume que ya existe una configuración Maestro/Esclavo con Slony 2.0.7.

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)