暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 将分区索引移动到另一个表空间

askTom 2018-03-14
342

问题描述

嗨。
试图环顾四周,但没有找到适合我的设置的有效解决方案。

我已经用这样的子分区索引:

CREATE INDEX "MYINDEX" ON "MYTABLE" ("ID1", "MYDATE") 
  TABLESPACE "MYIDXTBS"  LOCAL
 (PARTITION "P_2018_01" 
PCTFREE 10 INITRANS 2 MAXTRANS 255 
  STORAGE(
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "MYIDXTBS" 
 ( SUBPARTITION "PART_2018_01_01" 
  TABLESPACE "MYIDXTBS"  , 
  SUBPARTITION "PART_2018_01_02" 
  TABLESPACE "MYIDXTBS"  , 
  SUBPARTITION "PART_2018_01_03" 
  TABLESPACE "MYIDXTBS"  , 
  SUBPARTITION "PART_2018_01_04" 
  TABLESPACE "MYIDXTBS" ) 
复制



我需要将索引子分区移动到其他表空间

如果我用

ALTER INDEX MYINDEX REBUILD PARTITION PART_2018_01_01 TABLESPACE MYIDXP20108_01 NOLOGGING;
复制


我得到了

 ORA-14287 cannot REBUILD a partition of a Composite Range partitioned index
复制


如果我尝试修改属性,我得到

ORA-14121: MODIFY DEFAULT ATTRIBUTES may not be combined with other operations
复制


有什么想法吗?
谢谢

专家解答

那是因为你需要重建次分区:

create table mytable (
  id1 int, mydate date
) partition by hash (id1)
  subpartition by hash (mydate) 
  subpartition template (
    subpartition sp1, subpartition sp2
  ) (
    partition p1
  );

CREATE INDEX "MYINDEX" ON "MYTABLE" ("ID1", "MYDATE") LOCAL;

select subpartition_name, tablespace_name from user_ind_subpartitions;

SUBPARTITION_NAME   TABLESPACE_NAME   
P1_SP1              ASSM_TBLSP        
P1_SP2              ASSM_TBLSP  

alter index myindex rebuild subpartition p1_sp1 tablespace tblsp;

select subpartition_name, tablespace_name from user_ind_subpartitions;

SUBPARTITION_NAME   TABLESPACE_NAME   
P1_SP1              TBLSP             
P1_SP2              ASSM_TBLSP  
复制

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论