关于move分区表后default_tablespace的疑问

背景:

公司要进行表的move,move完分区表以后查看user_part_tables里面的default_tablespace还是原来的表空间,重新做了实验还是如此,哪位大神能够解释一下

实验:

查看用户scott的默认表空间为scott1

SQL> select username,default_tablespace,temporary_tablespace from dba_users where username='SCOTT';

USERNAME                       DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
------------------------------ ------------------------------ ------------------------------
SCOTT                          SCOTT1                         TEMP
创建分区表

SQL> create table table_partition(
  2  col1 number,
  3  col2 varchar2(10)
  4  )
  5  partition by range(col1)(
  6     partition p01 values less than (10),
  7     partition p02 values less than (20),
  8     partition pdefault values less than (maxvalue)
  9  );

Table created.
查看分区表,看到默认表空间是scott1

SQL> select TABLE_NAME,STATUS,DEF_TABLESPACE_NAME,STATUS from user_part_tables;

TABLE_NAME                     STATUS   DEF_TABLESPACE_NAME            STATUS
------------------------------ -------- ------------------------------ --------
TABLE_PARTITION                VALID    SCOTT1                         VALID
插入数据

SQL> insert into table_partition values (1,'test');

1 row created.

SQL> insert into table_partition values (2,'test');

1 row created.
SQL> insert into table_partition values (15,'test');

1 row created.
创建local索引,并查看索引状态

SQL> create index idx_table_partition_col1_local on table_partition(col1) local;

Index created.

SQL> select INDEX_NAME,PARTITION_NAME,STATUS,TABLESPACE_NAME from user_ind_partitions;

INDEX_NAME                     PARTITION_NAME                 STATUS   TABLESPACE_NAME
------------------------------ ------------------------------ -------- ------------------------------
IDX_TABLE_PARTITION_COL1_LOCAL P01                            USABLE   SCOTT1
IDX_TABLE_PARTITION_COL1_LOCAL P02                            USABLE   SCOTT1
IDX_TABLE_PARTITION_COL1_LOCAL PDEFAULT                       USABLE   SCOTT1

move 分区表并查询local索引状态为unusable

SQL> alter table table_partition move partition p01 tablespace scott2;

Table altered.

SQL> select INDEX_NAME,PARTITION_NAME,STATUS,TABLESPACE_NAME from user_ind_partitions;

INDEX_NAME                     PARTITION_NAME                 STATUS   TABLESPACE_NAME
------------------------------ ------------------------------ -------- ------------------------------
IDX_TABLE_PARTITION_COL1_LOCAL P02                            USABLE   SCOTT1
IDX_TABLE_PARTITION_COL1_LOCAL PDEFAULT                       USABLE   SCOTT1
IDX_TABLE_PARTITION_COL1_LOCAL P01                            UNUSABLE SCOTT1
加上update参数,索引的表空间还是scott1

SQL> alter table table_partition move partition p01 tablespace scott2 update indexes;

Table altered.

SQL> select INDEX_NAME,PARTITION_NAME,STATUS,TABLESPACE_NAME from user_ind_partitions;

INDEX_NAME                     PARTITION_NAME                 STATUS   TABLESPACE_NAME
------------------------------ ------------------------------ -------- ------------------------------
IDX_TABLE_PARTITION_COL1_LOCAL P01                            USABLE   SCOTT1
IDX_TABLE_PARTITION_COL1_LOCAL P02                            USABLE   SCOTT1
IDX_TABLE_PARTITION_COL1_LOCAL PDEFAULT                       USABLE   SCOTT1
依次进行move,并查询索引状态,分区的所在表空间

SQL> alter table table_partition move partition p02 tablespace scott2 update indexes;

Table altered.

SQL> alter table table_partition move partition PDEFAULT tablespace scott2 update indexes;

Table altered.

SQL> select INDEX_NAME,PARTITION_NAME,STATUS,TABLESPACE_NAME from user_ind_partitions;

INDEX_NAME                     PARTITION_NAME                 STATUS   TABLESPACE_NAME
------------------------------ ------------------------------ -------- ------------------------------
IDX_TABLE_PARTITION_COL1_LOCAL P01                            USABLE   SCOTT1
IDX_TABLE_PARTITION_COL1_LOCAL P02                            USABLE   SCOTT1
IDX_TABLE_PARTITION_COL1_LOCAL PDEFAULT                       USABLE   SCOTT1
SQL> select TABLE_NAME,PARTITION_NAME,TABLESPACE_NAME from user_tab_partitions;

TABLE_NAME                     PARTITION_NAME                 TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
TABLE_PARTITION                P01                            SCOTT2
TABLE_PARTITION                P02                            SCOTT2
TABLE_PARTITION                PDEFAULT                       SCOTT2
再次查询分区表的默认表空间还是 SCOTT1

SQL> select TABLE_NAME,STATUS,DEF_TABLESPACE_NAME,STATUS from user_part_tables;

TABLE_NAME                     STATUS   DEF_TABLESPACE_NAME            STATUS
------------------------------ -------- ------------------------------ --------
TABLE_PARTITION                VALID    SCOTT1                         VALID
对此表示很费解,哪位大神能解释下
后续操作,将索引也move到表空间scott2,删除表空间scott1,查看数据没有丢失

SQL> alter index IDX_TABLE_PARTITION_COL1_LOCAL rebuild partition p01 online tablespace scott2;

Index altered.

SQL> alter index IDX_TABLE_PARTITION_COL1_LOCAL rebuild partition p02 online tablespace scott2;

Index altered.

SQL> alter index IDX_TABLE_PARTITION_COL1_LOCAL rebuild partition PDEFAULT online tablespace scott2;

Index altered.

SQL> select INDEX_NAME,PARTITION_NAME,STATUS,TABLESPACE_NAME from user_ind_partitions;

INDEX_NAME                     PARTITION_NAME                 STATUS   TABLESPACE_NAME
------------------------------ ------------------------------ -------- ------------------------------
IDX_TABLE_PARTITION_COL1_LOCAL P02                            USABLE   SCOTT2
IDX_TABLE_PARTITION_COL1_LOCAL P01                            USABLE   SCOTT2
IDX_TABLE_PARTITION_COL1_LOCAL PDEFAULT                       USABLE   SCOTT2

SQL> select * from table_partition;

      COL1 COL2
---------- ----------
         1 test
         2 test
        15 test













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值