Suche…


Replikation in PostgreSQL

  • Konfigurieren des Primärservers

    • Bedarf:

      • Replikationsbenutzer für Replikationsaktivitäten
      • Verzeichnis zum Speichern der WAL-Archive
    • Erstellen Sie einen Replikationsbenutzer

      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
      
    • Erstellen Sie ein Archivverzeichnis im Datenverzeichnis

      mkdir $PGDATA/archive

    • Bearbeiten Sie die Datei pg_hba.conf

      Dies ist die Host-Basisauthentifizierungsdatei, die die Einstellung für die Clientauthentifizierung enthält. Fügen Sie den folgenden Eintrag hinzu:

            #hosttype    database_name     user_name       hostname/IP      method
             host        replication       replication     <slave-IP>/32    md5
      
    • Bearbeiten Sie die postgresql.conf-Datei

      Dies ist die Konfigurationsdatei von PostgreSQL.

      wal_level = hot_standby

      Dieser Parameter bestimmt das Verhalten des Slave-Servers.

         `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

      Dieser Parameter ermöglicht das Senden von WAL-Segmenten an den Archivspeicherort mit archive_command Parameter " archive_command .

      archive_command = 'test ! -f /path/to/archivedir/%f && cp %p /path/to/archivedir/%f'

      Im Wesentlichen archive_command Sie die WAL-Segmente in das Archivverzeichnis.

      wal_senders = 5 Dies ist die maximale Anzahl von WAL- wal_senders = 5 .

      Starten Sie nun den Primärserver neu.

  • Sichern des primay-Servers auf dem Slave-Server

    Bevor Sie Änderungen am Server vornehmen, stoppen Sie den primären Server.

Wichtig: Starten Sie den Dienst nicht erneut, bis alle Konfigurations- und Sicherungsschritte abgeschlossen sind. Sie müssen den Standby-Server in einen Zustand versetzen, in dem er als Sicherungsserver bereit ist. Das bedeutet, dass alle Konfigurationseinstellungen vorhanden sein müssen und die Datenbanken bereits synchronisiert sein müssen. Andernfalls kann die Streaming-Replikation nicht gestartet werden

  • Führen Sie nun das Dienstprogramm pg_basebackup aus

    pg_basebackup Dienstprogramm pg_basebackup kopiert die Daten aus dem Datenverzeichnis des primären Servers in das Slave-Datenverzeichnis.

    $ 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.
  • Standby-Server konfigurieren

    Um den Standby-Server zu konfigurieren, bearbeiten Sie postgresql.conf und erstellen eine neue Konfigurationsdatei mit dem Namen recovery.conf.

    hot_standby = on

    Dies gibt an, ob Sie während der Wiederherstellung Abfragen ausführen dürfen

    • Wiederherstellungsdatei.conf erstellen

      standby_mode = on

      Legen Sie die Verbindungszeichenfolge auf dem primären Server fest. Ersetzen Sie durch die externe IP-Adresse des Primärservers. Ersetzen Sie das Kennwort für den Benutzer mit dem Namen "Replikation"

      `primary_conninfo = 'host = port = 5432 user = Kennwort für die Replikation ='

      (Optional) Legen Sie den Speicherort der Triggerdatei fest:

      trigger_file = '/tmp/postgresql.trigger.5432'

      Der von Ihnen angegebene trigger_file ist der Ort, an dem Sie eine Datei hinzufügen können, wenn das System auf den Standby-Server trigger_file . Das Vorhandensein der Datei "löst" das Failover aus. Alternativ können Sie den Befehl pg_ctl promotet verwenden, um ein Failover auszulösen.

  • Starten Sie den Standby-Server

    Sie haben jetzt alles eingerichtet und können den Standby-Server hochfahren

Zuschreibung

Dieser Artikel ist im Wesentlichen abgeleitet von PostgreSQL für Hochverfügbarkeit und Replikation mit Hot Standby , mit geringfügigen Änderungen in der Formatierung und Beispielen sowie einigen Texten. Die Quelle wurde unter der Creative Commons Public License 3.0 veröffentlicht , die hier gepflegt wird.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow