微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

oracle 表空间 不足时如何处理

oracle 表空间一般有两个原因:

一,原表空间太小,没有自增长;

二,表空间已自增长,而且表空间也已足够大,对于这两种原因分别有各自的解决办法。

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.查看用户认的表空间.

select username,default_tablespace from dba_users;

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

select file_name from dba_data_files;
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

增加一个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;

使用:

SELECT file_id,file_name,tablespace_name,autoextensible,increment_by FROM dba_data_files WHERE tablespace_name = 'PAY_DATA'order by file_id desc;

SELECT file_id,increment_by FROM dba_data_files WHERE tablespace_name = 'BEBE'order by file_id desc;

alter tablespace BEBE add datafile '/u01/app/oracle/oradata/nbb/BEBE1.DBF' size 30g;
alter tablespace BEBE add datafile '/u01/app/oracle/oradata/nbb/BEBE2.DBF' size 30g;


alter tablespace PAY_DATA add datafile '/u01/app/oracle/oradata/nbb/pay_DATA1.DBF' size 30g;
alter tablespace PAY_DATA add datafile '/u01/app/oracle/oradata/nbb/pay_DATA2.DBF' size 30g;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐