当我们使用数据库的过程中,表空间不足时,我们可以扩容的方式添加表空间:
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;