Oracle 19c 补丁升级引发的单表恢复失败谜案

问题表现

某客户在恢复 Oracle 数据库的单表时,提示类似下面的信息:

.......

Creating automatic instance, with SID='<oracle_sid>'

initialization parameters used for automatic instance:
db_name=<db_name>
db_unique_name=<db_unique_name>
compatible=19.0.0
db_block_size=8192
db_files=200
diagnostic_dest=<path>
_system_trig_enabled=FALSE
sga_target=2560M
processes=200
db_create_file_dest=<path>
log_archive_dest_1='location=<path>'
#No auxiliary parameter file used


RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 04/12/2020 08:16:32
RMAN-04025: unable to generate a temporary file

问题分析

初步怀疑是客户的文件系统空间或权限的问题,造成 auxiliary 数据库的写出现了问题,但仔细检查却没有发现这方面的问题,感到很困惑!
经过在各大论坛查找,有提示说 Windows 平台下的一个补丁没有打完整会出现这种情况,但出现问题的客户平台是 Linux 平台,但这毕竟是一个线索!
立刻检查一下 Oracle 软件的补丁情况:

$ ./opatch lspatches
31281355;Database Release Update : 19.8.0.0.200714 (31281355)
31219897;OJVM RELEASE UPDATE: 19.8.0.0.200714 (31219897)
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)

OPatch succeeded.

再检查一下 Oracle 数据库的补丁情况

SQL> set linesize 200
SQL>  select patch_id,action,status,SOURCE_VERSION,TARGET_VERSION from dba_registry_sqlpatch;
  PATCH_ID ACTION          STATUS                    SOURCE_VERSION  TARGET_VERSION
---------- --------------- ------------------------- --------------- ---------------
  29517242 APPLY           SUCCESS                   19.1.0.0.0      19.3.0.0.0

发现 Oracle 软件的补丁和数据库的补丁不一致!!!

经过和客户的 DBA 沟通得知,上一周客户刚将 Oracle 软件从 19.3.0.0 升级 19.8.0.0,很显然上次客户在给 Oracle 打补丁的时候,DBA 没有执行 datapatch 修改数据库的 sql 文件。

问题解决

执行 datapatch:

[oracle@dell OPatch]$ ./datapatch -verbose
SQL Patching tool version 19.8.0.0.0 Production on Fri Sep 18 16:53:54 2020
Copyright (c) 2012, 2020, Oracle.  All rights reserved.

Log file for this invocation: /opt/oracle/cfgtoollogs/sqlpatch/sqlpatch_1376_2020_09_18_16_53_54/sqlpatch_invocation.log

Connecting to database...OK
Gathering database info...done
.......
SQL Patching tool complete on Fri Sep 18 16:54:53 2020
[oracle@dell OPatch]$

确认补丁版本:

SQL>  select patch_id,action,status,SOURCE_VERSION,TARGET_VERSION from dba_registry_sqlpatch;

  PATCH_ID ACTION          STATUS                    SOURCE_VERSION  TARGET_VERSION
---------- --------------- ------------------------- --------------- ---------------
  31219897 APPLY           SUCCESS                   19.1.0.0.0      19.1.0.0.0
  31281355 APPLY           SUCCESS                   19.1.0.0.0      19.8.0.0.0

SQL>

再次执行 Oracle 数据库的单表恢复,成功!!!

思考

有的 DBA 抱怨,Oracle 为什么不把 Datapatch 和 OPatch 合并到一起执行,但实际上把这两者合并在一起是有困难的。因为 OPatch 在数据库关闭时执行,而 Datapatch 要求数据库是打开以完成其活动。
但opatchauto这个工具可以自动完成这个两项工作,中间还会打开数据库,但我实际使用时发现它不会把pdb打开,并在pdb里面执行sql文件,这应该是Oracle的bug。

姚远ACE CSDN认证博客专家 ACE 华为云 MVP
Oracle ACE,华为云 MVP,Oracle10g,12c OCM; MySQL 5.6,5.7,8.0 OCP;CCNA; EMC Certified; IBM P Certified; RHCE; SQLServer 764; DB2 Certified; TOEIC 890;获得过两次国家部级科技进步奖;发明过两项计算机专利。微信:yaoyuanace 邮箱:yaoyuanace(at)qq.com
已标记关键词 清除标记
<p style="font-size:16px;"> 在本地自己操作系统上,完全模拟生产环境,让学员跟着视频一步一步搭建一套在RHEL7操作系统上面oracle19crac环境。同时学员还会学会DNS服务器,DNS客户端,NTP服务器,NTP客户端等操作系统知识。让学员在短时间内,oracle和操作系统知识,有一定提升。让学员可以独自轻松安装一套oracle rac环境。 </p> <p style="font-size:16px;"> <span style="color:#FF0000;">一课程主题</span> </p> <p style="font-size:16px;"> 模拟生产环境,用多路径共享存储,用虚拟软件安装一套RHEL7.5+oracle19c+rac+打补丁 </p> <p style="font-size:16px;"> <br /> </p> <p style="font-size:16px;"> <span style="color:#FF0000;">二课程特色</span> </p> <ol style="font-size:16px;"> <li> <p> 完成模拟生产环境,用openfiler软件模拟生产惠普3par存储,用2个虚拟网卡模拟数据库服务器2个HBA卡。 </p> </li> <li> <p> 课程以实践为主,从头到尾一步一步教学员怎样操作,实践性强 </p> </li> <li> <p> 模拟生产需求,完全可以把这套环境拿到生产环境安装 </p> <p> <br /> </p> </li> </ol> <p style="font-size:16px;"> <span style="color:#FF0000;">三课程内容</span> </p> <p style="font-size:16px;"> <span style="color:#FF0000;"></span> </p> <p style="font-size:16px;"> <span style="color:#FF0000;"></span> </p> <p style="font-size:16px;"> <span style="color:#FF0000;">1.课程结束成果演示</span> </p> <p style="font-size:16px;"> <span style="color:#FF0000;">  <span style="color:#000000;"> 1.1 用workstation,安装一套rhel7+oracle19c+rac+multipath+共享存储+DNS服务器+DNS客户端+NTP服务器+NTP客户端生产环境</span></span> </p> <p style="font-size:16px;">    1.2 怎样打oracle19crac补丁(包括GI补丁oracle补丁,数据库补丁,OJVM补丁,bug补丁) </p> <p style="font-size:16px;"> <br /> </p> <p style="font-size:16px;"> <span style="color:#FF0000;">2.安装openfiler软件,模拟共享存储+配置多路径访问</span> </p> <p style="font-size:16px;"> <span style="color:#FF0000;">   </span>2.1安装openfiler软件 </p> <p style="font-size:16px;">    2.2配置openfiler软件(配置2个虚拟网卡,模拟服务器2个HBA卡) </p> <p style="font-size:16px;">    2.3创建ocr磁盘 </p> <p style="font-size:16px;">    2.4创建mgmt磁盘 </p> <p style="font-size:16px;">    2.5创建数据文件磁盘 </p> <p style="font-size:16px;">    2.6创建归档日志磁盘 </p> <p style="font-size:16px;"> <br /> </p> <p style="font-size:16px;"> <span style="color:#FF0000;">3.安装2台数据库服务器</span> </p> <p style="font-size:16px;">    3.1安装2台数据库服务器RHEL7.5 </p> <p style="font-size:16px;">    3.2配置服务器双网卡绑定+配置服务器心跳线 </p> <p style="font-size:16px;"> <br /> </p> <p style="font-size:16px;"> <span style="color:#FF0000;">4.安装多路径软件识别共享存储中磁盘</span> </p> <p style="font-size:16px;">     4.1安装服务器本地yum源 </p> <p style="font-size:16px;">     4.2安装iscsi软件,配置多路径配置文件,识别共享存储中磁盘 </p> <p style="font-size:16px;">     4.3识别ocr磁盘 </p> <p style="font-size:16px;">     4.4识别mgmt磁盘 </p> <p style="font-size:16px;">     4.5识别数据文件磁盘 </p> <p style="font-size:16px;">     4.6识别归档日志磁盘 </p> <p style="font-size:16px;"> <br /> </p> <p style="font-size:16px;"> <span style="color:#FF0000;">5.oracle19crac环境系统参数官方说明</span> </p> <p style="font-size:16px;">     5.1如何配置oracle19crac系统参数(我们参考官方说明) </p> <p style="font-size:16px;">     5.2oracle19c+rac环境Best Practices 官方说明文档 </p> <p style="font-size:16px;"> <br /> </p> <p style="font-size:16px;"> <span style="color:#FF0000;">6.安装oracle19c+rac之前准备工作</span> </p> <p style="font-size:16px;">     6.1修改/etc/hosts文件 </p> <p style="font-size:16px;">     6.2配置DNS服务器+DNS客户端+NTP服务器+NTP客户端 </p> <p style="font-size:16px;">     6.3创建用户和组 </p> <p style="font-size:16px;">     6.4创建目录 </p> <p style="font-size:16px;">     6.5修改用户环境变量 </p> <p style="font-size:16px;">     6.6安装相关软件包 </p> <p style="font-size:16px;">     6.7配置ssh互信 </p> <p style="font-size:16px;">     6.9禁用服务器透明大页 </p> <p style="font-size:16px;"> <br /> </p> <p style="font-size:16px;"> <span style="color:#FF0000;">7.安装oracle+19c+rac软件</span> </p> <p style="font-size:16px;">    7.1安装GI软件 </p> <p style="font-size:16px;">    7.2创建ASM磁盘,主要是数据文件磁盘和归档日志磁盘 </p> <p style="font-size:16px;">    7.3安装数据库软件 </p> <p style="font-size:16px;">    7.4创建数据库实例 </p> <p style="font-size:16px;">    7.5日常常用维护集群命令(启停数据库,启停集群,查看监听,教同学们怎样不死记命令,而且命令还正确) </p> <p style="font-size:16px;"> <br /> </p> <p style="font-size:16px;"> <span style="color:#FF0000;">8.打补丁</span> </p> <p style="font-size:16px;">   8.1打GI和ORACLE操作系统补丁 </p> <p style="font-size:16px;">   8.2打OJVM补丁 </p> <p style="font-size:16px;">   8.3打ORA600bug补丁 </p> <p style="font-size:16px;"> <br /> </p> <p style="font-size:16px;"> <span style="color:#FF0000;">9.课程总结和成果演示</span> </p> <p style="font-size:16px;"> <span style="color:#FF0000;"> <span style="color:#000000;">9.1课程总结和成果演示</span></span> </p> <p style="font-size:16px;"> <span style="color:#FF0000;"><br /> </span> </p> <p style="font-size:16px;"> <span style="color:#FF0000;">四学习必要工具</span> </p> <ol style="font-size:16px;"> <li> <p> 安装workstation软件   </p> </li> <li> <p> 官网下载openfiler,rhel7.5软件 </p> </li> <li> <p> 下载oracle软件(包括19.3rac安装包,19.4补丁) </p> <p> 以上软件我都已经在视频里面做了下载地址说明 </p> </li> </ol> <p> <span style="font-size:16px;color:#E53333;"><br /> </span> </p> <p> <span style="font-size:16px;color:#E53333;">五课程纠错</span><br /> 1)rac私有ip应该是不同网段,我在视频中设置错误。<br /> Ensure all private Ethernet interfaces are set to different subnets on each node. If different <br /> subnets are not used and connectivity is lost, this can cause a node reboot within the cluster<br /> <br /> 2)配置好multipath,以及多路径别名后,还要增加如下配置文件。<br /> [root@hellorac1 rules.d]# cat /etc/udev/rules.d/99-persistent.rules<br /> ENV{DM_NAME}=="ocr", OWNER:="grid", GROUP:="asmadmin", MODE:="660"<br /> ENV{DM_NAME}=="mgmt", OWNER:="grid", GROUP:="asmadmin", MODE:="660"<br /> ENV{DM_NAME}=="arch", OWNER:="grid", GROUP:="asmadmin", MODE:="660"<br /> ENV{DM_NAME}=="data", OWNER:="grid", GROUP:="asmadmin", MODE:="660"<br /> <br /> 上面配置文件增加成功后,运行如下命令:<br /> #udevadm control --reload-rules<br /> #/sbin/udevadm trigger --type=devices --action=change<br /> <br /> 执行完成之后,会发现/dev/dm*相应磁盘权限变成grid.asmadmin. <br /> 视频中只运行了udevadm control --reload-rules。<br /> <br /> 3)安装GI部分1和部分2,先看部分2,再看部分1.<br /> <br /> <br /> 特此纠正上面3个错误。<br /> 谢谢大家支持和厚爱。 </p>
相关推荐
<p class="MsoNormal"> <span style="font-family:宋体;font-size:16.5000pt;"><span style="font-family:宋体;">  数据库操作是软件行业人员必备技能,这门视频教学课程主要是针对从事软件技术新人,适合在校大学生、准备转行到</span>IT行业新人、软件公司新入职员工。这门课程主要涉及Oracle数据库基础操作和SQL语法,因为绝大部分软件技术人员掌握这些就可以了,数据库大部分功能,我们平时是用不到,所以不用花太多时间去研究。把这门课程里面内容学会,足以胜任日常性数据库相关工作。</span><span style="font-family:宋体;font-size:16.5000pt;"><br /> </span><span style="font-family:宋体;font-size:16.5000pt;">  这门视频教学课程不是针对DBA培训课程,从事DBA工作人在软件行业人员占比不高,就业面不太广,有做DBA志向同学可以到专门培训机构学习OracleOCA、OCP、OCM课程,他们有针对应试培训内容,他们也可以安排相应考试,考试通过后会有相应证书,这门课程更偏向编程应用,不是面向Oracle认证考试。 </span><span style="font-family:宋体;font-size:12.0000pt;"><br /> </span><span style="font-family:宋体;font-size:16.5000pt;">  我对Oracle数据库有十几年使用经验,我们公司数据库是Oracle数据库,基本上每天编程工作都要写SQL语句,公司历史数据比较多,需要通过编写SQL语句来进行查询处理,有两年时间,我工作就是编写Oracle数据库存储过程。</span><span style="font-family:宋体;font-size:16.5000pt;"><br /> </span><span style="font-family:宋体;font-size:16.5000pt;">  这个视频教学课程使用Oracle 19c版本数据库进行讲解。每节课程都结合工作实际,都是干货,都经过认真准备,相信可以给大家带来很大帮助。</span> </p>
<p> <b><span style="background-color:#FFE500;">【超实用课程内容】</span></b> </p> <p> <br /> </p> <p> <br /> </p> <p> 本课程内容包含讲解<span>解读Nginx基础知识,</span><span>解读Nginx核心知识、带领学员进行</span>高并发环境下Nginx性能优化实战,让学生能够快速将所学融合到企业应用中。 </p> <p> <br /> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b><br /> </b> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b><span style="background-color:#FFE500;">【课程如何观看?】</span></b> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> PC端:<a href="https://edu.csdn.net/course/detail/26277"><span id="__kindeditor_bookmark_start_21__"></span></a><a href="https://edu.csdn.net/course/detail/27216">https://edu.csdn.net/course/detail/27216</a> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 移动端:CSDN 学院APP(注意不是CSDN APP哦) </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 本课程为录播课,课程永久有效观看时长,大家可以抓紧时间学习后一起讨论哦~ </p> <p style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <br /> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <strong><span style="background-color:#FFE500;">【学员专享增值服务】</span></strong> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b>源码开放</b> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 下载方式:电脑登录<a href="https://edu.csdn.net/course/detail/26277"></a><a href="https://edu.csdn.net/course/detail/27216">https://edu.csdn.net/course/detail/27216</a>,播放页面右侧点击课件进行资料打包下载 </p> <p> <br /> </p> <p> <br /> </p> <p> <br /> </p>
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页