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.ora
untuk 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_base
Mulai 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/adump
Ubah file
$ORACLE_HOME/dbs/initDBDG_SITE21.ora
yang disalin ke server database standby sebelumnya:- Tetapkan
db_unique_name
ke nama database standby baru. - Ubah parameter khusus instance untuk mencerminkan nama instance untuk database standby. Sebagai contoh:
instance_number
thread
undo_tablespace
- Tetapkan parameter
audit_file_dest
untuk menggunakan direktori yang dibuat di langkah sebelumnya. - Jika diskgroup ASM di setiap lokasi menggunakan nama yang berbeda, ubah
parameter
db_file_name_convert
danlog_file_name_convert
agar 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 perintahoraenv
dapat menetapkan variabel lingkungan untuk database standby:DBDG_SITE21:ORACLE_HOME:N
Membuat database standby
Tetapkan variabel lingkungan
ORACLE_SID
agar 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 mode
menggunakanpfile
:sqlplus / as sysdba
STARTUP 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 bytes
Keluar 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 sysdba
Jika 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_SITE2
Keluar dari SQL*Plus setelah memeriksa parameter
DB_UNIQUE_NAME
:EXIT;
Hubungkan ke Recovery Manager, lalu jalankan perintah
duplicate
untuk menduplikasi standby dari database utama yang aktif:rman TARGET sys@DBDG_SITE1 AUXILIARY sys@DBDG_SITE2_FOR_DUPLICATION
DUPLICATE 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
+DATA
dan+RECO
:sqlplus / as sysdba
SET 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.1091317089
Catat nama file kontrol dari langkah sebelumnya, dan ganti entri untuk parameter
control_files
di$ORACLE_HOME/dbs/initDBDG_SITE21.ora
dengan nilai baru. Jika ada beberapa file kontrol, gabungkan setiap file dalam tanda kutip tunggal, yang 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
spfile
baru daripfile
yang diubah:sqlplus / as sysdba
CREATE 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_SITE2
Nonaktifkan instance database standby dan hapus file
pfile
dan sandi sementara:sqplus / as sysdba
SHUTDOWN IMMEDIATE; EXIT;
rm $ORACLE_HOME/dbs/orapwDBDG_SITE21.ora $ORACLE_HOME/dbs/initDBDG_SITE2.ora
Hentikan pemroses sementara yang digunakan untuk duplikasi database di server Solusi Bare Metal pertama di lokasi database standby:
lsnrctl stop LISTENER_DBDG_SITE2
Hapus entri sementara dalam file
$ORACLE_HOME/network/admin/listener.ora
di 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 site2db2
Mulai database standby menggunakan perintah
srvctl
:srvctl start database -db DBDG_SITE2
Langkah berikutnya
Selanjutnya, konfigurasi dan aktifkan broker Data Guard.