问题描述
提示:这里描述项目中遇到的问题:
排查新上业务系统连接已有数据库失败报错的过程中发现部分表空间剩余空间很少,剩余空间基本在3~5%。审计表AUX详见前期文章。
SELECT a.tablespace_name,
a.bytes total,
b.bytes used,
c.bytes free,
(b.bytes * 100) / a.bytes "% USED ",
(c.bytes * 100) / a.bytes "% FREE "
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
WHERE a.tablespace_name = b.tablespace_name
AND a.tablespace_name = c.tablespace_name;
用上述语句检查表空间
解决方案:
以DBA身份用户登录先查询,表空间文件位置以及表空间的文件名,在输出里查看表空间文件名及位置。
Select * FROM DBA_DATA_FILES;
可以查询出的表空间文件大小来决定使用以下哪种方式
(1) 增大表空间大小
alter database datafile '表空间的路径,第三步查出来的那' resize 改变后的大小
-------------------------------------------------------------------------------
alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\SG4300\USERS01.DBF' resize 10G
(2)分开存储,增加数据文件
alter tablespace 表空间名
add datafile '存放路径'
size 大小 autoextend on next 50M maxsize unlimited;
-----------------------------------------------------
alter tablespace USERS
add datafile 'D:\APP\ADMINISTRATOR\ORADATA\SG4300\USERS02.DBF'
size 100M autoextend on next 50M maxsize unlimited;---创建100M文件并在存满时增加50M
(3)表空间还可以开放自动增长功能
alter database datafile
'D:\APP\ADMINISTRATOR\ORADATA\SG4300\USERS02.DBF' autoextend on;
select tablespace_name,file_name,autoextensible from dba_data_files