理解standby redo log

    xiaoxiao2025-04-23  14

    在创建Oracle Dataguard的时候,难免会碰到Standby Redo Log(SRL),它和ORL到底有何不同,下面是我自己的一点理解,大部分都是翻的Oracle官方文档:

    1. SRL只有在数据库是standby角色是才起作用,Oracle建议我们为primary也配置SRL只是为了以后主从切换时不用人为干预

    2. standby上SRL完全等同与primary上的ORL,在primary发生日志切换时,Remote File System(RFS)进程把primary上的ORL写到standby的SRL,同时standby归档上一个SRL

    3. standby通过应用并归档SRL以达到与primary一致。

    如果standby 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 STANDBY APPLY IMMEDIATE; 2、REDO数据延迟应用 有 实时就有延迟,某些情况下你可能不希望standby与primary太过同步:),那就可以在log_archive_dest_n参数中指定 delay属性(单位为分钟,如果指定了delay属性,但没有指定值,则默认是30分钟)。注意,该属性并不是说延迟发送redo数据到standby,而是指明归档到standby后,开始应用的时候。 不过,即使在log_archive_dest_n中指定了delay属性,但如果你应用数据时指定了实时应用,则standby会忽略delay属性。另外Oracle 11g,standby端还可以通过下列的语句取消延迟应用。 物理standby取消延迟应用可以通过下列语句: SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY; 逻辑standby取消延迟应用可以通过下列语句: SQL> ALTER DATABASE START LOGICAL STANDBY APPLY NODELAY; 提示:flashback database也可视为延迟应用的一种方式。 二、应用redo数据到物理standby 注意:启动redo应用,物理standby需要首先启动到mount状态,然后再执行下列语句启动,或者停止redo应用。 1、启动redo应用 v 前台应用 SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE; v 后台应用 SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;Oracle数据库 v 启动实时应用,附加USING CURRENT LOGFILE子句即可 SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE; SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 停止redo应用
    转载请注明原文地址: https://ju.6miu.com/read-1298370.html
    最新回复(0)