Oracle高可用管理-DG概述以及重做传输服务

1.1 概述

    DG的运行遵循一个简单的原则:传输重做数据(redo),然后应用重做数据。重做数据中包括Oracle数据库恢复数据库事务需要的所有信息。生产数据库(即主数据库)将重做数据传输给一个或者多个独立副本(即备用数据库),备用数据库处于连续的恢复状态,验证并应用重做数据,从而与主数据库保持同步。如果因网络中断或者备用数据库故障导致主备连接中断,DG自动重新同步备用数据库
以下概括DataGuard传输-应用架构

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

2 应用服务验证重做数据并更新备用数据库文件。

3 独立于dg,数据库写进程更新主数据库数据文件。

4 在网络中断或备用数据库停运后,DATAGURAD使用已在主数据库上归档的重做数据arch ping自动同步备用数据库。

 

1.2 重做传输服务

    DG重做传输服务协调从主数据库到备用数据库的传输过程,同时主数据库的LGWR进程将重做数据写入到自己的ORL中,一个独立的数据库进程从SGA的日志缓冲区读取信息,交由Oracle net服务传输到备用数据库,这个进程叫做Log Network Server(LNS)。

   DG的灵活架构允许将重做数据从一个数据库直接传给一个或者多个(最多9个)备用数据库。DG与RAC完美的集成在一起,一个RAC服务有两个或者更多的服务器节点,每个节点运行着自己的实例,共享访问一个Oracle数据库。主数据库和备用数据库都可以是RAC环境。每个活动的数据库实例都生成自己的重做线程并且拥有相应的LNS进程,后者将数据传输给备用数据库。

  DG的每个实例的LNS进程传输属于自己thread的重做数据,在备用数据库由另一个DG进程(Remote File Server RFS)接收重做数据,RFS在备用数据库上接收重做数据,然后将其写入一个名为备用日志(SRL)的顺序文件中,在多路备用库中,主数据库独立LNS进程针对每个备用数据库传输,例如配置了3个备用数据库,每个数据库实例对应3个LNS进程。

DG支持两种使用LNS进程的重做传输方法:同步(SYNC)异步 (ASYNC)

1.2.1 同步传输服务

同步传输服务 sync,又称0数据丢失模式,因为要等到LNS确认事务恢复所需要重做数据已经写入到SRL才允许主数据库提交成功。

但是根据可用模式的不一样 SYNC也有不同的处理方式,

一个错误观点:LRWR进程将重做数据传输到备用数据库,事实并非如此,DG环境的LNS服务进程管理所有同步和异步的重做传输,11G开始传输定义为SYNC或者ASYNC不像以前的LGWR SYNC, LGWR ASYNC就是为了消除这个观点。

以下为同步整个过程:

1 用户提交一个事务,事务在SGA中创建一条重做记录。LGWR从日志缓冲区中读取重做记录,吸入ORL,然后等待SRL确认。

2 LNS从重做日志缓冲区读取相同的的重做记录,通过Oracle Net服务传输给备用数据库。备用数据库RFS服务接收重做数据并将其写入SRL。

3 当RFS从磁盘接收到一个写消息时候,会将确认消息返还给LNS,LNS通知LGWR写入完成,事务提交完成。

弊端

虽然SYNC模式可以确保数据库得到完全的保护模式,但是性能降低很明显,收到以下因素影响:

1 重做-写入大小

2 可用的网络带宽

3 往返网络延迟

4 备用数据库SRL写入性能。对应的等待为LNS wait on SENDREQ.

1.2.2 异步传输服务

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值