侧边栏壁纸
  • 累计撰写 128 篇文章
  • 累计创建 13 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

【ORACLE】记录一次windows环境ORACLE19.3打补丁升到19.12版本

DarkAthena
2021-10-20 / 0 评论 / 0 点赞 / 1983 阅读 / 7221 字

前言

这本是一个挺简单的升级,不过这次是升级我的玩具库,当时为了快点体验19c,下载后就直接解压配置了个数据库,导致ORACLE_HOME目录长成了这样,“H:\BaiduNetdiskDownload\WINDOWS.X64_193000_db_home\”,

最近发现19.9版本是有添加一些新的组件的,比如"DBMS_CLOUD",就打算打补丁升个级。

步骤

  1. 先把Opatch工具给升个级,直接替换文件夹就行了,路径为 ORACLE_HOME\opatch;

  2. 然后把“Bundle Patch”下载下来,解压,里面有个数字文件夹“32832237”,随便放哪里,里面还有个readme文档,有安装步骤、卸载步骤、报错说明等

  3. 关闭oracle数据库、监听、作业,还有plsql developer等等可能所有可能占用到了oracle文件的程序,建议把杀毒什么的都关了

  4. 关闭微软的msdtc服务,
    net stop msdtc

  5. 设置环境变量
    set PATH=%ORACLE_HOME%\perl\bin;%PATH%

  6. 确认PERL5LIB没有环境变量
    set PERL5LIB=

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

补丁就打完了,

  1. 然后启动数据库,给数据库打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

  1. 检查版本
    select * from product_component_version;
PRODUCTVERSIONVERSION_FULLSTATUS
Oracle Database 19c Enterprise Edition19.0.0.0.019.12.0.0.0Production
  1. 编译无效对象
    @utlrp.sql

后记

这次升级只遇到个路径名的小问题,基本全程顺利,dbms_cloud.sql文件也有了,接下来可能会弄点与这个包有关的一些玩意

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
博主关闭了所有页面的评论