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

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

作者:互联网

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

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

标签:ARCHIVED,202,LOG,过期,清除,视图,信息,归档
来源: https://blog.51cto.com/lhrbest/2708047