IMPLEMENTING FAST-START FAILOVER IN 10GR2 DATAGUARD BROKER ENVIRONMENT [ID 359555.1]

Posted tianlesoftware

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IMPLEMENTING FAST-START FAILOVER IN 10GR2 DATAGUARD BROKER ENVIRONMENT [ID 359555.1]相关的知识,希望对你有一定的参考价值。


IMPLEMENTING FAST-START FAILOVER IN 10GR2 DATAGUARD BROKER ENVIRONMENT [ID 359555.1]




 

Modified 20-OCT-2010     Type BULLETIN     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=<integer>[<k><M><G>];

Alter system set db_recovery_file_dest=<path_to_flashabck_logs>;

 

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 WHEN INITIATING 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 --

 

 

<<Drcstdby.log >>

 

 

<<Drcstdby.log >>

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)

 

Related






 

 

 

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


以上是关于IMPLEMENTING FAST-START FAILOVER IN 10GR2 DATAGUARD BROKER ENVIRONMENT [ID 359555.1]的主要内容,如果未能解决你的问题,请参考以下文章

Implementing Voxel Cone Tracing

Tutorial : Implementing Django Formsets

如何实现多个接口Implementing Multiple Interface

python py__implementing_abstract_classes.py

Implementing Software Timers - Don Libes

RPC《Implementing Remote Procedure Calls》译文