咱們都知道在controlfile中記錄着每個archivelog文件的相關信息,固然們在OS下把這些物理文件delete掉後,在咱們的controlfile中仍然記錄着這些archivelog文件的相關信息,在oracle的OEM管理器中有可視化的日誌展示出,當咱們手工清除 archive目錄下的文件後,這些記錄並無被咱們從controlfile中清除掉,也就是oracle並不知道這些文件已經不存在了,這時候咱們要作手工的清除的話,下面我通過實驗,能夠嘗試這種方法:數據庫
1. 進入rman 服務器
[oracle@dthxdb2 ~]$ /u01/app/oracle/product/10.2.0/db/bin/rman (或 rman)
網絡
2. connect target / 注:(若是磁盤空間滿了的話是鏈接不上的,須要提早清理一些空間才能進行鏈接)oracle
RMAN> connect target /
app
3. crosscheck archivelog all;
crosscheck archivelog all:驗證的是DB的歸檔日誌即log_archive_dest參數指定位置的文件,當手工刪除了歸檔日誌之後,Rman備份會檢測到日誌缺失,從而沒法進一步繼續執行Rman備份,因此此時須要手工執行crosscheck過程,查看全部的歸檔日誌文件是否都是正常的而後再來執行Rman備份。
工具
4. delete expired archivelog all;
這時候咱們再去OEM中就看不到這些日誌文件了,若是你的歷來沒有作過這個動做的話,咱們能夠比較這個動做前的controlfile和動做後的controlfile的文件大小spa
ORACLE正確刪除歸檔並回收空間的方法:
一個ORACLE歸檔日誌常常滿,表現爲/archivelog這個文件空間佔用100%你們老是抱怨ORACLE爲什麼沒有歸檔維護工具,不少人直接刪除了事,錯了,ORACLE有,並且很智能,能夠正確的刪除歸檔和 FLASHBACK,不過切記,ORACLE歸檔日誌對於ORACLE的數據恢復和備份很是重要,不到萬不得已不要刪除歸檔日誌。
操作系統
刪除歸檔日誌的過程:
以ORACLE用戶身份登陸到數據庫服務器主機或經過網絡鏈接.net
進入ORACLE數據備份工具:
/u01/app/oracle/product/10.2.0/db/bin/rman target/
或/u01/app/oracle/product/10.2.0/db/bin/rman target/@DTHXRAC1
日誌
在命令窗口裏面執行:
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; (該方法是刪除的閃回數據、相似於內存中的數據)
說明:
SYSDATA-7,代表當前的系統時間7天前,before關鍵字表示在7天前的歸檔日誌,若是使用了閃回功能,也會刪除閃回的數據。
一樣道理,也能夠刪除從7天前到如今的所有日誌,不過這個命令要考慮清楚,作完這個刪除,最好立刻進行數據庫全備份
DELETE ARCHIVELOG FROM TIME 'SYSDATE-7'; (該方法是刪除物理文件)
UNIX/LINUX下也能夠經過FIND找到7天前的歸檔數據,使用EXEC子操做刪除
find /archivelog -xdev -mtime +7 -name "*.dbf" -exec rm -f {} \; (這種方式我的理解是:刪除數據文件中7天前的數據、可是不刪除該數據文件)有待驗證
這樣作仍然會在RMAN裏留下未管理的歸檔文件,它的做用仍是至關於直接用操做系統命令將歸檔日誌文件直接刪除,而ORACLE控制文件並不知道,所以仍須要在RMAN裏執行下面2條命令:
crosscheck archivelog all;
delete expired archivelog all; (我的理解是刪除contorl 文件中的標記 使得能夠進行作rman 全備份)
因此還不如上面的方法好用,不過用FIND的好處就是,能夠在條件上,和EXEC子項上作不少操做,實現更復雜的功能。
簡要介紹一下report obsolete命令:
使用report obsolete命令報告過時備份
RMAN> report obsolete;
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
Report of obsolete backups and copies
Type Key Completion Time Filename/Handle
-------------------- ------ ------------------ --------------------
Backup Set 125 01-NOV-04
Backup Piece 125 01-NOV-04 /data1/oracle/orabak/full_1_541045804
Backup Set 131 04-NOV-04
Backup Piece 131 04-NOV-04 /data1/oracle/orabak/full_AVATAR2_20041104_131
....
Backup Set 173 06-DEC-04
Backup Piece 173 06-DEC-04 /data1/oracle/orabak/full_AVATAR2_20041206_173
Backup Set 179 11-DEC-04
Backup Piece 179 11-DEC-04 /data1/oracle/orabak/arch544588206.arc
.....
Backup Piece 189 17-DEC-04 /data1/oracle/orabak/arch545106606.arc
Backup Set 190 17-DEC-04
Backup Piece 190 17-DEC-04 /data1/oracle/orabak/arch545106665.arc
Backup Set 191 20-DEC-04
Backup Piece 191 20-DEC-04 /data1/oracle/orabak/arch_AVATAR2_20041220_194
Archive Log 2973 20-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2985.dbf
Archive Log 2971 20-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2984.dbf
.....
Archive Log 2705 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2717.dbf
Archive Log 2704 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2716.dbf
Archive Log 2703 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2715.dbf
Archive Log 2702 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2714.dbf
使用delete obsolete命令刪除過時備份:
RMAN> delete obsolete;
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
using channel ORA_DISK_1
Deleting the following obsolete backups and copies:
Type Key Completion Time Filename/Handle
-------------------- ------ ------------------ --------------------
Backup Set 125 01-NOV-04
Backup Piece 125 01-NOV-04 /data1/oracle/orabak/full_1_541045804
....
Archive Log 2704 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2716.dbf
Archive Log 2703 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2715.dbf
Archive Log 2702 17-DEC-04 /opt/oracle/oradata/avatar2/archive/1_2714.dbf
Do you really want to delete the above objects (enter YES or NO)? yes
deleted backup piece
backup piece handle=/data1/oracle/orabak/full_AVATAR2_20041206_173 recid=173 stamp=544156241
.....
deleted archive log
archive log filename=/opt/oracle/oradata/avatar2/archive/1_2715.dbf recid=2703 stamp=545108268
deleted archive log
archive log filename=/opt/oracle/oradata/avatar2/archive/1_2714.dbf recid=2702 stamp=545107659
Deleted 286 objects
RMAN> crosscheck archivelog all;
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=9 devtype=DISK
validation succeeded for archived log
archive log filename=/archivelog1/1_615_737652750.dbf recid=928 stamp=750848535
validation succeeded for archived log
archive log filename=/archivelog1/1_616_737652750.dbf recid=930 stamp=750851615
Crosschecked 2 objects
轉自於:https://blog.csdn.net/dbdeep/article/details/78510687 博文
因爲時間的緣由、沒有完整的總結本身實際中遇到過的一些場景 ^_^ 關於以上部分標記的我的理解、若是有不正確的地方還請大神指教!