Nota

Implementare il disaster recovery tra più aree per i database PostgreSQL nella VM utilizzando la replica in standby fisico

Introduzione

pg_basebackup è una utility della riga di comando fornita da PostgreSQL per l'esecuzione del backup completo di un cluster di database PostgreSQL in esecuzione. È progettato per creare una copia binaria del cluster di database, che può essere utilizzata a scopo di replica o recupero.

pg_basebackup è una utility della riga di comando fornita da PostgreSQL per eseguire il backup completo di un cluster di database PostgreSQL in esecuzione. È progettato per creare una copia binaria del cluster di database, che può essere utilizzata a scopo di replica o recupero.

Uno dei vantaggi principali dell'utility pg_basebackup è che funziona senza richiedere l'accesso al file system in cui risiede il database. Invece, si connette al server PostgreSQL utilizzando il protocollo di replica in streaming, rendendolo sicuro e conveniente da usare anche mentre il server è in esecuzione.

In genere utilizzata in combinazione con l'archiviazione WAL (write-ahead logging), la utility pg_basebackup svolge un ruolo fondamentale nell'impostazione della replica in streaming e nel garantire alta disponibilità e disaster recovery per gli ambienti PostgreSQL in esecuzione su Virtual Machine (VM).

Funzioni chiave:

Questa esercitazione descrive i task per impostare la replica di streaming tra più aree tra due database PostgreSQL ospitati nelle VM di computazione.

Obiettivi

Prerequisiti

Crea il peering VCN nell'area. Per connettersi alle VM di computazione in tutte le aree, è necessario impostare il peering VCN. Per ulteriori informazioni, fare riferimento agli argomenti sotto riportati.

Assicurarsi che il peering VCN sia configurato correttamente per stabilire una connettività perfetta tra i database in aree diverse.

Task 1: Impostazione del database PostgreSQL primario

  1. Creare l'utente denominato replicator nel database primario PostgreSQL.

    CREATE USER replicator WITH REPLICATION ENCRYPTED PASSWORD '*********';
    
  2. Convalidare i ruoli/utenti.

    postgres=# \du
                                        List of roles
       Role name    |                         Attributes                         | Member of
    ----------------+------------------------------------------------------------+-----------
    admin          | Superuser                                                  | {}
    guest          |                                                            | {}
    mytestdb       |                                                            | {}
    postgres       | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
    replicator     | Replication  
    
  3. Aggiornare il file postgresql.conf con i seguenti dettagli.

    listen_addresses = '*'
    
  4. Aggiornare il file pg_hba.conf. Utilizzare l'indirizzo IP del database di standby.

    host    replication     replicator      Standby_DB_IP/32       md5
    
  5. Riavviare il servizio PostgreSQL.

    sudo systemctl restart PostgreSQL
    

Task 2: Impostazione del database PostgreSQL in standby

  1. Arrestare il servizio PostgreSQL.

    sudo systemctl stop PostgreSQL
    
  2. Rimuovere i file binari esistenti.

    cp -R /var/lib/postgresql/13/main /var/lib/postgresql/13/main_old
    rm -rf /var/lib/postgresql/13/main
    
  3. Eseguire il comando pg_basebackup per impostare la replica di streaming.

    pg_basebackup -h PrimaryDB_IP -D /var/lib/postgresql/13/main -U replicator -P -v -R -X stream -C -S slaveslot1 
    
  4. Avviare il servizio PostgreSQL.

    sudo systemctl start PostgreSQL
    

Task 3: verificare la replica di streaming nel database PostgreSQL primario

Eseguire il comando seguente nel database primario PostgreSQL per raccogliere lo stato di sincronizzazione tra i database primario e DR.

SELECT * FROM pg_replication_slots;
SELECT * FROM pg_stat_replication;

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.

Per la documentazione del prodotto, visitare Oracle Help Center.