ORA-1652临时表空间满了导致新会话数据不能入库的解决方法
数据库版本 Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
操作系统平台 HP-UX
告警日志 more alert_mdsoss. log
2.定位问题
报错现象
Fri Aug 17 13:37:39 EAT 2012
ORA-1652: unable to extend temp segment by 128 in tablespace MDSTEMP 显示不能扩展临时段说明临时表空间已经被使用满了空间不够。
说明从metalink上官方解释没有更多的空闲区分给这个临时段了可以给表空间添加数据文件的方式来解决此问题表面上是这样我们更加的深入了解是什么原因导致的临时段没有空间了呢我们都知道临时段是记录排序和数据迁移的现在深层次问题不是空间不够过一会再执行sql可能就不报错了。是sql语句不够优化。因为当sql在批量DML操作的时候会突发性占用大量临时空间排序就会报临时段不够用新数据此时不能入库过一会空间释放后又可以入库了要想解决此问题就需要sql优化。
The below is from metalink:
Error: ORA-1652
Text: unable to extend temp segment by %s in tablespace %s
------- -----------------------------------------------------------------------
Cause: Failed to allocate an extent for temp segment in tablespace.
Action: Use ALTER TABLESPACE ADD DATAFILE statement to add one or morefiles to the tablespace indicated or create the object in anothertablespace.select * from gnwebbrw12081720; 此时是有数据的说明空间已经释放了colfile_name for a35
selectfile_name,file_id,bytes/1024/1024, status,autoextensible TABLESPACE_NAME from DBA_TEMP_FILES;FILE_NAME FILE_ID BYTES/1024/1024 STATUS TAB
----------------------------------- ---------- --------------- --------- ---
/oradata/mdsoss/temp01.dbf 1 24671 AVAILABLE YES
/oradata/mdsoss/mdstmp.dbf 2 20000 AVAILABLE NO MDSTEMP 不是自动扩展如果是就没有上述问题了但我们不建议使用数据文件自动扩展功能不容易监控。看24G + 20G空间是没有问题的一般都是sql写的不够好导致不必要排序。
3.解决方案
1重启实例 7*24 重启实例smon进程可以释放sort段但我们的库是不能down的
2增加数据文件我的空间很紧张不可以
3配置合理sort_area大小 已经配置完毕了现PGA 4G sort_area_size 208M
4 sql optimization 最佳方案
5总结哪些操作会导致临时表空间暴涨呢
什么操作在使用temp
-索引创建或重建.
- ORDER BY or GROUP BY
- DISTINCT操作.
- UNION & INTERSECT & MINUS
- Sort-Merge joins.
- Analyze操作
-有些异常将会引起temp暴涨
当处理以上操作时候呢 dba需要加倍关注temp使用情况我们现在来看看谁使用这些临时段。
5临时表空间使用情况select tablespace_name,current_users, total_blocks,used_blocks,free_blocks from v$sort_segment;TABLESPACE_NAME CURRENT_USERS TOTAL_BLOCKS USED_BLOCKS FREE_BLOCKS
------------------- ------------- ------------ ----------- -----------
TEMP 1 3157760 128 3157632
MDSTEMP 24 2559872 2337152 222720 已经使用了92%6谁在使用这些sort段select username, session_addr, sqladdr, sqlhash from v$sort_usage;
USERNAME SESSION_ADDR SQLADDR SQLHASH
------------------------------ ---------------- ---------------- ----------
MDSOSS C0000008483ECFB8 C0000008512150B8 3342809064
SABOCOUSR C00000084B405E50 C00000033F867510 141205382
MDSOSS C00000084740E988 C0000008508AB1C0 409467952
MDSOSS C0000008483DE390 C00000033B8914F0 2951877480
MDSOSS C00000084A404460 C0000003404007A0 2584373469
MDSOSS C0000008483F5088 C00000033FA63E18 2245874020
MDSOSS C0000008483FFC48 C00000084D5B5F98 3000467390
MDSOSS C0000008483F5088 C00000033FA63E18 2245874020
MDSOSS C000000852404A60 C00000084DD6F598 1491833069
MDSOSS C0000008483EBA40 C00000084DE28990 1530468420
URL http://www.bianceng.cn/database/Oracle/201410/45856.htm
公司成立于2007年,是国内领先的互联网业务平台服务提供商。公司专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前,旅途云公司研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务,拥有丰富的国内BGP、双线高防、香港等优质的IDC资源。点击进入:旅途云官方网商家LOGO优惠方案:CPU内存硬盘带宽/流量/防御...
BuyVM商家算是一家比较老牌的海外主机商,公司设立在加拿大,曾经是低价便宜VPS主机的代表,目前为止有提供纽约、拉斯维加斯、卢森堡机房,以及新增加的美国迈阿密机房。如果我们有需要选择BuyVM商家的机器需要注意的是注册信息的时候一定要规范,否则很容易出现欺诈订单,甚至你开通后都有可能被禁止账户,也是这个原因,曾经被很多人吐槽的。这里我们简单的对于BuyVM商家新增加的迈阿密机房进行简单的测评。如...
BuyVM 商家算是有一些年头,从早年提供低价便宜VPS主机深受广大网友抢购且也遭到吐槽的是因为审核账户太过于严格。毕竟我们国内的个人注册账户喜欢账户资料乱写,毕竟我们看英文信息有些还是比较难以识别的,于是就注册信息的时候随便打一些字符,这些是不能通过的。前几天,我们可以看到BUYVM商家有新增加迈阿密机房,而且商家有提供大硬盘且不限制流量的VPS主机,深受有一些网友的喜欢。目前,BUYVM商家有...