ORA-01650
浏览:2日期:2024-01-08
数据库很多表频繁报错 ora-01688 ORA-01650 等错误ORA-01650: unable to extend rollback segment %s by %s in tablespace %s;;; Cause: Failed to allocate extent for the rollback segment in tablespace.;;Action: Use the ALTER TABLESPACE ADD DATAFILE statement to add one or more files to the specified tablespace. 从原因上看 unable to extend 是因为没有邻近的空间可以去扩展报错的是motorola表空间首先!我的所有表的next 都是1m pctincrease 0 所以我就先去查motorola 所在表空间最大的邻近空间SQL>SELECT; max(bytes);;;;;FROM;dba_free_space;;;;;WHEREtablespace_name = 'MOTOROLA';MAX(BYTES)----------2126503936这个结果明显比表的设置 next extent= 1024k 要大那我们看看RPT_MOT_CELL_PER的参数SELECT next_extent, pct_increase, tablespace_name;FROMdba_tab_partitions;;;;WHERE; partition_name='P9' AND table_owner = 'MOT_NMC' AND TABLE_NAME='RPT_MOT_CELL_PER';NEXT_EXTENT PCT_INCREASE----------- ------------TABLESPACE_NAME------------------------------------------------------------ 1048576;0MOTOROLAmetalink上提供了解决方法:1.ALTER TABLESPACE motorola COALESCE;The extents must be adjacent to each other for this to work我用了!没有用2 add datafile 或者 resize 这个明显是有效果的!后来我加了数据文件以后也是有效果的!3.修改next 这个也是有效的后来我发现我的思路有问题了早最大的extent 并没有用!SELECT count(*);;FROM;dba_free_space;;;;;WHEREtablespace_name = 'MOTOROLA';————————47212SELECT count(*);;FROM;dba_free_space;;;;;WHEREtablespace_name = 'MOTOROLA'and bytes<1048576;————————47208大部分extent都是小与1m的所以不能分配 Oracle不会去找最大!
相关文章:1. ReentrantReadWriteLock不能锁升级的原因总结2. 教你如何用Eclipse创建一个Maven项目3. 聊聊在Servlet中怎么上传文件4. 详解大数据处理引擎Flink内存管理5. 怎么取消IE已限制此网页运行可以访问计算机的脚本?取消方法说明6. 过滤器 和 拦截器的 6个区别(别再傻傻分不清了)7. 当面试官问我ArrayList和LinkedList哪个更占空间时,我是这么答的(面试官必问)8. 浅析NIO系列之TCP9. 小白必看toString(),String.valueOf,(String)强转10. 浅谈java switch如果case后面没有break,会出现什么情况?

