Menyiapkan observer Data Guard di Compute Engine Google Cloud

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

Panduan ini membahas cara menginstal klien database Oracle 19c pada mesin virtual (VM) observer dan mengonfigurasi Fast-Start Failover.

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 Kasus penggunaan
DBDG_SITE2 site2db1, site2db2 DBDG_SITE21, DBDG_SITE22 Standby

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 standby.

    • Penyimpanan. -- Sedikitnya 20 GB dialokasikan ke boot disk.

  2. Login ke VM dan pastikan nama host PINDAI setiap cluster database telah diselesaikan di DNS:

    host DBDG_SITE1_SCAN_HOSTNAME
    host DBDG_SITE2_SCAN_HOSTNAME
    

    Jika nama host tidak ditemukan, tambahkan alamat IP untuk setiap nama host PINDAI ke file /etc/hosts pada 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 Database Oracle. Hanya instal software. Anda tidak perlu mengonfigurasi database di VM pengamat.

  4. RPM Database Oracle menginstal software di direktori yang telah ditetapkan. Tambahkan entri berikut ke /home/oracle/.bash_profile untuk menambahkan beranda 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. Sumber variabel lingkungan Oracle di sesi terminal Anda:

    source ~/.bash_profile
    

Mengonfigurasi konektivitas database

  1. Konfigurasikan setelan Oracle Net di 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. Database Oracle versi 12.2 dan yang lebih baru menyertakan dukungan agar observer dapat berjalan dalam mode latar belakang. Untuk melakukannya, dompet harus dibuat untuk melakukan autentikasi tanpa sandi ke database. Login sebagai pengguna Oracle di VM observer 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 wallet di VM yang menghosting observer:

      mkdir /home/oracle/wallet
      
    3. Inisialisasi 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 wallet yang diberikan pada langkah sebelumnya:

      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE1 sys
      mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE2 sys
      
    5. Pastikan dompet tersebut 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 wallet:

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

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

Mengonfigurasi dan mengaktifkan Failover Mulai Cepat

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

    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 Failover Mulai Cepat (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, berarti penyiapan sudah 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