摘要:使用数据库的过程中,偶尔会发现oracle的表空间不足的情况,会出现ORA-01653等报错信息。本文中介绍表空间扩容的过程。其处理步骤有:一、查询表空间使用情况;二、介绍如何扩展表空间容量。。

一、登陆Linux服务

(1)、登陆Linux系统

 

(2)、切换到oracle用户模式

 

(3)、然后用sqlplus登录到数据库

 

二、查询表空间的使用情况

(1)、查询表空间文件

查询语句为:select tablespace_name,file_id,file_name,round(bytes / (1024 * 1024), 0) total_space from sys.dba_data_files order by tablespace_name;

 

备注:这时需要对sqlplus查询界面进行设置,比如设置file_name的列宽为20的语句为col value format a20;

 

(2)、查询表空间使用情况

查询语句为: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;

 

三、扩展表空间的容量

(1)、扩展表空间的自身的容量

扩展语句为:

alter database datafile '表空间位置' resize 新的容量

比如将表空间system的容量从1G扩展到2G,其扩展语句为:

alter database datafile '/oracle/app/oradata/ORCL/system01.dbf' resize 2048m;

 

扩容后的表空间使用情况为:

 

同时也可以设置表空间的自动扩展,其扩展语句如下:

alter database datafile '数据文件位置' autoextend on next 自动扩展容量 maxsize 最大扩展容量

比如让表空间system每次自动控制100M,最大可以扩展到8G,其扩展语句为

alter database datafile '/oracle/app/oradata/ORCL/system01.dbf' autoextend on next 100m maxsize 8000m;

 

(2)、通过增加表空间对应的数据文件进行表空间扩容

表空间对应着数据文件,每个数据文件的最大容量是有限制的,如果扩容超过限制容量,则需要通过增加数据文件的方式对表空间进行扩容。其容量大小的对应关系如下:

 

通过增加数据文件的方式扩展表空间的语句为:

alter tablespace 表空间名称 add datafile '新的数据文件位置' size 新数据文件大小

比如如果要通过增加容量为2G的数据文件system02.dbf的方式扩展表空间system,其扩展语句为:

alter tablespace SYSTEM add datafile '/oracle/app/oradata/ORCL/system02.dbf' size 2048m;

 

扩容后表空间的使用情况为: