当前位置: 首页 > news >正文

故障分析:11GR DATAGRUAD环境BROKER配置Fast-Start Failover

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

故障分析:11GR DATAGRUAD环境BROKER配置Fast-Start Failover

FAST-START failover 就是在当主数据库出现故障时,能快速与可靠的把standby切换成主数据库,在整个过程中不需要人来干预。fast-start failover只能通过dgmgrl与Enterprise Managerg来配置。

只有maximum availability mode or maximum performance mode才能启用fast-start failover模式。在maximum availability模式下面,在切换时可以保证无数据丢失,在maximum performance mode下面,会有数据丢失,丢失多少数据由 FastStartFailoverLagLimit这个参数来配置。

只要observer进程启动过,我们就不需要人为的干预。当observer与指定的备数据库与主数据库失去连接的时间超过FastStartFailoverThreshold后,observer就会启动fast-start failover 到备数据库。如果配置了FastStartFailoverPmyShutdown为true,此时原来的主数据库将会自动的shutdown。如果配置FastStartFailoverAutoReinstate为true,当failover完成后,启动数据库时,会自动的执行Reinstate database,把原来的主数据库变成备库,并与新主库进行同步。

fast-start failover包含3个过程,如下图:

测试开始:

环境:OS REDHAT 5.6 X86_64 ,DB 11.2.0.2

1,DG环境的搭建。

见11GR2 搭建活动的物理DG/DATAGRUAD (READ ONLY模式)

2,broker的配置

3,配置保护模式与日志传递方式

之前已经说了FAST-START FAILOVER只 maximum availability mode与maximum performance mode

下面我们看一下每一种保护模式对应的日志传递方式。

3.1修改保护模式:

[oracle@test admin]$ dgmgrl 
DGMGRL for Linux: Version 11.2.0.2.0 - 64bit Production Copyright (c) 2000, 2009, Oracle. All rights reserved. Welcome to DGMGRL, type "help" for information. 
DGMGRL> connect sys/oracle@htz  
Connected. 
#通过help查看命令的帮忙。 
DGMGRL> help edit 
Edits a configuration, database, or instance 
Syntax: EDIT CONFIGURATION SET PROTECTION MODE AS  {MaxProtection|MaxAvailability|MaxPerformance}; EDIT CONFIGURATION SET PROPERTY <property name> = <value>; EDIT DATABASE <database name> SET PROPERTY <property name> = <value>; EDIT DATABASE <database name> RENAME TO <new database name>; EDIT DATABASE <database name> SET STATE = <state> [WITH APPLY INSTANCE = <instance name>]; EDIT INSTANCE <instance name> [ON DATABASE <database name>] SET AUTO PFILE [ = {<initialization file path>|OFF} ]; EDIT INSTANCE <instance name> [ON DATABASE <database name>] SET PROPERTY <property name> = <value>; EDIT INSTANCE * ON DATABASE <database name> SET PROPERTY <property name> = <value>; DGMGRL> edit configuration set protection mode as maxavilability; 
Syntax error before or at "maxavilability" 
DGMGRL> show configuration; Configuration - htz 

最大可用的保护模式

  Protection Mode: MaxAvailability Databases: htzb - Primary database htz  - Physical standby database 
Fast-Start Failover: DISABLED 
Configuration Status: 
SUCCESS 

3.2 修改日志传递方式

DGMGRL> edit database htz set property logxptmode=sync; 
Property "logxptmode" updated 
DGMGRL> edit database htzb set property logxptmode=sync; 
Property "logxptmode" updated 
DGMGRL> show database htz logxptmode LogXptMode = 'sync' 
DGMGRL> show database htzb logxptmode LogXptMode = 'sync 

4 配置数据库的flashback

4.1 主库上面

SQL> select open_mode,database_role,log_mode,flashback_on from v$database; OPEN_MODE            DATABASE_ROLE    LOG_MODE     FLASHBACK_ON 
-------------------- ---------------- ------------ ------------------ 
READ WRITE           PRIMARY          ARCHIVELOG   NO 

配置flashback

SQL> alter database flashback on; Database altered. SQL> select open_mode,database_role,log_mode,flashback_on from v$database; OPEN_MODE            DATABASE_ROLE    LOG_MODE     FLASHBACK_ON 
-------------------- ---------------- ------------ ------------------ 
READ WRITE           PRIMARY          ARCHIVELOG   YES 

flashback的配置目录与大小

SQL> show parameter recovery NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
db_recovery_file_dest                string      /u01/app/oracle/fast_recovery_ area 
db_recovery_file_dest_size           big integer 4032M 

4.2 备库上面

SQL> select open_mode,database_role,log_mode,flashback_on from v$database; OPEN_MODE            DATABASE_ROLE    LOG_MODE     FLASHBACK_ON 
-------------------- ---------------- ------------ ------------------ 
READ ONLY WITH APPLY PHYSICAL STANDBY ARCHIVELOG   NO SQL> recover managed standby database cancel; 
Media recovery complete. 
SQL> alter database flashback on; Database altered. SQL> recover managed standby database using current logfile disconnect; 
Media recovery complete. 
SQL> select open_mode,database_role,log_mode,flashback_on from v$database; OPEN_MODE            DATABASE_ROLE    LOG_MODE     FLASHBACK_ON 
-------------------- ---------------- ------------ ------------------ 
READ ONLY WITH APPLY PHYSICAL STANDBY ARCHIVELOG   YES 

5 配置observer服务器

5.1 配置tnsnames.ora文件。

[oracle@test admin]$ cat tnsnames.ora 
HTZB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.31)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = dedicate) (SERVICE_NAME = htzb) ) ) HTZ = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.30)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = dedicate) (SERVICE_NAME = htz) ) ) 

5.2 启动observer进程

[oracle@test admin]$ dgmgrl sys/oracle@htz "start observer" 
DGMGRL for Linux: Version 11.2.0.2.0 - 64bit Production Copyright (c) 2000, 2009, Oracle. All rights reserved. Welcome to DGMGRL, type "help" for information. 
Connected. 
Observer started 

6 配置fast-start failover

DGMGRL> edit database htz set property FastStartFailoverTarget=htzb; 
Property "faststartfailovertarget" updated 
DGMGRL> edit database htzb set property  FastStartFailoverTarget=htz; 
Property "faststartfailovertarget" updated 
于fst-start failove相关的其它几个参数:FastStartFailoverPmyShutdownFastStartFailoverLagLimitFastStartFailoverAutoReinstateObserverConnectIdentifier

这里我们都使用默认值;我们来看一下这些值的默认值;

DGMGRL> show configuration verbose; Configuration - htz Protection Mode: MaxAvailability Databases: htzb - Primary database htz  - (*) Physical standby database (*) Fast-Start Failover target Properties: FastStartFailoverThreshold      = '30' OperationTimeout                = '30' FastStartFailoverLagLimit       = '30' CommunicationTimeout            = '180' FastStartFailoverAutoReinstate  = 'TRUE' FastStartFailoverPmyShutdown    = 'TRUE' BystandersFollowRoleChange      = 'ALL' Fast-Start Failover: DISABLEThreshold:        30 seconds Target:           htz Observer:         test Lag Limit:        30 seconds (not in use) Shutdown Primary: TRUE Auto-reinstate:   TRUE Configuration Status: 
SUCCESS 

7 启用fast-start failover

DGMGRL> show configuration Configuration - htz Protection Mode: MaxAvailability Databases: htzb - Primary database htz  - Physical standby database Fast-Start Failover: DISABLED Configuration Status: 
SUCCESS 
DGMGRL> enable fast_start failover 
Enabled. 
DGMGRL>  

8.测试FAST-START FAILOVER是否生效

DGMGRL> show configuration Configuration - htz Protection Mode: MaxAvailability Databases: htzb - Primary database htz  - (*) Physical standby database 
Fast-Start Failover: ENABLED 
Configuration Status: 
SUCCESS 

原主库直接shutdown abort;

SQL> shutdown abort; 
ORACLE instance shut down. 
SQL>  

observer进程的日志

19:03:03.93  Friday, September 07, 2012
Initiating Fast-Start Failover to database "htz"...
Performing failover NOW, please wait...
Failover succeeded, new primary is "htz"
19:03:13.24  Friday, September 07, 2012

提示已经把主切换到htz

在htz上面查看一下

SQL> select open_mode ,database_role from v$database; OPEN_MODE            DATABASE_ROLE 
-------------------- ---------------- 
READ WRITE           PRIMARY 

已经成功
手动启动原主库

DGMGRL> show configuration;Configuration - htzProtection Mode: MaxAvailabilityDatabases:htz  - Primary databaseWarning: ORA-16817: unsynchronized fast-start failover configurationhtzb - (*) Physical standby database (disabled)ORA-16661: the standby database needs to be reinstatedFast-Start Failover: ENABLEDConfiguration Status:
WARNINGDGMGRL> connect sys/oracle@htzb
Connected.
DGMGRL> startup
ORACLE instance started.
Database mounted.
ORA-16649: possible failover to another database prevents this database from being opened

过一分会后我们再查看一下状态

DGMGRL> connect sys/oracle@htz
Connected.
DGMGRL> show configurationConfiguration - htzProtection Mode: MaxAvailabilityDatabases:htz  - Primary databasehtzb - (*) Physical standby databaseFast-Start Failover: ENABLEDConfiguration Status:
SUCCESS

查看状态,一切正常。

------------------作者介绍-----------------------
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

http://www.wxhsa.cn/company.asp?id=370

相关文章:

  • Cesium Shader内置变量 czm_*
  • IDA Pro 9.2 发布 - 强大的反汇编程序、反编译器和多功能调试器
  • 传统
  • Java 那些基础又关键的事儿
  • 2025-09-10
  • Codeforces Round 1047 (Div. 3)
  • sentinel-1.8.0 安装
  • 数据结构与算法-27.树-并查集
  • wpf XAML设计器在加载用户控件的时候,提示null引用等直接执行了用户控件里构造函数代码的问题
  • 设计模式-策略
  • Linux中怎么调整系统inode数量?
  • DARPA AI网络挑战赛技术框架全解析:自动化漏洞挖掘与修复系统构建
  • 数据库基本查询语句
  • 【项目实战】基于WS63的鸿蒙星闪红外遥控车(循迹、超声波避障、远程控制、星闪/红外遥控)有教程代码
  • macbook pro怎么安装windows系统
  • XSS与CSRF的联系与区别
  • 异或
  • apche 2.4 开启mod_cache_disk和mod_deflate后,磁盘上缓存的是压缩后的文件
  • 复现tensor2tensor代码时遇到的问题和相关链接
  • macbook pro如何安装windows系统
  • 【ACM出版】第四届公共管理、数字经济与互联网技术国际学术会议(ICPDI 2025)
  • 如何在 Linux 中关闭 Swap(虚拟内存)
  • 再见 Cursor,Qoder 真香!这波要改写 AI 编程格局
  • 三.ubuntu22.04 使用C++部署PyTorch模型
  • alertmanager配置集群模式
  • 《Python数据结构与算法分析》代码
  • AI 是否绑架了云原生创新?
  • Windows 7 局域网打印机共享设置
  • SPFA求负环
  • 磁盘存储器