Oracle表空间是有限制的,当数据库中数据量达到这个值,再向数据库中导入数据就会报错。解决方法是扩展表空间
。可以选择将表容量扩大,比如扩展到5G,或者当表空间不够时每次自动增加一定的容量,如每次自增200M。
有三种方法可以扩充表空间:
一、增加表空间原有数据文件的大小;
二、设置表空间的自动增长;
三、为表空间添加数据文件,通过向表空间添加数据文件,来增大表空间。
总结:oracle 表空间的扩充步骤如下:
[oracle@yuanji ~]$ sqlplus / as sysdba
查看各表空间分配情况
SQL> select tablespace_name, sum(bytes) / 1024 / 1024 from dba_data_files group by tablespace_name;
TABLESPACE_NAME SUM(BYTES)/1024/1024
------------------------------ --------------------
UNDOTBS1 95
SYSAUX 580
USERS 5
SYSTEM 750
.查看各表空间空闲情况。
SQL> select tablespace_name, sum(bytes) / 1024 / 1024 from dba_free_space group by tablespace_name;
TABLESPACE_NAME SUM(BYTES)/1024/1024
------------------------------ --------------------
SYSAUX 29.0625
UNDOTBS1 59.5625
USERS 3.6875
SYSTEM 7.3125
SQL> select file#,name from v$datafile;
FILE#
----------
NAME
--------------------------------------------------------------------------------
1
/data/YUANJI/datafile/o1_mf_system_bzzbwws6_.dbf
2
/data/YUANJI/datafile/o1_mf_sysaux_bzzbwww5_.dbf
3
/data/YUANJI/datafile/o1_mf_undotbs1_bzzbwwwj_.dbf
FILE#
----------
NAME
--------------------------------------------------------------------------------
4
/data/YUANJI/datafile/o1_mf_users_bzzbwwy6_.dbf
*************************************************************
FILE_NAME
--------------------------------------------------------------------------------
size
----------
/data/YUANJI/datafile/o1_mf_users_bzzbwwy6_.dbf
5
/data/YUANJI/datafile/o1_mf_undotbs1_bzzbwwwj_.dbf
95
/data/YUANJI/datafile/o1_mf_sysaux_bzzbwww5_.dbf
590
FILE_NAME
--------------------------------------------------------------------------------
size
----------
/data/YUANJI/datafile/o1_mf_system_bzzbwws6_.dbf
750
然后添加数据文件扩充表空间
SQL> alter tablespace USERS add datafile '/data/YUANJI/datafile/o2_my_users_sslsfnn_8.dbf' size 10m;
Tablespace altered.
或者
SQL> alter tablespace USERS add datafile '/data/YUANJI/datafile/032_my_users_fdgdgg_9.dbf' size 200m
autoextend on next 20m maxsize unlimited;
Tablespace altered.
《ALTER TABLESPACE 表空间名 ADD DATAFILE '数据文件路径' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE
UNLIMITED; 》
删除表空间命令:
drop tablespace user including contents and datafiles;
。可以选择将表容量扩大,比如扩展到5G,或者当表空间不够时每次自动增加一定的容量,如每次自增200M。
有三种方法可以扩充表空间:
一、增加表空间原有数据文件的大小;
二、设置表空间的自动增长;
三、为表空间添加数据文件,通过向表空间添加数据文件,来增大表空间。
总结:oracle 表空间的扩充步骤如下:
1.查看表空间的大小,查询哪一个表空间已经爆满或者快要爆满
2.查看表空间下的数据文件,数据文件的命名格式,大小,位置,是否自动增长
3.根据表空间下的数据文件格式、大小、位置、是否自动增长添加数据文件
4.查看数据文件是否添加成功,查看表空间大小。确认已经添加成功。
[oracle@yuanji ~]$ sqlplus / as sysdba
查看各表空间分配情况
SQL> select tablespace_name, sum(bytes) / 1024 / 1024 from dba_data_files group by tablespace_name;
TABLESPACE_NAME SUM(BYTES)/1024/1024
------------------------------ --------------------
UNDOTBS1 95
SYSAUX 580
USERS 5
SYSTEM 750
.查看各表空间空闲情况。
SQL> select tablespace_name, sum(bytes) / 1024 / 1024 from dba_free_space group by tablespace_name;
TABLESPACE_NAME SUM(BYTES)/1024/1024
------------------------------ --------------------
SYSAUX 29.0625
UNDOTBS1 59.5625
USERS 3.6875
SYSTEM 7.3125
SQL> select file#,name from v$datafile;
FILE#
----------
NAME
--------------------------------------------------------------------------------
1
/data/YUANJI/datafile/o1_mf_system_bzzbwws6_.dbf
2
/data/YUANJI/datafile/o1_mf_sysaux_bzzbwww5_.dbf
3
/data/YUANJI/datafile/o1_mf_undotbs1_bzzbwwwj_.dbf
FILE#
----------
NAME
--------------------------------------------------------------------------------
4
/data/YUANJI/datafile/o1_mf_users_bzzbwwy6_.dbf
*************************************************************
一、增加表空间原有数据文件的大小;
更改数据表大小(10G)
在这里把uses的变空间设置为600M
SQL> alter database datafile '/data/YUANJI/datafile/o1_mf_users_bzzbwwy6_.dbf'resize 600m;
Database altered.
*************************************************************
二、设置表空间自动增长:
查询表空间是否自动增长:
SQL> SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files;
FILE_NAME
------------------------------------------------------------------------------------------------------
------------------------------------------------
TABLESPACE_NAME AUT
------------------------------ ---
/data/YUANJI/datafile/o1_mf_users_bzzbwwy6_.dbf
USERS YES
/data/YUANJI/datafile/o1_mf_undotbs1_bzzbwwwj_.dbf
UNDOTBS1 YES
/data/YUANJI/datafile/o1_mf_sysaux_bzzbwww5_.dbf
SYSAUX YES
/data/YUANJI/datafile/o1_mf_system_bzzbwws6_.dbf
SYSTEM YES
查询 tablespace_name 的 file_id ,通过id 设置表空间自动增长;
SQL> select file_id,tablespace_name from dba_data_files;
FILE_ID TABLESPACE_NAME
---------- ------------------------------
4 USERS
3 UNDOTBS1
2 SYSAUX
1 SYSTEM
《例如:alter database datafile <file_id> autoextend on next 10M maxsize 10G; 》
SQL> alter database datafile 3 autoextend on; ----打开自动增长
Database altered.
SQL> alter database datafile 3 autoextend on NEXT 20m; ---每次自动增长20m;
Database altered.
SQL> alter database datafile 3 autoextend on NEXT 20m maxsize 2048m; --每次自动增长20m,数据表空间最
大不超过1G;
Database altered.
*************************************************************
三、为表空间添加数据文件,通过向表空间添加数据文件,来增大表空间。
更改数据表大小(10G)
在这里把uses的变空间设置为600M
SQL> alter database datafile '/data/YUANJI/datafile/o1_mf_users_bzzbwwy6_.dbf'resize 600m;
Database altered.
*************************************************************
二、设置表空间自动增长:
查询表空间是否自动增长:
SQL> SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files;
FILE_NAME
------------------------------------------------------------------------------------------------------
------------------------------------------------
TABLESPACE_NAME AUT
------------------------------ ---
/data/YUANJI/datafile/o1_mf_users_bzzbwwy6_.dbf
USERS YES
/data/YUANJI/datafile/o1_mf_undotbs1_bzzbwwwj_.dbf
UNDOTBS1 YES
/data/YUANJI/datafile/o1_mf_sysaux_bzzbwww5_.dbf
SYSAUX YES
/data/YUANJI/datafile/o1_mf_system_bzzbwws6_.dbf
SYSTEM YES
查询 tablespace_name 的 file_id ,通过id 设置表空间自动增长;
SQL> select file_id,tablespace_name from dba_data_files;
FILE_ID TABLESPACE_NAME
---------- ------------------------------
4 USERS
3 UNDOTBS1
2 SYSAUX
1 SYSTEM
《例如:alter database datafile <file_id> autoextend on next 10M maxsize 10G; 》
SQL> alter database datafile 3 autoextend on; ----打开自动增长
Database altered.
SQL> alter database datafile 3 autoextend on NEXT 20m; ---每次自动增长20m;
Database altered.
SQL> alter database datafile 3 autoextend on NEXT 20m maxsize 2048m; --每次自动增长20m,数据表空间最
大不超过1G;
Database altered.
*************************************************************
三、为表空间添加数据文件,通过向表空间添加数据文件,来增大表空间。
SQL> show parameter db_create_file_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string /data
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string /data
如果db_create_file_dest 参数value 有了值,那么可以这么添加以下语句:(如果db_create_file_dest参数有value值,可以用路径/*.dbf 代替自己起的.dbf名字即可)
SQL>
alter tablespace USERS add datafile '/data/YUANJI/datafile/*.dbf' size 10m;
首先可以查询以下数据文件的大小:
SQL> select file_name,bytes/1024/1024 "size" from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
size
----------
/data/YUANJI/datafile/o1_mf_users_bzzbwwy6_.dbf
5
/data/YUANJI/datafile/o1_mf_undotbs1_bzzbwwwj_.dbf
95
/data/YUANJI/datafile/o1_mf_sysaux_bzzbwww5_.dbf
590
FILE_NAME
--------------------------------------------------------------------------------
size
----------
/data/YUANJI/datafile/o1_mf_system_bzzbwws6_.dbf
750
然后添加数据文件扩充表空间
SQL> alter tablespace USERS add datafile '/data/YUANJI/datafile/o2_my_users_sslsfnn_8.dbf' size 10m;
Tablespace altered.
或者
SQL> alter tablespace USERS add datafile '/data/YUANJI/datafile/032_my_users_fdgdgg_9.dbf' size 200m
autoextend on next 20m maxsize unlimited;
Tablespace altered.
《ALTER TABLESPACE 表空间名 ADD DATAFILE '数据文件路径' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE
UNLIMITED; 》
删除表空间命令:
drop tablespace user including contents and datafiles;
注意:
SQL> show parameter db_create_file_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string /data
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string /data
如果db_create_file_dest 参数value 有了值,那么可以这么添加以下语句
SQL>alter tablespace USERS add datafile '/data/YUANJI/datafile/*.dbf' size 200m autoextend on next 20m maxsize unlimited;