Membuat database standby Data Guard
Setelah disiapkan untuk Data Guard, database utama 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 | Kasus penggunaan |
DBDG_SITE2 | site2db1, site2db2 | DBDG_SITE21, DBDG_SITE22 | Standby |
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
Agar pemroses tidak dimulai ulang 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:- Setel
db_unique_name
ke nama database standby yang 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 pada 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. - Jadikan parameter
control_files
sebagai komentar.
Contoh berikut menunjukkan file parameter database yang diperbarui dengan modifikasi menggunakan contoh yang diberikan dalam panduan ini. Perhatikan bahwa file parameter akan berisi parameter tambahan yang spesifik untuk penyiapan database Anda. Hanya parameter yang memerlukan modifikasi untuk 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'
- Setel
Dalam file
/etc/oratab
, tambahkan entri agar perintahoraenv
dapat menetapkan variabel lingkungan untuk database standby:DBDG_SITE21:ORACLE_HOME:N
Membuat database standby
Setel variabel lingkungan
ORACLE_SID
agar Anda dapat terhubung ke database standby:source oraenv <<< "DBDG_SITE21"
Anda akan menerima
The Oracle base has been set to /apps/oracle/oracle_base
respons.Sebelum menduplikasi database utama, Anda harus memulai instance standby secara manual pada 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;
Memverifikasi 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, yang dapat digunakan untuk 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 Pengelola Pemulihan, lalu jalankan perintah
duplicate
untuk menduplikasi mode 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 Pengelola Pemulihan:
EXIT;
Menyelesaikan pembuatan database standby
Selama duplikasi database, ASM membuat file kontrol baru untuk database standby. Menghubungkan ke instance standby baru dan mendapatkan nama file kontrol baru. Contoh berikut menunjukkan dua file kontrol yang disimpan dalam diskgroup
+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 "Value":
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 apa pun untuk parameter
control_files
di$ORACLE_HOME/dbs/initDBDG_SITE21.ora
dengan nilai baru. Jika ada beberapa file kontrol, rangkum 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 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 dengan menggunakan perintah
asmcmd
:asmcmd cp /apps/oracle/19.0.0/db_home1/dbs/orapwDBDG_SITE21.ora +DATA/DBDG_SITE2/orapwDBDG_SITE2
Matikan 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, konfigurasikan dan aktifkan broker Data Guard.