Oracle 移动clob字段
【IT168 服务器学院】还是硬件问题,数据库的磁盘空间太小了,或者说对磁盘没有好好的整理,现在磁盘不够了,需要从各个地方节省磁盘空间。发现有个空间挺大的,原先存放clob字段,用掉了近10G,但是经过了一次数据整理,clob的记录也不过数万条。不用占用这么多空间,但是看磁盘占用情况,这个表空间占用了近8G空间。而且检查了整个的segment,只有这个clob在用这个磁盘空间。
查了一下语法,开始做了
alter table txt_story lob(body) store as (tablespace txtlob)
经过了漫长的等待,总算完成了, 才用了1G的空间。节省了近8G的空间。
顺便查了网上的资料,将所有挪空间的语句都温习了一下
怎么样移动表或表分区
[A]移动表的语法
Alter table tablename move
[Tablespace new_name
Storage(initial 50M next 50M
pctincrease 0 pctfree 10 pctused 50 initrans 2) nologging]
移动分区的语法
alter table tablename move (partition partname)
[update global indexes]
之后之后必须重建索引
Alter index indexname rebuild
如果表有Lob段,那么正常的Alter不能移动Lob段到别的表空间,而仅仅是移动了表段,可以采用如下的方法移动Lob段
alter table tablename move
lob(lobsegname) store as (tablespace newts);