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 :)