菜鸟式清理Oracle归档日志

#!/bin/bash
# -*- coding: UTF-8 -*-
# Filename: delete_archivelog.sh
# Description: Oracle归档日志清理脚本,拷贝该脚本用Oracle用户执行即可(建议先在测试环境验证,以免跑路了)。
# Author: SERE

echo -e "\033[32mTime:$(date +%F" "%T)\033[0m"
source ~/.bash_profile
LOG_DIR=$ORACLE_BASE/flash_recovery_area/ORCL/archivelog/
DELETE_DATE=`date '+%Y_%m_%d'`
LOG_NAME=${LOG_DIR}${DELETE_DATE}".log"
echo -e "\033[32mArchive logs begin to clean up.\033[0m"
rman log=$LOG_NAME target / <<EOF
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog all completed before 'sysdate-7';
EOF
# 第一条命令把无效的expired的archivelog标出来
# 第二条命令直接全部删除过期的归档日志
# 第三条命令直接删除七天前所有的归档日志
# SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE;
# SHOW PARAMETER DB_RECOVERY_FILE_DEST;
echo -e "\n"
echo -e "\033[32mArchive logs clean is complete.\033[0m"
echo -e "\033[32mTime:$(date +%F" "%T)\033[0m"

猜你喜欢

转载自blog.csdn.net/SERE0211/article/details/106547950