在线重定义表(二)

2014-11-24 16:10:24 · 作者: · 浏览: 3
orcl> --同步中间表
14:19:49 SYS@orcl> BEGIN
14:19:49 2 DBMS_REDEFINITION.SYNC_INTERIM_TABLE('scott', 'admin_emp', 'int_admin_emp');
14:19:49 3 END;
14:19:49 4 /
PL/SQL 过程已成功完成。
已用时间: 00: 00: 00.06
14:19:50 SYS@orcl> --完成重定义
14:20:13 SYS@orcl> BEGIN
14:20:13 2 DBMS_REDEFINITION.FINISH_REDEF_TABLE('scott', 'admin_emp', 'int_admin_emp');
14:20:13 3 END;
14:20:13 4 /
PL/SQL 过程已成功完成。
已用时间: 00: 00: 00.95
14:20:17 SYS@orcl> conn scott/tiger
已连接。
--发现表结构已经改变 表在线重定义成功
14:20:26 SCOTT@orcl> desc admin_emp
名称 是否为空 类型
----------------------------------------------------- -------- -------------------------------
EMPNO NOT NULL NUMBER(5)
ENAME NOT NULL VARCHAR2(15)
JOB VARCHAR2(10)
MGR NUMBER(5)
HIREDATE DATE
SAL NUMBER(7,2)
DEPTNO NOT NULL NUMBER(3)
BONUS NUMBER(7,2)
--查看是否已经重定义为分区表
14:22:42 SCOTT@orcl> select * from admin_emp partition(emp1000);
未选定行
已用时间: 00: 00: 00.01
--
注意:在线重定义表需要大量空闲空间。在线重定义表的时候可以做DML操作。
一般使用包DBMS_REDEFINITION 或EM执行在线重定义。