Oracle区别ADG与DG案例详解

     在上云后的Oracle数据灾备场景中,我们经常听到DBA迁移工程师讲到“在这个项目中用ADG进行数据实时备份,ADG比DG更好!”。究竟ADG作Oracle数据灾备的优势在什么地方?

一、ADG主要解决了DG时代读写不能并行的问题

        DG时代的数据同步方式如采用Redo Log的物理方式,则数据库同步数据快、耗用资源低,但存在一个大问题。

        Oracle 11G以前的Data Guard物理备份数据库,可以以只读的方式打开数据,但这时日志的数据同步过程就停止了。而如果日志的数据同步处于执行过程中,则数据库就不能打开。也就是日志读、写两个状态是互相排斥的。而Active Data Guard则是主要解决这个问题。

二、Oracle具有闪回数据库的功能,避免删表等误操作造成无法挽回

        当主数据库打开并处于活动状态时,事务处于处理状态,生成Redo Log数据,并将其传送到备用的数据库中,正常情况下,可以做到秒级的数据同步。但如果在主用数据库上执行一个错误的命令,如drop database,则所有备用数据库中的数据也会被删除。

        Oracle DG提供了易于使用的方式来避免这种用户错误。DBA可以在主数据库、备用数据库中同时使用闪回数据库功能,以快速将数据库恢复到一个较早的时间点上,从而取消这个误操作。

       另外,Oracle还提供了延时执行备份数据库同步的功能,这样又是另一种方式防止误操作。

三、Oracle的DG、RAC一般是联合使用

       RAC主要解决系统应用的故障,它不提供数据故障的快速、自动恢复,它还提供数据库应用的伸缩能力,提供应用级的保护。

        DG只提供数据的备份、恢复能力,提供数据级的保护。

四、建议使用DG做数据实时同步,而不是第三方的磁盘copy工具

      原因三点:

  1. DG具有延时写入数据功能,可以避免误操作,而第三方工具没有。
  2. DG传输的数据量更小,而第三方工具的所需的带宽更高。
  3. 实战中的坑:有些第三方工具的磁盘同步最小单元与Oracle的最小磁盘单元不同,造成异常故障时,备份数据库无法启用,这非常吓人。

到此这篇关于Oracle区别ADG与DG案例详解的文章就介绍到这了,更多相关Oracle区别ADG与DG详解内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Oracle存储过程案例详解

    创建简单存储过程(Hello World) 为了方便读者简单易懂,我将下面使用到的表复制给大家. 具体表中的数据,请大家自己填写 -- Create table create table EMP ( empno NUMBER(4) not null, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2) ) cre

  • 如何使用Oracle PL/SQL 实现发送电子邮件功能(UTL_MAIL)

    大家好,我是只谈技术不剪发的 Tony 老师. 我们在开发 Oracle 数据库程序时,如果想要通过 PL/SQL 存储过程实现发送邮件的功能,大概可以使用以下三种方法: 利用 UTL_TCP程序包基于 TCP 协议发送邮件.这种方法比较原始,需要用户编写基础交换代码. 利用 UTL_SMTP 程序包基于 SMTP 协议发送邮件.这种方法比编码 TCP 操作简单很多,支持发送电子邮件的各种操作,因此使用非常广泛. 利用 UTL_MAIL 程序包发送邮件.这种方法最简单,支持常用的邮件功能,不需要

  • springboot+mybatis-plus+oracle实现逻辑删除

    最近在做一个前后端分离的小项目,需要删除用户表的用户,但是用户再别的表做了外键,所以只能做成逻辑删除,一通百度查资料后得以实现: 1.用户实体类 package com.sie.demo.entity; import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.

  • oracle+mybatis-plus+springboot实现分页查询的实例

    今天蠢了一上午才弄出这玩意,话不多说上代码! 1.建一个配置类 package com.sie.demo.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInte

  • Oracle之TO_DATE用法详解

    目录 TO_DATE格式(以时间:2007-11-02 13:45:25为例) 1. 日期和字符转换函数用法(to_date,to_char) 2. 字符串和时间互转 3.求某天是星期几 4. 两个日期间的天数 5. 时间为null的用法 6.月份差 7. 日期格式冲突问题 8.查询特殊条件天数 9. 查找月份 10. Next_day的用法 11.获得小时数 12.年月日的处理 13.处理月份天数不定的办法 14.找出今年的天数 15.yyyy与rrrr的区别 16.不同时区的处理 17. 5

  • Oracle中NEXTVAL案例详解

    1.什么是sequence?其作用是什么?         在Oracle数据库中,什么是序列呢?其中的作用是什么呢?其实sequence是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字).其主要的用途是生成表的主键值,可以在插入语句中引用,在插入之前,获取序列号nextval值,然后进行插入.也可以通过查询检查当前值,或使序列增至下一个值. 2.如何定义一个sequence? create sequence INR_REQUIRMENT_SQUENCE INCRE

  • Oracle rac案例讲解

    rac是什么? 多个不同服务器上的实例,访问共享的数据库文件,扩展了CPU和内存,提高性能:多节点,实现了HA. rac解决什么问题 高可用性:自动切换.负载均衡 高性能:多实例.更多连接.并发执行 高扩展:不停机扩展节点. 怎么实现的 组成 3个层级: 集群软件:集群管理,节点增删.心跳.同步:包括2个组件:表决磁盘.集群注册服务. rac数据库软件:提供数据库实例: rac数据库:共享存储,共享文件. 1.拓扑图 2.存储划分例子 现在共享存储建议ASM,仅说明用. rac常用操作 1.启停

  • oracle创建用户过程详解

    1.首先用管理员用户登陆sqlplus: sqlplus "sysman/安装时设置的密码" 2.创建用户 create user userName identified by password; 创建用户 userName,密码为 password 3.给用户授权 grant dba to userName; --授予DBA权限 grant unlimited tablespace to userName;--授予不限制的表空间 grant select any table to u

  • Oracle区别ADG与DG案例详解

         在上云后的Oracle数据灾备场景中,我们经常听到DBA迁移工程师讲到"在这个项目中用ADG进行数据实时备份,ADG比DG更好!".究竟ADG作Oracle数据灾备的优势在什么地方? 一.ADG主要解决了DG时代读写不能并行的问题         DG时代的数据同步方式如采用Redo Log的物理方式,则数据库同步数据快.耗用资源低,但存在一个大问题.         Oracle 11G以前的Data Guard物理备份数据库,可以以只读的方式打开数据,但这时日志的数据同步

  • Java 位运算符>>与>>>区别案例详解

    下图是java教程中对于>>和>>>区别的解释,但是介绍的并不详细,因为这两种运算符是以补码二进制进行运算的. 1.学习过计算机原理的都知道,数字是以补码的形式在计算机中存储的,那么源码,反码,补码之间的关系是如下所示: **正整数**的原码.反码和补码都一样: **负数部分**: 1.原码和反码的相互转换:符号位不变,数值位按位取反 2.原码和补码的相互转换:符号位不变,数值位按位取反,末位再加1 3.已知补码,求原码的负数的补码:符号位和数值位都取反,末位再加1 2.了解

  • JavaScript es6中var、let以及const三者区别案例详解

    首先,一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系?         ECMAScript是一个国际通过的标准化脚本语言.JavaScript由ECMAScript和DOM.BOM三者组成.可以简单理解为:ECMAScript是JavaScript的语言规范,JavaScript是ECMAScript的实现和扩展.         2011 年,ECMAScript 5.1 版发布.之前我们大部分人用的也就是ES5         2015 年 6 月,ECM

  • Java之Error与Exception的区别案例详解

    首先,Error类和Exception类都是继承Throwable类 Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正.一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等.对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止. Exception(异常)表示程序可以处理的异常,可以捕获且可能恢复.遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止

  • Kotlin常用函数let,with,run,apply用法与区别案例详解

    在kotlin编程中let.with.run.apply这些函数使用率是非常高的,有时候可以通用,差别很小,但如果能记住他们的不同点,可以更加合理的选择使用. 在这之前首先要了解一下Lambda表达式的一些规则,这会帮助你理解使用这些函数的时候有没有( )可不可以用it代替参数等.因为这些函数的最后一个参数都是lambda. 如何理解lambda呢?可以把lambda理解为就是一个对象,但这个对象比较特殊,它是一段代码,既然是对象就可以作为函数的参数使用.这种对象称为函数对象. lambda表达

  • C++指针与引用的区别案例详解

    C++中指针和引用的区别 从概念上讲.指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变. 而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量). 在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的: 指针传递参数本质上是值传递的方式,它所传递的是一个

  • C语言指针与引用的区别以及引用的三种用法案例详解

    1.指针与引用的区别: 指针是一块内存的地址值,而引用是一块内存的别名. 下面引自://www.jb51.net/article/221791.htm 从概念上讲.指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变. 而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量). 在C++中,指针和引用经

  • php array_walk array_map array_filter区别案例详解

    php 开发经常遇到数组处理,会涉及到题目中这几个函数.这个函数功能类似,很多时候容易混淆. array_walk: array_walk - 使用用户自定义函数对数组中的每个元素做回调处理 1. 用户自定义的函数处理每一个元素 2. 直接修改原数组,不会创建新的数组 3. 可以传递额外的参数 Example #1 : <?php $fruits = array("d" => "lemon", "a" => "oran

随机推荐