ORACLE REDO LOG 频繁切换问题解决与分析

更新时间:2023-11-15 18:30:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

OS: SOLARIS 10 DB: 10.2.0.4

问题描述:

我的数据库的压力非常小 transaction per second = 0.25,所以基本上没有压力 从 2010-08-23日 到2010-09-03日 产生了20G的archivelog ,所以这个问题是非常不正常的。 解决方法:

1,对archivelog进行了一次分析,从分析的结果看 select USERNAME ,SESSION#, OPERATION,

SEG_OWNER ,SEG_NAME,count(*) from sys.logmnr group by USERNAME ,SESSION#, OPERATION, SEG_OWNER ,SEG_NAME order by count(*) desc UNKNOWN 0 INTERNAL 1422 INNOCOM 539 INTERNAL 1077 INNOCOM 537 INTERNAL 916 INNOCOM 453 INTERNAL 816 INNOCOM 29 INTERNAL 627 INNOCOM 528 INTERNAL 450

数据库内部进行了大量的内部操作,而且进行的内部操作要远远超过dml语句进行操作

2,在metalink中查到一篇文档

1070861.1 \operations\

从这个文档中得知,有可能是表中存在了大量的行链接或是行迁移 3,对用户下的表进行分析

(1) 首先运行$ORACLE_HOME/rdbms/admin/utlchain.sql 创建chained_rows表

(2) 然后运行如下脚本,将某个用户下的所有表都进行一次分析 begin

for i in (select table_name from user_tables) loop begin

--dbms_output.put_line ('analyze table innocom.'||i.table_name||' list chained rows into chained_rows;');

execute immediate ('analyze table innocom.'||i.table_name||' list chained rows into chained_rows'); end;

end loop; end;

(3) 查看分析结果

select table_name,count(*) from chained_rows group by table_name TABLE_NAME COUNT(*) -------------------- ----------

DATA_ENT_SERVDEPT 9534 DATA_EPR_ACCESSORY 57 DATA_EPR_PRODUCT 56563 DATA_EPR_PROJECT 127361 DATA_EPR_PROJECT_201 140 00903

DATA_EPR_RD_FEE 66 ENT_USER 885

PROC_SEARCH_INFO 124 REPORT_PDF_FILE 8 TABLE_NAME COUNT(*) -------------------- ---------- REPORT_PROC 3519

发现确实存在大量的行连接或行迁移。 (4) ,消除的方法有如下几种 方法1:create table table_name_tmp as select * from table_name where rowed in (select head_rowid from chained_rows);

Delete from table_name where rowed in (select head_rowid from chained_rows);

Insert into table_name select * from table_name_tmp;

方法2:create table table_name_tmp select * from table_name ; truncate table table_name

insert into table_name select * from table_name_tmp

方法3:用exp工具导出表,然后删除这个表,最后用imp工具导入这表

方法4:alter table table_name move tablespace tablespace_name,然后再重新表的索引

现在采用方法1 进行,或你也可以用toad工具完成,toad比较方便,先到这里吧。打算周一的时候开始做

本文来源:https://www.bwwdw.com/article/6jiv.html

Top