欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle备份时系统负载过高导致ORA-3136错误和AIX系统的3D32B80D错误

程序员文章站 2024-02-04 18:03:34
...

这是由于每天22:00数据库进行rman备份,导致数据库的IO读频繁,从而导致CPU大量的等待。IO、CPU过量等待导致整个服务器的负载比较

环境:

数据库: AIX5.3下的64位Oracle 10.2.0.1.0

TSM5.4:Windows 2003

带库:IBM3100

1、 数据库的alert_SID.log

Mon Jan 11 20:05:38 2010

Control autobackup written to SBT_TAPE device

comment 'API Version 2.0,MMS Version5.4.1.0',

media '439'

handle 'c-3524587154-20100111-05'

Mon Jan 11 22:12:32 2010

WARNING: inbound connection timed out (ORA-3136)

Mon Jan 11 22:12:33 2010

WARNING: inbound connection timed out (ORA-3136)

2、 AIX系统出现的错误:

> errpt |more

IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION

3D32B80D 0121222410 P S topsvcs NIM thread blocked

3D32B80D 0121222410 P S topsvcs NIM thread blocked

查看详细信息:

> errpt -aj 3D32B80D |more

3D32B80D错误主要是由于整个系统的负载很高,从而导致HA的心跳不能正常通讯造成的。

具体原因:

这是由于每天22:00数据库进行rman备份,导致数据库的IO读频繁,从而导致CPU大量的等待。IO、CPU过量等待导致整个服务器的负载比较高。数据库服务器在备份时间段内负载比较高,,导致数据库用户在60秒内不能连接上数据库,出现连接超时情况(timeout)。

从而出现上面aler_SID.log日志中的ORA-3136的错误。

Oracle10g数据库用RMAN备份到带库时出现的问题。可以用Oracle的metalink帐户查看Note 311068.1

根据Note 311068.1的建议,对数据库进行测试、磁盘到磁盘的备份、磁盘到带库的备份、只读磁盘的备份。最后发现在备份时读取系统的数据文件的数据量太高(有些磁盘IO繁忙达到100%),在备份时用rman现在读取磁盘的速度解决该问题。

调整脚本为:

run{

allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)' RATE20M;

allocate channel t2 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)' RATE20M;

BACKUP INCREMENTAL LEVEL 1 CUMULATIVE FILESPERSET 10

FORMAT 'incr_%T_%s_%p' DATABASE;

sql 'alter system archive log current';

BACKUP FILESPERSET 10 MAXSETSIZE10G

FORMAT 'arch_%T_%s_%p'

SKIP INACCESSIBLE

ARCHIVELOG ALL DELETE INPUT;

release channel t1;

release channel t2;

}

Oracle备份时系统负载过高导致ORA-3136错误和AIX系统的3D32B80D错误