Oracle DBMS_REDEFINITION(在线重定义)

DBMS_REDEFINITION是Oracle数据库提供的‌在线表重定义内置包‌,从Oracle 9.2.0.4版本开始支持,核心作用是在几乎不锁表、不中断业务DML操作的前提下,完成表结构的结构性变更,大幅降低停机维护窗口,提升系统高可用性。

核心适用场景

  • 表结构调整‌
    在线增删/修改列、重命名列、调整列数据类型,无需停机锁表。
  • ‌‌分区改造‌
  • 将普通堆表转为分区表,新增/拆分/合并分区,是Oracle 12c中最可靠的普通表转分区表方案,规避ALTER TABLE MODIFY PARTITION BY语法的大量限制。
  • 重组优化‌
    重建表消除存储碎片、迁移表空间、转换堆表与索引组织表,同时保障业务持续访问。
  • 依赖对象同步‌
    在线重建/调整索引、约束、触发器、权限等依赖对象,不中断业务运行。

关键使用限制

  • 需预留至少‌2倍原表大小‌的表空间,用于存放原表和中间表数据。
  • 仅支持普通用户表,SYS/SYSTEM用户下的表、临时表、外部表、物化视图日志表等不支持重定义。
  • 推荐基于主键(CONS_USE_PK)模式重定义,无主键的表可使用ROWID模式,但性能会明显下降。
  • 主键列不可修改,中间表新增列不能设置NOT NULL约束,且无法启用nologging模式。

案例脚本(分区表改造)

相关推荐
张洛闻Eren21 小时前
MySQL 维护稳定系统【MySQL第二课】
linux·数据库·mysql·云原生
布莱克6051 天前
理解索引:从概念到实践
数据库·mysql
我不是疯子是傻子1 天前
Qt CAN通信周期发送抖动?实测定时器精度校准与时间戳补偿方案
开发语言·数据库·qt
这个DBA有点耶1 天前
数据库迁移怎么做到“零翻车“:金仓 KDMS/KDTS/KFS 工具链实测
数据库·架构·dba
2501_937860941 天前
MySQL联合查询(多表查询)
数据库·mysql
名字还没想好☜1 天前
Next.js 用 Server Components 直连数据库:去掉 API 层的边界,和三条别踩的安全红线
前端·javascript·数据库·安全·react·next.js
迷迭香yy1 天前
行业板块轮动因子实战从板块资金到因子建模的本地化Python全流程
数据库·人工智能·python
SelectDB1 天前
抖音集团 实时数据仓库:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB1 天前
网易 日志与时序数据分析:Apache Doris / SelectDB 的技术能力与实践
数据库
weixin_539446781 天前
Navicat Premium 17报缺少ODBC驱动
数据库