Zoeken…


Replicatie in PostgreSQL

  • De primaire server configureren

    • Voorwaarden:

      • Replicatie-gebruiker voor replicatieactiviteiten
      • Directory om de WAL-archieven op te slaan
    • Creëer replicatie gebruiker

      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
      
    • Maak een archiefmap in de gegevensmap

      mkdir $PGDATA/archive

    • Bewerk het bestand pg_hba.conf

      Dit is een hostbasis-authenticatiebestand, bevat de instelling voor clientverificatie. Onderstaande vermelding toevoegen:

            #hosttype    database_name     user_name       hostname/IP      method
             host        replication       replication     <slave-IP>/32    md5
      
    • Bewerk het bestand postgresql.conf

      Dit is het configuratiebestand van PostgreSQL.

      wal_level = hot_standby

      Deze parameter bepaalt het gedrag van de slaveserver.

         `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

      Met deze parameters kunt u WAL-segmenten naar de archieflocatie verzenden met de parameter archive_command .

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

      archive_command gezegd, wat hierboven archive_command doet, is dat het de WAL-segmenten naar de archiefmap kopieert.

      wal_senders = 5 Dit is het maximale aantal WAL-afzenderprocessen.

      Start nu de primaire server opnieuw.

  • Een back-up maken van de primayserver naar de slaveserver

    Stop de primaire server voordat u wijzigingen aanbrengt op de server.

Belangrijk: start de service niet opnieuw totdat alle configuratie- en back-upstappen zijn voltooid. U moet de standby-server openen in een staat waarin deze gereed is om een back-upserver te zijn. Dit betekent dat alle configuratie-instellingen aanwezig moeten zijn en dat de databases al moeten zijn gesynchroniseerd. Anders kan streamingreplicatie niet starten`

  • Voer nu het hulpprogramma pg_basebackup uit

    pg_basebackup hulpprogramma pg_basebackup kopieert de gegevens van de gegevensmap van de primaire server naar de gegevensmap van de 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.
  • De stand-byserver configureren

    Om de stand-byserver te configureren, bewerkt u postgresql.conf en maakt u een nieuw configuratiebestand met de naam recovery.conf.

    hot_standby = on

    Dit geeft aan of u tijdens het herstel vragen mag uitvoeren

    • Herstel.conf-bestand maken

      standby_mode = on

      Stel de verbindingsreeks in op de primaire server. Vervang door het externe IP-adres van de primaire server. Vervang door het wachtwoord voor de gebruiker genaamd replicatie

      `primary_conninfo = 'host = port = 5432 user = replication password ='

      (Optioneel) Stel de locatie van het triggerbestand in:

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

      Het trigger_file pad dat u opgeeft, is de locatie waar u een bestand kunt toevoegen wanneer u wilt dat het systeem overgaat naar de stand-byserver. De aanwezigheid van het bestand "activeert" de failover. U kunt ook de opdracht pg_ctl promot gebruiken om failover te activeren.

  • Start de standby-server

    U hebt nu alles op zijn plaats en bent klaar om de standby-server te openen

Attribution

Dit artikel is grotendeels afgeleid van en toegeschreven aan Hoe PostgreSQL instellen voor hoge beschikbaarheid en replicatie met Hot Standby , met kleine wijzigingen in opmaak en voorbeelden en wat tekst verwijderd. De bron is gepubliceerd onder de Creative Commons Public License 3.0 , die hier wordt onderhouden.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow