如何删除 Oracle 下游目标的日志

如何删除 Oracle 下游目标的日志

我尝试自动从 Oracle Downstream 目标数据库中删除日志,这些日志对于捕获过程不再需要。查询:

SELECT NAME , PURGEABLE from DBA_REGISTERED_ARCHIVED_LOG;

例如,返回 10 个存档日志。删除未在捕获过程中注册的旧日志是否正确?请帮助找到正确的建议。是否有任何现成的解决方案来处理旧的重做传输日志,或者我需要从头开始编写脚本?

答案1

将以下查询输出放入后台处理程序并放入脚本中。这将删除不再需要的日志。

SELECT -- r.CONSUMER_NAME, 'rm ' || r.NAME -- , to_char(r.FIRST_SCN), -- to_char(r.NEXT_SCN), -- case when (r.next_scn > c.required_checkpoint_scn) then 'NO' else 'YES' end purgable FROM DBA_REGISTERED_ARCHIVED_LOG r, DBA_CAPTURE c WHERE r.CONSUMER_NAME = c.CAPTURE_NAME and r.source_database = c.source_database and r.next_scn < ( select min(required_checkpoint_scn) from dba_capture where capture_type='DOWNSTREAM') and purgeable='YES' order by modified_time;

相关内容