热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在RAC19.6基础上安装GI+DB+JAVAVMRU19.8.0.0.0.200714

在RAC19.6基础上安装GI+DB+JAVAVMRU19.8.0.

安装Oracle RAC 19C for RHEL 7.5 + RU 19.6.0.0.0

https://www.modb.pro/db/22755

Oracle RAC 19.3打补丁到19.6 Datapatch ORA-29516 ORA-00604 and ORA-29532 java.lang.ArrayIndexOutOfBoundsException

https://www.modb.pro/db/23603


注意:以下操作仅为RU 19.8.0.0.0.200714安装测试示例,具体步骤和其他补丁安装方法请参考补丁包内的README.html。

下载RU 19.8.0.0.0.200714

Master Note for Database Proactive Patch Program (Doc ID 756671.1)

image.png

image.png

image.png

更新OPatch版本,RU README.html提示OPatch 最低版本要求12.2.0.1.21

image.png

下载OPatch 12.2.0.1.21

https://updates.oracle.com/ARULink/PatchDetails/process_form?patch_num=6880880

image.png

image.png

RAC所有节点更新GI_HOME和DB_HOME下的OPatch

# unzip 12.2.0.1.21_p6880880_190000_Linux-x86-64.zip
# cd /u01/app/19.0.0/grid/
# mv OPatch OPatch_19
# mv /opt/OPatch/ ./
# chown -R grid:oinstall OPatch
# su - oracle
[oracle]$ unzip /opt/12.2.0.1.21_p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
[oracle]$ opatch version
OPatch Version: 12.2.0.1.21
OPatch succeeded.
[grid]$ opatch version
OPatch Version: 12.2.0.1.21
OPatch succeeded.

RAC所有节点解压RU安装包

# mkdir /oraru --README.html要求此目录为空
# chown -R grid:oinstall /oraru/
# su - grid --使用grid用户解压RU安装包
[grid]$ unzip /opt/OJVM_GI_19.8.0.0.200714_p31326369_190000_Linux-x86-64.zip -d /oraru/

RAC所有节点记录现有补丁情况

$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME

RAC所有节点检查补丁冲突

su - grid
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oraru/31326369/31305339/31281355
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oraru/31326369/31305339/31305087
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oraru/31326369/31305339/31304218
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oraru/31326369/31305339/31335188
su - oracle
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oraru/31326369/31305339/31281355
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oraru/31326369/31305339/31305087

由于之前安装过oneoff小补丁,所以检查DB_HOME的补丁有冲突,如下:

[oracle]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oraru/31326369/31305339/31281355
Oracle Interim Patch Installer version 12.2.0.1.21
Copyright (c) 2020, Oracle Corporation. All rights reserved.
PREREQ session
Oracle Home : /u02/app/oracle/product/19.0.0/db_1
Central Inventory : /u01/app/oraInventory
from : /u02/app/oracle/product/19.0.0/db_1/oraInst.loc
OPatch version : 12.2.0.1.21
OUI version : 12.2.0.7.0
Log file location : /u02/app/oracle/product/19.0.0/db_1/cfgtoollogs/opatch/opatch2020-08-11_17-17-13PM_1.log
Invoking prereq "checkconflictagainstohwithdetail"
ZOP-47: The patch(es) has supersets with other patches installed in the Oracle Home (or) among themselves.
Prereq "checkConflictAgainstOHWithDetail" failed.
The details are:
Please rebuild the superset patch [31281355] to make sure it supersedes all the relevant patch(es) [30557433,30557433,30486436,29901419,29041775,30473634,29511980,30321076].
The rebuild patch should contain bug fix [29332763, 30169254, ..., 31077365, 29324568, 30391272, 29512890, 28824482, 29013832].
Summary of Conflict Analysis:
There are no patches that can be applied now.
Following patches have conflicts. Please contact Oracle Support and get the merged patch of the patches :
29041775, 30321076, 30473634, 31281355
Following patches will be rolled back from Oracle Home on application of the patches in the given list :
29511980, 30486436, 29901419
Conflicts/Supersets for each patch are:
Patch : 31281355
Conflict with 30321076
Conflict details:
/u02/app/oracle/product/19.0.0/db_1/lib/libgeneric19.a:qct.o
Bug Superset of 30486436
Super set bugs are:
30486436
Bug Superset of 29511980
Super set bugs are:
29511980
Conflict with 29041775
Conflict details:
/u02/app/oracle/product/19.0.0/db_1/lib/libserver19.a:kwqdl.o
Bug Superset of 29901419
Super set bugs are:
29901419
Conflict with 30473634
Conflict details:
/u02/app/oracle/product/19.0.0/db_1/lib/libserver19.a:kjb.o
/u02/app/oracle/product/19.0.0/db_1/lib/libserver19.a:kjbl.o
OPatch succeeded.

现有的补丁情况

[oracle]$ $ORACLE_HOME/OPatch/opatch lspatches
29511980;EBS12.2+RAC+CDB ORA-600[KKAEGEN_GET_EDITION_NAME_2] FOLLOWED BY INSTANCE TERMINATION
30486436;19.4 AIX ORA-00600 [KJCSMPAV 1], [0X7000105CC424AF0], [4], [0], [211], [220]
30473634;LNX64-20.1-ASM,DB DBW5 HIT ORA-00600[KCBBXSV_NWP] THEN INST CRASH
30321076;RTI 22224358 ORA-600 [QESMAGETPAMR-NULLCTX],
29901419;INCREMENTAL STATS DEGRADE THE PERFORMANCE FOR ADD COLUMN DDL
29041775;ORA-41401 IN ALERT.LOG EXACM
30484981;OJVM RELEASE UPDATE: 19.6.0.0.200114 (30484981)
30557433;Database Release Update : 19.6.0.0.200114 (30557433)
30489227;OCW RELEASE UPDATE 19.6.0.0.0 (30489227)

由以上信息可以看出冲突的oneoff小补丁是29041775, 30321076, 30473634,需要先rollback小补丁后再安装RU 19.8。

RAC各节点滚动rollback 29041775, 30321076, 30473634

此操作需要停实例,允许滚动rollback,先操作一个节点,其他节点提供服务,这个节点操作完成启动成功可对外服务后,再依次操作其他节点。

[oracle]$ sqlplus / as sysdba
SQL> alter pluggable database all close immediate;
SQL> shutdown immediate
[oracle]$ opatch rollback -id 29041775
[oracle]$ opatch rollback -id 30321076
[oracle]$ opatch rollback -id 30473634
[oracle]$ sqlplus / as sysdba
SQL> startup
SQL> alter pluggable database all open;

回滚补丁后再检查补丁冲突

[oracle]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oraru/31326369/31305339/31281355
Oracle Interim Patch Installer version 12.2.0.1.21
Copyright (c) 2020, Oracle Corporation. All rights reserved.
PREREQ session
Oracle Home : /u02/app/oracle/product/19.0.0/db_1
Central Inventory : /u01/app/oraInventory
from : /u02/app/oracle/product/19.0.0/db_1/oraInst.loc
OPatch version : 12.2.0.1.21
OUI version : 12.2.0.7.0
Log file location : /u02/app/oracle/product/19.0.0/db_1/cfgtoollogs/opatch/opatch2020-08-11_17-49-52PM_1.log
Invoking prereq "checkconflictagainstohwithdetail"
Prereq "checkConflictAgainstOHWithDetail" passed.
OPatch succeeded.

RAC所有节点备份GI_HOME和DB_HOME

tar -cvf /data/gi_home_20200820.tar /u01
tar -cvf /data/db_home_20200820.tar /u02

RAC所有节点检查文件系统上是否有足够的可用空间来应用补丁

# vi /tmp/patch_list_gihome.txt
/oraru/31326369/31305339/31281355
/oraru/31326369/31305339/31305087
/oraru/31326369/31305339/31304218
/oraru/31326369/31305339/31335188
# vi /tmp/patch_list_dbhome.txt
/oraru/31326369/31305339/31281355
/oraru/31326369/31305339/31305087
[grid]$ $ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt
[oracle]$ $ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_dbhome.txt
# rm -f /tmp/patch_list_dbhome.txt /tmp/patch_list_gihome.txt

RAC各节点滚动应用GI+DB RU

此操作需要停集群服务,允许滚动应用补丁,先操作一个节点,其他节点提供服务,这个节点操作完成启动成功可对外服务后,再依次操作其他节点。

# export ORACLE_HOME=/u01/app/19.0.0/grid
# export PATH=$PATH:$ORACLE_HOME/OPatch
# opatchauto apply /oraru/31326369/31305339

第一个节点大约20分钟,执行完成无报错且集群服务和数据库启动正常,在第二个节点执行opatchauto,第二个节点大约30分钟,执行完成无报错且集群服务和数据库启动正常。

RAC在其中一个节点执行datapatch -verbose

[oracle]$ cd $ORACLE_HOME/OPatch
[oracle]$ ./datapatch -verbose

RAC在其中一个节点执行utlrp.sql

[oracle]$ cd $ORACLE_HOME/rdbms/admin
[oracle]$ sqlplus / as sysdba
SQL> @utlrp.sql

GI+DB RU安装后检查

[grid]$ opatch lspatches
31335188;TOMCAT RELEASE UPDATE 19.0.0.0.0 (31335188)
31305087;OCW RELEASE UPDATE 19.8.0.0.0 (31305087)
31304218;ACFS RELEASE UPDATE 19.8.0.0.0 (31304218)
31281355;Database Release Update : 19.8.0.0.200714 (31281355)
OPatch succeeded.
[oracle]$ opatch lspatches
31305087;OCW RELEASE UPDATE 19.8.0.0.0 (31305087)
31281355;Database Release Update : 19.8.0.0.200714 (31281355)
30484981;OJVM RELEASE UPDATE: 19.6.0.0.200114 (30484981)
OPatch succeeded.
SQL> set line 300
SQL> select status,description from dba_registry_sqlpatch;
STATUS DESCRIPTION
------------------------- ----------------------------------------------------------
SUCCESS OJVM RELEASE UPDATE: 19.6.0.0.200114 (30484981)
SUCCESS Database Release Update : 19.6.0.0.200114 (30557433)
SUCCESS Database Release Update : 19.8.0.0.200714 (31281355)

应用JAVAVM RU,此过程需要停库,需协调停业务时间

不停机应用JAVAVM RU,参考:https://www.modb.pro/db/31767

检查补丁冲突

[oracle]$ cd /oraru/31326369/31219897
[oracle]$ opatch prereq CheckConflictAgainstOHWithDetail -ph ./

依次关闭RAC的各个实例并应用补丁

[oracle]$ sqlplus / as sysdba
SQL> shutdown immediate
[oracle]$ cd /oraru/31326369/31219897
[oracle]$ opatch apply

关闭最后一个实例前修改cluster_database=false

[oracle]$ sqlplus / as sysdba
SQL> alter system set cluster_database=false scope=spfile;
SQL> shutdown immediate
[oracle]$ cd /oraru/31326369/31219897
[oracle]$ opatch apply

RAC所有节点opatch apply完成无报错后,在其中一个节点以UPGRADE模式启动数据库

[oracle]$ sqlplus / as sysdba
SQL> STARTUP UPGRADE
SQL> alter pluggable database all open upgrade;
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED MIGRATE YES
3 PDB MIGRATE YES

RAC其中一个节点执行datapatch -verbose

[oracle]$ cd $ORACLE_HOME/OPatch
[oracle]$ ./datapatch -verbose

datapatch -verbose执行成功无报错后,修改参数cluster_database=true并关闭此节点,启动数据库

[oracle]$ sqlplus / as sysdba
SQL> alter system set cluster_database=true scope=spfile;
SQL> shutdown immediate
[oracle]$ srvctl start database -d orcl

补丁安装后检查

[grid]$ opatch lspatches
[oracle]$ opatch lspatches
SQL> set line 300
SQL> select status,description from dba_registry_sqlpatch;

至此,GI+DB+JAVAVM RU 19.8.0.0.0.200714 安装完美收官,如有操作错误请留言。



推荐阅读
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 在本地环境中部署了两个不同版本的 Flink 集群,分别为 1.9.1 和 1.9.2。近期在尝试启动 1.9.1 版本的 Flink 任务时,遇到了 TaskExecutor 启动失败的问题。尽管 TaskManager 日志显示正常,但任务仍无法成功启动。经过详细分析,发现该问题是由 Kafka 版本不兼容引起的。通过调整 Kafka 客户端配置并升级相关依赖,最终成功解决了这一故障。 ... [详细]
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
  • Java中不同类型的常量池(字符串常量池、Class常量池和运行时常量池)的对比与关联分析
    在研究Java虚拟机的过程中,笔者发现存在多种类型的常量池,包括字符串常量池、Class常量池和运行时常量池。通过查阅CSDN、博客园等相关资料,对这些常量池的特性、用途及其相互关系进行了详细探讨。本文将深入分析这三种常量池的差异与联系,帮助读者更好地理解Java虚拟机的内部机制。 ... [详细]
  • 深入浅析JVM垃圾回收机制与收集器概述
    本文基于《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》的阅读心得进行整理,详细探讨了JVM的垃圾回收机制及其各类收集器的特点与应用场景。通过分析不同垃圾收集器的工作原理和性能表现,帮助读者深入了解JVM内存管理的核心技术,为优化Java应用程序提供实用指导。 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 本文详细解析了Java类加载系统的父子委托机制。在Java程序中,.java源代码文件编译后会生成对应的.class字节码文件,这些字节码文件需要通过类加载器(ClassLoader)进行加载。ClassLoader采用双亲委派模型,确保类的加载过程既高效又安全,避免了类的重复加载和潜在的安全风险。该机制在Java虚拟机中扮演着至关重要的角色,确保了类加载的一致性和可靠性。 ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
author-avatar
beng83790si
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有