PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Upgrade von Slony-I 2.0.x auf die neueste Version 2.1.x

Slony-1 2.1 hat sehr gute Korrekturen und neue Funktionen wie das Hinzufügen von Bulk-Tabellen, Verbesserungen bei WAIT FOR mit Merge Set/Move Set, Unterstützung für TRUNCATE beim Replizieren von Tabellen und vieles mehr. Ich verwende Slony-I 2.0.7, dachte also daran, es auf die neueste Version zu aktualisieren. Das Upgrade von Slony-I ist sehr einfach und kann in wenigen Schritten erreicht werden. Mein Upgrade-Verfahren geht davon aus, dass es bereits eine Master/Slave-Konfiguration mit Slony 2.0.7 gibt.

Sicherungsplan:
1. Sichern Sie das vorhandene Slony-Schema (_slonyschema) von Master/Slave
2. Sichern Sie die ALTEN Slony-Binärdateien
3. Alle sichern erstellt zunächst slony Konfigurationsdateien.

Upgrade-Verfahren:
1. Stoppen Sie alle laufenden Slon-Prozesse auf allen Knoten.
2. Installieren Sie die neue Version der Slony 2.1.x-Binärdateien.
3. Führen Sie das SLONIK-Upgrade-Skript aus
4. Starten Sie Slony mit neuen Binärdateien auf allen Knoten.

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)

Neueste Version der Slony-I 2.1.x-Quelle installieren/konfigurieren

 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

Upgrade-Skript:

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

Führen Sie das Skript aus:

-bash-4.1$ slonik upgrade_207_201.slonik

Starten Sie den Slony-Prozess mit neuen Binärdateien und suchen Sie nach Änderungen.

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)

Sie können sehen, dass meine Slony-Version auf die neueste Version aktualisiert wurde. Sie können auch eine Zustandsprüfung des Schemas mit einer Funktion durchführen, die von Slony-I in ihrer Dokumentation bereitgestellt wird. Die Health Check-Funktion sollte TRUE zurückgeben, sonst sind Ihre PG- und Slony-Kataloge beschädigt.
Funktionslink:http://slony.info/documentation/2.1/function.slon-node-health-check.html

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