DataGuard基本理论

Data Guard概述

一个Data Guard 配置包含一个Primary 数据库和最多九个Standby 数据库。Primary 的创建就不说了,Standby 数据库初始可以通过primary 数据库的备份创建。一旦创建并配置成standby 后,Data Guard 负责传输primary数据库redo data standby 数据库,standby 数据库通过应用接收到的redo data 保持与primary 数据库的事务一致。

Data Guard的管理方式

命令行管理;

Data Guard broker提供的专用命令行界面(DGMGRL);

OEM图形化管理界面;

Data Guard服务(Data Guard Services)

REDO 传输服务(Redo Transport Services)

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

Log 应用服务(Log Apply Services)

应用redo 数据到standby 数据库,以保持与primary 数据库的事务一致。redo 数据即可以从standby 数据库的归档文件读取,也可直接应用standby redo log 文件(如果实时应用打开了的话)

角色转换服务(Role Transitions)

Dg 中只有两种角色:primary standby。所谓角色转换就是让数据库在这两个角色中切换,切换也分两种:switchover failover

switchover:转换primary 数据库与standby 数据库。switchover 可以确保不会丢失数据。

failover:当primary 数据库出现故障并且不能被及时恢复时,会调用failover 将一个standby 数据库转换为新的primary 数据库。在最大保护模式或最高可用性模式下,failover 可以保证不会丢失数据。

Data Guard的三种保护模式

最高可用性

这种模式提供在不影响primary 数据库可用前提下最高级别的数据保护策略。其实现方式与最大保护模式类似,也是要求所有事务在提交前必须保障redo 数据至少在一个standby 数据库可用,不过与之不同的是,如果出现故障导入无法同时写入standby 数据库redo logprimary 数据库并不会shutdown,而是自动转为最高性能模式,等standby 数据库恢复正常之后,它又会再自动转换成最高可用性模式。

最大保护

这种模式能够确保绝无数据丢失。要实现这一步当然是有代价的,它要求所有的事务在提交前其redo 不仅被写入到本地的online redo log,还要同时提交到standby 数据库的standby redo log,并确认redo 数据至少在一个standby 数据库可用(如果有多个的话),然后才会在primary 数据库上提交。如果出现了什么故障导致standby数据库不可用的话,primary 数据库会被shutdown

最大性能

这种模式提供在不影响primary 数据库性能前提下最高级别的数据保护策略。事务可以随时提交,当前primary 数据库的redo 数据也需要至少写入一个standby 数据库,不过这种写入可以是不同步的。如果网络条件理想的话,这种模式能够提供类似最高可用性的数据保护而仅对primary 数据库有轻微的性能影响。

物理和逻辑Data Guard的比较

物理DataGuard

逻辑DataGuard

Standby数据库和Primary数据库完全一致

Standby数据库和Primary数据库不完全一致

通过Oracle的介质恢复机制应用redo文件

通过OracleSQL方式来应用redo文件

应用redoStandby数据库不能被打开;

Read-only模式时可以在Standby中执行查询和接收redo文件,但不能应用redo文件;

Read-write模式时standby中停止接收redo文件,保护作用失去;

没有访问模式的区别,随时可以以read-write模式访问standby数据库且随时都接收和应用redo文件

没有数据类型或其他的限制

逻辑standby 对于某些数据类型以及一些ddl,dml 会有操作上的限制

Data Guard的软硬件需求

硬件及操作系统需求

u 同一个Data Gurid 配置中的所有oracle 数据库必须运行于相同的平台。比如inter 架构下的32 linux 系统可以与inter 架构下的32 linux 系统组成一组Data Guard。另外,如果服务器都运行于32 位的话,64 HP-UX 也可以与32 HP-UX 组成一组Data Guard

u 不同服务器的硬件配置可以不同,比如cpu 啦,内存啦,存储设备啦,但是必须确保standby 数据库服务器有足够的磁盘空间用来接收及应用redo 数据。

u primary 数据库和standby 数据库的操作系统必须一致,不过操作系统版本可以略有差异,比如(linux as4&linux as5)primary 数据库和standby 数据库的目录路径也可以不同。

2、软件需求

u Data Guard Oracle 企业版的一个特性,明白了吧,标准版是不支持地。

u 通过Data Guard SQL 应用,可以实现滚动升级服务器数据库版本(要求升级前数据库版本不低于10.1.0.3)

u 同一个Data Guard 配置中所有数据库初始化参数:COMPATIBLE 的值必须相同。

u Primary 数据库必须运行于归档模式,并且务必确保在primary 数据库上打开FORCE LOGGING以避免用户通过nologging 等方式避免写redo 造成对应的操作无法传输到standby 数据库。

u Primary standby 数据库均可应用于单实例或RAC 架构下,并且同一个data guard 配置可以混合使用逻辑standby 和物理standby

u Primary standby 数据库可以在同一台服务器,但需要注意各自的数据文件存放目录,避免重写或覆盖。

u 使用具有sysdba 系统权限的用户管理primary standby 数据库。

u 建议数据库必须采用相同的存储架构。比如存储采用ASM/OMF 的话,那不分primarty 或是standby也都需要采用ASM/OMF

u 注意各服务器的时间设置,不要因为时区/时间设置的不一置造成同步上的。

Oracle Data Guard中的redo logs

Oracle Data Guard中包含两类redo logsArchived redo logsStandby redo logs

通过RFS 进程接收primary 数据库的redo,保存在本地,就是Standby redo logs standby redo logs standby 数据库特有的文件(如果配置了的话),就本身的特点比如文件存储特性,配置特性等等都与online redo logs 非常类似,不过它存储的是接收自primary 数据库的redo 数据,而online redo logs中记录的是本机中的操作记录。

注:本文内容源自《三思笔记-一步一步学DataGuard》的摘记和自我体会[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14338195/viewspace-1052159/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14338195/viewspace-1052159/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值