登录  /  注册
Data Guard Service 相关介绍
php中文网
发布: 2016-06-07 17:34:30
原创
833人浏览过

使用ARCH进程传递最大问题在于:Primary Database 只有在发生归档时才会发送日志到Standby Database。如果Primary Database 异常

Data Guard Services

Data Guard Service 相关介绍

以下的三部分组成Data Guard的日志数据传输、日志数据应用以及改变数据库角色:

a)、日志传输服务(Redo Transport Services)

b)、日志应用服务

c)、角色转换

1、Redo Transport Services(日志传输服务)

控制生产数据库自动将redo data发送至一个或多个归档地址

1.1、使用ARCH进程

用ARCH模式传输不写Standby Redo logs,直接保存成归档文件存放于Standby端。

说明:

逻辑Standby接收后将其转换成SQL语句,在Standby数据库上执行SQL语句实现同步,这种方式叫SQL Apply。

物理Standby接收完Primary数据库生成的REDO数据后,以介质恢复的方式实现同步,这种方式也叫Redo Apply。

缺点:使用ARCH进程传递日志有一个问题,即只有primary database归档以后才会传送日志到 standby database。这就导致,如果primary database异常宕机,联机日志中的redo内容就会发生丢失,所以要避免这种数据丢失,我们则要使用LGWR,而使用LGWR又分为SYNC(同步)和ASYNC(异步两种方式)。Primary database 缺省使用ARCH进程。

使用ARCH进程传递最大问题在于:Primary Database 只有在发生归档时才会发送日志到Standby Database。如果Primary Database 异常宕机,联机日志中的Redo 内容就会丢失,因此使用ARCH 进程无法避免数据丢失的问题,要想避免数据丢失,就必须使用LGWR,而使用LGWR 又分SYNC(同步)和ASYNC(异步)两种方式。

1.2使用LGWR 进程的SYNC 方式

1)Primary Database 产生的Redo 日志要同时写道日志文件和网络。也就是说LGWR进程把日志写到本地日志文件的同时还要发送给本地的LNSn进程(Network Server Process),再由LNSn(LGWR Network Server process)进程把日志通过网络发送给远程的目的地,每个远程目的地对应一个LNS进程,,多个LNS进程能够并行工作。

2)LGWR 必须等待写入本地日志文件操作和通过LNSn进程的网络传送都成功,Primary Database 上的事务才能提交,这也是SYNC的含义所在。

3)Standby Database的RFS进程把接收到的日志写入到Standby Redo Log日志中。

4)Primary Database的日志切换也会触发Standby Database 上的日志切换,即Standby Database 对Standby Redo Log的归档,然后触发Standby Database 的MRP或者LSP 进程恢复归档日志。

因为Primary Database 的Redo 是实时传递的,于是Standby Database 端可以使用两种恢复方法:

实时恢复(Real-Time Apply):只要RFS把日志写入Standby Redo Log 就会立即进行恢复;

归档恢复:在完成对Standby Redo Log 归档才触发恢复。

Primary Database默认使用ARCH进程,如果使用LGWR进程必须明确指定。使用LGWR SYNC方式时,可以同时使用NET_TIMEOUT参数,这个参数单位是秒,代表如果多长时间内网络发送没有响应,LGWR 进程会抛出错误。示例如下:

alter system set log_archive_dest_2 = 'SERVICE=db_phystdby LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PHYSTDBY NET_TIMEOUT=30' scope=both;

相关参考:

Oracle Data Guard 重要配置参数

基于同一主机配置 Oracle 11g Data Guard

探索Oracle之11g DataGuard

Oracle Data Guard (RAC+DG) 归档删除策略及脚本

Oracle Data Guard 的角色转换

Oracle Data Guard的日志FAL gap问题

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法

linux

相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学