Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16385
  • 博文数量: 7
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-09 10:43
个人简介

低调做人,高调做事!!!

文章分类
文章存档

2016年(7)

我的朋友

分类: Oracle

2016-10-14 16:58:57

oracle11g 默认开启了数据库审计功能,并且会写到数据库中,会引起System 表空间不断增加,所以需要关闭!!!

例如,下图所示:

此报错,说明表空间system太大已满,进入目录中,可以看到oradata\glis下的SYSTEM01.DBF文件非常大,可能达到了几十个G,这可能是由于oracle11g的审计功能造成的,审计功能会自动保存数据库的每一次操作记录,解决办法就是将审计功能关闭,删掉一些审计记录。

解决办法:
sqlplus / as sysdba;
(注意:如果遇到sqlplus / as sysdba;  报ora-01031错误,则检查sqlnet.ora(product\11.2.0\dbhome_1\NETWORK\ADMIN这个目录下)是否包含这句:SQLNET.AUTHENTICATION_SERVICES= (NTS),没有的话加上即可!)。

然后查看一下审计日志各用户记录数

SQL> select userid ,count(1) from aud$ group by userid;

USERID                           COUNT(1)

------------------------------ ----------

BM                                         2

CTXSYS                                  8

SYSTEM                                 29

SCOTT                                   2

USRGLIS                         165479523

DBSNMP                            2573262

SYSMAN                              59479

 

已选择7行。


删除日志(删除不是usrglis的记录)
delete from aud$ where userid <> ‘USRGLIS’;

commit;
===================================================================================

关闭审计
alter system set audit_trail='NONE' scope=spfile;
shutdown immediate;
startup;

此时,oracle一切正常!!!


注意:审计日志默认放在 aud$; 可以清空它,但要缩小System 表空间数据文件的大小,是个非常麻烦的事情(我直接把数据库重新做了),以后慢慢再研究。















阅读(3013) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~