【DB笔试面试202】在Oracle中,怎样清除V$ARCHIVED_LOG视图中的过期信息?

【DB笔试面试202】在Oracle中,怎样清除V$ARCHIVED_LOG视图中的过期信息?

【DB笔试面试202】在Oracle中,怎样清除V$ARCHIVED_LOG视图中的过期信息?

Q          题目如下所示:

在Oracle中,怎样清除V$ARCHIVED_LOG视图中的过期信息?


     
A          答案如下所示:          


在使用RMAN命令(DELETE ARCHIVELOG ALL;)删除归档信息后V$ARCHIVED_LOG视图中的NAME列为空,但是依然可以查询到这些删除了的归档信息,出现这样的现象是因为使用RMAN命令在删除归档日志的时候不会清除控制文件中的内容,导致V$ARCHIVED_LOG留下的过期的不完整信息。

使用如下的命令可以清除控制文件中关于V$ARCHIVED_LOG的信息:

EXECUTE SYS.DBMS_BACKUP_RESTORE.RESETCFILESECTION(11);

但是,这样会把所有的V$ARCHIVE_LOG信息都清除了,包括未过期的也会不清除。所以,需要再将未过期的归档文件信息注册进来。假设归档日志都在/oradata/archive/中,则需要执行以下命令重新注册:

RMAN> catalog start with '/oradata/archive/';

再次查询V$ARCHIVED_LOG时,未被删除的归档信息就可以查询到了。

上一篇:【DB笔试面试202】在Oracle中,怎样清除V$ARCHIVED_LOG视图中的过期信息?


下一篇:202-变量和内存总结