当前位置:澳门新葡亰亚洲在线 > 程序开发 > 动手为王 Oracle 数据库跨版本升级迁移实践

动手为王 Oracle 数据库跨版本升级迁移实践

文章作者:程序开发 上传时间:2019-02-20

  Oracle ACE 专家,拥有超过10年的 Oracle 运维管理使用经验,参与过众多移动、电信、联通、银行等大型数据库交付项目,具有丰富的运维管理经验,对 Oracle 数据库管理运行机制、锁机制、优化机制等具有深入理解;擅长 Oracle 数据库的Performance Tunning、Troubleshooting 以及异常恢复。

  今年春节加班期间,将某客户的核心数据库从 Oracle 10.2.0.4 RAC 迁移升级至 12.2 RAC。原库是使用的 Raw,而且版本较低,无法直接升级到 12.2 版本,因此整个升级过程相对麻烦。

  然后配置好主库到新环境的 DataGuard 数据同步,在正式割接之前确认主备同步正常。由于需要将数据库从 10gR2 迁移到新环境并且升级到 12.2,且需要使用 CDB 模式,因此整个过程相对繁琐。

  2. 检查分布式事务,并进行相关处理(实际上我们检查确实发现了部分分布式事务需要手工介入);

  3. 在确认主备数据同步之后,进行 switchover,如下是主备切换简约步骤:

  4. 新主库升级到 11.2 之前需要先创建还原点,防止有问题可以回退;

  6. 确认升级成功之后,drop 还原点并创建新的还原点,准备将数据库升级到 12.2;

  这里需要注意的是,在升级到 12.2 之前需要将实例参数 compatible 设置为11.2.0.4,否则在升级过程中可能会遭遇 ORA-00600 错误。

  10. 创建 Redo、Undo 以及修改相应参数,将数据库转成 RAC 实例。

  3. 将数据库作为 PDB 插入到 CDB 之后,打开 PDB 时提示为受限模式。

  该问题经查是由于我们在执行的过程中漏掉了一个步骤(exec dbms_pdb.sync_pdb();),导致 PDB 的信息与 CDB 的信息不一致,本质上组件信息不一致。

  我们尝试过将组件 Reinstall 然后再 Install 是可以的,但是组件较多,大约8个组件,尤其是 Java 或 xdb 相关组件比较麻烦,因此我们将 PDB 删除然后重新创建了 PDB 进行加载,最终解决了该问题。

转载请注明来源:动手为王 Oracle 数据库跨版本升级迁移实践