Oracle 11g 在线重定义

2014-11-24 18:00:48 · 作者: · 浏览: 0

在线重定义具有以下功能:




(1)修改表的存储参数;


(2)可以将表转移到其他表空间;


(3)在表上增加、修改或删除一列或是多列;


(4)增加并行查询选项;


(5)增加分区支持;


(6)修改分区结构;


(7)重建表以减少碎片;


(8)将堆表改为索引组织表或相反的操作;




在线重定义的方法




1.基于主键


2.基于ROWID。ROWID的方式不能用于索引组织表,而且重定义后会存在隐藏列M_ROW$$。


默认采用主键的方式。




在线重定义的一些限制




1.要求原始表和中间表在同一个方案下;


2.要求有2倍甚至是多于2倍的表空间空间;


3.如果使用主键重定义的方式,原始表上要有主键;





对于在线重定义的步骤,这里不再具体说明,我们通过一个实验来演示一下,下面是一个把普通表转换成分区表在线重定义的例子




一、首先创建用户tj,并授予能够完成在线重定义的权限和角色


SQL> create user tj identified by tj


2 default tablespace users


3 temporary tablespace temp


4 quota unlimited on users;


User created.




SQL> GRANT CREATE SESSION, CREATE ANY TABLE,ALTER ANY TABLE,


2 DROP ANY TABLE, LOCK ANY TABLE ,SELECT ANY TABLE,


3 CREATE ANY INDEX,CREATE ANY TRIGGER


4 TO TJ;


Grant succeeded.




SQL> GRANT EXECUTE_CATALOG_ROLE TO TJ;


Grant succeeded.