因为Oracle archivelog会不断生产,一般会设置定期清理archivelog的排程,类似下面。
但DG环境中因为某些原因导致主库事务没有即使传到standby,而这时如果主库的archivelog也被清理掉了,主备库就产生了日志GAP
export ORACLE_SID=abc
export ORACLE_HOME=/u01/product/oracle/
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
rman target / <
run
{
crosscheck archivelog all;
DELETE NOPROMPT ARCHIVELOG until time 'sysdate-7';
}
exit;
EOF
如何能够确保standby日志接收到了,主库archivelog才会被删除呢?
11G 后提供了RMAN的archivelog删除策略
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;
注:这里是说archivelog在standby目录中接收生产了,并不是被实际应用了。
因为这样说?一种情况standby正常开启,但MPR不开启应用redo,其实standby也能接收主库传递过来的archivelog但并没有被应用,这时主库的archivelog是可以被清理的
默认 CONFIGURE ARCHIVELOG DELE