postgresql
Wysoka dostępność PostgreSQL
Szukaj…
Replikacja w PostgreSQL
Konfigurowanie serwera głównego
Wymagania:
- Użytkownik replikacji do działań związanych z replikacją
- Katalog do przechowywania archiwów WAL
Utwórz użytkownika replikacji
createuser -U postgres replication -P -c 5 --replication
+ option -P will prompt you for new password + option -c is for maximum connections. 5 connections are enough for replication + -replication will grant replication privileges to the user
Utwórz katalog archiwum w katalogu danych
mkdir $PGDATA/archive
Edytuj plik pg_hba.conf
Jest to podstawowy plik uwierzytelniania hosta, zawierający ustawienie uwierzytelniania klienta. Dodaj poniższy wpis:
#hosttype database_name user_name hostname/IP method host replication replication <slave-IP>/32 md5
Edytuj plik postgresql.conf
To jest plik konfiguracyjny PostgreSQL.
wal_level = hot_standby
Ten parametr decyduje o zachowaniu serwera podrzędnego.
`hot_standby` logs what is required to accept read only queries on slave server. `streaming` logs what is required to just apply the WAL's on slave. `archive` which logs what is required for archiving.
archive_mode=on
Ten parametr pozwala wysłać segmenty WAL do lokalizacji archiwum przy użyciu parametru
archive_command
.archive_command = 'test ! -f /path/to/archivedir/%f && cp %p /path/to/archivedir/%f'
Zasadniczo to, co wykonuje polecenie
archive_command
, to kopiowanie segmentów WAL do katalogu archiwum.wal_senders = 5
Jest to maksymalna liczba procesów nadawcy WAL.Teraz uruchom ponownie serwer główny.
Tworzenie kopii zapasowej głównego serwera na serwerze podrzędnym
Przed dokonaniem zmian na serwerze zatrzymaj serwer główny.
Ważne: Nie uruchamiaj ponownie usługi, dopóki nie zostaną wykonane wszystkie kroki konfiguracji i tworzenia kopii zapasowej. Musisz przywołać serwer rezerwowy w stanie, w którym jest on gotowy do działania jako serwer zapasowy. Oznacza to, że wszystkie ustawienia konfiguracji muszą być wprowadzone, a bazy danych muszą być już zsynchronizowane. W przeciwnym razie replikacja strumieniowa nie uruchomi się`
Teraz uruchom narzędzie pg_basebackup
Narzędzie
pg_basebackup
kopiuje dane z katalogu danych serwera głównego do katalogu danych slave.$ pg_basebackup -h <primary IP> -D /var/lib/postgresql/<version>/main -U replication -v -P --xlog-method=stream
-D: This is tells pg_basebackup where to the initial backup
-h: Specifies the system where to look for the primary server
-xlog-method=stream: This will force the pg_basebackup to open another connection and stream enough xlog while backup is running.
It also ensures that fresh backup can be started without failing back to using an archive.
Konfigurowanie serwera rezerwowego
Aby skonfigurować serwer rezerwowy, zmodyfikujesz plik postgresql.conf i utworzysz nowy plik konfiguracyjny o nazwie recovery.conf.
hot_standby = on
Określa, czy możesz uruchamiać zapytania podczas odzyskiwania
Tworzenie pliku recovery.conf
standby_mode = on
Ustaw parametry połączenia z serwerem podstawowym. Zamień na zewnętrzny adres IP serwera głównego. Zamień na hasło dla replikacji o nazwie użytkownika
`primary_conninfo = 'host = port = 5432 użytkownik = hasło replikacji ='
(Opcjonalnie) Ustaw lokalizację pliku wyzwalacza:
trigger_file = '/tmp/postgresql.trigger.5432'
trigger_file
ścieżkatrigger_file
jest miejscem, w którym możesz dodać plik, gdy chcesz, aby systemtrigger_file
do serwera rezerwowego. Obecność pliku „wyzwala” przełączenie awaryjne. Alternatywnie możesz użyć polecenia pg_ctl promot, aby uruchomić przełączanie awaryjne.
Uruchom serwer rezerwowy
Teraz masz wszystko na swoim miejscu i jesteś gotowy, aby uruchomić serwer rezerwowy
Przypisanie
Ten artykuł jest w znacznym stopniu pochodną i przypisany do Jak skonfigurować PostgreSQL dla wysokiej dostępności i replikacji w trybie gotowości w trybie gotowości , z niewielkimi zmianami w formatowaniu i przykładach oraz usuniętym tekstem. Źródło zostało opublikowane na licencji Creative Commons Public License 3.0 , która jest utrzymywana tutaj.