将用户当前表空间中的表和索引迁移到另一个表空间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将用户当前表空间中的表和索引迁移到另一个表空间相关的知识,希望对你有一定的参考价值。

查看INV用户的对象的存储情况
select * from dba_segments ds where ds.owner='INV';
--default tablespace users

创建表空间INV
create tablespace inv datafile '/oradata/ocm/inv01.dbf ' size 200M autoextend on next 10m maxsize 2048M extent management local segment space management auto;
设置默认表空间为INV
alter user inv default tablespace inv;


set linesize 200
set pagesize 2000
set term off verify off head off feedback off echo off

spool mtiddl.sql

select 'alter ' ||ds.segment_type || ' '|| ds.owner||'.' || ds.segment_name || ' ' ||
       decode(segment_type, 'TABLE', 'MOVE', 'INDEX', 'REBUILD') ||
       ' tablespace INV;'
  from dba_segments ds
 where ds.owner = 'INV'
   AND (segment_type = 'INDEX' OR segment_type = 'TABLE');

spool off

以上是关于将用户当前表空间中的表和索引迁移到另一个表空间的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中的表空间

为什么要将表和索引建立在不同的表空间?

oralce 分离表和索引

oracle数据库中表空间和表之间的关系是怎么样的

oracle数据库如何把表从一个表空间移到另一个表空间

oracle数据库如何把表从一个表空间移到另一个表空间