如何解决12cRAC打补丁后PDB进入受限模式的问题

分类:编程技术 时间:2024-02-20 15:46 浏览:0 评论:0
0
本文主要讲解“如何解决12cRAC打补丁后PDB进入受限模式的问题”。文章中的解释简单明了,易于学习和理解。请大家按照小编的思路慢慢深入,一起研究学习。 《如何解决12cRAC打补丁后PDB进入受限模式的问题》!

1.环境描述

操作系统:Redhat 7.4

数据库:12cRAC 4节点

PDB数量:20多个

总体数据量:30T

RU:数据库 2023 年 1 月发布更新 12.2.0.1.200114

2.主要问题

在节点 1 上运行 datapatch verbose 后,其中一个 PDB 进入受限模式。

3.问题描述

晚上12点左右在节点1上运行./datapatch verbose,然后等待。 2小时后,终端启动反馈。

反馈信息为:20多个PDB已成功打补丁,无错误s。其余 3 个 PDB 和 CDB$ROOT 显示等待超时错误:

CDBROOT: ORA-04021: 等待锁定对象 SYS.DBMS_STATSPDB1:ORA-04021: 等待锁定对象 SYS 时发生超时。 DBMS_SPACE_ADMINORA-04021:等待锁定对象时发生超时 SYS.DBMS_STATSPDB2:ORA-04021:等待锁定对象时发生超时 SYS.DBMS_SPACE_ADMINORA-04021:等待锁定对象时发生超时 SYS.DBMS_SNAPSHOT_UTLPDB3:ORA-04021:超时发生waiting to lock object SYS.DBMS_STATS

然后数据库开始自动对这4个PDB进行datapatch,等了大约半小时,CDB$ROOT、PDB1、PDB2均显示NO er​​ros,补丁成功,PDB3失败,然后数据库自动结束打补丁。错误信息如下:

OACX:ORA-04021: timeout returned while After waiting to lock object SYS.DBMS_STATS

/datapatch verbose,检查PDB3日志。显示的 ORA 错误报告都有 IGNORED ERROR 标记。然后show pdbs查看PDB的状态,发现PDB3已经进入了受限状态。

关闭所有PDB后,只打开PDB3。尝试单独重新运行这个PDB3。/datapatch verbose:

Only Nothing to roll back Nothing to apply

检查DBA_REGISTRY_SQLPATCH视图,会显示PATCH的状态为WITH ERRORS (可重试)

4。问题分析

当时现场尝试重新打入并回滚PDB,结果全部显示Nothing to roll back Nothing to apply。然后我就提出了SR,请Oracle原厂的人来现场分析。他们以前从未遇到过这种情况。他们的建议是进入启动升级并重新运行datapatch,但情况还是一样。

通过查看具体日志,可能的原因是恰好是数据库自动收集统计信息的时间段SYS.DBMS_STATS被锁定,且PDB比较大,并且存在大量全文索引,导致PDB无法打补丁。

5.临时处理方法

PDB进入受限模式后,普通用户无法连接数据库,必须授予受限会话权限才能连接。此外,所有作业都无法自动运行。该解决方案是通过手动向所有业务用户授予受限会话并运行 crontab 作业来解决的。

6.最终解决方案

通过数据泵恢复测试库上的PDB,然后尝试通过SYS.DBMS_STATS包锁定收集整个数据库统计信息的方法后,然后运行datapatch,问题确实重现。最后,经过不断测试,我们发现这个问题可以通过以下方法修复:强制打补丁并指定补丁包号。

/datapatch -force -verbose-bundle_series 200114 -apply 30593149 -pdb PDB3

感谢您的阅读,以上是《如何解决12cRAC打补丁后PDB进入问题“限制模式问题”》,学习后这篇文章相信大家对如何解决12cRAC打补丁后PDB进入受限模式的问题有了更深入的了解,具体用法还需要实践验证,这里小编会为大家推送更多相关知识点的文章,欢迎关注!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何解决12cRAC打补丁后PDB进入受限模式的问题

用户评论