Vous êtes sur la page 1sur 10

Configuration of Data Guard Broker for Switchover

Primary database PRI


Standby database Standby
Step by Step Implementation of Data Guard Broker
Enable Data Guard Broker Start on the Primary and Standby databases
SQL> ALTER SYSTEM SET DG_BROKER_START=TRUE SCOPE=BOTH;
System altered.
SQL> ALTER SYSTEM SET DG_BROKER_START=TRUE SCOPE=BOTH;
System altered.
Setup the Broker configuration files
SQL>ALTER SYSTEM SET DG_BROKER_START=TRUE;
SQL>SHOW PARAMETERS DG_BROKER_CONFIG
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1 string /u01/app/oracle/product/11.2.0
/db_1/dbs/dr1pri.dat
dg_broker_config_file2 string /u01/app/oracle/product/11.2.0
/db_1/dbs/dr2pri.dat
SQL> SHOW PARAMETERS DG_BROKER_CONFIG
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1 string /u01/app/oracle/product/11.2.0
/db_1/dbs/dr1standby.da
dg_broker_config_file2 string /u01/app/oracle/product/11.2.0
/db_1/dbs/dr2standby.dat
Next create from within the DGMGRL the configuration on pri
[oracle@pri]$ dgmgrl
DGMGRL for Linux: Version 11.2.0.1.0 - Production

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

Welcome to DGMGRL, type "help" for information.


DGMGRL> connect sys/oracle@pri
Connected.
DGMGRL> create configuration pri
> PRIMARY DATABASE IS pri
> CONNECT IDENTIFIER IS pri;

Configuration "pri" created with primary database "pri"


Add the standby to the configuration and check it

DGMGRL> ADD DATABASE standby AS


> CONNECT IDENTIFIER IS standby
> MAINTAINED AS PHYSICAL;
Database "standby" added”

DGMGRL> SHOW CONFIGURATION;


Configuration
Name: pri
Enabled: NO
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
pri- Primary database
standby - Physical standby database
Current status for "pri":
DISABLED
DGMGRL> SHOW DATABASE VERBOSE standby;
Database
Name: john
Role: PHYSICAL STANDBY
Enabled: NO
Intended State: OFFLINE
Instance(s):
standby

Properties:
InitialConnectIdentifier = 'standby'
LogXptMode = 'ARCH'
Dependency = ''
DelayMins = '0'
Binding = 'OPTIONAL'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '180'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'auto'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '30'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = '/u01/app/oracle/oradata/pri/, /u01/app /oracle/oradata/standby/'
LogFileNameConvert = '/u01/app/oracle/oradata/pri/, /u01/app /oracle/oradata/standby/'
FastStartFailoverTarget = ''
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'stndby.com'
SidName = 'standby'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=TCP)(HOST=stndby.com)(PORT=1521))'
StandbyArchiveLocation = '/u01/app/oracle/oradata/standby/arch/'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = '%t_%s_%r.arc'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'

Current status for "standby":


DISABLED

DGMGRL> show database verbose pri;


Database
Name: pri
Role: PRIMARY
Enabled: NO
Intended State: OFFLINE
Instance(s):
antony

Properties:
InitialConnectIdentifier = 'pri'
LogXptMode = 'ASYNC'
Dependency = ''
DelayMins = '0'
Binding = 'OPTIONAL'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '180'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'auto'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '30'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = '/u01/app/oracle/oradata/standby/, /u01/app/o racle/oradata/pri/'
LogFileNameConvert = '/u01/app/oracle/oradata/standby/, /u01/app/o racle/oradata/pri/'
FastStartFailoverTarget = ''
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'pri.com'
SidName = 'pri'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=TCP)(HOST=pri.com)(PORT=1521))'
StandbyArchiveLocation = '/u01/app/oracle/oradata/pri/arch/'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = '%t_%s_%r.arc'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'

Current status for "pri":


DISABLED
DGMGRL> enable configuration;
Enabled.
DGMGRL> show configuration;
Configuration
Name: pri
Enabled: YES
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
pri - Primary database
standby - Physical standby database
Current status for "pri":
SUCCESS
DGMGRL> enable database standby;
Enabled.
DGMGRL> SHOW DATABASE VERBOSE standby;
Database
Name: standby
Role: PHYSICAL STANDBY
Enabled: YES
Intended State: ONLINE
Instance(s):
john

Properties:
InitialConnectIdentifier = 'standby'
LogXptMode = 'ARCH'
Dependency = ''
DelayMins = '0'
Binding = 'OPTIONAL'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '180'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'auto'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '30'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = '/u01/app/oracle/oradata/pri/, /u01/app/oracle/oradata/standby/'
LogFileNameConvert = '/u01/app/oracle/oradata/pri/, /u01/app/oracle/oradata/standby/'
FastStartFailoverTarget = ''
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'stndby.com'
SidName = 'standby'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=TCP)(HOST=stndby.com)(PORT=1521))'
StandbyArchiveLocation = '/u01/app/oracle/oradata/standby/arch/'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = '%t_%s_%r.arc'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'

Current status for "standby":


SUCCESS
Enabling the configuration and databases
DGMGRL> enable configuration;
Enabled.
DGMGRL> show configuration;

Configuration
Name: pri
Enabled: YES
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
pri - Primary database
standby - Physical standby database

Current status for "pri":


SUCCESS

DGMGRL> enable database standby;


Enabled.
DGMGRL> SHOW DATABASE VERBOSE standby;

Database
Name: standby
Role: PHYSICAL STANDBY
Enabled: YES
Intended State: ONLINE
Instance(s):
standby

Properties:
InitialConnectIdentifier = 'standby'
LogXptMode = 'ARCH'
Dependency = ''
DelayMins = '0'
Binding = 'OPTIONAL'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '180'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'auto'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '30'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = '/u01/app/oracle/oradata/pri/, /u01/app/oracle/oradata/standby/'
LogFileNameConvert = '/u01/app/oracle/oradata/pri/, /u01/app/oracle/oradata/standby/'
FastStartFailoverTarget = ''
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'stndby.com'
SidName = 'standby'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=TCP)(HOST=stndby.com)(PORT=1521))'
StandbyArchiveLocation = '/u01/app/oracle/oradata/standby/arch/'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = '%t_%s_%r.arc'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'

Current status for "standby":


SUCCESS

1. Ensure standby redologs are configured on all databases.


on primary:
SQL> SELECT TYPE,MEMBER FROM V$LOGFILE;
TYPE MEMBER
------- --------------------------------------------------
ONLINE /u01/app/oracle/oradata/pri/redo03.log
ONLINE /u01/app/oracle/oradata/pri/redo02.log
ONLINE /u01/app/oracle/oradata/pri/redo01.log
STANDBY /u01/app/oracle/oradata/pri/redoby04.log;
STANDBY /u01/app/oracle/oradata/pri/redoby05.log;
STANDBY /u01/app/oracle/oradata/pri/redoby06.log;
NOTE: if u add logfile in data guard then u don’t add again logfile;
On standby:
SQL> SELECT TYPE,MEMBER FROM V$LOGFILE;
TYPE MEMBER
---------- --------------------------------------------------
ONLINE /u01/app/oracle/oradata/standby/redo03.log
ONLINE /u01/app/oracle/oradata/standby/redo02.log
ONLINE /u01/app/oracle/oradata/standby/redo01.log
STANDBY /u01/app/oracle/oradata/standby/redoby04.log;
STANDBY /u01/app/oracle/oradata/standby/redoby05.log;
STANDBY /u01/app/oracle/oradata/standby/redoby06.log;

2. Ensure the LogXptMode Property is set to SYNC.


DGMGRL> EDIT DATABASE pri SET PROPERTY 'LogXptMode'='SYNC';
Property "LogXptMode" updated
DGMGRL> EDIT DATABASE standby SET PROPERTY 'LogXptMode'='SYNC';
Property "LogXptMode" updated

3.Specify the FastStartFailoverTarget property


DGMGRL> EDIT DATABASE pri SET PROPERTY FastStartFailoverTarget='standby';
Property "faststartfailovertarget" updated
DGMGRL> EDIT DATABASE standby SET PROPERTY FastStartFailoverTarget='pri';
Property "faststartfailovertarget" updated

4.Upgrade the protection mode to MAXAVAILABILITY, if necessary.


DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;
Operation requires shutdown of instance "pri" on database "pri"
Shutting down instance "pri"...
Database closed.
Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "pri" on database "pri"
Starting instance "pri"...
ORACLE instance started.
Database mounted
note: if ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor Failed.
You are no longer connected to ORACLE
Please connect again.
you must start instance (primary database) manually
SQL> conn / as sysdba
SQL> startup mount;

5. Enable Flashback Database on the Primary and Standby Databases.


On Both databases
To enter the standby into Flashback mode you must shutdown the both databases, then while
the primary is down execute the
following commands on the standby:
SQL> ALTER SYSTEM SET UNDO_RETENTION=3600 SCOPE=SPFILE;
System altered.
SQL> ALTER SYSTEM SET UNDO_MANAGEMENT='AUTO' SCOPE=SPFILE;
System altered.
SQL> startup mount;

SQL> ALTER DATABASE FLASHBACK ON;

Check that primary and standby are healthy


DGMGRL> show database pri;
Current status for "pri":
SUCCESS
DGMGRL> show database standby;
Current status for "standby":
SUCCESS

EXECUTE THE SWITCHOVER:

DGMGRL> SWITCHOVER TO standby;


Performing switchover NOW, please wait...
Operation requires shutdown of instance "pri" on database "pri"
Shutting down instance "pri"...
ORA-01119: database not open

Database dismounted.
ORACLE instance shut down.
Operation requires shutdown of instance "john" on database "standby"
Shutting down instance "standby"...
ORA-01119: database not open

Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "pri" on database "pri"
Starting instance "pri"...
ORACLE instance started.
Database mounted.
Operation requires startup of instance "standby" on database "standby"
Starting instance "standby"...
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "standby"
DGMGRL>

Vous aimerez peut-être aussi