兼容性判定
公开资料依据 · 建议 PoC 复核支持度partial
严重度major
置信度medium
依据规则ora.partition.interval
怎么改
目标原生 INTERVAL 时逐项保留表达式、最高显式 RANGE 分区上界定义的过渡点和子分区模板;否则移除自动扩展,按该过渡点至业务 horizon 预建等价 RANGE 分区,并部署幂等滚动作业在写入前继续预建,同时替换依赖自动分区名的运维 SQL
判定说明
4.4.2+ 原生 interval;4.3.5 需按 cutoff 预建分区滚动补齐,分区定义漂移只报告不自动重分区
库侧 / 应用侧路径
库侧改造
可行:原生能力经版本门控;非原生路径生成分区台账、预建 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))
CREATE TABLE sales (sale_date DATE) PARTITION BY RANGE (sale_date) (PARTITION p2024 VALUES LESS THAN (DATE '2025-01-01'))
参考来源
- https://github.com/oceanbase/oceanbase-doc/tree/2a5ae3a23a51729d065cec716508eb26cb064106
- 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
相关改造点
- ORACLE → OceanBase 4.3.5 Oracle 模式 全部改造点
- OceanBase 4.3.5 Oracle 模式 兼容性总览
- ORACLE 迁移国产库总览
- ORACLE AT TIME ZONE 时区表达式 迁移 OceanBase 4.3.5 Oracle 模式 怎么改
- ORACLE 自治事务(PRAGMA AUTONOMOUS_TRANSACTION) 迁移 OceanBase 4.3.5 Oracle 模式 怎么改
- ORACLE 视图 BEQUEATH 子句 迁移 OceanBase 4.3.5 Oracle 模式 怎么改
- ORACLE BFILE 外部文件类型 迁移 OceanBase 4.3.5 Oracle 模式 怎么改
- ORACLE BITMAP 位图索引 迁移 OceanBase 4.3.5 Oracle 模式 怎么改
- ORACLE CDB/多租户与排序规则 DDL 子句(SHARING / DEFAULT COLLATION / CONTAINER_MAP) 迁移 OceanBase 4.3.5 Oracle 模式 怎么改