Oracle 增加表空间数据文件遭遇ORA-19502错误

浏览: 2253

版本:Oracle 11.2.0.4.0

操作系统:linux redhat 6.4

问题描述:

生产环境作业跑批的时候报错,遇到ORA-01691 即表空间无法扩展。查看表空间,发现该表空间确实满了,处理办法需要在该表空间下增加数据文件。但在执行脚本的时候遭遇ORA-19502

Clipboard Image.png

问题分析:

这个问题是由于硬盘空间满了造成,同时定位是由于oracle的系统跟踪文件(trace)在2月14号暴涨150多G导致,硬盘空间不足,以至于表空间无法扩充。

问题解决:

删除无关的系统跟踪文件(trace),释放硬盘空间

Clipboard Image.png

创建之后

Clipboard Image.png

参考脚本:

第一步:查看表空间的使用情况: 

SELECT DBF.TABLESPACE_NAME,
DBF.TOTALSPACE "总量(M)",
DBF.TOTALBLOCKS AS 总块数,
DFS.FREESPACE "剩余总量(M)",
DFS.FREEBLOCKS "剩余块数",
(DFS.FREESPACE / DBF.TOTALSPACE) * 100 "空闲比例"

FROM (SELECT T.TABLESPACE_NAME,
SUM(T.BYTES) / 1024 / 1024 TOTALSPACE,
SUM(T.BLOCKS) TOTALBLOCKS
FROM DBA_DATA_FILES T
GROUP BY T.TABLESPACE_NAME) DBF,
(SELECT TT.TABLESPACE_NAME,
SUM(TT.BYTES) / 1024 / 1024 FREESPACE,
SUM(TT.BLOCKS) FREEBLOCKS
FROM DBA_FREE_SPACE TT
GROUP BY TT.TABLESPACE_NAME) DFS
WHERE TRIM(DBF.TABLESPACE_NAME) = TRIM(DFS.TABLESPACE_NAME)

第二步:找到需要扩展空间的表空间,查看其数据文件路径:

SELECT * FROM DBA_DATA_FILES T WHERE T.TABLESPACE_NAME = '表空间名称';

第三步:增加表空间大小:

增加表空间大小的方法有二:
1、修改数据文件的大小:

ALTER DATABASE DATAFILE '全路径的数据文件名称' RESIZE ***M ;

2、新增数据文件:
ALTER TABLESPACE 表空间名称 ADD DATAFILE '全路径的数据文件名称' SIZE ***M ;

注意:1、表空间尽量让FREE百分比保持在10%以上,如果低于10%就增加DATAFILE或者RESIZEDATAFILE,一般数据文件不要超过2G

2、 设置表空间数据文件自动扩展:

ALTER DATABASE DATAFILE '全路径的数据文件名称' AUTOEXTEND ON;

推荐 1
本文由 我是最优雅的杀手,不杀人专杀狗 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册