每日一记: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

相关文章

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.

grom设置全局日志实现执行并打印sql语句

《grom设置全局日志实现执行并打印sql语句》本文主要介绍了grom设置全局日志实现执行并打印sql语句,包括设置日志级别、实现自定义Logger接口以及如何使用GORM的默认logger,通过这些... 目录gorm中的自定义日志gorm中日志的其他操作日志级别Debug自定义 Loggergorm中的

SpringBoot项目注入 traceId 追踪整个请求的日志链路(过程详解)

《SpringBoot项目注入traceId追踪整个请求的日志链路(过程详解)》本文介绍了如何在单体SpringBoot项目中通过手动实现过滤器或拦截器来注入traceId,以追踪整个请求的日志链... SpringBoot项目注入 traceId 来追踪整个请求的日志链路,有了 traceId, 我们在排

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

PLsql Oracle 下载安装图文过程详解

《PLsqlOracle下载安装图文过程详解》PL/SQLDeveloper是一款用于开发Oracle数据库的集成开发环境,可以通过官网下载安装配置,并通过配置tnsnames.ora文件及环境变... 目录一、PL/SQL Developer 简介二、PL/SQL Developer 安装及配置详解1.下

oracle如何连接登陆SYS账号

《oracle如何连接登陆SYS账号》在Navicat12中连接Oracle11g的SYS用户时,如果设置了新密码但连接失败,可能是因为需要以SYSDBA或SYSOPER角色连接,解决方法是确保在连接... 目录oracle连接登陆NmOtMSYS账号工具问题解决SYS用户总结oracle连接登陆SYS账号

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed