首页 > 其他分享 >7.DG和ADG的区别

7.DG和ADG的区别

时间:2023-02-06 21:14:38浏览次数:55  
标签:主库 备库 区别 DG 数据库 ADG Guard Data

DG(Data Guard)

DG(Data Guard,数据卫士)不是一个备份恢复的工具,然而,DG却拥有备份的功能,在物理DG下它可以和主库一模一样,但是它存在的目的并不仅仅是为了备份恢复数据,应该说它的存在是为了确保企业数据的高可用性,数据保护以及灾难恢复。DBA可以通过将一些操作(例如查询报表)转移到备库执行的方式来减小主库的压力,构建高可用的企业数据库应用环境。

在DG环境中,至少有两个数据库,一个处于OPEN状态对外提供服务,这个数据库叫作主库(Primary Database)。第二个处于恢复状态,叫作备库(Standby Database)。在通常情况下,主库对外提供服务,用户在主库上进行操作,操作被记录在联机日志和归档日志中,这些日志通过网络传递给备库,然后在备库上被应用,从而实现主库和备库的数据同步。

Oracle对这一过程进一步地优化设计,使得日志的传递、恢复工作更加自动化、智能化,并且提供一系列参数和命令简化了DBA工作。如果软硬件升级,那么可以把备库切换为主库继续对外服务,这样既减少了服务停止时间,并且数据不会丢失。如果异常原因导致主库不可用,那么也可以把备库强制切换为主库继续对外服务,这时数据损失都和配置的数据保护级别有关系。所以,Primary和Standby只是一个角色概念,并不固定在某个数据库中。

adg

Oracle 11g之前,物理备库(physical Standby)在应用redo的时候,是不可以打开的,只可以mount。从11g开始,在应用redo的时候,物理备库可以处于read-only模式,这就称为Active Data Guard 。通过Active Data Guard,可以在物理备库进行查询或者导出数据,从而减少对主库的访问和压力。

Active Data Guard适用于一些只读性的应用,比如,有的应用程序只是查询数据,进行一些报表业务,不会产生redo数据,这些应用可以转移到备库上,避免对主库资源的争用。

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

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

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

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

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

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

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

转载于:http://news.558idc.com/378806.html

标签:主库,备库,区别,DG,数据库,ADG,Guard,Data
From: https://www.cnblogs.com/zmc60/p/17096682.html

相关文章

  • scanf与gets区别
    二者都是从终端读入字符串。功能为1、gets功能为读入一行,并将换行符转换为字符串结束符。2、scanf("%s",s);读入时,遇到空白字符,包括空格,制表符,换行符时均会停止输入。从功......
  • ng-model与ng-value的区别
    AngularJSexpression,whosevaluewillbeboundtothevalueattributeandvaluepropertyoftheelement. Itisespeciallyusefulfordynamicallygeneratedlis......
  • JvavScript与java中的正则表达式的区别
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scripttype="text/javascript">/*1.JavaScript是部分匹......
  • Git操作—— git add --all、git add.、git add * 的区别(转)
    原文:https://blog.csdn.net/W664160450/article/details/123715481?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-12......
  • objective-c enum 与 typedef的区别
    enum和typedef,在两个小节中书中分别出现了2个例子,如下enumdirection{north,south,east,west};typedefenum{north,south,east,west}dir......
  • adb的常用命令(android debud bridge)
    android调试桥:adb命令使用需要在系统环境遍历中path中追加adb.exe的完整路径D:\IDE\adt-bundle-windows-x86-20130729\sdk\platform-toolsadbdevices列出所有的设备 ......
  • 分布式、集群式、负载均衡的区别和联系
    分布式、集群式、负载均衡的介绍:分布式:一个系统拆成多个子系统,部署在不同服务器。每个服务器只做一小块。功能拆分。集群式:每个服务器提供的服务一样,靠数量多取胜。负......
  • Android中margin和padding的区别
    简单地理解:margin为外边框,border为边框,padding为内边框。margin:android:layout_marginTopandroid:layout_marginBottomandroid:layout_marginLeftandroid:layout_mar......
  • Javascript(es2016) import和require用法和区别
    写个简单js文件,假设名字为:lib.js。假设内容如下:exportconstsqrt=Math.sqrt;exportfunctionsquare(x){returnx*x;}exportfunctiond......
  • python的dict和json的区别
    在工作中经常用到数据传输,而数据传输用的是json字符串,那么这个形如字典dict的json,和json又有什么区别呢?区别Python的字典是一种数据结构,JSON是一种数据传输格式。json就......