为保证安全,本站点已取消所有百度云分享链接,如有下载需要,请在评论里留下邮箱。 |
出现这个问题的原因是由于表空间不足导致的
以sys登录进去之后,查询对应表空间
1 2 3 4 5 6 7 8 9 10 11 12 13 |
select a.tablespace_name as "表空间名", a.bytes / 1024 / 1024 as "表空间大小(M)", (a.bytes - b.bytes) / 1024 / 1024 as "已使用空间(M)", b.bytes / 1024 / 1024 "空闲空间(M)", round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "使用比" from (select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name, sum(bytes) bytes, max(bytes) largest from dba_free_space group by tablespace_name) b where a.tablespace_name = b.tablespace_name order by ((a.bytes - b.bytes) / a.bytes) desc; |
然后看对应的表空间的大小以及使用比等等
当时一看就知道是这个SYSTEM表空间出的问题,因为使用占比已达到99%多,然后,查询一下表空间在服务器上的路径
1 2 3 4 5 6 |
select tablespace_name, file_id, file_name as "表空间所在路径", round(bytes / (1024 * 1024), 0) total_space from dba_data_files order by tablespace_name |
服务器上表空间对应路径是 /oradata/orcl/system01.dbf
然后就可以直接用扩大表空间的sql,直接扩大表空间大小
1 |
alter database datafile '/oradata/orcl/system01.dbf' resize 32767M; |
这个resize,是修改之后大小,修改完毕数据库就可以正常登录了。
表空间有个自动增长机制,我也给它加上了
1 2 |
ALTER DATABASE DATAFILE '/oradata/orcl/system01.dbf' AUTOEXTEND ON;//打开自动增长 ALTER DATABASE DATAFILE '/oradata/orcl/system01.dbf' AUTOEXTEND ON NEXT 200M ;//每次自动增长200m |
另外看了别人的博客,也分析的挺好的,也摘抄下来
oracle表空间不足,一般有两个原因:一,原表空间太小,没有自增长;二,表空间已自增长,而且表空间也已足够大,对于这两种原因分别有各自的解决办法。
可以看出来,这边我遇到的情况是第一种,第二种的话,解决方法也配上来
【解决办法-原因二】
因为表空间中的数据文件已经足够大(达到32G),所以,这时仅仅增加表空间大小是不行的。
这个时候,我们可以增加该表空间的数据文件,这样表空间的大小即变为64G了。
1 2 3 |
ALTER TABLESPACE SYSTEM--表空间名 ADD DATAFILE /oradata/orcl/system02.dbf' SIZE 32767M; |
未经允许不得转载:晚风博客 » ORA-00604: error occurred at recursive SQL level 1ORA-01653: unable to extend table SYS.AUD$ by 8192