每日一记:Oracle Dataguard定时清理从库已归档日志

2024-08-24 18:58

本文主要是介绍每日一记:Oracle Dataguard定时清理从库已归档日志,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作为一个合格的DBA,每次部署完DG,都应该考虑到后果,想想如果从库的归档满了该怎么办?

如果可以每天登陆服务器检查,那也是可以的。往往很多时候都会因没有及时清理归档,导致数据库出错。

那么,你需要以下这个脚本来帮你解决这个问题:

#!/bin/bash
oracle_sid=$1
applied_days=$2
dest_id=$3
export ORACLE_SID=${oracle_sid}
cd /home/oracle/xxx/rman_scripts
cat /dev/null>applied_arch_${oracle_sid}.lst
sqlplus -s "/ as sysdba"<<EOF >/dev/null
set feedback off
set pages 0
set head off
set timing off
set echo off
spool applied_arch_${oracle_sid}.lst
select 'rm -f '||name from v\$archived_log
where DEST_ID=${dest_id} and name like '%.dbf'
and SEQUENCE#<(select max(SEQUENCE#) from v\$archived_log where applied='YES')
and COMPLETION_TIME<=sysdate-${applied_days};
spool off;
exit
EOF## Exec the shell
cat /dev/null>applied_arch_${oracle_sid}.sh
cat applied_arch_${oracle_sid}.lst |grep -v spooling>applied_arch_${oracle_sid}.sh
chmod u+x applied_arch_${oracle_sid}.sh
sh applied_arch_${oracle_sid}.sh
chmod -x applied_arch_${oracle_sid}.sh
mv applied_arch_${oracle_sid}.sh ./log/rm_appl_arc_${oracle_sid}_`date +"%Y%m%d%H%M"`.logrm -f applied_arch_${oracle_sid}.lst##remove expired archive log from database
/u01/oracle/app/11.2.0/bin/rman target / nocatalog<<EOF >/dev/null
crosscheck archivelog all;               
delete noprompt expired archivelog all;
exit
EOF

以上脚本参考自各路大神,本人稍稍做了修改,支持传参!

以下是在linux的crontab配置的定时任务:

[oracle@localhost rman_scripts]$ crontab -l
00 00 * * * /home/oracle/xxx/rman_scripts/delete_archived_log.sh orcl1 1 3
30 00 * * * /home/oracle/xxx/rman_scripts/delete_archived_log.sh orcl2 1 3
00 01 * * * /home/oracle/xxx/rman_scripts/delete_archived_log.sh orcl3 1 5 

 

这篇关于每日一记:Oracle Dataguard定时清理从库已归档日志的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103329

相关文章

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

java实现延迟/超时/定时问题

《java实现延迟/超时/定时问题》:本文主要介绍java实现延迟/超时/定时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java实现延迟/超时/定时java 每间隔5秒执行一次,一共执行5次然后结束scheduleAtFixedRate 和 schedu

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步