ora-01653:表空间扩展失败的问题
----查询表空间使用情况---
------------------------------------------------------------------------------------------
select upper(f.tablespace_name) 表空间名,
d.tot_grootte_mb 表空间大小(m),
d.tot_grootte_mb - f.total_bytes 已使用空间(m),
to_char(round((d.tot_grootte_mb - f.total_bytes) / d.tot_grootte_mb * 100,2),'990.99') 使用比,
f.total_bytes 空闲空间(m),
f.max_bytes 最大块(m)
from (select tablespace_name,
round(sum(bytes) / (1024 * 1024), 2) total_bytes,
round(max(bytes) / (1024 * 1024), 2) max_bytes
from sys.dba_free_space
group by tablespace_name) f,
(select dd.tablespace_name,
round(sum(dd.bytes) / (1024 * 1024), 2) tot_grootte_mb
from sys.dba_data_files dd
group by dd.tablespace_name) d
where d.tablespace_name = f.tablespace_name
order by 4 desc;
表空间名 表空间大小(m) 已使用空间(m) 使用比 空闲空间(m) 最大块(m)
------------------------------ ------------- ------------- ------- ----------- ----------
system 560 555.37 99.17 4.63 3.94
sysaux 660 639.81 96.94 20.19 4.94
newbil 16000 15196.62 94.98 803.38 261.94
utan 1600 1518.94 94.93 81.06 80.94
发现表空间只有4.63m的空闲,猜测可能是表空间自动扩展失败的问题(表空间的增长量太高,,oracle默认是50%),修改表空间文件扩展方式:
---查看表空间是否具有自动扩展的能力---
------------------------------------------------------------------------------------------
select t.tablespace_name,d.file_name,
d.autoextensible,d.bytes/1024/1024/1024,d.maxbytes,d.status
from dba_tablespaces t,dba_data_files d
where t.tablespace_name =d.tablespace_name
order by tablespace_name,file_name;
---解决办法---
------------------------------------------------------------------------------------------
alter tablespace users
add datafile '/oracle/oradata/tianyi/users07.dbf'
size 10240m;