兼容性判定
支持度partial
严重度major
置信度high
依据规则ora.partition.interval
迁移建议
目标原生 INTERVAL 时逐项保留表达式、最高显式 RANGE 分区上界定义的过渡点和子分区模板;否则移除自动扩展,按该过渡点至业务 horizon 预建等价 RANGE 分区,并部署幂等滚动作业在写入前继续预建,同时替换依赖自动分区名的运维 SQL
判定说明
支持间隔分区;边界行为需对照
库侧 / 应用侧路径
库侧改造
可行:原生能力经版本门控;非原生路径生成分区台账、预建 DDL、提前量告警和失败可重放的滚动作业
应用侧改造
不可行:分区是存储结构,应用侧无从承接
推荐路线:db_side。验证建议:覆盖多显式 RANGE 分区下的过渡点前后、边界等值、日期/月末/时区与数值 interval,并保持源端对 NULL/MAXVALUE 定义或写入的拒绝/错误契约;核对自动分区名及运维 SQL;并发写入和滚动作业竞态下越界不失败、无重叠/缺口,另测 SERIALIZABLE 向新区间写入的失败与重试,并演练作业失败恢复、裁剪计划和行数对账
规则样例
CREATE TABLE sales (sale_date DATE, amt NUMBER) PARTITION BY RANGE (sale_date) INTERVAL (NUMTOYMINTERVAL(1,'MONTH')) (PARTITION p0 VALUES LESS THAN (DATE '2024-01-01'))
CREATE TABLE metering (seq_no NUMBER) PARTITION BY RANGE (seq_no) INTERVAL (100000) (PARTITION p0 VALUES LESS THAN (100000))
参考来源
- internal: Minorli/ob_comparator schema_diff_reconciler.py:38032 apply_ob_feature_gates (interval gate)
- internal: Minorli/ob_comparator schema_diff_reconciler.py:1471 PartitionDefinition / COMPARE.TABLE.PARTITION_DEFINITION.V1
- https://docs.oracle.com/en/database/oracle/oracle-database/19/vldbg/partition-concepts.html
- https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/CREATE-TABLE.html
相关改造点
- INTERVAL 自动分区 的 21 目标横向专业场景
- ORACLE → openGauss 5.0 A 模式 全部改造点
- openGauss 5.0 A 模式 兼容性总览
- ORACLE 迁移国产库总览
- ORACLE ALTER SESSION SET 会话参数 迁移 openGauss 5.0 A 模式 适配说明
- ORACLE 关联数组(INDEX BY 表) 迁移 openGauss 5.0 A 模式 适配说明
- ORACLE AT TIME ZONE 时区表达式 迁移 openGauss 5.0 A 模式 适配说明
- ORACLE 自治事务(PRAGMA AUTONOMOUS_TRANSACTION) 迁移 openGauss 5.0 A 模式 适配说明
- ORACLE 视图 BEQUEATH 子句 迁移 openGauss 5.0 A 模式 适配说明
- ORACLE BFILE 外部文件类型 迁移 openGauss 5.0 A 模式 适配说明