Sie sind auf Seite 1von 43

Oracle 11gR2

Database
#Create Data Guard on OEL 6.3
Ver. V1.0

Daftar Isi

Table of Contents
DOCUMENT UPDATE……………………………………………………………………………….1
DOCUMENT PURPOSE……………………………………………………………………………..2
INTRODUCTION……………………………………………………………………………………………………………………………..2
DOCUMENT PURPOSE……………………………………………………………………………………………………………………2
AUDIENCE………………………………………………………………………………………………………………………………………2
RESPONSES…………………………………………………………………………………………………………………………………….2
DAFTAR ISI……………………………………………………………………………………………3
I. INSTALASI SISTEM OPERASI…………………………………………………………….4
II. INSTALASI ORACLE 11GR2 DATABASE……………………………………………….6
III. PEMBUATAN DATA GUARD……………………………………………………………..18

1
EFB
Ver. V1.0

I. Instalasi Sistem Operasi


Persiapan sebelum instalasi:
Note Primary Standby
IP/Hostname 192.168.159.140/efb1.localdomain 192.168.159.141/efb2.localdomain
Install VMware 9 Yes Clone
Install Oracle Linux 6.3 (64 bit) Yes Clone
Persiapan Kernel, parameter Yes Clone
Install Engine (Software Only) 11gR2 11.2.0.3.0 Yes Clone
Create Database (dbca) Yes No
Database Name RMST RMST
Instance Name rmst rmststby

Mesin Primary

Setting Network (Nyoba Manual):


[root@efb1 ~]# system-config-network-tui

2
EFB
Ver. V1.0

[root@efb1 ~]# ifdown eth0


[root@efb1 ~]# ifup eth0
[root@efb1 ~]# ifconfig –a
[root@efb1 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.159.140 efb1.localdomain efb1
192.168.159.141 efb2.localdomain efb2

Setting Firewall:
[root@efb1 ~]# service iptables status
[root@efb1 ~]# service iptables save
[root@efb1 ~]# service iptables stop
[root@efb1 ~]# chkconfig iptables off

If you are using IPv6 firewall, enter:


[root@efb1 ~]# service ip6tables save
[root@efb1 ~]# service ip6tables stop
[root@efb1 ~]# chkconfig ip6tables off

Atau
[root@efb1 ~]# system-config-firewall-tui

Uncheck Firewall: [*] Enabled


OK & restart OS

3
EFB
Ver. V1.0

[root@efb1 ~]# service iptables status


iptables: Firewall is not running.

disabled selinux:
[root@efb1 ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

II. Instalasi Oracle 11gR2 Database


Membuat User dan Group:
[root@efb1 ~]# groupadd oinstall
[root@efb1 ~]# groupadd dba
[root@efb1 ~]# useradd -g oinstall -G dba oracle
[root@efb1 ~]# passwd oracle
passwd: all authentication tokens updated successfully.

Membuat Direktori:
[root@efb1 ~]# mkdir -p /oradata
[root@efb1 ~]# mkdir -p /oracle
[root@efb1 ~]# mkdir -p /archive
[root@efb1 ~]# mkdir -p /backup_rman
[root@efb1 ~]# mkdir -p /staging
[root@efb1 ~]# mkdir -p /source
[root@efb1 ~]# mkdir -p /oraInventory
[root@efb1 ~]# chown -R oracle:oinstall /oradata/
[root@efb1 ~]# chmod -R 775 /oradata
[root@efb1 ~]# chown -R oracle:oinstall /oracle/

4
EFB
Ver. V1.0

[root@efb1 ~]# chmod -R 775 /oracle


[root@efb1 ~]# chown -R oracle:oinstall /archive/
[root@efb1 ~]# chmod -R 775 /archive
[root@efb1 ~]# chown -R oracle:oinstall /backup_rman/
[root@efb1 ~]# chmod -R 775 /backup_rman
[root@efb1 ~]# chown -R oracle:oinstall /staging/
[root@efb1 ~]# chmod -R 775 /staging
[root@efb1 ~]# chown -R oracle:oinstall /source/
[root@efb1 ~]# chmod -R 775 /source
[root@efb1 ~]# chown -R oracle:oinstall /oraInventory/
[root@efb1 ~]# chmod -R 775 /oraInventory

Mounting CDROM:
Pastikan CD sudah dimasukkan.

[root@efb1 ~]# mkdir -p /media/cdrom


[root@efb1 ~]# mount /dev/cdrom /media/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only

[root@efb1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_efb1-lv_root
18G 1.8G 15G 11% /
tmpfs 496M 0 496M 0% /dev/shm
/dev/sda1 485M 54M 406M 12% /boot
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom

Membuat Yum Repository:


[root@efb1 cdrom]# mkdir /repo
[root@efb1 cdrom]# cp /media/cdrom/Packages/* /repo/
[root@efb1 cdrom]# cd /repo/
[root@efb1 repo]# rpm -ivh deltarpm* python-deltarpm*
warning: deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature,
key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
1:deltarpm ########################################### [ 50%]
2:python-deltarpm ########################################### [100%]

[root@efb1 repo]# rpm -ivh createrepo-0.9.8-5.el6.noarch.rpm


warning: createrepo-0.9.8-5.el6.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID
fd431d51: NOKEY
Preparing... ########################################### [100%]
1:createrepo ########################################### [100%]

[root@efb1 repo]# createrepo .


3636/3637 - pcsc-lite-1.5.2-7.el6.x86_64.rpm
3637/3637 - libpng-devel-1.2.49-1.el6_2.i686.rpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata

[root@efb1 repo]# vi /etc/yum.repos.d/localrepo.repo


[localrepo]

5
EFB
Ver. V1.0

name=localrepo
baseurl=file:///repo/
enabled=1
gpgcheck=0

[root@efb1 repo]# mv /etc/yum.repos.d/


localrepo.repo packagekit-media.repo public-yum-ol6.repo
[root@efb1 repo]# mv /etc/yum.repos.d/public-yum-ol6.repo /etc/yum.repos.d/public-yum-
ol6.repo.ori

Install Package:
yum install binutils-2*x86_64*
yum install glibc-2*x86_64*nss-softokn-freebl-3*x86_64*
yum install glibc-2*i686*nss-softokn-freebl-3*i686*
yum install compat-libstdc++-33*x86_64*
yum install glibc-common-2*x86_64*
yum install glibc-devel-2*x86_64*
yum install glibc-devel-2*i686*
yum install glibc-headers-2*x86_64*
yum install elfutils-libelf-0*x86_64*
yum install elfutils-libelf-devel-0*x86_64*
yum install gcc-4*x86_64*
yum install gcc-c++-4*x86_64*
yum install ksh-*x86_64*
yum install libaio-0*x86_64*
yum install libaio-devel-0*x86_64*
yum install libaio-0*i686*
yum install libaio-devel-0*i686*
yum install libgcc-4*x86_64*
yum install libgcc-4*i686*
yum install libstdc++-4*x86_64*
yum install libstdc++-4*i686*
yum install libstdc++-devel-4*x86_64*
yum install make-3.81*x86_64*
yum install numactl-devel-2*x86_64*
yum install sysstat-9*x86_64*
yum install compat-libstdc++-33*i686*
yum install compat-libcap*

Cek xclock:
[root@efb1 repo]# yum provides */xclock
[root@efb1 repo]# yum install xorg-x11-apps

Konfigurasi Kernel Parameter:


[root@efb1 ~]# vi /etc/sysctl.conf

fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.shmmax = 34359738368
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500

6
EFB
Ver. V1.0

net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

Save and exit the file. Enter the following command to change the current values of the
kernel parameters:
#[root@efb1 ~] /sbin/sysctl -p

Set the resource limits in the limits.conf file. Enter the following command to edit
resource limits:
[root@efb1 ~]# vi /etc/security/limits.conf

Add or edit lines similar to the following:


oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 4096 (disesuaikan)
oracle hard nofile 65536
oracle soft stack 10240

Membuat profile:
[oracle@efb1 ~]$ vi .bash_profile
# .bash_profile

# Get the aliases and functions


if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

#Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_UNQNAME=rmst; export ORACLE_UNQNAME
ORACLE_HOSTNAME=efb1.localdomain
ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=rmst; export ORACLE_SID
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

[oracle@efb1 ~]$ env | grep ORA

Install Engine Database:


[oracle@efb1 ~]$ cd /source/
[oracle@efb1 source]$ ls -ltr

7
EFB
Ver. V1.0

total 2442052
-rw-r--r--. 1 root root 1142195302 Jul 23 13:57 p10404530_112030_Linux-x86-64_2of7.zip
-rw-r--r--. 1 root root 1358454646 Jul 23 13:58 p10404530_112030_Linux-x86-64_1of7.zip
[oracle@efb1 source]$ unzip p10404530_112030_Linux-x86-64_2of7.zip

[oracle@efb1 database]$ export DISPLAY=192.168.159.1:0.0


[oracle@efb1 database]$ xclock
Warning: Missing charsets in String to FontSet conversion
[oracle@efb1 database]$ ./runInstaller
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB. Actual 7081 MB Passed
Checking swap space: must be greater than 150 MB. Actual 1981 MB Passed
Checking monitor: must be configured to display at least 256 colors. Actual 16777216
Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-07-23_02-13-
29PM. Please wait ...

8
EFB
Ver. V1.0

9
EFB
Ver. V1.0

10
EFB
Ver. V1.0

11
EFB
Ver. V1.0

12
EFB
Ver. V1.0

13
EFB
Ver. V1.0

14
EFB
Ver. V1.0

[root@efb1 ~]# /oraInventory/orainstRoot.sh


[root@efb1 ~]# /oracle/product/11.2.0/db_1/root.sh

15
EFB
Ver. V1.0

III. Pembuatan Data Guard


Mesin Standby

Untuk OS dan Engine Database Mesin Standby dapat dilakukan dengan cara cloning dari
Mesin Primary, kemudian:

Setting Network (Nyoba Manual):


[root@efb1 ~]# system-config-network-tui
[root@efb1 ~]# ifdown eth1
[root@efb1 ~]# ifup eth1
[root@efb1 ~]# ifconfig –a
[root@efb1 ~]# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost.localdomain localhost4
localhost4.localdomain4 localhost
::1 localhost.localdomain localhost.localdomain localhost6
localhost6.localdomain6 localhost
192.168.159.140 efb1.localdomain efb1 efb1
192.168.159.141 efb2.localdomain efb2

[root@efb1 ~]# vi /etc/sysconfig/network


NETWORKING=yes
HOSTNAME=efb2.localdomain

[root@efb1 ~]# vi /etc/hostname


HOSTNAME=efb2.localdomain
[root@efb1 ~]# hostname efb2.localdomain
[root@efb1 ~]# su – oracle
[oracle@efb2 ~]#

atau
[root@efb1 ~]# reboot
[root@efb2 ~]#

16
EFB
Ver. V1.0

Mesin Primary

Membuat Listener:

17
EFB
Ver. V1.0

18
EFB
Ver. V1.0

19
EFB
Ver. V1.0

Install Database:

20
EFB
Ver. V1.0

21
EFB
Ver. V1.0

22
EFB
Ver. V1.0

23
EFB
Ver. V1.0

24
EFB
Ver. V1.0

25
EFB
Ver. V1.0

26
EFB
Ver. V1.0

Konfigurasi Data Guard

Mesin Primary

1. Pastikan database dalam kondisi Archive Mode.


SQL> select log_mode from v$database;

LOG_MODE
------------
ARCHIVELOG

2. Enable Force Logging.


SQL> ALTER DATABASE FORCE LOGGING;

Database altered.
SQL> select FORCE_LOGGING from v$database;

FOR
---
YES

3. Membuat redolog standby  jumlah redolog yang ada ditambah 1 redolog (n + 1).
SQL> alter database add standby logfile group '<name>' size <size>;

alter database add standby logfile group 4 '/oradata/rmst/srl04.log' size 50M;


alter database add standby logfile group 5 '/oradata/rmst/srl05.log' size 50M;
alter database add standby logfile group 6 '/oradata/rmst/srl06.log' size 50M;
alter database add standby logfile group 7 '/oradata/rmst/srl07.log' size 50M;

SQL> column group# format 9


SQL> column member format A45
SQL> select group#, member from v$logfile order by 1;

GROUP# MEMBER
------ ---------------------------------------------
1 /oradata/rmst/redo01.log
2 /oradata/rmst/redo02.log
3 /oradata/rmst/redo03.log
4 /oradata/rmst/srl04.log
5 /oradata/rmst/srl05.log
6 /oradata/rmst/srl06.log
7 /oradata/rmst/srl07.log

7 rows selected.

SQL> SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;

GROUP# THREAD# SEQUENCE# ARC STATUS


------ ---------- ---------- --- ----------
4 0 0 YES UNASSIGNED
5 0 0 YES UNASSIGNED
6 0 0 YES UNASSIGNED

27
EFB
Ver. V1.0

7 0 0 YES UNASSIGNED

4. Mengubah inisialisasi parameter di Primary untuk Dataguard.

SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(rmst,rmststby)' scope=both;


SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/archive/
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=rmst' scope=both;
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=rmststby LGWR ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=rmststby' scope=both;
SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both;
SQL> alter system set FAL_SERVER=rmststby scope=both;
SQL> alter system set FAL_CLIENT=rmst scope=both;

-- Optional
SQL> alter system set DB_FILE_NAME_CONVERT='/oradata/rmststby/','/oradata/rmst/'
scope=spfile;
SQL> alter system set LOG_FILE_NAME_CONVERT='/oradata/rmststby/','/oradata/rmst/'
scope=spfile;

5. Create tnsnames.ora
[oracle@efb1 ~]$ cd /oracle/product/11.2.0/db_1/network/admin
[oracle@efb1 admin]$ vi tnsnames.ora

RMST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = efb1.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rmst)
)
)

rmststby =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = efb2.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rmststby)
)
)

[oracle@efb1 admin]$ lsnrctl stop


[oracle@efb1 admin]$ lsnrctl start

Mesin Standby

1. Create listener.ora
[oracle@efb2 dbs]$ cd /oracle/product/11.2.0/db_1/network/admin/
[oracle@efb2 admin]$ vi listener.ora

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =

28
EFB
Ver. V1.0

(GLOBAL_DBNAME = rmststby)
(ORACLE_HOME = /oracle/product/11.2.0/db_1)
(SID_NAME = rmststby)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = efb2.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

2. Create tnsnames.ora
[oracle@efb2 admin]$ vi tnsnames.ora

rmst =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = efb1.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rmst)
)
)

rmststby =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = efb2.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rmststby)
)
)

[oracle@efb2 admin]$ lsnrctl stop


[oracle@efb2 admin]$ lsnrctl start

Tes koneksi antara mesin Primary dan Standby

Primary:
[oracle@efb1 admin]$ tnsping rmst
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 23-JUL-2013 22:10:03
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 =
efb1.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =
rmst)))
OK (400 msec)

29
EFB
Ver. V1.0

[oracle@efb1 admin]$ tnsping rmststby


TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 23-JUL-2013 22:10:17
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 =
efb2.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =
rmststby)))
OK (170 msec)

Standby:
[oracle@efb2 admin]$ tnsping rmststby
TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 23-JUL-2013 22:14:42
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 =
efb2.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =
rmststby)))
OK (30 msec)

[oracle@efb2 admin]$ tnsping rmst


TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 23-JUL-2013 22:14:48
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 =
efb1.localdomain)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =
rmst)))
OK (60 msec)

Create the Standby Database

a. Copy the password file from the primary $ORACLE_HOME/dbs and rename it to the
standby database name.

[oracle@efb1 dbs]$ scp orapwrmst


oracle@efb2.localdomain:/oracle/product/11.2.0/db_1/dbs/

The authenticity of host 'efb2.localdomain (192.168.2.12)' can't be established.


RSA key fingerprint is 41:8f:06:fc:96:bf:d3:9f:ab:06:b2:a1:19:13:c4:72.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'efb2.localdomain,192.168.2.12' (RSA) to the list of known
hosts.
oracle@efb2.localdomain's password:
orapwrmst 100% 1536 1.5KB/s 00:00

The username is required to be SYS and the password needs to be the same on the Primary
and Standby.
The best practice for this is to copy the passwordfile as suggested.

30
EFB
Ver. V1.0

The password file name must match the instance name/SID used at the standby site, not
the DB_NAME.

[oracle@efb2 ~]$ cd $ORACLE_HOME/dbs


[oracle@efb2 ~]$ mv orapwrmst orapwrmststby

b. Create a initialization parameter with only one parameter DB_NAME.

[oracle@efb2 ~]$ cd $ORACLE_HOME/dbs


[oracle@efb2 dbs]$ vi initrmststby.ora
DB_NAME=rmst
DB_UNIQUE_NAME=rmststby
DB_BLOCK_SIZE=8192
MEMORY_TARGET=262144000

[oracle@efb2 dbs]$ ls -ltr


total 12
-rw-r--r--. 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-r----- 1 oracle oinstall 1536 Jul 16 23:23 orapwrmststby
-rw-r--r-- 1 oracle oinstall 81 Jul 16 23:27 initrmststby.ora

c. Create the necessary directories in the standby location to place the datafiles and
the trace files in the $ADR_HOME.

[oracle@efb2 ~]$ mkdir -p /oradata/rmststby


[oracle@efb2 ~]$ mkdir -p /oracle/admin/rmststby/adump

d. Set the environment variable ORACLE_SID to the standby service and start the
standby-instance.

[oracle@efb2 ~]$ export ORACLE_SID=rmststby


[oracle@efb2 ~]$ sqlplus "/as sysdba"
SQL> startup nomount pfile=’$ORACLE_HOME/dbs/initrmststby.ora’;
NOTE: Use either PFILE or SPFILE

# Addtl. comment
# If DUPLICATE without TARGET connection is used you cannot use SPFILE
# else getting

RMAN-05537: DUPLICATE without TARGET connection when auxiliary instance is started with
spfile cannot use SPFILE clause

e. Verify if the connection 'AS SYSDBA' is working.

Primary:
[oracle@efb1 ~]$ sqlplus "/as sysdba"
SQL> connect sys/oracle@rmststby AS SYSDBA
Connected.
SQL> connect sys/oracle@rmst AS SYSDBA
Connected.

Standby:
[oracle@efb2 ~]$ sqlplus "/as sysdba"

31
EFB
Ver. V1.0

SQL> connect sys/oracle@rmst AS SYSDBA


Connected.
SQL> connect sys/oracle@rmststby AS SYSDBA
Connected.

f. On the primary system invoke the RMAN executable and connect to the primary and the
auxiliary database (i.e., the standby).

[oracle@efb1 dbs]$ rman target sys/oracle@rmst auxiliary sys/oracle@rmststby

Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jul 23 19:42:00 2013

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

connected to target database: RMST (DBID=214212632)


connected to auxiliary database: RMST (not mounted)

RMAN> run {
duplicate target database for standby from active database
spfile
parameter_value_convert 'rmst','rmststby'
set db_unique_name='rmststby'
set DB_FILE_NAME_CONVERT='/oradata/rmst/','/oradata/rmststby/'
set LOG_FILE_NAME_CONVERT='/oradata/rmst/','/oradata/rmststby/'
set control_files='/oradata/rmststby/control01.ctl'
set log_archive_max_processes='5'
set fal_client='rmststby'
set fal_server='rmst'
set standby_file_management='AUTO'
set log_archive_config='dg_config=(rmst,rmststby)'
set log_archive_dest_2='service=rmst ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE)
db_unique_name=rmst'
;
}2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> 16>

Starting Duplicate Db at 23-JUL-13


using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=20 device type=DISK

contents of Memory Script:


{
backup as copy reuse
targetfile '/oracle/product/11.2.0/db_1/dbs/orapwrmst' auxiliary format
'/oracle/product/11.2.0/db_1/dbs/orapwrmststby' targetfile
'/oracle/product/11.2.0/db_1/dbs/spfilermst.ora' auxiliary format
'/oracle/product/11.2.0/db_1/dbs/spfilermststby.ora' ;
sql clone "alter system set spfile=
''/oracle/product/11.2.0/db_1/dbs/spfilermststby.ora''";
}
executing Memory Script

Starting backup at 23-JUL-13

32
EFB
Ver. V1.0

allocated channel: ORA_DISK_1


channel ORA_DISK_1: SID=37 device type=DISK
Finished backup at 23-JUL-13

sql statement: alter system set spfile=


''/oracle/product/11.2.0/db_1/dbs/spfilermststby.ora''

contents of Memory Script:


{
sql clone "alter system set audit_file_dest =
''/oracle/admin/rmststby/adump'' comment=
'''' scope=spfile";
sql clone "alter system set dispatchers =
''(PROTOCOL=TCP) (SERVICE=rmststbyXDB)'' comment=
'''' scope=spfile";
sql clone "alter system set log_archive_dest_1 =
''LOCATION=/archive/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=rmststby''
comment=
'''' scope=spfile";
sql clone "alter system set db_unique_name =
''rmststby'' comment=
'''' scope=spfile";
sql clone "alter system set db_file_name_convert =
''/oradata/rmst/'', ''/oradata/rmststby/'' comment=
'''' scope=spfile";
sql clone "alter system set LOG_FILE_NAME_CONVERT =
''/oradata/rmst/'', ''/oradata/rmststby/'' comment=
'''' scope=spfile";
sql clone "alter system set control_files =
''/oradata/rmststby/control01.ctl'' comment=
'''' scope=spfile";
sql clone "alter system set log_archive_max_processes =
5 comment=
'''' scope=spfile";
sql clone "alter system set fal_client =
''rmststby'' comment=
'''' scope=spfile";
sql clone "alter system set fal_server =
''rmst'' comment=
'''' scope=spfile";
sql clone "alter system set standby_file_management =
''AUTO'' comment=
'''' scope=spfile";
sql clone "alter system set log_archive_config =
''dg_config=(rmst,rmststby)'' comment=
'''' scope=spfile";
sql clone "alter system set log_archive_dest_2 =
''service=rmst ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=rmst''
comment=
'''' scope=spfile";
shutdown clone immediate;
startup clone nomount;
}

33
EFB
Ver. V1.0

executing Memory Script

sql statement: alter system set audit_file_dest = ''/oracle/admin/rmststby/adump''


comment= '''' scope=spfile

sql statement: alter system set dispatchers = ''(PROTOCOL=TCP)


(SERVICE=rmststbyXDB)'' comment= '''' scope=spfile

sql statement: alter system set log_archive_dest_1 = ''LOCATION=/archive/


VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=rmststby'' comment= '''' scope=spfile

sql statement: alter system set db_unique_name = ''rmststby'' comment= ''''


scope=spfile

sql statement: alter system set db_file_name_convert = ''/oradata/rmst/'',


''/oradata/rmststby/'' comment= '''' scope=spfile

sql statement: alter system set LOG_FILE_NAME_CONVERT = ''/oradata/rmst/'',


''/oradata/rmststby/'' comment= '''' scope=spfile

sql statement: alter system set control_files = ''/oradata/rmststby/control01.ctl''


comment= '''' scope=spfile

sql statement: alter system set log_archive_max_processes = 5 comment= ''''


scope=spfile

sql statement: alter system set fal_client = ''rmststby'' comment= '''' scope=spfile

sql statement: alter system set fal_server = ''rmst'' comment= '''' scope=spfile

sql statement: alter system set standby_file_management = ''AUTO'' comment= ''''


scope=spfile

sql statement: alter system set log_archive_config = ''dg_config=(rmst,rmststby)''


comment= '''' scope=spfile

sql statement: alter system set log_archive_dest_2 = ''service=rmst ASYNC


valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=rmst'' comment= ''''
scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)


Oracle instance started

Total System Global Area 263049216 bytes

Fixed Size 2227456 bytes


Variable Size 167772928 bytes
Database Buffers 88080384 bytes
Redo Buffers 4968448 bytes

contents of Memory Script:

34
EFB
Ver. V1.0

{
backup as copy current controlfile for standby auxiliary format
'/oradata/rmststby/control01.ctl';
}
executing Memory Script

Starting backup at 23-JUL-13


using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying standby control file
output file name=/oracle/product/11.2.0/db_1/dbs/snapcf_rmst.f tag=TAG20130723T194347
RECID=1 STAMP=821562240
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:48
Finished backup at 23-JUL-13

contents of Memory Script:


{
sql clone 'alter database mount standby database';
}
executing Memory Script

sql statement: alter database mount standby database

contents of Memory Script:


{
set newname for tempfile 1 to
"/oradata/rmststby/temp01.dbf";
switch clone tempfile all;
set newname for datafile 1 to
"/oradata/rmststby/system01.dbf";
set newname for datafile 2 to
"/oradata/rmststby/sysaux01.dbf";
set newname for datafile 3 to
"/oradata/rmststby/undotbs01.dbf";
set newname for datafile 4 to
"/oradata/rmststby/users01.dbf";
backup as copy reuse
datafile 1 auxiliary format
"/oradata/rmststby/system01.dbf" datafile
2 auxiliary format
"/oradata/rmststby/sysaux01.dbf" datafile
3 auxiliary format
"/oradata/rmststby/undotbs01.dbf" datafile
4 auxiliary format
"/oradata/rmststby/users01.dbf" ;
sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /oradata/rmststby/temp01.dbf in control file

35
EFB
Ver. V1.0

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting backup at 23-JUL-13


using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/oradata/rmst/system01.dbf
output file name=/oradata/rmststby/system01.dbf tag=TAG20130723T194515
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:03:17
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=/oradata/rmst/sysaux01.dbf
output file name=/oradata/rmststby/sysaux01.dbf tag=TAG20130723T194515
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:36
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=/oradata/rmst/undotbs01.dbf
output file name=/oradata/rmststby/undotbs01.dbf tag=TAG20130723T194515
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/oradata/rmst/users01.dbf
output file name=/oradata/rmststby/users01.dbf tag=TAG20130723T194515
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 23-JUL-13

sql statement: alter system archive log current

contents of Memory Script:


{
switch clone datafile all;
}
executing Memory Script

datafile 1 switched to datafile copy


input datafile copy RECID=1 STAMP=821562629 file name=/oradata/rmststby/system01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=2 STAMP=821562629 file name=/oradata/rmststby/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=3 STAMP=821562629 file name=/oradata/rmststby/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=4 STAMP=821562629 file name=/oradata/rmststby/users01.dbf
Finished Duplicate Db at 23-JUL-13

RMAN>

36
EFB
Ver. V1.0

Cek Database di Primary dan Standby

Mesin Primary

SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM V$DATABASE;

NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE


--------- ------------------------------ ---------------- --------------------
RMST rmst PRIMARY READ WRITE

SQL> alter system switch logfile;

System altered.

SQL> archive log list;


Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archive/
Oldest online log sequence 39
Next log sequence to archive 41
Current log sequence 41

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

SEQUENCE# APPLIED
---------- ---------
38 YES
38 NO
39 NO
39 YES
40 NO
40 NO

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

SEQUENCE# APPLIED
---------- ---------
38 YES
38 NO
39 NO
39 YES
40 YES
40 NO

37
EFB
Ver. V1.0

Mesin Standby

SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM V$DATABASE;

NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE


--------- ------------------------------ ---------------- --------------------
RMST rmststby PHYSICAL STANDBY MOUNTED

SQL> archive log list;


Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archive/
Oldest online log sequence 39
Next log sequence to archive 0
Current log sequence 41
SQL> select sequence#, applied from v$archived_log;

SEQUENCE# APPLIED
---------- ---------
39 YES
40 NO

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

PROCESS THREAD# SEQUENCE# STATUS


--------- ---------- ---------- ------------
ARCH 1 40 CLOSING
ARCH 1 38 CLOSING
ARCH 0 0 CONNECTED
ARCH 0 0 CONNECTED
ARCH 1 39 CLOSING
RFS 0 0 IDLE
RFS 0 0 IDLE
RFS 0 0 IDLE
RFS 1 41 IDLE
RFS 0 0 IDLE

10 rows selected.

SQL> recover managed standby database disconnect;


Media recovery complete.
SQL> select process, thread#, sequence#, status from v$managed_standby;

PROCESS THREAD# SEQUENCE# STATUS


--------- ---------- ---------- ------------
ARCH 1 40 CLOSING
ARCH 1 38 CLOSING
ARCH 0 0 CONNECTED
ARCH 0 0 CONNECTED
ARCH 1 39 CLOSING
RFS 0 0 IDLE
MRP0 1 41 WAIT_FOR_LOG
RFS 0 0 IDLE

38
EFB
Ver. V1.0

RFS 0 0 IDLE
RFS 1 41 IDLE
RFS 0 0 IDLE

11 rows selected.

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

SEQUENCE# APPLIED
---------- ---------
39 YES
40 YES

Active Data Guard

Mesin Standby

SQL> recover managed standby database cancel;


Media recovery complete.
SQL> alter database open;

Database altered.

SQL> recover managed standby database disconnect;


Media recovery complete.

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

PROCESS THREAD# SEQUENCE# STATUS


--------- ---------- ---------- ------------
ARCH 1 40 CLOSING
ARCH 1 38 CLOSING
ARCH 0 0 CONNECTED
ARCH 1 41 CLOSING
ARCH 1 42 CLOSING
RFS 0 0 IDLE
MRP0 1 43 WAIT_FOR_LOG
RFS 0 0 IDLE
RFS 0 0 IDLE
RFS 1 43 IDLE
RFS 0 0 IDLE

SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM V$DATABASE;

NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE


--------- ------------------------------ ---------------- --------------------
RMST rmststby PHYSICAL STANDBY READ ONLY WITH APPLY

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

SEQUENCE# APPLIED

39
EFB
Ver. V1.0

---------- ---------
39 YES
40 YES
41 YES
42 YES

Switchover

Mesin Primary:
SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM V$DATABASE;

NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE


--------- ------------------------------ ---------------- --------------------
RMST rmst PRIMARY READ WRITE

SQL> show parameter job_queue_processes;

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
job_queue_processes integer 1000
SQL> ALTER SYSTEM SET job_queue_processes=0 SCOPE=BOTH;

System altered.

SQL> show parameter job_queue_processes;

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
job_queue_processes integer 0

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
--------------------
TO STANDBY

Switchover the primary to a standby database


SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY WITH SESSION SHUTDOWN; (perhatikan
alert lognya)

Database altered.

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
--------------------
RECOVERY NEEDED

40
EFB
Ver. V1.0

Mesin Standby:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
--------------------
TO PRIMARY

Switchover the standby database to a primary


SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY; (perhatikan alert lognya)

Database altered.

SQL> ALTER DATABASE OPEN;

Database altered.

Mesin Primary:
SQL> SHUTDOWN IMMEDIATE;
ORA-01092: ORACLE instance terminated. Disconnection forced
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit
Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@efb1 ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.3.0 Production on Wed Jul 24 16:40:03 2013

Copyright (c) 1982, 2011, Oracle. All rights reserved.

Connected to an idle instance.

SQL> STARTUP MOUNT;


ORACLE instance started.

Total System Global Area 263049216 bytes


Fixed Size 2227456 bytes
Variable Size 209715968 bytes
Database Buffers 46137344 bytes
Redo Buffers 4968448 bytes
Database mounted.

SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM V$DATABASE;

NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE


--------- ------------------------------ ---------------- --------------------
RMST rmst PHYSICAL STANDBY MOUNTED

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

Database altered.

41
EFB
Ver. V1.0

Mesin Standby:
SQL> SELECT NAME, DB_UNIQUE_NAME, DATABASE_ROLE, OPEN_MODE FROM V$DATABASE;

NAME DB_UNIQUE_NAME DATABASE_ROLE OPEN_MODE


--------- ------------------------------ ---------------- --------------------
RMST rmststby PRIMARY READ WRITE

SQL> SHOW PARAMETER job_queue_processes;

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
job_queue_processes integer 0

SQL> ALTER SYSTEM SET job_queue_processes=1000 scope=both;

System altered.

SQL> SHOW PARAMETER job_queue_processes;

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
job_queue_processes integer 1000

Perhatikan Applied log di masing-masing database.

End

42
EFB

Das könnte Ihnen auch gefallen