杂症二、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表空间不足 (二)的更多相关文章

  1. oracle数据库解决system表空间已爆满的问题

    有时会发现数据库system表空间增长很快,使用以下语句查看system表空间使用量.也可以使用toad直接看. select b.tablespace_name "表空间", b ...

  2. Oracle system表空间满的暂定解决方法

    Oracle system表空间满的暂定解决方法 数据库用的是Oracle Express 10.2版本的.利用Oracle Text做全文检索应用,创建用户yxl时没有初始化默认表空间,在系统开发过 ...

  3. [Oracle]System 表空间的文件丢失

    如果system 表空间的文件丢失,假设有备份的情况,可以恢复.数据库需要设置为mount 状态,然后restore/recover datafile 模拟实验: SQL> select nam ...

  4. 由Oracle 11g SYSAUX 和 SYSTEM 表空间回收引发的联想

    0x00--目的 整理一下以前一个SYSTEM表空间和SYSAUX表空间使用率达到99%上限的处理思路和相关知识点,好记性不如烂笔头 0x01--表空间使用率现状 通过查询可得知目前表空间使用情况如下 ...

  5. ASM时的OFM特性对影的建数据文件名称的影响及为SYSTEM表空间的数据文件使用别名

    客户遇到个DG的问题,存储使用的ASM管理,有多个磁盘盘. 在主库创建数据文件,备库自己主动创建的数据文件都在同一磁盘组,而且在主库创建数据文件是指定的是类似**.DBF的名字,到备库也变成了使用AS ...

  6. system表空间空间不足解决办法

    场景描述: 系统表空间空间不足,导致应用无法正常连接!!! 环境描述: ORACLE 11G 查看当前表空间的整体使用情况,以及有没有开启自动扩展,以及扩展的最大限制!!! ---tablespace ...

  7. ORACLE体系结构一 (逻辑结构)-表空间、段、区和数据块

    一.Oracle的逻辑结构 Oracle的逻辑结构是一种层次结构.主要由:表空间.段.区和数据块等概念组成.逻辑结构是面向用户的,用户使用Oracle开发应用程序使用的就是逻辑结构.数据库存储层次结构 ...

  8. SYSTEM 表空间管理及备份恢复

    标签: systemoraclesqldatabasefile数据库 2010-11-28 18:14 12689人阅读 评论(0) 收藏 举报 分类: -----Oracle备份恢复(16) 版权声 ...

  9. 实例讲解Oracle数据库设置默认表空间问题

    实例讲解Oracle数据库设置默认表空间问题   实例讲解Oracle数据库设置默认表空间问题,阅读实例讲解Oracle数据库设置默认表空间问题,DBA们经常会遇到一个这样令人头疼的问题:不知道谁在O ...

随机推荐

  1. redis 本地安装

    1.redis介绍 Redis是有名的NoSql数据库,一般Linux都会默认支持.但在Windows环境中,可能需要手动安装设置才能有效使用.简单介绍一下Windows下Redis服务的安装方法. ...

  2. SofaBoot使用Nacos进行服务注册发现

    前提 最近创业公司的项目组基于业务需要,开发一套新的微服务,考虑到选用的组件必须是主流.社区活跃.生态完善以及方便迁移到云上等因素,引入了SOFAStack全家桶.微服务开发里面,一个很重要的功能就是 ...

  3. 洛谷$1220$ 关路灯 记搜/$DP$

    \(Sol\) 约定\(pos\)为老张所处的位置的路灯号,\(i<pos,j>pos\). 显然,如果\(i\)和\(j\)都关了,那么它们之间的所有灯一定也都关了. 设\(f[i][j ...

  4. 我终于懂得如何使用matplotlib进行画图

    一 前言 本篇文章带大家快速入门如何使用matplotlib画出精美数学的图片:看完本篇文章你将获得熟悉并简单使用matplotlib工具,会画基本得折现图,散点图,sin,cos图,一张画布画出多图 ...

  5. POJ2186 Popular Cows 题解 强连通分量

    题目链接:http://poj.org/problem?id=2186 题目大意: 每头牛都想成为牛群中的红人. 给定N头牛的牛群和M个有序对(A, B),(A, B)表示牛A认为牛B是红人: 该关系 ...

  6. 极光推送SDK通过泰尔终端实验室检测,符合统一推送接口标准

    1月7日,中国深圳--国内领先的开发者服务提供商极光(Aurora Mobile, NASDAQ:JG)宣布其旗下产品极光推送SDK通过中国信息通信研究院泰尔终端实验室的检测,其性能和接口标准符合统一 ...

  7. .Net Core 认证系统之基于Identity Server4 Token的JwtToken认证源码解析

    介绍JwtToken认证之前,必须要掌握.Net Core认证系统的核心原理,如果你还不了解,请参考.Net Core 认证组件源码解析,且必须对jwt有基本的了解,如果不知道,请百度.最重要的是你还 ...

  8. PHP 转化 Excel导入时间

    $fixation = 25569; $fixationT = 24 * 60 * 60; $date = gmdate('Y-m-d H:i:s', ('excel导入的时间'- $fixation ...

  9. Linux 踩坑记

    # Linux docker内部执行apt-get install 报错 在某个项目中使用docker构建mysql容器后想要在容器中修改mysql的配置文件,使用vim后提示 bash: vim: ...

  10. 如何在Go项目中输出版本信息?

    我们经常在使用CLI工具的时候,都会有这样的参数输出: ``` ➜ ~ docker version Client: Docker Engine - Community Version: 18.09. ...