guard的体系结构

来源:互联网 发布:传智播客全套java云盘 编辑:程序博客网 时间:2024/06/06 13:02


传输重做数据,然后应用重做数据。
重做数据包括oracle数据库恢复数据库事物需要的所以数据。
生产数据库将重做数据传输给一个或多个独立副本。
备用数据库处于连续的恢复状态,验证并应用应用重做数据,从而与主数据库保持同步。如果因为网络中断或
备用数据库断电导致备用数据库与主数据库应用主之间的连接临时中断,dataguard还会自动重新同步备用数据库,这个简单架构使得当主数据库按计划停运或意外中断后,一个或多个同步副本立即可供使用,从而恢复正常处理。
dataguard只传输恢复数据库事物所需的重做日志,以便同步备用数据库和相应的主数据库。dataguard在备用数据库上更改前还执行oracle验证,以免扩散主数据库中受损数据。


重做记录包含重做生成数据库更改所需的所有信息。在介质恢复期间,数据库将读取重做记录中的更改向量,并为相关数据块更改信息。
可采用循环方式将
重做记录缓存到系统全局区SGA的重做日志缓冲区中。日志写入器(LGWR)是负责管理重做日志缓冲区的数据库后代进程。
LGWR在指定时间将重做条目写入到一个顺序文件,即联机联机重做日志文件,从而在重做日志缓冲区中为新条目腾出空间。
LGWR总是写入自上次写入以来复制到重做日志缓存区的所有重做条目。
LGWR写入以下内容:
1.提交记录,每次事物提交时,LGWR将重做日志缓冲区中的事物重做记录写入到ORL中,并指定系统更改号(SCN)来确定每个提交事物的重做记录。
 仅当与给定事物关联的所有重做记录都写入ORL时,才能通知用户进程事物已经提交.
2.如果重做日志缓冲区满度达到1/3,或者距LGWR上次写入ORL又过了3秒,则将日志缓冲区中的所有重做条目写入到ORL中。
LGWR进行处理以确保事物为可恢复状态。此后。DBWn更高校地将缓冲区高速缓存中的更改转储到磁盘后,才对主数据库块进行修改。
LGWR写入重做条目是确定事物已经提交的单一事件。即使DBWn尚未将数据缓冲区中的更改转储到磁盘,oracle也能发出事物提交的成功代码。
这种处理方式可以提高性能,同时确保,如果在将所以数据块写入磁盘前主数据库崩溃,事物也不会丢失。


重做传输服务:
dataguard重做传输服务协调从主数据库到备用数据库的重做数据传输过程。同时主数据库的LGWR进程将重做数据写入到自己的ORL中。

一个独立的dataguard进程从SGA重做日志缓冲区读取信息,交给oracle net服务传输到备份数据库,这个进程称为LNS(log network server)。
每个活动的主实例都生成自己的重做线程并且拥有相应的LNS进程,LNS进程将重做日志传输给备用数据库。

备用数据库由另一个名为RFS(remote file server)进程接收重做日志,然后写入SRL(standby redo log)文件的顺序文件中。

-------------------------------------------LNS进程的重做传输方法:同步和异步---------------------------------------------------------

1.同步(sync)又称零数据损失方法,因为要等到LNS确认事物恢复所需的重做数据已被写入备用站点的磁盘上,才允许LGWR认可提交操作成功。
(1) 用户提交数据,事物在SGA中创建一个重做记录,LGWR从日志缓冲区读取重做日志,写入ORL,等待LNS确认
(2)LNS从日志缓存读取重做记录,通过ORACLE NET服务传送到备用数据库,RFS接收重做数据,然后写入SRL。
(3)当RFS从磁盘接收到一个写完消息时,会将一个确认消息传回给主数据库上的LNS进程,LNS接着通知LGWR传输完成,LGWR接着向用户发送提交确认信息。
对主数据库性能的影响:因为要等到数据已在备用数据库收到保护的确认消息后,才能继续处理下一个任务。影响的因素:1.重做-写入大小2.可用的网络宽带3.往返网络延迟RTT4.备用数据库写入SRL的I/O性能。
可在V$SYSTEM_EVENT动态性能视图的等待事件“”中查看这些因素的累积影响。
2.异步(async)LGWR不必等待来自LNS的确认消息,无论主数据库与备用数据库相距多远,几乎不会影响到主数据库的性能。

如果LNS赶不上进度,在将重做数据传送给备用数据库前就应用了日志缓存区,LNS将自动从ORL读取和发送重做数据,当LNS赶上后,在转回到日志缓冲区读取和发送。
如果LNS落后到日志切换是LNS还在读取ORL的程度,LNS将继续读取原ORL的内容位置,在平滑到当前ORL读取和发送,当赶上LGWR进度后,转回到日志缓存区读取和发送。
在原ORL和当前ORL之间归档的任何ORL将由dataguard的间隔处理进程负责传输。(如果频频出现,可能表明没有足够大的宽带来传输重做数据流)
影响:增加了数据损失的风险。如果某个故障破坏了主数据库,而此时传输滞后尚未降至0,那么传输滞后所包含的任何已提交事物都将丢失。使用async时,提供足够大的网络宽带来处理峰值期间高速生成的重做数据,可以最大限度地降低数据损失风险。

-----------------------------------------自动处理间隔---------------------------------------------

当LNS进程停止将重做数据传输到备用数据库,而主数据库却继续提交事物,就会出现日志间隔。(每次网络或备用数据库失效时,将可能产生这种情况)
『此状态下,主数据库LWRL进程继续写入ORL,填满ORL后,会切换到新ORL,此时归档进程会在本地归档已经填满的ORL』
在中断期间,dataguard在主数据库上使用ARCH进程连续ping备用数据库来确定其状态。当正常通信后,ARCH ping进程会查询备用控制文件来确定备用数据库从主数据库接收到的最后一个完整日志文件。
dataguard需要那些日志文件来重新同步备用数据库,然后立即开始使用其他ARCH进程传输相应文件,在接下来执行日志切换时,LNS试图连接备用数据库,成功后开始传输当前重做数据,而ARCH进程在后台
处理间隔。一旦备用应用进程赶上了当前重做记录的进度,应用进程就自行转换,不在读取归档重做日志,改而读取当前SRL。
从oracle10g开始,主数据库的一个ARCH进程专门负责本地归档,从而确保在处理间隔期间,远程归档操作不影响主数据库回收其ORL。

为使备用数据库赶上进度,主数据库必须以远超平时生成重做数据的速度传输数据。dataguard架构允许使用多个后台ARCH进程来处理间隔,与此同时,LNS进程像通常一样执行当前日志流的sync或async传输。


--------------------------------------应用服务(redo apply和sql apply)----------------------------------
dataguard的主要目标:
1.防止丢失数据,让备用数据库成为主数据库的副本。dataguard还嵌入了safeguard,以免备用数据库上对主数据库上的复制来的数据库进行任何未授权的更改。
2.分类主数据库和备用数据库。以免主数据库上发生的问题影响到备用数据库,进而危机数据的保护和可用性。也可以防止备用数据库上出现的问题影响到主数据的可用性或性能。
3.主数据库出现故障时提供数据可用性和高可用性。角色转换。
4.为备用系统,存储和软件投资提供高额回报,而不会影响“数据保护和可用性”。允许将仍担任当备用角色的备用数据库投入生产,同时不影响数据保护或实现恢复时间目标的能力。

redo apply
物理备用数据库的优势:
1.全面应用和数据透明(不存在数据类型或其他约束)
2.性能卓越,易于管理,部件移动最少
3.oracle在应用前执行端到端验证,提供了防止物理损坏(包括由于写丢失造成的原因)
4.能才提供灾难恢复能力的同时,支持最新的只读查询和报表服务(active dataguard 11g)
5.能在提供灾难恢复能力的同时,从主数据库卸载备份。
6.在对主数据库进行持续的DR保护的同时,支持QA测试和其他需要读写访问的活动(11g快照备用)
7.可以执行数据滚动升级

物理备用数据库维护的备用数据库是主数据库逐块对应的精确物理副本。
当备用数据库上的RFS进程接收到重做数据,然后将其写入SRL时,redo apply使用介质恢复将SRL中的重做记录读入内存,接着直接在备用数据库上应用更改向量,介质恢复并行执行,以便获得卓越的性能。
它包括一个介质恢复协调器以及多个并行应用进程。介质恢复管理器(MRP0)管理恢复会话,按SCN顺序合并来自多个实例的重做数据。然后将重做数据解析到按应用进程划分的更改映射中。

active data guard11g通过使用查询SCN,在不影响备用应用性能的情况下,解决了读一致问题。备用数据库上的介质恢复进程在全面应用可一个事物的所有相关更改后递增查询SCN。执行只读操作的用户只能看到对应查询SCN的数据,确保与主数据库保持读一致性。这样可在介质恢复启用时以只读模式打开物理备用数据库,从而可用从主数据库卸载只读工作负荷。
损坏保护
在主数据库的重做传输期间:11g主数据库上,使用DB_UTLRA_SAFE参数启用损坏检测保护能力的效果最好
在备用数据库的应用重做期间(redo apply)11g备用数据库上,使用DB_BLOCK_CHECKSUM=FULL和DB_LOST_WRITE_PROTECT=TYPICAL参数启用损坏检测/保护能力的效果最好

sql apply
逻辑备用数据库的优势:
1.sql apply活动时,备用数据库以读写模式打开。
2.sql apply 维护一个保护设置,防止应用程序修改备用数据库中的数据
3.sql apply可用来将数据库升级到oracle新版本或新的补丁集。
逻辑备用数据库使用逻辑备用进程将更改协调应用于备用数据库。组成sql apply的多个进程读取SRL,并通过将重做数据转换为逻辑更改记录来挖掘重做数据,然后构建sql事物并将sql应用于备用数据库。

------------------------------------------保护模式:-----------------------------------
1.最高性能:async
2.最高可用性:sync 最长等待时间由net_timeout的值决定。此后将放弃备用目标,即使仍无法与备用数据库通信,也允许主数据库继续进行处理。
超过net_timeout,LGWR与LNS进程中断连接,然后在无备用数据库的情况下确认提交并且继续处理事物。
在当前ORL变满时,LGWR会轮换到新的ORL。在打开新的ORL后,LGWR在必要时终止之前的LNS进程,启动一个新的LNS进程并尝试与备用数据库建立连接。如果成功,新ORL内容照常传输。
如果未成功,会在每次日志切换时重复这个过程,直到LNS成功连接到备用数据库为止。
与此同时,主数据库归档了一个或多个尚未完整传给备用数据库的ORL,一个ARCH进程持续针对备用数据库执行ping操作,直到再次连接成功为止,然后确认备用数据库上哪些归档日志不完整或缺少。了解这些情况后
,data guard立即开始传输重新同步备用数据库需要的所有日志文件,当ping进程与备用数据库建立连接后,data guard还将在主数据库上强制做一次日志切换。这将关闭当前联机重做日志文件,初始化一个新的
LNS连接以便立即传送当前重做数据,防止在间隔同步过程中,重做传输进一步滞后。在这个过程中,仅当在自动重新同步进程尚未完成前,主数据库又出现一次故障时,才坑内损失数据。

3.最大保护:sync 如果主数据库未能从sync备用数据库接收到确认消息,主数据库将停下来并最终中止,防止出现未保护提交的情况。

------------------------------------优化async重做传输------------------------------
1.设置主数据库日志缓冲区大小
调整主数据库的日志缓冲区可减少ORL文件的I/O。
如果未在日志缓冲区找到要发送的重做数据,LNS进程将在ORL中查找。因为从内存(日志缓冲区)读取比从磁盘(ORL)读取快的多,
所以要调整日志缓冲区的大小,以便LNS总能在日志缓冲区找到要发送的重做日志。
通过监控ORL文件的I/O是否超过普通值,可以确定async LNS进程是否在频繁使用ORL文件。
增加LOG_BUFFER参数的值有助于保持LNS进程从内存读取数据。
可在X$LOGBUFFER_READHIST视图中跟踪日志缓冲区命中率。如果命中率低意味着LNS时常从ORL读取。
如果重做传输有时停止,不能紧跟上重做数据生成速度,可用考虑增大data guard11g日志缓冲区来获得更合适的命令率。
增大日志缓冲区可提高LNS进程的读取速度,即LNS获取重做数据的速度,LNS剩下的工作时通过网络发送重做日志

2在重做流进入网络前进行压缩
好处:
通过减少重做传输滞后时间来提高数据库保护级别
减少占用的网络
加快处理重做间隔
减少重做传输时间

-----------------------------------切换-------------------------------------------
切换时计划内的事件,在计划内维护期间,切换对于尽量缩短停机时间非常有用。
在迁移到新存储系统,迁移卷管理器(迁移到ASM),从单实例迁移到RAC,执行技术更新,维护操作系统或硬件甚至搬迁数据中心时,
dataguard切换还能尽量缩短停机时间。
执行切换命令步骤:
1.通知主数据库切换操作即将开始。
2.切断所有用户与主数据库的连接。
3.生成特殊重做记录来指示重做结算(EOR)
4.将主数据库转为备用数据库
5.备用数据库应用最后的EOR记录,确认没有丢失数据后,从备用转化为主数据库。
新的主数据库自动开始将重做数据传给配置中的其他所以备用数据库。在多备用配置中,转换按顺序进行,
因为每个备用数据库接收到原主数据库发送的相同EOR记录,它们知道收到下一条重做数据来自刚成为主数据库的数据库。
---------------------------------活动的备用数据库---------------------------------------
1.卸载只读查询和报表
active data guard 允许物理备用数据库在REDO APPLY处于活动状态时以只读模式打开。活动备用一直即保护DR,也提供了查询服务。
active data guard 是无与伦比的,即具有物理复制的简单性,可靠性,和高性能,又提供针对只读查询和报表的基于SQL的更复杂复制技术的很多功能。
2.卸载备份
active data guard能使用rman块更改跟踪,并执行物理备用数据库的快速联机增量备份。
-----------------------------------------快照备用------------------------------------------
3.测试
使用一条命令即可将data guard11g物理备用转换为快照备用。将其以读写模式打开,用于执行投入生产前的测试。
其背后的技术是data guard使用了闪回数据库。在备用数据库以读写模式打开前在SCN上设置保证还原点(GRP)。
主数据库的重做数据继续传给快照备用数据库,并不立即应用,而是归档备用。
测试完成后,在用第二天命令将其转回物理备用数据库。备用数据库闪回到GRP,丢弃以读写模式打开时的更改,启动redo apply,应用快照备用期间归档的主数据库重做日志,直至与主数据库保持一致。
oracle真正应用测试:它允许捕获实际生产工作负荷,然后在测试系统上重放捕获的工作负荷,再分析性能。

-------------------------------------------SRL文件------------------------------

备用数据库的RFS进程将传入的重做数据写入到SRL文件,以便这些数据永久保存在磁盘上供恢复之用。
1.应在备用数据库上进行配置,以便提高重做传输性能和数据保护级别。
2.也需要在主数据库上进行配置,为角色转换做好准备。
(1)为什么说只要存在SRL文件即可提供性能呢?
除了在最高可用和最大保护模式下必须又SRL即使在最高性能模式下此类文件也可以提高重做传输性能,因为SRL文件时已创建号的大小合适的文件池,使得RFS紧凑无需创建归档日志文件(也使得主数据库的LNS进程无需等待)如果备用数据库上不存在SRL文件,则主数据库启动以及每次切换日志时,用作异步备用目标的备用数据库的RFS进程必须创建一个大小合适的归档日志。如果备用数据库上存在SRL文件,RFS进程将注册上一个准备归档的文件,选择一个新SRL文件,然后通知LNS它准备接收重做数据。
(2)对数据保护又又什么影响呢?
在使用异步传输的最高性能模式下,您希望尽量降低丢失数据的风险。当主数,据库出现故障转移时,将可在备用数据库上恢复在当前重做流中发送的大量重做数据。
如果主数据库停运,而且与备用数据库的连接中断导致相应RFS进程停运,已有的SRL文件确实有用,已接收的重做数据安全地保存在SRL文件中,在故障转移时可用恢复他们,而如果没有SRL文件,重做数据就会丢失,因为部分归档日志被删除了。


在最高可用性和最大保护模式下,在SRL文件执行磁盘写入操作后,才允许将确认消息发送回主数据库,这称为AFFIRM处理。
即使在使用NOAFFIRM的最高性能模式下,不使用快速SRL文件时RFS也最终可能等待异步I/O清空缓冲区,从而使LNS变得慢。
因此,必须优化备用数据库的SRL文件的I/O。要提高备用数据库的I/O性能,考虑以下最佳实践。
1.确保oracle能够使用async/IO
2.在所有I/O堆zai层最大化I/O写大小
3.将SRL文件布置到ASM磁盘组上
4.不要复用 SRL文件。


----------------调整网络
会话数据单元SDU
网络套接字缓冲区
网络队列长度




0 0
原创粉丝点击