oracle审计AUD$过大导致的数据库登录异常
今天,省分技术人员反映数据库登录异常。
查询oerr,发现该错误是一般性提示,可能导致的原因有数据库未注册、本地文件配置问题等。由于平时连接并没有问题,是突发情况,所以排除了配置问题。
远程登录查询监听,发现监听并无问题,但在尝试本地登录时出现ora 00020错误
- oracle@dxxxx:~> sqlplus / as sysdba
- SQL*Plus: Release 11.2.0.4.0 Production on Mon Apr 25 10:40:08 2016
- Copyright (c) 1982, 2013, Oracle. All rights reserved.
- ERROR:
- ORA-00020: maximum number of processes (1200) exceeded
- Enter user-name:
这说明进程数超过了数据库设定值。尝试在另一个节点登录则并无问题。
那么应用应该不会出现问题才对,因为至少有一个节点是可用的。
为了查找问题根源,我从另一台服务器上使用轻松连接的方式连接节点2的实例,结果报ora 01653
- oracle@xxxx:/myimp/aud> sqlplus yy/yy@node2:1521/xxxx
- SQL*Plus: Release 11.2.0.4.0 Production on Mon Apr 25 10:04:32 2016
- Copyright (c) 1982, 2013, Oracle. All rights reserved.
- ERROR:
- ORA-00604: error occurred at recursive SQL level 1
- ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
- ORA-02002: error while writing to audit trail
- ORA-00604: error occurred at recursive SQL level 1
- ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
- Enter user-name:
问题很明显了,系统表空间应该是爆了。而aud$是审计相关。因此查询系统表空间使用情况,并查找系统表空间内数据量最大的表。
- SQL> col file_name for a50
- SQL> select file_name,bytes/1024/1024/1024 GB from dba_data_files where tablespace_name='SYSTEM';
- FILE_NAME GB
- -------------------------------------------------- ----------
- +DATADG/data/datafile/system.259.783425779 31.9726563
- SQL> select * from (
- 2 select table_name,blocks*8192/1024/1024/1024 GB from user_tables where blocks is not null order by 2 desc)
- 3 where rownum<10;
- TABLE_NAME GB
- ------------------------------ ----------
- AUD$ 27.4380493
- IDL_UB1$ .257354736
- WRM$_SNAPSHOT_DETAILS .232673645
- WRI$_ADV_OBJECTS .193763733
- HISTGRM$ .130683899
- WRH$_ACTIVE_SESSION_HISTORY .11491394
- WRH$_FILESTATXS .112823486
- OBJ$ .068336487
- SOURCE$ .066230774
- 9 rows selected.
可以看出,系统表空间已达到上限32G,且其中审计表AUD$占了27G。
查看审计规则,可以看到数据库审计了每次的连接。
现在清楚了。新有的连接因为审计策略需要写入系统表空间的AUD$表,但由于系统表空间已达到空间配额,数据无法写入,导致连接失败。
数据库急需可用,而该表因bug问题不能用数据泵导出,只能exp,耗时太长,因此直接truncate操作。
截断aud$后,从节点1本地连接数据库正常。但从B库连接A库节点1实例仍报ora 00020错误。查看节点1进程数
- SQL> select count(*) from v$process;
- COUNT(*)
- ----------
- 1198
查看参数为1200,节点2进程数为121.因此,怀疑省分配置的tnsnames.ora并未使用LB,导致所有连接只会去节点1.
目前节点1不能连接,是因为之前的连接都hung在这儿,导致连接拥堵。停掉节点一后,B库远程可以连到A库。
- SQL> show parameter process
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- aq_tm_processes integer 1
- cell_offload_processing boolean TRUE
- db_writer_processes integer 16
- gcs_server_processes integer 6
- global_txn_processes integer 1
- job_queue_processes integer 1000
- log_archive_max_processes integer 4
- processes integer 1200
- processor_group_name string
- SQL> select count(*) from v$process;
- COUNT(*)
- ----------
- 121
重启后,节点1进程数降下来,可以正常连接。
oracle审计AUD$过大导致的数据库登录异常的更多相关文章
- oracle所在磁盘空间不足导致了数据库异常
oracle所在磁盘空间不足导致了数据库异常.需要减小数据文件的大小来解决. 1.检查数据文件的名称和编号 select file#,name from v$datafile; 2.看哪个数据文件所占 ...
- 转 listener.log文件过大导致oracle数据库连接非常慢
数据库(31) 最近发现oracle数据库连接非常慢,sqlplus很快,用客户端就很慢,甚至会无响应. 然后服务器内存一下就飙升到了90%,不是表空间占满了,也不是数据库连接数占满了.重启还是一样 ...
- Oracle 监听器日志文件过大导致监听异常
Oracle 监听器日志文件过大导致监听异常 db版本:11.2.0.1 os版本:windows2008 现象: 应用异常,无法连接数据库.登陆数据库服务器,查看监听已经断掉.尝试重启监听,重启失败 ...
- listener.log文件过大导致oracle假死
/home/u01/oracle/product/11gr2/db_1/log/diag/tnslsnr/VM_179_95_centos/listener/trace/listener.log li ...
- Oracle归档文件夹权限设置错误导致的数据库问题解决
把oracle设置为归档模式并且为归档文件新建文件夹 /home/oracle/app/oracle/arch/orcl 但是在启动或者备份时候经常性出现错误 startup报错 startup同时日 ...
- [Oracle]审计Audit
1.Audit的概念 Audit是监视和记录用户对数据库进行的操作,以供DBA进行问题分析.利用Audit功能,可以完成以下任务: 监视和收集特定数据库活动的数据.例如管理员能够审计哪些表被更新,在某 ...
- Oracle审计相关对象的迁移
目录 创建审计用的表空间 在线迁移 查询结果 在日常的数据库维护中,经常出现因为数据库登录审计的功能启动,导致system表空间被用满.从而出现异常,一般建议把aud$相关对象迁移到其他表空间,从而避 ...
- oracle审计表迁移
============ oracle审计表迁移到新的表空间 ============ 前言 oracle数据库开启审计功能后会占用大量的SYSTEM系统表空间,要么定时对审计表进行清理,要么对系统表 ...
- [转]ORACLE 审计功能
审计是对选定的用户动作的监控和记录,通常用于: u 审查可疑的活动.例如:数据被非授权用户所删除,此时安全管理员可决定对该 数据库的所有连接进行审计,以及对数据库的所有表的成功地或不 ...
随机推荐
- tr/td
在HTML中,tr代表行,td代表列. 说明: 1.tr与td必须一起使用,并且输入的内容必须在td里面: 2.td必须在tr里面,表示在一行中的列: 3.在一个tr里面,有x个td,就表示在这一行里 ...
- CentOS7 Tomcat 启动过程很慢,JVM上的随机数与熵池策略
1. CentOS7 Tomcat 启动过程很慢 在centos启动官方的tomcat时,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的: <co ...
- bzoj4886 [Lydsy2017年5月月赛]叠塔游戏
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4886 [题解] 跟bzoj4883:http://www.cnblogs.com/galax ...
- Kali Linux中前十名的Wifi攻击工具
无 线网络的攻与防一直是比较热门的话题,由于无线信号可以被一定范围内的任何人接收到(包括死黑阔),这样就给WIFI带来了安全隐患:路由器生产厂商和网 络服务供应商(ISPs)的配置大多是默认开启了WP ...
- 定制一个支持中英文的简单LaTex模板
平常写汇报文档什么的,word排版有时还是比较费劲,遂定制一个简单的LaTex模板,中文默认为宋体,英文为LaTex默认字体,支持彩色高亮展示,有目录书签,有页眉展示,大致如下: LaTex代码如下: ...
- 多个springboot项目部署在同一tomcat上,出现jmx错误
多个springboot项目部署在同一tomcat上,出现jmx错误 原因:因为jmx某些东西重复,禁用jmx就可以了 endpoints.jmx.unique-names=true
- celery-分布式任务队列-原理
# 转自:https://www.cnblogs.com/forward-wang/p/5970806.html 在学习Celery之前,我先简单的去了解了一下什么是生产者消费者模式. 生产者消费者模 ...
- Solidity 文档--第一章:智能合约入门
一个简单的智能合约 先从一个非常基础的例子开始,不用担心你现在还一点都不了解,我们将逐步了解到更多的细节. 存储 contract SimpleStorage { uint storedData; f ...
- ORM-老师信息系统
老师信息管理 思考 三种方式创建多对多外键方式及其优缺点. 通过外键创建 (自定义第三张表,通过外键与其他两张表关联 但是不能用Django ORM 多对多操作的语法) class Class(mo ...
- (6)python 循环控制
一.if语句 1.条件执行和if语句 2.else子句 3.elif子句 多个检查条件时 4.嵌套代码 5.空语句 使用pass占位 6.断言 关键字 assert 判断表达式前加上这个关键字表示, ...