oracle表空间扩展

来源:互联网 发布:mac如何保存gif 编辑:程序博客网 时间:2024/05/18 02:01

http://zhangzhiqiangli.blog.163.com/blog/static/45918384201051142438887/


今天在把差不多3个G的数据导入本地数据库的时候,遇到了表空间不足的问题。由于经验不足的原因,第一次解决这个问题,所以忙了一晚上,现在正在导数据,应该是可以成功了。一开始以为只有一个表空间不足,最后才发现2个表空间都不足!其中一个表空间data不知道干什么用,我当前用户用的是users表空间。在导数据的时候,竟然也用到了data表空间,奇怪!进入正题说解决步骤:

1.查看所有表空间使用情况

select
b.file_id 文件ID号,
b.tablespace_name 表空间名,
b.bytes/1024/1024||'M'字节数,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||'M' 已使用,
sum(nvl(a.bytes,0))/1024/1024||'M' 剩余空间,
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_id,b.bytes
order by b.file_id;

2.查看用户默认的表空间.

sql: select username,default_tablespace from dba_users;

3.查看要扩展的表空间使用的数据文件路径与名字

sql:select * from dba_data_files where tablespace_name like 'USERS%';

4.扩展表空间,表空间扩展有两种方法:增加数据文件;调整当前数据文件的大小或扩展的大小。

(1)增加数据文件

ALTER TABLESPACE TESTTBS

ADD DATAFILE 'D:/ora/datafile/users.ora' SIZE 500M

AUTOEXTEND ON

NEXT 50M

MAXSIZE 2000M;

 增加了一个500M的数据文件,并且可以自动扩展到2G,每次扩展50M。

(2)增加当前数据文件的大小

ALTER DATABASE

DATAFILE 'D:/ora/datafile/users.ora'

RESIZE  50000M;

 或者使用file_id

ALTER DATABASE

DATAFILE 10

RESIZE  50000M;

(3)在使用过程中,如果想改变某个数据文件的最大大小,可以

ALTER DATABASE

DATAFILE  'D:/ora/datafile/users.ora'

AUTOEXTEND ON

MAXSIZE  10240M;