oracle表空间收缩纪念英烈的留言
有个客户的数据库,Oracle搭建好后,并没有创建独⽴的表空间,导致⽣产⽤户的所有表都放在了users表空间下。
随着数据表的增多和数据的增多,users表空间暴涨到476G,数据库性能越来越差,需要对数据库的表空间进⾏整顿。
普通表的表空间迁移 【索引要重建】秦兵马俑导游词
ALTER TABLE E9.MEETINGSEATCARDMOULD MOVE tablespace ecology;
select 'alter index '||OWNER||'.'||INDEX_NAME||' rebuild online;' from dba_indexes where status<>'VALID' and partitionED<>'YES';构建的index 迁移SQL 如下
ALTER index E9.sdsds_001 rebuild tablespace ecology;
检查索引是否失效;
邹忌讽齐王纳谏的讽翻译gamil邮箱select OWNER,INDEX_NAME from dba_indexes where status<>'VALID' and partitionED<>'YES';
如果表中含有lob字段,这些字段并不会跟着迁移,【有lob,long存储所在的dbf⽂件不能收缩】
select 'alter table '||a.owner||'.'||a.table_name||' move lob('||a.COLUMN_NAME||') store as (tablespace ecology);'
from dba_lobs a,DBA_SEGMENTS b where a.owner in ('E9')
and a.OWNER=b.OWNER and a.SEGMENT_NAME=b.SEGMENT_NAME AND B.segment_type='LOBSEGMENT' and
b.tablespace_name='USERS';
得到的迁移SQL如下:
alter table E9.PRJ_TEMPLATE move lob(FWBTY) store as (tablespace ecology);
PS: lob上带有的lob索引⼀会⼀起迁移.
如果表中含有long字段的,
不能直接move,采⽤ expdb和impdp的⽅式, REMAP_TABLESPACE 恢复
如下所⽰:
expdp e9/ecology dumpfile=tab20210205_2.dmp directory=DATA_DIR tables=OFPRIVATE,OFOFFLINE;
impdp e9/ecology dumpfile=tab20210205_2.dmp directory=DATA_DIR REMAP_TABLESPACE=USERS:ECOLOGY;景德镇邮编
最后收缩表空间⼤⼩【这时候users表空间只⽤了80多M,索性所有的dbf⽂件都缩⼩到16m都搓搓有余】,
SQL如下:
.....
alter database datafile '/u01/app/oracle/oradata/ecology/users03.dbf' RESIZE 16M;
alter database datafile '/u01/app/oracle/oradata/ecology/users04.dbf' RESIZE 16M;
香料调料大全......
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论