视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ORA-01653:unabletoextendtableXbyYintablespace
2020-11-09 10:53:41 责编:小采
文档


最近几天遇到了好几次Oracle的这个问题了,场景不太一样而已(注意:标题上的Y的单位是KB):

最近几天遇到了好几次Oracle的这个问题了,场景不太一样而已(注意:标题上的Y的单位是KB):

1.insert into table1 values(...) select (...) from table2:(会占用temp tablespace,如果table2数据很大,temp tablespace不够大的话,可能会报出上面的问题)

2.update table1 set is_deleted='Y':(因为在table1上建有物化视图,而这个视图要新增对应的物化视图的log表,,由于这个log表对应的tablespace满了,导致上面的问题)

3.insert into table1 values(...):(最正常不过的insert语句,由于table1对应的tablespace满了,导致上面的问题)

在网上找了一下相关的资料,摘抄了下三个关键的sql记录一下,以备后面的不时之需:

•查询表空间相关信息

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

•查看表空间对应的datafile的信息

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

•查看表空间对应的datafile是否可以自动扩展(当然有些场景开启自动扩展功能可能会带来一些潜在的问题,所以不是所有的公司都开启这个)

SELECT file_id,
file_name,
tablespace_name,
autoextensible,
increment_by
FROM dba_data_files
WHERE tablespace_name = 'PSR_DATA'
ORDER BY file_id DESC;

下载本文
显示全文
专题