-
Konfigurasi Oracle 11g DataGuard
Oracle Database 11g Enterprise Edition Rilis 11.1.0.6.0 - Produksi 64bit
Red Hat Enterprise Linux Server rilis 5.3 (Tikanga)
1. Uji persiapan lingkungan
1. Database utama dan database standby memiliki versi Oracle yang sama dan dijalankan pada platform yang sama seperti Linux, namun perangkat keras servernya bisa berbeda.
2. Basis data utama harus dijalankan dalam mode arsip, dan pastikan untuk membuka FORCE LOGGING pada basis data utama untuk mencegah pengguna menulis ulang melalui nologging dan metode lainnya, menyebabkan operasi terkait gagal dikirim ke basis data siaga.
3. Basis data primer dan siaga dapat diterapkan dalam satu instans atau arsitektur RAC, dan konfigurasi pelindung data yang sama dapat menggabungkan siaga logis dan siaga fisik.
4. Disarankan agar database harus menggunakan arsitektur penyimpanan yang sama. Misalnya, jika ASM/OMF digunakan untuk penyimpanan, ASM/OMF harus digunakan terlepas dari kondisi primer atau siaga.
5. Lingkungan perpustakaan siaga sama dengan lingkungan perpustakaan primer.
2. Sesuaikan perpustakaan utama
1. Ubah database utama ke mode log paksa
mengubah pencatatan kekuatan basis data;
2. Buat kata sandi
file orapwd=$ORACLE_HOME/dbs/orapwtest kata sandi=entri tes=3
3. Ubah parameter inisialisasi perpustakaan utama
db_unique_name ='tes01'
db_name menentukan nama database, db_unique_name menentukan nama database yang berbeda (database primer dan database siaga), yang merupakan identifikasi unik dari db_name. Sebenarnya untuk membedakan database dengan db_name yang sama untuk memudahkan aplikasi dan pengelolaan. Ini adalah parameter setelah 10g.
log_archive_config='DG_CONFIG=(tes01,tes02)'
tes01, tes02 adalah .db_unique_name
log_archive_dest_1='location=/u01/app/Oracle/arch/test/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=test01'
log_archive_dest_2='SERVICE=test_db_02 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=test02'
Tentukan log_archive_dest_state_1
log_archive_dest_state_1= aktifkan #Defaultnya aktif
log_archive_dest_state_2= aktifkan
/*Bagian berikut digunakan untuk mengalihkan host ke database siaga*/
fal_server=uji_db_02
fal_client=uji_db_01
standby_file_management=otomatis
#Jika file atau jalur database primer dan sekunder berbeda
db_file_name_convert='/u01/app/Oracle/oradata/test','/u01/app/Oracle/oradata/test'
log_file_name_convert='/u01/app/Oracle/oradata/test','/u01/app/Oracle/oradata/test'
Disarankan file parameter menggunakan spfile, sehingga parameter dapat diubah menggunakan perintah di perpustakaan non-stop.
4. Pastikan database berjalan dalam mode archivelog
SQL> daftar log arsip
Mode log basis data Tanpa Mode Arsip
Pengarsipan otomatis Dinonaktifkan
Tujuan arsip USE_DB_RECOVERY_FILE_DEST
Urutan log online tertua 2
Urutan log saat ini 4
Sesuaikan database ke mode archivelog
SQL> segera dimatikan
SQL> pemasangan startup
SQL> mengubah arsip database database;
SQL> mengubah database terbuka;
5. Membuat standby log pada database utama (untuk switching)
mengubah basis data memulihkan basis data siaga terkelola batal;#Tidak dijalankan
SQL>ALTER DATABASE TAMBAHKAN STANDBY LOGFILE GROUP 4 UKURAN 50M;
SQL>ALTER DATABASE TAMBAHKAN STANDBY LOGFILE GROUP 5 UKURAN 50M;
SQL>ALTER DATABASE TAMBAHKAN STANDBY LOGFILE GROUP 6 UKURAN 50M;
mkdir -p /u01/app/Oracle/standby/test
SQL>mengubah database menambahkan grup logfile siaga 4('/u01/app/Oracle/standby/test/stdby_redo04.log') ukuran 50M;
SQL>ubah database tambahkan grup file log siaga 5('/u01/app/Oracle/standby/test/stdby_redo05.log') ukuran 50M;
SQL>ubah database tambahkan grup file log siaga 6('/u01/app/Oracle/standby/test/stdby_redo06.log') ukuran 50M;
SQL>mengubah database, memulihkan database siaga terkelola, memutuskan koneksi dari sesi;#Tidak dijalankan
3. Membuat database siaga
1. Buat pwdfile di database standby
file orapwd=$ORACLE_HOME/dbs/orapwtest kata sandi=entri tes=3
Kata sandi harus sama dengan database utama
2. Ubah parameter inisialisasi database siaga yang berbeda dari database utama sebagai berikut:
db_unique_name=tes02
log_archive_dest_1='location=/u01/app/Oracle/arch/test valid_for=(all_logfiles,all_roles) db_unique_name=test02'
log_archive_dest_2='service=test_db_01 ARCH ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=test01'
fal_client='test_db_02'
fal_server='uji_db_01'
db_file_name_convert='/u01/app/Oracle/oradata/TEST01/datafile','/u01/app/Oracle/oradata/TEST02/datafile'
log_file_name_convert='/u01/app/Oracle/oradata/TEST01/onlinelog','/u01/app/Oracle/oradata/TEST02/onlinelog', '/u01/app/Oracle/flash_recovery_area/TEST01/onlinelog','/u01 /app/Oracle/flash_recovery_area/TEST01/onlinelog'
Setelah modifikasi, gunakan pernyataan berikut untuk melihatnya
SQL> pilih * dari V$DATAGUARD_CONFIG;
DB_UNIQUE_NAME
--------------------------------------------------- ----------------------------------------
tes01
tes02
4. Buat direktori yang sesuai, direktori file dump, direktori file data, dan direktori arsip
mkdir -p /u01/app/Oracle/oradata
mkdir -p /u01/app/Oracle/flash_recovery_area
mkdir -p /u01/app/Oracle/arch/test
5. Konfigurasikan file listening.ora dan tnsnames.ora dari database standby untuk memulai kembali mendengarkan dengan database utama dan memeriksa apakah tnsping dapat lolos.
6. Mulai database siaga ke status nomount
SQL> jumlah startup
7. Gunakan fungsi duplikat RMAN untuk membuat database standby. 11g dapat menyalinnya langsung ke database standby tanpa membuat cadangan:
RMAN> rman bantu /
sambungkan sistem target/test@test_db_01
duplikat database target untuk standby dorecover nofilenamecheck;
Periksa status database siaga
SQL> pilih database_role,protection_mode,protection_level dari v$database;
SQL> pilih urutan#, diterapkan dari v$archived_log urutan berdasarkan urutan#;
8. Jalankan perpustakaan utama aplikasi Redo
SQL> mengubah arus log arsip sistem;
Basis data siaga, 11g dapat membuka log aplikasi basis data hanya-baca
SQL> mengubah database terbuka hanya baca;
SQL> mengubah database, memulihkan database siaga terkelola, memutuskan hubungan dari sesi;
Anda juga dapat menggunakan mengubah basis data, memulihkan basis data siaga terkelola menggunakan pemutusan file log saat ini dari log aplikasi sesi;
Jika tidak ada yang menggunakan file log saat ini, terapkan log arsip siaga.
Penggunaan file log saat ini diterapkan ketika log ditransfer ke log pengulangan siaga. Ini bersifat real-time dan harus memiliki log pengulangan siaga.
4. Mode manajemen dan mode read-only dari server siaga
1. Boot ke mode manajemen
SQL> segera dimatikan;
SQL>jumlah startup;
SQL>mengubah basis data mount basis data siaga;
SQL>mengubah database, memulihkan database siaga terkelola, memutuskan hubungan dari sesi;
2. Boot ke mode baca-saja
SQL> segera dimatikan;
SQL>jumlah startup;
SQL>mengubah basis data mount basis data siaga;
SQL>mengubah database terbuka hanya baca;
(3) Jika Anda masuk ke mode read-only dalam mode pemulihan manajemen
SQL> memulihkan pembatalan database siaga terkelola;
SQL> mengubah database terbuka hanya baca;
Saat ini, Anda dapat menambahkan file data sementara ke database (ini tidak dicadangkan selama pencadangan panas)
menyukai
ubah suhu tablespace tambahkan tempfile '/u02/oradata/test/temp01.dbf' ukuran 100M;
5. Dari mode hanya baca ke mode pemulihan terkelola
SQL> memulihkan koneksi database siaga terkelola dari sesi;
5. Beralih antara database aktif dan standby
lsnrctl berhenti
SQL> mengubah komitmen database untuk beralih ke siaga fisik dengan penutupan sesi;
SQL> segera dimatikan;
SQL> pemasangan startup;
SQL> mengubah database memulihkan pemutusan database siaga terkelola;
lsnrctl mulai
Cadangan
SQL> mengubah komitmen database untuk beralih ke primer;
SQL> segera dimatikan;
SQL> memulai
6. Lampiran di bawah ini adalah isi file konfigurasi:
pendengar.ora
PENDENGAR =
(DESKRIPSI=
(ALAMAT = (PROTOKOL = TCP)(HOST = Oracle6)(PORT = 1521))
)
tnsnames.ora
UJI_DB_02 =
(DESKRIPSI=
(ADDRESS_LIST =
(ALAMAT = (PROTOKOL = TCP)(HOST = 192.168.202.5)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = tes02)
)
)
UJI_DB_01 =
(DESKRIPSI=
(ADDRESS_LIST =
(ALAMAT = (PROTOKOL = TCP)(HOST = 192.168.202.6)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = tes01)
)
)
file p
tes.__db_cache_size=1526726656
tes.__java_pool_size=16777216
tes.__large_pool_size=16777216
test.__Oracle_base='/u01/app/Oracle'#ORACLE_BASE disetel dari lingkungan
tes.__pga_aggregate_target=1342177280
tes.__sga_target=2013265920
tes.__shared_io_pool_size=0
tes.__shared_pool_size=436207616
tes.__streams_pool_size=0
*.audit_file_dest='/u01/app/Oracle/admin/test/adump'
*.audit_trail='db'
*.kompatibel='11.1.0.0.0'
*.control_files='/u01/app/Oracle/oradata/test/control01.ctl','/u01/app/Oracle/oradata/test/control02.ctl','/u01/app/Oracle/oradata/test/ kontrol03.ctl'
*.db_block_size=8192
*.db_domain='greatsky.com'
*.db_name='tes'
*.db_recovery_file_dest='/u01/app/Oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.db_unique_name='tes01'
*.diagnostic_dest='/u01/app/Oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)'
*.fal_client='UJI_DB_01'
*.fal_server='UJI_DB_02'
*.log_archive_config='dg_config=(tes01,tes02)'
*.log_archive_dest_1='lokasi=/u01/app/Oracle/arch/test/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=test01'
*.log_archive_dest_2='SERVICE=test_db_02 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=test02'
*.memory_target=3347054592
*.open_cursors=300
*.proses=150
*.remote_login_passwordfile='EKSKLUSIF'
*.service_names='test.greatsky.com','test01.greatsky.com'
*.standby_file_management='OTOMATIS'
*.undo_tablespace='UNDOTBS1'