PRIMARY(initkfc.ora) STANDBY(initkfcd.ora)
dbname –> kfc kfc
uniquename –> u1 u2
[root@test1 ~]# neat
[root@test1 ~]# /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:D1:B2:76
inet addr:192.168.211.130 Bcast:192.168.211.255 Mask:255.255.255.0
1)START THE LISTENER
[oracle@test1 admin]$ netca
TNS CONFIG
[oracle@production admin]$ vi tnsnames.ora
u1tns=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = production.localdomain)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = u1)
)
)
u2tns =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = production.localdomain)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = u2)
)
)
2)LISTENER CONFIG
[oracle@production admin]$ vi listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = production.localdomain)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = u1)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
)
(SID_DESC =
(SID_NAME = u2)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
)
)
3) create structure FOR standby database in same server
[oracle@production ~]$ mkdir kfcd
[oracle@production ~]$ cd kfcd/
[oracle@oracle nij]$ mkdir admin oradata admin/create admin/diag admin/pfile oradata/control oradata/log oradata/data oradata/archive
[oracle@production ~]$ tree kfcd
kfcd
|– admin
| |– create
| |– diag
| `– pfile
`– oradata
|– archive
|– control
|– data
`– log
4)edit pfile in existing database for primarydb
VI initkfc.ora
db_name=kfc
sga_target=400m
control_files=’/home/oracle/kfc/oradata/control/control01.ctl’
diagnostic_dest=’/home/oracle/kfc/admin/diag’
log_archive_config=’DG_CONFIG=(u1,u2)’
db_unique_name=u1
log_archive_dest_2=’SERVICE=u2tns ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=u2′
db_file_name_convert=’/home/oracle/kfcd/oradata/data’,’/home/oracle/kfc/oradata/data’
log_file_name_convert=’/home/oracle/kfcd/oradata/log’,’/home/oracle/kfc/oradata/log’
fal_client=u1tns
fal_server=u2tns
standby_file_management=auto
remote_login_passwordfile=exclusive
log_archive_dest_state_1=enable
log_archive_dest_state_2=enable
5) SQL>startup pfile=’/home/oracle/kfc/admin/pfile/initkfc.ora’ force;
ORACLE instance started.
Total System Global Area 836976640 bytes
Fixed Size 1339740 bytes
Variable Size 230690468 bytes
Database Buffers 599785472 bytes
Redo Buffers 5160960 bytes
Database mounted.
Database opened.
6)set two standby logfile in primary
SQL> alter database add standby logfile group 3 ‘/home/oracle/kfc/oradata/log/std3.log’ size 100m;
Database altered.
SQL> alter database add standby logfile group 4 ‘/home/oracle/kfc/oradata/log/std4.log’ size 100m;
Database altered.
SQL> create spfile from pfile=’/home/oracle/kfc/admin/pfile/initkfc.ora’;
File created.
SQL> shut immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
7)CREATE PASSWORD FILE FOR BOTH DB
[oracle@production ~]$ cd /u01/app/oracle/product/11.2.0/dbhome_1/dbs/
[oracle@production dbs]$ export ORACLE_SID=kfc
[oracle@production dbs]$ orapwd file=orapwu1 password=sys force=y
[oracle@production dbs]$ cp orapwu1 orapwu2
8) CREATE STANDBYCONTROL FILE FOR STANDBY DB BUT PRIMARY DB SHOULD BE “MOUNTED”
SQL> startup mount;
ORACLE instance started.
Total System Global Area 836976640 bytes
Fixed Size 1339740 bytes
Variable Size 230690468 bytes
Database Buffers 599785472 bytes
Redo Buffers 5160960 bytes
Database mounted.
SQL>alter database create standby controlfile as ‘/home/oracle/kfcd/oradata/control/control01.ctl’;
Database altered.
9)COPY DATA FROM PRIMDB TO STANDBY DB HERE WE DON’T USE “SCP” BECAUSE HERE SERVER IS SAME FOR BOTH DB
SQL> shut immediate;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
[oracle@production ~]$ cp -r kfc/oradata/data/* kfcd/oradata/data/
[oracle@production ~]$
10)COPY PRIM DB’S PFILE TO STANDY DB AND EDIT LIKE THIS
[oracle@production ~]$ cp -r kfc/admin/pfile/initkfc.ora kfcd/admin/pfile/
[oracle@production ~]$ mv kfcd/admin/pfile/initkfc.ora kfcd/admin/pfile/initkfcd.ora
[oracle@production ~]$ vi kfcd/admin/pfile/initkfcd.ora
db_name=kfc
sga_target=400m
control_files=’/home/oracle/kfcd/oradata/control/control01.ctl’
diagnostic_dest=’/home/oracle/kfcd/admin/diag’
log_archive_config=’DG_CONFIG=(u2,u1)’
db_unique_name=u2
log_archive_dest_2=’SERVICE=u1tns ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=u1′
db_file_name_convert=’/home/oracle/kfc/oradata/data’,’/home/oracle/kfcd/oradata/data’
log_file_name_convert=’/home/oracle/kfc/oradata/log’,’/home/oracle/kfcd/oradata/log’
fal_client=u2tns
fal_server=u1tns
standby_file_management=auto
remote_login_passwordfile=exclusive
log_archive_dest_state_1=enable
log_archive_dest_state_2=enable
11)STARTUP STANDBY DB
[oracle@test1 ~]$ export ORACLE_SID=kfcd
[oracle@test1 ~]$ sqlplus / as sysdba
SQL> startup pfile=’/home/oracle/kfcd/admin/pfile/initkfcd.ora’ nomount;
ORACLE instance started.
Total System Global Area 836976640 bytes
Fixed Size 1339740 bytes
Variable Size 230690468 bytes
Database Buffers 599785472 bytes
Redo Buffers 5160960 bytes
SQL> alter database mount standby database;
Database altered.
SQL> alter database open;
Database altered.
12)CREATE PFILE FOR UNIQUE PRIMARY DB BECOUSE WE CONNECT INDIVIDUALLY PRIMDB OR STAND_DB USING UNIQUE NAME
[oracle@production ~]$ export ORACLE_SID=u1
[oracle@production ~]$ sqlplus / as sysdba
SQL> startup pfile=’/home/oracle/kfc/admin/pfile/initkfc.ora’;
ORACLE instance started.
Total System Global Area 836976640 bytes
Fixed Size 1339740 bytes
Variable Size 230690468 bytes
Database Buffers 599785472 bytes
Redo Buffers 5160960 bytes
Database mounted.
Database opened.
SQL> create spfile from pfile=’/home/oracle/kfc/admin/pfile/initkfc.ora’;
File created.
13) CREATE PFILE FOR UNIQUE STANDBY
[oracle@production ~]$ export ORACLE_SID=u2
[oracle@production ~]$ sqlplus / as sysdba
SQL> startup pfile=’/home/oracle/kfcd/admin/pfile/initkfcd.ora’ nomount;
ORACLE instance started.
Total System Global Area 836976640 bytes
Fixed Size 1339740 bytes
Variable Size 230690468 bytes
Database Buffers 599785472 bytes
Redo Buffers 5160960 bytes
SQL>alter database mount standby database;
Database altered.
SQL> alter database open;
Database altered.
SQL> create spfile from pfile=’/home/oracle/kfcd/admin/pfile/initkfcd.ora’;
File created.
14)SYNC START
SQL>recover managed standby database disconnect from session;
Media recovery complete.
15)REAL TIME APPLY
SQL> recover managed standby database using current logfile disconnect from session;
Media recovery complete.
16)STOP SYNC
SQL> recover managed standby database cancel;
Media recovery complete.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Oldest online log sequence 378
Next log sequence to archive 0
Current log sequence 379
17)–>STANDBY
SQL> select name,db_unique_name,database_role from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE
——— —————————— —————-
KFC u2 PHYSICAL STANDBY
18)–>PRIMDB
SQL> select name,db_unique_name,database_role from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE
——— —————————— —————-
KFC u1 PRIMARY
19)–>CREATE TABLE IN PRIM DB
SQL> create table kf(id number(10));
Table created.
SQL> alter system switch logfile;
System altered.
SQL> /
/
/
System altered.
SQL>
System altered.
SQL>
System altered.
20)–>CHECK TABLE IN STANDBY DB
SQL> desc kf;
Name Null? Type
—————————————– ——– —————————-
ID NUMBER(38)
21)–>PRIMARY DB
SQL>select APPLIED,CREATOR,SEQUENCE# from v$archived_log;
APPLIED CREATOR SEQUENCE#
——— ——- ———-
YES LGWR 415
NO ARCH 415
NO LGWR 416
NO ARCH 416
22)–>STANDBY DB
SQL>select APPLIED,CREATOR,SEQUENCE# from v$archived_log;
APPLIED CREATOR SEQUENCE#
——— ——- ———-
YES ARCH 410
YES ARCH 411
YES ARCH 412
YES ARCH 413
YES ARCH 414
YES ARCH 415
YES ARCH 416
23)IF ANY ARCHIVE GAP OCCURS
select * from v$archive_gap;
errors:-
1) ORA-16187: LOG_ARCHIVE_CONFIG contains duplicate
if given log_archive_config=’DG_CONFIG(u1,u2)’
solution:-
log_archive_config=’DG_CONFIG=(u1,u2)’
