网站首页 > 技术文章 正文
概述
今天在对某个表做高水位回收的时候发现回收不了,提示报错:ORA-10631: SHRINK clause should not be specified for this object
报错截图如下:
查询得知shrink的使用有很多限制,限制如下:
Shrink operations can be performed only on segments in locally managed tablespaces with automatic segment space management (ASSM). Within an ASSM tablespace, all segment types are eligible for online segment shrink except these:
■ IOT mapping tables ■ Tables with rowid based materialized views ■ Tables with function-based indexes ■ SECUREFILE LOBs ■ Compressed tables
简单翻译如下:
Shrink 操作需满足表空间是本地管理和自动段空间管理(10g、11g默认就是这样),以下情况不能用shrink:
IOT索引组织表
用rowid创建的物化视图的基表
带有函数索引的表
SECUREFILE 大对象
压缩表
检查报错的表
检查DPCA_LJPL_XX_LJYHXX 的索引果然有函数索引,属于带有函数索引的表,
所以shrink导致报了ORA-10631错误。这里只能选择move来回收了。
相比alter table move,Shrink的进步是:
1.可在线执行
2.可使用参数cascade,同时收缩表上的索引
3.执行后不会导致索引失效
4.可避免alter table move执行过程中占用很多变空间(如果表10G大小,那alter table move差不多还得需要10G空间才能执行)。
这里主要讲shrink虽然好用,但还是有一些限制存在,需要多多注意!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~
猜你喜欢
- 2025-07-10 整理汇总数据-执行失败:ORA-01438: 值大于为此列指定的允许精度
- 2025-07-10 oracle列转行以及C#执行语句时报错问题
- 2024-10-17 ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务
- 2024-10-17 mybatis中oracle模糊查询like concat报错
- 2024-10-17 如何高效进行Oracle巡检?顺序方法缺一不可
- 2024-10-17 详解4个方法--解决Oracle快照过旧问题
- 2024-10-17 Kettle 连接Oracle rac报ORA-12505错误解决方法
- 2024-10-17 centos7.4安装oracle11GR2报错解决办法
- 2024-10-17 centos安装oracle 11.2.0.1报错的处理方法
- 2024-10-17 详解Oracle数据库如何有效处理失效对象
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)