Oracle备份时系统负载过高导致ORA-3136错误和AIX系统的3D32B80D错误 |
发布时间: 2012/8/27 17:50:04 |
环境: 数据库: 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; } 本文出自:亿恩科技【www.enkj.com】 |