日志应用服务自动应用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
指定应用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;