oracle資料庫備份刪除操作
1、刪除多餘的歸檔日誌
在ORACLE10G中,預設的歸檔路徑為$ORACLE_BASE/flash_recovery_area。對於這個路徑,ORACLE有一個限制,就是預設只能有2G的空間給歸檔日誌使用,可以使用下面兩個SQL語句去檢視它的限制:
1. select * from v$recovery_file_dest;
2. show parameter db_recovery_file_dest(這個更友好直觀一些)
當歸檔日誌數量大於2G時,那麼就會由於沒有更多的空間去容納更多的歸檔日誌會報無法繼續歸檔的錯誤。
如:“RA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 10017792 bytes disk space from 2147483648 limit
ARC0: Error 19809 Creating archive log file to
'/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2007_04_30/o1_mf_1_220_0_.arc'
”這時我們可以修改它的預設限制,比如說將它增加到5G或更多,也可以將歸檔路徑重新置到別的路徑,就不會有這個限制了。
更改限制語句如下:
alter system set db_recovery_file_dest_size=5368709102 (這裡為5G 5x1024x1024x1024=5G)
alter system set db_recovery_file_dest_size=10737418240
進入
執行下邊的交叉校驗
crosscheck archivelog all;
此時可能會提示校驗失敗,類似下邊的提示:
RMAN> crosscheck archivelog all;
釋放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=14 devtype=DISK
對歸檔日誌的驗證失敗
…………….
這時,需要執行exit退出rman。
在命令提示符視窗下執行下邊的字符集設定
C:>set nls_lang=american_america.zhs16gbk
然後再進入rman ,再執行crosscheck archivelog all;一般不會再出現這樣的問題了。
在命令視窗裡面執行
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子項上做很多操作,實現更復雜的功能
2、report obsolete及delete 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
....
使用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
.....
注:在執行刪除的時候,可能會提示下邊的報錯資訊:
ORA-19554: 配置裝置時出錯, 裝置型別: SBT_TAPE, 裝置名稱:
ORA-27211: 未能載入介質管理庫
解決方法,執行下邊的命令:
RMAN> allocate channel for maintenance type disk;
RMAN> crosscheck archivelog all;
RMAN> delete obsolete;
3、Oracle RMAN的show,list,crosscheck,delete
Oracle RMAN的show,list,crosscheck,delete 命令整理
1、SHOW命令:
顯示rman配置: RMAN> show all;
2、REPORT命令:
2.1、RMAN> report schema 報告目標資料庫的物理結構;
2.2、RMAN>report need backup days=3; 報告最近3天沒有被備份的資料檔案;
2.3、RMAN> report need backup days 3 tablespace users; 在USERS表空間上3天未備份的資料檔案;
2.4、RMAN> report need backup incremental 3; 報告恢復資料檔案需要的增量備份個數超過3次的資料檔案;
2.5、RMAN> report need backup redundancy 2 database; 報告備份檔案低於2份的所有資料檔案;
RMAN>report need backup redundancy=2;
2.6、RMAN> report need backup recovery window of 6 days; 報告檔案報表的恢復需要超過6天的歸檔日誌的資料檔案;
2.7、RMAN> report unrecoverable; 報告資料庫所有不可恢復的資料檔案;
2.8、RMAN> report obsolete redunndancy 2; 報告備份次數超過2次的陳舊備份;
2.9、RMAN>report obsolete; 報告多餘的備份;
3、LIST命令:列出備份資訊
3.1、列出資料檔案備份集
RMAN>list backup 列出詳細備份;
RMAN>list expired backup 列出過期備份;
RMAN> list backup of database; 列出所有資料檔案的備份集;
RMAN> list backup of tablespace user01; 列出特定表空間的所有資料檔案備份集;
3.2、RMAN> list backup of controlfile 列出控制檔案備份集;
3.3、RMAN> list backup of archivelog all 列出歸檔日誌備份集詳細資訊;
RMAN>list archivelog all; 列出歸檔日誌備份集簡要資訊
3.4、RMAN> list backup of spfile 列出SPFILE備份集;
3.5、RMAN> list copy of datafile 5 列出資料檔案映像副本;
3.6、RMAN> list copy of controlfile 列出控制檔案映像副本;
3.7、RMAN> list copy of archivelog all 列出歸檔日誌映像副本;
3.8、RMAN> list incarnation of database 列出對應物/列出資料庫副本;
3.9、RMAN>list backup summary; 概述可用的備份;
B表示backup
F表示FULL
A表示archive log
0 1表示incremental backup
S說明備份狀態(A AVAILABLE X EXPIRED )
3.10、RMAN>list backup by file 按備份型別列出備份;
按照資料檔案備份,歸檔日誌備份,控制檔案備份,伺服器引數檔案備份 列出
4、CROSSCHECK命令:校驗備份資訊
4.1、RMAN> crosscheck backup 核對所有備份集;
4.2、RMAN> crosscheck backup of database 核對所有資料檔案的備份集;
4.3、RMAN> crosscheck backup of tablespace users 核對特定表空間的備份集;
4.4、RMAN> crosscheck backup of datafile 4 核對特定資料檔案的備份集;
4.5、RMAN> crosscheck backup of controlfile 核對控制檔案的備份集;
4.6、RMAN> crosscheck backup of spfile 核對SPFILE的備份集;
4.7、RMAN> crosscheck backup of archivelog sequence 3 核對歸檔日誌的備份集;
4.8、RMAN> crosscheck copy 核對所有映像副本;
4.9、RMAN> crosscheck copy of database 核對所有資料檔案的映像副本;
4.10、RMAN> crosscheck copy of tablespace users 核對特定表空間的映像副本;
4.11、RMAN> crosscheck copy of datafile 6 核對特定資料檔案的映像副本;
4.12、RMAN> crosscheck copy of archivelog sequence 4 核對歸檔日誌的映像副本;
4.13、RMAN> crosscheck copy of controlfile 核對控制檔案的映像副本;
4.14、RMAN> crosscheck backup tag='SAT_BACKUP';
4.15、RMAN> crosscheck backup completed after 'sysdate - 2'
4.16、RMAN> crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '
4.17、RMAN> crosscheck backup device type sBT;
4.18、RMAN> crosscheck archivelog all;
4.19、RMAN> crosscheck archivelog like '%ARC00012.001'
4.20、RMAN> crosscheck archivelog from sequence 12;
4.21、RMAN> crosscheck archivelog until sequence 522;
5、DELETE:刪除備份
5.1、RMAN> delete obsolete; 刪除陳舊備份;
5.2、RMAN> delete expired backup; 刪除EXPIRED備份
5.3、RMAN> delete expired copy; 刪除EXPIRED副本;
5.4、RMAN> delete backupset 19; 刪除特定備份集;
5.5、RMAN> delete backuppiece ''d:\backup\DEMO_19.bak'' 刪除特定備份片;
5.6、RMAN> delete backup 刪除所有備份集;
5.7、RMAN> delete datafilecopy ''d:\backup\DEMO_19.bak'' 刪除特定映像副本;
5.8、RMAN> delete copy 刪除所有映像副本;
5.9、RMAN> delete archivelog all delete input;
RMAN> delete backupset 22 format = ''d:\backup\%u.bak'' delete input
在備份後刪除輸入物件;
5.10、RMAN> delete backupset id;
4、em控制檯對備份的操作
使用sys使用者的sysdba許可權進入em控制檯
在“維護”模組下,點選進入到“管理當前備份”操作選項。
在“管理當前備份”選項中可以列出所有的備份集
如果要刪除備份,可以在下邊的列表中選中要刪除的備份集,執行“刪除”命令,這時會有一個確認提示的頁面:
點選“是”按鈕,進行刪除操作。如果提示操作“刪除”失敗,可以將上一步要執行的命令在命令提示符下使用rman命令來執行。
5、小結
像歸檔日誌之類的備份,備份的資料夾是在一個叫flash_recovery_area的目錄下邊。
1、歸檔日誌備份在ARCHIVELOG 這個資料夾下邊,上邊對歸檔日誌的操作基本上是對這個資料夾下的檔案進行操作。
2、obsolete刪除操作基本上是對AUTOBACKUP這個資料夾下的檔案進行操作。(不是十分的確定)
3、delete backup操作基本上是對BACKUPSET資料夾和DATAFILE資料夾的內容進行操作的。
4、在em管理後臺,最下邊有一個“相關連結”模組,下有“作業”選項鍊接,可以看到所有資料庫備份操作歷史作業記錄,在此可以對相應的備份作業進行修改操作。
另外如果要新增備份操作作業時,需要在“維護”模組下找到“除錯備份”連結,推薦使用“Oracle 建議的備份”來新增備份操作作業。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/196700/viewspace-703903/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫冷備份與熱備份操作梳理Oracle資料庫
- oracle資料庫建立、刪除索引等操作Oracle資料庫索引
- 【DATAPUMP】Oracle資料泵定時備份刪除指令碼Oracle指令碼
- 如何刪除oracle資料庫Oracle資料庫
- 手工刪除oracle資料庫Oracle資料庫
- oracle資料庫備份之exp增量備份Oracle資料庫
- 批量刪除Oracle資料庫的資料Oracle資料庫
- 刪除資料泵備份失敗的表
- oracle手動刪除資料庫Oracle資料庫
- 手動刪除oracle資料庫Oracle資料庫
- oracle 備份資料庫,匯出資料庫Oracle資料庫
- sqlserver資料庫備份,還原操作SQLServer資料庫
- 「Oracle」Oracle 資料庫備份還原Oracle資料庫
- Oracle學習系列—資料庫備份—熱備份Oracle資料庫
- Oracle資料庫的備份方法-冷備份(轉)Oracle資料庫
- SQL Server實戰一:建立、分離、附加、刪除、備份資料庫SQLServer資料庫
- mysql資料庫誤刪除操作說明MySql資料庫
- 自動備份Oracle資料庫Oracle資料庫
- windows下Oracle資料庫完全刪除WindowsOracle資料庫
- Oracle資料庫使用者刪除Oracle資料庫
- Oracle批量建立、刪除資料庫表Oracle資料庫
- 【原】Oracle學習系列—資料庫備份—RMAN備份Oracle資料庫
- 遠端Linux伺服器MySQL資料庫定期備份和刪除Linux伺服器MySql資料庫
- Linux實現定時備份MySQL資料庫並刪除30天前的備份檔案LinuxMySql資料庫
- 在linux中資料庫實現每天自動備份資料及自動刪除5天前備份資料(常用)Linux資料庫
- 每天自動備份Oracle資料庫Oracle資料庫
- Oracle資料庫三種備份方案Oracle資料庫
- ORACLE 資料庫備份技術(轉)Oracle資料庫
- 誤刪除InnoDB ibdata資料檔案(無備份)
- [Oracle]Oracle資料庫資料被修改或者刪除恢復資料Oracle資料庫
- 【oracle資料庫資料恢復】誤操作導致的資料庫誤刪除的資料恢復案例Oracle資料庫資料恢復
- 【原】Oracle學習系列—資料庫備份—離線備份Oracle資料庫
- 刪除linux下的oracle資料庫LinuxOracle資料庫
- java mysql 資料庫備份和還原操作JavaMySql資料庫
- 資料庫備份資料庫
- 利用rman全備恢復刪除的資料庫資料庫
- oracle資料備份Oracle
- Yii 1.0資料庫操作 查詢、增加、更新、刪除資料庫