前言
这本是一个挺简单的升级,不过这次是升级我的玩具库,当时为了快点体验19c,下载后就直接解压配置了个数据库,导致ORACLE_HOME目录长成了这样,“H:\BaiduNetdiskDownload\WINDOWS.X64_193000_db_home\”,
最近发现19.9版本是有添加一些新的组件的,比如"DBMS_CLOUD",就打算打补丁升个级。
步骤
-
先把Opatch工具给升个级,直接替换文件夹就行了,路径为 ORACLE_HOME\opatch;
-
然后把“Bundle Patch”下载下来,解压,里面有个数字文件夹“32832237”,随便放哪里,里面还有个readme文档,有安装步骤、卸载步骤、报错说明等
-
关闭oracle数据库、监听、作业,还有plsql developer等等可能所有可能占用到了oracle文件的程序,建议把杀毒什么的都关了
-
关闭微软的msdtc服务,
net stop msdtc -
设置环境变量
set PATH=%ORACLE_HOME%\perl\bin;%PATH% -
确认PERL5LIB没有环境变量
set PERL5LIB= -
cmd进入ORACLE_HOME\opatch文件夹,按官方文档说的,直接执行 opatch apply
会报错,提示参数错误,
ZOP-51: The patch location is not valid for apply, because it doesn't have correct metadata, or it points to a patch directory.
参数错误... Patch location is not valid for apply
Please check the arguments and try again.
OPatch failed with error code = 135
这是因为没有指定补丁路径,所以执行
opatch apply -local h:\32832237
但还是报错
Illegal Argument: Illegal char <"> at index 0: "H:\BaiduNetdiskDownload\WINDOWS.X64_193000_db_home".patch_storage
OPatch failed with error code = 255
说这个双引号是违法字符串,但命令中并没有使用双引号,官方升级文档中没有此种错误的解决方法。
这个双引号是windows下特有的,当目录过长或者包含特殊字符时,会自动带上双引号以避免歧义,但是这种方式OPatch不识别。所以我换到powershell下再试,还是执行
opatch apply -local h:\32832237
报错
opatch : 无法将“opatch”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径
正确,然后再试一次。
所在位置 行:1 字符: 1
- opatch apply H:\32832237
+ CategoryInfo : ObjectNotFound: (opatch:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
Suggestion [3,General]: 找不到命令 opatch,但它确实存在于当前位置。默认情况下,Windows PowerShell 不会从当前位置加载命令。如果信任此命令,请改为键入“.\opatch”。有关详细信息,请参阅 "get-help about_Command_Precedence"。
原因嘛,这个报错提示已经说得很清楚了,也给了解决方式,执行
.\opatch apply -local h:\32832237
Verifying environment and performing prerequisite checks...
OPatch continues with these patches: 32832237
是否继续? [y|n]
y
User Responded with: Y
All checks passed.
请关闭本地系统上在此 ORACLE_HOME 之外运行的 Oracle 实例。
(Oracle 主目录 = 'H:\BaiduNetdiskDownload\WINDOWS.X64_193000_db_home')
本地系统是否已准备打补丁? [y|n]
y
User Responded with: Y
Backing up files...
正在将临时补丁程序 '32832237' 应用于 OH 'H:\BaiduNetdiskDownload\WINDOWS.X64_193000_db_home'
ApplySession: Oracle 主目录中不存在可选组件 [ oracle.assistants.usm, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.rdbms.tg4ifmx, 19.0.0.0.0 ] , [ oracle.has.deconfig, 19.0.0.0.0 ] , [ oracle.swd.oui, 19.0.0.0.0 ] , [ oracle.has.cfs, 19.0.0.0.0 ] , [ oracle.rdbms.tg4tera, 19.0.0.0.0 ] , [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.rdbms.tg4msql, 19.0.0.0.0 ] , [ oracle.ons.daemon, 19.0.0.0.0 ] , [ oracle.options.olap.awm, 19.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 19.0.0.0.0 ] , [ oracle.assistants.asm, 19.0.0.0.0 ] , [ oracle.usm, 19.0.0.0.0 ] , [ oracle.swd.oui.core.min, 19.0.0.0.0 ] , [ oracle.tomcat.crs, 19.0.0.0.0 ] , [ oracle.options.olap, 19.0.0.0.0 ] , [ oracle.has.crs, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ] , [ oracle.has.cvu, 19.0.0.0.0 ] , [ oracle.rdbms.tg4sybs, 19.0.0.0.0 ] , 或找到更高版本。
正在为组件 oracle.sdo, 19.0.0.0.0 打补丁...
正在为组件 oracle.rdbms.rman, 19.0.0.0.0 打补丁...
....
正在为组件 oracle.sqlplus, 19.0.0.0.0 打补丁...
正在为组件 oracle.has.common.cvu, 19.0.0.0.0 打补丁...
Patch 32832237 successfully applied.
Log file location: H:\BaiduNetdiskDownload\WINDOWS.X64_193000_db_home\cfgtoollogs\opatch\opatch2021-10-20_18-01-38下午_1.log
OPatch succeeded.
补丁就打完了,
- 然后启动数据库,给数据库打sql
.\datapatch -verbose
Log file for this invocation: F:\oracle\cfgtoollogs\sqlpatch\sqlpatch_16528_2021_10_20_18_53_35\sqlpatch_invocation.log
Connecting to database...OK
Gathering database info...done
Bootstrapping registry and package to current versions...done
Determining current state...done
Current state of interim SQL patches:
No interim patches found
Current state of release update SQL patches:
Binary registry:
19.12.0.0.0 Release_Update 210721181205: Installed
SQL registry:
No release update patches installed
Adding patches to installation queue and performing prereq checks...done
Installation queue:
No interim patches need to be rolled back
Patch 32832237 (Windows Database Bundle Patch : 19.12.0.0.210720 (32832237)):
Apply from 19.1.0.0.0 Feature Release to 19.12.0.0.0 Release_Update 210721181205
No interim patches need to be applied
Installing patches...
Patch installation complete. Total patches installed: 1
Validating logfiles...done
Patch 32832237 apply: SUCCESS
logfile: F:\oracle\cfgtoollogs\sqlpatch\32832237\24292339/32832237_apply_ORCL_2021Oct20_18_55_01.log (no errors)
SQL Patching tool complete on Wed Oct 20 19:04:04 2021
- 检查版本
select * from product_component_version;
PRODUCT | VERSION | VERSION_FULL | STATUS |
---|---|---|---|
Oracle Database 19c Enterprise Edition | 19.0.0.0.0 | 19.12.0.0.0 | Production |
- 编译无效对象
@utlrp.sql
后记
这次升级只遇到个路径名的小问题,基本全程顺利,dbms_cloud.sql文件也有了,接下来可能会弄点与这个包有关的一些玩意