Data Guard Service 相关介绍

2014-11-24 17:36:28 · 作者: · 浏览: 0

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;


相关参考: