一、需求

疑问?Oracle最大保护模式下,dg备库出现问题,影响主库吗?

我们都知道Oracle最大保护模式的意思是oracle不允许数据丢失,1条记录都不行! 那么备库有问题? oracle主库还能读写吗?

二、测试

2.1 现有情况查询

  1. --查询保护模式:最大保护
  2. SQL> select name,dbid,database_role,protection_mode from v$database;
  3. NAME DBID DATABASE_ROLE PROTECTION_MODE
  4. --------- ---------- ---------------- --------------------
  5. DINGDING 2042277967 PRIMARY MAXIMUM PROTECTION 最大保护
  6.  
  7. 最大保护模式下日志传输途径:
  8. -打开主库的告警日志:
  9. [oracle@bj /]$ tail -f /picclife/app/oracle/diag/rdbms/bj/dingding/trace/alert_dingding.log
  10. LGWR: Standby redo logfile selected to archive thread 1 sequence 22
  11. LGWR: Standby redo logfile selected for thread 1 sequence 22 for destination LOG_ARCHIVE_DEST_2
  12. LGWR: RFS destination opened for reconnect at host 'sh' =>LGWR归档线程通过主机sh传输远端
  13. Tue Jan 09 22:54:42 2018 =>备库RFS进程接收
  14.  
  15. --DG保护模式使用最大保护:主库的日志通过LGWR进程通过TNSNAMES.ORA文件远程传输-备库端RFS进程接收,按照备库参数指定路径存储归档文件:

2.2 备库关闭监听

  1. --正常情况下:主库操作不受影响:
  2. SQL> insert into a select * from emp where rownum=1;
  3. SQL> commit;
  4.  
  5. 制造异常:备库:将监听关闭:
  6. $lsnrctl stop
    --主库dml
    不受影响: ?????

2.3 备库关闭网络

  1. 备库停止网络服务:
  2. root: service network stop

  3. 主库
  4. 异常状态一:主库的事物操作,无法结束:DML操作无法commit;
  5. SQL> insert into a select * from emp where rownum=1;
  6. 1 row created.
  7. SQL> commit;
  8.  
  9. 异常状态二:新建会话无法连接用户
  10. SQL> conn scott/tiger
  11.  
  12. 异常状态三:查询告警日志: 10分钟后,由于最大保护模式下,主库发起多次重连,没有结果,数据库abort强制关闭
  13.  
  14. TNS-00513: Destination host unreachable
  15. nt secondary err code: 113
  16. nt OS err code: 0
  17. -- 警告:所有的备用数据库的目的地都失败了
  18. WARNING: All standby database destinations have failed
  19. -- 警告:保护主节点需要关闭实例
  20. WARNING: Instance shutdown required to protect primary
  21. ******************************************************
  22. LGWR (ospid: 15287): terminating the instance due to error 16098
  23. Tue Jan 09 23:24:17 2018
  24. System state dump requested by (instance=1, osid=15287 (LGWR)), summary=[abnormal instance termination].

2.4 主库挂了,dg immediate

  1. 主库shutdown abort;
    最大保护模式,主库挂了,备库不允许immediate方式关闭
    备库
  2. SYS >shutdown immediate;
  3. ORA-01154: database busy. Open, close, mount, and dismount not allowed now
  4. SYS >select status from v$instance;
  5. STATUS
  6. ------------
  7. OPEN
  8. ---主库挂了,备库无法immediate
  9. >shutdown abort

2.5 dg无法连接,主库startup

  1. ---备库启动数据库
  2. >startup
  3.  
  4. --备库监听状态查询:关闭状态
  5. [oracle@sh ~]$ lsnrctl status
  6. TNS-12541: TNS:no listener
  7.  
  8. --启动主库:
  9. SQL> startup
  10.  
  11. Error 12541 received logging on to the standby
  12. Check whether the listener is up and running.
  13. LGWR: Error 12541 creating archivelog file 'sh'
  14. Crash Recovery Foreground: All standby destinations have failed
  15. ******************************************************
  16. WARNING: All standby database destinations have failed
  17. WARNING: Instance shutdown required to protect primary
  18. ******************************************************
  19. USER (ospid: 16354): terminating the instance due to error 16098
  20. System state dump requested by (instance=1, osid=16354), summary=[abnormal instance termination].
  21.  
  22. 特性:实验证明:如果之前建立了连接,主库与备库直接,监听程序断开不受影响【监听:提供新的会话连接】
  23. ---如果数据库关闭状态,备库监听关闭、网络无法连接,则主库无法open,最大保护模式

三、阅读官方文档

  1. Maximum Protection
  2.  
  3. This protection mode ensures that no data loss will occur if the primary database fails. To provide this level of protection,
    the redo data needed to recover a transaction must be written to both the online redo log and to the standby redo log on at
    least one synchronized standby database before the transaction commits. To ensure that data loss cannot occur,
    the primary database will shut down, rather than continue processing transactions,
    if it cannot write its redo stream to at least one synchronized standby database.
  4.  
  5. Transactions on the primary are considered protected as soon as Data Guard has written the redo data to
    persistent storage in a standby redo log file. Once that is done, acknowledgment is quickly made back to
    the primary database so that it can proceed to the next transaction. This minimizes the impact of synchronous
    transport on primary database throughput and response time. To fully benefit from complete Data Guard validation
    at the standby database, be sure to operate in real-time apply mode so that redo changes are applied to the standby
    database as fast as they are received. Data Guard signals any corruptions that are detected so that immediate corrective
    action can be taken.
  6.  
  7. Because this data protection mode prioritizes data protection over primary database availability, Oracle recommends that
    a minimum of two standby databases be used to protect a primary database that runs in maximum protection mode to prevent
    a single standby database failure from causing the primary database to shut down.
  8. Note:
  9. Asynchronously committed transactions are not protected by Data Guard against loss until the redo generated by those transactions
    has been written to the standby redo log of at least one synchronized standby database.
    最大保护模式下,主库的事务的日志 commit提交,除了需要本地 log buffer 数据 落盘写入online reodo logfile中之外;
    还需要写入到dg online reodolog 已确保数据不丢失,随后dg最快速度反馈给主库,通知dg备库端日志写完成,主库commit 可以异步提交反馈了。
    假设有2个最大保护模式的dg,坏一个没关系,主库的日志保障写入到任意一个的dg就可以进行反馈。
    这个与最近听华为的gauss db 的备库也是一样的。

Oracle-DG最大保护模式下,dg备库出现问题对主库有什么影响?的更多相关文章

  1. 验证DG最大性能模式下使用ARCH/LGWR及STANDBY LOG的不同情况

    总结:  --两台单实例数据库做DG,数据库版本号10.2.0.1.0 1.主库配置为:arch async,备库无STANDBY LOG. 日志中会有:RFS[4]: No standby redo ...

  2. ASM:《X86汇编语言-从实模式到保护模式》第17章:保护模式下中断和异常的处理与抢占式多任务

    ★PART1:中断和异常概述 1. 中断(Interrupt) 中断包括硬件中断和软中断.硬件中断是由外围设备发出的中断信号引发的,以请求处理器提供服务.当I/O接口发出中断请求的时候,会被像8259 ...

  3. 软件调试——IA-32 保护模式下寄存器一览

    最近在看张银奎先生的<调试软件>一书,想将关键的技术记录下来,以便日后查阅,也分享给想看之人吧. 1 通用寄存器 EAX,EBX,ECX,EDX:用于运算的通用寄存器,可以使用AX,BX等 ...

  4. ASM:《X86汇编语言-从实模式到保护模式》第14章:保护模式下的特权保护和任务概述

    ★PART1:32位保护模式下任务的隔离和特权级保护  这一章是全书的重点之一,这一张必须要理解特权级(包括CPL,RPL和DPL的含义)是什么,调用门的使用,还有LDT和TSS的工作原理(15章着重 ...

  5. ASM:《X86汇编语言-从实模式到保护模式》第13章:保护模式下内核的加载,程序的动态加载和执行

    ★PART1:32位保护模式下内核简易模型 1. 内核的结构,功能和加载 每个内核的主引导程序都会有所不同,因为内核都会有不同的结构.有时候主引导程序的一些段和内核段是可以共用的(事实上加载完内核以后 ...

  6. 为什么在保护模式下IA-32处理器最高可访问4GB的内存

    在保护模式下,IA-32处理器可访问最高达4GB的内存,这是32位无符号二进制整数地址能够寻址的上限.  今天看汇编的时候发现书里带过一句,不太明白为什么内存上限是4GB,就搜了一下,总结了一下答案. ...

  7. 保护模式下pmtest1.asm的理解

    整个代码对应内存线性地址分为四段,[gdt] [code32] [video32] [code16] 代码先在实模式[code16]下运行,code16中的cs就是系统分配的该程序物理地址的基址. 编 ...

  8. IE保护模式下ActiveX控件打不开共享内存的解决方案

    原文:http://www.cppblog.com/Streamlet/archive/2012/10/25/193831.html 感谢溪流漫话的投递 IE保护模式下,ActiveX控件会打不开别的 ...

  9. ActiveX IE保护模式下的低权限操作路径及Windows操作系统特殊路径

    参考理解IE保护模式:https://blog.csdn.net/xt_xiaotian/article/details/5336809 文件帮助类: public class FileHelp { ...

随机推荐

  1. Tawk.to一键给自己的网站增加在线客服功能

    Tawk.to一键给自己的网站增加在线客服功能 很多外贸网站只有contact页面,留下邮箱.电话等联系方式,而在国际贸易当中能够及时在线交流沟通,能给客户留下更好的印象.接下来,就让我们一起来了解一 ...

  2. CentOS7上安装伪分布式Hadoop

    1.下载安装包 下载hadoop安装包 官网地址:https://hadoop.apache.org/releases.html 版本:建议使用hadoop-2.7.3.tar.gz 系统环境:Cen ...

  3. vmware-install.pl 如何安装?

    首先在虚拟机上安装vnware-tools工具,如图(工具为vmware workstation):  成功   但是系统屏幕大小并没有适应虚拟机,所以下边这行提示很重要. 打开左侧边栏的VMware ...

  4. iPhone去除input默认样式

    /*<!---->去掉苹果短的样式*/ input[type="button"], input[type="submit"], input[type ...

  5. 剑指 Offer 56 - I. 数组中数字出现的次数 + 分组异或

    剑指 Offer 56 - I. 数组中数字出现的次数 Offer_56_1 题目描述 解题思路 java代码 /** * 方法一:数位方法 */ class Offer_56_1_2 { publi ...

  6. HDOJ-2896(AC自动机+文本串中出现了哪几个模板串)

    病毒侵袭 HDOJ-2896 主要使用AC自动机解决,其次在query函数中改变一下,用来记录每个模板串出现的次数,还有insert函数中记录模板串的编号 需要注意最好使用结构体,而且不能一次性使用m ...

  7. Linux速通03 目录文件的浏览、管理和维护

    Linux文件系统的层次结构 # 树状结构:在Linux或Unix操作系统中,所有的文件和目录都被组织成一个以根节点开始的倒置的树状结构. # 目录的定义:目录相当于Windows中的文件夹,目录中存 ...

  8. Java 常见对象 04

    常见对象·Arrays 类和 包装类 数组高级冒泡排序原理图解 * A:画图演示 * 需求: 数组元素:{24, 69, 80, 57, 13} 请对数组元素进行排序 * 冒泡排序: 相邻元素两两比较 ...

  9. 关于PHP的__construct()函数

    1 <?php 2 header("Content-Type:text/html;charset=utf-8");//调整为utf-8编码格式 3 class car 4 { ...

  10. AtCoder Beginner Contest 190

    A Very Very Primitive Game int main() { int a, b, c; cin >> a >> b >> c; if(c == 0 ...