AutoUpgrade 快速升级 Oracle 数据库

前言

Oralce 19C 版本已经趋于成熟,而 11GR2 版本Oracle已经在 2020 年停止支持,意味着不再更新 bug 补丁。因此,升级 19C 是未来的大趋势,本文就来讲解下 Oracle 如何快速安装的升级到 19C 版本。

根据上图所示介绍,Oracle 推出一种新的升级方式,升级过程简单且非常高效!

一、环境准备

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

注意: 源库为生产环境 Linux 6 版本系统,目标库为升级环境,由于 19C 无法安装在 Linux 6 版本系统,因此选择异机升级,保留生产环境用于失败回退。

「AutoUpgrade 工具:」

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

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

二、升级前准备

拷贝19C 的 jdk 到源库:

scp -r $ORACLE_HOME/jdk/ 10.211.55.110:/soft/

注意: AutoUpgrade 工具需要JDK版本 1.8 以上,11GR2 的 jdk 版本为 1.5 不支持,因此需要使用 19C 的 ORACLE_HOME 中 JDK 版本。

1、设置JAVA环境变量

Oracle 用户下 java 环境变量配置

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

source /home/oracle/.bash_profile

java -version
java -jar /soft/autoupgrade.jar -version

2、源端创建并编辑config文件

java -jar /soft/autoupgrade.jar -create_sample_file config /soft/config.cfg

##参照生成的config文件,编写config
mkdir /soft/upg_logs /soft/logs
cat<<EOF >/soft/config.cfg
global.autoupg_log_dir=/soft/upg_logs
#
# Database number 1
#
upg1.dbname=lucifer
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=lucifer
upg1.log_dir=/soft/logs
upg1.upgrade_node=localhost
upg1.target_version=19
upg1.restoration=no
EOF

chown -R oracle:oinstall /soft

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

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

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

「可以通过网页查看检查情况:」

cd /soft/logs
python -m SimpleHTTPServer 8000

打开网页访问: http://10.211.55.110:8000/lucifer/100/prechecks/lucifer_preupgrade.html

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

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

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

三、正式升级

1、关闭源库

sqlplus / as sysdba
shutdown immediate

2、拷贝源库数据文件,日志文件,参数文件,密码文件到目标端,均在源端操作

su - oracle
##拷贝数据文件,控制文件,日志文件,临时文件
scp -r /oradata/lucifer/ 10.211.55.102:/oradata
scp -r /u01/app/oracle/fast_recovery_area/lucifer/control02.ctl 10.211.55.102:/oradata/lucifer
##拷贝参数文件
scp spfilelucifer.ora 10.211.55.102:/u01/app/oracle/product/19.3.0/db/dbs
##拷贝密码文件
scp orapwlucifer 10.211.55.102:/u01/app/oracle/product/19.3.0/db/dbs

3、目标库打开实例到upgrade模式,均在目标端操作

##创建文件夹
mkdir -p /u01/app/oracle/admin/lucifer/adump
mkdir -p /u01/app/oracle/fast_recovery_area/lucifer

mv /oradata/lucifer/control02.ctl /u01/app/oracle/fast_recovery_area/lucifer/control02.ctl

##/etc/oratab增加oracle_sid
cat <<EOF >>/etc/oratab
lucifer:/u01/app/oracle/product/19.3.0/db:Y
EOF

su - oracle
##替换环境变量或者设置ORACLE_SID
export ORACLE_SID=lucifer
sqlplus / as sysdba
startup upgrade

「Oracle环境变量如下:」

################OracleBegin#########################
umask 022
export TMP=/tmp
export TMPDIR=$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 #AL32UTF8,ZHS16GBK
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db
export ORACLE_HOSTNAME=cdb19c
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=lucifer
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
alias sas='sqlplus / as sysdba'
alias alert='tail -500f $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace/alert_$ORACLE_SID.log|more'
export PS1="[`whoami`@`hostname`:"'$PWD]$ '
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias lsnrctl='rlwrap lsnrctl'
alias asmcmd='rlwrap asmcmd'
alias adrci='rlwrap adrci'
alias ggsci='rlwrap ggsci'
alias dgmgrl='rlwrap dgmgrl'
################OracleEnd###########################
export JAVA_HOME=$ORACLE_HOME/jdk/bin
export PATH=$ORACLE_HOME/jdk/bin:$PATH

4、目标端创建并编辑config文件

java -jar /soft/autoupgrade.jar -create_sample_file config /soft/config.cfg

##参照生成的config文件,编写config
mkdir /soft/upg_logs /soft/logs
cat<<EOF >/soft/config.cfg
global.autoupg_log_dir=/soft/upg_logs
upg1.dbname=lucifer
upg1.start_time=NOW
upg1.source_home=/tmp
upg1.target_home=/u01/app/oracle/product/19.3.0/db
upg1.sid=lucifer
upg1.log_dir=/soft/logs
upg1.upgrade_node=localhost
upg1.target_version=19
upg1.restoration=no
EOF

chown -R oracle:oinstall /soft

「 注意:」 源端目录可以随意填写一个目录,例如:/tmp。

5、目标端执行升级操作(upgrade模式)

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

6、监控升级情况

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

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

打开网页访问:http://10.211.55.102:8000/state.html,网页会自动刷新执行情况:

等待升级完成即可!

至此,AutoUpgrade工具升级结束!

四、升级后处理

1 配置sqlnet.ora

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

2 检查所有组件

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;

五、升级为PDB并且插入CDB

通过以上操作可以异机升级数据库,但是只升级到NON-CDB模式。那么如何直接升级成PDB呢?

1、目标端需要创建CDB模式的数据库实例

2、使用刚刚升级成功的lucifer作为源端进行转pdb

「目标端创建并编辑config文件」

java -jar /soft/autoupgrade.jar -create_sample_file config /soft/config.cfg

##参照生成的config文件,编写config
mkdir /soft/upg_logs /soft/logs
rm -rf /soft/upg_logs/*
rm -rf /soft/logs/*

cat<<EOF >/soft/config.cfg
global.autoupg_log_dir=/soft/upg_logs
upg1.dbname=lucifer
upg1.start_time=NOW
upg1.source_home=/u01/app/oracle/product/19.3.0/db
upg1.target_home=/u01/app/oracle/product/19.3.0/db
upg1.sid=lucifer
upg1.log_dir=/soft/logs
upg1.upgrade_node=localhost
upg1.target_version=19
upg1.restoration=no
upg1.target_cdb=cdb19c
upg1.target_pdb_name=lucifer
upg3.target_pdb_copy_option=file_name_convert=('/oradata/lucifer/', '/oradata/CDB19C/lucifer/')
EOF

chown -R oracle:oinstall /soft

「目标端执行升级操作(deploy模式):」

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

「等待转换完毕:」

「升级后检查:」

至此,完整的升级流程已经演示结束,希望能够帮助到!

参考文档:

  • Oracle AutoUpgrade between two servers
  • Oracle AutoUpgrade between two servers – and Plugin?
  • AutoUpgrade with Source and Target Database Homes on Different Servers

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/253635.html<

(0)
管理的头像管理
上一篇2025-04-30 00:08
下一篇 2025-04-30 00:09

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注