当前位置 博文首页 > LuciferLiu_DBA:AutoUpgrade升级至19C non-cdb

    LuciferLiu_DBA:AutoUpgrade升级至19C non-cdb

    作者:[db:作者] 时间:2021-06-15 09:16

    参考MOS文档:
    AutoUpgrade Tool (Doc ID 2485457.1)?
    Database Server Upgrade/Downgrade Compatibility Matrix (Doc ID 551141.1)????

    Using AutoUpgrade for Oracle Database Upgrades

    一、环境准备

    测试环境安装过程忽略,可参考:

    10分钟!一键部署Oracle 11GR2单机

    30分钟!一键部署Oracle 19C单机CDB+PDB

    脚本使用和下载可参考Github:https://github.com/pc-study/InstallOracleshell

    本次测试尽量按照生产环境升级进行模拟,故而使用2台主机进行测试:

    节点主机版本主机名实例名Oracle版本IP地址
    源库redhat 6.9s11gnocdb11204(补丁?31537677)192.168.1.100
    目标库redhat 7.6s19cnocdb11204(补丁?31537677)+ 19.3.0(补丁 29585399)192.168.1.101

    注意:源库为生产环境,目标库为升级环境,需要通过rman的将生产环境实例备份恢复到目标库,保留生产环境用于失败回退。

    根据MOS文档 2485457.1可以获取最新版 AutoUpgrade工具下载地址:

    The most recent version of AutoUpgrade can be downloaded via this link: version?20210421.

    以下所有操作都不涉及源库192.168.1.100数据库,以下称192.168.1.101中11GR2库为源库。

    二、升级前准备

    由于AutoUpgrade工具需要JDK版本1.8以上,11GR2的jdk版本为1.5不支持,所以使用19C的ORACLE_HOME中JDK版本。

    1、设置JAVA环境变量

    ##使用19c环境的ORACLE_HOME JDK
    su - oracle
    cat<<EOF >>/home/oracle/.bash_profile_19
    export JAVA_HOME=\$ORACLE_HOME/jdk/bin
    export PATH=\$ORACLE_HOME/jdk/bin:\$PATH
    EOF
    
    source /home/oracle/.bash_profile_19
    
    java -version
    java -jar /soft/autoupgrade.jar -version
    

    2、创建并编辑config文件

    java -jar /soft/autoupgrade.jar -create_sample_file config
    
    chown -R oracle:oinstall /soft
    ##参照生成的config文件,编写config
    mkdir /soft/upg_logs /soft/logs
    cat<<EOF >/soft/conifg.cfg
    #Global configurations
    #Autoupgrade's global directory, ...
    #temp files created and other ...
    #send here
    global.autoupg_log_dir=/soft/upg_logs
    
    #
    # Database number 1 
    # 
    upg1.dbname=nocdb
    upg1.start_time=NOW
    upg1.source_home=/u01/app/oracle/product/11.2.0/db
    upg1.target_home=/u01/app/oracle/product/19.3.0/db
    upg1.sid=nocdb
    upg1.log_dir=/soft/logs
    upg1.upgrade_node=s19c
    upg1.target_version=19
    upg1.restoration=no
    EOF
    

    3、升级前源库进行分析检查

    java -jar /soft/autoupgrade.jar -config /soft/config.cfg -mode analyze

    Notes:可以通过 lsj 命令查看当前JOB的运行情况。

    4、升级前源库执行修复脚本

    java -jar /soft/autoupgrade.jar -config /soft/config.cfg -mode fixups

    Notes:可以通过 status -job 101 命令查看当前JOB的运行情况。

    三、正式升级

    在确认以上步骤没有问题之后,可以开始进行数据库升级。

    1、执行升级命令

    java -jar /soft/autoupgrade.jar -config /soft/config.cfg -mode deploy

    Notes:执行升级过程中,可以通过 lsj status -job 102 来检查升级情况。

    或者通过python来创建一个HTTPServer网页来监控升级情况:

    cd /soft/upg_logs/cfgtoollogs/upgrade/auto
    python -m SimpleHTTPServer 8000

    打开网页,输入:http://192.168.1.101:8000/state.html,网页会自动刷新执行情况:

    等待升级完成即可。

    四、升级后处理

    1、删除原11GR2环境相关文件

    rm -rf /u01/app/oracle/product/11.2.0/db
    ##关闭11G监听
    ps -ef|grep tns
    
    kill -9 $spid

    2、修改新实例nocdb 19C监听端口号为1521

    ##修改LOCAL_LISTENER
    alter system reset local_listener;
    shutdown immediate
    startup
    
    ##Notes:如果不将LOCAL_LISTENER设置为空,动态监听无法注册。
    
    lsnrctl stop
    cd $TNS_ADMIN
    
    ##修改listener.ora文件:
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = s19c)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
      )
    
    lsnrctl start

    3.配置sqlnet.ora

    cd $TNS_ADMIN
    cat <<EOF >>sqlnet.ora
    SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
    SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
    EOF

    4.检查所有组件

    select substr(comp_id,1,15) comp_id,substr(comp_name,1,30) comp_name,substr(version,1,10) version,status
    from dba_registry 
    order by modified;

    ?