29

召集所有 Oracle 大师!

我正在对 WebSphere 上经过良好测试的应用程序进行集群处理。在此之前,有问题的应用程序从队列中处理了 1k 条 JMS 消息大约完成了一半。

---- Begin backtrace for Nested Throwables
java.sql.SQLException: ORA-01654: unable to extend index DABUAT.INDEX1 by 128 in tablespace DABUAT_TBLSP

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)

我在网上快速浏览了一下,发现了一些关于为什么会发生这种情况的可能建议,如果有人能清楚地解释为什么现在我的应用程序已经被集群化了,我将不胜感激。

问候卡尔

4

3 回答 3

46

您的磁盘空间不足。

增加你的TABLESPACE

ALTER TABLESPACE DABUAT_TBLSP
ADD DATAFILE 'C:\FolderWithPlentyOfSpace\DABUAT_TBLSP001.DBF' 
SIZE 4M
AUTOEXTEND ON NEXT 4M
MAXSIZE 64G;

-- Put your own size parameters here
于 2009-04-20T16:08:36.643 回答
1

如果您使用的是 ASM,那么您可以添加以下评论

您可以运行以下命令来获取数据文件的大小

SELECT
    file_name,
    bytes / 1024 / 1024 mb
FROM
    dba_data_files
WHERE
    tablespace_name = 'APP_DATA'
ORDER BY
    file_name;


FILE_NAME mb
------------------------------------------------------------ -------
+DATA/SID/datafile/app_data.dbf 20000
+DATA/SID/datafile/app_data.dbf 28100

调整大小和添加

+DATA/path/indx_operational_00.dbf

alter database datafile '+DATA/path/indx_operational_00.dbf' resize 3000m;
于 2018-08-18T11:34:42.030 回答
0

我发现这个问题在将大型数据库的一小部分迁移到 Docker 中的测试数据库时有同样的错误。

在我的情况下,问题只是将系统表空间用于用户表,这是 Oracle 映像中的默认设置。使用命令创建自定义表空间后

create tablespace mytablespace datafile '/u01/app/oracle/oradata/XE/mytablespace.dbf' size 500M autoextend on next 250M maxsize 10G;` 

(以及在该表空间中创建所有表和索引)问题消失了。不需要特别摆弄数据文件。

于 2021-06-08T17:30:50.297 回答