How to create dataguard in oracle 11g using RMAN


1) alter database force logging;

2) orapwd file=/u01/app/oracle/product/11.2.0/db_1/dbs/orapwPROD password=oracle entries=5

3) Create standby logfile:

ALTER DATABASE ADD STANDBY LOGFILE '/u01/app/oracle/oradata/PROD/sbyredo01.log' SIZE 10M;
ALTER DATABASE ADD STANDBY LOGFILE '/u01/app/oracle/oradata/PROD/sbyredo02.log' SIZE 10M;
ALTER DATABASE ADD STANDBY LOGFILE '/u01/app/oracle/oradata/PROD/sbyredo03.log' SIZE 10M;
ALTER DATABASE ADD STANDBY LOGFILE '/u01/app/oracle/oradata/PROD/sbyredo04.log' SIZE 10M;

4) create pfile='/arch/backup/initPROD.ora' from spfile;

5) Take a backup of primary database.

rman target /

run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup database format '/arch/backup/%d_%t_%s_%p' plus archivelog format '/arch/backup/%d_%U';
}

run
{
allocate channel c1 type disk;
backup current controlfile for standby format '/arch/backup/control_file_%d_%t_%s_%p';
}

6) Take a backup of  password file, tnsnames.ora file.

cp /u01/app/oracle/product/11.2.0/db_1/dbs/orapwPROD /arch/backup
cp /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora /arch/backup

7) Transfer the backup files to new standby server

scp PROD* init* control* orapw* tns* ssb2:/arch/backup


8) standby

cp /arch/backup/orapwPROD /u01/app/oracle/product/11.2.0/db_1/dbs
cp /arch/backup/initPROD.ora /u01/app/oracle/product/11.2.0/db_1/dbs
cp /arch/backup/tnsnames.ora /u01/app/oracle/product/11.2.0/db_1/network/admin


9) Add the below parameters in standby database parameter file :

db_unique_name='PRODDR'
instance_name='PRODDR'
db_file_name_convert='/u01/app/oracle/oradata/PROD/','/u01/app/oracle/oradata/PROD/'
log_file_name_convert='/u01/app/oracle/oradata/PROD/','/u01/app/oracle/oradata/PROD/'
standby_archive_dest='/arch/PROD'

10) Create the required directories in standby server.

mkdir -p /u01/app/oracle/admin/PROD/adump
mkdir -p /u01/app/oracle/oradata/PROD
mkdir -p /arch/PROD

11) Setup the new standby database:

export ORACLE_SID=PROD

rman target /

startup nomount;

restore standby controlfile from '/arch/backup/control_file_PROD_804456393_10_1';

sql 'alter database mount standby database';

restore database;

list backup of archivelog all;

##### List of Archived Logs in backup set 15
##### Thrd Seq Low SCN Low Time Next SCN Next Time
##### ---- ------- ---------- -------------------- ---------- ---------
##### 1 36 489499 09:DEC:2007:14:57:27 489527 09:DEC:2007:14:58:31

recover database until sequence 37;

recover managed standby database disconnect from session;

create spfile from pfile;

12) Add the below parameter in primary database parameter file :

alter system set log_archive_dest_2='SERVICE=PRODDR';

alter system switch logfile;

13) Make the below network files changes in primary and standby servers :

tnsnames.ora on both nodes
--------------------------------------------------------------------------------------
PROD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ssb1.parthi.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PROD)
    )
  )

PRODDR =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ssb2.parthi.com)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PROD)
    )
  )
--------------------------------------------------------------------------------------
Listener.ora on Node 1

--------------------------------------------------------------------------------------
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ssb1.parthi.com)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
SID_LIST_LISTENER =
  (SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=PROD)
      (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME=PROD))
    (SID_DESC=
      (SID_NAME=plsextproc)
      (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)
      (PROGRAM=extproc)))

ADR_BASE_LISTENER = /u01/app/oracle

--------------------------------------------------------------------------------------
lsnrctl stop
lsnrctl start
--------------------------------------------------------------------------------------
Listener.ora on Node 2
--------------------------------------------------------------------------------------
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ssb2.parthi.com)(PORT = 1522))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
    )
  )
SID_LIST_LISTENER =
  (SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=PROD)
      (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME=PROD))
    (SID_DESC=
      (SID_NAME=plsextproc)
      (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)
      (PROGRAM=extproc)))

ADR_BASE_LISTENER = /u01/app/oracle
--------------------------------------------------------------------------------------
lsnrctl stop
lsnrctl start
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------


Comments

  1. hi PARTHIBAN.PERUMAL

    i follow your blog doc and get error

    FAL[client]: Error fetching gap sequence, no FAL server specified

    below these parametrs not need for dataguard?

    SQL> show parameters fal

    NAME TYPE VALUE
    --------------- ---------- ------
    fal_client string
    fal_server string

    by Syed.

    ReplyDelete
  2. Hi Syed,

    please use fal parameters.

    By Parthi

    ReplyDelete

Post a Comment

Popular posts from this blog

[INS-40718] Single Client Access Name (SCAN): could not be resolved. ( LDOMS & Zones)

Bare Metal Restore Procedure for Compute Nodes on an Exadata Environment