Membuat database standby Data Guard
Setelah database utama disiapkan untuk Data Guard, database tersebut siap diduplikasi ke situs standby. Panduan berikut menggunakan duplikasi aktif untuk membuat salinan database yang konsisten.
Sebagai pengingat, 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 |
Server Solusi Bare Metal yang menjalankan Oracle dalam panduan ini dikonfigurasi dengan variabel lingkungan berikut:
| Nama variabel lingkungan | Nilai |
|---|---|
| ORACLE_BASE | /apps/oracle/oracle_base |
| ORACLE_HOME | /apps/oracle/19.0.0/db_home1 |
Anda mungkin perlu mengubah jalur variabel lingkungan, bergantung pada penyiapan Anda.
Menyiapkan database standby
Mengonfigurasi konektivitas database
Login ke setiap server Solusi Bare Metal di lokasi standby dan ubah
file $ORACLE_HOME/network/admin/tsnames.ora untuk memperbarui konfigurasi layanan
jaringan:
DBDG_SITE2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE2_SCAN_HOSTNAME)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DBDG_SITE2) (UR=A)
)
)
DBDG_SITE1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE1_SCAN_HOSTNAME)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DBDG_SITE1)
)
)
Mengonfigurasi pemroses sementara
Untuk menghindari memulai ulang pemroses yang digunakan untuk koneksi database lain, duplikasi database dilakukan menggunakan pemroses sementara. Contoh ini menggunakan port 1523, tetapi Anda dapat menggunakan port apa pun yang terbuka untuk komunikasi antar- cluster. Anda menghapus pemroses sementara ini setelah duplikasi database.
Login ke server Solusi Bare Metal pertama di lokasi standby yang akan digunakan selama proses duplikasi database. Ubah file
$ORACLE_HOME/network/admin/listener.orauntuk memperbarui konfigurasi layanan jaringan:LISTENER_DBDG_SITE2 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = site1db1)(PORT = 1523)) ) ) SID_LIST_LISTENER_DBDG_SITE2 = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = DBDG_SITE2_DGMGRL) (ORACLE_HOME = ORACLE_HOME) (SID_NAME = DBDG_SITE21) ) ) ADR_BASE_LISTENER = /apps/oracle/oracle_baseMulai pemroses sementara:
lsnrctl start LISTENER_DBDG_SITE2
Menyiapkan database standby
Setiap instance database memerlukan direktori untuk menyimpan log audit. Buat direktori file audit di setiap server Solusi Bare Metal di lokasi database standby:
mkdir -p /apps/oracle/oracle_base/admin/DBDG_SITE2/adumpUbah file
$ORACLE_HOME/dbs/initDBDG_SITE21.orayang disalin ke server database standby sebelumnya:- Tetapkan
db_unique_nameke nama database standby baru. - Ubah parameter khusus instance untuk mencerminkan nama instance untuk database standby. Sebagai contoh:
instance_numberthreadundo_tablespace
- Tetapkan parameter
audit_file_destuntuk menggunakan direktori yang dibuat di langkah sebelumnya. - Jika diskgroup ASM di setiap lokasi menggunakan nama yang berbeda, ubah
parameter
db_file_name_convertdanlog_file_name_convertagar cocok dengan lokasi file baru. - Beri komentar pada parameter
control_files.
Contoh berikut menunjukkan file parameter database yang diperbarui dengan modifikasi menggunakan contoh yang diberikan dalam panduan ini. Perhatikan bahwa file parameter Anda akan berisi parameter tambahan yang khusus untuk penyiapan database Anda. Hanya parameter yang memerlukan modifikasi untuk mode standby yang ditampilkan:
*.db_unique_name='DBDG_SITE2' DBDG_SITE21.instance_number=1 DBDG_SITE22.instance_number=2 DBDG_SITE21.thread=1 DBDG_SITE22.thread=2 DBDG_SITE21.undo_tablespace='UNDOTBS1' DBDG_SITE22.undo_tablespace='UNDOTBS2' *.audit_file_dest='/apps/oracle/oracle_base/admin/DBDG_SITE2/adump' #*.control_files='+DATA/DBDG_SITE1/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE1/CONTROLFILE/current.257.1091317089'- Tetapkan
Dalam file
/etc/oratab, tambahkan entri agar perintahoraenvdapat menetapkan variabel lingkungan untuk database standby:DBDG_SITE21:ORACLE_HOME:N
Membuat database standby
Tetapkan variabel lingkungan
ORACLE_SIDagar Anda dapat terhubung ke database standby:source oraenv <<< "DBDG_SITE21"Anda akan menerima respons
The Oracle base has been set to /apps/oracle/oracle_base.Sebelum menduplikasi database utama, Anda harus memulai instance standby secara manual di satu node. Login ke server Solusi Bare Metal pertama di lokasi standby, mulai SQL*Plus, lalu mulai database standby di
nomount modemenggunakanpfile:sqlplus / as sysdbaSTARTUP NOMOUNT PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';Jika berhasil, Anda akan menerima respons yang mirip dengan contoh berikut:
ORACLE instance started. Total System Global Area 1.2885E+10 bytes Fixed Size 15988824 bytes Variable Size 1845493760 bytes Database Buffers 1.1006E+10 bytes Redo Buffers 17563648 bytesKeluar dari SQL*Plus setelah memulai instance:
EXIT;Verifikasi konektivitas ke layanan database standby. Dari setiap server Solusi Bare Metal di lokasi database utama, coba hubungkan ke instance standby menggunakan SQL*Plus. Masukkan sandi login jarak jauh SYS secara manual agar berhasil terhubung ke instance.
sqlplus sys@DBDG_SITE2_FOR_DUPLICATION as sysdbaJika berhasil, Anda akan menerima perintah SQL*Plus standar, tempat Anda dapat memeriksa parameter instance:
SHOW PARAMETER DB_UNIQUE_NAME;Anda akan melihat respons seperti berikut:
NAME TYPE VALUE ---------------- ----------- ------------------------------ db_unique_name string DBDG_SITE2Keluar dari SQL*Plus setelah memeriksa parameter
DB_UNIQUE_NAME:EXIT;Hubungkan ke Recovery Manager, lalu jalankan perintah
duplicateuntuk menduplikasi standby dari database utama yang aktif:rman TARGET sys@DBDG_SITE1 AUXILIARY sys@DBDG_SITE2_FOR_DUPLICATIONDUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE NOFILENAMECHECK;Jika berhasil, setelah pemrosesan, Anda akan menerima pesan yang mirip dengan contoh berikut:
Finished Duplicate Db at ...Keluar dari Recovery Manager:
EXIT;
Menyelesaikan pembuatan database standby
Selama duplikasi database, ASM membuat file kontrol baru untuk database standby. Terhubung ke instance standby baru dan dapatkan nama file kontrol baru. Contoh berikut menunjukkan dua file kontrol yang disimpan di grup disk
+DATAdan+RECO:sqlplus / as sysdbaSET LINESIZE 140 COLUMN NAME FORMAT a15 COLUMN VALUE FORMAT a125 SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='control_files';Nama file kontrol ditampilkan di kolom "Nilai":
NAME VALUE --------------- ---------------------------------------------------------------------------------------------------- control_files +DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089, +RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089Catat nama file kontrol dari langkah sebelumnya, dan ganti entri untuk parameter
control_filesdi$ORACLE_HOME/dbs/initDBDG_SITE21.oradengan nilai baru. Jika ada beberapa file kontrol, gabungkan setiap file dalam tanda kutip tunggal, dipisahkan dengan koma:*.control_files='+DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089'Hubungkan ke database standby dengan SQL*Plus dan buat
spfilebaru daripfileyang diubah:sqlplus / as sysdbaCREATE SPFILE='+DATA/DBDG_SITE2/spfileDBDG_SITE2' FROM PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';Salin file sandi ke diskgroup ASM menggunakan perintah
asmcmd:asmcmd cp /apps/oracle/19.0.0/db_home1/dbs/orapwDBDG_SITE21.ora +DATA/DBDG_SITE2/orapwDBDG_SITE2Nonaktifkan instance database standby dan hapus file
pfiledan sandi sementara:sqplus / as sysdbaSHUTDOWN IMMEDIATE; EXIT;rm $ORACLE_HOME/dbs/orapwDBDG_SITE21.ora $ORACLE_HOME/dbs/initDBDG_SITE2.oraHentikan pemroses sementara yang digunakan untuk duplikasi database di server Solusi Bare Metal pertama di lokasi database standby:
lsnrctl stop LISTENER_DBDG_SITE2Hapus entri sementara dalam file
$ORACLE_HOME/network/admin/listener.oradi server Solusi Bare Metal pertama di lokasi database standby.Tambahkan database dan instance standby baru ke registry cluster menggunakan perintah
srvctl:srvctl add database \ -db DBDG_SITE2 \ -oraclehome /apps/oracle/19.0.0/db_home1 \ -spfile +DATA/DBDG_SITE2/spfileDBDG_SITE2 \ -pwfile +DATA/DBDG_SITE2/orapwDBDG_SITE2 \ -role PHYSICAL_STANDBY \ -startoption MOUNT srvctl add instance \ -db DBDG_SITE2 \ -instance DBDG_SITE21 \ -node site2db1 srvctl add instance \ -db DBDG_SITE2 \ -instance DBDG_SITE22 \ -node site2db2Mulai database standby menggunakan perintah
srvctl:srvctl start database -db DBDG_SITE2
Langkah berikutnya
Selanjutnya, konfigurasi dan aktifkan broker Data Guard.