PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Aktualizacja Slony-I 2.0.x do najnowszej wersji 2.1.x

Slony-1 2.1 ma bardzo dobre poprawki i nowe funkcje, takie jak dodawanie tabel zbiorczych, ulepszenia funkcji CZEKAJ NA z zestawem scalania/przesuwania, obsługa funkcji TRUNCATE w przypadku replikacji tabel i wiele innych. Używam Slony-I 2.0.7, więc pomyślałem o aktualizacji do najnowszej wersji. Aktualizacja Slony-I jest bardzo prosta i można ją wykonać w kilku krokach. Moja procedura aktualizacji zakłada, że ​​istnieje już konfiguracja Master/Slave w Slony 2.0.7.

Plan kopii zapasowej:
1. Utwórz kopię zapasową istniejącego schematu slony (_slonyschema) master/slave
2. Utwórz kopię zapasową starych plików binarnych Slony
3. Kopia zapasowa wszystkich początkowo tworzy slony pliki konfiguracyjne.

Procedura aktualizacji:
1. Zatrzymaj cały uruchomiony proces slon na wszystkich węzłach.
2. Zainstaluj nową wersję plików binarnych Slony 2.1.x.
3. Uruchom skrypt aktualizacji SLONIK
4. Zacznij slony z nowymi plikami binarnymi we wszystkich węzłach.

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)

Zainstaluj/skonfiguruj najnowszą wersję źródła 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

Skrypt aktualizacji:

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

Wykonaj skrypt:

-bash-4.1$ slonik upgrade_207_201.slonik

Rozpocznij slony proces z nowymi plikami binarnymi i sprawdź zmiany.

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)

Możesz zobaczyć, że moja wersja slony została zaktualizowana do najnowszej. Możesz również przeprowadzić kontrolę stanu schematu za pomocą funkcji udostępnionej przez Slony-I w ich dokumentacji. Funkcja Health Check powinna zwrócić TRUE, w przeciwnym razie Twoje katalogi PG i Slony są uszkodzone.
Link do funkcji:http://slony.info/documentation/2.1/function.slon-node-health-check.html

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Testy Parallel Go wykonywane na bazie danych PostgreSQL działającej na platformie Docker

  2. Ograniczenia dotyczące nazw kolumn tabeli Postgres?

  3. Zapytanie krzyżowe PostgreSQL

  4. Użyj wielu konfliktów_docelowych w klauzuli ON CONFLICT

  5. Zarządzanie i automatyzacja PostgreSQL z ClusterControl