ORACLE MOVE表空间

move一个表到另外一个表空间时,索引不会跟着一起move,而且会失效(LOB类型例外)。做表空间转移之前,被转移表的用户必须在目的表空间上有使用表空间的权限,否则会报错:ORA-01950: no privileges on tablespace...

表move分为

1.普通表move

2.分区表move

3.LONG

4.LOB大字段类型move

5.索引的move通过rebuild来实现


首先检查表空间有哪些表

select   table_name   from user_tables where tablespace_name = 'LOADTBS' order by table_Name;


select   table_name ,PARTITION_NAME  from useR_TAB_PARTITIONS where tablespace_name = 'LOADTBS' order by table_Name;


一、move普通表、索引

1、基本语法:

a、alter table table_name t move tablespace xxx;

b、alter index index_name rebuild tablespace xxx;

move过的普通表,在不用到失效的索引的操作语句中,语句执行正常,但如果操作的语句用到了索引(主键当做唯一索引),则此时报告用到的索引失效,语句执行失败,其他如外键,非空约束,缺省值等不会失效。

2、重新创建主键或索引基本语法为:

a、alter index index_name rebuild;

b、alter index pk_name rebuild;

3、move索引用rebuild语法:

a、alter index index_name rebuild tablespace tbs_name;

b、alter index pk_name rebuild tablespace tbs_name;

二、move分区表及索引

和普通表一样,分区表索引会失效,区别的仅仅是语法而已。

1、分区基本语法

注:如果是单级分区,则使用关键字PARTITION,如果是多级分区,则使用SUBPARTITION替代PARTITION。

如果分区或分区索引比较大,可以使用并行move或rebuild,PARALLEL (DEGREE 2);

如:

ALTER TABLE PART_ALARM move SUBPARTITION p_01 TABLESPACE users PARALLEL (DEGREE 2);

--全局索引

ALTER INDEX GX1_ PART_ALARM REBUILD tablespace users PARALLEL (DEGREE 2);

--分区索引

ALTER INDEX LX1_ PART_ALARM REBUILD SUBPARTITION p_01 TABLESPACE users1 PARALLEL (DEGREE 2);

ALTER INDEX LX1_ PART_ALARM REBUILD SUBPARTITION p_02 TABLESPACE users2 PARALLEL (DEGREE 2);

………………

ALTER INDEX LX1_ PART_ALARM REBUILD SUBPARTITION p_0n TABLESPACE usersn PARALLEL (DEGREE 2);

2、移动表的某个分区

ALTER TABLE tab_name move PARTITION partition_name TABLESPACE tbs_name;

3、重建全局索引

ALTER INDEX global_index REBUILD;

ALTER INDEX global_index REBUILD tablespace tbs_name;

4、重建局部索引

ALTER TABLE tab_name MODIFY PARTITION partition_name REBUILD UNUSABLE LOCAL INDEXES;

ALTER INDEX local_index_name REBUILD PARTITION partition_name TABLESPACE tbs_name;

 

提示:

USER_PART_TABLES

USER_IND_PARTITIONS

USER_IND_SUBPARTITIONS

USER_LOB_PARTITIONS

USER_LOB_SUBPARTITIONS

USER_PART_INDEXES

USER_PART_LOBS

user_segments

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值