Oracle 19.16创建PDB出现选项匹配告警/错误的处理咨询
关于PDB创建后PDB_PLUG_IN_VIOLATIONS告警的处理
是否需要关注这些告警
- 如果目标PDB确实不需要JavaVM、XML相关选项,这些版本不匹配的告警/错误无需过度关注,不会影响PDB的核心功能使用,但要确认两点:
- PDB后续不会启用这些选项,否则版本不匹配会导致功能异常
- PDB的核心业务完全不依赖Java、XML相关组件
- 若后续计划启用这些选项,必须先解决版本匹配问题,否则会出现组件加载失败、业务报错等问题。
如何清除这些告警
方法1:卸载PDB中不需要的组件(推荐)
如果确认PDB永远不会用到JavaVM、XML组件,可以直接卸载对应组件,从根源消除告警:
- 切换到目标PDB:
ALTER SESSION SET CONTAINER=TEST_DB; - 卸载JavaVM组件(需先卸载依赖它的CATJAVA):
@$ORACLE_HOME/javavm/install/removejavavm.sql - 卸载XML组件:
@$ORACLE_HOME/rdbms/admin/catnoxml.sql - 重新编译PDB中的无效对象:
@$ORACLE_HOME/rdbms/admin/utlrp.sql - 再次查询
PDB_PLUG_IN_VIOLATIONS,确认告警已清除。
方法2:标记告警为已解决(仅适用于确认无影响的场景)
如果暂时不想卸载组件,只是想清除告警记录,可以执行以下操作标记违规为已处理:
- 切换到目标PDB:
ALTER SESSION SET CONTAINER=TEST_DB; - 更新视图标记违规状态:
UPDATE PDB_PLUG_IN_VIOLATIONS SET STATUS='RESOLVED' WHERE TYPE IN ('WARNING','ERROR') AND NAME IN ('JAVAVM','CATJAVA','XML'); COMMIT;
注意:此方法只是标记告警为已解决,并未实际修复版本不匹配问题,后续若启用相关组件仍会出现问题。
方法3:同步组件版本(如果后续需要启用组件)
若后续计划使用这些组件,需将PDB的组件版本与CDB同步:
- 切换到目标PDB:
ALTER SESSION SET CONTAINER=TEST_DB; - 启用JavaVM选项:
ALTER PLUGGABLE DATABASE OPEN UPGRADE; @$ORACLE_HOME/javavm/install/addjavavm.sql - 启用XML选项:
@$ORACLE_HOME/rdbms/admin/catxml.sql - 关闭并重新打开PDB:
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE; ALTER PLUGGABLE DATABASE OPEN; - 重新编译无效对象并检查告警:
@$ORACLE_HOME/rdbms/admin/utlrp.sql SELECT * FROM PDB_PLUG_IN_VIOLATIONS WHERE STATUS<>'RESOLVED';
内容的提问来源于stack exchange,提问作者Alex1__1
相关产品推荐
相关产品推荐

