项目中,会经常遇到archive log 日志已满的情况,会报出下记错误:
ORA-00257: archiver error. Connect internal only, until freed
处理方法:
1 登录oracle机器
2 执行:su - oracle
3 执行:sqlplus sys/password as sysdba
4 检查flash recovery area的使用情况
① 执行语句:select * from V$FLASH_RECOVERY_AREA_USAGE;
② 找到ARCHIVELOG行的PERCENT_SPACE_USED 列,该值为archivelog的使用率
5 找到archivelog所在目录
6 可另起一窗口,切换到oracle用户,删除/xxx/xxxxx/archivelog目录下的日志文件
7 执行:rman target sys/password
8 rman下执行:crosscheck archivelog all;
9 rman下执行:delete expired archivelog all;
10 可在sqlplus下再确认下log使用率。