首頁 > 軟體

Oracle刪除歸檔紀錄檔及新增定時任務

2022-06-28 18:06:05

一、刪除歸檔紀錄檔

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

總結

到此這篇關於Oracle刪除歸檔紀錄檔及新增定時任務的文章就介紹到這了,更多相關Oracle刪除歸檔紀錄檔內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com