Oracle 如何规范清理v$archived_log记录

单机实例上面,v$archived_log 很多,有上万条记录了,所以得清理一下,不然每次查询都直接滚屏幕了

SQL> select sequence#,applied from v$archived_log order by sequence# ;

 SEQUENCE# APPLIED
....................
 SEQUENCE# APPLIED
---------- ---------
      9376 NO
      9377 NO
      9377 NO
      9378 NO
      9378 NO
      9379 NO
      9379 NO
      9380 NO
      9380 NO
      9381 NO
      9381 NO

 SEQUENCE# APPLIED
---------- ---------
      9382 NO
      9382 NO

11200 rows selected.

SQL> 

然后查看下当前的归档记录
SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     164
Next log sequence to archive   166
Current log sequence	       166
SQL> 

看到归档记录才是164,和v$archived_log里面上W的记录数不匹配,这是因为这是rman备份恢复遗留下来的记录,所以需要清理一下。


清理记录,采用sys.dbms_backup_restore.resetCfileSection(11);清理:

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

PL/SQL procedure successfully completed.

SQL> select sequence#,applied from v$archived_log order by sequence# ;

no rows selected

SQL> 

再次测试,可以查看到日志记录变化了,v$archived_log已经是最新的,只有一条记录数存在了:
SQL> alter system switch logfile;

System altered.

SQL> select sequence#,applied from v$archived_log order by sequence# ;

 SEQUENCE# APPLIED
---------- ---------
       166 NO

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

PL/SQL procedure successfully completed.

SQL> select sequence#,applied from v$archived_log order by sequence# ;

no rows selected

SQL> 

扩展话题,单机实例可以用上,述办法操作,那么oracle集群比如dg呢,分析master库、standby库
#master库上v$archived_log表记录数:
SQL>  select count(1) from v$archived_log;

  COUNT(1)
----------
    623616

SQL> 

#standby库上v$archived_log表记录数:
SQL> select count(1) from v$archived_log;

  COUNT(1)
----------
   2226823

SQL> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值