Data Guard is the name for Oracle's standby database solution, used for disaster recovery and high availability. Its nothing but a consistent copy of a database.
types of standby database:
a.Physical Standby Database
b.Logical Standby Database
Here You can see the Data Guard Configuration video...!
A.PHYSICAL STANDBY DATABASE CREATION
====================================
Primary database : " prim "
Standby database : " stan "
Step 1: Make sure that o/s and architecture on both Primary and Secondary are same.
Step 2: Install oracle same version software for Primary and Secondary.
Step 3: Check wheather Primary Database is in archive logmode.
To Check : archive log list;
If not enable then,
>shut immediate
>startup mount
>alter database archivelog;
>alter database open;
Step 4: Change the database in logging Mode:
> alter database force logging;
Step 5: Check wheather this database have Password File:
( If it doesnt exit create Password File )
> select * from v$pwfile_users;
Step 6: Create Three Redo-log files to standby database(Primary Side):
>alter database add standby logfile group 4 '/u01/app/oracle/oradata/prim/redo04.log' size 50m;
>alter database add standby logfile group 5 '/u01/app/oracle/oradata/prim/redo05.log' size 50m;
>alter database add standby logfile group 6 '/u01/app/oracle/oradata/prim/redo06.log' size 50m;
Check the standby logfile : select * from v$standby_log;
Step 7: create pfile:
>create pfile from spfile;
Step 8: Edit Pfile and Parameters in primary:
cd /u01/app/oracle/product/10.2.0/db_1/dbs
vi initprim.ora
Adding parameters in Pfile(Primary):add at the end
db_unique_name=PRIM
LOG_ARCHIVE_CONFIG='DG_CONFIG=(PRIM,STAN)'
LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PRIM'
LOG_ARCHIVE_DEST_2='SERVICE=STAN LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STAN'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30
remote_login_passwordfile='EXCLUSIVE'
FAL_SERVER=STAN
FAL_CLIENT=PRIM
STANDBY_FILE_MANAGEMENT=AUTO
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/stan','/u01/app/oracle/oradata/prim'
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/stan','/u01/app/oracle/oradata/prim'
Step 9: Shutdown and Startup the primary database using Pfile.
>shut immediate
>startup nomount pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initprim.ora';
Step 10: Create spfile from pfile and shutdown the primary database;
>create spfile from pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initprim.ora';
>Shut immediate
Step 11: Create necessary directorires for Standby database:
cd /u01/app/oracle/admin
mkdir stan
cd /u01/app/oracle/admin/stan
mkdir adump bdump cdump udump
cd /u01/app/oracle/oradata
mkdir stan
Step 12: startup the primary database in mount and Create control file for standby database :
> Startup mount
>alter database create standby controlfile as '/u01/app/oracle/oradata/stan/control01.ctl'
Step 13: startup the primary database;
> alter database open;
Step 14: Create Password file for standby database:
$cd /u01/app/oracle/product/10.2.0/db_1/dbs
cp orapwprim orapwstan
Step 15: Copy the database file, log file from Primary to standby database:
cd /u01/app/oracle/oradata/prim
$cp *.dbf *.log /u01/app/oracle/oradata/stan
Step 16: Check the Listener
ps -ef|grep tns
$lsnrctl status
if its down then start the listener
$lsnrctl start
Steps 17: Check the tns entries
tnsping <Database name>
if not working then Edit and Put the TNS Entry for databases.
$vi /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsname.ora
Step 18: Copy the pfile from Primary to standby database:
$cd /u01/app/oracle/product/10.2.0/db_1/dbs
$cp initprim.ora initstan.ora
Step 19: Edit pfile for standby database.
$cd /u01/app/oracle/product/10.2.0/db_1/dbs
vi initstan.ora
Replacing parameters in Pfile(standby):
db_name='PRIM'
db_unique_name=STAN
LOG_ARCHIVE_CONFIG='DG_CONFIG=(PRIM,STAN)'
LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=STAN'
LOG_ARCHIVE_DEST_2='SERVICE=PRIM LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PRIM'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30
FAL_SERVER=PRIM
FAL_CLIENT=STAN
remote_login_passwordfile='EXCLUSIVE'
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/prim','/u01/app/oracle/oradata/stan'
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/prim','/u01/app/oracle/oradata/stan'
STANDBY_FILE_MANAGEMENT=AUTO
NOTE: Mention proper standby controlfile location
Step 20: Startup the standby database in nomount stage:
startup nomount pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initstan.ora';
Step 21: create spfile:
>create spfile from pfile;
Step 22: Shutdown and startup the standby database in mount stage:
> shut immediate
> startup mount
Step 23: Start MRP process in Standby database Side:
>alter database recover managed standby database disconnect from session;
Step 24: Check the Sequence and applied in standby database:
>select sequence#,applied from v$archived_log order by sequence#;
types of standby database:
a.Physical Standby Database
b.Logical Standby Database
Here You can see the Data Guard Configuration video...!
A.PHYSICAL STANDBY DATABASE CREATION
====================================
Primary database : " prim "
Standby database : " stan "
Step 1: Make sure that o/s and architecture on both Primary and Secondary are same.
Step 2: Install oracle same version software for Primary and Secondary.
Step 3: Check wheather Primary Database is in archive logmode.
To Check : archive log list;
If not enable then,
>shut immediate
>startup mount
>alter database archivelog;
>alter database open;
Step 4: Change the database in logging Mode:
> alter database force logging;
Step 5: Check wheather this database have Password File:
( If it doesnt exit create Password File )
> select * from v$pwfile_users;
Step 6: Create Three Redo-log files to standby database(Primary Side):
>alter database add standby logfile group 4 '/u01/app/oracle/oradata/prim/redo04.log' size 50m;
>alter database add standby logfile group 5 '/u01/app/oracle/oradata/prim/redo05.log' size 50m;
>alter database add standby logfile group 6 '/u01/app/oracle/oradata/prim/redo06.log' size 50m;
Check the standby logfile : select * from v$standby_log;
Step 7: create pfile:
>create pfile from spfile;
Step 8: Edit Pfile and Parameters in primary:
cd /u01/app/oracle/product/10.2.0/db_1/dbs
vi initprim.ora
Adding parameters in Pfile(Primary):add at the end
db_unique_name=PRIM
LOG_ARCHIVE_CONFIG='DG_CONFIG=(PRIM,STAN)'
LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PRIM'
LOG_ARCHIVE_DEST_2='SERVICE=STAN LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STAN'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30
remote_login_passwordfile='EXCLUSIVE'
FAL_SERVER=STAN
FAL_CLIENT=PRIM
STANDBY_FILE_MANAGEMENT=AUTO
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/stan','/u01/app/oracle/oradata/prim'
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/stan','/u01/app/oracle/oradata/prim'
Step 9: Shutdown and Startup the primary database using Pfile.
>shut immediate
>startup nomount pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initprim.ora';
Step 10: Create spfile from pfile and shutdown the primary database;
>create spfile from pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initprim.ora';
>Shut immediate
Step 11: Create necessary directorires for Standby database:
cd /u01/app/oracle/admin
mkdir stan
cd /u01/app/oracle/admin/stan
mkdir adump bdump cdump udump
cd /u01/app/oracle/oradata
mkdir stan
Step 12: startup the primary database in mount and Create control file for standby database :
> Startup mount
>alter database create standby controlfile as '/u01/app/oracle/oradata/stan/control01.ctl'
Step 13: startup the primary database;
> alter database open;
Step 14: Create Password file for standby database:
$cd /u01/app/oracle/product/10.2.0/db_1/dbs
cp orapwprim orapwstan
Step 15: Copy the database file, log file from Primary to standby database:
cd /u01/app/oracle/oradata/prim
$cp *.dbf *.log /u01/app/oracle/oradata/stan
Step 16: Check the Listener
ps -ef|grep tns
$lsnrctl status
if its down then start the listener
$lsnrctl start
Steps 17: Check the tns entries
tnsping <Database name>
if not working then Edit and Put the TNS Entry for databases.
$vi /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsname.ora
Step 18: Copy the pfile from Primary to standby database:
$cd /u01/app/oracle/product/10.2.0/db_1/dbs
$cp initprim.ora initstan.ora
Step 19: Edit pfile for standby database.
$cd /u01/app/oracle/product/10.2.0/db_1/dbs
vi initstan.ora
Replacing parameters in Pfile(standby):
db_name='PRIM'
db_unique_name=STAN
LOG_ARCHIVE_CONFIG='DG_CONFIG=(PRIM,STAN)'
LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=STAN'
LOG_ARCHIVE_DEST_2='SERVICE=PRIM LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PRIM'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30
FAL_SERVER=PRIM
FAL_CLIENT=STAN
remote_login_passwordfile='EXCLUSIVE'
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/prim','/u01/app/oracle/oradata/stan'
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/prim','/u01/app/oracle/oradata/stan'
STANDBY_FILE_MANAGEMENT=AUTO
NOTE: Mention proper standby controlfile location
Step 20: Startup the standby database in nomount stage:
startup nomount pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initstan.ora';
Step 21: create spfile:
>create spfile from pfile;
Step 22: Shutdown and startup the standby database in mount stage:
> shut immediate
> startup mount
Step 23: Start MRP process in Standby database Side:
>alter database recover managed standby database disconnect from session;
Step 24: Check the Sequence and applied in standby database:
>select sequence#,applied from v$archived_log order by sequence#;
http://www.youtube.com/watch?v=5keahpkzLtM
ReplyDelete