oracle管理表空间与数据文件

时间:2022-02-04 12:19:59

--查看表空间使用情况
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

 

 

--调整数据文件大小
alter database datafile 'D:/PAM/PAM_BASE1.dbf' resize 5000m;

--修改文件自增长情况
ALTER DATABASE DATAFILE '/u07/oracle/oradata/train/****.dbf'AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

----修改表空间自增长情况
ALTER TABLESPACE ** AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

--增加数据文件
alter tablespace 表空间名 add datafile
'' --路径
size ???M --大小

 

--重建TEMP表空间

create temporary tablespace TEMP2 TEMPFILE 'E:/oracle/product/10.2.0/oradata/orcl/TEMP02.DBF' SIZE 4000M REUSE AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; --创建中转临时表空间      
     
alter database default temporary tablespace temp2; --改变缺省临时表空间 为刚刚创建的新临时表空间temp2      
     
drop tablespace temp including contents and datafiles;--删除原来临时表空间      
     
create temporary tablespace temp TEMPFILE 'E:/oracle/product/10.2.0/oradata/orcl/TEMP01.DBF' SIZE 7000M REUSE AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; --重新创建临时表空间      
     
alter database default temporary tablespace temp; --重置缺省临时表空间为新建的temp表空间      
     
drop tablespace temp2 including contents and datafiles;--删除中转用临时表空间      
     
alter user src_collection temporary tablespace temp; --重新指定用户表空间为重建的临时表空间