转载来源 :Oracle 数据库升级
https://mp.weixin.qq.com/s/LIDIsmeZRRfZmOVtOkeznQ

一、环境准备

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

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

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

The most recent version of AutoUpgrade can be downloaded via this link: version:https://login.oracle.com/mysso/signon.jsp

二、升级前准备

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

拷贝 19C 的 jdk 到源库:

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

1、设置 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
EOFsource /home/oracle/.bash_profilejava -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
EOFchown -R oracle:oinstall /soft


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

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


Notes:可以通过 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


Notes:可以通过 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/lucifermv /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
EOFsu - oracle
##替换环境变量或者设置ORACLE_SID
export ORACLE_SID=lucifer
sqlplus / as sysdba
startup upgrade

环境变量:

################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
EOFchown -R oracle:oinstall /soft


Notes:源端目录可以随意填写一个目录,例如:/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,网页会自动刷新执行情况:
等待升级完成即可。

四、升级后处理

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。

3、目标端创建并编辑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/')
EOFchown -R oracle:oinstall /soft


4、目标端执行升级操作(deploy模式)

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


等待转换完毕。

5、升级后检查

参考链接:

https://mikedietrichde.com/2020/08/03/oracle-autoupgrade-between-two-servers/

https://mikedietrichde.com/2020/08/04/oracle-autoupgrade-between-two-servers-and-plugin/

https://docs.oracle.com/en/database/oracle/oracle-database/19/upgrd/examples-of-autoupgrade-workflows.html#GUID-6A4B79EB-2CE6-44FF-8FF4-C67B09D82F12

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

https://blog.csdn.net/m0_50546016/article/details/116503394

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

https://blog.csdn.net/m0_50546016/article/details/116524049

Oracle 数据库升级相关推荐

  1. Oracle数据库升级与补丁

    以下是Maclean.Liu 编写或收集的数据库升级(Upgrade)与补丁(patch fix)方面的知识: 甲骨文发布2012 1月数据库安全补丁Critical Patch Update Jan ...

  2. java olap oracle_【案例】Oracle数据库升级OLAP组件异常 删除OLAP组件

    天萃荷净 Oracle研究中心案例分析:在升级完一套Oracle数据库后发现OLAP组件出现异常,详细记录如何删除OLAP组件的过程. 本站文章除注明转载外,均为本站原创: 转载自love wife ...

  3. oracle更新所有数据,ORACLE数据库升级详细步骤

    ORACLE数据库升级详细步骤 时间:2010-10-16 00:59 来源: 作者: 点击: 260次 一.对ORACLE数据库进行备份 二.确认ORACLE数据库的Home目录安装路径 三.关闭数 ...

  4. oracle数据库升级到19c,数据库技术探索之Oracle 19C升级测试及案例分享

    01 升级背景--"去O"正当时,衔接需保障 在当今国家监管要求,Oracle在华战略,成本等因素得驱动下,去"O"已势在必行.但Oracle数据库的优势依旧存 ...

  5. oracle升级后报 06502,Oracle数据库升级后报ORA-00704和ORA-39700错误

    把数据库从10.2.0.1.0升级到10.2.0.5.0,启动数据库,报错:ORA-01092: ORACLE 例程终止,强制断开. 查看alert文件,显示ORA-00 把数据库从10.2.0.1. ...

  6. oracle降版本导出,Oracle 数据库 升级/降级 兼容性矩阵

    引用自: Doc ID 1577660.1 升级到19c的升级兼容性矩阵 能够直接升级到Oracle Database 19c的数据库最小版本https://www.cndba.cn/cndba/da ...

  7. oracle数据库升级失败怎么办,【案例】Oracle报错ORA-00918 数据库升级后遇到SQL BUG 5368296...

    天萃荷净 运维DBA反映生产数据库10.2.0.1存在BUG导致SQL无法使用,在升级到10.2.0.5后执行SQL报错ORA-00918,分析原因为BUG修复后要修改SQL语句,升级数据库到10.2 ...

  8. linux下oracle数据库升级,Oracle数据库在LinuxAS4升级

    任务:Oracle10.2.0.2升级到Oracle10.2.0.3系统:LinuxAS4Oracle版本:10.2.0.2Oracle:一个INSTANCE,300G左右数据,单机 不才第一次做升级 ...

  9. oracle数据库升级失败,Oracle 11.2.0.1 rac 升级失败后,数据库降级方案(flashback database)...

    升级失败后,数据库降级方案(flashback database) 环境:Oracle 11.2.0.1 rac on redhat 5.8 Flashback database 准备工作 查看是否f ...

最新文章

  1. 详细设计 英文_人体工程学设计:COMMA感应式无线充电器深度拆解
  2. Informatica如何利用数据3.0助力业务
  3. V4L2编程 视频采集
  4. mac包安装kafka
  5. 自开发Web应用和SAP Customer Data Cloud Identity服务的集成
  6. elasticsearch group by java_java elasticsearch聚合查询实例详解
  7. jsp springmvc 视图解析器_SpringMVC工作原理
  8. html仿命令行界面,HTML仿命令行界面具体实现
  9. MyBatis中三种分页查询方式
  10. ZOJ 3993 2017CCPC秦皇岛 M:Safest Buildings
  11. java简单图书馆管理系统_简单 图书馆管理系统 Java+Oracle
  12. linux、mysql、nginx、tomcat 环境下压力测试的主要调试参数
  13. epson r1900 清零软件_Epson爱普生me1100清零软件 me1100打印机废墨清零软件
  14. Python 利用 shutil 移动文件
  15. 变量覆盖(超详细!)
  16. Redis集群和应用——02
  17. Microbiome | 水科院南海所姜敬哲团队揭示滤食性牡蛎体内巨大的病毒多样性
  18. python js反混淆 eval(function(p,a,c,k,e,d){
  19. 深度相机原理揭秘之3D结构光Sensor(iPhone X、小米8探索版、OPPO Find)
  20. 【Qt网络编程】实现TCP协议通信

热门文章

  1. halcon视觉框架源码_图像处理与机器视觉初学者学习路线
  2. virtualbox+vagrant快速创建虚拟机
  3. mysql 格式化 小数点后两位_MYSQL数据库mysql格式化小数保留小数点后两位(小数点格式化)...
  4. matlab非线性系统频域标识,基于MATLAB的最小二乘法系统辨识与仿真
  5. qt mingw连接mysql_win下Qt连接MySql (mingw)
  6. 联合索引会创建几个索引_【1033期】分别谈谈联合索引生效和失效的条件
  7. 统计学里“P”的故事:蚊子、皇帝的新衣和不育的风流才子
  8. 基于W5300和FPGA的实时数据采集系统设计
  9. IOS开发-TableView表视图LV2
  10. Rman创建DG环境