
如何清除Oracle控制文件中的无用记录,例如v$archived
3个回答
2016-02-15 · 百度知道合伙人官方认证企业
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注

展开全部
一些解决方案,包括
1. 重建控制文件, 例如 backup controlfile to trace后重建该控制文件,但要求有数据文件均存在
2. 设置control_file_record_keep_time=0 然后等待记录被重用
再介绍一种手动清除v$ARCHIVED_LOG中不管是DELETED还是available 记录的方法,注意不要在产品数据库上这样做
SQL> select count(*) from v$archived_log;
COUNT(*)
———-
553
SQL> /
COUNT(*)
———-
553
SQL> execute sys.dbms_backup_restore.resetCfileSection( 11);
PL/SQL procedure successfully completed.
SQL> select count(*) from v$archived_log;
COUNT(*)
———-
0
PROCEDURE resetCfileSection(record_type IN binary_integer );
— This procedure attempts to reset the circular controlfile section.
—
— Input parameters:
— record_type
— The circular record type whose controlfile section is to be reset.
execute sys.dbms_backup_restore.resetCfileSection( 11); ==> 清理v$ARCHIVED_LOG对应的记录
execute sys.dbms_backup_restore.resetCfileSection(28); ==>清理v$rman_status对应的记录
以上是2个例子,具体的section_id可以这样获得:
1* select rownum-1, type from v$controlfile_record_section
SQL> /
ROWNUM-1 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
1. 重建控制文件, 例如 backup controlfile to trace后重建该控制文件,但要求有数据文件均存在
2. 设置control_file_record_keep_time=0 然后等待记录被重用
再介绍一种手动清除v$ARCHIVED_LOG中不管是DELETED还是available 记录的方法,注意不要在产品数据库上这样做
SQL> select count(*) from v$archived_log;
COUNT(*)
———-
553
SQL> /
COUNT(*)
———-
553
SQL> execute sys.dbms_backup_restore.resetCfileSection( 11);
PL/SQL procedure successfully completed.
SQL> select count(*) from v$archived_log;
COUNT(*)
———-
0
PROCEDURE resetCfileSection(record_type IN binary_integer );
— This procedure attempts to reset the circular controlfile section.
—
— Input parameters:
— record_type
— The circular record type whose controlfile section is to be reset.
execute sys.dbms_backup_restore.resetCfileSection( 11); ==> 清理v$ARCHIVED_LOG对应的记录
execute sys.dbms_backup_restore.resetCfileSection(28); ==>清理v$rman_status对应的记录
以上是2个例子,具体的section_id可以这样获得:
1* select rownum-1, type from v$controlfile_record_section
SQL> /
ROWNUM-1 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
2018-07-06 · 知道合伙人软件行家

知道合伙人软件行家
采纳数:925
获赞数:1553
中国地质调查局特聘数据库专家 CSDN博客专家 百度知道数据库行家 炼数成金版主 想了解更多请关注我的博客:
向TA提问 私信TA
关注

展开全部
control file中的内容都是由oracle数据库本身来维护的。
想清除无效的归档内容,可以使用rman命令,
crosscheck archivelog all;
delete expired archivelog all ;
来实现。
想清除无效的归档内容,可以使用rman命令,
crosscheck archivelog all;
delete expired archivelog all ;
来实现。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有这样一种需求,虽然controlfile中的archivelog和其他一些备份信息会被覆盖重用,收到参数control_file_record_keep_time的影响,但是我们没法手动触发这种重用,这导致有时候controlfile中的archivelog 记录过多,可能导致一些备份、恢复过程中的”control file sequential read”等待事件。
已知的一些解决方案,包括:
1. 重建控制文件, 例如 backup controlfile to trace后重建该控制文件,但要求有数据文件均存在
2. 设置control_file_record_keep_time=0 然后等待记录被重用
已知的一些解决方案,包括:
1. 重建控制文件, 例如 backup controlfile to trace后重建该控制文件,但要求有数据文件均存在
2. 设置control_file_record_keep_time=0 然后等待记录被重用
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询