网站备案负责人修改,用自己的电脑做网站划算,互联网企业有哪些行业,个人网站数据库怎么做版权声明#xff1a;本文为博主原创文章#xff0c;未经博主允许不得转载。 https://blog.csdn.net/bisal/article/details/19068663昨天同事说有个测试库无法登录了#xff0c;用PLSQL Developer登陆后提示#xff1a; ERROR: ORA-00604: error occurred at recursive SQL… 版权声明本文为博主原创文章未经博主允许不得转载。 https://blog.csdn.net/bisal/article/details/19068663 昨天同事说有个测试库无法登录了用PLSQL Developer登陆后提示 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 貌似以前听dbsnake说过这问题。 首先SYS.AUD$是数据字典表存储于SYSTEM表空间存储的是审计信息11g默认是开启审计 SQL show parameter audit_trail NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ audit_trail string DB 上面的提示明显是指SYSTEM表空间的SYS.AUD$表无法继续扩容了可能是磁盘空间不足或SYSTEM表空间分配的数据文件空间不足。针对上面这个问题有两种方法 1、扩容SYSTEM表空间。 2、降低SYS.AUD$的容量。 之所以有第二种方法从MOS73408.1这篇文章可以得到结论 SYS.AUD$ is the only SYS object that should ever be directly modified SYS.AUD$是唯一一个可以直接修改的SYS对象。 那如何降低SYS.AUD$的容量呢 1、最简单的方法就是truncate table SYS.AUD$最直接前提是不需要保留审计信息。 2、MOS中也介绍一种方法DELETE FROM sys.aud$ WHERE obj$nameobject_name;删除SYS.AUD$中指定对象的审计信息。这样带来的问题很明显就是不会降低高水位线。 3、也可以备份审计表然后再降低容量。 CREATE TABLE backup_aud$ AS SELECT * from sys.aud$; truncate table aud$; exp fileaud_backup.dmp tablesbackup_aud$ drop table backup_aud$; 如果仅需要降低SYS.AUD$占用的空间此时可以再次执行insert into aud$ select * from backup_aud$;将数据导入进来。 4、要删除SYS.AUD$表需要相应的权限要么是SYS用户要么具有DELETE ANY TABLE系统权限或者SYS用户将SYS.AUD$表的DELETE权限赋予这个用户。具有delete_catalog_role角色亦可以但11.2.0.2之前的版本可能有bug导致这个角色没有SYS.AUD$的删除权限需要人工添加具体也可参见9697811这个bug描述。 5、MOS有介绍The DELETE ANY TABLE privilege only applies to SYS objects if O7_DICTIONARY_ACCESSIBILITYTRUE表示如果O7_DICTIONARY_ACCESSIBILITY参数是TRUE则只有SYS用户可以具有DELETE ANY TABLE权限。查了一些资料也说O7_DICTIONARY_ACCESSIBILITY这个参数的作用就是保护数据字典基表FALSE要求SYS不能以普通用户角色登录必须用sysdba角色登录如果TRUE则普通用户也可以访问数据字典基表就会引起安全问题了。 转载于:https://www.cnblogs.com/lcword/p/9550637.html