sql >> Databasteknik >  >> RDS >> PostgreSQL

Uppgradering av Slony-I 2.0.x till senaste version 2.1.x

Slony-1 2.1 har mycket bra korrigeringar och nya funktioner som att lägga till Bulk-tabeller, förbättring av WAIT FOR med Merge Set/Move Set, stöd för TRUNCATE på replikerande tabeller och många fler. Jag använder Slony-I 2.0.7, så tänkte uppgradera den till senaste versionen. Att uppgradera Slony-I är väldigt enkelt och det kan göras i några få steg. Min uppgraderingsprocedur förutsätter att det redan finns en Master/Slave-installation med Slony 2.0.7.

Reservplan:
1. Säkerhetskopiera det befintliga slony-schemat (_slonyschema) för master/slave
2. Säkerhetskopiera GAMLA Slony Binaries
3. Säkerhetskopiering av alla skapar till en början slarviga konfigurationsfiler.

Uppgraderingsprocedur:
1. Stoppa all pågående slon-process på alla noder.
2. Installera ny version av Slony 2.1.x binärer.
3. Kör SLONIK uppgraderingsskript
4. Börja slarvigt med nya binärer på alla noder.

Länk: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)

Installera/konfigurera senaste versionen av Slony-I 2.1.x-källa

 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

Uppgraderingsskript:

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

Kör skriptet:

-bash-4.1$ slonik upgrade_207_201.slonik

Starta den slarviga processen med nya binärer och kontrollera ändringarna.

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)

Du kan se min slony version har uppgraderats till senaste. Du kan också utföra hälsokontroll av schemat med en funktion som tillhandahålls av Slony-I i deras dokumentation. Health Check-funktionen bör returnera TRUE, någon annanstans är dina PG- och Slony-kataloger skadade.
Funktionslänk:http://slony.info/documentation/2.1/function.slon-node-health-check.html

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

  1. Hur man läser och tolkar SQL-fel

  2. SQLite Order By Date1530019888000

  3. vad är @JoinColumn och hur det används i Hibernate

  4. Oracle-fråga för att hitta alla förekomster av ett tecken i en sträng