ORACLE移空间操作说明.docVIP

  • 4
  • 0
  • 约1.73万字
  • 约 9页
  • 2016-09-30 发布于浙江
  • 举报
ORACLE移空间操作说明

ORACLE移表空间操作说明 移动一个表到另一个表空间 move一个表到另外一个表空间时,索引不会跟着一起move,而且会失效。(LOB类型例外) 表move,我们分为: *普通表move *分区表move *LONG,LOB大字段类型move 来进行测试和说明。 索引的move,我们通过rebuild来实现 (1)move普通表、索引 基本语法: alter table tab_name move tablespace tbs_name; move过的普通表,在不用到失效的索引的操作语句中,语句执行正常,但如果操作的语句用到了索引(主键当做唯一索引),则此时报告用到的索引失效,语句执行失败,其他如外键,非空约束,缺省值等不会失效。 我们需要重新创建主键或索引,基本语法为: alter index index_name rebuild; alter index pk_name rebuild; 如果我们需要move索引,则使用rebuild语法: alter index index_name rebuild tablespace tbs_name; alter index pk_name rebuild tablespace tbs_name; 提示: 查询表所具有的索引,可以使用user_indexes视图(索引和主键都在这个视图里可找到)。 (2)move分区表及索引 和普通表一样,索引会失效,区别的仅仅是语法而已。 分区基本语法: 特别提醒注意,如果是单级分区,则使用关键字PARTITION,如果是多级分区,则使用SUBPARTITION替代PARTITION。 如果分区或分区索引比较大,可以使用并行move或rebuild,PARALLEL (DEGREE 2); 如: ALTER TABLE PART_ALARMTEXTDATA move SUBPARTITION ALARMTEXTDATA_050910_ATD01 TABLESPACE users PARALLEL (DEGREE 2); ALTER INDEX GLOBAL_ALARMTEXTDATA REBUILD tablespace users PARALLEL (DEGREE 2); ALTER INDEX LOCAL_ALARMTEXTDATA REBUILD SUBPARTITION ALARMTEXTDATA_050910_ATD01 TABLESPACE users PARALLEL (DEGREE 2); 移动表的某个分区: ================ ALTER TABLE tab_name move PARTITION partition_name TABLESPACE tbs_name; 重建全局索引: ================ ALTER INDEX global_index REBUILD; 或 ALTER INDEX global_index REBUILD tablespace tbs_name; 重建局部索引: ================ 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 可查询分区相关内容,同时,分区对象,也是segment,所以也可在dba_segments里查的到。 (3)move LONG,LOB类型 据说DBMS_REDEFINITION包可以提供一些方便,没用过。 a、LONG类型 long类型不能通过MOVE来传输 特别提示,尽量不要用LONG类型,特难管理。 1,LONG不能使用insert into ... select ...等带select的模式。 如 create table t123 (id int,en long); 则 insert into t123(id,en) select * from t123; 报告错误,可以用pl/sql来帮助解决,如: declare cursor cur_t123 is select * from t123; use_

文档评论(0)

1亿VIP精品文档

相关文档