迁移|分享一份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
本文插图
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
3、将大表迁移到目标表空间 注意move一个表到另外一个表空间时,索引不会跟着一起move , 而且会失效 。 (LOB类型例外)
alter table ARCHIVE.S_SHIP_UNIT_LINE_DMP move tablespace LOB3alter table ARCHIVE.ORDER_RELEASE_LINE_DMP move tablespace LOB3
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"
本文插图
本文插图
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
推荐阅读
- 蓝橡树|牛娃爸爸分享: 孩子如何通过学习编程, 激活大脑, 提升成绩, 逆袭名校?
- 苹果手机,IOS系统|iphone7仍未失去购买力,这是一份通俗的购机报告
- 智能穿戴|入场虽晚,但胜在做工扎实,诺基亚E3200耳机评测分享
- |小峰工具测评分享之视频转成MP4
- 便签|2020年开学季更换电脑怎么迁移便签数据
- 超能网|英伟达科普了GPU的发热,分享了30系公版显卡散热方案的设计思路
- 用户|个推APP增长分享活动:如何用游戏思维&AI技术赋能增长
- 老司机|老司机不愿意分享的四款宝藏软件,知道两款证明你也很优秀
- 存储信息直通车|老司机不愿意分享的四款宝藏软件,知道两款证明你也很优秀
- 智能穿戴|买智能手环不如买它:Omthing简悦智能手表体验分享
