当我们清理归档日志后,控制文件中还会保留该归档日志的相关记录,只是 name 为空,其实这些记录对我们而言毫无意义,哪有
什么方法将这些记录清理么?答案是可定的。
execute sys.dbms_backup_restore.resetCfileSection(11);
SQL> select rownum-1, type from v$controlfile_record_section;
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
使用上面的命令可以清理v$ARCHIVED_LOG对应的记录(包含哪些没有删除的归档,这样做风险太大了 ),然后再将归档日志注册到控制文件中。
catalog start with '/export/home/arch/';