DG的异步与同步深层原理解析

  

  使用LGWR 进程的SYNC 方式   

  

  LNSn进程(Network  Server 过程)LNSn (LGWR  Network  Server 流程)   

  

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

  

     

  

  即Standby  Database 对Standby  Redo 日志的归档,然后触发Standby  Database 的MRP或者LSP 进程恢复归档日志。   

  

  
  

  

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

  

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

  

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

  

  
  

  

  数据库,Primary 默认使用拱进程使用LGWR 同步方式时,可以同时使用NET_TIMEOUT参数,这个参数单位是秒,代表如果多长时间内网络发送没有响应,LGWR 进程会抛出错误   

  

  alter  system  set  log_archive_dest_2 =,“服务=ST , LGWR , SYNC , NET_TIMEOUT=30 ',范围=两个;   

  

  
  

  

  使用LGWR进程的ASYNC 方式   

  

  使用LGWR 同步方法的可能问题在于,如果日志发送给Standby 数据库过程失败,LGWR进程就会报错。也就是说Primary 数据库的LGWR 进程依赖于网络状况,有时这种要求可能过于苛刻,这时就可以使用LGWR 异步方式只它的工作机制如下:   

  

  Primary  Database 一端产生Redo 日志后,LGWR 把日志同时提交给日志文件和本地LNS 进程,但是LGWR进程只需成功写入日志文件就可以,<强>不必等待LNSn进程的网络传送成功。   

  

  2),LNSn进程异步地把日志内容发送到Standby 数据库。多个LNSn进程可以并发发送。   

  

     

  

  
  

  

  因为LGWR进程不会等待LNSn进程的响应结果,所以配置LGWR 异步方式时不需要NET_TIMEOUT参数。示例如下:   

  

  alter  system  set  log_archive_dest_2 =,“服务=ST , LGWR , ASYNC ”,范围=两个;   

DG的异步与同步深层原理解析