--查询表空间使用情况
SELECT TOTAL.TABLESPACE_NAME 表空间名称,
ROUND(TOTAL.MB, 2) AS总大小M,
ROUND(TOTAL.MB - FREE.MB, 2) AS已使用M,
ROUND((1 - FREE.MB / TOTAL.MB) * 100, 2) AS使用率
FROM (SELECT TABLESPACE_NAME, SUM(BYTES) / 1024 / 1024AS MB
FROM DBA_FREE_SPACE
GROUPBY TABLESPACE_NAME) FREE,
(SELECT TABLESPACE_NAME, SUM(BYTES) / 1024 / 1024AS MB
FROM DBA_DATA_FILES
GROUPBY TABLESPACE_NAME) TOTAL
WHERE FREE.TABLESPACE_NAME = TOTAL.TABLESPACE_NAME
ORDERBY TOTAL.TABLESPACE_NAME;
--查看表空间对应的物理文件路径
Select * FROM DBA_DATA_FILES;
--表空间扩容
ALTER DATABASE DATAFILE '/opt/oracle/oradata/orcl/test.dbf' RESIZE 20480M;
表空间扩容时,可能会遇到ORA-01144问题:
问题描述:每个数据库最多有1024-2=1022个文件(2个文件预留),每个文件最多有4M个块,如果用默认的oracle block,即8192byte,那么,每个datafile最大为:4M×8K=32GB;
解决方案:
1、扩容时表空间大小不能超过32G;如果表空间已经快到32G还想再扩容,就只能创建新的datafile,容量也不能超过32G。
2、在数据库库设计时,如果数据容量很大,在oracle 10g版本以后可以创建bigfile tablespace,datafile最大容量为32T。