dataguard之日志应用服务

日志应用服务自动应用redo到备库上来和主库同步,并且允许事务一致性访问数据。默认情况下,日志应用服务在应用日志之前等待所有的归档redo日志归档到备库上。然而,如果你使用了立即应用,那么dg在rfs进程正在填写的当前的standby日志中应用redo数据。日志应用服务使用下面的方法来维护物理和逻辑数据库备库。

1 redo apply

2使用介质恢复来保持主库和物理备库的同步

3sql apply

使用即时应用redo数据

如果该功能启用了,那么日志应用服务就好在接受日志时应用它,不用等待当前standby redo文件被归档,这样,快速转换及故障转移会很快。使用下面的语句来启用该功能

1对物理备库,使用ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE

2对逻辑备库,使用ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE

dataguard之日志应用服务_第1张图片

指定应用redo日志的延时

在一些情况下,你也许想要在接受到redo数据后,在应用到备库之前有个延时,这样可以防止主库的应用错误或数据错误传递到备库,当你设置了一个delay间隔,不会延迟redo数据传输到备库。

指定一个时间延迟

1对于物理备库,使用log_archive_dest_n的delay=minutes属性,这个属性的默认值是nodelay,如果指定了delay,但是没有指定一个值,那么默认的延迟是30分钟。

2对于逻辑备库,使用dbms_logstdby.apply_set存储过程

取消一个时间延迟

1对于物理备库,使用下面的语句

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY;

2对于逻辑备库,使用下面的语句

 ALTER DATABASE START LOGICAL STANDBY APPLY NODELAY;

上面的命令会立即生效,马上应用redo日志。

应用redo数据到物理备库

默认的,redo数据在归档redo日志文件中被应用。注意,当物理备库在read-only模式下打开的时候,日志应用服务不能应用数据到备库上。

使用下面的名,在前台运行日志应用;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;
使用下面的命令,在后台运行日志应用

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
为了开始实时应用,使用下面的语句

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;

下面的命令,停止日志应用服务或实时应用

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

在物理备库上应用日志数据

使用下面的语句来开启sql apply

ALTER DATABASE START LOGICAL STANDBY APPLY;

使用下面的 语句来开启实时应用

 ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;

使用下面的语句停止逻辑备库上的日志应用服务,这个语句不是马上停止,它会等待所有正在应用的完全提交了。

 ALTER DATABASE STOP LOGICAL STANDBY APPLY;

要马上停止日志应用,使用下面命令

ALTER DATABASE ABORT LOGICAL STANDBY APPLY;

 


 

 



你可能感兴趣的:(dataguard,日志应用服务)