文章詳情頁
Oracle刪除歸檔日志及添加定時任務
瀏覽:134日期:2023-03-12 15:24:55
目錄
- 一、刪除歸檔日志
- 1.切換用戶
- 2.使用RMAN工具
- 3.連接本地數據庫
- 4.檢查控制文件和實際物理文件的差別
- 5.同步檢查控制文件和實際物理文件的信息
- 6.刪除n天前的歸檔日志
- 7.退出RMAN
- 二、添加定時任務
- 1.創建歸檔日志刪除腳本
- 2.授予腳本文件執行權限
- 3.測試歸檔日志刪除腳本
- 4.添加定時任務
- 5.查看定時任務
- 總結
一、刪除歸檔日志
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刪除歸檔日志內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
標簽:
Oracle
排行榜
