Kemarin baru saja praktek buat StandBy Database Oracle. Alhamdulillah, dengan bimbingan mas Ilham dan mbak Dini serta mbah google, akhirnya aku berhasil membuat StandBy Database. Disini aku mau share scriptnya.
Langkah-langkahnya adalah sebagai berikut:
- Data-data percobaan
- database server = Oracle 9.2 Linux
- oracle sid = navpr
- database prod server = 192.168.1.40
- database standby = 192.168.1.151
- $ORACLE_HOME sisi prod server = /opt/oracle/product/9.2.0
- $ORACLE_HOME sisi standby server = /home/oracle/product/9.2.0
- Memastikan Oracle SID sudah sesuai
Pada database prod cek dengan perintah echo $ORACLE_SID
$ echo $ORACLE_SID
dan pastikan jawabannya navpr
kalau bukan, maka
$ ORACLE_SID=navpr
$ echo $ORACLE_SID
pasti jawabnya navpr
- Memastikan bahwa Database production sudah berjalan di mode Archivelog
$ sqlplus "/ as sysdba"
SQL> archive log list
Pastikan bahwa
Kalau masih belum dalam mode Archive, modify file init$ORACLE_SID.ora
Shutdown dulu server oracle
SQL>shutdown immediate;
lalu tambahkan bagian berikut ini:
---------------------
log_archive_format = NAVPR%T_%S.ARC
log_archive_start =true
log_archive_dest_1 = "location=/u2/oradata/navpr/archivelog"
log_archive_dest_state_1 = enable
---------------------
Lalu start kembali server
SQL>startup mount
SQL>alter database archivelog;
SQL>alter database open;
- Shutdown oracle prod dan copy datafile dan init$ORACLE_SID.ora ke lokasi standby
$ sqlplus "/ as sysdba"
Untuk mengetahui letak datafile bisa mengunakan query dari database
SQL>select name from v$datafile;
Kemudian shutdown database
SQL>shutdown immediate;
Disini dicontohkan, proses copy menggunakan scp
scp /u1/oradata/navpr/*.dbf oracle@192.168.1.151:/u1/oradata/navpr/
scp $ORACLE_HOME/dbs/initnavpr.ora oracle@192.168.1.151:/home/oracle/product/9.2.0/dbs/
- Membuat Control File untuk Standby database
Start kembali database.. lalu buat control File untuk Standby database
SQL>startup
SQL>alter database create standby controlfile as '/home/oracle/temp/sbycontrol01.ctl'
$ scp /home/oracle/temp/*.ctl oracle@192.168.1.151:/u1/oradata/navpr/
Lalu pada server standby, file sbycontrol01.ctl di copy sebanyak 2 kali hingga membentuk file
sbycontrol02.ctl dan sbycontrol03.ctl
- Menambah konfigurasi di tnsnames.ora disisi prod dan standby
navpr_master =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.40)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = navpr)
)
)
navpr_standby1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.151)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = navpr)
)
)
- Membuat password database
Membuat password database di sisi prod dan standby agar keduanya bisa berkomunikasi.
Password harus sama
$orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=yourpassword
- Modify file init$ORACLE_SID.ora di kedua sisi
Sisi Prod, tambahkan script berikut ini
------------------------------------------------------------------
log_archive_dest_2 = 'SERVICE=navpr_standby1 OPTIONAL LGWR REOPEN=60 MAX_FAILURE=1440 SYNC NOAFFIRM'
log_archive_dest_state_2 = ENABLE
remote_archive_enable = SEND
log_archive_trace = 15
optimizer_mode = choose
------------------------------------------------------------------
Sisi StandBy, tambahkan script berikut ini
------------------------------------------------------------------
log_archive_format = NAVPR%T_%S.ARC
log_archive_start = true
log_archive_dest_1 = "location=/u2/oradata/navpr/archivelog"
log_archive_dest_state_1 = enable
log_archive_trace = 15
standby_archive_dest = '/u2/oradata/navpr/archivelog'
standby_file_management = AUTO
remote_archive_enable = RECEIVE
fal_server = navpr_master.world
fal_client = navpr_standby1.world
optimizer_mode = choose
------------------------------------------------------------------
- Startup standby Database
SQL>create spfile from pfile='/home/oracle/product/9.2.0/dbs/initnavpr.ora'
SQL> startup nomount
SQL> alter database mount standby database;
- Menjalankan mode database
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Untuk melihat hasil standby benar atau tidak, kita masuk folder bdump dan cek di file alert_meter.log di kedua sisi
Atau dengan cara membuat database menjadi open readonly
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE OPEN READ ONLY;
Sekian.. semoga rekan-rekan semua berhasil membuatnya :)
2 Comments:
nice and complicate ^^, good job dear.... lanjutkan!!!
thanks neng.. ^^
Post a Comment