ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM系统表空间满
来源:互联网 发布:软件模块化设计原则 编辑:程序博客网 时间:2024/05/22 13:53
用普通用户连接数据库失败:系统表空间满,不能为审计表AUD$分配空间
一、提示错误:
SQL> conn user/password
ERROR:
ORA-00604: erroroccurred at recursive SQL level 1
ORA-01653: unable toextend table SYS.AUD$ by 8192 in tablespace SYSTEM
ORA-02002: errorwhile writing to audit trail
ORA-00604: erroroccurred at recursive SQL level 1
ORA-01653: unable toextend table SYS.AUD$ by 8192 in tablespace SYSTEM
看字面意思:在system表空间中不能扩充表SYS.AUD$
解决办法:此时用管理员登录 扩充表空间:
方法一:给表空间增加数据文件,并允许自动增长:
ALTER TABLESPACE SYSTEM ADD DATAFILE '/userdata/app/Administrators/oradata/ORCL/system03.dbf' SIZE5000M AUTOEXTEND ON NEXT 5000M MAXSIZE 20000M;
方法二:允许已存在的数据文件自动增长:
alter database datafile '/userdata/app/Administrators/oradata/ORCL/system01.dbf' autoextend on next 5000M maxsize unlimited;
方法三:手工改变已存在数据文件大小:
alter database datafile '/userdata/app/Administrators/oradata/ORCL/system01.dbf' resize 40000M;
oracle可管理的最大数据块为2的22次方个,而根据单个数据块大小大小的不同,其最大容量也是不同的。对于OLTP应用,数据块的大小通常为8K,这样,算下来,单个数据文件的大小最大为(2^22)*8K=32G.
既使指定“不限制”,其最大空间也是不能超过可管理最大空间的上限的。
修改表空间数据文件大小为不限制的语句为:
alter databasedatafile '/oradata/orcl/demo01.dbf' autoextend on maxsize unlimited;
创建表空间数据文件大小为不限制的语句为:
create tablespacedemo2 datafile '/oradata/orcl/demo201.dbf' size 10M autoextend on maxsizeunlimited;
分析原因:
系统表空间正常情况下只存放了数据字典之类的东西,所以占用的空间一般在500M以下。如果你的系统表空间占用比较多的空间,可能有以下几方面的原因:
1)没有为用户明确指定默认表空间,导致system系统表空间作为用户默认表空间
2)开启了审计,请检查此表的大小AUD$
你可以运行以下查询来检查一下系统表空间哪些表比较大:
SQL> select * from (selectSEGMENT_NAME,sum(bytes)/1024/1024 sx from dba_segments
where tablespace_name='SYSTEM'group by segment_name)
where sx>100 order by sxdesc;
通过查询结果可以看出AUD$表以达到32G
用sys登录数据库查看该表纪录数
select count(*) sum from AUD$;
可以查询到AUD$占用空间几乎达到32GB与上述数据文件最大限制复合,所以无法新增
解决方法大概可分为以下几种:
一、为system表空间另外新增一个数据文件。
alter tablespace system add datafile 'D:\oracleXE\oradata\XE\system_01.dbf' resize 1024M;
二、更改system表空间的数据文件SYSTEM.dbf分配空间。
- alter database datafile 'D:\oracleXE\oradata\XE\system_01.dbf' autoextend on;
- alter database datafile 'D:\oracleXE\oradata\XE\system_01.dbf' resize 1024M;
三、truncate掉AUD$表并关闭审计功能:
SQL> alter system set audit_trail=none scope=spfile;
SQL>shutdown immediate;
SQL>startup;
四、将AUD$默认表空间由system移出。
数据库oracle11g默认是关闭审计的,为了跟踪监视用户所执行的数据库操作,审计记录可存在数据字典表(称为审计记录:存储在system表空间中的SYS.AUD$表中,可通过视图dba_audit_trail查看)或操作系统审计记录中(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/).。默认情况下审计是没有开启的。 详见下面的《关于审计部分》
如果要开启最好建立别的表空间专门存放审计,这样也不会影响system表空间性能
转移步骤:
1、新增表空间:
create tablespace SHENJI datafile '/userdata/app/Administrators/oradata/ORCL/shenji01.dbf' size5000MAutoextend onNext 5000MMaxsize unlimited;
2、迁移审计表和表上的索引:select index_name,index_type from user_indexes where table_name='AUD$'/'AUDIT$'/'AUDIT_AC'
查看表索引:
SQL>alter table aud$ move tablespace shenji;
Tablealtered.
SQL>alter table audit$ move tablespace shenji;
Tablealtered.
SQL>alter index i_audit rebuild online tablespace shenji;
Indexaltered.
SQL>alter table audit_actions move tablespace shenji;
Tablealtered.
SQL>alter index i_audit_actions rebuild online tablespace shenji;
Indexaltered.
查询表空间、数据文件、文件号:
selectfile_name,file_id,tablespace_name from dba_data_files;
查询数据库有哪些表空间:
查询现有的表空间大小:
selecttablespace_name,sum(bytes)/1024/1024 from dba_data_files group bytablespace_name;
查询表空间上有哪些用户:
select distinct s.owner from dba_segments s wheres.tablespace_name ='SYSTEM';
查询表空间实际使用大小:
selectb.file_id id, b.tablespace_name tbsname,b.bytes/1024/1024||'M'byte,(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||'M' used,sum(nvl(a.bytes,0))/1024/1024||'M' lest,100-sum(nvl(a.bytes,0))/(b.bytes)*100percent from dba_free_space a,dba_data_files b where a.file_id=b.file_id groupby b.tablespace_name,b.file_id,b.bytes order by b.file_id;
- ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM系统表空间满
- ORA-01653: unable to extend table SYS.AUD$ by 128 in tablespace SYSTEM
- 关于“ORA-01653: unable to extend table SYS.AUD$ by 128 in tablespace SYSTEM”的错误
- ORA-01653:unable to extend table SYS.AUD$ by 128 in tablespace SYSTEM
- ora-01653: unable to extend table sys.aud$ by 8192 in tablespac system
- ora-01653: unable to extend table sys.aud$ by 8192 in tablespac system
- ORA-00604: error occurred at recursive SQL level 1 ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
- ORA-01653 unable to extend table TSSA.PROFESSOR_TABLE by 8192 in tablespace TSSAPUB
- ORA-01653: unable to extend table STEVEN3.FOXT_RESULT by 8192 in tablespace USERS
- ORA-01653: unable to extend table string.string by string in tablespace string
- ORA-01653: unable to extend table XXXX by 8497 in tablespace DAT
- ORA-01653: unable to extend table FND_CONCURRENT_REQUESTS by 16 in tablespace APPS_TS_TX_DATA
- ORA-01653: unable to extend table FD by 128 in tablespace
- undo表空间不足,ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS2'
- undo表空间不足,ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS2'
- 临时表空间不够ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
- ORA-01688:unable to extend table name。name partition NAME by NUM in tablespace NAME
- Oracle执行脚本时遇到ORA-01653: unable to extend table X by Y in tablespace错误
- Zookeeper集群问题介绍
- POJ-1094 Sorting it All Out
- 最小生成树之prim模板题
- 优雅设计封装基于Okhttp3的网络框架(完):原生HttpUrlConnction请求、多线程分发 及 数据转换
- Java在linux上只能在程序的当前目录下创建文件/文件夹导致的问题
- ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM系统表空间满
- Nginx配置SSL证书部署HTTPS网站(颁发证书)
- java编程题古典算法之兔子问题
- Android如何分析和研究Monkey Log文件
- 抓包参数tcp[13]详解
- linux内核虚拟化之路(一) cgroup机制
- debug断点调试
- 服务间通信之Http框架
- mysql修改字段的类型和相关属性