Sunteți pe pagina 1din 26

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.

OS
IP
Hostname
Memory
Swap
Oracle Version
Oracle Base
Oracle Home
Database Name
Instance Name
DB Unique
Name

Primary
Oracle Enterprise Linux 6.3 64 bit
192.168.6.162
primary.odg.com
2054308 kB
4128764 kB
11.2.0.3
/home/odg/oracle/app/oracle
home/odg/oracle/app/oracle /
product/11.2.0/db_1
prod
prod
prod

2. Berikut capture lokasi adump,bdump, dll.


Object
Primary
/home/odg/oracle/app/oracle/admin/prod/adu
Audit files
mp
Background /home/odg/oracle/app/oracle/diag/rdbms/prod/
prod/trace
dump files
Core dump /home/odg/oracle/app/oracle/diag/rdbms/prod/
prod/cdump
files
User dump /home/odg/oracle/app/oracle/diag/rdbms/prod/
prod/trace
files
Data pump /home/odg/oracle/app/oracle/admin/prod/dpdu
mp
dump files
Db recovery /archive
files
/oradata/prod , /archive/prod
Control
files
/oradata/prod
Redo log
files
/oradata/prod
Datafiles
/archive/PROD
Archive
Destination

Standby
Oracle Enterprise Linux 6.3 64 bit
192.168.6.155
stby.odg.com
2054308 kB
4128764 kB
11.2.0.3
/home/odg/oracle/app/oracle
home/odg/oracle/app/oracle /
product/11.2.0/db_1
prod
stby
stby

Standby
/home/odg/oracle/app/oracle/admin/stby/ad
ump
/home/odg/oracle/app/oracle/diag/rdbms/stb
y/stby/trace
/home/odg/oracle/app/oracle/diag/rdbms/stb
y/stby/cdump
/home/odg/oracle/app/oracle/diag/rdbms/stb
y/stby/trace
/home/odg/oracle/app/oracle/admin/stby/dp
dump
/archive
/oradata/stby , /archive/stby
/oradata/stby
/oradata/stby
/archive/STBY

Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com]

Page 1

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 2

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
'/oradata/prod/srl04.log' size 50M;
SQL> alter database add standby logfile
'/oradata/prod/srl05.log' size 50M;
SQL> alter database add standby logfile
'/oradata/prod/srl06.log' size 50M;
SQL> alter database add standby logfile
'/oradata/prod/srl07.log' size 50M;

group 4
group 5
group 6
group 7

Cek lagi
SQL> select group#, member from v$logfile order by 1;
GROUP#
-----1
2
3
4
5
6
7

MEMBER
--------------------------------------------/oradata/prod/redo01.log
/oradata/prod/redo02.log
/oradata/prod/redo03.log
/oradata/prod/srl04.log
/oradata/prod/srl05.log
/oradata/prod/srl06.log
/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 3

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 4

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 23JUL-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 23JUL-2013 14:35:14
Copyright (c) 1997, 2011, Oracle.

All rights reserved.

Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com]

Page 5

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 6

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
Fixed Size
Variable Size
Database Buffers
Redo Buffers

839282688
2233000
494931288
339738624
2379776

bytes
bytes
bytes
bytes
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.
reserved.

All rights

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 7

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
Automatic archival
Archive destination
Oldest online log sequence
Next log sequence to archive
Current log sequence

Archive Mode
Enabled
/archive/PROD
0
0
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 8

log_archive_dest_15
log_archive_dest_16
log_archive_dest_17

string
string
string

NAME
----------------------log_archive_dest_18
log_archive_dest_19

TYPE
VALUE
----------- ------------------string
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 9

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 10

SQL> select sequence#, applied from v$archived_log;

SEQUENCE#
---------30
29
28
31

APPLIED
--------YES
YES
YES
YES

Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com]

Page 11

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#
---------34
35
36
37
38

APPLIED
--------YES
YES
YES
YES
YES

7. Cek status standby database:


Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com]

Page 12

SQL> select process, thread#, sequence#, status from v$managed_standby;


PROCESS
--------ARCH
ARCH
ARCH
ARCH
ARCH
MRP0
RFS
RFS
RFS
RFS

THREAD#
-------1
0
0
0
1
1
0
0
1
0

SEQUENCE#
--------37
0
0
0
38
39
0
0
39
0

STATUS
-----------CLOSING
CONNECTED
CONNECTED
CONNECTED
CLOSING
WAIT_FOR_LOG
IDLE
IDLE
IDLE
IDLE

Note : kalau mau mengembalikan agar jadi odg lagi, di restart aja standby database-nya

Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com]

Page 13

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.
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.

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.
Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com]

Page 14

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
Fixed Size
Variable Size
Database Buffers
Redo Buffers
Database mounted.

839282688
2233000
494931288
339738624
2379776

bytes
bytes
bytes
bytes
bytes

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 15

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 16

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 17

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 18

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 19

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 20

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 21

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 22

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 23

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 24

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 25

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

Cornelia Dwi Mulyawati [cornelia.dwimulyawati@gmail.com]

Page 26

S-ar putea să vă placă și