11g dataguard 类型、保护模式、服务
一. Dataguard中的备库分为物理备库和逻辑备库及快照备库
备库是主库的一致性拷贝,使用一个主库的备份可以创建多到30个备库,将其加入到dataguard环境中,创建成功后,dataguard通过自动应用从主库传送到备库的redo数据维护每个备库。
1.1 物理备库(Physical standby database)
物理备库提供物理上和主数据库相同的拷贝,磁盘数据库结构和主库是相同的,物理备库是块到块的拷贝,一个物理备库通过应用从主库收到的redo数据保持和主库的同步,称为日志应用(redo apply),11g的dataguard在应用日志的时候是可以打开的,10g是不允许的。11g的这种特性称为active data guard。
1.2 逻辑备库 (Logical standby database)
逻辑备库包含和主库相同的逻辑信息,物理结构和数据结构可以是不同的,逻辑备库把从主库收到的redo转换为sql语句,然后在备库上执行sql语句,称为sql应用(sql apply)。逻辑备库除了能应用于灾难恢复,还允许用户查询逻辑备库和通过逻辑备库生成报表,用于其他目的,使用逻辑备库能升级database软件,在无停机的情况下打补丁等操作。
1.3 快照备库 (Snapshot Standby Database)
快照备库是11g中出现的,类似物理备库和逻辑备库一样,快照备库从主库接收redo数据,和物理或逻辑备库不同的是,快照备库只接收而不应用接收到的redo数据。直至快照备库转换为物理备库,之后先扔掉任何对快照备库的更新,然后应用接收到的redo数据。快照数据库最好用在要求临时的,可更新的物理备库快照场景。
二. Data Guard 允许定义3钟数据保护模式,分别是最大保护(Maximum Protection),最大可用(Maximum Availability)和 最大性能(Maximum Performance)。
1. 最大保护(Maximum Protection)
这种模式能够确保绝无数据丢失。要实现这一步当然是有代价的,它要求所有的事务在提交前其REDO不仅被写入到本地的Online Redologs,还要同时写入到Standby数据库的Standby Redologs,并确认REDO数据至少在一个Standby数据库中可用(如果有多个的话),然后才会在Primary数据库上提交。如果出现了什么故障导致Standby数据库不可用的话(比如网络中断),Primary数据库会被Shutdown,以防止数据丢失。
使用这种方式要求Standby Database 必须配置Standby Redo Log,而Primary Database必须使用LGWR,SYNC,AFFIRM 方式归档到Standby Database.
2. 最高可用性(Maximum availability)
这种模式在不影响Primary数据库可用前提下,提供最高级别的数据保护策略。其实现方式与最大保护模式类似,也是要求本地事务在提交前必须至少写入一台Standby数据库的Standby Redologs中,不过与最大保护模式不同的是,如果出现故障导致Standby数据库无法访问,Primary数据库并不会被Shutdown,而是自动转为最高性能模式,等Standby数据库恢复正常之后,Primary数据库又会自动转换成最高可用性模式。
这种方式虽然会尽量避免数据丢失,但不能绝对保证数据完全一致。这种方式要求Standby Database 必须配置Standby Redo Log,而Primary Database必须使用LGWR,SYNC,AFFIRM 方式归档到Standby Database.
3. 最高性能(Maximum performance)
缺省模式。 这种模式在不影响Primary数据库性能前提下,提供最高级别的数据保护策略。事务可以随时提交,当前Primary数据库的REDO数据至少需要写入一个Standby数据库,不过这种写入可以是不同步的。如果网络条件理想的话,这种模式能够提供类似最高可用性的数据保护,而仅对Primary数据库的性能有轻微影响。这也是创建Standby数据库时,系统的默认保护模式。
这种方式可以使用LGWR ASYNC 或者 ARCH 进程实现,Standby Database也不要求使用Standby Redo Log。
三. dataguard的服务类型 (Data GuardServices) 有三种,分别是 日志传输服务(Redo Transport Services)、
日志应用服务(Apply Services)、角色转换 (Role Transitions) 。
3.1 日志传输服务(Redo Transport Services)
Redo transport services 执行如下工作:
(1)根据参数中的配置,把主库的redo data 传送到备库。
(2)管理gap的进程。
(3)自动检测备库上缺失或者损坏的归档文件,如果检测到就把这些归档日志重新发送一次。
3.2 日志应用服务(Apply Services)
1 物理standby 使用Redo apply
物理standby 使用的Redo apply技术。 Redo apply使用的是数据库标准的恢复技术。基于block的恢复。
2 逻辑standby 使用SQL apply
逻辑standby 使用的是SQL Apply技术,它会先把redo data转换成SQL 语句,然后在备库执行SQL 语句来实现同步。
3.3 角色转换 (Role Transitions)
数据库的角色操作有2种:主库和备库。 可以使用swithover 或者failover 进行切换。
3.3.1 SWITCHOVER
switchover将一个physical standby database 转换成为primary database,这个过程可以保证无数据丢失,在完成后其它的standby数据库和原来的primary库还可以成为这个dataguard的standby role的一部分.
3.3.2 FAILOVER
Failover当主库crash无法正常启动时,将一个standby库failover成primary role库,如果在primary库在出故障之前不是处于protection的话,将会有一些数据丢失。
11g dataguard 类型、保护模式、服务的更多相关文章
- Dataguard三种保护模式
Oracle Data Guard 提供三种高水平的数据保护模式来平衡成本.可用性.性能和事务保护.可以使用任意可用管理界面来轻松地设置这些模式.要确定适当的数据保护模式,企业需要根据用户对系统响应时 ...
- DataGuard的三种保护模式
(一)三种保护模式介绍1.最大性能模式这种模式保证数据库主库性能最大化,主备库之间数据是异步传输的.即,主备日志归档以后才会传输到备库,在备库上使用归档日志文件做恢复操作.这种模式提供在不影响prim ...
- Oracle 11g Dataguard 配置,维护与详解 (ADG)
一.前言: 本手册主要记录如何配置,还介绍了配置原因,以及注意要点,已经主备切换,以及故障转移等重要操作步骤,我希望这个文章可以作为进行dataguard配置的一个参考手册. 二.前提 1.主库是归档 ...
- 探索Oracle11gR2 之 DataGuard 三种保护模式
Oracle的DataGuard技术有三种实现模式,分别是max performance.max availability.maxprotection这三种模式. 以下是来自Oracle文档的摘要信息 ...
- 聊聊Dataguard的三种保护模式实验(上)
Data Guard是Oracle高可用性HA的重要解决方案.针对不同的系统保护需求,DG提供了三种不同类型的保护模式(Protection Mode),分别为:最大保护(Maximum Protec ...
- Oracle Dataguard三种保护模式
Oracle Dataguard提供了三种数据保护模式,在此分别总结一下三种数据保护模式的特点. 1.最大保护模式1)这种模式提供了最高级别的数据保护能力:2)要求至少一个物理备库收到重做日志后,主库 ...
- Oracle Dataguard三种保护模式概述(转)
Oracle的DataGuard技术有三种实现模式,分别是max performance.max availability.max protection这三种模式. 以下是来自Oracle文档的摘要信 ...
- 聊聊Dataguard的三种保护模式实验(下)
4.最大保护模式Maximum Protection 最大保护模式是DG可以提供的最高保护级别,建立在日志同步传输和确认的基础上.同样,可以使用alter database方法进行设置. SQL> ...
- Oracle 11g DataGuard搭建(一) - 单节点到单节点
(一)DataGuard概要 DataGuard中文称为”数据卫士“,提供了数据库高可用性.数据保护和灾难恢复的功能.DataGuard通过建立primary数据库和standby数据库来确立参照关系 ...
随机推荐
- spring4.0.0的配置和使用
1.创建一个javaproject或者webproject,我创建的时webproject,编译器用的时myeclipse2013 2.在lib文件夹以下倒入spring须要的一些核心包例如以下 还需 ...
- JAVA学习第二十五课(多线程(四))- 单例设计模式涉及的多线程问题
一.多线程下的单例设计模式 利用双重推断的形式解决懒汉式的安全问题和效率问题 //饿汉式 /*class Single { private static final Single t = new Si ...
- 身份证归属地查询免费api接口代码
描写叙述 :依据身份证编号 查询归属地信息. 身份证实体类: package org.wx.xhelper.model; /** * 身份证实体类 * @author wangxw * @versio ...
- 将web工程部署到tomcat
http://blog.csdn.net/lucklq/article/details/7621807 http://jingyan.baidu.com/article/466506582f2f4af ...
- golang生成随机函数的实现
golang生成随机数可以使用math/rand包, 示例如下: package main import ( "fmt" "math/rand" ) func ...
- Linux - 命令行 管道(Pipelines) 具体解释
命令行 管道(Pipelines) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24249529 管道操作符" ...
- mysql分组查询n条记录
当业务逻辑越来越复杂时,这个查询的需求会越来越多,今天写成笔记记录下来,防止再忘记 SELECT * FROM `notice` a where add_time > 1513008000 an ...
- 【题解】 CF11D A Simple Task
[题解] CF11D A Simple Task 传送门 \(n \le 20\) 考虑状态压缩\(dp\). 考虑状态,\(dp(i,j,O)\)表示从\(i\)到\(j\)经过点集\(O\)的路径 ...
- python调试利器:最直观简洁的错误日志
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2018-08-30 17:12:27 # @Author : Sheldon (thi ...
- 安装pymysqlpool并使用(待补充)
pip3 install PyMysqlPool 第一个错,提示没有装c++ 14.0,下载安装报下一个错 error: Setup script exited with error: Microso ...