需求
我的Oracle Database Vagrant Box初始版本为19.3,需要升级到最新的RU,当前为19.22。
以下利用时间为为2024年2月5日。
补丁下载
补丁下载文档拜见MOS文档:Primary Note for Database Proactive Patch Program (Doc ID 888.1)。
补丁安装文档拜见文档(链接在下载页面中):Patch 35943157 - Database Release Update 19.22.0.0.240116
也可以从MOS的“Patch & Updates”标签页中下载:
结果中的Patch 35943157即我们需要的:
停止数据库和监听
断开全部与数据库的连接,如应用,如管理客户端(Oracle EM, SQL Developer等)。
停止数据库:
停止监听:
备份Oracle Home
参考MOS文档: How to Perform ORACLE_HOME Backup? (Doc ID 565017.1)
以oracle用户实行以下脚本:
- # 创建备份目录
- mkdir ~/backup
- # 本例中的ORACLE_HOME为/opt/oracle/product/19c/dbhome_1
- cd $ORACLE_HOME
- # 切换到上一级目录:/opt/oracle/product/19c
- cd ..
- # 启动备份
- tar -pcvf ~/backup/oracle_home_bkup.tar dbhome_1
复制代码 备份文件约7.4G:
- $ ls -l ~/backup/
- total 7248532
- -rw-r--r--. 1 oracle oinstall 7422494720 Feb 5 13:42 oracle_home_bkup.tar
复制代码 安装最新版的OPatch
下载OPatch 12.2.0.1.41 for DB 19.0.0.0.0 (Jan 2024),约120M。
- $ ls -l /vagrant/p6880880_190000_Linux-x86-64.zip
- -rwxrwxrwx. 1 vagrant vagrant 127629034 Feb 5 13:58 /vagrant/p6880880_190000_Linux-x86-64.zip
复制代码 升级过程拜见Oracle数据库升级OPatch全过程。
升级完成后:
- $ opatch version
- OPatch Version: 12.2.0.1.41
- OPatch succeeded.
复制代码 安装OJVM补丁
详见MOS 文档:Oracle Recommended Patches – “Oracle JavaVM Component Database PSU and Update” (OJVM PSU and OJVM Update) Patches (Doc ID 1929745.1)
实际下载是从MOS文档:Primary Note for Database Proactive Patch Program (Doc ID 888.1)
然后搜索OJVM即可。补丁约120M:
- $ ls -l /vagrant/p35926646_190000_Linux-x86-64.zip
- -rwxrwxrwx. 1 vagrant vagrant 127451050 Feb 5 14:21 /vagrant/p35926646_190000_Linux-x86-64.zip
复制代码 升级文档拜见Patch 35926646 - Oracle JavaVM Component Release Update 19.22.0.0.240116。
- PATCHDIR=/home/oracle/patchdir
- mkdir $PATCHDIR
- unzip -d $PATCHDIR /vagrant/p35926646_190000_Linux-x86-64.zip
- cd $PATCHDIR/35926646
- opatch prereq CheckConflictAgainstOHWithDetail -ph ./
- # 如果上面的先决条件检测通过,则可以安装补丁
- opatch apply
复制代码 安装过程如下:
- [oracle@oracle-19c-vagrant 35926646]$ opatch prereq CheckConflictAgainstOHWithDetail -ph ./
- Oracle Interim Patch Installer version 12.2.0.1.41
- Copyright (c) 2024, Oracle Corporation. All rights reserved.
- PREREQ session
- Oracle Home : /opt/oracle/product/19c/dbhome_1
- Central Inventory : /opt/oracle/oraInventory
- from : /opt/oracle/product/19c/dbhome_1/oraInst.loc
- OPatch version : 12.2.0.1.41
- OUI version : 12.2.0.7.0
- Log file location : /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_14-25-44PM_1.log
- Invoking prereq "checkconflictagainstohwithdetail"
- Prereq "checkConflictAgainstOHWithDetail" passed.
- OPatch succeeded.
- [oracle@oracle-19c-vagrant 35926646]$ opatch apply
- Oracle Interim Patch Installer version 12.2.0.1.41
- Copyright (c) 2024, Oracle Corporation. All rights reserved.
- Oracle Home : /opt/oracle/product/19c/dbhome_1
- Central Inventory : /opt/oracle/oraInventory
- from : /opt/oracle/product/19c/dbhome_1/oraInst.loc
- OPatch version : 12.2.0.1.41
- OUI version : 12.2.0.7.0
- Log file location : /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_14-26-37PM_1.log
- Verifying environment and performing prerequisite checks...
- OPatch continues with these patches: 35926646
- Do you want to proceed? [y|n]
- y
- User Responded with: Y
- All checks passed.
- Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
- (Oracle Home = '/opt/oracle/product/19c/dbhome_1')
- Is the local system ready for patching? [y|n]
- y
- User Responded with: Y
- Backing up files...
- Applying interim patch '35926646' to OH '/opt/oracle/product/19c/dbhome_1'
- Patching component oracle.javavm.server, 19.0.0.0.0...
- Patching component oracle.javavm.server.core, 19.0.0.0.0...
- Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...
- Patching component oracle.rdbms, 19.0.0.0.0...
- Patching component oracle.javavm.client, 19.0.0.0.0...
- Patch 35926646 successfully applied.
- Log file location: /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_14-26-37PM_1.log
- OPatch succeeded.
复制代码 另有一些后续工作:
- connect / as sysdba
- startup
- alter pluggable database all open;
- quit
复制代码 实行安装后脚本,datapatch 是一款新工具,可实现 RDBMS 补丁的补丁后 SQL 利用自动化:
- cd $ORACLE_HOME/OPatch
- ./datapatch -verbose
复制代码 如果都正常,则实行以下脚本:
- cd $ORACLE_HOME/rdbms/admin
- sqlplus /nolog
- SQL> CONNECT / AS SYSDBA
- SQL> @utlrp.sql
复制代码 然后关闭数据库。
这个补丁安装的时间有点长。如果是新库,最好是打完补丁再建库,而非建完库再打补丁。
安装数据库补丁
由于我没有GI,以是仅升级数据库就好。
补丁约1.8G:
- $ ls -l /vagrant/p35943157_190000_Linux-x86-64.zip
- -rwxrwxrwx. 1 vagrant vagrant 1817908992 Feb 5 13:29 /vagrant/p35943157_190000_Linux-x86-64.zip
复制代码 解压:
- PATCHDIR=/home/oracle/patchdir
- # 解压完大约3.6G
- unzip -qd $PATCHDIR /vagrant/p35943157_190000_Linux-x86-64.zip
- cd $PATCHDIR/35943157
- opatch prereq CheckConflictAgainstOHWithDetail -ph ./
- # 如果上面的先决条件检测通过,则可以安装补丁
- opatch apply
复制代码 先决条件查抄确实通过了:
- $ opatch prereq CheckConflictAgainstOHWithDetail -ph ./
- Oracle Interim Patch Installer version 12.2.0.1.41
- Copyright (c) 2024, Oracle Corporation. All rights reserved.
- PREREQ session
- Oracle Home : /opt/oracle/product/19c/dbhome_1
- Central Inventory : /opt/oracle/oraInventory
- from : /opt/oracle/product/19c/dbhome_1/oraInst.loc
- OPatch version : 12.2.0.1.41
- OUI version : 12.2.0.7.0
- Log file location : /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_15-10-48PM_1.log
- Invoking prereq "checkconflictagainstohwithdetail"
- Prereq "checkConflictAgainstOHWithDetail" passed.
- OPatch succeeded.
复制代码 但第一次安装却失败了,由于空间不够:
- [oracle@oracle-19c-vagrant 35943157]$ time opatch apply
- Oracle Interim Patch Installer version 12.2.0.1.41
- Copyright (c) 2024, Oracle Corporation. All rights reserved.
- Oracle Home : /opt/oracle/product/19c/dbhome_1
- Central Inventory : /opt/oracle/oraInventory
- from : /opt/oracle/product/19c/dbhome_1/oraInst.loc
- OPatch version : 12.2.0.1.41
- OUI version : 12.2.0.7.0
- Log file location : /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_15-12-31PM_1.log
- Verifying environment and performing prerequisite checks...
- Prerequisite check "CheckSystemSpace" failed.
- The details are:
- Required amount of space(7550.384MB) is not available.
- UtilSession failed:
- Prerequisite check "CheckSystemSpace" failed.
- Log file location: /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_15-12-31PM_1.log
- OPatch failed with error code 73
复制代码 空间问题处置惩罚完后,再次安装:
- $ time opatch apply
- Oracle Interim Patch Installer version 12.2.0.1.41
- Copyright (c) 2024, Oracle Corporation. All rights reserved.
- Oracle Home : /opt/oracle/product/19c/dbhome_1
- Central Inventory : /opt/oracle/oraInventory
- from : /opt/oracle/product/19c/dbhome_1/oraInst.loc
- OPatch version : 12.2.0.1.41
- OUI version : 12.2.0.7.0
- Log file location : /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_15-41-25PM_1.log
- Verifying environment and performing prerequisite checks...
- OPatch continues with these patches: 35943157
- Do you want to proceed? [y|n]
- y
- User Responded with: Y
- All checks passed.
- Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
- (Oracle Home = '/opt/oracle/product/19c/dbhome_1')
- Is the local system ready for patching? [y|n]
- y
- User Responded with: Y
- Backing up files...
- Applying interim patch '35943157' to OH '/opt/oracle/product/19c/dbhome_1'
- ApplySession: Optional component(s) [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.crypto.rsf, 19.0.0.0.0 ] , [ oracle.pg4mq, 19.0.0.0.0 ] , [ oracle.precomp.companion, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ] , [ oracle.rdbms.tg4tera, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.options.olap, 19.0.0.0.0 ] , [ oracle.oid.client, 19.0.0.0.0 ] , [ oracle.xdk.companion, 19.0.0.0.0 ] , [ oracle.options.olap.api, 19.0.0.0.0 ] , [ oracle.rdbms.tg4ifmx, 19.0.0.0.0 ] , [ oracle.rdbms.tg4sybs, 19.0.0.0.0 ] , [ oracle.rdbms.tg4msql, 19.0.0.0.0 ] , [ oracle.ons.eons.bwcompat, 19.0.0.0.0 ] , [ oracle.ons.cclient, 19.0.0.0.0 ] , [ oracle.sdo.companion, 19.0.0.0.0 ] , [ oracle.net.cman, 19.0.0.0.0 ] , [ oracle.pg4appc, 19.0.0.0.0 ] , [ oracle.jdk, 1.8.0.191.0 ] not present in the Oracle Home or a higher version is found.
- Patching component oracle.rdbms, 19.0.0.0.0...
- Patching component oracle.rdbms.util, 19.0.0.0.0...
- Patching component oracle.rdbms.rsf, 19.0.0.0.0...
- Patching component oracle.assistants.acf, 19.0.0.0.0...
- Patching component oracle.assistants.deconfig, 19.0.0.0.0...
- Patching component oracle.assistants.server, 19.0.0.0.0...
- Patching component oracle.blaslapack, 19.0.0.0.0...
- Patching component oracle.buildtools.rsf, 19.0.0.0.0...
- Patching component oracle.ctx, 19.0.0.0.0...
- Patching component oracle.dbdev, 19.0.0.0.0...
- Patching component oracle.dbjava.ic, 19.0.0.0.0...
- Patching component oracle.dbjava.jdbc, 19.0.0.0.0...
- Patching component oracle.dbjava.ucp, 19.0.0.0.0...
- Patching component oracle.duma, 19.0.0.0.0...
- Patching component oracle.javavm.client, 19.0.0.0.0...
- Patching component oracle.ldap.owm, 19.0.0.0.0...
- Patching component oracle.ldap.rsf, 19.0.0.0.0...
- Patching component oracle.ldap.security.osdt, 19.0.0.0.0...
- Patching component oracle.marvel, 19.0.0.0.0...
- Patching component oracle.network.rsf, 19.0.0.0.0...
- Patching component oracle.odbc.ic, 19.0.0.0.0...
- Patching component oracle.ons, 19.0.0.0.0...
- Patching component oracle.ons.ic, 19.0.0.0.0...
- Patching component oracle.oracore.rsf, 19.0.0.0.0...
- Patching component oracle.perlint, 5.28.1.0.0...
- Patching component oracle.precomp.common.core, 19.0.0.0.0...
- Patching component oracle.precomp.rsf, 19.0.0.0.0...
- Patching component oracle.rdbms.crs, 19.0.0.0.0...
- Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...
- Patching component oracle.rdbms.deconfig, 19.0.0.0.0...
- Patching component oracle.rdbms.oci, 19.0.0.0.0...
- Patching component oracle.rdbms.rsf.ic, 19.0.0.0.0...
- Patching component oracle.rdbms.scheduler, 19.0.0.0.0...
- Patching component oracle.rhp.db, 19.0.0.0.0...
- Patching component oracle.sdo, 19.0.0.0.0...
- Patching component oracle.sdo.locator.jrf, 19.0.0.0.0...
- Patching component oracle.sqlplus, 19.0.0.0.0...
- Patching component oracle.sqlplus.ic, 19.0.0.0.0...
- Patching component oracle.wwg.plsql, 19.0.0.0.0...
- Patching component oracle.xdk.rsf, 19.0.0.0.0...
- Patching component oracle.install.deinstalltool, 19.0.0.0.0...
- Patching component oracle.sdo.locator, 19.0.0.0.0...
- Patching component oracle.rdbms.install.plugins, 19.0.0.0.0...
- Patching component oracle.dbtoolslistener, 19.0.0.0.0...
- Patching component oracle.xdk, 19.0.0.0.0...
- Patching component oracle.rdbms.drdaas, 19.0.0.0.0...
- Patching component oracle.xdk.xquery, 19.0.0.0.0...
- Patching component oracle.rdbms.rman, 19.0.0.0.0...
- Patching component oracle.network.client, 19.0.0.0.0...
- Patching component oracle.rdbms.hs_common, 19.0.0.0.0...
- Patching component oracle.nlsrtl.rsf.lbuilder, 19.0.0.0.0...
- Patching component oracle.oraolap.dbscripts, 19.0.0.0.0...
- Patching component oracle.mgw.common, 19.0.0.0.0...
- Patching component oracle.rdbms.dv, 19.0.0.0.0...
- Patching component oracle.ldap.ssl, 19.0.0.0.0...
- Patching component oracle.xdk.parser.java, 19.0.0.0.0...
- Patching component oracle.ctx.rsf, 19.0.0.0.0...
- Patching component oracle.rdbms.lbac, 19.0.0.0.0...
- Patching component oracle.rdbms.hsodbc, 19.0.0.0.0...
- Patching component oracle.ctx.atg, 19.0.0.0.0...
- Patching component oracle.oraolap, 19.0.0.0.0...
- Patching component oracle.oraolap.api, 19.0.0.0.0...
- Patching component oracle.odbc, 19.0.0.0.0...
- Patching component oracle.ldap.client, 19.0.0.0.0...
- Patching component oracle.nlsrtl.rsf, 19.0.0.0.0...
- Patching component oracle.rdbms.install.common, 19.0.0.0.0...
- Patching component oracle.ovm, 19.0.0.0.0...
- Patching component oracle.network.listener, 19.0.0.0.0...
- Patching component oracle.ldap.rsf.ic, 19.0.0.0.0...
- Patching component oracle.javavm.server, 19.0.0.0.0...
- Patching component oracle.precomp.lang, 19.0.0.0.0...
- Patching component oracle.precomp.common, 19.0.0.0.0...
- Patching component oracle.jdk, 1.8.0.201.0...
- Patch 35943157 successfully applied.
- Sub-set patch [29517242] has become inactive due to the application of a super-set patch [35943157].
- Please refer to Doc ID 2161861.1 for any possible further required actions.
- Log file location: /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_15-41-25PM_1.log
- OPatch succeeded.
- real 36m32.647s
- user 20m16.850s
- sys 9m43.814s
复制代码 成功,耗时半小时。
以上安装是交互式的,中心有两处需要用户输入Y或N。可以指定-silent选项以静默运行。
补丁安装后的利用:
- connect / as sysdba
- startup
- alter pluggable database all open;
- quit
复制代码 实行脚本:
- cd $ORACLE_HOME/OPatch
- ./datapatch -verbose
复制代码 输出如下:
- $ time ./datapatch -verbose
- SQL Patching tool version 19.22.0.0.0 Production on Mon Feb 5 21:09:00 2024
- Copyright (c) 2012, 2024, Oracle. All rights reserved.
- Log file for this invocation: /opt/oracle/cfgtoollogs/sqlpatch/sqlpatch_5704_2024_02_05_21_09_00/sqlpatch_invocation.log
- Connecting to database...OK
- Gathering database info...done
- Note: Datapatch will only apply or rollback SQL fixes for PDBs
- that are in an open state, no patches will be applied to closed PDBs.
- Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation
- (Doc ID 1585822.1)
- Bootstrapping registry and package to current versions...done
- Determining current state...done
- Current state of interim SQL patches:
- Interim patch 35926646 (OJVM RELEASE UPDATE: 19.22.0.0.240116 (35926646)):
- Binary registry: Installed
- PDB CDB$ROOT: Applied successfully on 05-FEB-24 02.55.32.207669 PM
- PDB ORCLPDB1: Applied successfully on 05-FEB-24 02.55.33.974523 PM
- PDB PDB$SEED: Applied successfully on 05-FEB-24 02.55.33.368845 PM
- Current state of release update SQL patches:
- Binary registry:
- 19.22.0.0.0 Release_Update 240104023954: Installed
- PDB CDB$ROOT:
- Applied 19.3.0.0.0 Release_Update 190410122720 successfully on 11-JAN-24 04.17.24.530288 PM
- PDB ORCLPDB1:
- Applied 19.3.0.0.0 Release_Update 190410122720 successfully on 11-JAN-24 04.24.22.690150 PM
- PDB PDB$SEED:
- Applied 19.3.0.0.0 Release_Update 190410122720 successfully on 11-JAN-24 04.24.22.690150 PM
- Adding patches to installation queue and performing prereq checks...done
- Installation queue:
- For the following PDBs: CDB$ROOT PDB$SEED ORCLPDB1
- No interim patches need to be rolled back
- Patch 35943157 (Database Release Update : 19.22.0.0.240116 (35943157)):
- Apply from 19.3.0.0.0 Release_Update 190410122720 to 19.22.0.0.0 Release_Update 240104023954
- No interim patches need to be applied
- Installing patches...
- Patch installation complete. Total patches installed: 3
- Validating logfiles...done
- Patch 35943157 apply (pdb CDB$ROOT): SUCCESS
- logfile: /opt/oracle/cfgtoollogs/sqlpatch/35943157/25527362/35943157_apply_ORCLCDB_CDBROOT_2024Feb05_21_09_27.log (no errors)
- Patch 35943157 apply (pdb PDB$SEED): SUCCESS
- logfile: /opt/oracle/cfgtoollogs/sqlpatch/35943157/25527362/35943157_apply_ORCLCDB_PDBSEED_2024Feb05_21_16_01.log (no errors)
- Patch 35943157 apply (pdb ORCLPDB1): SUCCESS
- logfile: /opt/oracle/cfgtoollogs/sqlpatch/35943157/25527362/35943157_apply_ORCLCDB_ORCLPDB1_2024Feb05_21_16_01.log (no errors)
- SQL Patching tool complete on Mon Feb 5 21:27:20 2024
- real 18m19.684s
- user 0m33.220s
- sys 0m3.595s
复制代码 这里有一个小插曲,第一次实行datapatch 时非常慢,我强行中断了。
然后回家又做了一遍,这次快些了,只用了18分钟。
实行datapatch时,解压的数据库补丁我已经删除了,说明其不需要了。
其他
RMAN catalog如果有,也需要升级。我没有,此处略。
另有一些可能需要升级的,详见文档。
验证升级成功
- SQL> select banner_full from v$version;
- BANNER_FULL
- --------------------------------------------------------------------------------
- Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
- Version 19.22.0.0.0
- SQL> select banner_legacy from v$version;
- BANNER_LEGACY
- --------------------------------------------------------------------------------
- Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
复制代码 清算
- # 删除备份的Oracle Home
- rm ~/backup/oracle_home_bkup.tar
- # 删除解压的补丁包
- PATCHDIR=/home/oracle/patchdir
- rm -fr $PATCHDIR
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |