openEuler操作系统下Oracle 19c 从19.3补丁更新到19.17

news2024/9/25 16:30:17

Oracle 19c 从补丁19.3更新到19.17的过程涉及到多个步骤,包括备份、下载补丁、替换OPatch、验证清单信息、冲突检测、空间检测、应用补丁等。以下是一个概括性的流程,但请注意,具体步骤可能会根据实际的Oracle环境、补丁内容和Oracle的官方指导文档有所不同。

一、准备工作

  1. 备份当前环境

    • 在开始更新之前,务必备份当前的Oracle环境和相关配置文件,以便在出现问题时能够恢复。
    • 停止Oracle服务和监听程序,并备份$ORACLE_HOME目录。
  2. 下载补丁

    • 从Oracle官方网站或支持渠道下载所需的补丁文件,包括Oracle Grid Infrastructure (GI) 和Database (DB) 的补丁。
    • 补丁文件名可能类似于p34449117_190000_Linux-x86-64.zip,其中包含了特定版本的更新。
  3. 下载并替换OPatch

    • OPatch是Oracle用于应用补丁的工具,需要确保使用的是与Oracle版本兼容的OPatch版本。
    • 下载最新的OPatch版本,并替换现有版本的OPatch。
  4. 停止监听和数据库

lsnrctl stop

[oracle@openEuler u01]$ sqlplus / as sysdba

SYS@orcl> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

二、验证和准备

  1. 验证Oracle清单信息

    • 使用OPatch工具检查当前已安装的补丁和Oracle环境的信息。
    • 执行类似opatch lsinventory的命令来列出所有已安装的补丁。
  2. 冲突检测

    • 在应用新补丁之前,检查新补丁是否与当前安装的补丁存在冲突。
    • 使用OPatch的冲突检查功能来执行此操作。
  3. 空间检测

    • 确保系统上有足够的空间来应用新补丁。
    • 使用OPatch的空间检查功能来验证。

三、应用补丁

  1. 解压补丁

    • 将下载的补丁文件解压到适当的目录。
  2. 应用补丁

    • 使用OPatch的apply命令来应用补丁。
    • 根据提示执行必要的操作,如关闭正在运行的Oracle实例等。
  3. 验证补丁应用

    • 应用补丁后,使用OPatch的lsinventory命令来验证补丁是否已成功应用。

四、后续步骤

  1. 启动Oracle服务

    • 在确认补丁应用无误后,重新启动Oracle服务和监听程序。
  2. 测试和验证

    • 对更新后的Oracle环境进行彻底的测试和验证,以确保一切功能正常。

五、注意事项

  • 在整个过程中,请确保遵循Oracle的官方文档和指导原则。
  • 如果遇到任何问题,请及时联系Oracle的技术支持团队。
  • 请注意,Oracle的补丁策略可能会随着时间的推移而发生变化,因此请务必查阅最新的Oracle官方文档以获取最准确的信息。

六、参考示例

以下是一个简化的示例,展示了如何应用一个名为p34449117_190000_Linux-x86-64.zip的补丁:

  1. 下载并解压补丁

    cd /u01
    unzip p6880880_122010_Linux-x86-64.zip
    unzip p34449117_190000_Linux-x86-64.zip
    -- 替换OPatch
    mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_Bak
    mv OPatch $ORACLE_HOME/OPatch
    
  2. 检查冲突

    $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/34449117/34416665/34419443
    
  3. 应用补丁

    [oracle@openEuler u01]$ $ORACLE_HOME/OPatch/opatch apply /u01/34449117/34416665/34419443
    

在这里插入图片描述
4. 验证补丁

$ORACLE_HOME/OPatch/opatch lsinventory

$ORACLE_HOME/OPatch/opatch lsinv
  1. 启动数据库
[oracle@openEuler u01]$ sqlplus /nolog

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jul 21 00:32:42 2024
Version 19.17.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

@> conn sys as sysdba
Enter password: 
Connected to an idle instance.
SYS@orcl> startup
ORACLE instance started.

Total System Global Area 1728050048 bytes
Fixed Size                  8897408 bytes
Variable Size             520093696 bytes
Database Buffers         1191182336 bytes
Redo Buffers                7876608 bytes
Database mounted.
Database opened.
SYS@orcl> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.17.0.0.0
  1. 运行datapatch工具 datapatch -verbose
  • 安装补丁之后,还需要将有变化的SQL加载到数据库中,这里可以直接运行Datapatch工具将这些修改的SQL重新加载到数据库中
  • 如果是RAC集群环境,只需要在一个节点执行就可以了
[oracle@openEuler u01]$ $ORACLE_HOME/OPatch/datapatch -verbose
SQL Patching tool version 19.17.0.0.0 Production on Sun Jul 21 00:33:55 2024
Copyright (c) 2012, 2022, Oracle.  All rights reserved.

Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_58222_2024_07_21_00_33_55/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:
Interim patch 34411846 (OJVM RELEASE UPDATE: 19.17.0.0.221018 (34411846)):
  Binary registry: Installed
  SQL registry: Applied successfully on 20-JUL-24 11.15.52.871563 PM

Current state of release update SQL patches:
  Binary registry:
    19.17.0.0.0 Release_Update 220924224051: Installed
  SQL registry:
    Applied 19.7.0.0.0 Release_Update 200404035018 successfully on 21-JUL-24 12.11.41.183647 AM

Adding patches to installation queue and performing prereq checks...done
Installation queue:
  No interim patches need to be rolled back
  Patch 34419443 (Database Release Update : 19.17.0.0.221018 (34419443)):
    Apply from 19.7.0.0.0 Release_Update 200404035018 to 19.17.0.0.0 Release_Update 220924224051
  No interim patches need to be applied

Installing patches...
Patch installation complete.  Total patches installed: 1

Validating logfiles...done
Patch 34419443 apply: SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/34419443/24972075/34419443_apply_ORCL_2024Jul21_00_34_32.log (no errors)
SQL Patching tool complete on Sun Jul 21 00:39:46 2024
  1. 编译处理无效对象
    For example:
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SYS@orcl> CONNECT / AS SYSDBA
SYS@orcl> @utlrp.sql

或者

  • @?/rdbms/admin/utlrp.sql
[oracle@openEuler u01]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jul 21 00:40:35 2024
Version 19.17.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.17.0.0.0

SYS@orcl> @?/rdbms/admin/utlrp.sql

Session altered.


TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN              2024-07-21 00:40:39

DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid
DOC>   objects in the database. Recompilation time is proportional to the
DOC>   number of invalid objects in the database, so this command may take
DOC>   a long time to execute on a database with a large number of invalid
DOC>   objects.
DOC>
DOC>   Use the following queries to track recompilation progress:
DOC>
DOC>   1. Query returning the number of invalid objects remaining. This
DOC>      number should decrease with time.
DOC>         SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);
DOC>
DOC>   2. Query returning the number of objects compiled so far. This number
DOC>      should increase with time.
DOC>         SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;
DOC>
DOC>   This script automatically chooses serial or parallel recompilation
DOC>   based on the number of CPUs available (parameter cpu_count) multiplied
DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu).
DOC>   On RAC, this number is added across all RAC nodes.
DOC>
DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel
DOC>   recompilation. Jobs are created without instance affinity so that they
DOC>   can migrate across RAC nodes. Use the following queries to verify
DOC>   whether UTL_RECOMP jobs are being created and run correctly:
DOC>
DOC>   1. Query showing jobs created by UTL_RECOMP
DOC>         SELECT job_name FROM dba_scheduler_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>
DOC>   2. Query showing UTL_RECOMP jobs that are running
DOC>         SELECT job_name FROM dba_scheduler_running_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>#

PL/SQL procedure successfully completed.


TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_END              2024-07-21 00:40:40

DOC> The following query reports the number of invalid objects.
DOC>
DOC> If the number is higher than expected, please examine the error
DOC> messages reported with each object (using SHOW ERRORS) to see if they
DOC> point to system misconfiguration or resource constraints that must be
DOC> fixed before attempting to recompile these objects.
DOC>#

OBJECTS WITH ERRORS
-------------------
                  1

DOC> The following query reports the number of exceptions caught during
DOC> recompilation. If this number is non-zero, please query the error
DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors
DOC> are due to misconfiguration or resource constraints that must be
DOC> fixed before objects can compile successfully.
DOC> Note: Typical compilation errors (due to coding errors) are not
DOC>       logged into this table: they go into DBA_ERRORS instead.
DOC>#

ERRORS DURING RECOMPILATION
---------------------------
                          0


Function created.


PL/SQL procedure successfully completed.


Function dropped.


PL/SQL procedure successfully completed.
  1. 查看版本变化
SYS@orcl> select banner_full from v$version;

BANNER_FULL
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.17.0.0.0


SYS@orcl> select open_mode,name from v$database;

OPEN_MODE            NAME
-------------------- ---------
READ WRITE           ORCL

SYS@orcl> 
SYS@orcl> set linesize 300
SYS@orcl> col status for a10
SYS@orcl> col action for a10
SYS@orcl> col action_time for a30
SYS@orcl> col description for a60
SYS@orcl> select patch_id,patch_type,action,status,action_time,description from dba_registry_sqlpatch;

  PATCH_ID PATCH_TYPE ACTION     STATUS     ACTION_TIME                    DESCRIPTION
---------- ---------- ---------- ---------- ------------------------------ ------------------------------------------------------------
  29517242 RU         APPLY      SUCCESS    18-JUN-24 02.58.24.451519 PM   Database Release Update : 19.3.0.0.190416 (29517242)
  34411846 INTERIM    APPLY      SUCCESS    20-JUL-24 11.15.52.871563 PM   OJVM RELEASE UPDATE: 19.17.0.0.221018 (34411846)
  34419443 RU         APPLY      SUCCESS    21-JUL-24 12.39.45.639286 AM   Database Release Update : 19.17.0.0.221018 (34419443)

  1. Upgrade Oracle Recovery Manager Catalog
    If you are using the Oracle Recovery Manager, the catalog needs to be upgraded. Enter the following command to upgrade it. The UPGRADE CATALOG command must be entered twice to confirm the upgrade.
$ rman catalog username/password@orcl
RMAN> UPGRADE CATALOG;
RMAN> UPGRADE CATALOG;
RMAN> EXIT;
  1. OJVM 补丁更新操作步骤如下
-- 检查冲突
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/34449117/34411846/

-- 关闭数据库
sqlplus / as sysdba
shutdown immediate

-- 应用补丁
$ORACLE_HOME/OPatch/opatch apply -silent /u01/34449117/34411846/

-- 验证补丁
$ORACLE_HOME/OPatch/opatch lsinv

$ORACLE_HOME/OPatch/opatch lsinventory

-- 启动数据库及监听
sqlplus / as sysdba
startup

lsnrctl start

-- 直接运行Datapatch工具将这些修改的SQL重新加载到数据库
$ORACLE_HOME/OPatch/datapatch -verbose

请注意,上述示例中的命令和路径可能需要根据您的实际环境进行调整。

。。提示 。。

如果需要补丁包,请评论区留言。感谢点赞,转发!。。。

openEuler操作系统下Oracle 19c,可参考我的文档openEuler操作系统下静默安装Oracle19c,地址如下

https://blog.csdn.net/zxrhhm/article/details/139774799?spm=1001.2014.3001.5501

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1949549.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于python的BP神经网络红酒品质分类预测模型

1 导入必要的库 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelEncoder from tensorflow.keras.models import Sequential from tenso…

DataEase一键部署:轻松搭建数据可视化平台

DataEase是一个开源的数据可视化和分析工具,旨在帮助用户轻松创建和共享数据仪表盘。它支持多种数据源,包括关系型数据库,文件数据源,NoSQL数据库等,提供强大的数据查询、处理和可视化功能。DataEase 不仅是一款数据可…

oracle读写时相关字符集详解

服务器端操作系统(Oracle linux)字符集 服务器端数据库字符集 客户端操作系统(Oracle linux)字符集 客户端工具sqlplus字符集 结论1:客户端工具sqlplus的会话,使用的字符集,是数据库字符集。…

如何排查GD32 MCU复位是由哪个复位源导致的?

上期为大家讲解了GD32 MCU复位包括电源复位和系统复位,其中系统复位还包括独立看门狗复位、内核软复位、窗口看门狗复位等,在一个GD32系统中,如果莫名其妙产生了MCU复位,如何排查具体是由哪个复位源导致的呢? GD32 MC…

反激Flyback从逆向到初步设计(UC2844)

一.Flyback基本拓扑 国标gb/t 12325-2008《电能质量供电电压偏差》规定:220v单向供电电压偏差为标称电压的-10%,7%。 对应220V的标称电压,其浮动范围是在198~235.4V。以下运算均基于此规定进行。 首先220V进入EMI模块,消除差模干扰…

虚拟机配置RabbitMQ集群教程

RabbitMQ是常用的一款消息中间件,那么如何在我们虚拟机中创建其集群呢?跟着博主这篇文章让你一步到位 本篇搭建的是三台机器为一个集群!假设大家虚拟机都为初始化状态,从0开始(注意集群搭建需要CentOS8以上环境&#x…

老板电器发布首个烹饪AI模型,揭秘其如何引领厨电行业变革

数字发展日新月异,智慧产品迭代更新。当前,我们或许正身处一场连科学巨人也无法预见的深度变革之中。现代科技使得普通人无需深入学习数学或编程知识,也能借助手机或电脑,体验“苏格拉底式”的在线指导,或者与“乔布斯…

js 习题 1

文章目录 前言T1T2T3T4T5T6T7T8T9结语 前言 『最孤独的人最亲切,受过伤的人总是笑的最灿烂。』—— 「素媛」 T1 let buf""; process.stdin.on("readable",function(){let chunkprocess.stdin.read();if(chunk){bufchunk.toString();} });pr…

在英特尔 Gaudi 2 上加速蛋白质语言模型 ProtST

引言 蛋白质语言模型 (Protein Language Models, PLM) 已成为蛋白质结构与功能预测及设计的有力工具。在 2023 年国际机器学习会议 (ICML) 上,MILA 和英特尔实验室联合发布了ProtST模型,该模型是个可基于文本提示设计蛋白质的多模态模型。此后&#xff0…

uniapp中@click或者@tap多层嵌套的问题解决方法

我们在开发页面的过程中。例如要设计一个九宫格的相册,并且加上删除上传图片和点击图片后预览图片大图的功能例如下图的演示功能。 点击图片后显示大图预览图片,点击x号后要删除掉当前的图片,那么我们设计的时候如果我们代码写成如下的格式 …

【JavaScript】`Map` 数据结构

文章目录 一、Map 的基本概念二、常见操作三、与对象的对比四、实际应用场景 在现代 JavaScript 中,Map 是一种非常重要且强大的数据结构。与传统的对象(Object)不同,Map 允许您使用各种类型的值作为键,不限于字符串或…

jenkins自动化持续集成

一、持续集成优势 1.1 解放重复劳动 一次设置,多次复用。持续集成任务可以解放集成、测试、部署等重复性劳动,通过自动化任务能够显著提升集成频率。 1.2 更快解决问题 接入持续集成任务后,能够更早地感知变更后效果,及时进入…

『 Linux 』信号的写入与保存

文章目录 信号的发送信号的保存sigset_t 类型与信号集操作函数阻塞信号集(信号屏蔽字)操作函数未决信号集操作函数验证阻塞信号集与未决信号集 信号的发送 $ kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10)…

sql注入的专项练习 sqlilabs(含代码审计)

在做题之前先复习了数据库的增删改查,然后自己用本地的环境,在自己建的库里面进行了sql语句的测试,主要是回顾了一下sql注入联合注入查询的语句和sql注入的一般做题步骤。 1.获取当前数据库 2.获取数据库中的表 3.获取表中的字段名 一、sql…

Rce漏洞复习(ctfshow29-50)

Rce漏洞简介思维导图 Web29 代码审计: if(!preg_match("/flag/i", $c)){ eval($c); 传参没有flag(大小写都没有出现) Payload: ?csystem("ls"); ?csystem("tac *lag.php"); Web30 代码…

数据结构——排序大汇总(建议收藏)

这篇文章将为大家详细讲解各大排序的基本思想与实现代码~ 内有动图 首先,我们来看常见的排序有以下几大类: 1.插入排序 插入排序的主要思想是将每个位置的元素插入到前面已具备顺序的数组中 实际中我们玩扑克牌时,就用了插入排序的思想 …

Adobe正通过数字体验改变世界

在当今这个数字化飞速发展的时代,Adobe公司正以其创新的技术和卓越的产品引领着创意设计领域的变革。从Adobe发布的生成式AI工具(Adobe Firefly),到Illustrator和Photoshop的新AI功能,再到广受认可的Adobe国际认证&…

【Golang 面试基础题】每日 5 题(七)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…

opencv入门(四)

文章目录 一、形态学转换1.1 图像腐蚀1.1.1 erode():用于实现对图像的腐蚀操作1.2 图像膨胀1.2.1 dilate():实现对图像的膨胀操作1.3 图像 开\闭运算、梯度运算、顶帽运算、底帽运算1.3.1 morphologyEx():实现对图像的 开\闭运算、梯度运算、顶帽运算、底帽运算一、形态学转…

DATEDIFF()- Date Functions-SQL函数

DATEDIFF()- Date Functions DATEDIFF() 函数是一种用于计算日期差异的常见日期函数。 通常用于比较两个日期之间的时间跨度,以便进行日期计算和分析。 语法 大多数数据库中,DATEDIFF() 函数的语法: DATEDIFF(unit,…