出现ORA-00257错误(空间不足错误),通过查找资料,绝大部分说这是由于归档日志太多,占用了全部的硬盘剩余空间导致的,通过简单删除日志或加大存储空间就能够解决。
SecureCRT登录服务器,切换用户oracle,连接oracle
SecureCRT登录服务器,切换用户oracle,连接oracle
[root@userbeta~]# su - oracle [oracle@userbeta~]$ sqlplus /nolog SQL> connect /as sysdba
检查flash recovery area的使用情况,可以看见archivelog已经很大了,达到99.94 SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
计算flash recovery area已经占用的空间 SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
修改FLASH_RECOVERY_AREA的空间修改为6GB,修改前确认磁盘有足够空间 SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=8g;
现在来清理一下archivelog归档日志,生产环境建议备份 查询日志目录位置 show parameter recover; 删除归档日志,USERDB是数据库实例名 cd /u01/app/oracle/flash_recovery_area/USERDB/archivelog 使用root帐户删除该目录下的文件或者备份其它地方
使用rman 操作,内容太多,只做部分截图 [oracle@userbeta archivelog]$ rman RMAN> connect target sys/sys_passwd crosscheck backup; delete obsolete; delete expired backup; crosscheck archivelog all; delete expired archivelog all; //此步会有提示,输入 YES 回车 host; //退出rman
确认是否操作成功 # sqlplus /nolog SQL> connect /as sysdba SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;