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 ...
随机推荐
- select * from user 这条 SQL 语句,背后藏着哪些不可告人的秘密?
作为一名 Java开发人员,写 SQL 语句是常有的事,但是你知道 SQL 语句背后的处理逻辑吗?比如下面这条 SQL 语句: select * from user where id=1 执行完这条语 ...
- js的class基础
title: js的class基础 date: 2020-01-04 13:34:44 tags: --- 基本写法 let log = console.log; class people { con ...
- 1029 旧键盘 (20 分)C、Java、python
题目描述 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出 肯定坏掉的那些键. 输入描述: 输入在2行中分别给出应该输入的文 ...
- bash的默认组合键
组合键 组合按键 执行结果 Ctrl+C 终止目前的命令 Ctrl+D 输入结束(EOF),例如邮件结束的时候 Ctrl+M 就是Enter啦! Ctrl+S 暂停屏幕输出 Ctrl+Q 恢复屏幕输出 ...
- react 表单(受控组件和非受控组件)
我们知道表单元素与其他的普通DOM元素来说是不一样的,它们保存了自己的一些状态. 我们主要说的就是表单元素中的受控组件和非受控组件. 受控组件就是这个组件的状态是我们(react)控制的,这个组件的行 ...
- wepy怎么在生命周期中调用methods方法
很简单: 比如在 onLoad () { imgRemove(e) { this.methods.onRemove(e) } } 在methods中就可以直接调用属于它的方法, ...
- Spark读写ES
本文主要介绍spark sql读写es.structured streaming写入es以及一些参数的配置 ES官方提供了对spark的支持,可以直接通过spark读写es,具体可以参考ES Spar ...
- Spring Boot2 系列教程 (二) | 第一个 SpringBoot 工程详解
微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 哎呦喂,按照以往的惯例今天周六我的安排应该是待在家学学猫叫啥的.但是今年这种日子就可能一去不复返了,没法办法啊.前 ...
- next_permutation 函数
next_permutation 是一个定义在 <algorithm> 中的一个全排列函数, 用于按顺序生成一个数列的全排列 基本用法 : int a[] = {1, 2, 3}; do{ ...
- Python自带HTTP文件传输服务
一行命令搭建一个基于python的http文件传输服务 由于今天朋友想要一个文件,而我恰好有,因为这个文件比较大,网速不是很给力,所以想到了python自己有这么一个功能,这样不仅不需要下载其他软件, ...