oracle 表空间 不足时如何处理

前端之家收集整理的这篇文章主要介绍了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;
原文链接:https://www.f2er.com/oracle/208507.html

猜你在找的Oracle相关文章