3 Replies Latest reply on Nov 16, 2012 3:21 AM by 958613


      数据库从linux 10gR2 64位迁移到linux 11gR2 64位,迁移后进行了resetlogs,之前的归档已经全部删除,现在的归档全部采用新的sequence。rman中的archivelog也已经crosscheck过,但是v$archived_log里的原库的归档信息还在,请问如何删除?
        • 1. Re: 如何删除v$archived_log中过期信息
          无需手动删除过期信息, 需要重用是会自动重用 这些控制文件中的归档文件槽位
          1 person found this helpful
          • 2. Re: 如何删除v$archived_log中过期信息
            1 person found this helpful
            • 3. Re: 如何删除v$archived_log中过期信息
              请参考MOS ID 845361.1 : Removing entries in v$archived_log referencing a particluar DEST_ID


              This note provides instructions on how to clear the section in the controlfile which contains data referencing v$archived_log.

              For example v$archived_log may contain data from dest_id = 1 & dest_id=2.

              This note will guide you through the process of only keeping entries from one distinct location


              It is possible to clear different section of the controlfile.

              Section 11 refers to the v$archived_log entries.

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

              This will clear all files in v$archived_log;

              Then using RMAN we can catalog the DEST=1 file back in.
              Assume that all archivelogs reside in /recovery_area/archives

              RMAN> catalog start with '/recovery_area/archives';

              This will update the controlfile with these entries only.


              If you clear a controlfile section using undocumented event, then you also need to update high_al_recid in the node table for that database to 0 in recovery catalog.For 11g recovery catalog schema and above:update node set high_al_recid = 0 where db_unique_name = '<your target database db_unique_name'.For 10gR2 recovery catalog schema and below:update dbinc set high_al_recid = 0 where db_name = '<your target database db_name>';