今天用scott用户登录测试用的oracle,报错:ORA-00257: archiver error. Connect internal only, until freed。
在网上查了一下,应该是archive log 满了,需要清除。所有步骤都是oracle用户下操作,步骤如下:
1. rman登录,查看所有archive log,可以得知archive log的地址
$ rman target orcl # orcl是数据库的sid RMAN> list archivelog all; -- 假设archive log存在/home/oracle/flash_recovery_area/ORCL/archivelog
2. 去archivelog的目录,删除多于的archive log
3. rman登录,check所有archive log状态,会发现有一些是check失败的,因为已经被删除了
RMAN> crosscheck archivelog all;
4. 删除无效的archive log记录
RMAN> delete expired archivelog all;
5. sys用户登录db,查询archive log占用空间的百分比
sys@ORCL> select * from v$flash_recovery_area_usage;
发现PERCENT_SPACE_USED列,ARCHIVED LOG的占用比例明显降低,从99.55%降到6.78%
至此搞定,测试用oracle,平时少有人打理,错误常有,多多积累。
参考文章:http://liuxiaojian.iteye.com/blog/1179596