Menyiapkan observer Data Guard di Google Cloud Compute Engine

Bergantung pada persyaratan ketersediaan tinggi, Anda dapat mengotomatiskan failover antar-database. Setelah memvalidasi deployment Data Guard, Anda memiliki opsi untuk menyiapkan observer Data Guard di Compute Engine untuk melakukannya. Pengamat adalah proses yang memantau konfigurasi Data Guard untuk memulai failover otomatis jika kondisi memungkinkan.

Panduan ini membahas penginstalan klien database Oracle 19c di virtual machine (VM) pengamat dan mengonfigurasi Failover Fast-Start.

Contoh berikut digunakan di seluruh panduan ini:

Nama unik database Nama host server Nama instance RAC Peran
DBDG_SITE1 site1db1, site1db2 DBDG_SITE11, DBDG_SITE12 Utama
DBDG_SITE2 site2db1, site2db2 DBDG_SITE21, DBDG_SITE22 Siaga

Menginstal software klien Oracle Database

  1. Buat virtual machine (VM) di Compute Engine yang memenuhi kriteria berikut:

    • Sistem operasi. Red Hat Enterprise Linux 7.

    • Jaringan. Subnet dengan aturan firewall yang mengizinkan akses dari Virtual Private Cloud Anda ke host Solusi Bare Metal yang menjalankan database utama dan cadangan.

    • Penyimpanan. -- Minimal 20 GB dialokasikan ke disk booting.

  2. Login ke VM dan pastikan nama host SCAN dari setiap cluster database di-resolve di DNS:

    host DBDG_SITE1_SCAN_HOSTNAME
    host DBDG_SITE2_SCAN_HOSTNAME
    

    Jika nama host tidak di-resolve, tambahkan alamat IP untuk setiap nama host SCAN ke file /etc/hosts di VM. Ganti contoh alamat IP dengan alamat IP untuk setiap cluster:

    # Site 1 SCAN Hosts
    192.0.2.10 DBDG_SITE1_SCAN_HOSTNAME
    192.0.2.11 DBDG_SITE1_SCAN_HOSTNAME
    192.0.2.12 DBDG_SITE1_SCAN_HOSTNAME
    
    # Site 2 SCAN Hosts
    198.51.100.10 DBDG_SITE2_SCAN_HOSTNAME
    198.51.100.11 DBDG_SITE2_SCAN_HOSTNAME
    198.51.100.12 DBDG_SITE2_SCAN_HOSTNAME
    
  3. Instal RPM Oracle Database. Hanya instal software. Anda tidak perlu mengonfigurasi database di VM pengamat.

  4. RPM Oracle Database menginstal software di direktori yang telah ditentukan. Tambahkan entri berikut ke /home/oracle/.bash_profile untuk menambahkan direktori utama software Oracle ke jalur:

    cat >> /home/oracle/.bash_profile << EOL
    export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
    export PATH=\$PATH:\$ORACLE_HOME/bin
    EOL
    
  5. Sumberkan variabel lingkungan Oracle di sesi terminal Anda:

    source ~/.bash_profile
    

Mengonfigurasi konektivitas database

  1. Konfigurasikan setelan Oracle Net dalam file $ORACLE_HOME/network/admin/tsnames.ora:

    DBDG_SITE1 =
      (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE1_SCAN_HOSTNAME)(PORT = 1521))
          (CONNECT_DATA =
              (SERVER = DEDICATED)
              (SERVICE_NAME = DBDG_SITE1) (UR=A)
          )
      )
    
    DBDG_SITE2 =
      (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE2_SCAN_HOSTNAME)(PORT = 1521))
          (CONNECT_DATA =
              (SERVER = DEDICATED)
              (SERVICE_NAME = DBDG_SITE2) (UR=A)
          )
      )
    
  2. Oracle Database versi 12.2 dan yang lebih tinggi menyertakan dukungan agar pengamat dapat berjalan dalam mode latar belakang. Untuk melakukannya, dompet harus dibuat untuk melakukan autentikasi tanpa sandi ke database. Login sebagai pengguna oracle di VM pengamat dan lakukan tugas berikut untuk membuat dompet:

    1. Tambahkan entri berikut ke $ORACLE_HOME/network/admin/sqlnet.ora:

      WALLET_LOCATION =
         (SOURCE =
            (METHOD = FILE)
            (METHOD_DATA = (DIRECTORY = /home/oracle/wallet))
      )
      SQLNET.WALLET_OVERRIDE = TRUE
      
    2. Buat direktori dompet di VM yang menghosting observer:

      mkdir /home/oracle/wallet
      
    3. Lakukan inisialisasi pada dompet, lalu berikan sandi untuk dompet saat diminta:

      mkstore -wrl /home/oracle/wallet -create
      
    4. Buat entri di dompet untuk setiap database dalam konfigurasi Data Guard. Perintah mkstore akan meminta sandi SYS untuk database, diikuti dengan sandi dompet yang diberikan di langkah sebelumnya:

      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE1 sys
      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE2 sys
      
    5. Pastikan dompet berisi kredensial untuk setiap database dalam konfigurasi Data Guard. Argumen -listCredential untuk mkstore akan meminta sandi dompet:

      mkstore -wrl /home/oracle/wallet -listCredential
      
  3. Login ke VM observer sebagai Oracle, lalu uji konektivitas ke database utama dan standby. Hubungkan ke database utama dan sekunder dengan SQL*Plus menggunakan kredensial dompet:

    sqlplus /@DBDG_SITE1 as sysdba
    sqlplus /@DBDG_SITE2 as sysdba
    

    Jika konfigurasi dompet berhasil, perintah sqlplus akan langsung login ke database tanpa meminta sandi.

Mengonfigurasi dan mengaktifkan Failover Mulai Cepat

  1. Buat direktori untuk menyimpan konfigurasi observer dan file log:

    mkdir /home/oracle/fsfo
    
  2. Hubungkan ke broker Data Guard di database utama menggunakan dompet:

    dgmgrl
    CONNECT /@DBDG_SITE1;
    
  3. Lihat status Data Guard untuk memeriksa apakah konfigurasi ditandai sebagai SUCCESS:

    SHOW CONFIGURATION;
    
  4. Aktifkan Fast-Start Failover (FSFO):

    ENABLE FAST_START FAILOVER;
    

    Mengaktifkan FSFO tidak membuat konfigurasi siap untuk failover otomatis. Failover otomatis memerlukan observer.

  5. Mulai Data Guard Observer:

    START OBSERVER observer1 IN BACKGROUND FILE IS '/home/oracle/fsfo/observer1_DBDG.dat' LOGFILE IS '/home/oracle/fsfo/observer1_DBDG.log';
    
  6. Dalam sesi terminal terpisah, verifikasi konfigurasi:

    SHOW CONFIGURATION VERBOSE;
    

    Contoh berikut menunjukkan mode panjang perintah show configuration. Jika status konfigurasi adalah SUCCESS, penyiapan Anda selesai.

    Configuration - DBDG
    
      Protection Mode: MaxAvailability
      Members:
     DBDG_SITE1 - Primary database
       DBDG_SITE2 - Physical standby database
    
      (*) Fast-Start Failover target
    
      Properties:
        FastStartFailoverThreshold      = '30'
        OperationTimeout                = '30'
        TraceLevel                      = 'USER'
        FastStartFailoverLagLimit       = '45'
        CommunicationTimeout            = '180'
        ObserverReconnect               = '0'
        FastStartFailoverAutoReinstate  = 'TRUE'
        FastStartFailoverPmyShutdown    = 'TRUE'
        BystandersFollowRoleChange      = 'ALL'
        ObserverOverride                = 'FALSE'
        ExternalDestination1            = ''
        ExternalDestination2            = ''
        PrimaryLostWriteAction          = 'CONTINUE'
        ConfigurationWideServiceName    = 'DBDG_CFG'
    
    Fast-Start Failover: Enabled in Potential Data Loss Mode
      Lag Limit:          45 seconds
      Threshold:          30 seconds
      Active Target:      DBDG_SITE2
      Potential Targets:  "DBDG_SITE2"
        DBDG_SITE2   valid
      Observer:           observer1
      Shutdown Primary:   TRUE
      Auto-reinstate:     TRUE
      Observer Reconnect: (none)
      Observer Override:  FALSE
    
    Configuration Status:
    SUCCESS