版本資訊
本文檔使用的Oracle版本為11.2.0.1.0 - 64bit
本文檔使用的Linux系統版本為CentOS Linux release 7.6.1810 (Core)
一、查詢表空間使用情況
SELECT
a.tablespace_name AS "表空間名",
a.bytes / 1024 / 1024 AS "表空間大小(M)",
( a.bytes - b.bytes ) / 1024 / 1024 AS "已使用空間(M)",
b.bytes / 1024 / 1024 "空閑空間(M)",
round((( a.bytes - b.bytes ) / a.bytes ) * 100, 2 ) "使用比"
FROM
( SELECT tablespace_name, sum( bytes ) bytes FROM dba_data_files GROUP BY tablespace_name ) a,
( SELECT tablespace_name, sum( bytes ) bytes, max( bytes ) largest FROM dba_free_space GROUP BY tablespace_name ) b
WHERE
a.tablespace_name = b.tablespace_name
ORDER BY
(( a.bytes - b.bytes ) / a.bytes ) DESC;
二、擴充表空間
檢視表空間的名字及檔案所在位置
SELECT
tablespace_name,
file_id,
file_name,
round( bytes / ( 1024 * 1024 ), 0 ) total_space
FROM
dba_data_files
ORDER BY
tablespace_name
方法一: 直接擴充所需表空間大小
alter database datafile '/oracle/oradata/orcl11g/sysaux01.dbf' resize 1024m;
再查詢一次:
方法二:增加資料檔案個數
alter tablespace SYSAUX add datafile '/oracle/oradata/orcl11g/new_sysaux01.dbf' size 500m
再查詢一次:
方法三:設定表空間自動擴充。
ALTER DATABASE DATAFILE '/xxx/xxx.dbf' AUTOEXTEND ON;//打開自動增長
ALTER DATABASE DATAFILE '/xxx/xxx.dbf' AUTOEXTEND ON NEXT 200M ;//每次自動增長200m
ALTER DATABASE DATAFILE '/xxx/xxx.dbf' AUTOEXTEND ON NEXT 200M MAXSIZE 1024M;//每次自動增長200m,表空間最大不超過1G