Oracle Dataguard 介绍
Oracle DataGuard介绍
一、 DataGuard的基本原理
当某次事务处理对生产数据库中的数据作出更改时,Oracle数据库将在一个联机重做日志文件里记录此次更改。在DataGuard中能够配置写日志的这个过程,除了把日志记录到本地的联机日志文件和归档日志文件里,还能够通过网络,把日志信息发送到远程的从(standby)数据库server上。这个备用日志文件写入过程能够是实时、同步的,以实现零数据丢失(最大保护模式maximum
protection);也能够是异步的,以降低对网络带宽的压力(最大性能模式maximum performance);或者是异步和同步能够自己主动切换的模式(最大可用模式maximum availability)。当备份数据库接收到日志信息后,Data
Guard能够自己主动利用日志信息实现数据与主数据库的实时同步。当主数据库打开并处于活动状态时,备用数据库能够运行恢复操作,假设主数据库出现了故障,备用数据库即能够被激活并接管生产数据库的工作。
二、 3种模式的特点
|
保护模式 |
在出现灾难时数据丢失的风险 |
重做传输机制 |
是否须要standby redo log |
磁盘写入 |
|
最大保护 |
零数据丢失 |
LGWRSYNC |
YES |
AFFIRM |
|
最高可用性 |
零数据丢失 |
LGWRSYNC |
YES |
AFFIRM |
|
最高性能 |
最小数据丢失 - 通常为几秒 |
LGWR ASYNC 或 ARCH |
可没有但推荐有 |
AFFIRM |
AFFIRM:表示主数据库上的REDO LOG仅仅有被写入到从数据库的standby log才算有效。
1 最大保护模式
最大保护模式为主数据库提供了最高水平的数据保护,从而确保了一个全面的零数据丢失灾难恢复解决方式。当在最大保护模式下执行时,重做记录由日志写入器 (LGWR) 进程从主数据库同步地传输到备用数据库,而且直到确认事务数据在至少一个备用server上的磁盘上可用时,才在主数据库上提交事务。强烈建议,这样的模式应至少配置两个备用数据库。当最后參与的备用数据库不可用时,主数据库上的处理将停止。这就确保了当主数据库与其全部备用数据库失去联系时,不会丢失事务。
因为重做传输的同步特性,这样的最大保护模式可能潜在地影响主数据库响应时间。能够通过配置一个低延迟网络,并为它分配足够应付高峰事务负载的带宽来将这样的影响减到最小。须要这样的最大保护模式的企业有股票交易所、货币交易所、金融机构等。
2 最高可用性模式
最高可用性模式拥有仅次于最高水平的主数据库数据可用性。如同最大保护模式一样,重做数据由 LGWR 从主数据库同步地传输到备用数据库,直到确认事务数据在备用server的磁盘上可用时,事务才在主数据库上完毕。只是,在这样的模式下(与最大保护模式不同),假设最后參与的备用数据库变为不可用
— 比如因为网络连接问题,处理将在主数据库上继续进行(类似于MySQL-5.5中的半同步复制)。备用数据库与主数据库相比,可能临时落在后面,但当它再次变为可用时,备用数据库将使用主数据库上累积的归档日志自己主动同步,而不会丢失数据。
因为同步重做传输,这样的保护模式可潜在地影响响应时间和吞吐量。能够通过配置一个低延迟网络,并为它分配足够应付高峰事务负载的带宽来将这样的影响减到最小。
最高可用性模式适用于想要确保获得零数据丢失保护,但不想让生产数据库受网络/备用server故障影响的企业。假设又一个故障随后影响了生产数据库,然后最初的网络/备用server故障得到解决,那么这些企业将接受数据丢失的可能性。
3 最高性能模式
最高性能模式是默认的保护模式。它与最高可用性模式相比,提供了略微少一些的主数据库数据保护,但提供了更高的性能。在这样的模式下,当主数据库处理事务时,重做数据由 LGWR 进程异步传输到备用数据库上。另外,也能够将主数据库上的归档器进程 (ARCH)
配置为在这样的模式下传输重做数据。在不论什么情况下,均先完毕主数据库上的写操作,主数据库的提交操作不等待备用数据库确认接收(类似于MySQL中的异步复制)。假设随意备用目标数据库变为不可用,则处理将在主数据库上继续进行,这对性能仅仅有非常小的影响或没有影响。
在主数据库出现问题的情况下,尚未被发送到备用数据库的重做数据会丢失。可是,假设网络有足够的吞吐量来跟上重做流量高峰,而且使用了 LGWR 进程来将重做流量传输到备用server,则丢失的事务将很少或者为零。
三、 Oracle Dataguard三种保护模式特点
1 最大保护模式
1).这样的模式提供了最高级别的数据保护能力
2).重做日志在至少一个物理从库数据库后,主库的事务才可以提交
3).主库找不到合适的从库写入时,主库会自己主动关闭,防止无保护的数据出现
4).长处:该模式能够保证从库没有数据丢失
5).缺点:主库的自己主动关闭会影响到主库的可用性,同一时候须要从库恢复后才干提交,对网络等客观条件要求很的高,主库的性能会受到很大的影响。
2 最大可用性模式
1).这样的模式提供了仅次于“最大保护模式”的数据保护能力
2).重做日志在至少一个物理从库数据库后,主库的事务才可以提交
3).主库找不到合适的从库写入时,主库不会关闭,而是暂时减少到“最大性能模式”模式,直到问题得到处理
4).长处:该模式能够在没有问题出现的情况下保证从库没有数据丢失,是一种折中的方法
5).缺点:在正常执行的过程中缺点是主库的性能收到诸多因素的影响
3 最大性能模式
1).默认模式,提供主数据库的最高可用性
2).保证主库执行过程中不受从库的影响,主库事务正常提交,不因从库的不论什么问题影响到主库的执行
).长处:避免了从库对主数据库的性能和可用性影响
).缺点:假设与主库提交的事务相关的恢复数据没有发送到从库,这些事务数据将被丢失,不能保证数据无损失
Oracle Dataguard 介绍的更多相关文章
- 9. Oracle DataGuard的介绍
一. Oracle DataGuard简介 Oracle DataGuard:简称DG.是由一个Primary Database(主库)和一个或者多个Standby Database(备库)组成.对O ...
- Oracle DataGuard数据备份方案详解
Oracle DataGuard是一种数据库级别的HA方案,最主要功能是冗灾.数据保护.故障恢复等. 在生产数据库的"事务一致性"时,使用生产库的物理全备份(或物理COPY)创建备 ...
- Oracle dataguard 正常切换和应急切换
oracle dataguard提供异地容灾方案,能有效的防止单点故障和提供高可用技术,这里介绍dataguard正常主备切换和应急切换(应急切换模拟主库出现问题无法还原,备库脱离dataguard接 ...
- oracle dataguard主从切换
前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...
- Oracle Dataguard之failover
Oracle Dataguard中,角色转换包含两类:Switchover和Failover.上文<Oracle Dataguard之switchover>中,我们已经谈过了switcho ...
- Oracle Dataguard之switchover
Oracle Dataguard的角色转换包含两类:Switchover和Failover.Switchover指主备之间角色转换,主库降为备库,备库升级为主库.而failover则是指主库出现问题时 ...
- Oracle Dataguard之Real-Time Apply
Oracle Dataguard一共支持三种模式:最大可用模式(Maximum Availability),最大性能模式(Maximum Performance),最大保护模式(Maximum Pro ...
- Oracle Dataguard之物理standby的基本配置
尽管网上有很多Oracle Dataguard的配置教程,但不难发现,很多采用的是rman duplicate这种方法,尽管此种方法较为简便.但在某种程度上,却也误导了初学者,虽说也能配置成功,但只知 ...
- 【体系结构】Oracle参数介绍
[体系结构]Oracle参数介绍 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩ ...
随机推荐
- Windows下与Linux下编写socket程序的区别 《转载》
原文网址:http://blog.chinaunix.net/uid-2270658-id-308160.html [[Windows]] [Windows: 头文件的区别] #include< ...
- Enterprise Solution 企业管理软件开发框架
Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架 Enterprise Solution 是一套管理软件开发框架,在 ...
- 特殊的Windows消息
WM_CREATE消息 该消息是Windows发送给视图的第一个消息.由于当应用程序框架调用Create函数时该消息就会被发送,而此时窗口创建还未完成,窗口还不可见,因此在控制函数OnCreate内部 ...
- c++ inheritance -- 继承
c++ inheritance -- 继承 终于要决心弄明白继承了,以前仅限于大学时学习,以后工作也没有用,现在就依照(百度百科)文章写些测试的代码. 文章说 ==================== ...
- C++ 可以多个函数声明
c/c++可以有多个函数声明,但实现只能有一个 例子: //file t_defs.h #ifndef _T_DEFS_H_ #define _T_DEFS_H_ void say(void); #e ...
- 浅谈mapreduce程序部署
尽管我们在虚拟机client上能非常快通过shell命令,进行运行一些已经封装好实例程序,可是在应用中还是是自己敲代码,然后部署到server中去,以下,我通过程序进行浅谈一个程序的部署过程. 在启动 ...
- 与众不同 windows phone (19) - Device(设备)之陀螺仪传感器, Motion API
原文:与众不同 windows phone (19) - Device(设备)之陀螺仪传感器, Motion API [索引页][源码下载] 与众不同 windows phone (19) - Dev ...
- 系统变量file.encoding对Java的运行影响有多大?(转)good
这个话题来自: Nutz的issue 361 在考虑这个issue时, 我一直倾向于使用系统变量file.encoding来改变JVM的默认编码. 今天,我想到, 这个系统变量,对JVM的影响到底有多 ...
- Delphi基础Write写入结构体到文件(使用 file of myrecord就行了,真简单)
program WriteStruct; {$APPTYPE CONSOLE} uses SysUtils; //写入结构体 type TCustomer = record ID: ]; Code: ...
- [Android学习笔记]双缓冲绘图技术
双缓冲技术绘图: 什么情况下产生的双缓冲技术?当数据量很大时,绘图可能需要花费很长的时间,这样屏幕就会出现卡顿,闪烁等现象. 什么是双缓冲技术?双缓冲是在内存中创建一个与屏幕绘制区域一致的对象,先将图 ...