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
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"
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.
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"
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
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 statusAPPLYING_LOG
:PROCESS STATUS --------- ------------ MRP0 APPLYING_LOG
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:
Login ke server Solusi Bare Metal yang menghosting database utama.
Luncurkan antarmuka command line Data Guard, dan hubungkan ke database standby:
dgmgrl
CONNECT SYS@DBDG_SITE2
Saat diminta memasukkan sandi, masukkan sandi login jarak jauh SYS untuk database.
Validasi bahwa database siap untuk pengalihan.
VALIDATE DATABASE DBDG_SITE2;
Hasil yang berhasil akan melaporkan bahwa database siap untuk beralih.
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.Jalankan perintah berikut untuk mengonfirmasi bahwa peran database telah ditukar:
SHOW CONFIGURATION;
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
Login ke server Solusi Bare Metal pertama yang menghosting database standby.
Hubungkan ke antarmuka command line Data Guard, lalu failover database utama ke database standby:
dgmgrl
CONNECT SYS@DBDG_SITE2
Saat diminta memasukkan sandi, masukkan sandi login jarak jauh SYS untuk database.
Mulai failover:
FAILOVER TO DBDG_SITE2
Jalankan
show configuration;
untuk memverifikasi bahwaDBDG_SITE2
kini menjadi database utama, danDBDG_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:
Login ke server Solusi Bare Metal pertama yang menghosting database utama.
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.
Kembalikan database:
REINSTATE DATABASE DBDG_SITE1; EXIT;
Langkah berikutnya
Selanjutnya, siapkan observer Data Guard di Compute Engine.