今天,省分技术人员反映数据库登录异常。

查询oerr,发现该错误是一般性提示,可能导致的原因有数据库未注册、本地文件配置问题等。由于平时连接并没有问题,是突发情况,所以排除了配置问题。

远程登录查询监听,发现监听并无问题,但在尝试本地登录时出现ora 00020错误

  1. oracle@dxxxx:~> sqlplus / as sysdba
  2. SQL*Plus: Release 11.2.0.4.0 Production on Mon Apr 25 10:40:08 2016
  3. Copyright (c) 1982, 2013, Oracle.  All rights reserved.
  4. ERROR:
  5. ORA-00020: maximum number of processes (1200) exceeded
  6. Enter user-name:

这说明进程数超过了数据库设定值。尝试在另一个节点登录则并无问题。

那么应用应该不会出现问题才对,因为至少有一个节点是可用的。

为了查找问题根源,我从另一台服务器上使用轻松连接的方式连接节点2的实例,结果报ora 01653

  1. oracle@xxxx:/myimp/aud> sqlplus yy/yy@node2:1521/xxxx
  2. SQL*Plus: Release 11.2.0.4.0 Production on Mon Apr 25 10:04:32 2016
  3. Copyright (c) 1982, 2013, Oracle.  All rights reserved.
  4. ERROR:
  5. ORA-00604: error occurred at recursive SQL level 1
  6. ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
  7. ORA-02002: error while writing to audit trail
  8. ORA-00604: error occurred at recursive SQL level 1
  9. ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
  10. Enter user-name:

问题很明显了,系统表空间应该是爆了。而aud$是审计相关。因此查询系统表空间使用情况,并查找系统表空间内数据量最大的表。

  1. SQL> col file_name for a50
  2. SQL> select file_name,bytes/1024/1024/1024 GB from dba_data_files where tablespace_name='SYSTEM';
  3. FILE_NAME                                                  GB
  4. -------------------------------------------------- ----------
  5. +DATADG/data/datafile/system.259.783425779         31.9726563
  1. SQL> select * from (
  2. 2  select table_name,blocks*8192/1024/1024/1024 GB from user_tables where blocks is not null order by 2 desc)
  3. 3  where rownum<10;
  4. TABLE_NAME                             GB
  5. ------------------------------ ----------
  6. AUD$                           27.4380493
  7. IDL_UB1$                       .257354736
  8. WRM$_SNAPSHOT_DETAILS          .232673645
  9. WRI$_ADV_OBJECTS               .193763733
  10. HISTGRM$                       .130683899
  11. WRH$_ACTIVE_SESSION_HISTORY     .11491394
  12. WRH$_FILESTATXS                .112823486
  13. OBJ$                           .068336487
  14. SOURCE$                        .066230774
  15. 9 rows selected.

可以看出,系统表空间已达到上限32G,且其中审计表AUD$占了27G。

查看审计规则,可以看到数据库审计了每次的连接。

现在清楚了。新有的连接因为审计策略需要写入系统表空间的AUD$表,但由于系统表空间已达到空间配额,数据无法写入,导致连接失败。

数据库急需可用,而该表因bug问题不能用数据泵导出,只能exp,耗时太长,因此直接truncate操作。

截断aud$后,从节点1本地连接数据库正常。但从B库连接A库节点1实例仍报ora 00020错误。查看节点1进程数

  1. SQL> select count(*) from v$process;
  2. COUNT(*)
  3. ----------
  4. 1198

查看参数为1200,节点2进程数为121.因此,怀疑省分配置的tnsnames.ora并未使用LB,导致所有连接只会去节点1.

目前节点1不能连接,是因为之前的连接都hung在这儿,导致连接拥堵。停掉节点一后,B库远程可以连到A库。

  1. SQL> show parameter process
  2. NAME                                 TYPE        VALUE
  3. ------------------------------------ ----------- ------------------------------
  4. aq_tm_processes                      integer     1
  5. cell_offload_processing              boolean     TRUE
  6. db_writer_processes                  integer     16
  7. gcs_server_processes                 integer     6
  8. global_txn_processes                 integer     1
  9. job_queue_processes                  integer     1000
  10. log_archive_max_processes            integer     4
  11. processes                            integer     1200
  12. processor_group_name                 string
  13. SQL> select count(*) from v$process;
  14. COUNT(*)
  15. ----------
  16. 121

重启后,节点1进程数降下来,可以正常连接。

oracle审计AUD$过大导致的数据库登录异常的更多相关文章

  1. oracle所在磁盘空间不足导致了数据库异常

    oracle所在磁盘空间不足导致了数据库异常.需要减小数据文件的大小来解决. 1.检查数据文件的名称和编号 select file#,name from v$datafile; 2.看哪个数据文件所占 ...

  2. 转 listener.log文件过大导致oracle数据库连接非常慢

    数据库(31)  最近发现oracle数据库连接非常慢,sqlplus很快,用客户端就很慢,甚至会无响应. 然后服务器内存一下就飙升到了90%,不是表空间占满了,也不是数据库连接数占满了.重启还是一样 ...

  3. Oracle 监听器日志文件过大导致监听异常

    Oracle 监听器日志文件过大导致监听异常 db版本:11.2.0.1 os版本:windows2008 现象: 应用异常,无法连接数据库.登陆数据库服务器,查看监听已经断掉.尝试重启监听,重启失败 ...

  4. listener.log文件过大导致oracle假死

    /home/u01/oracle/product/11gr2/db_1/log/diag/tnslsnr/VM_179_95_centos/listener/trace/listener.log li ...

  5. Oracle归档文件夹权限设置错误导致的数据库问题解决

    把oracle设置为归档模式并且为归档文件新建文件夹 /home/oracle/app/oracle/arch/orcl 但是在启动或者备份时候经常性出现错误 startup报错 startup同时日 ...

  6. [Oracle]审计Audit

    1.Audit的概念 Audit是监视和记录用户对数据库进行的操作,以供DBA进行问题分析.利用Audit功能,可以完成以下任务: 监视和收集特定数据库活动的数据.例如管理员能够审计哪些表被更新,在某 ...

  7. Oracle审计相关对象的迁移

    目录 创建审计用的表空间 在线迁移 查询结果 在日常的数据库维护中,经常出现因为数据库登录审计的功能启动,导致system表空间被用满.从而出现异常,一般建议把aud$相关对象迁移到其他表空间,从而避 ...

  8. oracle审计表迁移

    ============ oracle审计表迁移到新的表空间 ============ 前言 oracle数据库开启审计功能后会占用大量的SYSTEM系统表空间,要么定时对审计表进行清理,要么对系统表 ...

  9. [转]ORACLE 审计功能

    审计是对选定的用户动作的监控和记录,通常用于: u          审查可疑的活动.例如:数据被非授权用户所删除,此时安全管理员可决定对该 数据库的所有连接进行审计,以及对数据库的所有表的成功地或不 ...

随机推荐

  1. codevs3304 水果姐逛水果街Ⅰ

    题目描述 Description 水果姐今天心情不错,来到了水果街. 水果街有n家水果店,呈直线结构,编号为1~n,每家店能买水果也能卖水果,并且同一家店卖与买的价格一样. 学过oi的水果姐迅速发现了 ...

  2. CF502C The Phone Number

    C. The Phone Number time limit per test 1 second memory limit per test 256 megabytes     Mrs. Smith ...

  3. 一致性hash算法小结

    把服务器的IP或者主机名作为key对2^32求余,余数一定是2^32-1,然后放到(平行映射)0~2^32次方首尾相连的环上.   理想状态下服务器会均匀分布在这个环上,当数据存储时,依然把key对2 ...

  4. Invalidation queue with "bit-sliceability"

    BACKGROUND, FEATURES In a computer system having more than one memory storage facility, a special da ...

  5. iOS设计模式 —— KV0

    刨根问底KVO KVO 全称 Key-Value Observing.中文叫键值观察.KVO其实是一种观察者模式,观察者在键值改变时会得到通知,利用它可以很容易实现视图组件和数据模型的分离,当数据模型 ...

  6. jQuery插件--zTree中点击节点实现页面跳转时弹出两个页面的问题

    这是第一次使用zTree,所以在使用之前我要先写一个demo来学习一下.我们要注意的是,zTree是一个jQuery插件,所以我们在导入zTree的js文件之前要先导入jQuery的js文件. 我们先 ...

  7. JavaScript的条件运算符与条件语句

    1.条件运算符 比较运算符 ==    判断左右两边数据的值是否相等 ===   判断左右两边数据的之是否相等,同时还判断两边的数据类型是否一样 !=  比较运算符的比较结果都是布尔值,true或者f ...

  8. 取消SecureCRT的右击粘贴功能

    默认为选中时自动复制,右键粘贴 要取消的话在: Options->Global Options ...->Terminal 里面有个Mouse的选项块. Paste on Right/Le ...

  9. java类型强转

    知乎: 首先基本数据类型不是对象,强转改的是值,分为有损和无损,有损会丢失数据细节. 然后对象,只有继承关系的类才能强转,改变的只是引用,而且向上转型是安全的,把你转为人类是安全的,你还是你,只是现在 ...

  10. 微信小程序自动去除input空格的方法

    当用户输入账号或者密码的时候,可能会有输入空格的情况,但是实际需要是不能够有空格的,所以我们要做一个去除空格,并且适应所有input的name参数的方法,下面请看源码: wxml: <input ...