如何清除v$archived_log视图中的过期信息

网友投稿 198 2024-01-01

如何清除v$archived_log视图中的过期信息

这篇文章主要讲解了“如何清除v$archived_log视图中的过期信息”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何清除v$archived_log视图中的过期信息”吧!

在使用RMAN命令删除归档后,查询v$archived_log视图会发现name列为空了,但其他列的信息还保留,时间长了会留下很多过期的信息,影响维护工作,需要将过期的信息删除。首先模拟下问题的出现过程:

--删除归档日志之前查看v$archived_log视图,情况正常

SQL> select dest_id,sequence#,name,blocks from v$archived_log;

DEST_ID SEQUENCE#                    NAME                                         BLOCKS

---------- ---------- --------------------------------------------- ----------

     1             101          /oradata/archive/orcl_1_101_851966182.arc       2730

1             102          /oradata/archive/orcl_1_102_851966182.arc      95711

1             103          /oradata/archive/orcl_1_103_851966182.arc      94813

1             104          /oradata/archive/orcl_1_104_851966182.arc      95048

     1             105          /oradata/archive/orcl_1_105_851966182.arc      94677

1             106          /oradata/archive/orcl_1_106_851966182.arc      97494

1             107          /oradata/archive/orcl_1_107_851966182.arc      94300

1             108          /oradata/archive/orcl_1_108_851966182.arc      97494

--使用RAMN命令删除归档

RMAN> delete archivelog all;

--再次查询v$archived_log视图,name列为空

SQL> select dest_id,sequence#,name,blocks from v$archived_log;

DEST_ID SEQUENCE#                    NAME                                 BLOCKS

---------- ---------- --------------------------------------------- ----------

1            101                                                        2730

     1            102                                                        95711

1            103                                                        94813

1            104                                                        95048

1            105                                                        94677

     1            106                                                        97494

1            107                                                        94300

1            108                                                        97494

出现这样的现象是因为使用RMAN命令在删除归档日志的时候不能够清楚控制文件中的内容,导致v$archived_log留下的过期的不完整信息。下面将归档信息进行清除:

--清除控制文件中关于v$archived_log的信息

SQL> execute sys.dbms_backup_restore.resetCfileSection(11);

PL/SQL procedure successfully completed.

--再次查询v$archived_log,信息已经被清除

SQL> select dest_id,sequence#,name,blocks from v$archived_log;

no rows selected

但是这样是把所有的v$archive_log信息都清除了,包括未过期的也会不清除。下面再将未过期的归档文件信息注册进来。

--我测试环境上归档日志都在/oradata/archive/中

RMAN> catalog start with /oradata/archive/;

--再次查询v$archived_log,未被删除的归档信息可以查询到了

SQL> select dest_id,sequence#,name,blocks from v$archived_log;

DEST_ID SEQUENCE#                     NAME                        BLOCKS

---------- ---------- --------------------------------------------- ----------

1      110           /oradata/archive/orcl_1_110_851966182.arc          1

     1      111           /oradata/archive/orcl_1_111_851966182.arc          2

1      109           /oradata/archive/orcl_1_109_851966182.arc      31079

感谢各位的阅读,以上就是“如何清除v$archived_log视图中的过期信息”的内容了,经过本文的学习后,相信大家对如何清除v$archived_log视图中的过期信息这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Linux中如何使用ps命令
下一篇:RMAN中怎么同时建立多个备份
相关文章

 发表评论

暂时没有评论,来抢沙发吧~