Ricerca…


Replica in PostgreSQL

  • Configurazione del server primario

    • Requisiti:

      • Utente di replica per attività di replica
      • Directory per memorizzare gli archivi WAL
    • Crea utente di replica

      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
      
    • Creare una directory di archivio nella directory dei dati

      mkdir $PGDATA/archive

    • Modifica il file pg_hba.conf

      Questo è il file di autenticazione di base host, contiene le impostazioni per l'autocertificazione del client. Aggiungi sotto voce:

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

      Questo è il file di configurazione di PostgreSQL.

      wal_level = hot_standby

      Questo parametro decide il comportamento del server slave.

         `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

      Questo parametro consente di inviare segmenti WAL alla posizione di archiviazione utilizzando il parametro archive_command .

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

      Fondamentalmente, ciò che sopra archive_command fa è copiare i segmenti WAL nella directory di archivio.

      wal_senders = 5 Questo è il numero massimo di processi WAL del mittente.

      Ora riavvia il server primario.

  • Backup del server di primay sul server slave

    Prima di apportare modifiche al server, interrompere il server primario.

Importante: non riavviare il servizio finché non sono stati completati tutti i passaggi di configurazione e backup. È necessario aprire il server di standby in uno stato in cui è pronto per essere un server di backup. Ciò significa che tutte le impostazioni di configurazione devono essere installate e che i database devono essere già sincronizzati. Altrimenti, la replica dello streaming non verrà avviata

  • Ora esegui l'utilità pg_basebackup

    pg_basebackup utilità pg_basebackup copia i dati dalla directory dei dati del server primario nella directory dei dati 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.
  • Configurazione del server di standby

    Per configurare il server di standby, modificherai postgresql.conf e creerai un nuovo file di configurazione denominato recovery.conf.

    hot_standby = on

    Questo specifica se è possibile eseguire query durante il ripristino

    • Creazione del file recovery.conf

      standby_mode = on

      Impostare la stringa di connessione sul server primario. Sostituire con l'indirizzo IP esterno del server primario. Sostituire con la password per l'utente denominato replica

      `primary_conninfo = 'host = port = 5432 user = password di replica ='

      (Opzionale) Imposta la posizione del file di trigger:

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

      Il percorso trigger_file specificato è la posizione in cui è possibile aggiungere un file quando si desidera che il sistema trigger_file il trigger_file sul server di standby. La presenza del file "attiva" il failover. In alternativa, è possibile utilizzare il comando pg_ctl promote per attivare il failover.

  • Avvia il server di standby

    Ora hai tutto a posto e pronto per richiamare il server di standby

Attribuzione

Questo articolo è sostanzialmente derivato da e attribuito a Come impostare PostgreSQL per la disponibilità elevata e la replica con Hot Standby , con piccole modifiche nella formattazione ed esempi e alcuni testi cancellati. La fonte è stata pubblicata sotto Creative Commons Public License 3.0 , che viene mantenuta qui.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow