Quantcast
Channel: Remote Database Admin Blog » Database Administration
Viewing all articles
Browse latest Browse all 32

How to configure DGMGRL

$
0
0

DG broker does not have the ability to create standby and is used for managing the dataguard configuration.

Pri db_unique_name    =    ‘TESTPRI’
DG db_unique_name    =    ‘TESTDG’
Configuration(any name) =  DG_TEST’
sys password        =    ‘sys’
Pri conn stg        =    ‘TESTPRI’

1. Set up init parameters on primary to enable broker

Note: For RAC, ensure dg_broker_config_files are on shared storage and accessible to all the instances.

Note: Broker config files are named as dr1<<db_unique_name>>.dat and dr2<<db_unique_name>>.dat

SQL> alter system set dg_broker_start=false sid=’*';
System altered.

SQL> alter system set dg_broker_config_file1=’/n01/dg_broker_config_files/dr1TESTPRI.dat’ sid=’*';
System altered.

SQL> alter system set dg_broker_config_file2=’/n01/dg_broker_config_files/dr2TESTPRI.dat’ sid=’*';
System altered.

SQL> alter system set dg_broker_start=true  sid=’*';
System altered.

2. Verify if DMON process has started on all the instances of primary. Example:

$ ps -ef|grep dmon|grep -v grep
oracle   16190     1  0 08:53 ?        00:00:00 ora_dmon_TESTPRIR1

$ ps -ef|grep dmon|grep -v grep
oracle   29723     1  0 08:53 ?        00:00:00 ora_dmon_TESTPRIR2

3. Set up init parameters on standby

SQL> alter system set dg_broker_start=false sid=’*';
System altered.

SQL> alter system set dg_broker_config_file1=’/export/crawlspace/dg_broker_config_files/dr1TESTDG.dat’ sid=’*';
System altered.

SQL> alter system set dg_broker_config_file2=’/export/crawlspace/dg_broker_config_files/dr2TESTDG.dat’ sid=’*';
System altered.

SQL> alter system set dg_broker_start=true  sid=’*';
System altered.

4. GLOBAL_DBNAME should be set to <<db_unique_name>>_DGMGRL.<<db_domain>> in listener.ora on all instances of both primary and standby.

This is important otherwise you’ll have TNS-12154 error during switchover operation.

Example:

SID_LIST_LISTENER_TESTPRI =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /apps/oracle/product/10g/db)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = TESTPRIR1)
(GLOBAL_DBNAME = TESTPRI_DGMGRL)
(ORACLE_HOME = /apps/oracle/product/10g/db)
)
)

5. DGMGRL Configuration
5.1Connect
DGMGRL> CONNECT sys/sys
Connected.

5.2Create Configuration
DGMGRL> CREATE CONFIGURATION ‘DG_TEST’ AS PRIMARY DATABASE IS ‘TESTPRI’ CONNECT IDENTIFIER IS TESTPRI;
Configuration “DG_TEST” created with primary database “TESTPRI”.

5.3Verify configuration
DGMGRL> SHOW CONFIGURATION;
Configuration
Name:            DG_TEST
Enabled:         NO
Protection Mode: MaxPerformance
Databases:
TESTPRI – Primary database

Current status for “DG_TEST”:
DISABLED

5.4Verify database; if RAC verify if all instances are validated
DGMGRL> show database ‘TESTPRI’;
Database
Name:            TESTPRI
Role:            PRIMARY
Enabled:         NO
Intended State:  ONLINE
Instance(s):
TESTPRIR1
TESTPRIR2

Current status for “TESTPRI”:
DISABLED

5.5Add standby database to the configuration
DGMGRL> ADD DATABASE ‘TESTDG’ AS CONNECT IDENTIFIER IS TESTDG MAINTAINED AS PHYSICAL;
Database “TESTDG” added.

5.6Enable the broker
DGMGRL> ENABLE CONFIGURATION;
Enabled.

5.7Verfying again
DGMGRL> SHOW CONFIGURATION;
Configuration
Name:            DG_TEST
Enabled:         YES
Protection Mode: MaxPerformance
Databases:
TESTPRI – Primary database
TESTDG  – Physical standby database

Current status for “DG_TEST”:
SUCCESS

6. Troubleshooting
Let us see some sample issues and their fix
Issue
DGMGRL> CONNECT sys/sys
ORA-16525: the Data Guard broker is not yet available

Fix
Set dg_broker_start=true

Issue
After enabling the configuration, on issuing SHOW CONFIGURATION, this error comes
Warning: ORA-16608: one or more sites have warnings

Fix
To know details of the error, you may check log which will be generated at bdump with naming as drc{DB_NAME}.log or there are various monitorable properties that can be used to query the database status and assist in further troubleshooting.

Few Monitorable properties to troubleshoot
DGMGRL> SHOW DATABASE ‘TESTPRI’ ‘StatusReport’;
DGMGRL> SHOW DATABASE ‘TESTPRI’ ‘LogXptStatus’;
DGMGRL> SHOW DATABASE ‘TESTPRI’ ‘InconsistentProperties’;
DGMGRL> SHOW DATABASE ‘TESTPRI’ ‘InconsistentLogXptProps’;
DGMGRL> SHOW DATABASE ‘TESTDG’ ‘StatusReport’;
DGMGRL> SHOW DATABASE ‘TESTDG’ ‘LogXptStatus’;
DGMGRL> SHOW DATABASE ‘TESTDG’ ‘InconsistentProperties’;
DGMGRL> SHOW DATABASE ‘TESTDG’ ‘InconsistentLogXptProps’;

Issue
DGMGRL> SHOW DATABASE ‘TESTPRI’ ‘StatusReport’;
STATUS REPORT
INSTANCE_NAME   SEVERITY ERROR_TEXT
TESTPRIR2    WARNING ORA-16714: The value of property ArchiveLagTarget is inconsistent with the database setting.
TESTPRIR2    WARNING ORA-16714: The value of property LogArchiveMaxProcesses is inconsistent with the database setting.

Issue
DGMGRL> SHOW DATABASE ‘TESTPRI’ ‘InconsistentProperties’;
INCONSISTENT PROPERTIES
INSTANCE_NAME        PROPERTY_NAME         MEMORY_VALUE         SPFILE_VALUE         BROKER_VALUE
TESTPRIR2     ArchiveLagTarget                    0                                         0
TESTPRIR2 LogArchiveMaxProcesses                    4                    2                    4

Example
DGMGRL> SHOW DATABASE ‘TESTPRI’ ‘LogArchiveMaxProcesses’;
LogArchiveMaxProcesses = ’4′

Fix
DGMGRL> EDIT DATABASE ‘TESTPRI’ SET PROPERTY ‘LogArchiveMaxProcesses’=2;

or

SQL> alter system set log_archive_max_processes=4 scope=spfile sid=’*';
System altered.

DGMGRL> SHOW DATABASE ‘TESTPRI’ ‘LogArchiveMaxProcesses’;
LogArchiveMaxProcesses = ’4′

More commands
DGMGRL> SHOW DATABASE VERBOSE ‘dbname’;
This will show all property values in detail

DGMGRL> HELP;
List of all broker commands with usage help

Equivalent Broker Commands to ‘ALTER SYSTEM’
SQL> alter database recover managed standby database cancel;
DGMGRL> edit database ‘stby_dbname’ set state=’LOG-APPLY-OFF’;

SQL> alter database recover managed standby database disconnect;
DGMGRL> edit database ‘stby_dbname’ set state=’ONLINE’;

SQL> alter system set log_archive_max_processes=4;
DGMGRL> edit database ‘dbname’ set property ‘LogArchiveMaxProcesses’=4;

SQL> alter system set log_archive_dest_state_2=’enable’ scope=both;
DGMGRL> edit database ‘stby_dbname’ set property ‘LogShipping’='ON’;

SQL> alter system set log_archive_dest_state_2=’defer’ scope=both;
DGMGRL> edit database ‘stby_dbname’ set property ‘LogShipping’='OFF’;

DGMGRL> edit database ‘pri_dbname’ set state=’LOG-TRANSPORT-OFF’;
This will defer all standby databases


Viewing all articles
Browse latest Browse all 32

Trending Articles