在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时,未被删除的归档信息就可以查询到了。