您的位置:首页 > 数据库 > Oracle

oracle 表空间 不足时如何处理

2017-07-13 00:00 288 查看
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, file_name, tablespace_name, autoextensible, 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;


alter tablespace BEBE add datafile '/u01/app/oracle/oradata/nbb/BEBE3.DBF' size 2g
autoextend on next 1024m
maxsize 30g;

alter tablespace BEBE add datafile '/u01/app/oracle/oradata/nbb/BEBE4.DBF' size 2g
autoextend on next 1024m
maxsize 30g;

alter tablespace PAY_DATA add datafile '/u01/app/oracle/oradata/nbb/pay_DATA3.DBF' size 2g
autoextend on next 1024m
maxsize 30g;

alter tablespace PAY_DATA add datafile '/u01/app/oracle/oradata/nbb/pay_DATA4.DBF' size 2g
autoextend on next 1024m
maxsize 30g;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: