有时候Oracle在正常使用一段时间后,连接数据库,报错:ORA-00257
原因:空间不足错误解决:检查数据文件和日志文件的存储空间,进行添加相应数据文件或者对归档日志重新设置归档路径在10g及其以上版本中,可能是闪回日志文件不足。我们可以增加其flash_recovery_area(10g以前需要关闭数据库实例,以后不需要)大小或者删除归档日志。
方法一
增加闪回空间
1 增加sql
alter system set db_recovery_file_dest_size=21474836480; 设置使用空间大小(20*1024*1024*1024),20GB
查看sql select * fromv$recovery_file_dest;
方法二
删除归档日志
1查看一下位置
select * from v$recovery_file_dest
2查看占用了多少空间 如下2g多了
select sum(percent_space_used)*3/100 fromv$flash_recovery_area_usage;
3 查看闪回区使用率 已经77%了
select * from v$flash_recovery_area_usage;
4 把闪回区的归档日志cp到备份文件夹,然后rman target /
5 检查一些无用的archivelog
crosscheckarchivelog all
6 删除过期的归档
delete expiredarchivelog all
删除当天-1的归档
delete archiveloguntil time 'sysdate-1'
7 文件删除后空间会释放,别忘进入到闪回区把空文件夹删除,rman 会删除归档并不会删除文件夹。
方法三 把归档日志放到其他路径
alter system setlog_archive_dest_1='location=D:\oracle\archive';
注意 一定要有location
切换日志
alter system switchlogfile;
查看是否切换成功
Select recid,name,first_timefrom v$archived_log;
Log_archive_dest_n 可以设置多个归档日志路径,用n区分
当有多个归档日志的时候如果不用某个路径归档日志,设置它等于空就可以了。