Oracle 表空间扩容步骤
解决oracle表空间无自动扩容导致表空间爆满影响数据入库问题
在扩容之前,先看一下服务器空间是否充足
执行命令查看服务器内存使用情况
df -h
sqlplus命令 连接oracle数据库
sqlplus / as sysdba
下面这个命令是调整显示长宽
set linesize 300;
查看表空间使用情况命令
select a.tablespace_name, a.bytes / 1024 / 1024 "sum MB", (a.bytes - b.bytes) / 1024 / 1024 "used MB", b.bytes / 1024 / 1024 "free MB", round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "used%" 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;
查看表空间文件路径命令(ps:INDX表示表空间名称,根据以上查看表空间使用情况命令执行后得出)
select file_name from dba_data_Files where tablespace_name='INDX';
执行后的样子
/xxx/oracle/oracle11g/data/prod/INDX01.dbf
/xxx/oracle/oracle11g/data/prod/INDX02.dbf
对表空间进行扩容命令(ps:创建表空间名称不可与已经存在的表空间名称重复)
INDX为表空间名称
/xxx/oracle/oracle11g/data/prod/INDX03.dbf为你服务器存放表空间的绝对路径
5g为需要扩容空间的大小
alter tablespace INDX add datafile '/xxx/oracle/oracle11g/data/prod/INDX03.dbf' size 5g;
删除表空间文件,但删除后,服务器内存释放,不过不是立即释放,删除的表空间也是空的表空间
INDX为表空间名称
/xxx/oracle/oracle11g/data/prod/INDX03.dbf为你服务器存放表空间的绝对路径
alter tablespace INDX drop datafile '/xxx/oracle/oracle11g/data/prod/INDX2.dbf';