项目中使用的是Oracle数据库,由于之前没怎么用过Oracle,所有难免会遇到一些没有遇到过的问题。这不,突然有一天连不上数据库了,tomcat扔给了这样一个错误:ORA-00257: Archiver error。
Google了一下,说是归档日志写满了。。。之前测试环境也没出现过,查了下资料,发现-----
是启用了归档。由于数据库还有好多不同的项目要用到,所以考虑了一下,还是不要轻易去动数据库吧。
去Oracle安装目录下找到RMAN--参考“G:\db\Oracle\product\11.2.0\dbhome_1\BIN\rman”.
写一个.bat文件,参考:
G:/db/Oracle/product/11.2.0/dbhome_1/BIN/rman target sys/数据库名@密码 cmdfile=D:/OracleArchLogClear.rman log=D:/rman.log
释: cmdfile后的是一个后缀名为.rman的文件,文件内容为:
我设置的删除4天以前的所有的日志。可以修改 sysdate-4 来修改删除操作。
(备注:你也可以直接使用cmd执行rman来执行delete操作)
- 打开plsql,使用sys用户登录系统,执行 select * from V$FLASH_RECOVERY_AREA_USAGE;当看到99.99的时候,就会出现错误。
- 使用RMAN删除归档日志。
- 双击执行 “OracleArchLogClear.bat”文件,等待执行结束,再使用plsql,操作步骤1,就可以看到 ARCHIVED_LOG的数值减小了,数据库也就能连上了。
并且,在我的的“D”盘(路径在.bat文件中设置)下生成了 “rman.log”文件,可以查看log.
最后,因为项目中产生的日志特别大,特别多,所以在 Window系统下设置定期执行计划,定期5天执行一次 ".bat",文件。不知道如何在Window系统下设置定期执行计划,可以去百度一下。
参考资料:https://blog.csdn.net/xiaolongzaixian/article/details/47921247