数据库升级最头大的,就是业务不能停机,或者只能停很短的时间,否则,不能让你升级,这个对于跨大版本升级,而且还想数据库升级的同时,还想把操作系统也一起升级,不停机,或者很多时间停机,尤其比较麻烦。升级完成后,还要去检查数据的准确性,这个不同的技术,检查的难度也不一样。

针对这种升级数据库和操作系统的场景,目前可有的方式如下:

1.EXPDP/IMPDP

2.XTTS

3.OGG

4.逻辑备库

5.其他同步软件

但要实现不停机,或短时间停机,比如10分钟,EXPDP/IMPDP方式是不行的,使用XTTS数据是否准确的确认,也比较麻烦,如果使用OGG,整个过程比较长,最终可以实现零宕机,但实现难度比较高。

在实际的工作种,我们发现,可以直接使用逻辑备库的方式来实现跨版本的升级,还是一个不错的方案。

下面就使用逻辑备库完成ORACLE 11g升级到19c,同时完成操作系统升级的过程进行说明:

1. 环境:
    当前版本:11.2.0.4 + LINUX 6.8
    升级版本:19.20.0 + LINUX 8.8
    
    数据量:600g
    
2.目标:
    要求:以最小停库时间(比如15分钟)实现数据库迁移到新机器并同时实现版本升级
    
3.解决办法:
    通过逻辑备库滚动升级方式实现
    
4.思路:
    先在新机器搭建一个主库的物理备库,并转化为逻辑备库,停用sql应用,之后,升级逻辑备库,启用sql应用,切换逻辑备库为主库。之后,原来机器升级操作系统及数据库,并作为新主库的备库,最后再切换回来
    
5.具体步骤:
    1.在新机器搭建主库的物理备库
      步骤略
    2.转换物理备库为逻辑备库
      --主库创建数据字典
      execute DBMS_LOGSTDBY.BUILD;
      --备库转换为逻辑备库
      ALTER DATABASE RECOVER TO LOGICAL STANDBY lgdb;
      ALTER DATABASE OPEN RESETLOGS;
      --启动日志应用
      ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
      
    3.逻辑备库执行滚动升级
      3.1 准备动作
          1.停止日志应用
             ALTER DATABASE STOP LOGICAL STANDBY APPLY ;
          2.设置兼容参数
          
      3.2 在新机器上安装数据库新版本
          安装19.20.0
          
      3.3 升级逻辑备库到新版本19.20.0
          可以通过手工或者dbca完成,此处过程略
      
      3.4 重启日志应用
          ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
          
    4.主动切换到逻辑备库  (这里业务需要停止几分钟,看你的操作速度)
      4.1 查看有日志未应用完的情况,并解决
    SELECT EVENT_TIMESTAMP, EVENT, STATUS 
      FROM DBA_LOGSTDBY_EVENTS
     ORDER BY EVENT_TIMESTAMP;
     
      4.2 switchover 到逻辑备库
      1.主库:
      ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL STANDBY;

      2.处理升级过程中主库新建立的备库不支持的表
      
      3.逻辑备库变为主库 
      ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL PRIMARY;
      
    5.修改IP为以前主库的ip  (这里业务需要停止几分钟,看你的操作速度)
       前端应用不用修改连接配置    
    6.以前机器重装操作系统到LINUX 8.8,并安装ORACLE 19.20软件

         7.重新同步新机器的数据到新安装的老机器上。

         8.同步完成后,切换数据库到老机器即可。  (业务需要停的时间,看你手工熟练程度,一般10分钟内是可以完成)

    到此,我们的目标达到。
      
      
                
    
    
    
        

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐