Sök…


Replikering i PostgreSQL

  • Konfigurera den primära servern

    • Krav:

      • Replikeringsanvändare för replikeringsaktiviteter
      • Katalog för att lagra WAL-arkiven
    • Skapa replikeringsanvändare

      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
      
    • Skapa en arkivkatalog i datakatalogen

      mkdir $PGDATA/archive

    • Redigera filen pg_hba.conf

      Detta är en värdbaserad autentiseringsfil som innehåller inställningen för klientautentisering. Lägg till posten nedan:

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

      Detta är konfigurationsfilen för PostgreSQL.

      wal_level = hot_standby

      Denna parameter avgör slavserverens beteende.

         `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

      Med dessa parametrar kan du skicka WAL-segment till arkivplats med parametern archive_command .

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

      I grund och botten vad som archive_command gör är att det kopierar WAL-segmenten till arkivkatalogen.

      wal_senders = 5 Detta är det maximala antalet WAL-avsändarprocesser.

      Starta om den primära servern.

  • Säkerhetskopiera primay-servern till slaveservern

    Stoppa den primära servern innan du gör ändringar på servern.

Viktigt: Starta inte tjänsten igen förrän alla konfigurations- och säkerhetssteg är slutförda. Du måste ta upp standby-servern i ett tillstånd där den är redo att vara en reservserver. Detta innebär att alla konfigurationsinställningar måste vara på plats och databaserna måste redan synkroniseras. Annars kommer strömningsreplikationen inte att börja

  • Kör nu verktyget pg_basebackup

    pg_basebackup verktyget kopierar data från primär serverdatakatalog till slavdatakatalog.

    $ 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.
  • Konfigurera standbyservern

    För att konfigurera standbyservern redigerar du postgresql.conf och skapar en ny konfigurationsfil med namnet recovery.conf.

    hot_standby = on

    Detta anger om du får köra frågor när du återställer

    • Skapar recovery.conf-fil

      standby_mode = on

      Ställ anslutningssträngen till den primära servern. Ersätt med den externa IP-adressen för den primära servern. Ersätt med lösenordet för den användare som heter replikering

      `Primary_conninfo = 'host = port = 5432 user = replikationslösenord ='

      (Valfritt) Ställ in triggerfilsplatsen:

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

      Den trigger_file sökväg som du anger är platsen där du kan lägga till en fil när du vill att systemet ska misslyckas till standbyservern. Närvaron av filen "utlöser" failover. Alternativt kan du använda kommandot pg_ctl promotion för att utlösa failover.

  • Starta standbyservern

    Nu har du allt på plats och är redo att ta fram standby-servern

Erkännande

Den här artikeln är väsentligen härrörande från och tillskrivs Hur man ställer in PostgreSQL för hög tillgänglighet och replikering med het standby , med mindre ändringar i formatering och exempel och en del text raderas. Källan publicerades under Creative Commons Public License 3.0 , som upprätthålls här.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow