通过navicat连接oralce数据库时,发现弹出报错:ora-00257 archiver error. connect interval only,unit freed
。
经查询,大致定位为日志满了,需要清理日志。
1、以oracle身份登录数据库
su - oracle
2、进入Sqlplus控制台
sqlplus /nolog
3、以系统管理员登录
connect / as sysdba
4、查看空间使用率
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE
-------------------- ------------------ -------------------------
NUMBER_OF_FILES
---------------
CONTROL FILE 0 0
0
REDO LOG 0 0
0
ARCHIVED LOG 99.99 0
329
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE
-------------------- ------------------ -------------------------
NUMBER_OF_FILES
---------------
BACKUP PIECE 0 0
0
IMAGE COPY 0 0
0
FLASHBACK LOG 0 0
0
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE
-------------------- ------------------ -------------------------
NUMBER_OF_FILES
---------------
FOREIGN ARCHIVED LOG 0 0
0
7 rows selected.
很明显,ARCHIVED LOG的产生了很多文件,占了99.99%的空间使用,对于无效日志,需要处理下。使用rman
命令进行处理:
5、进入rman控制台
# 若系统没有rman 命令,可使用 find / -name rman 查找文件位置,并软链接到 /usr/local/bin/rman 下即可
su - oracle
rman target /
当然也可以在第四步的sql控制台输入以下命令进入:
host
rman target /
6、检查、并删除已过期文件
crosscheck archivelog all;
delete expired archivelog all;
若上述操作后,空间使用率还是很高,那么需要手动指定清理了。
7、查看下日志情况
list archivelog all;
在空间使用率高的情况下,应该会输出大量日志文件相关信息。
8、根据实际,删除某时间节点前的日志
# 删除三天前的日志
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-3';
还有很多相关的删除日志命令,一般这个也够用了。不确定能不能删的情况下,建议下备份日志数据。
好了处理完毕后,在查询空间使用情况:
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE
-------------------- ------------------ -------------------------
NUMBER_OF_FILES
---------------
CONTROL FILE 0 0
0
REDO LOG 0 0
0
ARCHIVED LOG 3.7 0
11
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE
-------------------- ------------------ -------------------------
NUMBER_OF_FILES
---------------
BACKUP PIECE 0 0
0
IMAGE COPY 0 0
0
FLASHBACK LOG 0 0
0
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE
-------------------- ------------------ -------------------------
NUMBER_OF_FILES
---------------
FOREIGN ARCHIVED LOG 0 0
0
7 rows selected.
使用率大大下降,重新在navicat连接数据库,一切正常。