Professional Documents
Culture Documents
com/dg-setup-active-
dataguard/
In this blog we’ll see how to configure 11g Data Guard using active dataguard i.e. standby
database will be created from running primary database . We do not need to take backup of
database or controlfile. Primary database dg01 on node1.oracle.com (192.9.201.192)
Listeners :
TNS entries
——————————————-
- As root assign
. IP address 192.9.201.192
. hostname node1.oracle.com
– create dg01 database in archivelog mode , with sample schemas, with FRA default
——————————————-
- As root assign
. IP address 192.9.201.193
. hostname node2.oracle.com
– Test
#ping node1
ping node2
—————————–
On primary node01
—————————–
— Configure the database dg01 in archive log mode and enable the force logging.
SQL>SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=6G;
ALTER DATABASE FORCE LOGGING;
select force_logging from v$database;
ALTER DATABASE OPEN;
– Configure standby redo log files to enable fast failover and real time apply. (Assume we
have three redo log group)
Note: – Number of standby redo log group must be more than number of redo log group and size
of the standby logfile must be same as the size of redo log file.
4 STANDBY /u01/app/oracle/oradata/dg01/sredo04.log
5 STANDBY /u01/app/oracle/oradata/dg01/sredo05.log
6 STANDBY /u01/app/oracle/oradata/dg01/sredo06.log
7 STANDBY /u01/app/oracle/oradata/dg01/sredo07.log
GROUP# MB
———- ———-
4 50
5 50
6 50
7 50
oracle@node1$mkdir /home/oracle/stage
oracle@node1$vi /home/oracle/stage/initdg01.ora
LOG_ARCHIVE_CONFIG=’DG_CONFIG=(dg01,dg02)’
DB_UNIQUE_NAME=’dg01′
SERVICE_NAMES=’dg01′
DB_FILE_NAME_CONVERT=’/u01/app/oracle/oradata/dg02′,’/u01/app/oracle/oradata/dg01′
LOG_FILE_NAME_CONVERT=’/u01/app/oracle/oradata/dg02′,’/u01/app/oracle/oradata/dg01′
LOG_ARCHIVE_DEST_1=’location=USE_DB_RECOVERY_FILE_DEST’
LOG_ARCHIVE_DEST_STATE_1=enable
LOG_ARCHIVE_DEST_2=’service=dg02
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) DB_UNIQUE_NAME=dg02′
LOG_ARCHIVE_DEST_STATE_2=enable
STANDBY_FILE_MANAGEMENT=auto
FAL_CLIENT=’dg01′
FAL_SERVER=’dg02′
LOG_ARCHIVE_FORMAT=’%t_%s_%r.arc’
Note:
db_file_name_convert = (“+DATA/dg01″,”+DATA/dg02″)
– create spfile from pfile and start dg01 using new parameters
PRI>shu immediate;
create spfile from pfile='/home/oracle/stage/initdg01.ora';
startup;
—– Take the entire database backup on pre configured staging directory(optional with
active dataguard)
oracle@node2$mkdir /home/oracle/stage
PASSWORD FILE
i.e. /home/oracle/stage
– Configure net service for dg01 (primary database) on node1 at port 1522
DG02 =
(DESCRIPTION =
(ADDRESS_LIST =
(CONNECT_DATA =
(SERVICE_NAME = dg02)
)
)
DG01 =
(DESCRIPTION =
(ADDRESS_LIST =
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dg01)
– Create a listener in database home on port 1522 and statically register dg01 with it.
—————————-
On standby node02
—————————–
dg02.__db_cache_size=440401920
dg02.__java_pool_size=4194304
dg02.__large_pool_size=4194304
dg02.__shared_pool_size=163577856
dg02.__streams_pool_size=0
*.audit_file_dest=’/u01/app/oracle/admin/dg02/adump’
*.control_files=’/u01/app/oracle/oradata/dg02/control01.ctl’
*.core_dump_dest=’/u01/app/oracle/admin/dg02/cdump’
*.db_block_size=8192
*.db_domain=”
*.db_file_multiblock_read_count=16
*.db_name=’dg01′
*.db_recovery_file_dest=’/u01/app/oracle/flash_recovery_area’
*.db_recovery_file_dest_size=6G
*.dispatchers='(PROTOCOL=TCP) (SERVICE=dg02XDB)’
*.job_queue_processes=10
*.log_archive_format=’%t_%s_%r.dbf’
*.open_cursors=300
*.pga_aggregate_target=204472320
*.processes=150
*.remote_login_passwordfile=’EXCLUSIVE’
*.sga_target=613416960
*.undo_management=’AUTO’
*.undo_tablespace=’UNDOTBS1′
*.user_dump_dest=’/u01/app/oracle/admin/dg02/udump’
LOG_ARCHIVE_CONFIG=’DG_CONFIG=(dg01,dg02)’
DB_UNIQUE_NAME=’dg02′
SERVICE_NAMES=’dg02′
DB_FILE_NAME_CONVERT=’/u01/app/oracle/oradata/dg02,’/u01/app/oracle/oradata/dg01′
LOG_FILE_NAME_CONVERT=’/u01/app/oracle/oradata/dg02′,’/u01/app/oracle/oradata/dg01′
LOG_ARCHIVE_DEST_1=’location=USE_DB_RECOVERY_FILE_DEST’
LOG_ARCHIVE_DEST_STATE_1=enable
LOG_ARCHIVE_DEST_2=’service=dg01
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) DB_UNIQUE_NAME=DG01′
LOG_ARCHIVE_DEST_STATE_2=enable
STANDBY_FILE_MANAGEMENT=auto
FAL_CLIENT=’dg02′
FAL_SERVER=’dg01′
LOG_ARCHIVE_FORMAT=’%t_%s_%r.arc’
@node2: Create the required directory for standby database
@node2:– Configure net service for dg01 (primary database) on node1 at port 1522
(DESCRIPTION =
(ADDRESS_LIST =
(CONNECT_DATA =
(SERVICE_NAME = dg02)
DG01 =
(DESCRIPTION =
(ADDRESS_LIST =
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dg01)
@node2 –create a listener on port 1522 in database home and statically dg02 service with it
– On standby database verify that new redo data was received , archived and applied