oracle问题之SYSTEM表空间不足 (二)
杂症二、SYSTEM表空间不足报错
一、杂症:
PLSQL登录,报错:
ORA-00604: 递归 SQL 层 出现错误
ORA-01653: 表.无法通过(在表空间中)扩展
ORA-02002: 写入审记线索时出错

二、病理:
1、表空间不足
2、数据库的审计功能已经开启引起(SYS.AUD$表)
三、病因定位:
先连接上数据库:
# su oracle # sqlplus /nolog SQL> conn /as sysdba //重新连接 SQL> startup mount; //挂起 SQL> alter database open; //打开数据库
执行下面SQL,查看表空间使用情况
SELECT UPPER(F.TABLESPACE_NAME) "TABLESPACE_NAME", D.TOT_GROOTTE_MB "TABLESPACE_SIZE(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "TABLESPACE_USED(M)", TO_CHAR (ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') "TABLESPACE_USED_BI", F.TOTAL_BYTES "TABLESPACE_FREE(M)" FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) /(1024 * 1024), 2) TOTAL_BYTES, ROUND(MAX(BYTES) /(1024 * 1024), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT DD.TABLESPACE_NAME, ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 4 DESC;

SYSTEM表空间使用比 已经达到 99.81。
四、治疗:
表空间不足治疗:
方案一:若表空间不是自增,则修改为自增模式。(不适合此次原因)
先查看表空间是否自增
SQL > select FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE from dba_data_files;

YES 说明是自增的
如果是NO则执行下面 SQL,修改模式:
SQL > alter database datafile '/home/app/XXX/oradata/XXX/system01.dbf' AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
注:根据自己SYSTEM对应的的数据文件路径填写,50M为每次自增的大小。
方案二:扩大表空间对应的数据文件大小 (不适合此次原因)

可得 对应的表空间文件已经 32G了。
规定 表空间所对应的数据文件不能超过32G。
若没有达到则可以通过 扩大表空间对应文件的大小,SQL为:
SQL > alter database datafile '/home/app/XXX/oradata/XXX/system01.dbf' resize 32000M;
方案三:为SYSTEM表空间增加一个数据文件SYSTEM02.DBF (不适合此次问题原因)
大小:500M , 自增大小:50M
SQL> alter tablespace "SYSTEM" add datafile '/home/app/XXX/oradata/XXX/system02.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
注:一个表空间能对应多个数据文件,但一个数据文件只能对应一个表空间
方案四:清空AUD$表数据并关闭审计功能(根本原因,笔者使用了该方案)
1、查sys.aud$及其索引 占用大小
SQL> SELECT t.owner, t.segment_name,SUM(bytes)/1024/1024/1024 as SIZE_G FROM dba_segments t WHERE t.tablespace_name = 'SYSTEM' and t.segment_name='AUD$' GROUP BY t.owner,t.segment_name ORDER BY SUM(bytes) desc;

可怕,就是这个审计表,达到了31个G了,问题就在此。
2、清空AUD$:
SQL> truncate table AUD$;
3、查看审计功能
SQL> show parameter audit

4、关闭审计功能:
SQL> alter system set audit_trail='none' scope=spfile;
如果只是清理 AUD$表,问题已经解决,但是时间久后,问题还是会复现,如果不需要审计数据可以关闭审计功能永久解决。
注:此上方案解决后,需要重启
SQL> shutdown immediate; //关闭 SQL> startup mount; //挂起 SQL> alter database open; //打开数据库
转自:https://blog.csdn.net/heshushun/article/details/80899839
oracle问题之SYSTEM表空间不足 (二)的更多相关文章
- oracle数据库解决system表空间已爆满的问题
有时会发现数据库system表空间增长很快,使用以下语句查看system表空间使用量.也可以使用toad直接看. select b.tablespace_name "表空间", b ...
- Oracle system表空间满的暂定解决方法
Oracle system表空间满的暂定解决方法 数据库用的是Oracle Express 10.2版本的.利用Oracle Text做全文检索应用,创建用户yxl时没有初始化默认表空间,在系统开发过 ...
- [Oracle]System 表空间的文件丢失
如果system 表空间的文件丢失,假设有备份的情况,可以恢复.数据库需要设置为mount 状态,然后restore/recover datafile 模拟实验: SQL> select nam ...
- 由Oracle 11g SYSAUX 和 SYSTEM 表空间回收引发的联想
0x00--目的 整理一下以前一个SYSTEM表空间和SYSAUX表空间使用率达到99%上限的处理思路和相关知识点,好记性不如烂笔头 0x01--表空间使用率现状 通过查询可得知目前表空间使用情况如下 ...
- ASM时的OFM特性对影的建数据文件名称的影响及为SYSTEM表空间的数据文件使用别名
客户遇到个DG的问题,存储使用的ASM管理,有多个磁盘盘. 在主库创建数据文件,备库自己主动创建的数据文件都在同一磁盘组,而且在主库创建数据文件是指定的是类似**.DBF的名字,到备库也变成了使用AS ...
- system表空间空间不足解决办法
场景描述: 系统表空间空间不足,导致应用无法正常连接!!! 环境描述: ORACLE 11G 查看当前表空间的整体使用情况,以及有没有开启自动扩展,以及扩展的最大限制!!! ---tablespace ...
- ORACLE体系结构一 (逻辑结构)-表空间、段、区和数据块
一.Oracle的逻辑结构 Oracle的逻辑结构是一种层次结构.主要由:表空间.段.区和数据块等概念组成.逻辑结构是面向用户的,用户使用Oracle开发应用程序使用的就是逻辑结构.数据库存储层次结构 ...
- SYSTEM 表空间管理及备份恢复
标签: systemoraclesqldatabasefile数据库 2010-11-28 18:14 12689人阅读 评论(0) 收藏 举报 分类: -----Oracle备份恢复(16) 版权声 ...
- 实例讲解Oracle数据库设置默认表空间问题
实例讲解Oracle数据库设置默认表空间问题 实例讲解Oracle数据库设置默认表空间问题,阅读实例讲解Oracle数据库设置默认表空间问题,DBA们经常会遇到一个这样令人头疼的问题:不知道谁在O ...
随机推荐
- docker安装启动、配置MySql
1.安装mysql镜像 docker pull mysql/mysql-server 2.docker中启动Mysql容器 docker run --name mysql01 -d -p 3306:3 ...
- Spring in action读书笔记(一) 自动化装配bean
需要引入的ja包 <dependency> <groupId>org.springframework</groupId> <artifactId>spr ...
- 20191017-5 alpha week 2/2 Scrum立会报告+燃尽图 04
此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9801 小组名称:“组长”组 组长:杨天宇 组员:魏新,罗杨美慧,王歆瑶,徐 ...
- 【题解】CF1142B Lynyrd Skynyrd(倍增)
[题解]CF1142B Lynyrd Skynyrd(倍增) 调了一个小时原来是读入读反了.... 求子段是否存在一个排列的子序列的套路是把给定排列看做置换,然后让给定的序列乘上这个置换,问题就转化为 ...
- 什么是Ceph存储?什么是分布式存储?简单明了带你学Ceph--<1>
Ceph存储介绍 为什么要用Ceph Ceph是当前非常流行的开源分布式存储系统,具有高扩展性.高性能.高可靠性等优点,同时提供块存储服务(rbd).对象存储服务(rgw)以及文件系统存储服务(cep ...
- 《美国纽约摄影学院摄影教材》PDF教材
下载地址: 美国纽约摄影学院摄影教材(上册).pdf 美国纽约摄影学院摄影教材(下册).pdf 欢迎你到纽约摄影学院来,我们急切地等待着开课,你们也在 跃跃欲试了.那就让我们马上开始吧! 你已 ...
- Ceph14.2.5 RBD块存储的实战配置和详细介绍,不看后悔! -- <3>
Ceph RBD介绍与使用 RBD介绍 RBD即RADOS Block Device的简称,RBD块存储是最稳定且最常用的存储类型.RBD块设备类似磁盘可以被挂载. RBD块设备具有快照.多副本.克隆 ...
- 1091 N-自守数 (15 分)C语言
如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为"N-自守数".例如 3×92^2 =25392,而 25392 的末尾两位正好是 92,所以 ...
- 扫描器是如何判定有xss漏洞的
这个问题,看似简单,实则触及到很多人的知识盲区 我们都知道,弹窗就能判定这个页面存在xss, 那么扫描器是怎么判断的呢,或者说扫描器是怎么判断是否弹窗的呢 测试发现 当响应的头中content-typ ...
- String类方法的使用
String类的判断功能: boolean equals(Object obj) //比较字符串内容是否相同(区分大小写). boolean equalsIgnoreCase(String str) ...