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żka trigger_file jest miejscem, w którym możesz dodać plik, gdy chcesz, aby system trigger_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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow