`

Data Guard Broker系列之六:Fast-Start Failover

 
阅读更多

Fast-Start Failover

基本概念

Fast-Start Failover是建立在broker基础上的一个快速故障转换的机制,通过fast-start failover可以自动检测primary的故障,然后自动的failover到预先指定的standby上面,这样可以最大化的减少故障时间,提高数 据库的可用性。


结构

Fast-Start Failover是在broker的基础上再增加了一个单独的observer,用来监控primary和standby数据库的状态,一旦primary不可用,observer就会自动的切换到指定的standby上面。


准备工作

  1. 确保broker配置为运行在Max Availability模式。
  2. 在primary和standby机器上都启用flashback database,这个在reinstate failed的数据库的时候要用。
  3. 在运行observer的机器上安装DGMGRL工具,用于启动observer。
  4. 配置tnsname.ora文件,保证observer能正常的连接到primary和standby数据库上面。

配置及启用Fast-Start Failover

在满足上面的条件之后在经过下面少许的配置就可以启用Fast-Start Failover了。

    1. 配置每个数据库Failover的目标,这一步是决定当数据库出问题之后会自动failover到那个standby。
-- 配置torcla failover的目标
edit database torcla set property 'FastStartFailoverTarget'='torclb';
-- 配置torclb failover的目标
edit database torclb set property'FastStartFailoverTarget'='torcla';
    1. 设定FastStartFailoverThreshold值,这个设置是决定了primary坏了多长时间之后会执行自动的failover操作,这里我们设置的是30s。
EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold = 30;
    1. 启用Fast-Start Failover。
DGMGRL> ENABLE FAST_START FAILOVER;
Enabled.
    1. 启动observer。
oracle@orainst[torcla]:~
$
dgmgrl sys/12345@torcla.mycompany
DGMGRLforLinux: Version10.2.0.2.0 - Production
 
Copyright(c)2000, 2005, Oracle. All rights reserved.
 
Welcome to DGMGRL, type"help" for information.
Connected.
DGMGRL> start observer;
observer started
    1. 现在可以看看我们环境的状态了。
DGMGRL> show configuration verbose
 
Configuration
 
Name:                FSF
 
Enabled:             YES
 
ProtectionMode:     MaxAvailability
 
Fast-Start Failover: ENABLED
 
Databases:
    
torcla - Primary database
    
torclb - Physical standby database
          -
Fast-Start Failover target
 
Fast-Start Failover
 
Threshold: 30 seconds
 
observerorainst.desktop.mycompany.com
 
Currentstatusfor"FSF":
SUCCESS

Fast-Start Failover的管理

Fast-Start Failover的工作过程

在启用了fast-start failover和observer之后,broker会来监控primary和standby数据库的状态,一旦primary数据库出现故障,observer会根据一定的程序来执行自动的failover操作。

  1. 当发生下列情形是observer会尝试启动failover操作
    • observer和primary数据库之间连接出现故障时
    • 当primary数据库故障或者是RAC环境中所有instance都故障时
    • 执行SHUTDOWN ABORT之后,特别注意正常的SHUTDOWN操作(NORMAL,IMMEDIATE,TRANSACTIONAL)不会引发failover操作
    • 数据库文件OFFLINE

      除了最后一个数据库文件OFFLINE的情形,其他的情况下observer都会尝试在FastStartFailoverThreshold制定的时间之内重新连接数据库,如果还是无法连接之后才会执行自动failover操作。

  2. 在FastStartFailoverThreshold指定的时间内重新连接数据库,在RAC环境中会尝试连接其他的instance。
  3. 尝试时间结束后,observer将确定目标standby可用。下面的这些情形会导致failover失败
    • fast-start failover没有启用
    • observer无法连接到standby数据库
    • standby与observer中记录的状态不一致
    • observer在primary fail的时候正好没有运行,再次启动之后只能找到一个standby
    • 目标standby没有和primary完成同步
    • 目标standby是逻辑standby时,在V$DATABASE中显示LOADING DICTIONARY时
    • 目标standby还能和primary正常通讯时
    • 在V$DATABASE的列FS_FAILOVER_STATUS中显示了其他无法进行failover操作时
    • 有手工failover正在进行时
  4. 执行failover操作,使目标standby变成新的primary。
  5. reinstate之前失败的primary

下面来个实际的failover例子.

先看看当前的primary,确定是torcla

DGMGRL> show configuration
 
Configuration
 
Name:                FSF
 
Enabled:             YES
 
ProtectionMode:     MaxAvailability
 
Fast-StartFailover: ENABLED
 
Databases:
    
torcla - Primary database
    
torclb - Physical standby database
          -
Fast-Start Failovertarget
 
Current status for "FSF":
SUCCESS

然后登录到torcla上,执行一个SHUTDOWN ABORT命令

SYS@torcla> shutdown abort
ORACLE instance shutdown.

然后在observer里面我们可以看到自动failover了

DGMGRL> start observer;
observer started
 
06:08:24.47  Tuesday, September01, 2009
Initiating fast-start failover to database "torclb"...
Performing failover NOW, pleasewait...
Failover succeeded, new primary is "torclb"
06:08:33.49  Tuesday, September 01, 2009

再看此时的状态,primary已经换成torclb了,不过此时torcla是不可用的

DGMGRL> show configuration
Configuration
 
Name:                FSF
 
Enabled:             YES
 
ProtectionMode:     MaxAvailability
 
Fast-Start Failover: ENABLED
 
Databases:
    
torcla - Physical standby database(disabled)
          -
Fast-Start Failovertarget
    
torclb - Primary database

Current status for "FSF":
Warning: ORA-16608: one or more databases have warnings

再将torcla启动到mount,接着就能看到observer会自动的reinstate torcla

DGMGRL> start observer;
observer started
 
06:11:13.45  Tuesday, September 01, 2009
Initiating reinstatement for database "torcla"...
Reinstating database "torcla", please wait...
Operation requires shutdown of instance "torcla" on database "torcla"
Shutting down instance "torcla"...
ORA-01109: database not open
 
Database dismounted.
ORACLE instance shutdown.
Operation requires startup of instance "torcla" on database "torcla"
Starting instance "torcla"...
ORACLE instance started.
Database mounted.
Continuing to reinstate database "torcla" ...
Reinstatement of database "torcla" succeeded
06:12:20.07  Tuesday, September01, 2009

查看Fast-Start Failover状态

通过SHOW CONFIGURATION VERBOSE命令可以查看Fast-Start Failover的基本运行状态

DGMGRL> SHOW CONFIGURATION VERBOSE
 
Configuration
 
Name:                FSF
 
Enabled:             YES
 
ProtectionMode:     MaxAvailability
 
Fast-Start Failover: ENABLED
 
Databases:
    
torcla - Primary database
    
torclb - Physical standby database
          -
Fast-Start Failover target
 
Fast-Start Failover
 
Threshold: 30 seconds
 
observerorainst.desktop.mycompany.com
 
Currentstatusfor"FSF":
SUCCESS

要查看Fast-Start Failover更多的信息就要查看V$DATABASE视图中的相关的列了。

FS_FAILOVER_STATUS
这个列显示了Fast-Start Failover的状态,通过查看这个列我们可以知道数据库时处于什么状态之中,详细的状态信息在这里
FS_FAILOVER_CURRENT_TARGET
当前数据库的failover的目标数据库
FS_FAILOVER_THRESHOLD
执行自动failover的时间超时值
FS_FAILOVER_observer_PRESENT
是否启动了observer,通过查看这个列我们可以知道是否有observer在监控着这个数据库
FS_FAILOVER_observer_HOST
监控此数据库的observer所在的位置
SYS@torclb> col FS_FAILOVER_STATUS for a25
SYS@torclb> col FS_FAILOVER_CURRENT_TARGET for a10
SYS@torclb> col FS_FAILOVER_THRESHOLD for 999
SYS@torclb> col FS_FAILOVER_observer_PRESENT for a4
SYS@torclb> col FS_FAILOVER_observer_HOST for a30
SYS@torclb> select FS_FAILOVER_STATUS,FS_FAILOVER_CURRENT_TARGET,
FS_FAILOVER_THRESHOLD,FS_FAILOVER_observer_PRESENT,
FS_FAILOVER_observer_HOST fromv$database;
 
FS_FAILOVER_STATUS        FS_FAILOVER_CURRENT_TARGET FS_FAILOVER_THRESHOLD  FS_FAILOVER_observer_PRESENT FS_FAILOVER_observer_HOST
-----------------------
-- ---------- --------------------- ---- ------------------------------
SYNCHRONIZED              torclb                         30 YES  orainst.desktop.mycompany.com

禁用Fast-Start Failover

禁用Fast-Start Failover的命令为

DISABLE FAST_START FAILOVER  [FORCE]

加上FORCE之后将会强行在执行DISABLE命令的数据库以及这个数据库可连通的其他数据库上面上禁用Fast-Start Failover,而其他无法连接上的数据库将保持原来的状态;不加FROCE时如果有那个数据库暂时无法连接的话那么DISABLE操作将会失败。所以 在当primary和standby数据库的网络连接良好的情况下要使用不带FORCE的命令。

通常需要使用FORCE的情形

  • 当因为网络问题造成primary无法和observer及那些已完成同步的standby通讯时,primary将会停止工作,如果 primary的恢复时间可期,且想要primary继续工作的话就需要使用FORCE选项暂时在primary上禁用fast-start failover,不过之前一定要检查看数据库有没有自动failover。
  • 当primary和standby没有完成同步的时候想要手工的执行failover的命令,在fast-start failover启用的时候是无法执行的,这时候也需要使用FORCE选项强行禁用fast-start failover。
  • 在fast-start failover失败之后还想将数据库failover到其他可用的standby上时也需要先使用FORCE强制禁用fast-start failover然后在手工进行failover操作。
  • 如果确定有问题的primary可以很快的恢复,此时不想让fast-start failover自动failover,也可以使用FORCE选项强行禁用fast-start failover。

Observer管理

启用observer的操作很简单,使用DGMGRL连接到数据库,然后执行START OBSERVER命令就行了。

要启动observer的话必须使用SYS连接到DGMGRL,同一时间只能启动一个observer,如果尝试启动多个observer将会收到这样的消息

ORA-16647: could not start more than one observer

要停止一个observer的话只需要用DGMGRL连接到数据库,然后执行STOP OBSERVER命令就行了。

要确定一个数据库是否在observer的监视中必须要去查看V$DATABASE视图中的 FS_FAILOVER_OBSERVER_PRESENT和FS_FAILOVER_OBSERVER_HOST。只有当 FS_FAILOVER_OBSERVER_PRESENT为YES的时候才说明这个数据库时处于observer的监控之中。

同时数据库是否有observer监视这个信息我们也可以从DGMGRL中查看到

DGMGRL> show database torcla statusreport
STATUSREPORT
      
INSTANCE_NAME   SEVERITY ERROR_TEXT
                   *     
ERRORORA-16820: Fast-Start Failover observer is no longer observing this database

在启动observer的时候,observer会自动的在当前目录中生成一个默认名字为fsfo.dat的二进制文件,这个文件里面保存了 fast-start failover的配置信息,同时也包含了到primary和standby的连接方式。也可以在启动observer的时候使用FILE参数指定配置文 件的位置,命令如下

START OBSERVER [FILE=<observer configuration file>];

参考至:http://www.dbabeta.com/2009/learn-data-guard-broker_fast-start-failover.html

如有错误,欢迎指正

邮箱:czmcj@163.com

分享到:
评论

相关推荐

    【DATAGUARD】物理dg配置客户端无缝切换 (八.2)--Fast-Start Failover 的配置.pdf

    2. **定义Failover策略**:在Data Guard Broker环境中,可以使用`ALTER DATABASE SET STANDBY DATABASE TO PRIMARY;`命令定义备用数据库的角色。FSFO的配置涉及设置`FAST_START_FAIOVER`参数,以及定义故障阈值和...

    【DATAGUARD】物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置

    Data Guard Broker 提供了一系列强大的命令,可以轻松地管理 Data Guard 环境中的数据库。例如: 1. **显示当前状态**: ```sql SHOW DATABASE; ``` 2. **执行切换操作**: ```sql SWITCHOVER DATABASE oradg11g...

    Oracle 10G Data Guard 资料--全面详细,绝对值得学习!!!

    通过Fast-Start Failover (FSFO) 和 Maximum Performance (MAX_PERF) 模式,Data Guard可以根据业务需求调整redo日志传输的速度和方式。 2. **Physical Standby Databases**:物理备用数据库以主数据库完全相同的...

    DataGuard(DG)

    (八.1)物理dg配置客户端无缝切换--Data Guard Broker 的配置 (八.2)物理dg配置客户端无缝切换--Fast-Start Failover 的配置 (八.3)物理dg配置客户端无缝切换 --客户端TAF 配置 (八.4)物理dg配置客户端无缝切换 --ora...

    【DATAGUARD】物理dg配置客户端无缝切换 (八.3)--客户端TAF 配置.pdf

    Fast-Start Failover是Data Guard中的一项特性,它可以在主库发生故障时快速将物理备库提升为主库。为了启用此特性,需要执行以下步骤: - **启用Fast-Start Failover**:在主库上设置`FAILOVER_MODE`参数为`MANUAL...

    Data Guard10gR2中文翻译

    4. **Fast Start Failover (FSFO)**: - 自动故障切换机制,当主数据库不可用时,快速将流量切换到备用数据库。 - **Monitor Process**:监控主数据库状态,检测故障并触发FSFO。 - **FSFO目标数据库**:指定备用...

    Windows+Server+2008环境下的配置Oracle+11gR2+Data+Guard配置过程

    - 考虑使用Fast-Start Failover(FSFO)以减少故障响应时间。 10. **安全与维护**: - 定期更新数据库和操作系统补丁,确保安全。 - 监控和记录Data Guard活动,以便于故障排查和审计。 通过遵循以上步骤,你...

    Oracle Data Guard概念和管理10g版本2

    - **Fast Start Failover**:自动检测主库故障并启动standby,降低RTO(恢复时间目标)。 - **Logical Standby Apply**:对redo日志进行解析和应用,支持在standby上进行查询和报表生成。 - **Transparent ...

    【DATAGUARD】物理dg配置客户端无缝切换 (八.4)--ora-16652 和 ora-16603错误

    - **启用 Fast-Start Failover**: 需要在Data Guard Broker中正确配置相关参数,以确保在发生故障时能够快速切换。 - **监控**: 必须对主库和物理备库的状态进行持续监控,以检测任何可能引发故障切换的异常情况。 -...

    dataguard broker配置参考

    在本文中,我们将深入探讨如何配置Data Guard Broker环境以及快速启动故障切换(Fast Start Failover, FSO)。 首先,Data Guard Broker允许管理员通过一个中心控制点来管理多个数据库实例,无论是主数据库还是备用...

    Crashes Happen - Downtime Won't with Data Guard

    - Fast-Start Failover(快速故障转移)选项 -启用Archivelog模式,以便能够重播redo日志 -合适的网络架构,确保主备之间的数据传输 -适当的存储和硬件资源,以支持备用数据库的运行 **实施步骤:** 1. **创建物理...

    Oracle Data Guard安装配置手册.docx

    - Fast-Start Failover(快速启动故障切换):自动将连接从故障的主数据库转移到备用数据库,减少停机时间。 - Logical Standby(逻辑备用数据库):可以进行查询和更新操作,支持复杂的数据转换和验证。 - Data ...

    Data Guard技术文档

    1. Fast-Start Failover:自动检测并执行故障转移,确保快速恢复服务。 2. Managed Recovery:自动化恢复过程,减少管理员干预。 3. Rolling Upgrades:在备用数据库上进行升级,验证无误后再应用于主数据库,降低...

    Oracle 12c 部署Data Guard,Switchover和Failover

    在此过程中,涉及到配置并启动Fast Start Failover(FSFO)功能,开启flashback db功能,以及进行故障转移的具体步骤,旨在最大限度地减少数据丢失和故障恢复时间。 Oracle 12c还引入了FarSyncInstance特性,这有助...

    oracle DG(搭建+swithover+failover(flashback恢复)+broker(fsfo)

    本文将详细介绍如何在Oracle 11g数据库环境中搭建Data Guard,并配置Data Guard Broker和Fast-Start Failover (FSFO),以实现自动化的故障转移。 #### Data Guard 环境搭建 ##### 设置归档模式 Data Guard 的核心...

    Data Guard10gR2 中文翻译

    Fast Start Failover是Data Guard的一项特性,它可以自动检测并处理主数据库的故障,立即启动standby数据库,最小化停机时间。结合Alert Log和Notification Services,可以实现快速响应和通知。 七、Golden Gate...

    oracle10gr2_data_guard.rar_data guard_oracle_oracle data guard

    1. Fast Start Failover(FSFO):自动检测主库故障并启动备库,实现快速恢复。 2. Active Data Guard:在不影响主库性能的情况下,允许在备库上执行查询操作,提供额外的分析和报告能力。 3. Managed Standby ...

    Oracle Data Guard在塔河数字林业中的应用与实现.pdf

    7. **增强的恢复能力**:通过Fast Start Failover和Automatic Workload Repository (AWR)报告,Data Guard可以在检测到问题时自动执行故障转移,进一步提高了系统的恢复速度。 在塔河数字林业系统中,Oracle Data ...

    Oracle_Data_Guard_概念和管理10g

    4. Fast-Start Failover:自动故障切换机制,当检测到主数据库不可用时,会迅速将服务切换到备用数据库。 5.保护模式(Protection Modes):包括Maximum Performance、Maximum Availability和Maximum Protection。...

    ORACLE 10G DATAGUARD实战步骤

    - 通过Fast Start Failover和Redo Apply Parallelism优化故障切换速度。 10. **安全与合规**: - 定期备份主库和备库,确保数据安全性。 - 遵守法规和公司政策,如定期审查Data Guard配置和日志审计。 以上是...

Global site tag (gtag.js) - Google Analytics