【问题标题】:Cannot start Oracle-XE 18c due to being full由于已满,无法启动 Oracle-XE 18c
【发布时间】:2020-11-23 06:40:06
【问题描述】:

我无法在 oracel 18c xe 中启动容器,当使用命令“Alter Database Open”时出现错误

“ORA-12954:请求超过了允许的最大数据库大小 12 GB”

在搜索互联网时,我发现了一种方式

“唯一的方法是将 XE 数据文件附加到“辅助”Oracle 18c 主目录中”

但我无法理解如何仅将 xe 数据库中的单个表空间挂载到家庭版本中,并从表空间中删除不需要的内容以释放空间。对此的任何帮助表示赞赏

【问题讨论】:

  • 您至少应该转到标准版。或者从当前 XE 安装中删除您不需要的任何数据。 XE 用于测试目的,11gb 是限制
  • @Roberto Hernandez 感谢您的回复,我无法删除任何数据,因为数据库无法启动,这就是问题所在。我发现的方法是以某种方式“将 XE 数据文件附加到“辅助”Oracle 18c 主目录中”,问题是如果我从 XE 获取表空间文件并将其附加到标准数据库中,它不会显示我的任何架构或任何其他东西那么当我什至什么都看不到时,如何从表空间中删除数据
  • 您是否对 XE 数据库中的大文件表空间进行了任何更改?当您尝试挂载数据库或尝试打开数据库时,您是否收到错误消息?
  • 看看this piece by Flavio Casetta。当限制只有 4GB 时,他为旧版本的 XE 编写了它,但它提供了一些技术来调查您的情况并(幸运地)解决它。

标签: oracle oracle-xe oracle18c


【解决方案1】:

Oracle XE 中存在一个错误,它允许在容器数据库中创建 BigFile 表空间,并且其增长超出 Oracle Express Edition 施加的数据库大小限制。该错误已在 19.1.0 版本中修复。

很遗憾,这个错误没有解决方法。

您可以尝试在离线状态下打开带有问题表空间的数据库并执行以下操作:

1.以挂载状态启动数据库

SQL> STARTUP MOUNT 

2.将表空间置于离线状态,

SQL> ALTER TABLESPACE xxxxx OFFLINE IMMEDIATE; 

3.打开数据库

SQL> ALTER DATABASE OPEN ;

在此状态下,有问题的表空间处于脱机状态,因此您无法访问其上的任何元素。如果可能,从其他表空间(USERS 等)中删除您不需要的所有内容,并将其他表空间调整为较小的大小(UNDO、TEMP、SYSTEM)。然后,也尝试调整有问题的数据文件的大小(如果数据超出 HWM 将无法工作)。

最后把离线的表空间重新上线,看看数据库的总大小是否低于限制。然后尝试打开数据库。

【讨论】:

  • 感谢您的详细回答,但是占据最大空间的表空间是 USERS 表空间,除此之外所有的表空间都只是系统,例如 sysaux , undotbs 等,我尝试离线用户表空间但我仍然得到同样的错误
  • 另外我想在链接community.oracle.com/thread/4318928 上提到一个人提到“唯一的方法是将 XE 数据文件附加到“辅助”Oracle 18c 主页中”你能帮我解决这个问题吗可以实现,即我在其他系统上有一个家庭版数据库,但是我如何从 XE 附加数据文件,然后检查并从文件中删除内容
  • 您是否尝试将系统降到最低,将 undotbs 降到最低,将 temp 降到最低。这是你唯一的选择
  • 这就是问题,因为我无法打开包含这些 talespaces 的数据库容器,我可以从 CDBROOT 对 XEPDB1 容器表空间应用更改吗?
  • 您是否尝试打开容器并运行 ALTER SESSION SET CONTAINER = xxx,然后调整大小??你有你的数据库的备份吗??还是导出数据泵??
猜你喜欢
  • 1970-01-01
  • 2020-09-21
  • 1970-01-01
  • 2021-03-27
  • 2021-04-12
  • 2019-09-21
  • 2020-08-01
  • 2021-06-27
  • 1970-01-01
相关资源
最近更新 更多