前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试202】在Oracle中,怎样清除V$ARCHIVED_LOG视图中的过期信息?

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

作者头像
小麦苗DBA宝典
发布2019-09-29 15:15:47
2K3
发布2019-09-29 15:15:47
举报

Q

题目如下所示:

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

A

答案如下所示:

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

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

代码语言:javascript
复制
SQL> EXECUTE SYS.DBMS_BACKUP_RESTORE.RESETCFILESECTION(11);

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

代码语言:javascript
复制
RMAN> catalog start with '/oradata/archive/';

再次查询V$ARCHIVED_LOG时,未被删除的归档信息就可以查询到了。如果归档信息放在闪回恢复区中,那么可以使用如下的命令进行重新注册:

代码语言:javascript
复制
RMAN> catalog recovery area;

需要注意的是,对于命令“SYS.DBMS_BACKUP_RESTORE.RESETCFILESECTION(11)”中的11代表的是归档文件(其实就是控制文件中的“record type”),那么其它数字分别代表什么含义呢?其实,可以通过视图V$CONTROLFILE_RECORD_SECTION来查看:

代码语言:javascript
复制
SYS@lhrdb> SELECT ROWNUM-1 "NUMBER", TYPE FROM V$CONTROLFILE_RECORD_SECTION;

    number TYPE
---------- --------------------------------------------------------
         0 DATABASE
         1 CKPT PROGRESS
         2 REDO THREAD
         3 REDO LOG
         4 DATAFILE
         5 FILENAME
         6 TABLESPACE
         7 TEMPORARY FILENAME
         8 RMAN CONFIGURATION
         9 LOG HISTORY
        10 OFFLINE RANGE
        11 ARCHIVED LOG
        12 BACKUP SET
        13 BACKUP PIECE
        14 BACKUP DATAFILE
        15 BACKUP REDOLOG
        16 DATAFILE COPY
        17 BACKUP CORRUPTION
        18 COPY CORRUPTION
        19 DELETED OBJECT
        20 PROXY COPY
        21 BACKUP SPFILE
        22 DATABASE INCARNATION
        23 FLASHBACK LOG
        24 RECOVERY DESTINATION
        25 INSTANCE SPACE RESERVATION
        26 REMOVABLE RECOVERY FILES
        27 RMAN STATUS
        28 THREAD INSTANCE NAME MAPPING
        29 MTTR
        30 DATAFILE HISTORY
        31 STANDBY DATABASE MATRIX
        32 GUARANTEED RESTORE POINT
        33 RESTORE POINT
        34 DATABASE BLOCK CORRUPTION
        35 ACM OPERATION
        36 FOREIGN ARCHIVED LOG
        37 PDB RECORD
        38 AUXILIARY DATAFILE COPY
        39 MULTI INSTANCE REDO APPLY
        40 PDBINC RECORD
        41 TABLESPACE KEY HISTORY

因此,输入不同的数字,会对不同的视图数据进行清理,例如:

代码语言:javascript
复制
EXECUTE DBMS_BACKUP_RESTORE.RESETCFILESECTION(11); /** CLEAR V$ARCHIVED_LOG    */
EXECUTE DBMS_BACKUP_RESTORE.RESETCFILESECTION(12) ; /** CLEAR V$BACKUP_SET    */  
EXECUTE DBMS_BACKUP_RESTORE.RESETCFILESECTION(13) ; /** CLEAR V$BACKUP_PIECE    */ 
EXECUTE DBMS_BACKUP_RESTORE.RESETCFILESECTION(17); /** CLEAR V$BACKUP_CORRUPTION   */
EXECUTE DBMS_BACKUP_RESTORE.RESETCFILESECTION(18); /** CLEAR V$COPY_CORRUPTION    */
EXECUTE DBMS_BACKUP_RESTORE.RESETCFILESECTION(19); /** CLEAR V$DELETED_OBJECT     */
EXECUTE DBMS_BACKUP_RESTORE.RESETCFILESECTION(28); /** CLEAR V$RMAN_STATUS     */

& 说明:

有关清除V$ARCHIVED_LOG视图中的过期信息的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2141732/、http://blog.itpub.net/26736162/viewspace-1799884/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档