oracle11g dataguard完全手册3-failover &active dataguard(完)

在Oracle 11g Data Guard中实现Connect Time Failover & Transparent Application Failover(TAF) 背景介绍: 在switchover或failover时主库进行切换后,客户端获得自己重连主库的能力。 环境修改: 1.修改$ORACLE_HOME/network/admin/tnsnames.ora PRIOCM= (DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = o 阅读详情

      一般情况下执行failover都是主库已经game over。故障转移将备库转换为主库,但不把原主库(有故障,无法正常工作)切换为备库。当故障转移发生后,你必须重建主库,或者使用闪回数据库功能将主库回退到故障发生前,然后转换其为备库并启用日志应用。

执行failover有几个前提条件如下


   1.执行failover的前提
     (1)检查归档文件是否连续
  查询待转换 standby 数据库的 V$ARCHIVE_GAP 视图,确认归档文件是否连接:
  SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
  未选定行
  如果返回的有记录, 按照列出的记录号复制对应的归档文件到待转换的 standby 服务器。 这一步非常重
  要,必须确保所有已生成的归档文件均已存在于 standby 服务器,不然可能会数据不一致造成转换时报错。
  文件复制之后,通过下列命令将其加入数据字典:
  SQL>ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';

     (2)检查归档文件是否完整
  分别在 primary/standby 执行下列语句:
  SQL> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;
  该语句取得当前数据库各线程已归档文件最大序号,如果 primary 与 standby 最大序号不相同,必须将
  多出的序号对应的归档文件复制到待转换的 standby 服务器。 不过既然是 failover, 有可能 primary 数据库此
  时已经无法打开,甚至无法访问,那只好听天由命了,但是如果可以到mounted,则可以传输归档日志。
  所以应该在primary机器crashed之前做好准备。
  加入此时结果是:
  THREAD#          A
  ---------- ----------
    1         87
               从库最大为87,主库也执行,如果也是87则ok,如果不一致需要scp 然后执行register

    (3)如果当前备库是处于最大保护(maximum protection)模式,要进行故障转移,必须先修改为最大性能
     (maximum performance)模式。修改方法:
              SQL> alter database set standby database to maximize performance;

    2,。执行切换
      (1)在备库停止日志应用:
                 SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
      (2)结束应用任何日志:
                 SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
                     或者:
                 SQL> alter database recover managed standbydatabase finish force;
                 FORCE 关键字将会停止当前活动的 RFS 进程,以便立刻执行 failover。
      (3)转换备库为主库
                SQL> alter database commit to switchover to primary with session shutdown;
                SQL> alter database open;

  注意这个时候主库已经不在dataguard中了。

     3.使用闪回重建数据库
        (1)获得原备库转换为主库时的 SCN。查询现主库102:
                  SQL> SELECT to_char(STANDBY_BECAME_PRIMARY_SCN) from V$DATABASE;
        (2)在原主库101上执行:
                   SQL> SHUTDOWN IMMEDIATE;
            SQL> STARTUP MOUNT;
          SQL> FLASHBACK DATABASE TO SCN &standby_became_primary_scn;输入之前查询到的SCN号
    如果没有开始闪回日志,最后一条命令会报错 ORA-38726: Flashback database logging is not on.,
    无法进行闪回。你就需要重新从新主库复制数据,重建原主库为备库。
    如果命令成功执行,原主库101就可以使用新主库102的日志进行恢复。将原主库101转换成物理备库,并启动日志应用进程:
                 SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
                 SQL> SHUTDOWN IMMEDIATE;
                  SQL> STARTUP MOUNT;
                  SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
            
     4.客户端故障转移
        我很喜欢的一个功能是,当主备切换或故障转移发生后,客户端能够自动重连。在你的系统里,做下述实验,看结果如何。
        orcl 是主库,orcldg 是备库。客户端使用支持故障转移的 orcl_RW 服务名。
               首先,用 SYSTEM 用户和 orcl_RW 服务名在 SQL*Plus 里登录主库:
          SQL> connect system@orcl_rw
          SQL> select db_unique_name from v$database;

               查询应该返回主库名 orcl。然后做一次主备切换,在将备库转换为主库 
        alter database commit to switchover to primary with session shutdown; 这一步时,主备库均处于 MOUNT 状态。
        然后执行查询:
         SQL> select db_unique_name from v$database;

               这时查询应该挂住,这是因为客户端正在尝试寻找主库,但当前又没有可用的主库。然后继续完成主备切换。
                当主备切换完成后,客户端应该会重连并重新执行查询,查询完成后成功返回结果 orcldg,因为现在主库已经切换为 orcldg,
  不再是orcl。
  
        另一个很酷的测试方法是,执行一个执行时间非常长的查询,当查询结果返回,屏幕一直滚动时开始主备切换。
        你应该会看到屏幕暂停滚动一段时间,当切换完成后,又会继续滚动。

   5.活动数据卫士(active dataguard)
               活动数据卫士是 11g 的新功能,它允许你的物理备库在应用日志时处于只读打开状态。这明显是一个很有用的功能。
        能够允许主库有一个物理备库作为备份,并能在保持备库数据更新的同时读取备库,这是一个很好的功能。
        调整备库为“READ ONLY WITH APPLY”状态,这体现的便是Oracle 11g物理Active Data Guard功能中的“Active”真实含义。
        在实际工作中,这个功能非常好用,经常用于检查实时数据同步情况。

        (1)查看备库openmode
               sql>select open_mode from v$database;--MOUNTED
        (2)取消备库的自动恢复
                 sql>alter database recover managed standby database cancel;
                 sql>alter database open;
                 sql>select open_mode from v$database; --这时候为READ ONLY
        (3)read only下备库恢复
                 sql>alter database recover managed standby database using current logfile disconnect;
                 sql>select open_mode from v$database; --这时为READ ONLY WITH APPLY


        6.11g standby的一些变化:
           (1)standby数据库可以直接执行
               startup    --就是read only打开数据库
               startup mount  --就是mount standby数据库
   
          (2)read only的情况下可以执行managed recover standby命令。
              SQL>startup
              SQL>alter database recover managed standby database disconnect;

        7.关于备份的引申
          有了 Data Guard,你的 RMAN 备份在主库或者备库都可以执行。但既然你已经配置了物理备库,你应该减轻点主库的负载。
   基本上,能在主库执行的标准的备份命令或脚本,也能在备库执行,但也有几个值得注意地方。这些 Oracle 官方文档都有,
   我只提几个关键的事情:
                 你应该使用恢复目录(Recovery Catalog)。这是因为主库需要知道备库已经存在了哪些备份文件。你不需要在恢复目录中
   注册备库,恢复目录能认出它是备库。
                 你不能备份备库的控制文件,所以不要在主库关掉所有的备份,至少需要在主库备份控制文件和参数文件。
                 备份和恢复可以写一整篇文章,我只是讲下我是如何配置备份的,让你能从这里开始,修改并形成自己的策略。
   测试下,确认你能从你当前实现的备份设置中恢复。在运行备份前,你需要配置一些基本的东西。
  (1)确认开启控制文件和 spfile 自动备份:
     RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

  (2)根据你的需要设置备份文件保留策略:
     RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;

  (3)如果一个文件已经有备份,并且检查点 SCN 相同,就不备份:
     RMAN> CONFIGURE BACKUP OPTIMIZATION ON;

  (4)只在主库的归档日志已经在备库应用(或者配置为已经传输到备份)后才删除:
     RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;

  (5)允许 RMAN 在主备间重新同步:
    RMAN> CONFIGURE DB_UNIQUE_NAME P10AC CONNECT IDENTIFIER ‘JED’;
    RMAN> CONFIGURE DB_UNIQUE_NAME P11AC CONNECT IDENTIFIER 'JED2';

                在主库我仍然备份归档日志。首先,在主备库都备份归档提供了冗余。其次,当发生需要恢复的事件(比如数据文件下线等)后,
  我在主库已经有归档了。我需要删除过期的归档,以清理磁盘空间。
  在 Data Guard 环境下,不能使用标准的在单机删除归档的命令,两者有一点小区别。因为我们必须使用恢复目录,
  我创建了一个全局脚本(global script):
  create global script dg_primary_arch
  {
      backup archivelog all;
      delete noprompt archivelog all completed before 'sysdate-.5';
      delete noprompt backup of archivelog all completed before 'sysdate-2';
  }

               在备库我运行标准的全库和归档备份,并删除过期的备份集。在 Data Guard 环境下,将备份归档包含在备份全库的命令里,
        会经常导致报错 RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process。
        为避免此报错,你应该将备份归档放在单独的命令里。我还是创建一个全局脚本:
  create global script dg_standby_full
  {
      backup database plus archivelog;
      delete noprompt archivelog all completed before 'sysdate-1';
      delete noprompt obsolete;
  }

              另外一个有用的技巧是,如果可能,使用共享文件系统进行备份。这样你在两台服务器上都可以访问备份文件。
       这样,当你需要恢复时,你不需要从另一台服务器上复制文件了。但如果使用共享文件系统的话,你的归档备份虽然有两份,
       却都放在一个文件系统里,如果硬盘出现故障,两份备份都会丢失。


       参考文档:
       1.《Oracle 11g Data Guard 物理备库快速配置指南》
       2.《三思笔记:一步一步学dataguard》
       3.《Red_HatOracle11gDataGuard配置宝典》
       4.其他网络资料

Oracle 11g DataGuard配置详解:如何用DGMGRL工具实现主备自动切换? 本文详细介绍了Oracle 11g DataGuard配置中如何使用DGMGRL工具实现主备自动切换,确保企业级数据库的高可用性。通过DGMGRL工具的集中化配置、状态可视化和自动化支持,简化了复杂的DataGuard管理任务,特别适合对业务连续性要求严格的场景。 阅读详情

相关推荐

Oracle DataGuard 11g完全参考手册(原版电子档).zip

Oracle DataGuard 11g完全参考手册

ORACLE 11G DataGuard Failover后如何修复standby库

failover后的问题场景: 由于做failover测试,一个standby已经被我变成了primary库,如何将这个新的primary库(原来的standby)变回来重新成为standby 两个都是primary...

294

别再纠结了!车规MCU选M7还是R52?一张图看懂你的车身控制器/域控制器该用谁

本文深入探讨车规MCU选型中Cortex-M7与Cortex-R52的核心差异,提供基于安全等级与实时性需求的选型决策图。通过对比ASIL认证、实时性能及成本效益,帮助工程师在车身控制器/域控制器设计中做出精准选择,避免潜在风险与隐性成本。

weixin_42628688的博客 397

oracle failovermode,oracle 11g dataguard 使用dgbroker管理主备切换以及快速failover方法讲解...

概述:dataguard的管理可以是sqlplus、dgbroker和EM等工具进行管理,本文配置dg broker来管理dg的switch over 和 fast failover;实验:主备库开启dg broker 特性功能SQL> show parameter dgNAME TYPE V...

weixin_39585463的博客 281

多传感器标定全栈系统学习教程

无论是激光雷达(Lidar)、毫米波雷达(Radar)、相机(Camera)还是惯导(IMU),传感器之间的精确标定直接决定了系统的可靠性与性能。本文将以系统化的视角,梳理多传感器标定的核心知识体系,并分享一套覆盖全栈技术的学习路径。Calibration)是实现点云与图像融合的前提,而雷达与车辆的标定(Radar2Car)则是精准速度估计的关键。:Lidar2Car、Camera2Car的快速标定流程,标定板布置规范。:从单传感器标定入手(如相机内参),逐步过渡到多传感器联合标定。

weixin_41792788的博客 904

【R语言实例】物种分布模型介绍

SDM介绍

wong2016的博客 1万+

Oracle 11g dataguard failover

    Switchover动作是不会引起数据丢失的,Standby可以保证接受并且应用所有的Redo Log数据。而Failover则不好说,根据不同的保护模式(Protection Mode),一个事务在主库上面是否被commit,是取决于standby上是否接受和应用上日志数据。所以,在进行Failover的时候,是可能会丢数据的。     在进行Failover之后,Primary库实际...

jolly10的专栏 965

深入解析安卓性能分析工具systrace/atrace的使用技巧与实战场景

本文深入解析了安卓性能分析工具systrace/atrace的核心使用技巧与实战场景。文章澄清了环境搭建的常见误区,详细拆解了命令参数,并通过列表卡顿、启动优化等具体案例,手把手指导开发者利用这些工具精准定位性能瓶颈,提升应用流畅度。

yyy34的博客 239

oracle11g在没DNS情况下failover的配置方法

oracle11g整体架构方面相比之前的办法有了很大的变化,主要体现在cluster和asm方面。尤其是为了方面客户端配置和维护,oracle11g引入了scanip,该特性需要配置dns等方面,这无疑也增加了rac方案实施的复杂性,本文通过实例说明了在没有dns的场景下,实现failover的方法,记录于此,以供同行和自己今后学习参考。

数据库生态圈(RDB & NoSQL & Bigdata)——专注于关系库应用与研究(Oracle & Mysql & Postgresql & SQL Server ) 2317

HBuilderx连接微信开发者工具

系列文章目录 文章目录系列文章目录前言一、环境1.HBuilerx 工具2.微信开发者工具二、关联微信开发者工具1.HBuilderx新建项目2.关联微信开发者工具3.运行微信小程序出现异常解决方法3.最终效果总结 前言 使用HBuilderx工具关联微信开发者工具,进行小程序开发 提示:以下是本篇文章正文内容,下面案例可供参考 一、环境 1.HBuilerx 工具 HBuilderx 2.微信开发者工具 微信开发者工具 二、关联微信开发者工具 1.HBuilderx新建项目 2.关联微信开发者工具

拥有必珍惜 3075

BEV感知技术全景解析:从纯视觉到多传感器融合的实战指南

本文全面解析了自动驾驶中的BEV感知技术,从纯视觉到多传感器融合的实战应用。文章深入探讨了BEV如何提供“上帝视角”,对比了IPM、Lift-Splat-Shoot及Transformer等核心实现范式,并详细阐述了多传感器融合(尤其是中融合)的工程实践与优势,为开发者提供了从理论到原型搭建的完整指南。

win55的博客 1139

oracle11g 结束,oracle11g dataguard完全手册--failover &active dataguard(完)

五、failover一般情况下执行failover都是主库已经game over。故障转移将备库转换为主库,但不把原主库(有故障,无法正常工作)切换为备库。当故障转移发生后,你必须重建主库,或者使用闪回数据库功能将主库回退到故障发生前,然后转换其为备库并启用日志应用。执行failover有几个前提条件如下1.执行failover的前提(1)检查归档文件是否连续查询待转换 standby 数据库的 ...

weixin_42336958的博客 343

【软件系统架构】系列六:MBSE(基于模型的系统工程)

基于模型的系统工程(MBSE)是一种以模型为核心的系统工程方法论,通过结构化、可视化的模型取代传统文档,实现从需求到验证的全生命周期管理。MBSE采用SysML建模语言,包含需求、功能、架构和验证四大要素,支持自动追踪、仿真分析和代码生成。相比文档式工程,MBSE具有变更影响自动分析、跨团队协作和高可视化等优势,广泛应用于航空航天、汽车电子等领域。典型开发流程包括需求建模、行为建模、架构建模等阶段,配合MagicDraw、Cameo等工具链实现。MBSE正与数字孪生、AI技术融合,推动自动化建模和智能验证的

moton2017的博客 2783

ORACLE 11G DataGuard的一些高级管理案例研究

搭建完了ORACLE 11G dataguard后,也做了角色切换的实验,有switchover已经failover,感觉受益颇多,而后继续研究了下dataguard的一些高级管理功能,所谓冰山一角,ORACLE果然博大精深,总结记录如下:1,ORACLE 11G dataguard的高级管理1.1、READ ONLY/WRITE模式打开物理STANDBY 一般standby都是可以设置为moun...

csdn's blog 1万+

使用Clumsy和Process Explorer定位软件高CPU占用问题

使用弱网模拟工具Clumsy和进程查看工具Process Explorer定位软件高CPU占用问题。

dvlinker的技术专栏 5706

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ORACLE 11G DATA GUARD配置之Dataguard基本原理

1、DATAGUARD原理 DATAGUARD是通过建立一个PRIMARY和STANDBY组来确立其参照关系。STANDBY一旦创建,DATAGUARD就会通过将主数据库(PRIMARY)的REDO传递给STANDBY数据库,然后在STANDBY中应用REDO实现数据库的同步。有两种类型的STANDBY:物理STANDBY和逻辑STANDBY 物理STANDBY提供与主数据库完全一样的拷贝(块到

艺俊的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

oracle11g broker,oracle11g使用DGMGRL为Dataguard创建BrokerConfiguration

oracle11g使用DGMGRL为Dataguard创建BrokerConfigurationSteps to Create a Broker Configuration for Dataguard by usingDGMGRL commandEnvironment for testing:OS: Oracle Linux Server release 6.4Linux primary 2.6....

weixin_36446407的博客 207

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

oracle active-passive ha on linux,Oracle 11g Active Dataguard Failover实验

Dataguard是Oracle官方推荐MAA架构的重要解决方案。目前RAC+Local Dataguard + Remote Dataguard已经成为行业界普遍使用的HA架构方式。无论对于RAC还是Dataguard,实现switchover和failover都是最常用的操作场景。Failover是一种“unplanned”切换动作。通常是主库Primary出现软硬件故障问题,不能够继续对外提...

weixin_36332642的博客 155

Oracle 11g ADG 单实例 DG Broker 配置指南

DataGuard Broker能更加容易的管理和维护多个Standby Database,它能够将主库和备库按照一定的逻辑组织起来并进行集中管理,包括创建、维护和监控 Data Guard 等任务。

驰兔的博客 1655

oracle dataguard学习和各版本DG新特性介绍

在DataGurad环境中,至少有两个数据库:Primary数据库(主库):一个primary数据库即被大部分应用访问的生产数据库,该库即可以是单实例数据库,也可以是RAC。Standby数据库(备库):Standby数据库是primary数据库的复制(事务上一致)。DataGuard可以分为物理DataGuard、逻辑DataGuard两种,区别如下:物理DataGuard应用的是主库的归档日志,物理DataGuard无论从逻辑结构和物理结构都是和主库保持一致;

hf191850699的专栏 3518

drc oracle,oracle 11g dataguard之dgmgrl

1 启用dgmgrl相关参数:dg_broker_startdg_broker_config_file1配置:alter system set dg_broker_start=true scope=both;此时数据库会增加dmon进程[oracle@12crac2 ~]$ ps -ef|grep -i _dmon|grep -v greporacle 2699 1 0 06:...

weixin_36481965的博客 984

oracle 11r2 dg停主库,oracle 11GR2 dataguard SWITCHOVER FAILOVER

oracle 11GR2 dataguard SWITCHOVER FAILOVER1. switch:用户主动切换;2. failover:主库出现故障,强行切换;switchover:一般switchover切换都是计划中的切换,特点是切换后,不会丢失任何数据,而且这个过程是可逆的,整个dataguard环境不会被破坏,原来dataguard环境中的所有物理和逻辑standby都可以继续工作。...

weixin_36373013的博客 795

Oracle dataguard之备库切换(failover)

oracle 11g中有一个新特性叫flush redo,就是说如果主库挂了,只要能mount,就可以将没传到备库的online redo log信息刷到备库去,这样就不会有数据丢失。 1.在主库flush redo到备库 这里强调只有在mount的时候才能flush redo,看实验。 SQL> alter system flush redo to orcl_pd; alter sys

Csong的专栏 2887
上一篇: Oracle dataguard failover实战
下一篇: oracle参数open_cursors和session_cached_cursor详解!
柳暗发明君
博客等级 码龄18年 63粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值