oracle 11g 在线重定义(online redefinition)介绍
(2012-11-02 10:06:59)
标签:
oracle知识oracle工具it |
分类: oracle技术 |
在线重定义具有以下功能:
(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
User created.
SQL> GRANT CREATE SESSION, CREATE ANY TABLE,ALTER ANY
TABLE,
Grant succeeded.
SQL> GRANT EXECUTE_CATALOG_ROLE TO TJ;
Grant succeeded.
二、使用TJ用户登录,创建表DEMO,作为在线重定义的原始表,在表上添加主键和一个索引
SQL> conn tj/tj
Connected.
SQL> create table demo as select empno,ename,sal,deptno from
scott.emp;
Table created.
SQL> set linesize 120
SQL> set pagesize 60
SQL> select * from demo;
---------- ---------- ---------- ----------