Oracle11G 在线重定义

简介:

create tablespace tbs1 datafile '/opt/oracle/oradata/haier/tbs1.dbf' size 500m autoextend on maxsize 2G;

 

create tablespace tbs2 datafile '/opt/oracle/oradata/haier/tbs2.dbf' size 500m autoextend on maxsize 2G;


create tablespace tbs3 datafile '/opt/oracle/oradata/haier/tbs3.dbf' size 500m autoextend on maxsize 2G;


SQL> desc HHHH
 Name        Null?    Type
 ----------------------------------------- -------- ----------------------------
 PNTMALL_PNT_ID         NUMBER
 PNTMALL_PNT_DT         DATE
.......
 PNTMALL_HRTYPE_DESC        VARCHAR2(2000)



SQL> selectcount(*) from HHHH;

 

  COUNT(*)

----------

  16713034


alter table HHHH add constraint HHHH_PKEY primary key(PNTMALL_PNT_ID);


create table HHHH_tmp

partition by range(PNTMALL_PNT_DT)

(

partition p1 values less than (to_date('2016-01-01','yyyy-mm-dd')) tablespace tbs1,

partition p2 values less than (to_date('2017-01-01','yyyy-mm-dd')) tablespace tbs2,

partition p3 values less than (maxvalue) tablespace tbs3

)

as

select * from HHHH where 1=2;


SQL> begin

  2 DBMS_REDEFINITION.START_REDEF_TABLE('BER','HHHH','HHHH_TMP');

  3  end;

  4  /

 

PL/SQL proceduresuccessfully completed

 

SQL> selectobject_id,object_name,object_type,status from user_objects where object_namelike '%HHH%';

 

 OBJECT_ID OBJECT_NAME                                                                     OBJECT_TYPE         STATUS

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

    115233 HHHH_PKEY                                                                       INDEX               VALID

    115232 HHHH                                                                            TABLE               VALID

    115341 HHHH_TMP                                                                        TABLE PARTITION     VALID

    115340 HHHH_TMP                                                                        TABLE PARTITION     VALID

    115339 HHHH_TMP                                                                        TABLE PARTITION     VALID

    115338 HHHH_TMP                                                                        TABLE               VALID

    115342 MLOG$_HHHH                                                                      TABLE               VALID

    115343 RUPD$_HHHH


SQL> selectcount(*) from HHHH;

 

  COUNT(*)

----------

  16713034

 

SQL> selectcount(*) from HHHH_TMP;

 

  COUNT(*)

----------

  16713034


SQL> exec DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS('BER','HHHH','HHHH_TMP',NUM_ERRORS => :V_ERR);

 

 

PL/SQL procedure successfully completed.



SQL> print v_err

 

     V_ERR

----------

 0


SQL> selectobject_id,object_name,object_type,status from user_objects where object_namelike '%HHH%';

 

 OBJECT_ID OBJECT_NAME                                                                     OBJECT_TYPE         STATUS

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

    115344 TMP$$_HHHH_PKEY0                                                                INDEX               VALID

    115343 RUPD$_HHHH                                                                      TABLE               VALID

    115342 MLOG$_HHHH                                                                      TABLE               VALID

    115338 HHHH_TMP                                                                        TABLE               VALID

    115339 HHHH_TMP                                                                        TABLE PARTITION     VALID

    115340 HHHH_TMP                                                                        TABLE PARTITION     VALID

    115341 HHHH_TMP                                                                        TABLE PARTITION     VALID

    115232 HHHH                                                                            TABLE               VALID

    115233 HHHH_PKEY                                                                       INDEX               VALID

 

9 rows selected


SQL> selecttable_name,index_name,status from user_indexes where table_name='HHHH_TMP';

 

TABLE_NAME                     INDEX_NAME                     STATUS

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

HHHH_TMP                       TMP$$_HHHH_PKEY0               VALID



SQL> EXECDBMS_REDEFINITION.SYNC_INTERIM_TABLE('BER','HHHH','HHHH_TMP');

 

PL/SQL proceduresuccessfully completed


SQL> selectobject_id,object_name,object_type,status from user_objects where object_namelike '%HHH%';

 

 OBJECT_ID OBJECT_NAME                                                                     OBJECT_TYPE         STATUS

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

    115338 HHHH                                                                            TABLE               VALID

    115339 HHHH                                                                            TABLE PARTITION     VALID

    115340 HHHH                                                                            TABLE PARTITION     VALID

    115341 HHHH                                                                            TABLE PARTITION     VALID

    115232 HHHH_TMP                                                                        TABLE               VALID

    115344 HHHH_PKEY                                                                       INDEX               VALID

    115233 TMP$$_HHHH_PKEY0                                                                INDEX               VALID

 

7 rows selected




 本文转自 dbapower 51CTO博客,原文链接:http://blog.51cto.com/suifu/1745027,如需转载请自行联系原作者

相关文章
|
SQL 存储 Oracle
实战篇:Oracle分区表之在线重定义
实战篇:Oracle分区表之在线重定义
实战篇:Oracle分区表之在线重定义
|
Oracle 关系型数据库
Oracle 执行在线重定义时,表空间满了报错 ORA-23539,怎么破?
今天执行转分区表操作时,使用在线重定义,去吃个饭的功夫,表空间满了,报错如下:
Oracle 执行在线重定义时,表空间满了报错 ORA-23539,怎么破?
|
SQL Oracle 关系型数据库
|
SQL Oracle 关系型数据库
Oracle Online Redefinition在线重定义(上)
面对越来越多的7*24系统,运维人员进行工作可用的时间窗口变的越来越小。就在有限的时间窗口中,硬件检修、网络改造配置占据了很多时间。对数据库对象进行日常维护,越来越成为我们需要关注的问题。
1447 0
|
SQL Oracle 关系型数据库
Oracle Online Redefinition在线重定义(中)
上篇中,我们简单地介绍了如何使用Oracle在线重定义特性进行数据表Online的结构变动操作。本篇我们从一个较复杂的案例出发,讨论复杂变化情况下如何进行Online Redefinition,以及dbms_redefinition包各个关键方法的作用。
1222 0
|
SQL Oracle 关系型数据库
Oracle Online Redefinition在线重定义(下)
在之前的文章中,我们看到了如何处理单表在线重定义过程。本篇我们来看一下如何进行关联表的重定义过程。   4、外键关系表重定义   我们先创建出实验数据表。     SQL> create table t_master as select owner,...
1033 0
|
Oracle 关系型数据库 SQL
Oracle表的在线重定义(一)
好处: When a table is redefined online, it is accessible to both queries and DML during much of the redefinition process.
1005 0
|
SQL Oracle 关系型数据库

推荐镜像

更多