美文网首页
459.【数据库】解决 oracle: ORA-01653: u

459.【数据库】解决 oracle: ORA-01653: u

作者: 七镜 | 来源:发表于2022-10-16 17:16 被阅读0次

最近在做 Star Schema Benchmark 测试,用到了 oracle 数据库,由于只是验证下数据集在 oracle 数据里查询结果的正确性,就简单处理,用docker 安装了一个 oracle 11g。一阵倒腾之后,出现了下面的错误:

 ORA-01653: unable to extend table *.LINEORDER by 1024 in tablespace SYSTEM

这个错误其实表示表空间的存储不够了,首先,我们需要检查一下表空间的大小:

SELECT a.tablespace_name "表空间名",
a.bytes / 1024 / 1024 "表空间大小(M)",
(a.bytes - b.bytes) / 1024 / 1024 "已使用空间(M)",
b.bytes / 1024 / 1024 "空闲空间(M)",
round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "占比"
FROM (SELECT tablespace_name, sum(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) a,
(SELECT tablespace_name, sum(bytes) bytes, max(bytes) largest
FROM dba_free_space
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
ORDER BY ((a.bytes - b.bytes) / a.bytes) DESC

接下来查看一下,表空间里包含几个数据文件:


SELECT file_name,
tablespace_name,
bytes / 1024 / 1024 "bytes MB",
maxbytes / 1024 / 1024 "maxbytes MB"
FROM dba_data_files
WHERE tablespace_name = 'SYSTEM';

接下来检查一下表空间自动扩展功能是否已经打开:

SELECT file_id, file_name, tablespace_name, autoextensible, increment_by
FROM dba_data_files
WHERE tablespace_name = 'SYSTEM'
ORDER BY file_id desc;

接下来找出该表空间对应的数据文件及路径:

SELECT * FROM dba_data_files t WHERE t.tablespace_name='SYSTEM';

解决办法:

增大数据文件到 10 G:

alter database datafile '/u01/app/oracle/oradata/XE/system.dbf' resize 10240M;  

相关文章

网友评论

      本文标题:459.【数据库】解决 oracle: ORA-01653: u

      本文链接:https://www.haomeiwen.com/subject/jnmlzrtx.html