Chinaunix首页 | 论坛 | 博客
  • 博客访问: 642924
  • 博文数量: 70
  • 博客积分: 145
  • 博客等级: 入伍新兵
  • 技术积分: 1150
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-11 08:15
个人简介

没有简介就是最好的简介

文章分类

全部博文(70)

文章存档

2020年(1)

2018年(2)

2017年(3)

2016年(11)

2015年(12)

2014年(16)

2013年(19)

2012年(6)

我的朋友

分类: Oracle

2016-03-16 22:10:15

一、DataGuard概述
     dataguard的原理是传输重做数据(redo),然后应用重做数据,重做数据中包括oracle数据库恢复数据库所需要的所有信息。生产数据库(primary database)将重做数据传输给一个或者多个独立副本(standby database)。dataguard备用数据库处于连续的恢复状态,验证并应用重做数据,从而使主数据库保持同步。如果因为网络中断或者备用数据库出现问题导致备用数据库与主数据库之间的连接临时中断,dataguard还会自动重新同步备用数据库,使得当主数据库按照计划停运或者意外中断之后,一个或多个同步的数据库可以立即使用。
      
       dataguard物理架构


dataguard逻辑架构


主库生成重做数据时,重做传输服务将重做数据从主库传输到备用数据库

应用服务验证重做数据并更新备用数据库文件
独立于dataguard,数据库写进程时时更新主数据库文件
在网络中断或者备用数据库停运后,dataguard使用已在主数据库上归档的重做数据,自动重新同步备用数据库

(由LNS传输的重做记录在备用数据库由另一个dataguard进程remote file server(RFS)接收,RFS在备用数据库上接收重做数据,然后将其写入一个名为备用重做日志(standby redo log,SRL)文件的顺序文件中,Gap resolution 保证主库传到备库的数据连续,如果redo bufferonline redo log有些文件传输失败,gap resolution会将archive redo log里面的相关内容传输到备库,保证数据的连续性

二,LFS日志传输方式
2.1 同步传输方式
      同步传输模式(synchronous transport,SYNC)又称为零数据损失方法,当用户在主库提交数据的时候,会在sga的redo缓冲区中首先记录redo信息,在提及操作的时候lgwr会将redo数据写入redo数据文件中,那么这个时候lns进程会实时的将redo数据从主库的redo缓冲区传送到备库,在备库使用rfs接受数据,传入standby logfile中,进而应用redo数据(sql apply)。在应用完成后rfs将信息返回主库进程,告知该redo条目已经在备库应用完毕,lgwr收到lns的确认消息,从而提示提交成功。

SYNC重做传输架构


虽然SYNC可以确保得到数据库提交确认的每个事务都已经受到保护,但这种方式会影响数据库的性能。因为LGWR只有等到数据已经在备用数据库受到保护的确认消息后,才能继续处理下一个事务。对数据库的性能影响大小主要有一下几方面确定:重做-写入的大小,可用的网络带宽,往返网络延迟以及备用数据库写入SRL的IO性能。

优点:保证了数据的安全;

缺点:影响主库的性能;

2.2 异步重做传输

异步传输(asynchronous transport,ASYNC)与SYNC的不同之处在于,LGWR不必等待来自LNS的确认消息,无论主备数据库相差多远,都几乎不会影响主数据库的性能。即使由于带宽有限,使得先前事务的重做数据不能立即传给备用数据库,LGWR也将继续确认提交操作成功完成,如果LNS赶不上进度,在将重做数据传给备用数据库前就回收了日志缓冲区,LNS将自行转为从ORL读取和发送重做数据。当LNS赶上进度后,将自行转回到直接从日志缓冲区中读取发送。
如果ASYNC重做传输的速度落后到在日志切换时LNS还在读取ORL的程度,LNS将继续执行操作,直到发送完原ORL的内容为止。伺候会平滑转回到从当前联机日志文件读取发送。当LNS赶上LGWR的进度是,会平滑转回到从重做日志缓冲区读取发送。


优点:保证了数据库的性能;

缺点:存在数据丢失的;

2.3 Gap resolution

当主库无法与备库进行通信,那么主库依然可以完成事务的提交,lgwr依然可以写入online redo日志,在没法通信期间主库可能会产生很多归档日志,那么oracle为了在备库和主库能够再次通信应用redo日志的情况,会进行自动处理间隔操 作。具体就是主库arch进程会不停ping备库,当和备库通信连接后,那么arch进程通过备库的rfs进程获得备库控制文件中最后应用的归档日志信 息,将丢失的归档日志通过arch进程传送与备库进行应用。当在主库进行redo 日志切换的时候,lns进程会再次和备库的rfs进程通信继续完成redo条目的传送,arch传送的归档日志在后台进行应用。当备库和主库redo条目 同步后arch的任务随即完成。

阅读(1097) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~