无法在 Oracle 10g 中创建临时文件

无法在 Oracle 10g 中创建临时文件

我的磁盘已满,因此我删除了 oracle 临时文件以释放空间。我使用 oragle 10g 和 CentOS 版本 4.4 操作系统。

首先搜索临时文件

SELECT tablespace_name, file_name, bytes FROM dba_temp_files WHERE tablespace_name = 'TEMP';

删除临时文件(6 个文件)

alter database TEMPFILE '/oracle/oradata/ral/temp0X.dbf' drop including datafiles;

但现在我无法创建一个文件

ALTER TABLESPACE temp ADD TEMPFILE '/oracle/oradata/ral/temp01.dbf' SIZE 512m AUTOEXTEND ON NEXT 250m MAXSIZE 2048m;

ERROR

ALTER TABLESPACE temp ADD TEMPFILE '/oracle/oradata/ral/temp01.dbf' SIZE 512m AUTOEXTEND ON NEXT 250m MAXSIZE 2048m
Informe de error:
Error SQL: ORA-01119: error create database file '/oracle/oradata/ral/temp01.dbf'
ORA-27044: no se ha podido escribir el bloque de cabecera del archivo
Linux-x86_64 Error: 28: No space left on device
Additional information: 3
01119. 00000 -  "error in creating database file '%s'"
*Cause:    Usually due to not having enough space on the device.
*Action:

我有可用空间,但无法创建文件。问题是什么?

提前致谢

答案1

在盒子上运行df——您的磁盘可能没有可用的空间。

请参阅有关 Oracle 未释放磁盘空间的相关 StackOverflow 答案:https://stackoverflow.com/questions/9432465/reclaim-the-space-after-a-large-delete-in-oracle

答案2

默认情况下,为系统(root用户)保留一定数量的空间。

下面的操作将保留空间设置为 0 块,这样所有可用空间都可以供用户(以及 Oracle)使用。

tune2fs -m 0 /dev/sdb1

sdb1用有问题的设备进行替换。

现在运行df应该可以确认该空间确实可供使用。

在根文件系统或 /var 文件系统上这可能不建议使用,同时也要知道,由于碎片化,完全填满任何 ext 文件系统可能会导致性能问题。

相关内容