dmp文件查看表空间_分享一份Oracle大表迁移不同表空间教程

概述

目前archive表空间需扩容,但服务器资源有限,无法对表空间进行扩容,故采取表空间迁移方式,以下为测试环境模拟。


1、查看表空间情况

SELECT  SUBSTR(a.TABLESPACE_NAME,1,30) TablespaceName,    round(SUM(a.bytes/1024/1024/1024),2)  AS "Totle_size(G)",    round(SUM(NVL(b.free_space1/1024/1024/1024,0)),2) AS "Free_space(G)",  round(SUM(a.bytes/1024/1024/1024),2)-round(SUM(NVL(b.free_space1/1024/1024/1024,0)),2)  AS "Used_space(G)",    ROUND((SUM(a.bytes/1024/1024/1024)-SUM(NVL(b.free_space1/1024/1024/1024,0))) *100/SUM(a.bytes/1024/1024/1024),2) AS "Used_percent%",    round(SUM((case when a.MAXBYTES = 0 then a.bytes else a.MAXBYTES end)/1024/1024/1024),2)                                                                     AS "Max_size(G)",ROUND((SUM(a.bytes/1024/1024/1024)-SUM(NVL(b.free_space1/1024/1024/1024,0)))*100/SUM((case when a.MAXBYTES = 0 then a.bytes else a.MAXBYTES end)/1024/1024/1024),2) AS "Max_percent%"  FROM dba_data_files a,    (SELECT SUM(NVL(bytes,0)) free_space1,      file_id    FROM dba_free_space  GROUP BY file_id   ) b WHERE a.file_id = b.file_id(+) GROUP BY a.TABLESPACE_NAMEORDER BY "Used_percent%" desc;
d0f77872f7df63dde1844016847e301e.png

2、查看大表

select  OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,BYTES/1024/1024/1024 GB from dba_segments where tablespace_name='ARCHIVE' order by bytes desc;
1ccd7824b575708afbc2adca9f94f443.png

3、将大表迁移到目标表空间

注意move一个表到另外一个表空间时,索引不会跟着一起move,而且会失效。(LOB类型例外)

alter table ARCHIVE.S_SHIP_UNIT_LINE_DMP move tablespace LOB3;alter table ARCHIVE.ORDER_RELEASE_LINE_DMP move tablespace LOB3;
3e135b029b5227a61e69cbe8658215e5.png

4、move索引

注意:index_type包括两种类型'NORMAL'为普通表,'LOB'为blob或者clob字段生成的索引,在这里要排除掉

--生成重新move索引语句SELECT 'alter index ' || index_name || ' rebuild tablespace LOB3;'  FROM dba_indexes WHERE index_type = 'NORMAL'   AND table_owner = 'ARCHIVE' AND table_name='S_SHIP_UNIT_LINE_DMP'   AND dropped = 'NO';

5、检查表状态及索引信息

select owner,table_name,tablespace_name,status from dba_tables where table_name='S_SHIP_UNIT_LINE_DMP';select owner,index_name,index_type,table_name,status from dba_indexes where table_name='S_SHIP_UNIT_LINE_DMP';
db0b3699dd26c8aa9a5c0ee8fef1b9eb.png
07620a6baa4871813f3d6cfccab930ac.png

6、查看表空间情况

可以发现表空间大小已更改。

SELECT  SUBSTR(a.TABLESPACE_NAME,1,30) TablespaceName,    round(SUM(a.bytes/1024/1024/1024),2)  AS "Totle_size(G)",    round(SUM(NVL(b.free_space1/1024/1024/1024,0)),2) AS "Free_space(G)",  round(SUM(a.bytes/1024/1024/1024),2)-round(SUM(NVL(b.free_space1/1024/1024/1024,0)),2)  AS "Used_space(G)",    ROUND((SUM(a.bytes/1024/1024/1024)-SUM(NVL(b.free_space1/1024/1024/1024,0))) *100/SUM(a.bytes/1024/1024/1024),2) AS "Used_percent%",    round(SUM((case when a.MAXBYTES = 0 then a.bytes else a.MAXBYTES end)/1024/1024/1024),2)                                                                     AS "Max_size(G)",ROUND((SUM(a.bytes/1024/1024/1024)-SUM(NVL(b.free_space1/1024/1024/1024,0)))*100/SUM((case when a.MAXBYTES = 0 then a.bytes else a.MAXBYTES end)/1024/1024/1024),2) AS "Max_percent%"  FROM dba_data_files a,    (SELECT SUM(NVL(bytes,0)) free_space1,      file_id    FROM dba_free_space  GROUP BY file_id   ) b WHERE a.file_id = b.file_id(+) GROUP BY a.TABLESPACE_NAMEORDER BY "Used_percent%" desc;
ac9cdece1329c7de919c877f806eb481.png

后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!

d541c8b20fbc772afd292bb4b49c2832.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值