兼容性判定
公开资料依据 · 建议 PoC 复核支持度partial
严重度major
置信度medium
依据规则ora.seq.order
怎么改
SESSION 序列忽略 ORDER,已由匹配边界排除;普通 GLOBAL/NOSCALE/NOSHARD 序列若仅需唯一可去除 ORDER 并记录语义放宽,若需全局单调则使用目标有序序列或独立发号服务。割接须冻结全部取号方,在每个源实例失效或放弃已预取 CACHE(无法保证时停止源实例),并确认任何实例不得恢复取号;随后盘点 INCREMENT、MINVALUE/MAXVALUE/CYCLE、ORDER 及扩展属性,再执行受控 NEXTVAL。探针值已被消耗并保留不用,按步长、方向和边界计算其受控 NEXTVAL 后继,将合法后继设为目标首个精确 next transition。LAST_NUMBER 是缓存相关的后续值而非当前值,max used 也不含未落表调用,二者均不得单独作起点。SCALE/SHARD(以及影响编号构成的扩展)不能套普通算术后继,必须走专用迁移或人工阻断;NOCYCLE 已耗尽或探针位于终值时没有合法后继,须保留耗尽状态并阻断取号,禁止伪造回绕
判定说明
ORDER 出号语义在分布式下与 Oracle RAC 不同;LAST_NUMBER 值同步需业务窗口执行 RESTART
库侧 / 应用侧路径
库侧改造
可行:普通 GLOBAL 序列冻结消费者并在每个源实例失效或放弃缓存,确认任何实例不得恢复取号后按受控 NEXTVAL 合法后继重建;SESSION 排除,SCALE/SHARD 或 NOCYCLE 耗尽进入人工阻断
应用侧改造
可行:强全局顺序需求迁到单一 ID 服务,并替换所有数据库取号调用
推荐路线:case_by_case。验证建议:覆盖 SESSION 排除、SCALE/SHARD 阻断、正/负 INCREMENT、MINVALUE/MAXVALUE/CYCLE 回绕、NOCYCLE 已耗尽、CACHE/NOCACHE、实例重启、未落表 NEXTVAL 与多节点并发;断言每个源实例的缓存均已失效/放弃且任何实例不得恢复取号,探针值不再发出、目标首值等于受控 NEXTVAL 后继且是精确 next transition,并确认源零取号及放弃 ORDER 时业务不读取生成顺序
规则样例
CREATE SEQUENCE ord_seq START WITH 1 INCREMENT BY 1 CACHE 20 ORDER
CREATE SEQUENCE audit_seq MINVALUE 1 MAXVALUE 999999 ORDER CYCLE
CREATE SEQUENCE ord_seq START WITH 1 CACHE 20 NOORDER
参考来源
- https://github.com/oceanbase/oceanbase-doc/tree/2a5ae3a23a51729d065cec716508eb26cb064106
- https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/CREATE-SEQUENCE.html
- https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ALL_SEQUENCES.html
- internal: Minorli/ob_comparator schema_diff_reconciler.py:24062 序列属性采集
- internal: Minorli/ob_comparator schema_diff_reconciler.py:31649 build_sequence_restart_detail_rows
相关改造点
- 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 模式 怎么改