Oracle 数据库升级

2023-11-01

转载来源 :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
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

在这里插入图片描述
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/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

环境变量:

################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

在这里插入图片描述
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/')
EOF

chown -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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle 数据库升级 的相关文章

随机推荐

  • [知识图谱实战篇] 八.HTML+D3绘制时间轴线及显示实体

    前面作者讲解了很多知识图谱原理知识 包括知识图谱相关技术 Neo4j绘制关系图谱等 但仍缺少一个系统全面的实例 为了加深自己对知识图谱构建的认识 为后续创建贵州旅游知识图谱打下基础 作者深入学习了张宏伦老师的网易云课程 星球系列电影 并结合
  • Linux系统版本信息查看

    一 查看Linux内核版本命令 方法1 cat proc version root localhost cat proc version Linux version 3 10 0 957 el7 x86 64 mockbuild kbuil
  • 型号不同的计算机内存条可以通用么,笔记本内存条和台式机通用吗

    电脑分为笔记本和台式机 这两者里面都有一个很重要的部件就是内存条 虽然作用都是相同的 但两者却是不一样的 那么笔记本内存条和台式机通用吗 答案是不可以 下面小编会给大家详细介绍不能通用的原因 以及笔记本内存条怎么装 看型号等等问题 笔记本内
  • 【Chisel入门——数据类型与操作符号】

    文章目录 前言 Chisel开发环境部署 安装步骤 环境测试 实验环境问题说明 数据类型 UInt SInt Bool Vec T Bundle 操作符 总结 前言 前面的部分简单介绍了Chisel 新型敏捷硬件开发语言 也简单说明了开发环
  • 黑马并发编程JUC(信号量、线程安全类)总结

    黑马并发编程JUC总结 9 JUC Semaphore 定义 原理 acquire release CountDownLatch 为什么需要用到CountDownLatch 定义 为什么加载的时候需要使用到countDownLock 商品问
  • EsayExcle的简单使用

  • Linux应用编程

    孤儿进程 在Linux Unix环境中 我们是通过fork函数来创建子进程的 创建完毕之后 父子进程独立运行 父进程无法预知子进程什么时候结束 通常情况下 子进程退出后 父进程会使用wait或waitpid函数进行回收子进程的资源 并获得子
  • nginx-1.13.x源码安装

    Nginx 安装配置 依赖库 zlib 下载 http download chinaunix net download php id 24013 ResourceID 12241 pcre apt get install libpcre d
  • 地理坐标xy表示什么_地理坐标怎么写 书写格式及方法

    地理坐标怎么写 书写格式及方法 地理坐标是用纬度 经度表示地面点位置的球面坐标 地理坐标系以地 轴为极轴 所有通过地球南北极的平面均称为子午面 地理坐标 就是用经 纬度表示地面点位的球面坐标 1 地理坐标的概念子午面与地球椭球面的交线 称为
  • 代码解析工具汇总

    代码解析工具 一 针对多种语言 ANTLR SonarQube tree sitter 二 针对C语言 pycparser Joern 三 针对Java Javalang JavaParser Eclipse AstParser 四 针对p
  • java:方法重载和方法重写的区别

    方法重载 代码示例 public void set System out println 好好学习 public void set String name System out println 好好学习 方法重写 在不同的类中 在有继承关系
  • 服务器部署JavaWeb的war包(完整版)

    本文章内容操作环境采用的技术是docker部署war 提前下载好Xshell7 终端 如果你买的服务器有终端窗口 那么用你的服务器终端窗口也行 和Xftp7 传输文件 并下载navicat15 版本过低会因为1045 连不上服务器 一 导出
  • 网络基础:协议层次

    目录 一 理论 1 OSI参考模型 2 TCP IP模型 3 OSI模型对应协议 4 TCP IP模型对应协议 5 OSI模型传输数据过程 二 实验 1 TCP IP模型封装 一 理论 一个协议层能够用软件 硬件或者两者的结合来实现 各个层
  • 谷歌浏览器插件Automa_2.点击和输入文字

    操作 普通玩家对于组件的操作无非就输入文字 点击控件跳转页面 但高端玩家会为这些操作加上各种限制条件以让其适应各种网页 而这些内容将在进阶篇介绍 点击 1 找到你要点击的位置 2 定位它 这里有讲如何定位 3 复制那个位置 粘贴到元素选择器
  • Pytorch学习笔记(1)第四章 神经网络工具箱nn

    今天学习内容 https github com chenyuntc pytorch book blob master chapter4 E7 A5 9E E7 BB 8F E7 BD 91 E7 BB 9C E5 B7 A5 E5 85 B
  • 账号和权限管理——设置目录和文件的归属(五)

    设置目录和文件的归属 1 chown 命令 需要设置文件或者目录的归属时 主要通过 chown 命令进行 可以只设置属主或属组 也可以同时设置属主 属组 使用 chown 命令的基本格式如下 chown 属主 属组 文件或目录 同时设置属主
  • django入门:Admin管理系统及表单(干货)

    点击上方蓝字关注公众号 码个蛋第310次推文 作者 Kuky xs 博客 https www jianshu com p 8cdf099e974f 前言 django入门 环境及项目搭建 django入门 数据模型 django入门 视图及
  • Anaconda安装虚拟环境下的Jupyter Notebook没有快捷方式怎么办

    Anaconda安装虚拟环境下的Jupyter Notebook没有快捷方式怎么办 今天为了安装tensorflow 在anaconda环境下创建了一个名称为tensorflow虚拟环境 一波操作装完了tensorflow之后 为了在jup
  • 食品行业仓储条码管理系统解决方案

    食品行业总是保持一贯的稳健增势 而且整体行业在产品结构 市场竞争力 运营成本等方面仍有相当的潜力可以发掘 但食品安全问题 消费者口味的不断变化 多变的渠道模式和供应链效率问题 这些都为食品饮料行业建立了一个动荡的充满挑战和机遇的商业环境 而
  • Oracle 数据库升级

    转载来源 Oracle 数据库升级 https mp weixin qq com s LIDIsmeZRRfZmOVtOkeznQ 一 环境准备 本次测试尽量按照生产环境升级进行模拟 故而使用2台主机进行测试 注意 源库为生产环境 linu