Memvalidasi deployment Data Guard

Setelah menyiapkan broker Data Guard, Anda perlu memverifikasi bahwa redo disalin dari database utama dan diterapkan di database standby. Prosedur berikut dapat digunakan untuk memeriksa status Data Guard dari dalam database utama dan standby.

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

Memvalidasi deployment Data Guard

  1. Login ke server Solusi Bare Metal pertama yang menghosting database utama, lalu tetapkan variabel lingkungan ORACLE_SID agar Anda dapat terhubung ke database utama:

    source oraenv <<< "DBDG_SITE11"
    
  2. Mulai SQL*Plus, lalu tentukan nomor urutan terbaru untuk log redo yang diarsipkan:

    sqlplus / as sysdba
    
    SELECT THREAD#, max(SEQUENCE#) "Last Primary Seq Archived"
    FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# =
    VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;
    

    Output berikut memiliki nomor urutan maksimum 40 untuk thread 1 dan nomor urutan maksimum 33 untuk thread 2:

       THREAD# Last Primary Seq Archived
    ---------- -------------------------
             1                        40
             2                        33
    

    Catat hasilnya untuk dibandingkan dengan database standby. Nomor urutan di database standby diharapkan cocok dengan database utama.

  3. Login ke server Solusi Bare Metal pertama yang menghosting database standby, lalu tetapkan variabel lingkungan ORACLE_SID agar Anda dapat terhubung ke database standby:

    source oraenv <<< "DBDG_SITE21"
    
  4. Mulai SQL*Plus, lalu validasikan bahwa nomor urut terbaru yang diterima dan diterapkan untuk log redo yang diarsipkan cocok dengan nomor urut terbaru di database utama:

    sqlplus / as sysdba
    
    SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Received"
    FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# =
    VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;
    
    SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Applied"
    FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# =
    VDB.RESETLOGS_CHANGE# AND VAL.APPLIED IN ('YES','IN-MEMORY') GROUP BY
    THREAD# ORDER BY 1;
    

    Output berikut memiliki nomor urutan yang cocok dengan kueri sebelumnya yang dijalankan terhadap database standby:

       THREAD# Last Standby Seq Received
    ---------- -------------------------
             1                        40
             2                        33
    
       THREAD# Last Standby Seq Applied
    ---------- ------------------------
             1                       40
             2                       33
    
  5. Pastikan status proses pemulihan terkelola adalah APPLYING_LOG:

    SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE '%MRP%';
    

    Contoh berikut menunjukkan satu proses pemulihan terkelola bernama MRP0 dengan status APPLYING_LOG:

    PROCESS   STATUS
    --------- ------------
    MRP0      APPLYING_LOG
    
  6. Periksa apakah ada transportasi atau terapkan jeda pada database standby:

    COLUMN NAME FORMAT a20
    COLUMN VALUE FORMAT a30
    SELECT NAME, VALUE FROM V$DATAGUARD_STATS WHERE NAME LIKE '%lag%';
    

    Output berikut tidak menunjukkan adanya jeda pada database standby:

    NAME                 VALUE
    -------------------- ------------------------------
    transport lag        +00 00:00:00
    apply lag            +00 00:00:00
    

    Jika ada jeda, lihat dokumentasi pemecahan masalah Data Guard Oracle.

Peralihan database menggunakan broker Data Guard

Switchover adalah pembalikan peran saat database utama menjadi database standby, dan sebaliknya. Selama proses pengalihan, klien database akan terputus dari database utama. Bergantung pada cara aplikasi Anda terhubung ke database, pengalihan dapat mengganggu traffic aplikasi. Oracle menawarkan opsi untuk mempertahankan kelangsungan aplikasi selama transisi peran. Anda dapat menguji kesiapan pemulihan dari bencana dengan melakukan switchover database dengan petunjuk berikut:

  1. Login ke server Solusi Bare Metal yang menghosting database utama.

  2. Luncurkan antarmuka command line Data Guard, dan hubungkan ke database standby:

    dgmgrl
    
    CONNECT SYS@DBDG_SITE2
    
  3. Saat diminta memasukkan sandi, masukkan sandi login jarak jauh SYS untuk database.

  4. Validasi bahwa database siap untuk pengalihan.

    VALIDATE DATABASE DBDG_SITE2;
    

    Hasil yang berhasil akan melaporkan bahwa database siap untuk beralih.

  5. Jika berhasil, jalankan perintah pengalihan:

    SWITCHOVER TO DBDG_SITE2;
    

    Jika perintah berhasil, Anda akan menerima pesan bahwa DBDG_SITE2 adalah database utama baru dalam konfigurasi.

  6. Jalankan perintah berikut untuk mengonfirmasi bahwa peran database telah ditukar:

    SHOW CONFIGURATION;
    
  7. Jalankan perintah berikut untuk kembali ke konfigurasi awal:

    SWITCHOVER TO DBDG_SITE1;
    

Failover database menggunakan broker Data Guard

Failover adalah transisi peran saat salah satu database standby berpindah ke peran utama karena pemadaman situs secara total. Lakukan ulang tidak akan dikirim ke database standby hingga database standby diaktifkan kembali.

Melakukan failover

  1. Login ke server Solusi Bare Metal pertama yang menghosting database standby.

  2. Hubungkan ke antarmuka command line Data Guard, lalu failover database utama ke database standby:

    dgmgrl
    
    CONNECT SYS@DBDG_SITE2
    
  3. Saat diminta memasukkan sandi, masukkan sandi login jarak jauh SYS untuk database.

  4. Mulai failover:

    FAILOVER TO DBDG_SITE2
    

    Jalankan show configuration; untuk memverifikasi bahwa DBDG_SITE2 kini menjadi database utama, dan DBDG_SITE1 perlu diaktifkan kembali.

Mengaktifkan kembali database utama

Anda hanya dapat mengaktifkan kembali database utama setelah terjadi failover jika flashback database diaktifkan. Untuk mengaktifkan kembali database utama yang gagal:

  1. Login ke server Solusi Bare Metal pertama yang menghosting database utama.

  2. Terhubung ke antarmuka command line Data Guard, login ke database utama, lalu aktifkan kembali database yang gagal:

    dgmgrl
    
    CONNECT SYS@DBDG_SITE2
    

    Saat diminta memasukkan sandi, masukkan sandi login jarak jauh SYS untuk database.

  3. Kembalikan database:

    REINSTATE DATABASE DBDG_SITE1;
    EXIT;
    

Langkah berikutnya

Selanjutnya, siapkan observer Data Guard di Compute Engine.