Oracle DataGuard是Oracle自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用这些日志文件,从而使目标数据库与源数据库保持同步,是一种数据库级别的高可用性方案。

DataGuard可以提供Oracle数据库的冗灾、数据保护、故障恢复等,实现数据库快速切换与灾难性恢复。

在生产数据库的保证"事务一致性"时,使用生产库的物理全备份创建备库,备库会通过生产库传输过来的归档日志或重做条目自动维护备用数据库。

DataGuard数据同步技术有以下优势:

1. Oracle数据库自身内置的功能,与每个Oracle新版本的新特性都完全兼容,且不需要另外付费。

2. 配置管理较简单,不需要熟悉其他第三方的软件产品。

3. 物理Standby数据库支持任何类型的数据对象和数据类型。

4. 逻辑Standby数据库处于打开状态,可以在保持数据同步的同时执行查询等操作。

5. 在最大保护模式下,可确保数据的零丢失。


Oracle DataGuard由一个Primary数据库(生产数据库)及一个或多个Standby数据库(最多9个)组成。组成Data Guard的数据库通过Oracle Net连接,并且有可以分布于不同地域。

只要各库之间可以相互通信,它们的物理位置并没有什么限制,不受操作系统的限制。

1. Primary 数据库

DataGuard包含一个Primary数据库即被大部分应用访问的生产数据库,该库既可以是单实例数据库,也可以是RAC。

2. Standby 数据库

Standby数据库是Primary数据库的复制(事务上一致)。在同一个Data Guard中可以最多创建9个standby数据库,一旦创建完成,Data Guard通过应用Primary数据库的redo自动维护每一个Standby数据库。

Standby数据库同样即可以是单实例数据库,也可以是RAC结构。

3. 结构图


Standby数据库通常分两类:逻辑standby和物理standby。

1. 逻辑standby

a. 逻辑standby是通过接收primary数据库的redo log并转换成sql语句,然后在standby数据库上执行SQL语句实现同步;

b. 与主库共享同样的模式定义;

c. 通过应用SQL(sql apply)与主库保持一致;

d. 当从主库接受到日志后,逻辑备用数据库是通过logmnr将日志转换成sql,在逻辑备库的表中,表可以同时用于恢复,报表查询功能;

2. 物理standby

a. 物理standby是通过接收并应用primary数据库的redo log以介质恢复的方式实现同步,不仅文件的物理结构相同,连块在磁盘上的存储位置都是一模一样的;

b. 基于数据块级别和主数据库一致;

c. 通过应用日志(redo apply)与主库保持同步;

d. 在mount standby阶段进行应用日志恢复,而同时也可以open read only提供报表查询;


1. 物理备库

(1). Managed recovery state

该模式下log transport service归档日志到备库,log apply service 自动应用这些日志。数据库不处于mount状态,任何读都不允许。

(2). Read only state

如果我们想做备库为报表功能,那么在备库环境中,我们以read only形式打开数据库。在备库log apply service将不能够应用归档日志到备库,但是主库的log transport service可以继续传递归档日志到备库。

我们可以非产轻松的在上述两种运行下进程切换,一般情况下我们会在如下的场景下进程切换:

a. 物理备库用于报表模式

b. 为了灾难的保护,检查数据是否正常的传递到了备库

2. 逻辑备库

Open read write mode

该种模式,备库仍然可以不断的应用归档日志,但是该备库同时可以提供报表查询功能。

当log apply service正在更新一张表时,该表仍然可以查询,但是在该表上无法做任何的DML操作。如果其他模式下的对象没有被log apply service所维护,那么我们可以更新该模式下的那些对象。


1. 重做传输服务(Redo Transport Services)

控制redo数据的传输到一个或多个归档目的地。

2. 日志应用服务(Log Apply Services)

应用redo数据到standby数据库,以保持与primary数据库的事务一致。redo数据即可以从standby数据库的归档文件读取,也可直接应用备用日志文件读取。

3. 角色转换服务(Role Transitions)

DataGuard中有两种角色:primary和standby。角色转换就是让数据库在这两个角色中切换,

4. 切换分两种:switchover和failover

(1). switchover:

a. 转换primary数据库与standby数据库。

b. switchover可以确保不会丢失数据。

c. 计划中角色转换,主要用于操作系统和硬件的维护,备库切换成主库,而主库切换成备库,在切换完成后,这个过程没有任何的数据丢失和损失。

(2). failover:

a. 当primary数据库出现故障并且不能被及时恢复时,会调用failover将一个standby数据库转换为新的primary数据库。

b. 在最大保护模式或最高可用性模式下,failover可以保证不会丢失数据。

c. 非计划中的角色转换,在紧急情况下使用,根据数据的保护模式的不同,只有少量的或者是很少的数据损失


1. 最大保护

这种模式是默认的数据保护模式,在不影响源数据库性能的条件下提供尽可能高的数据保护等级。

在该种模式下,一旦日志数据写到源数据库的联机日志文件,事务即可提交,不必等待日志写到目标数据库,如果网络带宽充足,该种模式可提供类似于最大可用模式的数据保护等级。

2. 最大可用性

这种模式和"最大保护"基本上差不多。正常情况下,主备库之间是同步的。

当网络或者备库出现问题时,不会影响到主库的当机,主库会自动转换库"最大性能"模式,等待备库可用时,将归档传输到备库做恢复。

3. 最大性能

这种模式保证主库性能最大化,主备库之间数据是异步传输的。

即,主备日志归档以后才会传输到备用库,在备库上使用归档日志文件做恢复操作。


运行DataGuard需要具备以下几个条件:

1. 在主库和从库的所有机器上必须安装同一个版本的Oracle企业版。

2. 主库必须运行在归档模式下。

3. 主库和从库的操作系统必须一样(允许版本不同),从库可以使用与主库不同的目录结构。

4. 主从库硬件系统的体系结构必须相同。比如:主库运行在64位的Sun Sparc系统上,如果从库是32位的Linux Intel系统就不允许。主从库硬件的配置可以不同,比如:CPU数量、内存大小、存储配置等。

参考文档 :  http://blog.chinaunix.net/uid-14877370-id-2782040.html

-------------------------------------------------------------------------

ETL,Extraction-Transformation-Loading的缩写,中文名称为数据提取、转换和加载。 ETL工具有:OWB(Oracle Warehouse Builder)、ODI(Oracle Data Integrator)、Informatic PowerCenter、AICloudETL、DataStage、Repository Explorer、Beeload、Kettle、DataSpider

Data Guard 介绍的更多相关文章

  1. Data Guard相关参数学习介绍

    LOG_ARCHIVE_DEST_n 参数属性介绍 该参数的n在11g中为1到31,下列为参数的属性值: u  AFFIRM and NOAFFIRM u  ALTERNATE (not suppor ...

  2. Data Guard组件等相关介绍

    1.Data Guard组件介绍  Data Guard架构归类为3个主要的组件. Data Guard 重做传输服务  重做传输服务用来将主数据库生成的重做数据传输给备用数据库. Data Guar ...

  3. data guard折腾记一

    终于有空闲的机器腾出来了,生产环境上的一套Oracle环境终于可以鸟枪换炮了,生产环境有Data Guard,为了减少停机时间,而且避免重新构建Data Guard的麻烦(其实也不麻烦,就是浪费时间) ...

  4. (转)Oracle Data Guard学习

    一.Data Guard提供如下三种数据保护模式: 1)最高保护模式(Maximum Protection) 这里的”最高保护“是指最大限度的保护数据不丢失,也就是至少有一个standby和prima ...

  5. Oracle涂抹oracle学习笔记第10章Data Guard说,我就是备份

    DG 是备份恢复工具,但是更加严格的意义它是灾难恢复 Data Guard是一个集合,由一个Primary数据库及一个或者多个Standby数据库组成,分两类逻辑Standby和物理Standby 1 ...

  6. Oracle11g Active Data Guard搭建、管理

    说明:參考网络众多人的笔记及思路,加上自己亲身实践之后的整理笔记.仅供參考. Data Guard与RAC不同的是.在普通情况下.Standby仅仅有一个节点处于活动状态,全部的应用都连接到主serv ...

  7. Data Guard 管理原理

    ##三大优势>Data Guard属于Oracle 自己的产品,其技术成熟完善.稳定可靠>可以随时验证业务数据的有效性>免费产品 Data Guard由主库(PRIMARY DATA ...

  8. [terry笔记]data guard基础知识

    如下介绍了data guard的基础知识,整理自网络: Data Gurad 通过冗余数据来提供数据保护,Data Gurad 通过日志同步机制保证冗余数据和主数据之前的同步,这种同步可以是实时,延时 ...

  9. 在物理 Data Guard 中对异构主备系统的支持 (文档 ID 1602437.1)

    Data Guard中主数据库与物理备用数据库(Redo Apply)之间可以有什么差别?本说明针对重做应用和 Oracle Data Guard 12 发行版 1 进行了更新.它适用于 Oracle ...

随机推荐

  1. Oracle 11gR2 RAC 常用维护操作 说明

    一.启动和停止集群 在Oracle 11gR2 下的RAC,架构发生了变化.CRS的信息也是放在ASM 实例里的,所以要关asm,必须关闭crs, 如果还使用了acfs的话,一关crs那么acfs里的 ...

  2. oracle归档日志配置查询

    归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档 ...

  3. JMeter--使用HTTP信息头管理器

    使用HTTP信息头管理,可以帮助测试人员设定JMeter发送的HTTP请求头所包含的信息.HTTP信息头中包含有”User-Agent".“Pragma".”Referer&quo ...

  4. 【appium】keyevent的keycode

    方法1 AppiumDriver实现了在上述功能,代码如下(java版本) driver.sendKeyEvent(66); 方法2 HashMap<String, Integer> ke ...

  5. Kibana 基础入门

    原文地址:Kibana 基础入门 博客地址:http://www.extlight.com 一.前言 Kibana 是一个开源的分析和可视化平台,旨在与 Elasticsearch 合作.Kibana ...

  6. Oracle查看及修改Oracle最大连接数

    Oracle查看及修改Oracle最大连接数 .查询oracle的最大连接数: select * from v$parameter where name='processes'; .oracle 11 ...

  7. linux下syscall函数 间接系统调用

    NAME              syscall - 间接系统调用 SYNOPSIS              #define _GNU_SOURCE               #include ...

  8. 利用spring的ApplicationListener实现springmvc容器的初始化加载--转

    1.我们在使用springmvc进行配置的时候一般初始化都是在web.xml里面进行的,但是自己在使用的时候经常会测试一些数据,这样就只有加载spring-mvc.xml的配置文件来实现.为了更方便的 ...

  9. MessageFormat用法(转载)

    MessageFormat用来格式化一个消息,通常是一个字符串,比如: String str = "I'm not a {0}, age is {1,number,short}", ...

  10. Java堆外内存之四:直接使用Unsafe类操作堆外内存

    在nio以前,是没有光明正大的做法的,有一个work around的办法是直接访问Unsafe类.如果你使用Eclipse,默认是不允许访问sun.misc下面的类的,你需要稍微修改一下,给Type ...