openEuler操作系统下Oracle 19c 从19.3补丁更新到19.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 sysdbaSYS@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 /nologSQL*Plus: Release 19.0.0.0.0 - Production on Sun Jul 21 00:32:42 2024
Version 19.17.0.0.0Copyright (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.logConnecting to database...OK
Gathering database info...done
Bootstrapping registry and package to current versions...done
Determining current state...doneCurrent state of interim SQL patches:
Interim patch 34411846 (OJVM RELEASE UPDATE: 19.17.0.0.221018 (34411846)):Binary registry: InstalledSQL registry: Applied successfully on 20-JUL-24 11.15.52.871563 PMCurrent state of release update SQL patches:Binary registry:19.17.0.0.0 Release_Update 220924224051: InstalledSQL registry:Applied 19.7.0.0.0 Release_Update 200404035018 successfully on 21-JUL-24 12.11.41.183647 AMAdding patches to installation queue and performing prereq checks...done
Installation queue:No interim patches need to be rolled backPatch 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 220924224051No interim patches need to be appliedInstalling patches...
Patch installation complete.  Total patches installed: 1Validating logfiles...done
Patch 34419443 apply: SUCCESSlogfile: /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 sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Sun Jul 21 00:40:35 2024
Version 19.17.0.0.0Copyright (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.0SYS@orcl> @?/rdbms/admin/utlrp.sqlSession altered.TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN              2024-07-21 00:40:39DOC>   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:40DOC> 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
-------------------1DOC> 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
---------------------------0Function 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.0SYS@orcl> select open_mode,name from v$database;OPEN_MODE            NAME
-------------------- ---------
READ WRITE           ORCLSYS@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
startuplsnrctl 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.mzph.cn/news/874464.shtml

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

相关文章

【接口自动化_07课_Pytest+Excel+Allure完整框架集成_下】

目标:优化框架场景 1. 生成对应的接口关联【重点】 2. 优化URL基础路径封装【理解】 3. 利用PySQL操作数据库应用【理解】--- 怎么用python连接数据库、mysql 4. 通过数据库进行数据库断言【重点】 5. 通过数据库进行关联操作【重点】 一、接口关联&#xff1a…

【QAC】分布式部署下其他机器如何连接RLM

1、 文档目标 解决分布式部署下其他机器如何连接RLMLicense管理器。 2、 问题场景 分布式部署下QAC要在其他机器上单独运行扫描,必须先连接RLMLicense管理器,如何连接? 3、软硬件环境 1、软件版本:HelixQAC23.04 2、机器环境…

【算法/训练】:前缀和差分

🚀 前言: 前面我们已经通过 【算法/学习】前缀和&&差分-CSDN博客 学习了前缀和&&差分的效相关知识,现在我们开始进行相关题目的练习吧 1. 校门外的树 思路:给[0, n]的数组都标记为1,然后输出m行范围…

基于 PyTorch 的模型瘦身三部曲:量化、剪枝和蒸馏,让模型更短小精悍!

基于 PyTorch 的模型量化、剪枝和蒸馏 1. 模型量化1.1 原理介绍1.2 PyTorch 实现 2. 模型剪枝2.1 原理介绍2.2 PyTorch 实现 3. 模型蒸馏3.1 原理介绍3.2 PyTorch 实现 参考文献 1. 模型量化 1.1 原理介绍 模型量化是将模型参数从高精度(通常是 float32&#xff0…

Elasticsearch:Retrievers 介绍 - Python Jupyter notebook

在今天的文章里,我是继上一篇文章 “Elasticsearch:介绍 retrievers - 搜索一切事物” 来使用一个可以在本地设置的 Elasticsearch 集群来展示 Retrievers 的使用。在本篇文章中,你将学到如下的内容: 从 Kaggle 下载 IMDB 数据集…

Linux云计算 |【第一阶段】SERVICES-DAY5

主要内容: 源码编译安装、rsync同步操作、inotify实时同步、数据库服务基础 实操前骤:(所需tools.tar.gz与users.sql) 1.两台主机设置SELinnx和关闭防火墙 setenforce 0 systemctl stop firewalld.service //停止防火墙 sy…

MySQL定时备份数据,并上传到oss

1.环境准备 1.安装阿里云的ossutil 2.安装mysql 2.编写脚本 脚本内容如下 #!/bin/bash # 数据库的配置信息,根据自己的情况进行填写 db_hostlocalhost db_usernameroot db_passwordroot db_namedb_root # oss 存贮数据的bucket地址 bucket_namerbsy-backup-buck…

软件更新的双刃剑:从”微软蓝屏”事件看网络安全的挑战与对策

引言 原文链接 近日,一场由微软视窗系统软件更新引发的全球性"微软蓝屏"事件震惊了整个科技界。这次事件源于美国电脑安全技术公司"众击"提供的一个带有"缺陷"的软件更新,如同一颗隐形炸弹在全球范围内引爆,…

Python面试宝典第17题:Z字形变换

题目 将一个给定字符串 s 根据给定的行数numRows ,以从上往下、从左到右进行Z字形排列。比如:输入字符串为"PAYPALISHIRING",行数为3时,排列如下。最后,你的输出需要从左往右逐行读取,产生出一个…

unity 实现图片的放大与缩小(根据鼠标位置拉伸放缩)

1创建UnityHelper.cs using UnityEngine.Events; using UnityEngine.EventSystems;public class UnityHelper {/// <summary>/// 简化向EventTrigger组件添加事件的操作。/// </summary>/// <param name"_eventTrigger">要添加事件监听的UI元素上…

DevExpress中文教程 - 如何在.NET MAUI应用中实现Material Design 3?

DevExpress .NET MAUI多平台应用UI组件库提供了用于Android和iOS移动开发的高性能UI组件&#xff0c;该组件库包括数据网格、图表、调度程序、数据编辑器、CollectionView和选项卡组件等。 获取DevExpress v24.1正式版下载 Material Design是一个由Google开发的跨平台指南系统…

HydraRPC: RPC in the CXL Era——论文阅读

ATC 2024 Paper CXL论文阅读笔记整理 问题 远程过程调用&#xff08;RPC&#xff09;是分布式系统中的一项基本技术&#xff0c;它允许函数在远程服务器上通过本地调用执行来促进网络通信&#xff0c;隐藏底层通信过程的复杂性简化了客户端/服务器交互[15]。RPC已成为数据中心…

【Hot100】LeetCode—279. 完全平方数

目录 题目1- 思路2- 实现⭐完全平方数——题解思路 3- ACM 实现 题目 原题连接&#xff1a;279. 完全平方数 1- 思路 思路 动规五部曲 2- 实现 ⭐完全平方数——题解思路 class Solution {public int numSquares(int n) {// 1. 定义 dpint[] dp new int[n1];//2. 递推公式…

论文学习记录之一种具有边缘增强特点的医学图像分割网络

标题&#xff1a;一种具有边缘增强特点的医学图像分割网络 期刊&#xff1a;电子与信息学报-&#xff08;2022年5月出刊&#xff09; 摘要&#xff1a;针对传统医学图像分割网络存在边缘分割不清晰、缺失值大等问题&#xff0c;该文提出一种具有边缘增强特点的医学图像分割网…

社交圈子小程序搭建-源码部署-服务公司

消息通知:当有新的消息、评论或回复时&#xff0c;用户需要收到系统的推送通知&#xff0c;以便及时查看和回复 活动发布与参加:用户可以在社交圈子中发布各种类型的活动&#xff0c;如聚餐、旅游、运动等。其他用户可以参加这些活动&#xff0c;并与组织者进行交流和沟通 社交…

C#初级——输出语句和转义字符

输出语句 在C#中&#xff0c;C#的输出语句是通过Console类进行输出&#xff0c;该类是一个在控制台下的一个标准输入流、输出流和错误流。使用该类下的Write()函数&#xff0c;即可打印要输出的内容。 Console.Write("Hello World!"); //在控制台应用中打印Hell…

通过QT进行服务器和客户端之间的网络通信

客户端 client.pro #------------------------------------------------- # # Project created by QtCreator 2024-07-02T14:11:20 # #-------------------------------------------------QT core gui network #网络通信greaterThan(QT_MAJOR_VERSION, 4): QT widg…

Docker安装nacos(详细教程)

Nacos 是一个开源的动态服务发现、配置管理和服务管理平台&#xff0c;广泛用于微服务架构中。在本文章中&#xff0c;博主将详细介绍如何使用 Docker 来安装 Nacos&#xff0c;以便快速启动并运行这个强大的服务管理工具。 前置条件 在开始安装 Nacos 之前&#xff0c;请确保…

pytorch 笔记:torch.optim.Adam

torch.optim.Adam 是一个实现 Adam 优化算法的类。Adam 是一个常用的梯度下降优化方法&#xff0c;特别适合处理大规模数据集和参数的深度学习模型 torch.optim.Adam(params, lr0.001, betas(0.9, 0.999), eps1e-08, weight_decay0, amsgradFalse, *, foreachNone, maximizeFa…

I2C总线二级外设驱动开发(函数和代码详解)

I2C总线二级外设驱动开发是一个涉及多个步骤和函数调用的过程&#xff0c;主要目的是使得挂接在I2C总线上的外设能够正常工作。 一、I2C总线二级外设驱动开发概述 I2C总线是一种广泛使用的串行通信总线&#xff0c;用于连接微控制器及其外围设备。在Linux内核中&#xff0c;I2…