oracle的redolog停止,ORACLE REDO LOG 频繁切换问题解决与分析

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 "Excessive Archive Log Generation with INTERNAL and COMMIT 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比较方便,先到这里吧。打算周一的时候开始做[@more@]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值