【TABLESPACE】怎么去降低数据文件的高水位呢(BLOCK_ID)
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,http://blog.itpub.net/29487349/viewspace-2143418/ 这边文章说了怎么收缩表空间,那么有的时候会出现以下情况,也就是我们查询表空间空间空闲很多,但执行该文
千家信息网最后更新 2025年02月02日【TABLESPACE】怎么去降低数据文件的高水位呢(BLOCK_ID)
http://blog.itpub.net/29487349/viewspace-2143418/ 这边文章说了怎么收缩表空间,那么有的时候会出现以下情况,也就是我们查询表空间空间空闲很多,但执行该文章中查询可以resize的空间却很小,这是为什么呢? 好,下面我们来看一看。
实例,Oracle11.2.0.4 for redhat6.7 x64
查询表空间使用状况
执行 查询可以resize的大小
我们通过以下语句看看:
那么我们可以通过move table方式降低该分区表的位置,也就移动到考前点的位置,此处请注意关于分区表相关的表、索引情况,请根据业务、数据库来做判断
执行下面命令:
再次查看表空间resize情况
再次执行相关alter …… resize操作即可。 当执行表、索引相关move、rebuild时,请了解业务及相关结构,任何操作都有风险,注意备份及操作规范。
http://blog.itpub.net/29487349/viewspace-2143418/ 这边文章说了怎么收缩表空间,那么有的时候会出现以下情况,也就是我们查询表空间空间空闲很多,但执行该文章中查询可以resize的空间却很小,这是为什么呢? 好,下面我们来看一看。
实例,Oracle11.2.0.4 for redhat6.7 x64
查询表空间使用状况
点击(此处)折叠或打开
- TABLESPACE_NAME TOTAL FREE % Free
- ------------------------- ---------- ---------- ----------
- SYSAUX 520 27 5
- SYSTEM 750 9 1
- TEST 200 111 56 --- TEST表空间剩余111M(测试,使用数据较小)
- UNDOTBS1 75 1 1
- USERS 76.25 3 4
执行 查询可以resize的大小
点击(此处)折叠或打开
- Smallest
- Size Current Poss.
- FILE_NAME Poss. Size Savings
- -------------------------------------------------- -------- -------- --------
- /backup/oradata/mytest/test01.dbf 161 200 39
- --------
- sum 39 也就是该数据文件可以释放39M,那么这什么怎么回事呢
我们通过以下语句看看:
点击(此处)折叠或打开
- SQL> select owner ownr, segment_name name,PARTITION_NAME, segment_type type, extent_id exid, file_id fiid, block_id blid, blocks blks
- 2 from dba_extents
- 3 where tablespace_name ='TEST'
- 4 order by block_id
- 5 /
- ………………………………
- SCOTT OBJPART_ID INDEX 21 5 4352 128
- SCOTT OBJPART_ID INDEX 22 5 4480 128
- SCOTT OBJPART_ID INDEX 23 5 4608 128
- SCOTT OBJPART_ID INDEX 24 5 4736 128
- SCOTT OBJPART_ID INDEX 25 5 4864 128
- SCOTT OBJPART_ID INDEX 26 5 5120 128
- SCOTT OBJ_PART P20141231 TABLE PA 0 5 9600 1,024
- SCOTT OBJ_PART P20141231 TABLE PA 1 5 10624 1,024
- SCOTT OBJ_PART P20141231 TABLE PA 2 5 19584 432 --查出 该分区表block_id比较大,也就是占据数据文件的位置最尾端(相对其他数据块))
那么我们可以通过move table方式降低该分区表的位置,也就移动到考前点的位置,此处请注意关于分区表相关的表、索引情况,请根据业务、数据库来做判断
执行下面命令:
点击(此处)折叠或打开
- SQL> alter table scott.obj_part MODIFY PARTITION p20141231 shrink space; 该命令并没有降低数据文件中block_id大小,字面来理解,它只是负责收缩,降低该分区表的高水位。 该命令无需重建索引
- Table altered.
- SQL> alter table scott.obj_part move partition p20141231 tablespace test; --move 移至,移到表空间最前面的空闲block中,需要重建索引
- Table altered.
再次查看表空间resize情况
点击(此处)折叠或打开
- SCOTT OBJPART_ID INDEX 23 5 4608 128
- SCOTT OBJPART_ID INDEX 24 5 4736 128
- SCOTT OBJPART_ID INDEX 25 5 4864 128
- SCOTT OBJPART_ID INDEX 26 5 5120 128
- SCOTT OBJ_PART P20141231 TABLE PA 0 5 5248 1,024
- SCOTT OBJ_PART P20141231 TABLE PA 1 5 6272 1,024
- SCOTT OBJ_PART P20141231 TABLE PA 2 5 7296 1,024 --位置已前移
- SQL> select file_name,
- 2 ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) smallest,
- 3 ceil( blocks*&&blksize/1024/1024) currsize,
- 4 ceil( blocks*&&blksize/1024/1024) -
- 5 ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) savings
- 6 from dba_data_files a,
- 7 ( select file_id, max(block_id+blocks-1) hwm
- 8 from dba_extents where tablespace_name='TEST'
- 9 group by file_id ) b
- 10 where a.file_id = b.file_id(+) and tablespace_name='TEST';
- Smallest
- Size Current Poss.
- FILE_NAME Poss. Size Savings
- -------------------------------------------------- -------- -------- --------
- /backup/oradata/mytest/test01.dbf 65 200 135
- --------
- sum 135 --剩余空间变大
再次执行相关alter …… resize操作即可。 当执行表、索引相关move、rebuild时,请了解业务及相关结构,任何操作都有风险,注意备份及操作规范。
空间
数据
位置
索引
分区表
查询
文件
也就是
命令
情况
业务
再次
大小
查询表
空闲
剩余
收缩
水位
前点
只是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
吃鸡国际服战斗服务器没有响应
网络技术对学生的影响
数据库运维的意义
加强和保障网络安全的措施
泗水住宿软件开发
软件开发产值和销售收入
数据库例题及答案
关于医院网络安全维护的求职
服务器横装竖装怎么区分
nat服务器出现故障 本地主机
嵌入式软件开发哦
如何用c 开发软件开发
计算机网络技术第二版答案
计算机网络技术的求职方向
网络安全就业待遇工资
服务器如何连接云盘
手机远程服务器已关闭连接
部队手机网络安全大讨论题目
监控数据库系统代码
计算机网络技术顶岗实习月报
qq安全中心弄人工服务器
3650 m2 服务器参数
分布式数据库云数据库
学会网络技术要多久的时间
网游玩家数据库设计
2020手机数据库
网络安全管理专业就业方向
怎么回复数据库脚本
邯郸互联网软件开发要多少钱
全市网络安全自检自查