本文永久链接地址:https://www.askmac.cn/archives/oracle-11g-ocm-dg.html
10.Oracle Data Guard 介绍
10.1目标
在完成了这个课程后,你应该能够:
- 描述Oracle Data Gurad
- 解释物理和逻辑备库的区别
- 解释实施Oracle Data Gurad 的好处
10.2 什么是Oracle Data Gurad?
Oracle Data Guard 是Oracle数据库高可用(HA)解决方案中的一个重要组成部分,设置其可以帮助管理组织,确保业务连续性,,减少各种可以影响企业的计划和计划外停机时间。
Oracle Data Guard 是一个管理,监控和自动化软件就的基础设施,使用一个生产数据库和一个或多个备份数据库来保护你的数据,否则失败,错误,和损坏可能会破坏你的数据库。其通过自动化的创建,管理和监控数据库和Data Guard配置的组件来保护关键的数据。它的自动过程维护一个Oracle 生产数据库的副本(被称为备份数据库),可以在生产库进行常规维护被脱机或者损坏的时候使用。
在一个Data Guard 配置中,一个生产库数据库被称为主库。一个备份数据库是主库的一个同步拷贝。使用主库的一个备份拷贝,你可以创建1到9个备份数据库。备份数据库和主库一起组成了一个Data Guard 配置。
所有的Data Guard 备份数据库可以使最新的读访问到备份数据库,当redo 从主库上接收到并且被应用时。这使得所有的备份数据库是主库的优秀候选库,支持只读查询和报告。
10.3 备份数据库的类型
- 物理备份数据库:
物理备份数据库和主库物理相同,在磁盘上的数据库结构,块的基础上于主库是相同的。物理备份数据库从主库接收redo数据库然后执行恢复来进行更新。oracle 数据库11g的物理备份数据库,可以在数据库打开为只读模式的时候,接收和应用redo。
- 逻辑备份数据库:
一个逻辑备份数据库包含于主机相同的逻辑结构(除非配置跳过某些对象),虽然物理组织和数据库的结构不一样。逻辑备库在接收到从主库传递过来的redo后,将其装换为SQL语句,然后再在备库上执行SQL语句。这个是对从主库接收的redo数据,使用LogMiner技术。在逻辑备库中的表可以同时用于恢复和其他的任务,例如:报告,总结和查询。
- 快照备库
一个快照备库是一个从物理备份转换而来的。快照备库会从主库接收redo,但是不会应用这些redo,直到其转换回一个物理备库。快照备库可以被用来更新,但是这些更新在快照备份转换回一个物理备库时被丢弃。当你需要在物理备份数据库上进行临时更新版本时,快照备份很适用。
10.4 Data Gurad 服务的类型
Data Guard 有以下可用类型的服务:
- redo 传输服务:
控制从主库自动传输redo信息到一个或者多个备份或归档路径。
- 应用服务:
控制备份数据库的数据什么时候如何应用。
–redo 应用:
物理备库使用的技术。在备库上的redo数据使用oracle介质恢复的方式被应用
–SQL应用:
逻辑备库使用的技术。接收的redo数据首先被转化为SQL语句,然后在逻辑备库上这些产生的SQL语句被执行。
- 角色管理服务:
数据库操作在2个互斥的角色之中:主库和备库。角色管理服务操作,于redo 传输服务和应用服务相结合,来动态的改变这些角色,作为一个计划转换(被称为切换操作)或者由于数据库故障导致的故障转移操作。
10.5 角色转换:切换和故障转移
Data Gurad 可以让你使用SQL语句动态的变更一个数据库的角色,或者也可以使用Data Guard broker接口。Data Gurad 支持2中角色变换的操作:
- 切换:
切换特性可以让你将主库的角色切换到一可用的备库上。这个被选中的备库将变成主库,并且原来的主库将变成一个备份数据库。
- 故障转移:
当灾难性的故障发生在主库上时,你可一直调用一个故障转移操作。在一个故障转移操作中,失败的主库被Data Gurad环境移除,并且一个备库假设为主库角色。你可以在想故障转移到主库角色的备库上,调用故障转移操作。你也可以开启快速故障转移,这个可以让Data Guard 自动地和迅速的故障转移到一个之前选择同步的备库数据库。
数据库在角色转换之后被禁用,没有从broker 配置中移除,但是在数据库禁用的意义上,数据库不在被broker管理。为了重新使用broker管理这些数据库,你必须恢复或者创建数据库。
10.6 oracle Data Gurad Broker 框架
Oracle Data Guard Broker
Oracle Data Guard Broker是一个分布式管理框架,自动化和集中创建,维护,和监控Data Guard 配置。在创建Data Gurad 配置之后,broker监控在配置中所有系统的活动,健康和可用性。
10.7选择一个接口来管理一个Data Gurad 配置
你可以使用OEMGC或者Data Guard broker 自身指定的命令行接口(DGMGRL)来利用broker的管理能力。
EMGC提供了一个基于WEB的接口,融合了broker的集中管理和监控能力,这样你可以在一个Data Guard 配置中简单查看,监控,和管理主库和备份数据库。
你也可以是用DGMGRL来控制和监控一个Data Gurad 配置。你可以执行管理和监控数据库的大部分活动,都需要配置DGMGRL指示或者脚本。
如果你没有创建一个Data Gurad broker配置,你可以通过SQL命令来管理备份数据库。
10.8 Oracle Data Gurad:结构(概述)
oracle Data Guard 利用现有数据库的rado-生成结构来保证备库与主库的同步。通过使用现有的结果,oracle Data Gurad 最大限度的减少其对主库的影响。
oracle Data Guard 使用几个进程来实现必要的自动化灾难恢复和高可用性。其中的一些进程在介绍Data Gurad之前就存在;其他的支持创建特殊的Oracle Data Guard。这些进程在接下来将详细的说明 。
10.9 主数据库进程
在主数据库上,Data Guard 使用下列进程:
- LGWR:
LGWR 收集事务redo信息和更新在线redo 日志。对于每个同步(SYNC)的备份数据库,LGWR将redo传递给LNS进程(日志网络写服务),其将redo 直接传递到备库数据库的远程文件服务进程(RFS)。LGWR在承认commit之前等待LNS进程确认。对于异步的(ASYNC)备份数据库,独立的LNS进程既从内存中redo log buffer读取,也从在线redo log file读取,然后传递这些redo 到备库。除了开启异步LNS进程,LGWR不会与任何异步备份路径交互。
- ARCn:
ARCn进程在本地创建了一个在线redo文件的拷贝,在主库恢复操作中使用。ARCn也承担了将redo数据传递到一个备库的一个RFS进程,并且在所有备库上主动监测和解决gap。
10.10 备库进程
在备份数据库上,Data Gurad 使用下列进程:
- 远程文件服务(RFS):RFS从主库接收redo信息,可以将这些redo写进standby redo log或者直接到归档日志文件。每个主库上的LNSn和ARCn进程有其自己的RFS进程。
- ARCn:ARCn进程归档standby redo logs
- 恢复管理(MRP):只有物理备库才有,MRP在物理备库上应用归档日志信息。如果你使用SQL语句ALTER DATABASE RECOVER MANAGED STANDBY DATABASE来启动MRP,这个前台会话执行恢复。如果你使用了选项DISCONNECT [FROM SESSION]子句,MRP后台进程启动。如果你使用Data Guard broker来管理你的备份数据库,broker总是在物理备库上开启MRP后台进程。
- 逻辑standby(LSP):只指定逻辑备库,LSP控制在逻辑备库上应用归档日志信息。
10.11 物理备库redo 应用结构
Data Guard 物理备份 redo 应用结构包括:
- 一个生产(主)数据库,可以与1个或多个备库相关(最多9个),是生产数据库的相同副本。限制备库为9个的是被施加的LOG_ARCHIVE_DEST_n参数。在11g中,这个参数对大值是10.其中1个用于本地归档路径,剩下的9个用来做备份数据库。
注意:你可以使用级联redo 日志路径特性来在你的配置中,包含超过9个备份数据库。
- 备份数据库,自动的被从主库传递过来的redo所更新。再主库上,redo可以在产生或者被归档后传递。通过使用oracle介质恢复,redo被每个备份数据库应用。在计划时间内,你可以执行一个切换到一个备库。当一个故障发生时,你额可以执行一个故障转移到其中一个备库。物理备库也可以用来转回到主库。
10.12 逻辑备库:SQL应用结构
在一个逻辑备库的配置中,Data Guard SQL 应用从主库传递过来的redo信息。但是,并不是使用介质恢复来应用变更(这个是物理备库的配置),redo 数据通过LogMiner技术被转化为等价的SQL语句。然后这些SQL被应用到逻辑备库。逻辑备库可以在读写模式下打开,并且可以进行报表。
一个逻辑备库可以被用于滚动数据库升级,从而在升级到新数据库补丁或者整个数据库版本时,减少停机时间。
10.13 GAP自动检测和解决
如果主库在一个或多个备库之间的连接丢失,在主库上生成的redo数据库就不能发生到这些备库。当重新连接时,Data Gurad自动的检测缺失的归档日志文件(被称为gap),然后自动的通过ARCn进程,发送这些丢失的归档日志文件到备库。备库上不需要DBA手动的介入,就可以完成与主库的同步。
10.14 数据保护模式
Data Guard 提供了三种等级的数据保护模式,你可以平衡开销,可用性,性能和传输保护来配置。你可以配置Data Gurad环境为 最大保护,可用,或者性能。
最大保护模式:
这个模式保证了,如果主库故障,不会发生数据丢失。在这个等级的保护下,在事务提交前,每个事务的redo数据必须写到在线redo日志和至少一个备库的standby redo日志(用来接收存储从其他数据库的redo)中。为了确保不会发生数据丢失,如果一个故障阻止主库往至少一个远程standby redo log写redo,主库会被不可用。
最大可用性模式:
这个模式在提供了最高等级数据保护的同时,也不会影响主库的可用性。在最大保护模式,一个事务在其恢复需要的redo被写到本地在线redo和至少一个远程standby redo之前,不会提交。于最大保护模式不同,主库在一个故障阻止主库往至少一个远程standby redo log写redo时不会不可用。而是主库将运行在异步模式上,直到故障被纠正,并且所有的gap的redo日志文件被解决。当所有的gaps被解决,并且主库与备库是同步的,主库会自动的重新恢复为最大可用性模式。
如果主库故障,这个模式不会发生数据丢失,除非第二个故障没有阻碍一个完整的redo数据从主库发送到至少一个备库。
最大性能模式(默认):
默认的保护模式在不影响主库性能的同时,提供了最大的数据保护。其允许数据能够尽快的提交,那些需要的事务redo被写入到本地在线redo日志。主库的redo 数据流都是使用ASYNC写入到备库,并且与那些事务创建的redo 数据是异步写入的。
10.15 Data Guard 操作需求
1.硬件和操作系统:
主库系统和备库系统可能不一样:
- CPU结构
- 操作系统
- 操作系统位数(32位或者64位)
- oracle 数据库位数(32位或者64位)
以下是Data Gurad所需求的:
- 主库和备库系统上的硬件可以是不同的。例如,CPU数目,内存大小,存储配置可以不同。
- 两者的操作系统和操作系统位数合一不一样。如果主库和备库在相同的服务器上,你不想确保操作系统可以让你同时挂载2个相同名称的数据库。特定的参数必须指定来支持这个配置。之后会将如何使用SQL和RMAN来创建一个物理备库。
可以在MOS上 Note 413484.1 获得额外信息
2.oracle数据库软件:
- 在你的Data Gurad配置中,主库和所有备库上安装的oracle数据库企业软件需要是相同的版本。oracle Data Gurad是数据库企业版的一个特性;其在标准版中不可用。
- 如果你在一个Data Gurad 配置中使用了ASM和OMF,对称的需要在主库和备库上使用ASM和OMF。如果在你的Data Gurad 配置中任何数据库使用ASM,OMF或者ASM+OMF,那么每个配置中的数据库都应该有相同的组合(也就是ASM,OMF或者ASM+OMF)
注意:有一种方式除外,如果你使用Data Gurad 作为迁移到ASM或OMF的技术。
10.16 实现Oracle Data Guard 的好处
Oracle Data Gurad 提供了下列好处:
- 连续性服务:在系统之间使用切换和故障转移,在一个位置发生灾难不会导致你的业务中断。
- 完整的数据保护:Data Guard 保证不会丢失数据,并提供了一个防止数据损坏和用户错误的安全措施。redo数据在备库上应用时被验证
- 消除空闲的备份系统:备份数据库在除了提供一个灾难恢复的安全措施外,还可以进行报表和临时查询。你也可以使用物理备库来替代主库上的备份。
- 灵活的配置:你可以使用需要的保护模式,和一些可调配的参数,来使用Data Guard配置你的系统。
- 集中管理:你可以是用EMGC来管理所有企业中的配置。
10.17 总结
在这个课程中,你可以学会如何:
- 描述Oracle Data Guard 中的基础组件
- 解释物理备库和逻辑备库的区别
- 解释创建一个Data Guard 环境的好处
Comment