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模式。

案例脚本(分区表改造)

相关推荐
这个DBA有点耶4 小时前
从症状到根因:数据库监控指标的分层方法与静态/动态阈值策略
数据库·mysql·代码规范
SelectDB5 小时前
时间旅行与快照能力速查:Doris 侧三条落地路径
大数据·数据库·数据分析
SelectDB5 小时前
云数仓成本结构拆解速查:五层计费 vs Doris / 托管形态
大数据·数据库·数据分析
SelectDB5 小时前
什么场景能承接与建议保留:Doris vs Snowflake 边界速查
大数据·数据库·数据分析
这个DBA有点耶7 小时前
DELETE没删多少数据,表却越来越大——InnoDB删除空洞与页合并失效的根因
数据库·mysql·代码规范
ly768910 小时前
PostgreSQL 备份恢复策略:pg_basebackup、WAL 归档与 PITR 在企业 Java 系统中的落地
java·数据库·postgresql·pitr·pg_basebackup·wal 归档
小羊没烦恼!11 小时前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
注塑机数据采集联网11 小时前
如何解决注塑机数据采集联网对接MES系统数据WiFi传输数据不稳问题
大数据·数据库·物联网·数据挖掘·数据分析
黄俊懿11 小时前
【架构师从入门到进阶】第六章:服务集群优化——第八节:线程数公式
java·服务器·数据库·分布式·性能优化·架构·系统架构