Thursday 9 June 2011

How To Configure Data Guard Broker

Configuring Data Guard Broker:

NOTE: You should have your physical standby already setup.

How to Setup Data Guard

1.) Check parameter DG_BROKER_START on primary:

SQL> show parameter DG_BROKER_START

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

dg_broker_start boolean FALSE

2.) Set DG_BROKER_START to true on primary:

SQL> alter system set DG_BROKER_START=true scope=both;

System altered.

3.)Check DG_BROKER_START on standby side:

SQL> show parameter DG_BROKER_START

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

dg_broker_start boolean FALSE

4.) Set DG_BROKER_START to true on standby:

SQL> alter system set DG_BROKER_START=true scope=both;

System altered.

5.) Define a service for the listener that includes the db_unique_name_DGMGRL.db_domain values for the GLOBAL_DBNAME:

Update the listener.ora file on primary and standby

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = orcl.abc.com)

(ORACLE_HOME = /opt/app/oracle/10.2)

(SID_NAME = orcl)

)

(SID_DESC =

(GLOBAL_DBNAME = orcl_DGMGRL.abc.com) -->_DGMGRL.

(ORACLE_HOME = /opt/app/oracle/10.2)

(SID_NAME = orcl)

)

)

6.) Now to create the data guard broker configurations:

[oracle@APP3 admin]$ dgmgrl

DGMGRL for Linux: Version 10.2.0.4.0 - 64bit Production

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

Welcome to DGMGRL, type "help" for information.

DGMGRL> connect sys/oracle

Connected.

DGMGRL> create configuration 'DBTEST'

> as primary database is 'orcl'

> connect identifier is orcl;

Configuration "DBTEST" created with primary database "orcl"

DGMGRL>

DGMGRL> show configuration

Configuration

Name: DBTEST

Enabled: NO

Protection Mode: MaxPerformance

Fast-Start Failover: DISABLED

Databases:

orcl - Primary database

Current status for "DBTEST":

DISABLED

DGMGRL>

7.) Now add standby DB to the data broker configuration:

DGMGRL> add database 'orcl1' as

> connect identifier is orcl1

> maintained as physical;

Database "orcl1" added

DGMGRL>

DGMGRL> show configuration

Configuration

Name: DBTEST

Enabled: NO

Protection Mode: MaxPerformance

Fast-Start Failover: DISABLED

Databases:

orcl - Primary database

orcl1 - Physical standby database

Current status for "DBTEST":

DISABLED

8.) Now enable the configurations:

DGMGRL> enable configuration

Enabled.

DGMGRL> show configuration

Configuration

Name: DBTEST

Enabled: YES

Protection Mode: MaxPerformance

Fast-Start Failover: DISABLED

Databases:

orcl - Primary database

orcl1 - Physical standby database

Current status for "DBTEST":

Warning: ORA-16607: one or more databases have failed

DGMGRL> show database verbose orcl1

Database

Name: orcl1

Role: PHYSICAL STANDBY

Enabled: YES

Intended State: ONLINE

Instance(s):

orcl

Properties:

InitialConnectIdentifier = 'orcl1'

ObserverConnectIdentifier = ''

LogXptMode = 'ARCH'

Dependency = ''

DelayMins = '0'

Binding = 'OPTIONAL'

MaxFailure = '0'

MaxConnections = '1'

ReopenSecs = '300'

NetTimeout = '180'

LogShipping = 'ON'

PreferredApplyInstance = ''

ApplyInstanceTimeout = '0'

ApplyParallel = 'AUTO'

StandbyFileManagement = 'MANUAL'

ArchiveLagTarget = '0'

LogArchiveMaxProcesses = '3'

LogArchiveMinSucceedDest = '1'

DbFileNameConvert = '/opt/app/oracle/oradata/orcl, /home/oracle/oradata/orcl'

LogFileNameConvert = '/opt/app/oracle/oradata/orcl, /home/oracle/oradata/orcl, /opt/app/oracle/flash_recovery_area/orcl/onlinelog, /home/oracle/oradata/flash_recovery_area/orcl'

FastStartFailoverTarget = ''

StatusReport = '(monitor)'

InconsistentProperties = '(monitor)'

InconsistentLogXptProps = '(monitor)'

SendQEntries = '(monitor)'

LogXptStatus = '(monitor)'

RecvQEntries = '(monitor)'

HostName = 'wrpws'

SidName = 'orcl'

LocalListenerAddress = '(ADDRESS=(PROTOCOL=tcp)(HOST=wrpws)(PORT=1521))'

StandbyArchiveLocation = '/home/oracle/oradata/orcl/archive'

AlternateLocation = ''

LogArchiveTrace = '0'

LogArchiveFormat = '%t_%s_%r.arc'

LatestLog = '(monitor)'

TopWaitEvents = '(monitor)'

Current status for "orcl1":

Error: ORA-12545: Connect failed because target host or object does not exist

DGMGRL>

Well the problem in my case was that the hostname was not getting resolved. I added the hostname to the host file and it started working.

After this error I got error:

Current status for "orcl1":

Error: ORA-16664: unable to receive the result from a remote database

Well same problem, communication between the 2 database. Make sure that the /etc/hosts files have entries of all other servers, with name and IP address.

Always review the log_archive_dest_2 parameter, to have the right entries and service is accessible.

DGMGRL> enable configuration

Enabled.

DGMGRL> show configuration

Configuration

Name: DBTEST

Enabled: YES

Protection Mode: MaxPerformance

Fast-Start Failover: DISABLED

Databases:

orcl - Primary database

orcl1 - Physical standby database

Current status for "DBTEST":

SUCCESS

DGMGRL>

This should setup Data Guard Broker.

COMMANDS Available in DGMGRL:

DGMGRL> help

The following commands are available:

add Add a standby database to the broker configuration

connect Connect to an Oracle instance

create Create a broker configuration

disable Disable a configuration, a database, or Fast-Start Failover

edit Edit a configuration, database, or instance

enable Enable a configuration, a database, or Fast-Start Failover

exit Exit the program

failover Change a standby database to be the primary database

help Display description and syntax for a command

quit Exit the program

reinstate Change a disabled database into a viable standby database

rem Comment to be ignored by DGMGRL

remove Remove a configuration, database, or instance

show Display information about a configuration, database, or instance

shutdown Shutdown a currently running Oracle instance

start Start Fast-Start Failover observer

startup Start an Oracle database instance

stop Stop Fast-Start Failover observer

switchover Switch roles between the primary database and a standby database

Use "help " to see syntax for individual commands

No comments: