在日常应用中,我们的数据库用户时常会出现表空间不足如何解决?
- 当我们oracle用户的data表空间满了时就需要扩展表空间,但是每扩一个我记得设置自动增长最大的内存也才32G左右,这是就需要我们在新建表空间执行之前的表空间,废话不多说了,直接上干货:
- –查询表空间使用情况
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 1;
先查看下我们的表空间。
扩展表空间:
扩表空间
ALTER TABLESPACE data ADD DATAFILE --需要扩展表空间的名称
‘d:\data1.DBF’ --我们扩新扩的空间放置的位置,注意名字不能用之前的data,需要做一个区分如:data1
size 30000M autoextend on ; --扩多少内存并设置自动增长。
–删除表空间
truncate table JYPT_ACCESSLOG DROP STORAGE --释放表空间
今天分享的就是这些,谢谢!!!!!