DM7使用DMRMAN工具刪除備份集

eric0435發表於2020-09-22

使用DMRMAN工具刪除備份集
備份集刪除是備份管理的主要功能,下面主要對如何刪除備份進行描述。內容包括:
1. 概述
2. 刪除備份集

1. 概述
DMRMAN中使用REMOVE命令刪除備份集,可刪除指定備份集,也可批次刪除備份集。單個備份集刪除時並行備份中的子備份集不允許單獨刪除;在指定備份集蒐集目錄中,發現存在引用目標備份集作為基備份的需要執行級聯刪除,預設報錯。批次刪除備份集時,跳過收集到的單獨的子備份集。語法如下:

REMOVE BACKUPSET '< 備份集目錄>'
[DEVICE TYPE< 介質型別> [PARMS '< 介質引數>']][< database_bakdir_lst_stmt>][CASCADE];
REMOVE [DATABASE | TABLESPACE[] | TABLE ""."" | ARCHIVELOG|ARCHIVE LOG] BACKUPSETS
[]
{[UNTIL TIME '< 截止時間串>'] | [BEFOREn]}
::= DEVICE TYPE< 介質型別> [PARMS '< 介質引數>']
::= DATABASE '' |
WITH BACKUPDIR '< 備份集搜尋目錄>' {, '< 備份集搜尋目錄>' } |
DATABASE '' WITH BACKUPDIR '< 備份集搜尋目錄>' {, '< 備份集搜尋目錄>' }

BACKUPSET:指定待刪除的備份集目錄。
DATABASE:指定資料庫dm.ini檔案路徑,若指定,則該資料庫的預設備份目錄作為備份集搜尋目錄之一。
DEVICE TYPE:指儲存備份集的介質型別,支援DISK和TAPE,預設DISK。DISK表示備份集儲存介質磁碟,TAPE表示儲存介質為磁帶。若未指定,則DISK和TAPE介質上滿足條件備份集均會刪除。
PARMS:介質型別為TAPE時,第三方介質管理實現所需的引數字串。
CASCADE:當目標備份集已經被其他備份集引用為基備份集,預設不允許刪除,若指定CASCADE,則遞迴刪除所有引用的增量備份。DATABASE|TABLESPACE|TABLE|ARCHIVELOG|ARCHIVE LOG:指定刪除備份集的型別,分別為庫級、表空間級、表級備份,以及歸檔級別,其中ARCHVELOG和ARCHIVE LOG等價。若不指定,全部刪除。指定TABLESPACE時,若指定目標表空間名,則僅會刪除滿足條件的指定表空間名稱的表空間備份集,否則,刪除所有滿足條件的表空間級備份集;指定TABLE時,若指定目標表名,則僅會刪除滿足條件的指定表名的表備份集;否則,刪除所有滿足條件的表備份集。
UNTIL TIME:刪除備份集生成的最大時間,即刪除指定時間之前的備份集,若未指定,則刪除所有備份集。
BEFOREn:刪除距離當前時間前n天產生的備份集;n取值範圍0~365,單位:天。
WITH BACKUPDIR:備份集搜尋目錄,用於搜尋指定目錄下的所有備份集。

2. 刪除備份集
下面舉例說明如何使用DMRMAN的REMOVE命令刪除備份集,主要內容包括:
1. 刪除特定的備份集
2. 批次刪除所有備份集
3. 批次刪除指定時間之前的備份集

1.刪除特定的備份集
使用REMOVE BACKUPSET...命令可刪除特定備份集,每次只能刪除一個備份集。若刪除備份集已經被引用為其他備份集的基備份且未指定CASCADE,則報錯。

RMAN> remove backupset '/dm7/backup/db_rac_bak';
remove backupset '/dm7/backup/db_rac_bak';
CMD END.CODE:[0]
remove backupset successfully.
time used: 30.542(ms)
如果備份集在資料庫預設備份目錄下還可使用以下方式刪除備份集:
RMAN> remove backupset 'DB_rac_FULL_20200608_160009_000828';
remove backupset 'DB_rac_FULL_20200608_160009_000828';
CMD END.CODE:[0]
remove backupset successfully.
time used: 57.206(ms)

如果備份集為其他備份集的基備份且備份集都在資料庫預設備份目錄下還可使用以下方式刪除備份集:

RMAN> backup database '/dm7/data/rac0_config/dm.ini' full backupset '/dm7/backup/db_rac_bak_for_remove_01';
backup database '/dm7/data/rac0_config/dm.ini' full backupset '/dm7/backup/db_rac_bak_for_remove_01';
checking if the RAC database under system path [+DMDATA/data/rac] is running....
EP [0] is checking....
EP [1] is checking....
EP[0] max_lsn: 58852
EP[0] adjust cur_lsn from [58852] to [58867]
BACKUP DATABASE [rac], execute......
CMD CHECK LSN......
BACKUP DATABASE [rac], collect dbf......
CMD CHECK ......
DBF BACKUP SUBS......
total 1 packages processed...
total 2 packages processed...
total 3 packages processed...
total 4 packages processed...
total 5 packages processed...
DBF BACKUP MAIN......
BACKUPSET [/dm7/backup/db_rac_bak_for_remove_01] END, CODE [0]......
META GENERATING......
total 9 packages processed...
total 9 packages processed!
CMD END.CODE:[0]
backup successfully!
time used: 3683.477(ms)

--增量備份之前,啟動資料庫,以便成功生成增量備份

RMAN> backup database '/dm7/data/rac0_config/dm.ini' increment backupset '/dm7/backup/db_rac_bak_for_remove_01_incr';
backup database '/dm7/data/rac0_config/dm.ini' increment backupset '/dm7/backup/db_rac_bak_for_remove_01_incr';
checking if the RAC database under system path [+DMDATA/data/rac] is running....
EP [0] is checking....
EP [1] is checking....
EP[0] max_lsn: 61871
EP[0] adjust cur_lsn from [61871] to [61888]
BACKUP DATABASE [rac], execute......
CMD CHECK LSN......
BACKUP DATABASE [rac], collect dbf......
CMD CHECK ......
DBF BACKUP SUBS......
total 1 packages processed...
total 2 packages processed...
total 3 packages processed...
total 4 packages processed...
total 5 packages processed...
DBF BACKUP MAIN......
BACKUPSET [/dm7/backup/db_rac_bak_for_remove_01_incr] END, CODE [0]......
META GENERATING......
total 9 packages processed...
total 9 packages processed!
CMD END.CODE:[0]
backup successfully!
time used: 3563.746(ms)
RMAN> remove backupset '/dm7/backup/db_rac_bak_for_remove_01_incr' database '/dm7/data/rac0_config/dm.ini' cascade;
remove backupset '/dm7/backup/db_rac_bak_for_remove_01_incr' database '/dm7/data/rac0_config/dm.ini' cascade;
CMD END.CODE:[0]
remove backupset successfully.
time used: 23.623(ms)

2.批次刪除所有備份集
使用REMOVE BACKUPSETS...命令可批次刪除備份集。批次刪除可選擇刪除的備份型別,資料庫備份、表空間備份、表備份,以及歸檔備份,不指定則全部刪除。下面示例為刪除/dm7/backup目錄下的所有備份集,可以是聯機生成的備份集,也可以離線DMRMAN工具生成的備份集。

RMAN> backup database '/dm7/data/rac0_config/dm.ini' full backupset '/dm7/backup/db_rac_bak_for_remove_02';
backup database '/dm7/data/rac0_config/dm.ini' full backupset '/dm7/backup/db_rac_bak_for_remove_02';
checking if the RAC database under system path [+DMDATA/data/rac] is running....
EP [0] is checking....
EP [1] is checking....
EP[0] max_lsn: 61871
EP[0] adjust cur_lsn from [61871] to [61888]
BACKUP DATABASE [rac], execute......
CMD CHECK LSN......
BACKUP DATABASE [rac], collect dbf......
CMD CHECK ......
DBF BACKUP SUBS......
total 1 packages processed...
total 2 packages processed...
total 3 packages processed...
total 4 packages processed...
total 5 packages processed...
DBF BACKUP MAIN......
BACKUPSET [/dm7/backup/db_rac_bak_for_remove_02] END, CODE [0]......
META GENERATING......
total 9 packages processed...
total 9 packages processed!
CMD END.CODE:[0]
backup successfully!
time used: 3415.539(ms)
RMAN> remove backupsets with backupdir '/dm7/backup/';
remove backupsets with backupdir '/dm7/backup/';
CMD END.CODE:[-10000],DESC:[Fail in mml(-10000)]
CMD END.CODE:[0]
remove backupset successfully.
time used: 1041.430(ms)

3.批次刪除指定時間之前的備份集
REMOVE BACKUPSETS...UNTIL TIME命令用來批次刪除指定時間的備份集。通常情況下,使用者並不想刪除指定目錄下所有的備份集,這時可以選擇只刪除指定時間之前的備份。如何確定刪除備份的時間點,需要結合使用者的備份計劃合理指定。若使用者每週做一次完全備份,每天進行增量備份,那麼刪除的時間可指定為7天前的某個特定時間。假設今天的日期為2020-06-09,要刪除7天前/dm7/backup目錄下的所有備份在DMRMAN中輸入以下命令:

RMAN> remove backupsets with backupdir '/dm7/backup/' until time '2020-06-09 15:20:00';
remove backupsets with backupdir '/dm7/backup/' until time '2020-06-09 15:20:00';
CMD END.CODE:[-10000],DESC:[Fail in mml(-10000)]
CMD END.CODE:[0]
remove backupset successfully.
time used: 1020.600(ms)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2723024/,如需轉載,請註明出處,否則將追究法律責任。

相關文章