ORACLE 序列 ORDER 属性 迁移 OceanBase 4.3.5 Oracle 模式 适配说明

迁衡基于规则 ora.seq.order 分析 ORACLE 序列 ORDER 属性 到 OceanBase 4.3.5 Oracle 模式 的兼容性、改写路径与验证建议。

兼容性判定

公开资料依据 · 建议 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

参考来源

相关改造点

技术支持

微信交流群 微信二维码

微信:prejudice_me