Oracle XE 18c PDB无法打开报错ORA-00604/ORA-01405如何处理
错误根因
该报错是APEX安装中断导致Oracle数据字典核心元数据出现非法空值,属于PDB层级的系统表损坏,常规的状态切换命令无法触发字典修复逻辑,所以启动时递归调用系统SQL会抛出空值读取错误。
可行修复方案
方案1:尝试强制启动修复
- 使用sysdba权限连接到CDB根容器,执行命令允许字典错误场景下启动:
ALTER SYSTEM SET "_allow_errors_in_dictionary"=TRUE SCOPE=SPFILE;
- 重启CDB实例:
SHUTDOWN IMMEDIATE; STARTUP;
- 强制以受限模式打开PDB:
ALTER PLUGGABLE DATABASE XEPDB1 OPEN FORCE RESTRICTED;
- 如果PDB成功打开,执行APEX官方卸载脚本清理残留的损坏安装记录:
@?/apex/apxremov.sql
- 修复完成后重置修改的隐藏参数,重启实例验证功能:
ALTER SYSTEM RESET "_allow_errors_in_dictionary" SCOPE=SPFILE SID='*'; SHUTDOWN IMMEDIATE; STARTUP; ALTER PLUGGABLE DATABASE XEPDB1 OPEN;
方案2:重装XE 18c
如果方案1执行后仍然无法打开PDB,重装是最有效的解决方式:
- 无需保留XEPDB1内数据的场景:直接卸载当前XE 18c实例,卸载过程会完全删除所有损坏的数据文件、字典记录,重装后会生成全新的CDB和默认PDB实例,问题完全解决。
- 需要保留PDB内数据的场景:重装无法直接恢复原有数据,需先通过底层数据文件挂载做不完全恢复,操作复杂度高,无运维经验不建议尝试。
内容的提问来源于stack exchange,提问作者nickelodeon
相关产品推荐
相关产品推荐

