部署自动清理任务解决ORA-00257: archiver error. Connect internal only, until freed

使用oracle数据库的时候,我们一般都会开启归档,确保数据库的日志连续和和数据安全。但随着数据库的运行,归档文件会越来越多,最终撑满磁盘空间,数据库无法继续归档,出现"ORA-00257: archiver error. Connect internal only, until freed"错误。人为手工清理日志文件,可以暂时解决相应问题,为彻底解决该问题,我们可以设置清理任务。

一、直接清理方法

1.1,制作清理脚本

我们在服务器上,生成一个脚本,通过rman命令去清理3天前的归档文件:

bash 复制代码
[oracle@oracle11g app]$ pwd
/oracle/app
[oracle@oracle11g app]$ ls
control180116.ora  controlbak.ora  createcontrol.sh  data  orabak  oracle  oraInventory  rm_arch.sh
[oracle@oracle11g app]$ cat rm_arch.sh
delete noprompt archivelog until time 'sysdate-3';
crosscheck archivelog all;
[oracle@oracle11g app]$ 

1.2,配置自动任务脚本

bash 复制代码
[oracle@oracle11g app]$ ls auto_rm_arch.sh 
auto_rm_arch.sh
[oracle@oracle11g app]$ cat auto_rm_arch.sh 
su - oracle -c "rman target / cmdfile=/oracle/app/rm_arch.sh msglog=/oracle/app/rm_arch.log"
[oracle@oracle11g app]$ 

我们配置crontab自动任务,让其每天晚上2点调用auto_rm_arch.sh,进行归档文件的自动清理。

bash 复制代码
[root@oracle11g ~]# crontab -l
0 2 * * * sh /oracle/app/auto_rm_arch.sh
[root@oracle11g ~]# 

二、备份归档日志文件方法

大部分oracle数据库,我们都需要进行rman的备份,我们可以通过备份归档的时候,对备份完成的归档日志文件进行清理,下面我们列出归档日志备份清理的脚本:

bash 复制代码
crosscheck archivelog all;
run 
{  allocate channel a1 type 'disk';
   allocate channel a2 type 'disk';
   allocate channel a3 type 'disk';	   
   sql 'alter system archive log CURRENT';
   backup filesperset=25 format '%d_arch_%s_%p_%h'  skip inaccessible                                       
   (archivelog all delete input); //这里delete input完成备份日志文件的清理 
   release channel a1;
   release channel a2;
   release channel a3;
}
相关推荐
Eiceblue14 分钟前
Python读取PDF:文本、图片与文档属性
数据库·python·pdf
敖云岚3 小时前
【Redis】分布式锁的介绍与演进之路
数据库·redis·分布式
LUCIAZZZ4 小时前
HikariCP数据库连接池原理解析
java·jvm·数据库·spring·springboot·线程池·连接池
我在北京coding4 小时前
300道GaussDB(WMS)题目及答案。
数据库·gaussdb
小Tomkk4 小时前
阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库
数据库·mysql·阿里云
明月醉窗台5 小时前
qt使用笔记二:main.cpp详解
数据库·笔记·qt
沉到海底去吧Go5 小时前
【图片自动识别改名】识别图片中的文字并批量改名的工具,根据文字对图片批量改名,基于QT和腾讯OCR识别的实现方案
数据库·qt·ocr·图片识别自动改名·图片区域识别改名·pdf识别改名
老纪的技术唠嗑局6 小时前
重剑无锋,大巧不工 —— OceanBase 中的 Nest Loop Join 使用技巧分享
数据库·sql
未来之窗软件服务6 小时前
JAVASCRIPT 前端数据库-V6--仙盟数据库架构-—-—仙盟创梦IDE
数据库·数据库架构·仙盟创梦ide·东方仙盟·东方仙盟数据库
一只爱撸猫的程序猿8 小时前
构建一个简单的智能文档问答系统实例
数据库·spring boot·aigc