PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Aggiornamento di Slony-I 2.0.x all'ultima versione 2.1.x

Slony-1 2.1 ha ottime correzioni e nuove funzionalità come l'aggiunta di tabelle in blocco, il miglioramento di WAIT FOR con Merge Set/Move Set, supporto per TRUNCATE sulle tabelle di replica e molti altri. Sto usando Slony-I 2.0.7, quindi ho pensato di aggiornarlo all'ultima versione. L'aggiornamento di Slony-I è molto semplice e può essere realizzato in pochi passaggi. La mia procedura di aggiornamento presuppone che ci sia già una configurazione Master/Slave con Slony 2.0.7.

Piano di backup:
1. Eseguire il backup dello schema slony esistente (_slonyschema) di master/slave
2. Eseguire il backup dei VECCHI binari Slony
3. Il backup di tutto inizialmente crea file di configurazione sloni.

Procedura di aggiornamento:
1. Arresta tutti i processi slon in esecuzione su tutti i nodi.
2. Installa la nuova versione dei binari Slony 2.1.x.
3. Eseguire lo script di aggiornamento di Slonik
4. Inizia slony con nuovi binari su tutti i nodi.

Link: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)

Installa/Configura l'ultima versione del sorgente Slony-I 2.1.x

 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 di aggiornamento:

## 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).

Esegui lo script:

-bash-4.1$ slonik upgrade_207_201.slonik

Avvia il processo slony con nuovi binari e controlla le modifiche.

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)

Puoi vedere che la mia versione slony è stata aggiornata all'ultima. Puoi anche eseguire il controllo dello stato dello schema con una funzione fornita da Slony-I nella loro documentazione. La funzione Health Check dovrebbe restituire TRUE, altrimenti da qualche parte i tuoi cataloghi PG e Slony sono danneggiati.
Link alla funzione:http://slony.info/documentation/2.1/function.slon-node-health-check.html

postgres=# select node_health_check();
node_health_check
-------------------
t
(1 row)