Decode360's Blog

业精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  302 随笔 :: 26 文章 :: 82 评论 :: 0 Trackbacks
本文作者: junsansi     转载网址: http://www.5ienet.com/index.shtml
 
 
第四部分Standby之Log应用服务  2008.02.26

    前面我们已经接触了很多相关的概念,我们都知道DataGuard 通过应用redo 维持primary 与各standby 之间的一致性,在后台默默无闻支撑着的就是传说中的Log 应用服务。Log 应用服务呢,又分两种方式,一种是redo应用(物理standby 使用,即介质恢复的形式),另一种是sql 应用(逻辑standby 使用,通过LogMiner 分析出sql语句在standby 端执行)。
 
 
一、Log应用服务配置选项
 
1、REDO数据实时应用
 
    默认情况下,log 应用服务会等待单个归档文件全部接收之后再启动应用(在前面redo 传输服务中我们介绍了不同形式的传输方式),如果standby 端使用了standby redologs,就可以打开实时应用(real-time apply),这样dg 就不需要再等待接收完归档文件,只要rfs 将redo 数据写入standby redologs,即可通过MRP/LSP 实时写向standby。
 
    物理standby 启用实时应用通过下列语句:

    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE ;

 
    逻辑standby 启用实时应用通过下列语句:

    SQL> ALTER DATABASE START LOGICAL STANDBYAPPLY IMMEDIATE;

 
2、REDO数据延迟应用
 
    有实时就有延迟,某些情况下你可能不希望standby 与primary 太过同步:),那就可以在log_archive_dest_n参数中指定delay 属性(单位为分钟,如果指定了delay 属性,但没有指定值,则默认是30 分钟)。注意,该属性并不是说延迟发送redo 数据到standby,而是指明归档到standby 后,开始应用的时候。
 
    不过,即使在log_archive_dest_n 中指定了delay 属性,但如果你应用数据时指定了实时应用,则standby会忽略delay 属性。另外,standby 端还可以通过下列的语句取消延迟应用。
 
    物理standby 取消延迟应用可以通过下列语句:

    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY;

 
    逻辑standby 取消延迟应用可以通过下列语句:

    SQL> ALTER DATABASE START LOGICAL STANDBYAPPLY NODELAY;

 
    提示:flashback database 也可视为延迟应用的一种方式。
 
 
二、应用redo数据到物理standby
 
    注意:启动redo 应用,物理standby 需要首先启动到mount 状态,然后再执行下列语句启动,或者停止redo应用。
 
1、启动redo应用
 
    ※ 前台应用

    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;

 
    ※ 后台应用

    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

 
    ※ 启动实时应用,附加USING CURRENT LOGFILE 子句即可

    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;

 
2、停止redredo应用

    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

 
 
三、应用redo数据到逻辑standby
 
    注意:启用sql 应用,逻辑standby 需要启动至open 状态。
 
1、启动sql应用
 

    SQL> ALTER DATABASE START LOGICAL STANDBYAPPLY;

 
    如果要启动实时应用,附加immediate 子句即可:

    SQL> ALTER DATABASE START LOGICAL STANDBYAPPLY IMMEDIATE;

2、停止sql应用
 

    SQL> ALTER DATABASE STOP LOGICAL STANDBYAPPLY;

 
 
 




-The End-

posted on 2009-03-01 23:35 decode360-3 阅读(380) 评论(0)  编辑  收藏 所属分类: DBA

只有注册用户登录后才能发表评论。


网站导航: