无法从 CDB 容器中删除 PDB 快照

Cannot remove PDB snapshot from CDB container

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

  1. 我无法切换 session/login 到损坏的 PDB
  2. 我无法关闭它
  3. 我无法通过键入 alter pluggable database 来删除它 xx... 因为它还在营业。
  4. 我无法恢复旧的数据文件 - 没有可用的备份。

是否有任何选项可以在不关闭整个容器 (CDB) 的情况下强制删除处于这种状态的 PDB?

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

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;

非常感谢!将“_enable_pdb_close_noarchivelog”更改为 true 后,即使处于损坏状态也可以强制关闭 PDB 数据库。非常好用,谢谢大家的回答。