日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Oracle刪除歸檔日志及添加定時任務_oracle

作者:Lucky揚 ? 更新時間: 2022-08-20 編程語言

一、刪除歸檔日志

1.切換用戶

# 切換至oracle用戶
su – oracle

2.使用RMAN工具

# 使用RMAN工具,刪除失效的歸檔日志
rman

注:RMAN(Recovery Manager)是一種用于備份(backup)、還原(restore)和恢復(recover)數據庫的 Oracle 工具。

3.連接本地數據庫

# 使用target命令連接本地數據庫
RMAN> connect target /

4.檢查控制文件和實際物理文件的差別

執行crosscheck命令,檢查控制文件和實際物理文件的差別,如果物理文件不存在于介質上,將標記為expired(失效/不可用),crosscheck之后,就可以刪除這些失效的歸檔日志了(執行腳本后,刪除的歸檔日志狀態會變為“失效”)

RMAN> crosscheck archivelog all;

5.同步檢查控制文件和實際物理文件的信息

# 刪除狀態為expired(失效/不可用)的歸檔日志
RMAN> delete expired archivelog all;

6.刪除n天前的歸檔日志

# 刪除 3 天前的歸檔日志:
RMAN> delete archivelog all completed before 'sysdate-3';
# 刪除 1 天前
RMAN> delete archivelog until time 'sysdate-1'

區別:第一條帶complete的語句,主要是刪除已備份過的歸檔,沒有備份的歸檔,不會被刪除。而第二個語句, 則會刪除掉歸檔,無論備份與否。

7.退出RMAN

# 退出RMAN
RMAN> exit

二、添加定時任務

1.創建歸檔日志刪除腳本

archivelog_clear.sh

#!/bin/bash
BACK_DIR=/home/oracle/clear_archlog/data
export DATE=`date +%F`
mkdir -p $BACK_DIR/$DATE
touch $BACK_DIR/$DATE/rman_backup.log
echo "--------------------------------`date`-------------------------------"
source ~/.bash_profile 
# 記錄日志rman_backup.log 可以后期檢查是否執行成功
rman target / >> $BACK_DIR/$DATE/rman_backup.log <<EOF             
# 把無效的expired的archivelog標出來
crosscheck archivelog all;
# 直接全部刪除過期的歸檔日志
#delete noprompt expired archivelog all;
# 直接刪除7天前所有的歸檔日志
delete noprompt archivelog all completed before 'sysdate-7';
exit
EOF
echo -e "\n"
echo "------------------------------ FINISHED ----------------------------"

2.授予腳本文件執行權限

#授予執行權限
chmod +x archivelog_clear.sh

3.測試歸檔日志刪除腳本

./archivelog_clear.sh

4.添加定時任務

輸入命令:crontab -e 編輯并且添加一行新的任務

30 3 15 * *   /home/oracle/archivelog_clear.sh

5.查看定時任務

crontab -l

總結

原文鏈接:https://blog.csdn.net/baidu_38300480/article/details/122502986

欄目分類
最近更新