博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Data Guard 三种模式解释
阅读量:5036 次
发布时间:2019-06-12

本文共 1294 字,大约阅读时间需要 4 分钟。

Data Guard 保护模式(Data Guard Protection Modes)

对于 Data Guard 而言,其生存逻辑非常简单,由于它提供了三种数据保护的模式,我们又亲切的叫它:有三模:
 最大保护(Maximum protection):
这种模式能够确保绝无数据丢失。要实现这一步当然是有代价的,它要求所有的事务在提交前其 redo 不仅
被写入到本地的 online redo log,还要同时提交到 standby 数据库的 standby redo log,并确认 redo 数据至少在一
个 standby 数据库可用(如果有多个的话),然后才会在 primary 数据库上提交。如果出现了什么故障导致 standby
数据库不可用的话,primary 数据库会被 shutdown。
 最高性能(Maximum performance):
这种模式提供在不影响 primary 数据库性能前提下最高级别的数据保护策略。事务可以随时提交,当前
primary 数据库的 redo 数据也需要至少写入一个 standby 数据库,不过这种写入可以是不同步的。
如果网络条件理想的话,这种模式能够提供类似最高可用性的数据保护而仅对 primary 数据库有轻微的性能
影响。
 最高可用性(Maximum availability):
这种模式提供在不影响 primary 数据库可用前提下最高级别的数据保护策略。其实现方式与最大保护模式类
似,也是要求所有事务在提交前必须保障 redo 数据至少在一个 standby 数据库可用,不过与之不同的是,如果
出现故障导入无法同时写入 standby 数据库 redo log,primary 数据库并不会 shutdown,而是自动转为最高性能
模式,等 standby 数据库恢复正常之后,它又会再自动转换成最高可用性模式。

 

         首先需要搞明白oracle执行方式。如执行一条数据操作后,比如插入数据行,oracle不会在数据库中立即执行的。而是把你的这条sql语句写到日志里(可理解成redo log),然后再传一份log给备库。

     启用data guard后,这三种模式实际上就是当redo log没法传到备库会怎样。

    最大保护,就是发现当redo log没法传到至少一个备库时,主库上就不执行这条命令。这种模式性能最低,但最安全。

    最大性能,就是不管redo log能不能传到至少一个备库,主库都会执行这条命令。这种模式性能最高,但最不安全。

     最大可用,当 redo log可以传到至少一个备库时,和最大保护模式相同。但如果不能传到至少一个备库是,就自动转到最大性能模式既执行这条命令。这种模式性能和安全性取中间。

 

 最大保护及最高可用性需要至少一个 standby 数据库 redo 数据被同步写入。三种模式都需要指定LOG_ARCHIVE_DEST_n 初始化参数

转载于:https://www.cnblogs.com/suixufeng/archive/2013/04/02/3336075.html

你可能感兴趣的文章
VSTO学习笔记(十四)Excel数据透视表与PowerPivot
查看>>
Xamarin.Android 的 Google 登入
查看>>
HashMap与HashTable的区别
查看>>
从jvm的角度来看java的多线程
查看>>
微服务实战(四):微服务化之无状态化与容器化
查看>>
iphone--FMDatabase 使用
查看>>
【递归打卡1】在两个长度相等的排序数组中找到上中位数
查看>>
DSO 代码框架
查看>>
图的遍历之深度优先搜索(DFS)
查看>>
使用Shader制作loading旋转动画
查看>>
hdu1251 hdu1247 hdu4099 字典树
查看>>
TModJS:使用tmodjs
查看>>
DCloud-MUI:杂项
查看>>
[Noi2016]国王饮水记
查看>>
Elasticsearch和mysql数据同步(elasticsearch-jdbc)
查看>>
pyqt5的安装
查看>>
Codeforces Round #439 (Div. 2)
查看>>
Centos下PHP7.1打开Oracle扩展
查看>>
变量、初始化块和构造方法的初始化顺序问题(笔试题)
查看>>
前端 ---- js 模拟百度导航栏滚动案例
查看>>