Nota

Automatizza switchover e failover per il database PostgreSQL con Oracle Cloud Infrastructure Full Stack Disaster Recovery

Introduzione

Oracle Cloud Infrastructure Full Stack Disaster Recovery (OCI Full Stack DR) orchestra la transizione di computazione, database e applicazioni tra le region Oracle Cloud Infrastructure (OCI) di tutto il mondo con un solo clic. I clienti possono automatizzare i passaggi necessari per recuperare uno o più sistemi aziendali senza riprogettare o riprogettare l'infrastruttura, i database o le applicazioni esistenti e senza dover ricorrere a server di gestione o conversione specializzati.

OCI Full Stack DR è un servizio altamente flessibile, possiamo sfruttare i gruppi di piani definiti dall'utente nel piano Disaster Recovery (DR) per gestire le operazioni di DR del bucket dello storage degli oggetti OCI.

Architettura di distribuzione

Architettura dello storage degli oggetti

Nota: l'area principale è Francoforte e l'area DR è Londra.

Obiettivi

Prerequisiti

Task 1: installare e configurare PostgreSQL

  1. Per installare PostgreSQL, connettersi all'host utilizzando il client SSH preferito ed eseguire il comando seguente.

    sudo dnf install -y postgresql postgresql-server postgresql-contrib
    sudo /usr/bin/postgresql-setup initdb
    sudo systemctl enable postgresql
    sudo systemctl start postgresql
    
  2. Abilitare il firewall Linux per ricevere connessioni.

    sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent
    sudo firewall-cmd --reload
    
  3. Modificare il file postgresql.conf (disponibile in xxxxx) per consentire la connessione e modificare i parametri wal come indicato di seguito.

    ...
    listen_addresses = '*'
    ...
    wal_level = logical
    wal_log_hints = on
    ...
    
  4. Connettersi al database, quindi creare l'utente di replica.

    sudo su postgres
    psql
    
    CREATE ROLE replica_user WITH REPLICATION LOGIN PASSWORD 'YourUserPassword';
    
  5. Aggiungere questo utente al file pg_hba.conf (disponibile in xxxxx).

    host    all             all             all                    md5
    host    replication     replica_user    <IP Host 1>            md5
    host    replication     replica_user    <IP Host 2>            md5
    
  6. Riavviare il database PostgreSQL per applicare le modifiche.

    sudo systemctl restart postgresql
    
  7. Ripetere questa procedura nel secondo server.

Task 2: replicare il database PostgreSQL

In questo task verrà configurata la replica del database nativo PostgreSQL.

  1. Connettersi al database primario e creare lo slot di replica.

    sudo su postgres
    psql
    
    select pg_create_physical_replication_slot('replica_0');
    
  2. Connettersi al database secondario ed eseguire i comandi riportati di seguito per creare la replica.

    sudo systemctl stop postgresql
    sudo rm -rv /var/lib/pgsql/data/
    sudo pg_basebackup -d "host=<IP Host 1> port=5432 user=replica_user password=YourUserPassword" -w -X stream -S replica_0 -v -R -W -D /var/lib/pgsql/data/ --no-password
    sudo chown postgres -R /var/lib/pgsql/data/
    sudo systemctl start postgresql
    
  3. Controllare che la replica stia fluendo sul database primario.

    select * from pg_stat_replication;
    

    Dovresti essere in grado di vedere una riga con il processo di streaming.

Task 3: Creare il piano di switchover

Task 3.1: Creare e associare gruppi di protezione da disaster recovery (DRPG)

  1. Nell'area primaria (Francoforte), fare clic sul menu hamburger, passare a Migrazione e disaster recovery, Disaster Recovery, Disaster Recovery Protection Group e Crea gruppo di protezione Disaster Recovery.

    Crea gruppo Disaster Recovery Protection in Ashburn

  2. Nella standby region (Londra), fare clic sul menu Hamburger, passare a Migrazione e disaster recovery, Disaster Recovery, Disaster Recovery Protection Group e Crea gruppo di protezione Disaster Recovery.

    Crea gruppo Disaster Recovery Protection in Ashburn

  3. Nell'area principale (Francoforte), immettere le informazioni riportate di seguito e fare clic su Associa.

    • Ruolo: Primary.
    • Area peer: UK South (London).
    • Gruppo di protezione DR peer: postgresql-lon.

    Associa principale e in standby

Task 3.2: Aggiungi membri a DRPG principale e in standby

  1. Nel DRPG primario (postgresql-fra), selezionare Membri e aggiungere la VM di calcolo (postgresql01) come membro.

    Aggiungi membri principali

    Nota: durante l'aggiunta di Compute come membro, selezionare Istanza non in movimento nel tipo di istanza di computazione, poiché è disponibile l'impostazione attivo-passivo per il database PostgreSQL.

  2. Nel DRPG in standby (postgresql-lon), selezionare Membri e aggiungere la VM di calcolo (postgresql02) come membro.

    Aggiungi membri standby

    Nota: durante l'aggiunta della computazione come membri, selezionare Istanza non in movimento nel tipo di istanza di computazione, poiché è disponibile l'impostazione attivo-passivo per il database PostgreSQL.

Task 3.3: Creare un piano di switchover nel DRPG in standby (Londra)

Piano di switchover: tipo di piano DR che esegue una transizione pianificata dei servizi dal DRPG primario al DRPG in standby.

  1. Creare un piano di switchover in DRPG in standby postgresql-lon.

  2. Selezionare Piani e fare clic su Crea piano.

  3. Immettere il nome come postgresql-switchover-frankfurt-london e selezionare il tipo di piano come Switchover (planned).

  4. Fare clic su Crea.

Piano switchover

Nota: assicurarsi di creare il piano di switchover dal DRPG in standby (Londra).

Task 3.4: Personalizzare il piano di switchover con vari gruppi di piani definiti dall'utente

Abbiamo aggiunto Compute (istanza non mobile) come membri in entrambi i gruppi di protezione DR. È necessario personalizzare il piano di switchover con ulteriori gruppi di piani definiti dall'utente. Inoltre, dobbiamo creare i seguenti script bash e caricarli nello storage degli oggetti OCI, in modo da poter richiamare tali script durante lo switchover.

Nota: questi script devono essere caricati nel bucket dell'area di Londra.

Gruppi del piano

Di seguito è riportato un tipico flusso di lavoro per lo switchover DR.

  1. Arresta il database PostgreSQL nell'area di Francoforte: il gruppo di piani avrà la procedura per arrestare il database PostgreSQL nell'area di Francoforte.

  2. Promuovi il database PostgreSQL nell'area di Londra: il gruppo di piani avrà la procedura per promuovere il database PostgreSQL nell'area di Londra.

  3. Modificare la direzione di replica del database PostgreSQL: il gruppo di piani avrà la procedura per modificare la direzione di replica del database PostgreSQL (LON-FRA).

Nota: assicurarsi che i passi vengano eseguiti nello stesso ordine.

Creare il gruppo di piani definito dall'utente seguente.

  1. Creare il gruppo di piani Arresta database PostgreSQL nell'area Francoforte.

    1. In Gruppi di piani, fare clic su Aggiungi gruppo per creare un gruppo di piani personalizzato per arrestare il database PostgreSQL nell'area Francoforte. Immettere Nome gruppo come Stop PostgreSQL Database at Frankfurt Region.

      Arresta database PostgreSQL in FRA

    2. Fare clic su Aggiungi passo e immettere le informazioni seguenti. Verrà aggiunto un passo nel gruppo di piani.

      • Assicurarsi di scegliere l'area come Frankfurt e l'istanza di destinazione come postgresql01. Selezionare lo script di storage degli oggetti Esegui e la posizione dello script sceglie il bucket di storage degli oggetti OCI posgres-dr-lon.

      • Immettere i dettagli dello script stop_postgresql.sh con la posizione dello script. Lo script chiuderà il database PostgreSQL nell'area FRA.

      • Fare clic su Aggiungi passo e verificare il passo aggiunto.

      Arresta passo del database PostgreSQL

  2. Creare il gruppo di piani Promuovi database PostgreSQL nell'area di Londra.

    1. In Gruppi di piani fare clic su Aggiungi gruppo per creare un gruppo di piani personalizzato per promuovere il database PostgreSQL a Londra. Immettere Nome gruppo come Promote PostgreSQL Database at London Region.

      Promuovi database PostgreSQL in LON

    2. Fare clic su Aggiungi passo e immettere i seguenti dettagli. Verrà aggiunto un passo nel gruppo di piani.

      • Assicurarsi di scegliere l'area come London, l'istanza di destinazione come postgresql02. Selezionare lo script di storage degli oggetti Esegui e la posizione dello script sceglie il bucket di storage degli oggetti OCI posgres-dr-lon.

      • Immettere i dettagli dello script promote_postgresql.sh con la posizione dello script. Lo script chiuderà il database PostgreSQL nell'area FRA.

      • Fare clic su Aggiungi passo e verificare il passo aggiunto.

      Promuovi passo del database PostgreSQL

  3. Creare il gruppo di piani Modifica direzione di replica del database PostgreSQL.

    1. In Gruppi di piani, fare clic su Aggiungi gruppo per creare un gruppo di piani personalizzato per modificare la direzione di replica del database PostgreSQL. Immettere Nome gruppo come Promote PostgreSQL Database at London Region.

      Modificare la replica del database PostgreSQL directionN

    2. Fare clic su Aggiungi passo e immettere le informazioni seguenti. Verrà aggiunto un passo nel gruppo di piani.

      • Assicurarsi di scegliere l'area come Frankfurt e l'istanza di destinazione come postgresql01. Selezionare lo script di storage degli oggetti Esegui e la posizione dello script scegliere il bucket di storage degli oggetti OCI posgres-dr-lon.

      • Immettere i dettagli dello script change_replication_direction.sh con la posizione dello script. Lo script chiuderà il database PostgreSQL nell'area FRA.

      • Fare clic su Aggiungi passo e verificare il passo aggiunto.

      Modifica passo della direzione di replica del database PostgreSQL

Gruppi di piani Londra

Task 4: Esegui controlli preliminari ed esegui il piano di switchover

L'opzione Esegui controlli preliminari consente di convalidare rapidamente tutti i passi di un piano DR e i membri associati ai passi.

  1. Dal piano di switchover postgresql-switchover-frankfurt-london, fare clic su Esegui controlli preliminari per eseguire controlli preliminari.

    Controllo preliminare switchover

    Controllare che l'operazione sia stata completata.

    Stato controllo preliminare switchover

  2. Dal piano di switchover postgresql-switchover-frankfurt-london, fare clic su Esegui piano di disaster recovery per eseguire il piano.

    Esegui piano di disaster recovery

  3. Controllare lo stato del piano e assicurarsi che tutti i passi del piano abbiano esito positivo.

    Esegui stato piano di disaster recovery

  4. Il piano di switchover esegue tutti i gruppi di piani in un ordine specifico. Dopo il successo dell'esecuzione del piano, il database PostgreSQL verrà promosso a master nella regione di Londra.

  5. Il ruolo cambierà automaticamente nel DRPG. Ora Londra avrà il ruolo primario e Francoforte avrà il ruolo di standby.

  6. Verificare il database PostgreSQL a Londra.

Task 5: Creare un piano di switchover nel DRPG in standby (Francoforte) per lo switchback

Task 5.1: Creare un piano di switchover nel DRPG in standby (Londra)

  1. Creare un piano di switchover in Standby DRPG postgresql-fran.

  2. Selezionare Piani e fare clic su Crea piano.

  3. Immettere il nome come postgresql-switchover-london-frankfurt e selezionare il tipo di piano come Switchover (planned).

  4. Fare clic su Crea.

Gruppi del piano

Nota: assicurarsi di creare il piano di switchover dal DRPG in standby (Francoforte).

Task 5.2: Personalizzare il piano di switchover con vari gruppi di piani definiti dall'utente

È necessario personalizzare il piano di switchover con ulteriori gruppi di piani definiti dall'utente. È inoltre necessario creare i seguenti script bash e caricarli nello storage degli oggetti OCI, in modo da poter richiamare tali script durante lo switchover.

Nota: questi script devono essere caricati nel bucket nell'area Francoforte.

Di seguito è riportato un tipico flusso di lavoro per lo switchover DR.

  1. Riavviare i database PostgreSQL: gruppo di piani per riavvolgere il database. Francoforte sincronizzerà i contenuti dal database di Londra.

  2. Ripristinare la replica del database PostgreSQL a Londra: il gruppo di piani inizierà a replicare il database PostgreSQL da Francoforte all'area di Londra.

Nota: assicurarsi che i passi vengano eseguiti nello stesso ordine.

Creare i due gruppi di piani definiti dall'utente seguenti

  1. Creare il gruppo di piani Riavvia database PostgreSQL.

    1. In Gruppi di piani, fare clic su Aggiungi gruppo per creare un gruppo di piani personalizzato per riavvolgere il database PostgreSQL nell'area Francoforte. Immettere Nome gruppo come Rewind PostgreSQL Databases at Frankfurt Region.

      Riavviare il database PostgreSQL in FRA

    2. Fare clic su Aggiungi passo e immettere le informazioni seguenti. Verrà aggiunto un passo al gruppo di piani.

      • Assicurarsi di scegliere l'area come Frankfurt e l'istanza di destinazione come postgresql01. Selezionare lo script di storage degli oggetti Esegui e la posizione dello script sceglie il bucket di storage degli oggetti OCI posgres-dr-lon.

      • Immettere i dettagli dello script rewind_postgresql.sh con la posizione dello script. Lo script chiuderà il database PostgreSQL nell'area FRA.

      • Fare clic su Aggiungi passo e verificare il passo aggiunto.

      Riavvia passo del database PostgreSQL

  2. Creare Ristabilire la replica del database PostgreSQL nel gruppo di piani di Londra.

    1. In Gruppi di piani, fare clic su Aggiungi gruppo per creare un gruppo di piani personalizzato per ristabilire la replica del database PostgreSQL a Londra. Immettere Nome gruppo come Promote PostgreSQL Database at London Region.

      Ripristinare la replica del database PostgreSQL in LON

    2. Fare clic su Aggiungi passo e immettere le informazioni seguenti. Verrà aggiunto un passo nel gruppo di piani.

      • Assicurarsi di scegliere l'area come London e l'istanza di destinazione come postgresql02. Selezionare lo script di storage degli oggetti Esegui e la posizione dello script sceglie il bucket di storage degli oggetti OCI posgres-dr-lon.

      • Immettere i dettagli dello script replicate_postgresql.sh con la posizione dello script. Lo script chiuderà il database PostgreSQL nell'area FRA.

      • Fare clic su Aggiungi passo e verificare il passo aggiunto.

      Ripristinare il passo di replica del database PostgreSQL

Task 6: Esegui controlli preliminari ed esegui il piano di switchover

Il comando Esegui controlli preliminari consente di convalidare rapidamente tutti i passi di un piano DR e i membri associati ai passi.

  1. Dal piano di switchover postgresql-switchover-london-frankfurt, fare clic su Esegui controlli preliminari per eseguire controlli preliminari.

    Controllo preliminare switchover

    Controllare che l'operazione sia stata completata.

    Stato controllo preliminare switchover

  2. Dal piano di switchover postgresql-switchover-london-frankfurt, fare clic su Esegui piano di disaster recovery per eseguire il piano.

    Esegui piano di disaster recovery

  3. Controllare lo stato del piano e assicurarsi che tutti i passi del piano abbiano esito positivo.

    Esegui stato piano di disaster recovery

  4. Il piano di switchover esegue tutti i gruppi di piani in un ordine specifico. Dopo il successo dell'esecuzione del piano, il database PostgreSQL verrà promosso a master nella regione di Francoforte.

  5. Il ruolo cambierà automaticamente nel DRPG. Ora Francoforte avrà il ruolo primario e Londra avrà il ruolo di standby.

  6. Verificare il database PostgreSQL a Francoforte.

Passi successivi

Hai visto come eseguire automaticamente lo switchover del database PostgreSQL e ripristinare le operazioni di Disaster Recovery utilizzando OCI Full Stack DR. Per ulteriori informazioni, consulta la documentazione di OCI Full Stack DR nella sezione Collegamenti correlati.

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.