database - 无法从 CDB 容器中删除 PDB 快照
问题描述
我正在使用带有 PDB 技术的 Oracle 18c。我不小心从文件系统中删除了其中一个 .dbf 数据文件。这对我来说没问题,因为我可以通过添加新的 PDB 快照来重新创建数据库。但是,旧的 PDB 在“mounted open read write”状态下仍然可见,我基本上不能用它做任何事情:
- 我无法将会话/登录切换到损坏的 PDB
- 我无法关闭它
- 我无法通过键入 alter pluggable database xx... 来删除它,因为它仍然处于打开状态。
- 我无法恢复旧数据文件 - 没有可用的备份。
是否有任何选项可以强制在这种状态下删除 PDB 而无需关闭整个容器 (CDB)?
解决方案
您可以试试这个(在 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;
推荐阅读
- python - 如何在复杂数据框中将列分成多行?
- php - [Route: xyz] [URI: get_report/{start}/{end}] 缺少必需的参数
- php - 如何使用键值在多维数组中移动数组?
- javascript - axios 获取请求在 Edge 浏览器中不起作用
- google-chrome - CKEditor 4:粘贴 div 标签转换为 p 标签(Chrome)
- image - 在 Vue 中使用文件加载器有条件地渲染图像
- c# - 检查字符串是否只包含小写字母和符号
- react-native - 为什么 ESLint 在使用 flow 时会抛出错误?
- java - 列表中的特定组合
- javascript - 如何在 npm 包中添加文件夹作为条目?