签到成功

知道了

CNDBA社区CNDBA社区

Oracle 12C R2-新特性-在线移动表

2017-02-22 09:27 3258 0 原创 Oracle 12C
作者: Expect-乐

Oracle 12C R2-新特性-在线移动表http://www.cndba.cn/Expect-le/article/1765

非分区表可以作在线移动,而不阻止任何并发DML操作。 表移动操作现在还支持自动索引维护作为移动的一部分。

http://www.cndba.cn/Expect-le/article/1765

对非分区表的数据维护不需要任何维护窗口,因为它不影响任何DML或查询操作。

移动一个表到一个新的段或者表空间

可以在线移动表,分区,子分区。语法如下:

·ALTER TABLE ... MOVE ... ONLINE
·ALTER TABLE ... MOVE PARTITION ... ONLINE
·ALTER TABLE ... MOVE SUBPARTITION ... ONLINE

移动表会更改表中行的rowid。 如果移动表并包括ONLINE关键字和UPDATE INDEXES子句,则索引在移动操作期间仍可用。 如果包括UPDATE INDEXES子句但不包括ONLINE关键字,则索引可在移动操作后立即使用。 UPDATE INDEXES子句只能更改表上全局索引的存储属性或表上任何全局分区索引的索引分区的存储属性。 如果不包括UPDATE INDEXES子句,则对rowid的更改将导致表上的索引标记为UNUSABLE,并且使用这些索引访问表的DML会收到ORA-01502错误。 在这种情况下,必须删除或重建表上的索引。http://www.cndba.cn/Expect-le/article/1765

移动操作会导致表的统计信息无效,所以要在移动表之后立即收集新的统计信息。

如果表包含LOB列,则此语句可用于将表连同明确指定的LOB数据和LOB索引段(与此表关联)移动。 如果未指定,则缺省为不移动LOB数据和LOB索引段。

移动表

当对此语句使用ONLINE关键字时,数据操作语言(DML)操作可以继续在正在移动的表上不间断运行。 如果不包括ONLINE关键字,则在移动操作期间,不能对表中的数据进行并发DML操作。

http://www.cndba.cn/Expect-le/article/1765

例子:http://www.cndba.cn/Expect-le/article/1765http://www.cndba.cn/Expect-le/article/1765

2.1   创建一个表,索引:

SQL> CREATE TABLE dept_exp (

     DEPTNO NUMBER (2) NOT NULL,

     DNAME VARCHAR2 (14),

     LOC VARCHAR2 (13))

   TABLESPACE tbs_1;  2    3    4    5  

Table created.

SQL> CREATE INDEX i1_deptno ON dept_exp(deptno) TABLESPACE tbs_1;

Index created.


SQL> CREATE INDEX i2_dname ON dept_exp(dname) TABLESPACE tbs_1;
 

Index created.

SQL> COL TABLE_NAME FOR A20;

SQL> COL TABLESPACE_NAME FOR A30

SQL> SELECT TABLE_NAME,TABLESPACE_NAME FROM DBA_TABLES WHERE TABLE_NAME ='DEPT_EXP';


TABLE_NAME	     TABLESPACE_NAME

-------------------- ------------------------------

DEPT_EXP	     TBS_

http://www.cndba.cn/Expect-le/article/1765

2.2   将表移动到新的表空间tbs_2.

SQL> ALTER TABLE dept_exp MOVE ONLINE

   COMPRESS TABLESPACE tbs_2

   UPDATE INDEXES

      (i1_deptno TABLESPACE tbs_1,

       i2_dname TABLESPACE tbs_2);  2    3    4    5  

Table altered.

http://www.cndba.cn/Expect-le/article/1765

2.3   验证

2.3.1  查看表所属表空间

SQL> COL TABLE_NAME FOR A20;

SQL> COL TABLESPACE_NAME FOR A30

SQL> SELECT TABLE_NAME,TABLESPACE_NAME FROM DBA_TABLES WHERE TABLE_NAME ='DEPT_EXP';

TABLE_NAME      TABLESPACE_NAME

-------------------- ------------------------------

DEPT_EXP      TBS_2

http://www.cndba.cn/Expect-le/article/1765

2.3.2  查看索引状态

SQL> COL INDEX_NAME FOR A20

SQL> SELECT INDEX_NAME,TABLE_NAME,STATUS FROM DBA_INDEXES WHERE TABLE_NAME='DEPT_EXP';

INDEX_NAME	     TABLE_NAME   STATUS

-------------------- -------------------- ----------------

I1_DEPTNO	     DEPT_EXP	  VALID

I2_DNAME	     DEPT_EXP	  VALID

http://www.cndba.cn/Expect-le/article/1765

版权声明:本文为博主原创文章,未经博主允许不得转载。

在线移动表

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Expect-乐

Expect-乐

关注

Without the continuous bitter cold, there can be no fragrant plum blossom

  • 336
    原创
  • 6
    翻译
  • 100
    转载
  • 41
    评论
  • 访问:1369601次
  • 积分:1957
  • 等级:核心会员
  • 排名:第3名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ