oracle 表空间不足时的解决方法
总结
1.查看所有表空间
select * from dba_data_files; 可得到表空间名,路径,大小,使用大小,是否自增长
2.整理后的语句为:
select * from dba_data_files t
查看所有的表空间(带注释)
select dbf.tablespace_name,
dbf.totalspace "总量(M)",
dbf.totalblocks as 总块数,
dfs.freespace "剩余总量(M)",
dfs.freeblocks "剩余块数",
(dfs.freespace / dbf.totalspace) * 100 "空闲比例"
from (select t.tablespace_name,
sum(t.bytes) / 1024 / 1024 totalspace,
sum(t.blocks) totalblocks
from dba_data_files t
group by t.tablespace_name) dbf,
(select tt.tablespace_name,
sum(tt.bytes) / 1024 / 1024 freespace,
sum(tt.blocks) freeblocks
from dba_free_space tt
group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name)
dbf.totalspace "总量(M)",
dbf.totalblocks as 总块数,
dfs.freespace "剩余总量(M)",
dfs.freeblocks "剩余块数",
(dfs.freespace / dbf.totalspace) * 100 "空闲比例"
from (select t.tablespace_name,
sum(t.bytes) / 1024 / 1024 totalspace,
sum(t.blocks) totalblocks
from dba_data_files t
group by t.tablespace_name) dbf,
(select tt.tablespace_name,
sum(tt.bytes) / 1024 / 1024 freespace,
sum(tt.blocks) freeblocks
from dba_free_space tt
group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name)
3.若剩余空间不足,
可采用一下方法
1.查看是否自增长:若不是 则:修改为自增长:
alter database datafile '/u01/app/oracle/oradata/orcl/users01.dbf' autoextend on next 1M ;(如果不加next xxM,则默认自增长为1M)
2.查看最大使用大小,若小于32G 可设置为不限(最大为32G):
alter database datafile '/u01/app/oracle/oradata/orcl/users01.dbf' autoextend on next 1M maxsize unlimited;(unlimited 可设置为具体大小,小于32G)
3.添加数据文件:
alter tablespace users add datafile '/u01/app/oracle/oradata/orcl/users02.dbf' size 25m;
(添加的数据文件有具体路径.dbf就行,不需要实际存在, 在通过1,2来改动数据文件即可)

浙公网安备 33010602011771号