无法在大文件表空间中添加文件

无法在大文件表空间中添加文件,第1张

细节

由于大文件空间只能存储字符或二进制数据,不能存储任何其他类型的文件。因此,无法在大文件表空间中添加文件。另外,大文件表空间只能存储大文件,不能存储小文件。因此,如果要添加文件,必须使用普通表空间。

当通过ORACLE中的create table ... as select 语句创建一张新表时,新表的数据量为比较大,如10亿,这时SQL*Plus很可能就会提示“ORA-01653: ...”错误信息。这个错误信息暗示表空间大小不够,需要为表空间增加数据文件。

分析:

1. 查询表空间剩余字节大小

SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024 AS FREE SPACE(M)

FROM DBA_FREE_SPACE

WHERE TABLESPACE_NAME = '&tablespace_name'

GROUP BY TABLESPACE_NAME

注:如果是临时表空间,请查询DBA_TEMP_FREE_SPACE

SELECT TABLESPACE_NAME, FREE_SPACE/1024/1024 AS FREE SPACE(M)

FROM DBA_TEMP_FREE_SPACE

WHERE TABLESPACE_NAME = '&tablespace_name'

2. 如果不知道表空间数据文件目录规划,可以先查询出表空间所有数据文件

SELECT TABLESPACE_NAME, FILE_ID, FILE_NAME, BYTES/1024/1024 AS BYTES(M)

FROM DBA_DATA_FILES

WHERE TABLESPACE_NAME = '&tablespace_name'

注:如果是临时表空间,请查询DBA_TEMP_FILES

SELECT TABLESPACE_NAME, FILE_ID, FILE_NAME, BYTES/1024/1024 AS SPACE(M)

FROM DBA_TEMP_FILES

WHERE TABLESPACE_NAME = '&tablespace_name'

3. 为空间不足的表空间增加数据文件

ALTER TABLESPACE &tablespace_name ADD DATAFILE '&datafile_name' SIZE 2G

注:如果要为临时表空间扩容,使用下面的语句


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11429039.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存