View
16
Download
4
Category
Preview:
DESCRIPTION
configure dataguard on oracle linux
Citation preview
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 1
ASUMSI 1. Install 2 operating system di VM Ware dan install oracle di masing-masing OS tersebut.
a. OS pertama untuk Oracle primary install engine, buat database-nya, database dalam kondisi archive mode, dan buat pfile-nya
b. OS kedua untuk Oracle standby install engine. Berikut contoh konfigurasinya.
Primary Standby
OS Oracle Enterprise Linux 6.3 64 bit Oracle Enterprise Linux 6.3 64 bit IP 192.168.6.162 192.168.6.155 Hostname primary.odg.com stby.odg.com Memory 2054308 kB 2054308 kB Swap 4128764 kB 4128764 kB Oracle Version 11.2.0.3 11.2.0.3 Oracle Base /home/odg/oracle/app/oracle /home/odg/oracle/app/oracle Oracle Home home/odg/oracle/app/oracle /
product/11.2.0/db_1 home/odg/oracle/app/oracle / product/11.2.0/db_1
Database Name prod prod Instance Name prod stby DB Unique Name
prod stby
2. Berikut capture lokasi adump,bdump, dll.
Object Primary Standby
Audit files /home/odg/oracle/app/oracle/admin/prod/adump
/home/odg/oracle/app/oracle/admin/stby/adump
Background dump files
/home/odg/oracle/app/oracle/diag/rdbms/prod/prod/trace
/home/odg/oracle/app/oracle/diag/rdbms/stby/stby/trace
Core dump files
/home/odg/oracle/app/oracle/diag/rdbms/prod/prod/cdump
/home/odg/oracle/app/oracle/diag/rdbms/stby/stby/cdump
User dump files
/home/odg/oracle/app/oracle/diag/rdbms/prod/prod/trace
/home/odg/oracle/app/oracle/diag/rdbms/stby/stby/trace
Data pump dump files
/home/odg/oracle/app/oracle/admin/prod/dpdump
/home/odg/oracle/app/oracle/admin/stby/dpdump
Db recovery files
/archive /archive
Control files
/oradata/prod , /archive/prod /oradata/stby , /archive/stby
Redo log files
/oradata/prod /oradata/stby
Datafiles /oradata/prod /oradata/stby
Archive Destination
/archive/PROD /archive/STBY
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 2
PRIMARY 1. Pastikan database dalam kondisi archive mode:
SQL> select LOG_MODE from V$DATABASE;
LOG_MODE
--------------------
ARCHIVELOG
2. Enable force logging
- Cek status force logging SQL> select FORCE_LOGGING from V$DATABASE;
FOR
------
NO
- Apabila statusnya masih NO , maka ubah statusnya menjadi YES SQL> ALTER DATABASE FORCE LOGGING;
Database altered.
- Cek ulang status force logging
SQL> select FORCE_LOGGING from V$DATABASE;
FOR
------
YES
3. Buat standby redolog
- Cek ukuran redolog SQL> select bytes/1024/1024 as MB from v$log;
MB
----------
50
50
50
- Cek lokasi redolog SQL> column group# format 9;
SQL> column member format A45;
SQL> select group#, member from v$logfile;
GROUP# MEMBER
------ ---------------------------------------------
3 /oradata/prod/redo03.log
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 3
2 /oradata/prod/redo02.log
1 /oradata/prod/redo01.log
- Buat standby redolog (kriteria pembuatan standby redolog = jumlah online redolog + 1) SQL> alter database add standby logfile group 4
'/oradata/prod/srl04.log' size 50M;
SQL> alter database add standby logfile group 5
'/oradata/prod/srl05.log' size 50M;
SQL> alter database add standby logfile group 6
'/oradata/prod/srl06.log' size 50M;
SQL> alter database add standby logfile group 7
'/oradata/prod/srl07.log' size 50M;
- Cek lagi SQL> select group#, member from v$logfile order by 1;
GROUP# MEMBER
------ ---------------------------------------------
1 /oradata/prod/redo01.log
2 /oradata/prod/redo02.log
3 /oradata/prod/redo03.log
4 /oradata/prod/srl04.log
5 /oradata/prod/srl05.log
6 /oradata/prod/srl06.log
7 /oradata/prod/srl07.log
4. Cek setting db_name dan db_unique_name SQL> show parameter db_name;
NAME TYPE VALUE
------------------------------------ ----------- ----------------
db_name string prod
SQL> show parameter db_unique_name;
NAME TYPE VALUE
------------------------------------ ----------- ----------------
db_unique_name string prod
5. Inisialisasi parameter, ubah parameter dengan cara berikut (perhatikan lokasi archive
LOG_ARCHIVE_DEST_1, lokasinya akan sama dengan lokasi di database stanby nantinya,
jadi kalau mau dibuat jadi /archive juga gak apa-apa. SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(prod,stby)'
scope=both;
SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/archive/PROD
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=prod' scope=both;
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 4
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=stby LGWR ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stby'
scope=both;
SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both;
SQL> alter system set FAL_SERVER=stby scope=both;
SQL> alter system set FAL_CLIENT=prod scope=both;
SQL> alter system set LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' scope=spfile;
Optional SQL> alter system set
DB_FILE_NAME_CONVERT='/oradata/stby/','/oradata/prod/' scope=spfile;
SQL> alter system set
LOG_FILE_NAME_CONVERT='/oradata/stby/','/oradata/prod/' scope=spfile;
STANDBY Masuk sebagai user oracle, dan aktifkan profile-nya. Masuk ke folder lokasi listener (cd
$ORACLE_HOME/network/admin), kemudian buat static listener seperti di bawah ini (vi
listener.ora) SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = stby)
(ORACLE_HOME = /home/odg/oracle/app/oracle/product/11.2.0/db_1)
(SID_NAME = stby)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = stby.odg.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
PRIMARY DAN STANDBY 1. Disable SELINUX dan FIREWALL di masing-masing server (primary dan standby), lakukan sebagai
user root
- Disable SELINUX # vi /etc/sysconfig/selinux
SELINUX=disabled
#reboot
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 5
- Matikan FIREWALL # /etc/init.d/iptables stop
2. Buat tnsnames. ora di masing-masing server (primary dan standby) seperti dibawah
PROD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary.odg.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prod)
)
)
STBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = stby.odg.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = stby)
)
)
3. Tes konfigurasi tnsnames.ora yang sudah dibuat
- Mesin primary $ tnsping stby
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 23-
JUL-2013 14:34:28
Copyright (c) 1997, 2011, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL =
TCP)(HOST = stby.odg.com)(PORT = 1521)) (CONNECT_DATA = (SERVER =
DEDICATED) (SERVICE_NAME = stby)))
OK (130 msec)
- Mesin standby $ tnsping prod
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 23-
JUL-2013 14:35:14
Copyright (c) 1997, 2011, Oracle. All rights reserved.
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 6
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL =
TCP)(HOST = primary.odg.com)(PORT = 1521)) (CONNECT_DATA = (SERVER =
DEDICATED) (SERVICE_NAME = prod)))
OK (110 msec)
STANDBY 1. Copy password file dari primary, rename password file tersebut menjadi password file dengan
nama database oracle untuk mesin standby $ scp orapwprod
oracle@stby.odg.com:/home/odg/oracle/app/oracle/product/11.2.0/db_1/dbs
/orapwstby
The authenticity of host 'stby.odg.com (192.168.6.155)' can't be
established.
RSA key fingerprint is 27:8b:74:32:5e:9f:d6:46:53:95:52:4e:43:84:b9:94.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'stby.odg.com' (RSA) to the list of known
hosts.
oracle@stby.odg.com's password:
orapwprod 100% 1536 1.5KB/s
00:00
2. Buat pfile yang hanya berisi parameter DB_NAME, untuk parameter memory_target dan
db_block_size, samakan dengan parameter memory_target dan db_block_size di pfile database
di mesin primary
[oracle@stby dbs]$ vi initstby.ora
*.db_name='stby'
*.db_unique_name='stby'
*.memory_target=839909376
*.db_block_size=8192
3. Buat folder yang diperlukan untuk lokasi datafile, archive, dan adump (lakukan sebagai user
root)
# mkdir p /oradata/stby
# mkdir p /archive
# mkdir p /home/odg/oracle/app/oracle/admin/stby/adump
# chown R oracle:oinstall /oradata
# chown R oracle:oinstall /oradata/stby
# chown R oracle:oinstall /archive
# chown R oracle:oinstall /home/odg/oracle/app/oracle/admin/stby/adump
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 7
4. Ubah oracle_sid menjadi nama sid untuk database standby, kemudian startup nomount [oracle@stby dbs]$ export ORACLE_SID=stby
[oracle@stby dbs]$ sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.3.0 Production on Tue Jul 23 15:33:12 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup nomount pfile='initstby.ora';
ORACLE instance started.
Total System Global Area 839282688 bytes
Fixed Size 2233000 bytes
Variable Size 494931288 bytes
Database Buffers 339738624 bytes
Redo Buffers 2379776 bytes
5. Cek apakah bisa dilakukan koneksi sysdba SQL> connect sys/oracle@stby as sysdba;
Connected.
PRIMARY 1. Cek di sql, apakah bisa dilakukan koneksi sysdba
SQL> connect sys/oracle@prod as sysdba;
Connected.
2. Jalankan RMAN, koneksikan database primary dan auxiliary database (standby database),
jalankan duplicate rman $ rman target sys/oracle@prod auxiliary sys/oracle@stby
Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jul 23
16:13:25 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights
reserved.
connected to target database: PROD (DBID=232969419)
connected to auxiliary database: STBY (not mounted)
RMAN>run {
duplicate target database for standby from active database
spfile
parameter_value_convert 'prod','stby'
set db_unique_name='stby'
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 8
set DB_FILE_NAME_CONVERT='/oradata/prod/','/oradata/stby/'
set LOG_FILE_NAME_CONVERT='/oradata/prod/','/oradata/stby/'
set control_files='/oradata/stby/control01.ctl'
set log_archive_max_processes='5'
set fal_client='stby'
set fal_server='prod'
set standby_file_management='AUTO'
set log_archive_config='dg_config=(prod,stby)'
set log_archive_dest_2='service=prod ASYNC
valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=prod'
;
}
STANDBY 1. Cek status open_mode
SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM
V$DATABASE;
NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE
--------- ------------------------------ ---------------- -------------
PROD stby PHYSICAL STANDBY MOUNTED
2. Cek archive log, samakan dengan archive log list di mesin primary SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archive/PROD
Oldest online log sequence 0
Next log sequence to archive 0
Current log sequence 24
Apabila lokasi archive di mesin standby tidak sesuai dengan lokasi yang diinginkan, maka ubah
lokasinya
a. Cek lokasi archive SQL> sho parameter LOG_ARCHIVE_DEST_1;
NAME TYPE VALUE
----------------------- ----------- ------------------
log_archive_dest_1 string LOCATION=/archive/PROD
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=stby
log_archive_dest_10 string
log_archive_dest_11 string
log_archive_dest_12 string
log_archive_dest_13 string
log_archive_dest_14 string
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 9
log_archive_dest_15 string
log_archive_dest_16 string
log_archive_dest_17 string
NAME TYPE VALUE
----------------------- ----------- -------------------
log_archive_dest_18 string
log_archive_dest_19 string
b. Ubah lokasi archive SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/archive/STBY
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=stby' scope=both;
System altered.
3. Cek apakah archive log sudah ter-apply atau belum SQL> select sequence#, applied from v$archived_log;
SEQUENCE# APPLIED
---------- ---------
30 NO
29 NO
28 NO
4. Eksekusi query di bawah agar archive log ter-apply SQL> recover managed standby database disconnect;
Media recovery complete.
5. Cek lagi archive log sudah ter-apply atau belum SQL> select sequence#, applied from v$archived_log;
SEQUENCE# APPLIED
---------- ---------
30 YES
29 YES
28 YES
PRIMARY
1. Jalankan query dibawah untuk men-tes apakah archive log yang di primary terkirim ke mesin
standby SQL> alter system switch logfile;
System altered.
Setelah itu cek di mesin standby apakah archive log yang di primary terkirim ke mesin standby
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 10
STANDBY 1. Cek apakah archive log dari mesin primary terkirim ke mesin standby
SQL> select process, thread#, sequence#, status from v$managed_standby;
PROCESS THREAD# SEQUENCE# STATUS
--------- ---------- ---------- ------------
ARCH 0 0 CONNECTED
ARCH 1 30 CLOSING
ARCH 0 0 CONNECTED
ARCH 0 0 CONNECTED
ARCH 1 31 CLOSING
RFS 0 0 IDLE
RFS 0 0 IDLE
RFS 0 0 IDLE
RFS 1 32 IDLE
MRP0 1 32 WAIT_FOR_LOG
10 rows selected.
2. Apabila ingin mematikan database standby dengan kondisi dimana archive dari primary dikirim
ke database standby, tetapi tidak di apply di database standby maka matikan MRP-nya SQL> recover managed standby database cancel;
Media recovery complete.
SQL> select process, thread#, sequence#, status from v$managed_standby;
PROCESS THREAD# SEQUENCE# STATUS
--------- ---------- ---------- ------------
ARCH 0 0 CONNECTED
ARCH 1 30 CLOSING
ARCH 0 0 CONNECTED
ARCH 0 0 CONNECTED
ARCH 1 31 CLOSING
RFS 0 0 IDLE
RFS 0 0 IDLE
RFS 0 0 IDLE
RFS 1 32 IDLE
9 rows selected.
3. Cek apakah file fisik archive terkirim dari mesin primary SQL> !ls -ltr /archive/STBY
total 1752
drwxr-x--- 2 oracle oinstall 4096 Jul 24 11:24 onlinelog
-rw-r----- 1 oracle oinstall 1786880 Jul 26 00:01 1_31_821131093.arc
4. Cek apakah archive sudah ter-apply
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 11
SQL> select sequence#, applied from v$archived_log;
SEQUENCE# APPLIED
---------- ---------
30 YES
29 YES
28 YES
31 YES
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 12
AGAR MENJADI ACTIVE DATA GUARD
STANDBY 1. Matikan standby database (archive dari primary dikirim ke database standby, tetapi tidak di
apply di database standby), agar dapat dilakukan query di database standby: SQL> recover managed standby database cancel;
Media recovery complete.
2. Cek status standby database: SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM
V$DATABASE;
NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE
----------- ------------------ ------------------ ---------------------
PROD stby PHYSICAL STANDBY MOUNTED
3. Ubah status standby database menjadi open : SQL> alter database open;
Database altered.
4. Aktifkan lagi MRP-nya: SQL> recover managed standby database disconnect;
Media recovery complete.
5. Cek status standby database: SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM
V$DATABASE;
NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE
--------- ------------------ ------------------- ----------------------
PROD stby PHYSICAL STANDBY READ ONLY WITH APPLY
6. Cek apakah archive sudah ter apply atau belum: SQL> select sequence#, applied from v$archived_log;
SEQUENCE# APPLIED
---------- ---------
34 YES
35 YES
36 YES
37 YES
38 YES
7. Cek status standby database:
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 13
SQL> select process, thread#, sequence#, status from v$managed_standby;
PROCESS THREAD# SEQUENCE# STATUS
--------- -------- --------- ------------
ARCH 1 37 CLOSING
ARCH 0 0 CONNECTED
ARCH 0 0 CONNECTED
ARCH 0 0 CONNECTED
ARCH 1 38 CLOSING
MRP0 1 39 WAIT_FOR_LOG
RFS 0 0 IDLE
RFS 0 0 IDLE
RFS 1 39 IDLE
RFS 0 0 IDLE
Note : kalau mau mengembalikan agar jadi odg lagi, di restart aja standby database-nya
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 14
PHYSICAL STANDBY KE SNAPSHOT DAN SEBALIKNYA
CONVERT PHYSICAL STANDBY DATABASE MENJADI SNAPSHOT DATABASE
Di Oracle Data Guard 11g, ada metode snapshot. Pengertiannya diterjemahin sendiri ya.
STANDBY
1. Stop redo apply-nya: SQL> recover managed standby database cancel;
Media recovery complete.
2. Convert physical stanbdby ke snapshot standby: SQL> alter database convert to snapshot standby;
Database altered.
3. Open database-nya SQL> alter database open;
Database altered.
4. Cek database role-nya apakah sudah berubah atau belum: SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM
V$DATABASE;
NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE
--------- ------------------------------ ---------------- ----------
PROD stby SNAPSHOT STANDBY READ WRITE
Note :
While the standby is in snapshot standby mode you are free to run transactions against the
snapshot standby.
Using this feature you can use your physical standby database to temporary process transactions. If you have a need to test out application fixes or new functionality you can leverage your physical standby while still protecting the primary database. A Snapshot Standby database still receives redo data from the primary but it does not apply the redo data until after it converted back to a physical standby. Keep in mind that a snapshot standby database cannot be the target of a switchover or failover. A snapshot must be converted back to a physical standby prior to performing a role transition. Flashback Database technology is used in the conversion process so the Fast (Flash) Recovery area must be configured.
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 15
While the standby is in snapshot mode it still continues to receive redo data from the primary
but it does not apply the redo data. You verify the transport by switching logs on the primary
and looking at the alert log on the standby
Kira-kira tejemahannya begini (jangan percaya banget ya sama terjemahannya, takutnya kalau
salah, coba sambil buka google translate aja hehehehe):
Ketika databse standby dalam kondisi snapshot standby, maka dapat dilakukan transaksi di
snapshot standby tersebut.
Ketika standby database yang berada dalam dalam kondisi snapshot standby menerima redo
data dari primary tetapi tidak me-apply-nya, maka lakukan verifikasi pengiriman redo-nya
dengan switch log dan lihat alert di standby database
CONVERT SNAPSHOT DATABASE MENJADI PHYSICAL STANDBY DATABASE
STANDBY
1. Matikan standby database dan nyalakan kembali dengan status mount SQL> shut immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 839282688 bytes
Fixed Size 2233000 bytes
Variable Size 494931288 bytes
Database Buffers 339738624 bytes
Redo Buffers 2379776 bytes
Database mounted.
2. Convert snapshot standby ke physical standby (sambil buka alert ya) SQL> alter database convert to physical standby;
Database altered.
Di alert kayak gini nih: Tue Aug 20 12:56:46 2013
alter database convert to physical standby
ALTER DATABASE CONVERT TO PHYSICAL STANDBY (stby)
krsv_proc_kill: Killing 3 processes (all RFS)
Tue Aug 20 12:57:41 2013
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 16
Flashback Restore Start
Tue Aug 20 13:00:58 2013
Flashback Restore Complete
Drop guaranteed restore point
Tue Aug 20 13:01:09 2013
Stopping background process RVWR
Deleted Oracle managed file /archive/STBY/flashback/o1_mf_915zhd9y_.flb
Deleted Oracle managed file /archive/STBY/flashback/o1_mf_915zjokp_.flb
Guaranteed restore point dropped
Clearing standby activation ID 235822423 (0xe0e5d57)
The primary database controlfile was created using the
'MAXLOGFILES 16' clause.
There is space for up to 13 standby redo logfiles
Use the following SQL commands on the standby database to create
standby redo logfiles that match the primary database:
ALTER DATABASE ADD STANDBY LOGFILE 'srl1.f' SIZE 52428800;
ALTER DATABASE ADD STANDBY LOGFILE 'srl2.f' SIZE 52428800;
ALTER DATABASE ADD STANDBY LOGFILE 'srl3.f' SIZE 52428800;
ALTER DATABASE ADD STANDBY LOGFILE 'srl4.f' SIZE 52428800;
Tue Aug 20 13:01:18 2013
ARC3: Becoming the active heartbeat ARCH
Shutting down archive processes
Archiving is disabled
ARCH shutting down
ARC3: Relinquishing active heartbeat ARCH roleTue Aug 20 13:01:19 2013
ARCH shutting down
ARC4: Archival stopped
ARC3: Archival stoppedTue Aug 20 13:01:19 2013
ARCH shutting down
ARC2: Archival stopped
Tue Aug 20 13:01:19 2013
ARCH shutting down
ARC0: Archival stopped
Tue Aug 20 13:01:19 2013
ARCH shutting down
ARC1: Archival stopped
Tue Aug 20 13:01:26 2013
Completed: alter database convert to physical standby
Tue Aug 20 13:03:00 2013
destination database instance is 'started' not 'mounted'
Tue Aug 20 13:04:02 2013
destination database instance is 'started' not 'mounted'
3. Aktifkan MRP-nya : SQL> recover managed standby database disconnect;
Media recovery complete
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 17
SWITCHOVER
PRIMARY Note :
- pastikan tidak ada job yang sedang running
- buka alert primary dan standby (tail f)
1. Cek job apa saja yang sedang running SQL> SELECT * FROM DBA_JOBS_RUNNING;
no rows selected
SQL> SHOW PARAMETER job_queue_processes;
NAME TYPE VALUE
----------------------- ----------- ------------------------------
job_queue_processes integer 1000
2. Ubah value parameter job_queue_processes menjadi 0 (nanti dikembaliin seperti semula
lagi ya) SQL> ALTER SYSTEM SET job_queue_processes=0;
System altered.
3. Cek status switch_over SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO STANDBY
Apabila value TO STANDBY atau SESSION ACTIVE, maka hal ini menandakan bahwa database
primary dapat di switchover menjadi database standby. Apabila value-nya bukan TO STANDBY
atau SESSION ACTIVE, katanya itu berarti redo transport-nya tidak ter-configure dengan benar
atau tidak berfungsi dengan sebagaimana mestinya.
4. Ayo kita switchover
- Kalau status switchover-nya TO STANDBY SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY;
Database altered.
- Kalau status switchover-nya SESSION ACTIVE
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 18
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY WITH SESSION
SHUTDOWN;
Database altered.
STANDBY Note : pastikan MRP aktif
1. Cek status switchover: SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
Apabila value-nya TO PRIMARY atau SESSION ACTIVE, maka hal ini menandakan bahwa
database standby dapat di switchover ke primary. Apabila value-nya bukan TO PRIMARY atau
SESSION ACTIVE, maka pastikan bahwa redo apply aktif dan dan redo tansport sudah di
configure dengan benar dan berfungsi sebagaimana mestinya.
2. Ayo kita switchover SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
Database altered.
3. Open database primary yang baru SQL> ALTER DATABASE OPEN;
Database altered.
Sekarang database ini telah menjadi database primary.
STANDBY DATABASE BARU 1. Restart database
SQL> shutdown immediate;
SQL> exit
SQL> startup mount;
2. Aktifkan MRP SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT
LOGFILE DISCONNECT;
Database altered
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 19
POST-SWITCHOVER Kembalikan semua value parameter yang di ubah pada saat switchover seperti semula pada saat
sebelum dilakukan switchover.
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 20
ISENG-ISENG
Note : Ini bagian iseng-isengnya penulis yah. Kalau menurut yang baca, bagian ini gak penting,
silahkan diabaikan, hapus bagian ini, atau kalau perlu hapus file ini sekalian
ISENG CREATE DAN DROP TABLESPACE Note : Disini mau dites, kalau buat tablespace di database primary, terkirim gak ke standby. Dari
teori yang saya baca (Oracle Dataguard, Concept And Administration), di database standby
ada parameter standby_file_management. Value parameter ini harus AUTO agar si
tablespace yang dibentuk di primary, sukses dikirim ke standby. Jangan lupa file alert di
kedua database dibuka ya (tail f)
STANDBY
Note : pastikan MRP aktif
1. Cek parameter standby_file_management SQL> show parameter standby_file;
NAME TYPE VALUE
------------------------------------ ----------- ----------------------
standby_file_management string AUTO
PRIMARY
1. Cek lokasi datafile SQL> select name from v$datafile;
NAME
-----------------------------------------------------------------------
/oradata/prod/system01.dbf
/oradata/prod/sysaux01.dbf
/oradata/prod/undotbs01.dbf
/oradata/prod/users01.dbf
/oradata/prod/example01.dbf
2. Buat tablespace (yang kecil-kecil aja, namanya juga iseng) SQL> create tablespace test datafile '/oradata/prod/test.dbf' size 1m;
Tablespace created.
SQL> alter system switch logfile;
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 21
System altered.
3. Periksa datafile SQL> select name from v$datafile;
NAME
-----------------------------------------------------------------------
/oradata/prod/system01.dbf
/oradata/prod/sysaux01.dbf
/oradata/prod/undotbs01.dbf
/oradata/prod/users01.dbf
/oradata/prod/example01.dbf
/oradata/prod/test.dbf
6 rows selected.
4. Periksa tablespace SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
USERS
TEMP
EXAMPLE
TEST
7 rows selected.
STANDBY
1. Periksa apakah datafile yang dibuat di primary, terkirim ke standby SQL> select name from v$datafile;
NAME
----------------------------------------------------------------------
/oradata/stby/system01.dbf
/oradata/stby/sysaux01.dbf
/oradata/stby/undotbs01.dbf
/oradata/stby/users01.dbf
/oradata/stby/example01.dbf
/oradata/stby/test.dbf
6 rows selected.
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 22
2. Periksa apakah tablespace yang dibuat di primary, terbentuk di standby SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
USERS
TEMP
EXAMPLE
TEST
7 rows selected.
Note : Oke, sukses ya. Tapi kalau value parameter standby_fie_management nya MANUAL
gimana ya.. Yuk dicoba
STANDBY
1. Matikan MRP SQL> recover managed standby database cancel;
Media recovery complete.
2. Ubah value parameter standby_file_management menjadi manual SQL> alter system set standby_file_management='MANUAL';
System altered.
3. Cek value parameter-nya sudah berubah atau belum SQL> show parameter standby_file_management;
NAME TYPE VALUE
------------------------------------ ----------- ----------------------
standby_file_management string MANUAL
4. Nyalakan lagi MRP-nya SQL> recover managed standby database disconnect;
Media recovery complete.
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 23
PRIMARY
1. Buat tablespace SQL> create tablespace test01 datafile '/oradata/prod/test01.dbf' size
1m;
Tablespace created.
SQL> alter system switch logfile;
System altered.
2. Periksa datafile-nya terbentuk atau tidak SQL> select name from v$datafile;
NAME
-----------------------------------------------------------------------
/oradata/prod/system01.dbf
/oradata/prod/sysaux01.dbf
/oradata/prod/undotbs01.dbf
/oradata/prod/users01.dbf
/oradata/prod/example01.dbf
/oradata/prod/test.dbf
/oradata/prod/test01.dbf
7 rows selected.
3. Periksa tablespace-nya SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
USERS
TEMP
EXAMPLE
TEST
TEST01
8 rows selected.
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 24
STANDBY
1. Cek alert-nya Tue Aug 06 21:52:04 2013
Archived Log entry 41 added for thread 1 sequence 76 ID 0xdfb3abe dest
1:
Tue Aug 06 21:52:08 2013
Media Recovery Log /archive/STBY/1_76_821131093.arc
File #7 added to control file as 'UNNAMED00007' because
the parameter STANDBY_FILE_MANAGEMENT is set to MANUAL
The file should be manually created to continue.
MRP0: Background Media Recovery terminated with error 1274
Errors in file
/home/odg/oracle/app/oracle/diag/rdbms/stby/stby/trace/stby_mrp0_3098.t
rc:
ORA-01274: cannot add datafile '/oradata/prod/test01.dbf' - file could
not be created
Recovery interrupted!
Recovery stopped due to failure in applying recovery marker (opcode
17.30).
Datafiles are recovered to a consistent state at change 1327808 but
controlfile could be ahead of datafiles.
MRP0: Background Media Recovery process shutdown (stby)
2. Cek datafile SQL> select name from v$datafile;
NAME
-----------------------------------------------------------------------
---------
/oradata/stby/system01.dbf
/oradata/stby/sysaux01.dbf
/oradata/stby/undotbs01.dbf
/oradata/stby/users01.dbf
/oradata/stby/example01.dbf
/oradata/stby/test.dbf
/home/odg/oracle/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00007
7 rows selected.
Note : bisa dilihat lokasi datafile dan nama datafile-nya berubah
3. Ubah lokasi datafile dan nama file-nya, sesuaikan dengan yang dibuat di primary SQL> alter database create datafile
'/home/odg/oracle/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00007' as
'/oradata/stby/test01.dbf';
Database altered.
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 25
Di alert akan muncul: Tue Aug 06 22:05:07 2013
alter database create datafile
'/home/odg/oracle/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00007' as
'/oradata/stby/test01.dbf'
Completed: alter database create datafile
'/home/odg/oracle/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00007' as
'/oradata/stby/test01.dbf'
4. Cek datafile dan tablespace SQL> select name from v$datafile;
NAME
-----------------------------------------------------------------------
/oradata/stby/system01.dbf
/oradata/stby/sysaux01.dbf
/oradata/stby/undotbs01.dbf
/oradata/stby/users01.dbf
/oradata/stby/example01.dbf
/oradata/stby/test.dbf
/oradata/stby/test01.dbf
7 rows selected.
SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
USERS
TEMP
EXAMPLE
TEST
TEST01
8 rows selected.
5. Ubah value parameter standby_file_management menjadi AUTO SQL> alter system set standby_file_management=AUTO;
System altered.
6. Aktifkan MRP-nya SQL> recover managed standby database disconnect;
Media recovery complete.
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com] Page 26
Note : Create database sudah dicoba, sekarang di drop aja ya.. Kan cuma buat iseng-iseng aja
tablespace yang tadi
PRIMARY
1. Drop database berikut datafile dan content-nya SQL> drop tablespace test including contents and datafiles;
Tablespace dropped.
SQL> drop tablespace test01 including contents and datafiles;
Tablespace dropped.
SQL> alter system switch logfile;
System altered.
Note : ok, tablespace dan datafile sudah di hapus, tunggu beberapa saat lalu cek apakah
datafile dan tablespace tersebut terhapus juga di standby
STANDBY
1. Cek datafile dan tablespace apakah sudah terhapus atau belum SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
USERS
TEMP
EXAMPLE
6 rows selected.
SQL> select name from v$datafile;
NAME
-----------------------------------------------------------------------
/oradata/stby/system01.dbf
/oradata/stby/sysaux01.dbf
/oradata/stby/undotbs01.dbf
/oradata/stby/users01.dbf
/oradata/stby/example01.dbf
Recommended