當前位置:首頁 » 編程軟體 » rman刪除歸檔腳本

rman刪除歸檔腳本

發布時間: 2022-08-18 07:45:52

A. oracle資料庫,RMAN命令刪除某一時間段之間的歸檔

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'to_date('20130228 23:59:59,'YYYYMMDD HH24:MI:SS')';

B. 當ORACLE歸檔日誌滿後如何正確刪除歸檔日誌

1,首先刪除歸檔日誌物理文件,歸檔日誌一般都是位於archive目錄下,AIX系統下文件格式為「1_17884_667758186.dbf」,建議操作前先對資料庫進行備份,刪除時至少保留最近幾天的日誌用於資料庫恢復。

2,把歸檔日誌的物理文件刪除後,我們就可以正常登入ORACLE了,但是還沒完全把歸檔日誌刪除干凈,ORACLE的controlfile中仍然記錄著這些archivelog的信息,在oracle的OEM管理器中有可視化的日誌展現出,當我們手工清除archive目錄下的文件後,這些記錄並沒有被我們從controlfile中清除掉,接下去我們要做的就是這個工作。

利用RMAN進行刪除操作,操作步驟如下:(window客戶端系統為例):
1.指定資料庫實例
C:/Documents and Settings/Administrator>SET ORACLE_SID =orcl
2.連接資料庫
C:/Documents and Settings/Administrator>RMAN TARGET SYS/[email protected]
3.查看歸檔日誌的狀態
RMAN> list archivelog all;
4.手工刪除歸檔日誌文件
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
5.退出rman.

C. 如何RMAN正確地刪除Archivelog 如何設置有備庫的歸檔刪除策略

如何正確地刪除Archivelog:
Archivelog並不能直接得從OS層直接物理刪除,因為archivelog的相關信息是記錄在controlfile中的,當物理刪除後不會改變controlfile的設置。並且在查詢相關的動態視圖(例如v$archived_log)時,該部分日誌仍然標注為存在。也就是說Oracle並不認為這些日誌被刪除了,所以在刪除archivelog的時候,需要我們在其他地方做一些設置。
一、使用RMAN清楚物理刪除後的記錄
可以使用RMAN來刪除archivelog,具體可以按以下步驟操作:
1、物理刪除archivelog
2、進入RMAN
3、crosscheck archivelog all;
4、delete expried archivelog all;
這樣就在一些Oracle的記錄中查不到相應的archivelog記錄了。
二、直接使用RMAN刪除archivelog
其實在RMAN中是可以使用命令直接將ARCHIVELOG刪除的,命令如下:
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
表示刪除7天以前的所有archivelog,但是這個命令的缺點是無法對archivelog進行細致的劃分。
三、使用RMAN備份achivelog後刪除
這是一種最為穩妥的方法了,使用RMAN備份archivelog,備份後全部刪除
backup format '/u01/arch_%T_%s_%U' archivelog all delete input;
或者
backup database plus archivelog;
註:我在庫上設置了Streams後,使用RMAN刪除archivelog會導致報錯RMAN-08137: WARNING:
archive log not deleted as it is still needed. 不知道該如何解決,據說是10.2的一個bug,如果真
是bug的話,那隻能在OS層設置刪除,或用RMAN進行強制刪除了。
10g之後的版本,Oracle在RMAN中內置增加了一項歸檔文件的刪除策略,終於,DBA可以僅通過一項配置就
解決該問題了。該策略對應兩個值:
APPLIED ON STANDBY:設置為該值時,當通過附加的DELETE INPUT子句刪除Standby資料庫仍需要的日誌
時,會提示RMAN-08137錯誤。不過用戶仍然可以手動地通過DELETE ARCHIVELOG方式刪除。
NONE:設置為該值時,則不啟用歸檔文件的刪除策略。默認情況下就是NONE。
例如,啟用APPLIED ON STANDBY:
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;
new RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;
new RMAN configuration parameters are successfully stored
RMAN> run
{
backup archivelog all delete input format 'ZHSVR044_%d_set=%s_piece=%p_date=%T.ARC.rmn';
}
都知道在controlfile中記錄著每一個archivelog的相關信息,當然們在OS下把這些物理文件delete掉後,在我們的
controlfile中仍然記錄著這些archivelog的信息,在oracle的OEM管理器中有可視化的日誌展現出,當我們手工清除archive目錄下的文件後,這些記錄並沒有被我們從controlfile中清除掉,也就是oracle並不知道這些文件已經不存在了!這時候我們要做手工的清除的話,下面我經過實驗,可以嘗試這種方法:
1. 進入rman
2. connect target /
3. crosscheck archivelog all;
4. delete expired archivelog all;
這時候我們再去OEM中看就一定看不到,如果你的從來沒有做過這個動作的話,我們可以比較從這個動作前的controlfile後動作後的controlfile的大小!
ORACLE正確刪除歸檔並回收空間的方法
ORACLE正確刪除歸檔並回收空間的方法
一個ORACLE歸檔日誌經常滿,表現為/oraarchive 這個文件空間佔用100%大家一定抱怨ORACLE為何沒有歸檔維護工具,很多人直接刪除了事,錯了,ORACLE有,而且很智能,可以正確的刪除歸檔和FLASHBACK,不過切記,ORACLE歸檔日誌對於ORACLE的數據恢復和備份非常重要,不到萬不得已不要刪除歸檔日誌。
刪除歸檔日誌的過程
以ORACLE用戶身份登錄到資料庫伺服器主機或通過網路連接
進入ORACLE數據備份工具
rman target/
或rman target/@orcl
在命令窗口裡面執行
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 /oraarchive -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ;
這樣做仍然會在RMAN里留下未管理的歸檔文件
仍需要在RMAN里執行下面2條命令
crosscheck archivelog all;
delete expired archivelog all;
所以還不如上面的方法好用,不過用FIND的好處就是,可以在條件上,和EXEC子項上做很多操作,實現更復雜的功能
3.簡要介紹一下report obsolete命令
使用report obsolete命令報告過期備份

D. 歸檔日誌不在默認的閃回區,用RMAN怎麼刪除

1、錯誤刪除方法
如果只刪除OS級別的歸檔日誌,controlfile 中仍然記錄著這些archivelog的信息,在oracle的OEM管理器中有可視化的日誌展現出, 也就是oracle並不知道這些文件已經不存在了註:obsolete:當備份或者副本根據保存策略而被丟棄的時候,就會被標記為該狀態。expired:使用crosscheck對備份進行校驗,當備份或者副本被存儲在rman目錄中,但並沒有物理文件在備份介質上時,就記為該狀態2、正確的刪除方法
a、rman target /
b、crosscheck archivelog all;(RMAN list expired backup;RMAN list expired backup summary;)
c、delete expired archivelog all; --刪除rman目錄中信息,並無物理文件刪除
d、DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; --刪除一定時間范圍的archive log
e、find /oraarchive -xdev -mtime +7 -name "*.arc"| xargs rm -f;(刪除OS中未被RMAN管理而里留下的歸檔文件)

E. 如何正確刪除Oracle歸檔日誌

1,首先刪除歸檔日誌物理文件,歸檔日誌一般都是位於archive目錄下,AIX系統下文件格式為「1_17884_667758186.dbf」,建議操作前先對資料庫進行備份,刪除時至少保留最近幾天的日誌用於資料庫恢復。
2,把歸檔日誌的物理文件刪除後,我們就可以正常登入ORACLE了,但是還沒完全把歸檔日誌刪除干凈,ORACLE的controlfile中仍然記錄著這些archivelog的信息,在oracle的OEM管理器中有可視化的日誌展現出,當我們手工清除archive目錄下的文件後,這些記錄並沒有被我們從controlfile中清除掉,接下去我們要做的就是這個工作。
利用RMAN進行刪除操作,操作步驟如下:(window客戶端系統為例):
1.指定資料庫實例
C:/Documents
and
Settings/Administrator>SET
ORACLE_SID
=orcl
2.連接資料庫
C:/Documents
and
Settings/Administrator>RMAN
TARGET
SYS/[email protected]
3.查看歸檔日誌的狀態
RMAN>
list
archivelog
all;
4.手工刪除歸檔日誌文件
RMAN>
DELETE
ARCHIVELOG
ALL
COMPLETED
BEFORE
'SYSDATE-7';
5.退出rman.

F. rman備份文件如何自動刪除

先定義好備份的過期策略,然後有兩種方法。
1、可以使用Schele backup。
2、自己寫腳本,並且使用操作系統上的定時任務,定期執行刪除腳本。

G. rman中如何制定刪除某段時間的歸檔日誌

總覺得使用windows跑oracle是不靠譜的事情,可以這個世界上總有很多人喜歡做類似這樣的事情,對於資料庫比較常見的兩件事情:rman和刪除dg備庫歸檔日誌,在linux/unix平台上使用shell實現很簡單,可是跑到win裡面,就變的煩了,不是因為其麻煩,而是因為用的人少,不知道怎麼下手處理該事情,我編寫了簡單的實現初級功能的win下面rman備份和刪除備庫歸檔日誌腳本,供大家參考,也更加歡迎朋友提出來更加好的處理方法(win是真心的不懂) rman備份腳本 復制代碼 代碼如下: --backup_oracle.bat文件 rman target / cmdfile=D:/backup/rman/backup_db.rman log=d:/backup/rman/logfile/rmanlog%date:~0,4%%date:~5,2%%date:~8,2%.log --backup_db.rman文件 CONFIGURE RETENTION POLICY TO REDUNDANCY = 2; CONFIGURE DEVICE TYPE DISK PARALLELISM 2; CONFIGURE DEFAULT DEVICE TYPE TO DISK; backup filesperset = 5 as compressed backupset database format 'd:/backup/rman/full_%U.rman'; sql 'alter system archive log current'; backup filesperset = 50 as compressed backupset archivelog all format 'd:/backup/rman/arch_%U.rman' delete input; DELETE noprompt OBSOLETE; crosscheck backup; delete noprompt expired backup; backup format 'd:/backup/rman/ctl_%U.rman' current controlfile; backup spfile format 'd:/backup/rman/spfile_%U.rman' ; exit; backup_oracle.bat 文件加入到計劃任務即可 刪除dg備庫歸檔日誌(已經應用) 復制代碼 代碼如下: --delete_dg_archivelog.bat rem 注意修改 部署目錄 cd D:/win_xifenfei d: rem 注意delete_archive.sql 查詢是否有記錄 echo delete archivelog staring > delete_archivelog.bak sqlplus / as sysdba @delete_archive.sql echo rman target / cmdfile=rman_checkcross.rman>>delete_archivelog.bat delete_archivelog.bat >>delete_dg_archivelog_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%".log exit --delete_archive.sql set lines 150 col name for a150 set pagesize 0 feedback off verify off heading off echo off spool delete_archivelog.bat select 'del 'name from v$archived_log where APPLIED='YES' AND NAME IS NOT NULL and DEST_ID=1; spool off exit; --rman_checkcross.rman crosscheck archivelog all; delete noprompt expired archivelog all; exit delete_dg_archivelog.bat 加入到計劃任務即可

H. oracle資料庫的歸檔文件被物理刪除,使用SELECT name FROM v$archived_log;

使用RMAN進行刪除。樓上的方式是對的。如果可行,你們那裡歸檔產生的比較多可以考慮一下方式:
1 備份後 刪除備份前的歸檔,寫在備份腳本里進行刪除。
2 預留,刪除固定天數之前的歸檔。不要手動刪除歸檔日誌。。及物理rm刪除。要通過rman命令進行刪除。不然會出現斷檔等問題。

熱點內容
怎麼用紙做豌豆解壓玩具 發布:2022-09-29 04:39:17 瀏覽:732
雲存儲播放時間表 發布:2022-09-29 03:58:31 瀏覽:598
新英朗4缸買哪個配置劃算 發布:2022-09-29 03:51:54 瀏覽:122
紅旗5配置怎麼選 發布:2022-09-29 03:44:21 瀏覽:887
linux安裝maven 發布:2022-09-29 03:29:18 瀏覽:595
吉利星瑞豪華天窗版有什麼功能配置 發布:2022-09-29 03:20:28 瀏覽:822
伺服器固定ip和彈性ip一起用 發布:2022-09-29 02:40:49 瀏覽:510
gpioc語言 發布:2022-09-29 02:34:40 瀏覽:959
h乚c語言 發布:2022-09-29 02:34:39 瀏覽:410
迷你世界體驗服正式服密碼是多少 發布:2022-09-29 02:21:19 瀏覽:419