[20221121]rman删除归档日志问题.txt

来源:这里教程网 时间:2026-03-03 18:10:05 作者:

[20221121]rman删除归档日志问题.txt --//前几天检查发现同事设计的删除归档脚本执行的时如下命令(在dg上): delete noprompt archivelog until time 'sysdate-15'; --//我看了我以前写的类似脚本,我执行的是: delete noprompt archivelog all completed before 'trunc(sysdate)-15'; --//两者有怎么区别呢?我记忆里我以前写过blog,找了一下,发现如下链接: http://blog.itpub.net/267265/viewspace-775193/ --//不再重复测试了: --//http://blog.itpub.net/267265/viewspace-775193/ 摘要: Summary : UNTIL TIME的TIME  指的是 ARCHIVELOG的FIRST_TIME ,即归档日志中LOW SCN对应的时间戳;其意思为找出所有LOW SCN TIMESTAMP小于 等于指定的时间变量的归档日志。 COMPLETED BEFORE  指的是ARCHIVELOG的COMPLETION_TIME,即实际归档操作完成的时间;其意思为找出所有归档完成时间小于指定的时 间变量的归档日志。 COMPLETED AFTER   指的是ARCHIVELOG的COMPLETION_TIME,即实际归档操作完成的时间;其意思为找出所有归档完成时间大于等于指定 的时间变量的归档日志。 --//注:如果使用completed.前面的all是必须的,不然报错. --//很明显我感觉我写的更加科学一下,对方until time 'sysdate-15',这样采用的时间点是ARCHIVELOG的FIRST_TIME ,即归档日志中 --//LOW SCN对应的时间戳, 很容易产生歧异. --//而我写的是all completed before 'trunc(sysdate)-15',这样当天执行执行的时间点不会变,COMPLETED BEFORE  指的是ARCHIVELOG --//的COMPLETION_TIME,即实际归档操作完成的时间. --//实际上一个取redofile开始时间first_time,另外一个取redofile结束时间completion_time.对应视图 SELECT recid, first_time, next_time, completion_time FROM v$archived_log where recid between 499 and 501; --//注:我以前写的一些也是类似before 'sysdate-15',有空做一次巡检,全部改正过来.

相关推荐