當我們使用數據庫的過程中,表空間不足時,我們可以擴容的方式添加表空間:
1、檢查表空間使用情況
SELECT tbs 表空間名,
sum(totalM) 總共大小M,
sum(usedM) 已使用空間M,
sum(remainedM) 剩余空間M,
sum(usedM)/sum(totalM)*100 已使用百分比,
sum(remainedM)/sum(totalM)*100 剩余百分比
FROM(
SELECT b.file_id ID,
b.tablespace_name tbs,
b.file_name name,
b.bytes/1024/1024 totalM,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 usedM,
sum(nvl(a.bytes,0)/1024/1024) remainedM,
sum(nvl(a.bytes,0)/(b.bytes)*100),
(100 - (sum(nvl(a.bytes,0))/(b.bytes)*100))
FROM dba_free_space a,dba_data_files b
WHERE a.file_id = b.file_id
GROUP BY b.tablespace_name,b.file_name,b.file_id,b.bytes
ORDER BY b.tablespace_name
)
GROUP BY tbs ;
2、 表空間不足檢查,並檢查是否自動擴容,以TEMP_ONE用戶的TBS_TEMP_ONE表空間為例,根據需要修改或添加表空間:
SELECT * --file_id, file_name, tablespace_name, autoextensible, increment_by FROM dba_data_files
WHERE tablespace_name ='TBS_TEMP_ONE' order by file_id desc;
--修改表空間大小
alter database datafile '/opt/oracle/app/oradata/center/TBS_TEMP_ONE.dbf' resize 100000M;
--添加表空間
alter tablespace TBS_CENYLFW add datafile '/opt/oracle/app/oradata/center/TBS_TEMP_ONE01.dbf' size 30g;
--修改表空間擴容
alter tablespace TBS_TEMP_ONE add datafile '/opt/oracle/app/oradata/center/TBS_TEMP_ONE.dbf' size 100m autoextend on next 100m;
--自動擴容
alter tablespace TBS_CENCORE ADD DATAFILE '/opt/oracle/app/oradata/center/TBS_TEMP_ONE01.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M;