介绍
DBMS_REDEFINITION(在线重定义):
- 支持的数据库版本:Oracle Database - Enterprise Edition - Version 9.2.0.4 and later
- 通过 物化视图 实现
使用在线重定义的一些限制条件:
- 必须有足够的表空间来容纳表的两倍数据量
- 必须在同一个用户下进行在线重定义
- SYS 和 SYSTEM 用户下的表无法进行在线重定义
- 在线重定义无法采用 nologging
- 如果中间表有新增列,则不能有 NOT NULL 约束
DBMS_REDEFINITION包:
- ABSORT_REDEF_TABLE:清理重定义的错误和中止重定义
- CAN_REDEF_TABLE:检查表是否可以进行重定义,存储过程执行成功代表可以进行重定义
- COPY_TABLE_DEPENDENTS:同步索引和依赖的对象(包括索引、约束、触发器、权限等)
- FINISH_REDEF_TABLE:完成在线重定义
- REGISTER_DEPENDENTS_OBJECTS:注册依赖的对象,如索引、约束、触发器等
- START_REDEF_TABLE:开始在线重定义
- SYNC_INTERIM_TABLE:增量同步数据
- UNREGISTER_DEPENDENT_OBJECT:不注册依赖的对象,如索引、约束、触发器等