step by step configuring oracle dataguard physical standby in same server using vmware(linux platform)

                             

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

                                                                                             
                                                                                             
                                                                                             
                                                                                             

step by step configuration three diff physical multiple standby server using vmware workstation(linux platform) in script method –oracle 11gr2 dataguard

   

                  PRIMARY(initk1.ora)              STANDBY1(initk2.ora)       STANDBY2(initk3.ora)
db_name              –>   k1                                     k1                                              k1
db_unique_name  –>   K1                                     K2                                            k3
directory_name    –>   k1                                     k2                                             k3
server_ip              –> 192.168.62.128       192.168.62.129                           192.168.62.130
tns_name              –> k1tns                                  k2tns                                         k3tns

***********************************************************************************************************************************************
sample steps
step 0) arrange three diff server and install only 11gr2 do not create db follow below steps to  the create db
step 1) create strcture for two standby
step 2)copy “pfk1” at prim_db server
step 3)run “dbk1.sh” at primary
step 4)send “k1” data through scp to “k2” and “k3” server
step 5)check “fairewal on disable” and run “lister” for 3 server
step 6)copy “pfk2 “and “pfk3” at stdby1 and stdby2
step 7)run “dbk2.sh” and “dbk3”
——–>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>—————>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>———————————->>>>>>>>>>>>>>>>>>>>>
1) create standby_db structre  standby 1 and standby2———->for stand_db1
cd
mkdir k2
cd k2
mkdir admin oradata
cd admin
mkdir pfile diag create
cd ..
cd oradata
mkdir control log archive data
cd
tree k2
———————————— for standby 2
cd
mkdir k3
cd k3
mkdir admin oradata
cd admin
mkdir pfile diag create
cd ..
cd oradata
mkdir control log archive data
cd
tree k3
—–>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>——————————————->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>—————
2)vi dbk1.sh      —–>for prim_db

mkdir k1
cd k1
mkdir admin oradata
cd admin
mkdir pfile diag create
cd ..
cd oradata
mkdir control log archive data
cd
cp /home/oracle/pfk1  /home/oracle/k1/admin/pfile/initk1.ora
cd
export ORACLE_SID=k1
sqlplus / as sysdba <<EOF
startup pfile=’/home/oracle/k1/admin/pfile/initk1.ora’ nomount;
create database k1
datafile ‘/home/oracle/k1/oradata/data/system01.dbf’ size 400m
sysaux datafile ‘/home/oracle/k1/oradata/data/systemaux01.dbf’ size 300m
undo tablespace undo01 datafile ‘/home/oracle/k1/oradata/data/undo01.dbf’ size 100m
default temporary tablespace temp01 tempfile ‘/home/oracle/k1/oradata/data/temp01.dbf’ size 100m
logfile group 1 ‘/home/oracle/k1/oradata/log/log01.log’ size 10m,
        group 2 ‘/home/oracle/k1/oradata/log/log02.log’ size 10m;
@?/rdbms/admin/catalog.sql;
@?/rdbms/admin/catproc.sql;
create spfile from pfile=’/home/oracle/k1/admin/pfile/initk1.ora’;
alter database add standby logfile group 3 ‘/home/oracle/k1/oradata/log/std3.log’ size 100m;
alter database add standby logfile group 4 ‘/home/oracle/k1/oradata/log/std4.log’ size 100m;
create table kf(id number(10));
create tablespace tbs datafile ‘/home/oracle/k1/oradata/data/tbs.dbf’ size 500m;
exec dbms_logmnr_d.set_tablespace(‘tbs’);
alter database add supplemental log data(all) columns;
alter database force logging;
alter database close;
alter database archivelog;
shut immediate;

!
EOF
export ORACLE_SID=k1
sqlplus / as sysdba   <<EOF
startup pfile=’/home/oracle/k1/admin/pfile/initk1.ora’;
create spfile from pfile=’/home/oracle/k1/admin/pfile/initk1.ora’;
alter database close;
alter database create standby controlfile as ‘/home/oracle/control01.ctl’;
shut immediate;
!cd $ORACLE_HOME/dbs
!export ORACLE_SID=k1
!orapwd file=orapwk1 password=sys force=y
!cp $ORACLE_HOME/dbs/orapwk1 /home/oracle/orapwk2
!cp $ORACLE_HOME/dbs/orapwk1 /home/oracle/orapwk3

EOF

———————————————————————

vi pfk1       ——–>for prim_db

vi initk1.ora
db_name=k1
sga_target=600m
control_files=’/home/oracle/k1/oradata/control/control01.ctl’
diagnostic_dest=’/home/oriacle/k1/admin/diag’
log_archive_config=’DG_CONFIG=(k1,k2,k3)’
db_unique_name=k1
log_archive_dest_2=’SERVICE=k2tns ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=k2′
log_archive_dest_3=’SERVICE=k3tns ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=k3′
db_file_name_convert=’/home/oracle/k2/oradata/data’,’/home/oracle/k1/oradata/data’,’/home/oracle/k3/oradata/data’,’/home/oracle/k1/oradata/data’,
log_file_name_convert=’/home/oracle/k2/oradata/log’,’/home/oracle/k1/oradata/log’,’/home/oracle/k3/oradata/log’,’/home/oracle/k1/oradata/log’,
fal_client=k1tns
fal_server=k2tns,k3tns
standby_file_management=auto
remote_login_passwordfile=exclusive
log_archive_dest_state_1=enable
log_archive_dest_state_2=enable
——->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>—————————————————>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3)server prim db listener and tns    
]$ cd $ORACLE_HOME/network/admin
 vi listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.62.128)(PORT = 1521))
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = k1)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
    )
 

tnsnames.ora

k1tns =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.62.128)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = k1)
    )
  )

k2tns =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.62.129)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = k2)
    )
  )

k3tns =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.62.130)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = k3)
    )
  )

————————————————————————

server2 stand_db 1 listener and tns
]$ cd $ORACLE_HOME/network/admin

vi listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.62.129)(PORT = 1521))
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = k2)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
     )

  )

tnsnames.ora

k1tns =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.62.128)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = k1)
    )
  )

k2tns =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.62.129)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = k2)
    )
  )

k3tns =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.62.130)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = k3)
    )
  )

———————————————————————–
server3 stand_db 2 listener and tns
]$ cd $ORACLE_HOME/network/admin
vi listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.62.130)(PORT = 1521))
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = k3)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
     )

  )

tnsnames.ora

k1tns =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.62.128)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = k1)
    )
  )

k2tns =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.62.129)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = k2)
    )
  )

k3tns =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.62.130)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = k3)
    )
  )

——>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>———————->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>—————-

4)start the listner  after run below commands in  three server

[root@localhost6 ~]# /sbin/ifconfig
[root@localhost6 ~]# neat
[root@localhost6 ~]# service network restart
[root@test3 ~]# service iptables status
Firewall is stopped.
[root@test3 ~]# service iptables stop
[root@test3 ~]#

AT PRIM   
shut immediate;
for stdby 1:-
scp /home/oracle/control01.ctl  [email protected]:/home/oracle/k2/oradata/control/
             (copy paste individual)
scp /home/oracle/k1/oradata/data/* [email protected]:/home/oracle/k2/oradata/data/
              (copy paste individual)
scp /home/oracle/orapwk2   [email protected]:/home/oracle/

———————————————————————————————–
for stdby 2:-
scp /home/oracle/control01.ctl  [email protected]:/home/oracle/k3/oradata/control/
             (copy paste individual)
scp /home/oracle/k1/oradata/data/* [email protected]:/home/oracle/k3/oradata/data/
              (copy paste individual)
scp /home/oracle/orapwk3   [email protected]:/home/oracle/

note :-“don’t open  primdb when  taking backups and sending data through scp becouse  if u open primdb it will throw error when opening standby1 and standby2
————–>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>———————————–>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>———————-

5)serv2     ————>for stdby_db1
vi dbk2.sh
cp /home/oracle/pfk2 /home/oracle/k2/admin/pfile/initk2.ora
cd $ORACLE_HOME/dbs
rm orapwk2
cd
export ORACLE_SID=k2      
mv /home/oracle/orapwk2 $ORACLE_HOME/dbs
cd
export ORACLE_SID=k2
sqlplus / as sysdba <<EOF
startup pfile=’/home/oracle/k2/admin/pfile/initk2.ora’ nomount;
alter database mount standby database;
alter database open;
alter database recover managed standby database disconnect from session;
create spfile from pfile=’/home/oracle/k2/admin/pfile/initk2.ora’;
shut immediate;

!
EOF
export ORACLE_SID=k1  
sqlplus / as sysdba  <<EOF
startup pfile=’/home/oracle/k2/admin/pfile/initk2.ora’ nomount;
alter database mount standby database;
alter database open;
alter database recover managed standby database disconnect from session;
create spfile from pfile=’/home/oracle/k2/admin/pfile/initk2.ora’;
EOF
————————————————————————–
vi pfk2 ————->for stdby_db1

db_name=k1
sga_target=600m
control_files=’/home/oracle/k2/oradata/control/control01.ctl’
diagnostic_dest=’/home/oracle/k2/admin/diag’
log_archive_config=’DG_CONFIG=(k2,k1)’
db_unique_name=k2
log_archive_dest_2=’SERVICE=k1tns ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=k1′
db_file_name_convert=’/home/oracle/k1/oradata/data’,’/home/oracle/k2/oradata/data’
log_file_name_convert=’/home/oracle/k1/oradata/log’,’/home/oracle/k2/oradata/log’
fal_client=k2tns
fal_server=k1tns
standby_file_management=auto
remote_login_passwordfile=exclusive
log_archive_dest_state_1=enable
log_archive_dest_state_2=enable

————>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>——————————–>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>——————–
6) for serv3   ———–>stdby2
vi dbk3.sh
cp /home/oracle/pfk3 /home/oracle/k3/admin/pfile/initk3.ora
cd $ORACLE_HOME/dbs
rm orapwk3
export ORACLE_SID=k3
mv /home/oracle/orapwk3 $ORACLE_HOME/dbs
cd
export ORACLE_SID=k3
sqlplus / as sysdba <<EOF
startup pfile=’/home/oracle/k3/admin/pfile/initk3.ora’ nomount;
alter database mount standby database;
alter database open;
alter database recover managed standby database disconnect from session;
create spfile from pfile=’/home/oracle/k3/admin/pfile/initk3.ora’;
shut immediate;

!
EOF
export ORACLE_SID=k1  
sqlplus / as sysdba  <<EOF
startup pfile=’/home/oracle/k3/admin/pfile/initk3.ora’ nomount;
alter database mount standby database;
alter database open;
alter database recover managed standby database disconnect from session;
create spfile from pfile=’/home/oracle/k3/admin/pfile/initk3.ora’;
EOF

——————————————————————————–

vi pfk3 ————->for stand_db2

db_name=k1
sga_target=600m
control_files=’/home/oracle/k3/oradata/control/control01.ctl’
diagnostic_dest=’/home/oracle/k3/admin/diag’
log_archive_config=’DG_CONFIG=(k3,k1)’
db_unique_name=k3
log_archive_dest_2=’SERVICE=k1tns ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=k1′
db_file_name_convert=’/home/oracle/k1/oradata/data’,’/home/oracle/k3/oradata/data’
log_file_name_convert=’/home/oracle/k1/oradata/log’,’/home/oracle/k3/oradata/log’
fal_client=k3tns
fal_server=k1tns
standby_file_management=auto
remote_login_passwordfile=exclusive
log_archive_dest_state_1=enable
log_archive_dest_state_2=enable

————>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>————>>>>>>>>>>>>>>>>>>>>>>>>>>>>—————-

7) create unique_db spfile for both db

select name,db_unique_name,database_role,SWITCHOVER_STATUS from v$database;
select APPLIED,CREATOR,SEQUENCE# from v$archived_log;

alter database recover managed standby database cancel;
alter database recover managed standby database using current logfile disconnect;
alter database recover managed standby database disconnect from session;

prim :-
startup
alter system switch logfile;

stdby:-
startup nomount;
alter database mount standby database;
alter database open;
alter database recover managed standby database disconnect from session;

errors while configuring oracle dataguard and solution

1)two server std_by
SQL> recover managed standby database disconnect from session;
Media recovery complete.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-10458: standby database requires recovery
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: ‘/home/oracle/k2/oradata/data/system01.dbf’

solution:- don’t open  primdb after  taken conrolfile backups and data backups
           u need to open prm_db after stdby db opened

2)SQL> recover managed standby database disconnect from session;
ORA-01153: an incompatible media recovery is active
Solution :
alter database recover managed standby database cancel;
alter database recover managed standby database using current logfile disconnect;

3)prim_db alert_log
 Heartbeat failed to connect to standby ‘k2tns’. Error is 1031.

Check that the primary and standby are using a password file
and remote_login_passwordfile is set to SHARED or EXCLUSIVE,
and that the SYS password is same in the password files.
      returning error ORA-16191

Solution :
serv 1:-
cd $ORACLE_HOME/dbs
export ORACLE_SID=k1
orapwd file=orapwk1 password=sys force=y

cp $ORACLE_HOME/dbs/orapwk1 /home/oracle/orapwk2
cp $ORACLE_HOME/dbs/orapwk1 /home/oracle/orapwk3

scp /home/oracle/orapwk2   [email protected]:/home/oracle/
scp /home/oracle/orapwk3   [email protected]:/home/oracle/

serv2:-
cd $ORACLE_HOME/dbs
rm orapwk2
export ORACLE_SID=k2      
mv /home/oracle/orapwk2 $ORACLE_HOME/dbs

serv3:-
cd $ORACLE_HOME/dbs
rm orapwk3
export ORACLE_SID=k3
mv /home/oracle/orapwk3 $ORACLE_HOME/dbs

4)Checking installer requirements…

Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
                                    <<Failled

All installer requirements met.

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2016-04-26_12-25-06PM. Please wait …[oracle@server2 database]$ Oracle Universal Installer, Version 10.2.0.1.0 Production

Solution:-
[oracle@server2 ~]$ vi /etc/redhat-release
Red Hat Enterprise Linux Server release 4 (Tikanga)

Step by step Converting Physical Standby to Logical – Oracle Dataguard 11g AND prerequest step by step

PREREQEST:-
* UNDO TABLESPACE
* NON_TABLESPACE FOR CONVERT ARCH(CHANGE VECTOR) TO SQL STATEMENT USING LOGMINOR

1)SQL> select TABLESPACE_NAME,STATUS,FORCE_LOGGING,RETENTION from dba_tablespaces; –> PRIMARY DB

TABLESPACE_NAME                STATUS    FOR RETENTION
—————————— ——— — ———–
SYSTEM                         ONLINE    NO  NOT APPLY
SYSAUX                         ONLINE    NO  NOT APPLY
UNDO01                         ONLINE    NO  GUARANTEE
TEMP01                         ONLINE    NO  NOT APPLY
TBS                            ONLINE    NO  NOT APPLY
TB7                            ONLINE    NO  NOT APPLY
TEMP02                         ONLINE    NO  NOT APPLY

2)SQL> exec dbms_logmnr_d.set_tablespace(‘TBS’); –>PRIM DB

PL/SQL procedure successfully completed.

SQL> exec dbms_logstdby.build;

PL/SQL procedure successfully completed.

SQL> alter database add supplemental log data(all) columns; –>TO ENABLE ALL COLUMN LOGGING AT THE DATABASE LEVEL

Database altered.

SQL> alter database add supplemental log data(primary key,unique) columns; –>TO ENABLE PRIMARY AND UNIQUE COLUMN LOGGING AT THE DATABASE LEVEL

Database altered.

SQL> alter database add supplemental log data(foreign key) columns  –>TO ENABLE FOREIGN KEY COLUMN LOGGING AT THE DATABASE LEVEL

Database altered

3)SQL> alter database recover managed standby database cancel; –> STANDBY DB

Database altered.

SQL> alter database close;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE
——————–
MOUNTED

SQL> alter database recover to logical standby u2(u1 primary unique name( documents));

Database altered.

note : again recreate the password file in standby database.
cd $ORACLE_HOME/dbs
export ORACLE_SID=u2
orapwd file=orapwstd password=sys

4)SQL>shut immediate;

SQL>startup;
Total System Global Area  418484224 bytes
Fixed Size                  1336932 bytes
Variable Size             134220188 bytes
Database Buffers          276824064 bytes
Redo Buffers                6103040 bytes
Database mounted.
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

SQL> alter database open resetlogs;

Database altered.

SQL> alter database start logical standby apply immediate;

Database altered.

SQL> select database_role from v$database;

DATABASE_ROLE
—————-
LOGICAL STANDBY

5) prim db
SQL> create table prakash(id int);

Table created.

SQL> alter system switch logfile;

System altered.

SQL> /

System altered.

SQL> /

System altered.

6)standby logical db

Note : make sure that the changes on the primary is reflected in secondary within 15 mins.

  

ORACLE ASM MOSTLY FACED ERRORS AND SOLUTIONS

1) SQL> startup;
ORACLE instance started.

Total System Global Area  629145600 bytes
Fixed Size                  1220964 bytes
Variable Size             171970204 bytes
Database Buffers          452984832 bytes
Redo Buffers                2969600 bytes
ORA-00205: error in identifying control file, check alert log for more info

solution:-

SQL> alter system set control_files=’+DG1/kfc/controlfile/current.276.918365369′ scope=spfile;

System altered.

SQL>
SQL> startup force;
ORACLE instance started.

———————————————————————————————
2) [oracle@teng dbs]$ export ORACLE_SID=+ASM
[oracle@teng dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 – Production on Mon Jul 18 13:09:29 2016

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

ERROR:
ORA-01031: insufficient privileges

solution:-
[oracle@teng ~]$ export ORACLE_SID=+ASM
[oracle@teng ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 – Production on Mon Jul 18 14:23:58 2016

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

ERROR:
ORA-01031: insufficient privileges

Enter user-name: sys as sysdba
Enter password: sys

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, OLAP and Data Mining options

———————————————————————————————
3)SQL> startup;
ORA-01081: cannot start already-running ORACLE – shut it down first
SQL> startup force;
ASM instance started

Total System Global Area   83886080 bytes
Fixed Size                  1217836 bytes
Variable Size              57502420 bytes
ASM Cache                  25165824 bytes
ORA-15110: no diskgroups mounted

solution:-

create diskgroup DG1 normal redundancy
failgroup FG1 disk ‘/dev/raw/raw1′,’/dev/raw/raw2’ size 5114m
failgroup FG2 disk ‘/dev/raw/raw3′,’/dev/raw/raw4’ size 5114m;

———————————————————————————————

4)SQL> create tablespace tbs;
create tablespace tbs
                    *
ERROR at line 1:
ORA-02199: missing DATAFILE/TEMPFILE clause

solution:-
SQL> create tablespace tbs datafile ‘+DG1’ size 100m;
Tablespace created.

IF U SET db_create_file_dest PARAMETER  CAN GIVE LIKE BELOW
alter system set db_create_file_dest=’+DG1′ scope=spfile;
SQL> create tablespace tbs1;
Tablespace created.

———————————————————————————————

5)SQL> startup
ORA-01261: Parameter db_create_file_dest destination string cannot be translated
ORA-01262: Stat failed on a file destination directory
Linux Error: 2: No such file or directory

solution:-
SQL>create pfile from spfile;
[oracle@teng dbs]$ vi initkfc.ora
change parameter like below…..
    db_create_file_dest=’+DG1′

shut immediate;
startup;
alter system set control_files=’+DG1/kfc/controlfile/current.276.918365369′ scope=spfile; ……..TAKE from ASMCMD
————————————————————————————————-
6)SQL> select name,open_mode from v$database;

NAME      OPEN_MODE
——— ———-
KFC       READ WRITE

SQL> show parameter control_files;
control_files                        string      +DG1/kfc/controlfile/current.2
                                                 76.918365369

SQL> alter system set control_files=’+DG1/kfc/controlfile/current.276.918365369′ scope=spfile;
alter system set control_files=’+DG1/kfc/controlfile/current.276.918365369′ scope=spfile
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE specified at startup

solution:-
create spfile from pfile=’/home/oracle/kfc/admin/pfile/initkfc.ora’;
create pfile from spfile;
create spfile from pfile;
shut immediate;
startup;
ORACLE instance started.
Total System Global Area  629145600 bytes
Fixed Size                  1220964 bytes
Variable Size             171970204 bytes
Database Buffers          452984832 bytes
Redo Buffers                2969600 bytes
ORA-00205: error in identifying control file, check alert log for more info

SQL>alter system set control_files=’+DG1/kfc/controlfile/current.276.918365369′ scope=spfile;

SQL> startup force;
ORACLE instance started.

Total System Global Area  629145600 bytes
Fixed Size                  1220964 bytes
Variable Size             171970204 bytes
Database Buffers          452984832 bytes
Redo Buffers                2969600 bytes
Database mounted.
Database opened.