Memvalidasi deployment Data Guard
Setelah menyiapkan broker Data Guard, Anda harus memverifikasi bahwa pengulangan disalin dari database utama dan diterapkan pada 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 | Kasus penggunaan |
DBDG_SITE2 | site2db1, site2db2 | DBDG_SITE21, DBDG_SITE22 | Standby |
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 urut terbaru untuk log pengulangan 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 urut maksimum 40 untuk thread 1 dan nomor urut maksimum 33 untuk thread 2:
THREAD# Last Primary Seq Archived ---------- ------------------------- 1 40 2 33
Rekam 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 validasi bahwa nomor urut terbaru yang diterima dan diterapkan untuk log pengulangan 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 urut yang cocok dengan kueri sebelumnya yang dijalankan pada database standby:
THREAD# Last Standby Seq Received ---------- ------------------------- 1 40 2 33
THREAD# Last Standby Seq Applied ---------- ------------------------ 1 40 2 33
Periksa apakah 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 jeda pada database standby:
NAME VALUE -------------------- ------------------------------ transport lag +00 00:00:00 apply lag +00 00:00:00
Jika terjadi keterlambatan, baca dokumentasi pemecahan masalah Oracle Data Guard.
Peralihan database menggunakan broker Data Guard
Pengalihan adalah pembalikan peran saat database utama menjadi database standby, dan sebaliknya. Selama proses pengalihan, klien database terputus dari database utama. Bergantung pada cara aplikasi Anda terhubung ke database, switchover dapat mengganggu traffic aplikasi. Oracle menawarkan opsi untuk mempertahankan kontinuitas aplikasi selama transisi peran. Anda dapat menguji kesiapan pemulihan dari bencana (disaster recovery) dengan melakukan pengalihan database menggunakan 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 dimintai sandi, masukkan sandi login jarak jauh SYS untuk database.
Periksa apakah database siap untuk peralihan.
VALIDATE DATABASE DBDG_SITE2;
Hasil yang sukses akan melaporkan bahwa database siap untuk peralihan.
Jika berhasil, lakukan perintah switchover:
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 bertukar:
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 beralih ke peran utama karena pemadaman layanan situs secara total. Ulangi tidak akan dikirim ke database standby hingga database standby telah diaktifkan kembali.
Melakukan failover
Login ke server Solusi Bare Metal pertama yang menghosting database standby.
Hubungkan ke antarmuka command line Data Guard, lalu alihkan database utama ke database standby:
dgmgrl
CONNECT SYS@DBDG_SITE2
Saat dimintai sandi, masukkan sandi login jarak jauh SYS untuk database.
Memulai failover:
FAILOVER TO DBDG_SITE2
Jalankan
show configuration;
untuk memverifikasi bahwaDBDG_SITE2
kini menjadi database utama, danDBDG_SITE1
harus diaktifkan kembali.
Mengaktifkan kembali database utama
Anda hanya dapat mengaktifkan kembali database utama setelah failover jika
flashback database
diaktifkan. Untuk mengaktifkan kembali database utama yang gagal:
Login ke server Solusi Bare Metal pertama yang menghosting database utama.
Hubungkan ke antarmuka command line Data Guard, login ke database utama, lalu aktifkan kembali database yang gagal:
dgmgrl
CONNECT SYS@DBDG_SITE2
Saat dimintai sandi, masukkan sandi login jarak jauh SYS untuk database.
Aktifkan kembali database:
REINSTATE DATABASE DBDG_SITE1; EXIT;
Langkah berikutnya
Selanjutnya, siapkan observer Data Guard di Compute Engine.