Wednesday, November 18, 2009

Implementing Fast-Start Failover in 10GR2 Dataguard Broker Environment


IMPLEMENTING FAST-START FAILOVER IN 10GR2 DATAGUARD BROKER ENVIRONMENT

Doc ID:
359555.1
Type:
BULLETIN

Modified Date:
06-MAY-2009
Status:
PUBLISHED
IMPLEMENTING FAST-START FAILOVER
10GR2 DATAGUARD BROKER ENVIRONMENT
Product: Oracle 10GR2 DataGuard.
Minimum Version: 10.2.0.1.0
Abstract
----------
This paper covers the step-by-step for implementing 10GR2 DataGuard new feature -FAST-START FAILOVER.
FAST-START Failover is a new feature in DataGuard Broker 10GR2.
Fast-start failover allows the broker to automatically fail over to a synchronized
standby database in the event of loss of the primary database.
Fast-start failover quickly and reliably fails over the target standby database
to the primary database role, without requiring you to perform any
manual steps to invoke the failover.
Fast-start failover can be used only in a broker configuration and can be
configured only through DGMGRL or Enterprise Manager.
Here are detailed Steps to configure fast-Start Failover using DGMGRL.
== Tested on the following configuration ==
Operating System - Windows XP
Oracle Release - 10.2.0.1.0
Primary Database - RAJ (SINGLE INSTANCE)
Standby database - STDBY (SINGLE INSTANCE)
Broker Tool - DGMGRL
Observer Node - rghatge-in
=== The following Pre-requisites must be met before Enabling Fast-Start Failover ===
a) The broker configuration must be running in maximum availability mode.
Standby Redo logs are must for MaxAvailability Mode.
Create the standby redo logs on the Standby databaase.
Either of following ways can be used to set the Protection mode to - MAXAVAILABILITY.
DGMGRL> Edit configuration set Protection mode as MaxAvailability;
SQL> Alter database set standby database to maximize Availability;
b) Enable Flashback Database and set up a flash recovery area on both the
primary database and the target standby database.
Parameters of concerns for Flashback Database ===>
Alter system set db_recovery_file_dest_size=[];
Alter system set db_recovery_file_dest=;
To turn flashback feature, ensure database is mounted and issue the following command ==>
SQL> Alter database flashback on;
c) Install the DGMGRL command-line interface on the observer computer.
This requires you to install 10GR2 client side component or
10GR2 Enterprise/Personal Edition on observer Machine.
d) Configure the TNSNAMES.ORA file on the observer Machine so that the observer is able to connect to the
Primary database and the pre-selected target standby database.
== AFTER ABOVE PRE-REQUISITES ARE MET ===
PRIMARY Database (RAJ) ==
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY
SQL> select flashback_on from v$database;
FLASHBACK_ON
--------------------
YES
STANDBY Database (STDBY) ==
SQL> select protection_mode, protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY
SQL> select flashback_on from v$database;
FLASHBACK_ON
--------------------
YES
== TNSNAMES.ORA Entry on Observer Site ==
RAJ=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)(HOST=rghatge-in)(PORT=1521))
(ADDRESS=
(PROTOCOL=ipc)(KEY=PNPKEY))
(CONNECT_DATA=
(SERVICE_NAME=raj)
)
)
STDBY=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)(HOST=rghatge-in)(PORT=1521))
(ADDRESS=
(PROTOCOL=ipc)(KEY=PNPKEY))
(CONNECT_DATA=
(SERVICE_NAME=stdby)
)
)
== FAST_START FAILOVER SETUP ===
Creating DG Broker configuration using DGMGRL
DGMGRL>connect sys/sys123@RAJ
Connected.
DGMGRL> create configuration 'DGRAJ' as primary database is 'RAJ'
connect identifier is RAJ;
Configuration "DGRAJ" created with primary database "RAJ" <<< Primary added
DGMGRL> add database 'STDBY' as connect identifier is STDBY maintained
as physical;
Database "STDBY" added <<< Standby added
DGMGRL> show configuration
Configuration
Name: DGRAJ
Enabled: NO
Protection Mode: MaxAvailability <<< Protection Mode
Fast-Start Failover: DISABLED
Databases:
RAJ - Primary database
STDBY - Physical standby database
Current status for "DGRAJ":
DISABLED <<< Status still Disabled.
DGMGRL> enable configuration <<< Configuration enabled.
Enabled.
DGMGRL> connect sys/sys123@RAJ
Connected.
DGMGRL> show configuration;
Configuration
Name: DGRAJ
Enabled: YES
Protection Mode: MaxAvailability
Fast-Start Failover: DISABLED <<<< Fast-Start Failover is disabled yet.
Databases:
raj - Primary database
stdby - Physical standby database
Current status for "DGRAJ":
SUCCESS <<< Status Success
Ensure "LogXptMode" property for both the Primary and Standby is set to 'SYNC'.
DGMGRL> show database verbose 'RAJ';
Database
Name: raj
Role: PRIMARY
Enabled: YES
Intended State: ONLINE
Instance(s):
raj
Properties:
InitialConnectIdentifier = 'raj'
LogXptMode = 'SYNC' <<<<
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 = '2'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = ''
LogFileNameConvert = ''
FastStartFailoverTarget = ''
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'rghatge-in'
SidName = 'raj'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=tcp)(HOST=rghatge-in)(PORT=1521))'
StandbyArchiveLocation = 'D:\oracle\product\10.2.0\admin\RAJ\arch'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = 'raj%S%t%r.arc'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'
Current status for "raj":
SUCCESS
DGMGRL> show database verbose 'STDBY';
Database
Name: STDBY
Role: PHYSICAL STANDBY
Enabled: YES
Intended State: ONLINE
Instance(s):
stdby
Properties:
InitialConnectIdentifier = 'stdby'
LogXptMode = 'SYNC' >>>>>
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 = '2'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = 'D:\oracle\product\10.2.0\oradata\RAJ, D:\oracle\product\10.2.0\oradata\STDBY\data'
LogFileNameConvert = 'D:\oracle\product\10.2.0\oradata\RAJ, D:\oracle\product\10.2.0\oradata\STDBY\data'
FastStartFailoverTarget = ''
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'rghatge-in'
SidName = 'stdby'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=TCP)(HOST=rghatge-in)(PORT=1521))'
StandbyArchiveLocation = 'D:\oracle\product\10.2.0\oradata\STDBY\arch'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = 'raj%S%t%r.arc'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'
Current status for "STDBY":
SUCCESS
DGMGRL> show configuration;
Configuration
Name: DGRAJ
Enabled: YES
Protection Mode: MaxAvailability
Fast-Start Failover: DISABLED <<<< FAST_START Failover is not enabled yet.
Databases:
raj - Primary database
stdby - Physical standby database
Current status for "DGRAJ":
SUCCESS
DGMGRL> enable fast_start failover; >>>> Enabling FAST_START Failover.
Enabled.
=== EXTRACRS FROM BROKER LOG WHEN FAST-START FAILOVER WAS ENABLED ===
<< Drcraj.log >>
DG 2006-02-17-10:05:53 0 2 0 DMON: FSFO storing state flags=0x103, version=5, obid=0xfd89c4cf (4253664463), threshold=120
DG 2006-02-17-10:05:53 0 2 582629787 DMON: Fast-Start Failover (FSFO) has been enabled between:
DG 2006-02-17-10:05:53 0 2 582629787 Primary = "RAJ"
DG 2006-02-17-10:05:53 0 2 582629787 Standby = "STDBY"
DG 2006-02-17-10:05:53 0 2 582629787 DMON: EDIT_DRC: success
<< Drcstdby.log >>
DG 2006-02-17-10:05:52 0 2 0 drcx: FSFO storing state flags=0x101, version=4, obid=0x54f8108b (1425543307), threshold=120
DG 2006-02-17-10:05:52 0 2 0 drcx: FSFO storing state flags=0x101, version=4, obid=0xfd89c4cf (4253664463), threshold=120
DG 2006-02-17-10:05:53 0 2 0 drcx: FSFO storing state flags=0x103, version=5, obid=0xfd89c4cf (4253664463), threshold=120
DG 2006-02-17-10:05:54 0 2 0 DRCX: Start receiving metadata file: D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DRRAJ2.DAT
DG 2006-02-17-10:05:54 0 2 0 DRCX: Receiving block #1, 86 blocks.
DG 2006-02-17-10:05:54 0 2 0 DRCX: End receiving metadata file: opcode EDIT_DRC
DG 2006-02-17-10:05:54 0 2 582629787 DMON: chief lock convert for resync
DGMGRL> show configuration verbose;
Configuration
Name: DGRAJ
Enabled: YES
Protection Mode: MaxAvailability
Fast-Start Failover: ENABLED <<<<< FAST-START Failover Enabled.
Databases:
RAJ - Primary database
STDBY - Physical standby database
- Fast-Start Failover target
Fast-Start Failover
Threshold: 30 seconds <<< Default Threshold value
Observer: rghatge-in
Current status for "DGRAJ":
SUCCESS
DGMGRL> edit configuration set property FastStartFailoverThreshold=120;
Property "faststartfailoverthreshold" updated <<< Changing default value to 120 secs.
DGMGRL> show configuration verbose;
Configuration
Name: DGRAJ
Enabled: YES
Protection Mode: MaxAvailability
Fast-Start Failover: ENABLED
Databases:
raj - Primary database
stdby - Physical standby database
- Fast-Start Failover target
Fast-Start Failover <<<< FAST_START Failover details
Threshold: 120 seconds <<<< New Threshold Value.
Observer: (none)
Current status for "DGRAJ":
Warning: ORA-16608: one or more databases have warnings <<< Warning because Observer is not started.
DGMGRL> show database verbose 'raj';
Database
Name: raj
Role: PRIMARY
Enabled: YES
Intended State: ONLINE
Instance(s):
raj
Properties:
InitialConnectIdentifier = 'raj'
LogXptMode = 'SYNC'
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 = '2'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = ''
LogFileNameConvert = ''
FastStartFailoverTarget = 'stdby'
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'rghatge-in'
SidName = 'raj'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=tcp)(HOST=rghatge-in)(PORT=1521))'
StandbyArchiveLocation = 'D:\oracle\product\10.2.0\admin\RAJ\arch'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = 'raj%S%t%r.arc'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'
Current status for "raj":
Warning: ORA-16819: Fast-Start Failover observer not started <<<<<<< Warning is clear.
DGMGRL> show database verbose 'stdby';
Database
Name: stdby
Role: PHYSICAL STANDBY
Enabled: YES
Intended State: ONLINE
Instance(s):
stdby
Properties:
InitialConnectIdentifier = 'stdby'
LogXptMode = 'SYNC' <<<<<
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 = '2'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = 'D:\oracle\product\10.2.0\oradata\RAJ, D:\oracle\product\10.2.0\oradata\STDBY\data'
LogFileNameConvert = 'D:\oracle\product\10.2.0\oradata\RAJ, D:\oracle\product\10.2.0\oradata\STDBY\data'
FastStartFailoverTarget = 'raj'
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'rghatge-in'
SidName = 'stdby'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=tcp)(HOST=rghatge-in)(PORT=1521))'
StandbyArchiveLocation = 'D:\oracle\product\10.2.0\oradata\STDBY\arch'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = 'raj%S%t%r.arc'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'
Current status for "stdby":
Warning: ORA-16819: Fast-Start Failover observer not started
>>>> The above warning is because the Observer process is not started <<<<
=== STARTING OBSERVER ====
The observer is integrated in the DGMGRL client-side component and should run on a
different computer from the primary or standby databases.
It monitors the DG Broker environment and initiates the failover on
detecting problem with Primary.
To start the observer, only the primary database must be running; it is not necessary
for the target standby database to be running.
DGMGRL> connect sys/sys123@RAJ
Connected.
DGMGRL> start observer
Observer started <<<< Observer started.
The Observer is continous foreground process so you need to stop it from another session.
The observer persistently maintains information about the fast-start failover
configuration in a binary file created in the working directory where you started the observer.
By default, the observer creates this file when it is started and names the file fsfo.dat.
This file contains connect descriptors to both the primary and the target standby databases.
Fsfo.dat = Observer Configuration file created in home directory from where the DGMGRL is invoked.
"Observer" status can also be checked from sqlplus using new columns
introduced in 10GR2 for v$database.
== RAJ (Primary database) ==
SQL> select fs_failover_observer_present,fs_failover_observer_host,fs_failover_threshold from v$database;
FS_F FS_FAILOVER_OBSERVER_HOST FS_FAILOVER_THRESHOLD
---- ------------------------- ---------------------
YES rghatge-in 120
=== STDBY (Standby database) ===
SQL> select fs_failover_observer_present,fs_failover_observer_host,fs_failover_threshold from v$database;
FS_F FS_FAILOVER_OBSERVER_HOST FS_FAILOVER_THRESHOLD
---- ------------------------- ---------------------
YES rghatge-in 120
=== Broker Configuration status after the Observer Started ====
DGMGRL> connect sys/sys123@RAJ
Connected.
DGMGRL> show configuration verbose;
Configuration
Name: DGRAJ
Enabled: YES
Protection Mode: MaxAvailability
Fast-Start Failover: ENABLED <---- Fast Start Failover Enabled.
Databases:
raj - Primary database
stdby - Physical standby database
- Fast-Start Failover target
Fast-Start Failover
Threshold: 120 seconds <---- Threshold for Failover
Observer: rghatge-in <---- Host on which Observer is running.
Current status for "DGRAJ":
SUCCESS
DGMGRL> show database verbose 'raj';
Database
Name: raj
Role: PRIMARY
Enabled: YES
Intended State: ONLINE
Instance(s):
raj
Properties:
InitialConnectIdentifier = 'raj'
LogXptMode = 'SYNC'
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 = '2'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = ''
LogFileNameConvert = ''
FastStartFailoverTarget = 'stdby' <<<<<< fast-Start Failover Target for Primary
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'rghatge-in'
SidName = 'raj'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=tcp)(HOST=rghatge-in)(PORT=1521))'
StandbyArchiveLocation = 'D:\oracle\product\10.2.0\admin\RAJ\arch
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = 'raj%S%t%r.arc'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'
Current status for "raj":
SUCCESS
DGMGRL> show database verbose 'stdby';
Database
Name: stdby
Role: PHYSICAL STANDBY
Enabled: YES
Intended State: ONLINE
Instance(s):
stdby
Properties:
InitialConnectIdentifier = 'stdby'
LogXptMode = 'SYNC'
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 = '2'
LogArchiveMinSucceedDest = '1'
FastStartFailoverTarget = 'raj' <<<<<< fast-Start Failover Target for STDBY
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'rghatge-in'
SidName = 'stdby'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=tcp)(HOST=rghatge-in)(PORT=1521))'
StandbyArchiveLocation = 'D:\oracle\product\10.2.0\oradata\STDBY\arch'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = 'raj%S%t%r.arc'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'
Current status for "stdby":
SUCCESS
Observer triggers Fast-Start Failover when one of the following conditions
is observed on primary database ==>
1) Instance Failure
2) Shutdown Abort
3) Offline Datafiles due to I/O error
4) Network disconnection
For simplicity of testing, "Shutdown Abort" was executed on Primary database
(RAJ) to initiate Fast-Start Failover.
<<>>>
<< Observer.log >>
14:48:43.12 Monday, February 20, 2006
Initiating fast-start failover to database "STDBY"...
Performing failover NOW, please wait...
Failover succeeded, new primary is "STDBY"
14:49:20.95 Monday, February 20, 2006
<< BROKER LOG EXTRACTS WHEN FAST-START FAILOVER TRIGERRED >>
Extracts from DG logs during Fast-Start Failover --
<>
<>
0 2 0 Foreground: FSFO storing state flags=0x23, version=4, obid=0x9a155a3e (2585090622), threshold=120
0 2 0 Database Resource[IAM=PHYSICAL]: SetState READ-WRITE-XPTON, phase TEAR-DOWN, External Cond GRACEFUL-FAIL-OVER-PHYS_STBY, Target Site Handle 0x02001000
0 2 0 Executing SQL [ALTER SYSTEM REGISTER]
0 2 0 SQL [ALTER SYSTEM REGISTER] Executed successfully
0 2 0 Executing SQL [ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE]
0 2 0 SQL [ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE] Executed successfully
0 2 0 Executing SQL [ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WAIT WITH SESSION SHUTDOWN]
0 2 0 SQL [ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WAIT WITH SESSION SHUTDOWN] Executed successfully
0 2 0 Database Resource SetState succeeded
Executing SQL [ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY]
Set log transport destination: SetState ONLINE, phase BUILD-UP, External Cond GRACEFUL-FAIL-OVER-PHYS_STBY
Executing SQL [ALTER DATABASE OPEN]
<< Drcraj.log>>
DG 2006-02-20-15:09:38 0 2 0 RSM Warning: SCN to flashback to is greater than DB SCN. Flashing back to DB SCN of 844202 instead
DG 2006-02-20-15:09:38 0 2 0 Executing SQL [FLASHBACK DATABASE TO BEFORE SCN 844202]
DG 2006-02-20-15:09:46 0 2 0 SQL [FLASHBACK DATABASE TO BEFORE SCN 844202] Executed successfully
DG 2006-02-20-15:09:46 0 2 0 Physical RSM: Reinstatement... Converting old primary control file to physical standby control file
DG 2006-02-20-15:09:46 0 2 0 Executing SQL [alter database convert to physical standby]
DG 2006-02-20-15:09:47 0 2 0 SQL [alter database convert to physical standby] Executed successfully
DG 2006-02-20-15:09:47 0 2 0 Executing SQL [ALTER DATABASE FLASHBACK OFF]
DG 2006-02-20-15:09:47 0 2 0 Foreground: FSFO storing state flags=0x41, version=6, obid=0x9a155a3e (2585090622), threshold=120
DG 2006-02-20-15:09:48 0 2 0 SQL [ALTER DATABASE FLASHBACK OFF] Executed successfully
DG 2006-02-20-15:09:48 0 2 0 Executing SQL [ALTER DATABASE FLASHBACK ON]
DG 2006-02-20-15:09:51 0 2 0 SQL [ALTER DATABASE FLASHBACK ON] Executed successfully
DG 2006-02-20-15:09:51 0 2 582889523 Resource: RAJ (0x01013000) State: PHYSICAL-APPLY-ON
DG 2006-02-20-15:11:05 0 2 0 Executing SQL [ALTER DATABASE RECOVER MANAGED STANDBY DATABASE THROUGH ALL SWITCHOVER DISCONNECT USING CURRENT LOGFILE]
DG 2006-02-20-15:11:11 0 2 0 SQL [ALTER DATABASE RECOVER MANAGED STANDBY DATABASE THROUGH ALL SWITCHOVER DISCONNECT USING CURRENT LOGFILE] Executed successfully
DG 2006-02-20-15:11:11 0 2 0 INSV: All instances have replied for message
== After Fast-Start Failover completed ==
NEW PRIMARY ==>> STDBY
$sqlplus "sys/sys123@stdby as sysdba"
SQL> select open_mode,database_role from v$database;
OPEN_MODE DATABASE_ROLE
---------------- ----------------
READ WRITE PRIMARY <<<< Standby resumed Primary role.
SQL> select fs_failover_status from v$database;
FS_FAILOVER_STATUS
---------------------
REINSTATE REQUIRED >>>> Indicates original Primary RAJ is not yet re-instated as Standby.
DGMGRL> connect sys/sys123@RAJ
Connected.
Error:
ORA-01034: ORACLE not available <<< Primary database is not yet available.
DGMGRL> connect sys/sys123@stdby
Connected.
DGMGRL> show configuration verbose;
Configuration
Name: DGRAJ
Enabled: YES
Protection Mode: MaxAvailability
Fast-Start Failover: ENABLED
Databases:
RAJ - Physical standby database (disabled) <<<< original Primary is yet disabled.
- Fast-Start Failover target
STDBY - Primary database
Fast-Start Failover
Threshold: 120 seconds
Observer: rghatge-in
Current status for "DGRAJ":
Warning: ORA-16608: one or more databases have warnings
DGMGRL> show database verbose 'STDBY';
Database
Name: STDBY
Role: PRIMARY
Enabled: YES
Intended State: ONLINE
Instance(s):
stdby
Properties:
InitialConnectIdentifier = 'stdby'
LogXptMode = 'SYNC'
Current status for "STDBY":
Warning: ORA-16817: unsynchronized Fast-Start Failover configuration >>>>>>
DGMGRL> show database verbose 'RAJ';
Database
Name: RAJ
Role: PHYSICAL STANDBY
Enabled: NO
Intended State: ONLINE
Instance(s):
raj
Properties:
InitialConnectIdentifier = 'raj'
LogXptMode = 'SYNC'
Current status for "RAJ":
Error: ORA-16661: the standby database needs to be reinstated >>>>>>
=== At this stage, the original Primary database (RAJ) is mounted ===
$sqlplus "sys/sys123@RAJ as sysdba"
SQL> select fs_failover_status from v$database;
FS_FAILOVER_STATUS
---------------------
UNSYNCHRONIZED >>>>>
The Observer automatically re-instates the original Primary (RAJ)
as current Standby from new Primary (STDBY) using Flashback Logs.
== AFTER RE-INSTATING Original Primary Database (RAJ) ===
DGMGRL> show configuration verbose;
Configuration
Name: DGRAJ
Enabled: YES
Protection Mode: MaxAvailability
Fast-Start Failover: ENABLED
Databases:
RAJ - Physical standby database >>>>> Current Standby database
- Fast-Start Failover target
STDBY - Primary database <<<<<< Current Primary database
Fast-Start Failover
Threshold: 120 seconds
Observer: rghatge-in
Current status for "DGRAJ":
SUCCESS
sqlplus "sys/sys123@RAJ as sysdba"
SQL> select fs_failover_status from v$database;
FS_FAILOVER_STATUS
---------------------
SYNCHRONIZED >>>>>
sqlplus "sys/sys123@stdby as sysdba"
SQL> select fs_failover_status from v$database;
FS_FAILOVER_STATUS
---------------------
SYNCHRONIZED >>>>>
REFERENCES ==
Oracle® Data Guard
Broker
10g Release 2 (10.2)
.

No comments:

Post a Comment