首页 > 解决方案 > 无法从 CDB 容器中删除 PDB 快照

问题描述

我正在使用带有 PDB 技术的 Oracle 18c。我不小心从文件系统中删除了其中一个 .dbf 数据文件。这对我来说没问题,因为我可以通过添加新的 PDB 快照来重新创建数据库。但是,旧的 PDB 在“mounted open read write”状态下仍然可见,我基本上不能用它做任何事情:

  1. 我无法将会话/登录切换到损坏的 PDB
  2. 我无法关闭它
  3. 我无法通过键入 alter pluggable database xx... 来删除它,因为它仍然处于打开状态。
  4. 我无法恢复旧数据文件 - 没有可用的备份。

是否有任何选项可以强制在这种状态下删除 PDB 而无需关闭整个容器 (CDB)?

标签: databaseoraclepdboracle18c

解决方案


您可以试试这个(在 18.3 上成功测试 NOARCHIVELOG pdb 后删除 SYSTEM 数据文件):

alter session set container=cdb$root;
alter system set "_enable_pdb_close_noarchivelog"=true;
alter pluggable database MYPDB close abort;
drop pluggable database MYPDB including datafiles;

推荐阅读