Oracle 单机 11GR2 升级 19C NON
参考MOS文档:
AutoUpgrade Tool (Doc ID 2485457.1)
Database Server Upgrade/Downgrade Compatibility Matrix (Doc ID 551141.1)
Using AutoUpgrade for Oracle Database Upgrades
一、环境准备
测试环境安装过程忽略,可参考:
脚本使用和下载可参考Github:https://github.com/pc-study/InstallOracleshell
本次测试尽量按照生产环境升级进行模拟,故而使用2台主机进行测试:
节点 | 主机版本 | 主机名 | 实例名 | Oracle版本 | IP地址 |
源库 | redhat 6.9 | s11g | nocdb | 11204(补丁 31537677) | 192.168.1.100 |
目标库 | redhat 7.6 | s19c | nocdb | 11204(补丁 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 JDKsu - oraclecat<<EOF >/home/oracle/.bash_profile_19export JAVA_HOME=$ORACLE_HOME/jdk/binexport PATH=$ORACLE_HOME/jdk/bin:$PATHEOFsource /home/oracle/.bash_profile_19java -versionjava -jar /soft/autoupgrade.jar -version
2、创建并编辑config文件
java -jar /soft/autoupgrade.jar -create_sample_file configchown -R oracle:oinstall /soft##参照生成的config文件,编写configmkdir /soft/upg_logs /soft/logscat<<EOF >/soft/conifg.cfg#Global configurations#Autoupgrade's global directory, ...#temp files created and other ...#send hereglobal.autoupg_log_dir=/soft/upg_logs## Database number 1 # upg1.dbname=nocdbupg1.start_time=NOWupg1.source_home=/u01/app/oracle/product/11.2.0/dbupg1.target_home=/u01/app/oracle/product/19.3.0/dbupg1.sid=nocdbupg1.log_dir=/soft/logsupg1.upgrade_node=s19cupg1.target_version=19upg1.restoration=noEOF
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/autopython -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 tnskill -9 $spid
2、修改新实例nocdb 19C监听端口号为1521
##修改LOCAL_LISTENERalter system reset local_listener;shutdown immediatestartup##Notes:如果不将LOCAL_LISTENER设置为空,动态监听无法注册。lsnrctl stopcd $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_ADMINcat <<EOF >>sqlnet.oraSQLNET.ALLOWED_LOGON_VERSION_CLIENT=8SQLNET.ALLOWED_LOGON_VERSION_SERVER=8EOF
4.检查所有组件
select substr(comp_id,1,15) comp_id,substr(comp_name,1,30) comp_name,substr(version,1,10) version,statusfrom dba_registry order by modified;