一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

RMAN 系列(七) ---- RMAN 維護 9

 憂郁_小剛 2011-05-22
RMAN 系列(七) ---- RMAN 維護 收藏
這篇資料主要講到了如下內容:
1. Rman 的維護
2. 恢復目錄的維護
3. 備份恢復目錄
4. RMAN 存儲腳本
5. 刪除數據庫
 
 
一. RMAN 的維護

1.1 交叉效驗RMAN 備份
在RMAN目錄和物理備份目的地不同步的情況下,我們可以使用crosscheck命令來效驗控制文件或恢復目錄中的RMAN信息是否與備份介質上的實際物理備份集片相同。
使用crosscheck 命令時,我們關心每個備份集或者副本的狀態(tài)。 如果使用控制文件,用于備份集片的v$backup_set 視圖和用于副本的v$databfile_copy 視圖中的status列列出了每個備份集或副本的狀態(tài)碼;如果使用恢復目錄,則在備份集片的RC_BACKUP_SET和副本的RC_DATAFILE_COPY中列出了每個備份集或副本的狀態(tài)碼。 在不同的備份狀態(tài)碼中,我們關心以下兩種狀態(tài):
(1)A(Available:可用):RMAN 認定該項存在于備份介質上
(2)X(Expired:不可用):這個備份集片或副本上存儲的RMAN目錄(即控制文件或恢復目錄)中,但是并沒有物理存在于備份介質上。

使用crosscheck 命令的目的是將RMAN目錄的狀態(tài)設置為AVAILABLE或者EXPIRED。 執(zhí)行crosscheck時,RMAN檢查目錄中列出的每個備份集或副本并且判斷他們是否存在與備份介質上。 如果備份集或副本不存在與備份介質上,它就會被標記為expired, 并且不能用于任何還原操作;如果備份集或副本存在與備份介質上,它就會維持available狀態(tài)。 如果以前被標記為expired 的備份集或副本再次存在于備份介質上,crosscheck 命令就會將它標記回available。

RMAN> crosscheck backup;
使用目標數據庫控制文件替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=25 設備類型=DISK
交叉校驗備份片段: 找到為 'AVAILABLE'
備份片段句柄=F:\BACKUP\BL_01LI7BSC_1_1.BAK RECID=1 STAMP=723758988
交叉校驗備份片段: 找到為 'AVAILABLE'
備份片段句柄=F:\BACKUP\BL_02LI7BSK_1_1.BAK RECID=2 STAMP=723758997
交叉校驗備份片段: 找到為 'AVAILABLE'
備份片段句柄=F:\BACKUP\BL_03LI7BVK_1_1.BAK RECID=3 STAMP=723759093

可以交叉效驗數據文件備份,表空間備份,控制文件備份以及服務器參數文件備份。此外,可以通過識別與備份相關聯(lián)的標記來選擇要交叉效驗和特定的備份。 基于使用的設備或者基于一個時間周期,我們甚至可以交叉效驗所有的備份。 如:
Crosscheck backup of datafile 1;
Crosscheck backup of tablespace users;
Crosscheck backup of controlfile;
Crosscheck backup of spfile;
Crosscheck backup tag='TEST';
Crosscheck backup completed after 'sysdate-2';
Crosscheck backup completed between 'sysdate-5' and 'sysdate-2';
Crosscheck backup device type disk;
 
交叉驗證歸檔日志示例:
RMAN> crosscheck archivelog all;

使用目標數據庫控制文件替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=24 設備類型=DISK
對歸檔日志的驗證成功
歸檔日志文件名=D:\ARCHIVELOG\BL_ARC0000000005_0723658881.0001 RECID=1 STAMP=723756640
對歸檔日志的驗證成功
歸檔日志文件名=D:\ARCHIVELOG\BL_ARC0000000006_0723658881.0001 RECID=2 STAMP=723758988
對歸檔日志的驗證成功
歸檔日志文件名=D:\ARCHIVELOG\BL_ARC0000000007_0723658881.0001 RECID=3 STAMP=723759092

我們可以基于一個號碼或標準(包括時間,具體的或指定范圍的SCN或日志序列號)來交叉效驗歸檔的重做日志備份,甚至還可以使用like參數與通配符來交叉效驗特定的歸檔日志備份。 如:
Crosscheck archivelog like 'ARC001.log';
Crosscheck archivelog 'D:\archivelog\arc023.log';
Crosscheck archivelog like '%ARC00012.LOG';
Crosscheck archivelog from time "to_date('2010-7-10','yyyy-mm-dd')";
Crosscheck archivelog until time "to_date('2010-7-10','yyyy-mm-dd')";
Crosscheck archivelog from sequence 12;
Crosscheck archivelog until sequence 522;

使用crosscheck copy命令還可以交叉效驗副本。 包括數據文件副本,控制文件副本,歸檔重做日志副本以及磁盤上的歸檔的重做日志。 如:
Crosscheck copy of datafile 5;
Crosscheck datafilecopy 'D:\APP\ADMINISTRATOR\ORADATA\BL\BL01.DBF';
 
1.2  RMAN 備份的驗證
 RMAN 提供的validate命令允許查看給定的備份集和進行驗證以確保這個備份集能夠被還原。注意,validate 命令必須要獲得主鍵ID。 這個可以用list backup summary命令獲取。

RMAN> list backup summary;
備份列表
===============
關鍵字     TY LV S 設備類型 完成時間   段數 副本數 壓縮標記
------- -- -- - ----------- ---------- ------- ------- ---------- ---
1       B  A  A DISK        07-7月 -10 1       1       NO         TAG20100707T200948
2       B  F  A DISK        07-7月 -10 1       1       NO         TAG20100707T200956
3       B  A  A DISK        07-7月 -10 1       1       NO         TAG20100707T201132

RMAN> validate backupset 1;
啟動 validate 于 10-7月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始驗證歸檔日志備份集
通道 ORA_DISK_1: 正在讀取備份片段 F:\BACKUP\BL_01LI7BSC_1_1.BAK
通道 ORA_DISK_1: 段句柄 = F:\BACKUP\BL_01LI7BSC_1_1.BAK 標記 = TAG20100707T200948
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 驗證完成, 用時: 00:00:03
完成 validate 于 10-7月 -10
 
1.3 備份保存策略
保存策略(retention policy)是管理備份和副本以及指定他們在備份介質上保存時間的一種方法。 我們可以定義兩種基本的保存策略: 恢復窗口保存策略(recovery window backup retention policy) 和 備份冗余備份保存策略(backup redundancy backup retention policy)。
每個冗余策略將一直保持知道被修改或者刪除(或者直到使用create controlfile命令重新構建控制文件的時候)。 兩個冗余策略是相互排斥的。此外,即使使用了冗余策略,也只能在使用帶obsolete參數的delete命令的時候才能刪除物理備份片。

1.3.1 恢復窗口備份保存策略
這種保存策略是基于想要數據庫恢復到的最近日期定制的。 如:
Configure retention policy to recovery window 7 days;
在這個示例中,我們保存近7天的備份是有效的,超過7天的備份會被丟棄。

1.3.2 備份冗余備份保存策略
這種備份策略RMAN 會從最新備份開始保留n個數據庫備份。 如:
Configure retention policy to redundancy 3;
這個示例中,我們保存最后3份有效的備份。

1.3.3 保存策略的維護
當一個給定的備份或者副本由于備份保存策略的標準而被丟棄時,RMAN 不會自動刪除這個備份或副本,而只是標記為OBSOLETE.  我們可以使用 report obsolete 命令查看被RMAN 標記為obsolete 的備份。

RMAN> report obsolete;
RMAN 保留策略將應用于該命令
將 RMAN 保留策略設置為冗余 1
已廢棄的備份和副本報表
類型                 關鍵字 完成時間           文件名/句柄
-------------------- ------ ------------------ --------------------
存檔日志          1      07-7月 -10         D:\ARCHIVELOG\BL_ARC0000000005_0723658881.0001
存檔日志          2      07-7月 -10         D:\ARCHIVELOG\BL_ARC0000000006_0723658881.0001
備份集               1      07-7月 -10
備份片段       1      07-7月 -10         F:\BACKUP\BL_01LI7BSC_1_1.BAK

當然,我們也可以使用帶有keep參數的change 命令修改需要保留的已經被丟棄備份的狀態(tài)。 使用這個命令時,其狀態(tài)被修改的備份或副本被認為是一個長期備份(long-term backup),并且不受相應的保存策略的影響。

可以使用change命令將一個備份修改為永久備份,也可以為這個備份或副本定義丟棄的日志。此外,還可以定義與這個備份關聯(lián)的所有日志都應當被保留,以保證總是能將該備份恢復到當前時間。 我們還可以使用change nokeep命令來手工丟棄一個備份。示例:

RMAN> list backup;
備份集列表
===================
BS 關鍵字  大小       設備類型占用時間 完成時間
------- ---------- ----------- ------------ ----------
1       52.15M     DISK        00:00:04     07-7月 -10
        BP 關鍵字: 1   狀態(tài): AVAILABLE  已壓縮: NO  標記: TAG20100707T200948
段名:F:\BACKUP\BL_01LI7BSC_1_1.BAK

  備份集 1 中的已存檔日志列表
  線程序列     低 SCN    時間下限   下一個 SCN   下一次
  ---- ------- ---------- ---------- ---------- ---------
  1    5       986340     06-7月 -10 1006590    07-7月 -10
  1    6       1006590    07-7月 -10 1008501    07-7月 -10

BS 關鍵字  類型 LV 大小       設備類型 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
2       Full    974.46M    DISK        00:01:33     07-7月 -10
        BP 關鍵字: 2   狀態(tài): AVAILABLE  已壓縮: NO  標記: TAG20100707T200956
段名:F:\BACKUP\BL_02LI7BSK_1_1.BAK
  備份集 2 中的數據文件列表
  文件 LV 類型 Ckp SCN    Ckp 時間   名稱
  ---- -- ---- ---------- ---------- ----
  1       Full 1008510    07-7月 -10 D:\APP\ADMINISTRATOR\ORADATA\BL\SYSTEM01.DBF
  2       Full 1008510    07-7月 -10 D:\APP\ADMINISTRATOR\ORADATA\BL\SYSAUX01.DBF
  3       Full 1008510    07-7月 -10 D:\APP\ADMINISTRATOR\ORADATA\BL\UNDOTBS01.DBF
  4       Full 1008510    07-7月 -10 D:\APP\ADMINISTRATOR\ORADATA\BL\USERS01.DBF
  5       Full 1008510    07-7月 -10

修改一個備份或副本時,必須引用與這個備份關聯(lián)的備份集關鍵字。
另外,keep forever 選項有兩個重要的限制:
(1)只有在使用恢復目錄時,才可以使用該選項
(2)如果使用FRA,則不能使用該選項

修改備份為永久保存并將以及該備份的相關的日志保存下來,保證總能將備份恢復到當前時間點
    change backupset 31 keep forever logs;
設置備份丟棄的新日期,將備份在多保存7 天,7 天后將刪除
    change backupset 32 keep until time 'sysdata + 7' logs;

檢查完報告后,可以使用帶有obsolete 參數的delete 命令指示Oracle 刪除要丟棄的備份,如:
Delete obsolete;

如果要使一個備份不受所選冗余策略的影響,可以使用backup命令的keep 參數來為這個備份指定另一個保存標準。 如:
Backup database keep forever;
Backup database keep until time "to_date('2010-7-10','yyyy-mm-dd')";
Backup database keep 5 days;
 
1.4 change 命令
Change 命令允許用戶修改備份的狀態(tài)。我們可能會遇到備份介質設備在某個時間愛你段中無效的情況(如突然斷電)。這時,我們就可以使用change 命令來指示這個設備上的備份是不可用的。
解決硬件故障和修復磁盤后,額可以再次執(zhí)行change 命令,將備份改為可用的狀態(tài)。也可以將備份修改為不可用的狀態(tài)。在還原和恢復操作期間,不會考慮哪些不可用的備份,但在執(zhí)行delete expired命令期間這些備份記錄不會被刪除。 相關示例:
Change backup of database tag='TEST' unavailable;
Change backup of database like '%TEST%' unavailable;
Change backupset 33 unavailable;
Change backupset 33 available;
Change archivelog 'd:\archivelog\arc0001.log' unavailable;

可以使用change命令修改歸檔的重做日志備份的狀態(tài)。如:將已經備份了指定次數的所有歸檔的重做日志備份修改為不可用的狀態(tài),也可以修改特定設備上的所有備份的狀態(tài)。
Change archivelog all backed up 5 times to device type disk unavailable;
Change backup of database device type disk unavailable;

可是使用帶有delete 參數的change 命令刪除備份集,即在備份介質上的物理刪除,并且從控制文件和恢復目錄中刪除。 前提是要知道備份集關鍵字,可以使用list backup 或 list copy 命令查看。
RMAN> list backup;
備份集列表
===================
BS 關鍵字  大小       設備類型占用時間 完成時間
------- ---------- ----------- ------------ ----------
1       52.15M     DISK        00:00:04     07-7月 -10
        BP 關鍵字: 1   狀態(tài): AVAILABLE  已壓縮: NO  標記: TAG20100707T200948
段名:F:\BACKUP\BL_01LI7BSC_1_1.BAK
  備份集 1 中的已存檔日志列表
  線程序列     低 SCN    時間下限   下一個 SCN   下一次
  ---- ------- ---------- ---------- ---------- ---------
  1    5       986340     06-7月 -10 1006590    07-7月 -10
  1    6       1006590    07-7月 -10 1008501    07-7月 -10

BS 關鍵字  類型 LV 大小       設備類型 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
2       Full    974.46M    DISK        00:01:33     07-7月 -10
        BP 關鍵字: 2   狀態(tài): AVAILABLE  已壓縮: NO  標記: TAG20100707T200956
段名:F:\BACKUP\BL_02LI7BSK_1_1.BAK
  備份集 2 中的數據文件列表
  文件 LV 類型 Ckp SCN    Ckp 時間   名稱
  ---- -- ---- ---------- ---------- ----
  1       Full 1008510    07-7月 -10 D:\APP\ADMINISTRATOR\ORADATA\BL\SYSTEM01.DBF
  2       Full 1008510    07-7月 -10 D:\APP\ADMINISTRATOR\ORADATA\BL\SYSAUX01.DBF
  3       Full 1008510    07-7月 -10 D:\APP\ADMINISTRATOR\ORADATA\BL\UNDOTBS01.DBF
  4       Full 1008510    07-7月 -10 D:\APP\ADMINISTRATOR\ORADATA\BL\USERS01.DBF
  5       Full 1008510    07-7月 -10

刪除備份集1:
RMAN> change backupset 1 delete;
使用通道 ORA_DISK_1
備份片段列表
BP 關鍵字  BS 關鍵字  Pc# Cp# 狀態(tài)      設備類型段名稱
------- ------- --- --- ----------- ----------- ----------
1       1       1   1   AVAILABLE   DISK        F:\BACKUP\BL_01LI7BSC_1_1.BAK

是否確定要刪除以上對象 (輸入 YES 或 NO)? yes
已刪除備份片段
備份片段句柄=F:\BACKUP\BL_01LI7BSC_1_1.BAK RECID=1 STAMP=723758988
1 對象已刪除

在上面的這個示例中,我們刪除了備份集和它關聯(lián)的備份片。 也可以刪除一些備份片。 通過 list backup命令我們可以看到備份片的名稱,比如:段名:F:\BACKUP\BL_01LI7BSC_1_1.BAK。

我們也可以查看備份片的號碼,用catalog 用戶連接數據庫后,查看rc_backup_piece 表,SQL如下:
SQL> select bs_key,bp_key,piece#,handle from rc_backup_piece;
    BS_KEY     BP_KEY     PIECE#   HANDLE
---------- ---------- ---------- -----------------------------------------------

        52         55          1  D:\BACKUP\ORCL_02LI47UA_1_1
        53         56          1  D:\BACKUP\ORCL_03LI47UF_1_1
        75         82          1  D:\BACKUP\ORCL_04LI4816_1_1

刪除備份片,我們可以用BP_KEY,也可以直接用段名(handle),如:
RMAN>  Change backuppiece 'F:\BACKUP\BL_02LI7BSK_1_1.BAK' delete;
使用通道 ORA_DISK_1
備份片段列表
BP 關鍵字  BS 關鍵字  Pc# Cp# 狀態(tài)      設備類型段名稱
------- ------- --- --- ----------- ----------- ----------
2       2       1   1   AVAILABLE   DISK        F:\BACKUP\BL_02LI7BSK_1_1.BAK
是否確定要刪除以上對象 (輸入 YES 或 NO)? yes
已刪除備份片段
備份片段句柄=F:\BACKUP\BL_02LI7BSK_1_1.BAK RECID=2 STAMP=723758997
1 對象已刪除

使用備份集片,如:
Change backuppiece 622 delete;
Change archivelog until logseq=54 delete;
 
最后,可以使用change backuppiece uncataog命令從目錄中刪除備份集片。 如果刪除最后剩余的備份集片,那么它也將刪除備份集記錄。如:
Change backuppiece 'F:\BACKUP\BL_02LI7BSK_1_1.BAK' uncatalog;
 
1.5 delete 命令
備份集不是永遠存在的。我們可以使用保存策略標記備份有效性和生存期的結束。但是,備份策略的實施不會從RMAN目錄中刪除備份,而只是將這些備份標記為丟棄狀態(tài)。
Delete 命令對備份和副本的影響很大。通過delete命令,可以刪除基于保存標準被標記為丟棄的任何備份,還可以將恢復目錄或控制文件中的備份從expired狀態(tài)變?yōu)閐eleted狀態(tài)。 如:
Delete expired;
Delete obsolete;

執(zhí)行delete命令時,RMAN會請求用戶確認這個刪除命令,如果確認了這個刪除命令,RMAN 就會完成delete操作。

注意: 如果一個備份被標記為deleted 狀態(tài),就不能恢復這個備份。 如果該備份物理可用,我們仍然可以使用dbms_backup_restore過程來恢復這個備份。

1.6 在RMAN中為其他備份編寫目錄
使用catalog 命令可以在RMAN中記錄數據文件備份,歸檔日志備份和控制文件備份,隨后還能使用這些備份來還原和恢復數據庫。 Oracle 10g允許使用catalog命令來為控制文件中已有的備份集片編寫目錄。當使用一個不包含最新的RMAN信息的較早備份控制文件還原數據庫時,則可以很方便得使用該功能來完成。
示例:
我們先備份一個表空間,歸檔文件,控制文件。 然后通過catalog 把這些信息添加到恢復目錄里。
SQL> conn /@bl as sysdba;
已連接。
SQL> alter tablespace users begin backup;
表空間已更改。
SQL> select file_name from dba_data_files;
FILE_NAME
------------------------------------------------------------------------------
D:\APP\ADMINISTRATOR\ORADATA\BL\USERS01.DBF
D:\APP\ADMINISTRATOR\ORADATA\BL\UNDOTBS01.DBF
D:\APP\ADMINISTRATOR\ORADATA\BL\SYSAUX01.DBF
D:\APP\ADMINISTRATOR\ORADATA\BL\SYSTEM01.DBF
D:\APP\ADMINISTRATOR\ORADATA\BL\BL01.DBF
SQL> host copy D:\APP\ADMINISTRATOR\ORADATA\BL\USERS01.DBF F:\backup;
已復制         1 個文件。
SQL> alter tablespace users end backup;
表空間已更改。
SQL> alter system archive log current;
系統(tǒng)已更改。
SQL> host copy d:\archivelog\BL_ARC0000000017_0723658881.0001 F:\backup
已復制         1 個文件。
SQL> alter database backup controlfile to 'F:\backup\bl-2010-7-11.ctl';
數據庫已更改。

現(xiàn)在在RMAN中將上面的備份信息寫入catalog
C:\Users\Administrator.DavidDai>rman target /@bl;
恢復管理器: Release 11.2.0.1.0 - Production on 星期日 7月 11 08:51:50 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
連接到目標數據庫: BL (DBID=680066685)
RMAN> catalog datafilecopy 'F:\backup\users01.dbf';
已將數據文件副本列入目錄
數據文件副本文件名=F:\BACKUP\USERS01.DBF RECID=3 STAMP=724063951
RMAN> catalog archivelog 'f:\backup\BL_ARC0000000017_0723658881.0001';
已編目的歸檔日志
歸檔日志文件名=F:\BACKUP\BL_ARC0000000017_0723658881.0001 RECID=14 STAMP=724063994
RMAN> catalog controlfilecopy 'f:\backup\BL-2010-7-11.CTL';
已列入目錄的控制文件副本
控制文件副本文件名=F:\BACKUP\BL-2010-7-11.CTL RECID=4 STAMP=724064022

Catalog命令允許將與新的備份集相關的信息輸入到控制文件或恢復目錄中。 RMAN將重寫與編寫目錄的信息沖突的已存在的目錄信息。 如果需要移動備份集片的位置,也可以使用該命令。

查看備份集信息
RMAN> list backup;
備份集列表
===================
BS 關鍵字  大小       設備類型占用時間 完成時間
------- ---------- ----------- ------------ ----------
3       7.50K      DISK        00:00:01     07-7月 -10
        BP 關鍵字: 3   狀態(tài): AVAILABLE  已壓縮: NO  標記: TAG20100707T201132
段名:F:\BACKUP\BL_03LI7BVK_1_1.BAK

將備份集移到其他位置,然后用catalog修改控制文件中每個移動的備份片的正確位置:
RMAN> catalog backuppiece 'f:\BL_03LI7BVK_1_1.BAK';
已將備份片段列入目錄
備份片段句柄=F:\BL_03LI7BVK_1_1.BAK RECID=12 STAMP=724064512

也可以使用帶有start with 選項的catalog命令,該命令允許定義包含將要編寫目錄的RMAN 備份集片的目錄,RMAN 然后對該目錄中的所有備份集片編寫目錄。

RMAN>catalog start with 'f:\backup';

該命令會提示編寫目錄的文件列表,并詢問是否希望對所列出的文件編寫目錄,如果確定編寫目錄,RMAN就會對列出的所有備份集片編寫目錄。該命令也允許對一些具有類似名稱的備份集片編寫目錄。

當使用catalog start with命令時,不會局限與特定的文件編寫目錄;該命令將嘗試對符合參數列表的所有文件編寫目錄。 然后,在執(zhí)行catalog過程中,非備份集片的文件將會使編寫目錄的過程失敗,并且產生一個錯誤,如果作為備份集片文件被成功編寫目錄,則不管是否會產生其他錯誤。
 
 
 

二. 恢復目錄的維護
使用恢復目錄時會涉及到其他一些維護活動,比如在數據庫升級或遷移期間升級恢復目錄,手工配置數據庫對應物以及在某些數據庫操作后在同步恢復目錄。

2.1 在RMAN中取消注冊數據庫
在Oracle 10g 之前,從恢復目錄中取消注冊數據庫是一個手工操作的過程。在10g中,從恢復目錄中刪除數據庫只需要執(zhí)行 unregister database。如:
RMAN>unregister database orcl;

注意的是: 該命令不會刪除該數據庫的備份文件,而只是刪除這些備份文件的恢復目錄引用。 同樣需要注意的是,只需要連接恢復目錄就可以執(zhí)行該命令。

2.2 數據庫的遷移和升級問題
升級數據庫時,必須同事升級恢復目錄,因為數據庫版本, RMAN 版本和恢復目錄版本之間存在嚴格的格則。

用恢復目錄用戶連接數據庫,然后查詢rcver表,就可以看到恢復目錄的版本:
SQL> conn rman/rman@orcl;
已連接。
SQL> select version from rcver;
VERSION
------------
11.02.00.01

   只要恢復目錄的版本不低于數據庫的版本,就能夠執(zhí)行各種操作。 因此,如果在同一個恢復目錄中存儲多個數據庫,只要升級這個恢復目錄中的一個數據庫。
升級恢復目錄很簡單,只需要在RMAN 里執(zhí)行upgrade catalog命令即可。 RMAN 會提示用戶再次輸入upgrade catalog命令,隨后將升級恢復目錄。

C:\Users\Administrator.DavidDai>rman target /@bl catalog rman/rman@orcl;
恢復管理器: Release 11.2.0.1.0 - Production on 星期日 7月 11 10:16:20 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
連接到目標數據庫: BL (DBID=680066685)
連接到恢復目錄數據庫
RMAN> upgrade catalog;
恢復目錄所有者是RMAN
再輸入一次 UPGRADE CATALOG 命令來確認目錄升級
RMAN> upgrade catalog;
恢復目錄已升級到版本11.02.00.01
DBMS_RCVMAN 程序包升級為 11.02.00.01 版
DBMS_RCVCAT 程序包升級為 11.02.00.01 版
 
2.3 手工重置數據庫對應物(reset catalog)
在打開數據庫時,如果使用resetlogs參數,就會創(chuàng)建一個新對應物。 如果這個操作是在RMAN 中進行,則會正確的更新恢復目錄,但是,如果手工執(zhí)行resetlogs命令(比如:sqlplus),就必須在恢復目錄中重置數據庫對應物。
Rman>reset database to incarnation 5;

2.4 手工再同步恢復目錄(resync catalog)
RMAN使用恢復目錄時,它會使用在同步進程來確保恢復目錄和目標數據庫的控制文件一致。通常,Oracle在RMAN操作(備份和恢復)后會再同步數據庫,這樣就不必經常再同步恢復目錄。需要再同步恢復目錄的一個實例是有時使用恢復目錄,有時不使用恢復目錄,此時,可以使用resync catalog命令手工使Oracle 再同步恢復目錄。
Rman>resync catalog;

Oracle 同步恢復目錄時,它首先會創(chuàng)建一個快照控制文件,并比較這個文件和恢復目錄。 完成比較后,Oracle更新恢復目錄,是恢復目錄與數據庫控制文件同步。
 
2.5 恢復目錄記錄的刪除
只有很少的記錄會從恢復目錄中被刪除,如果不加以維護,狀態(tài)為deleted的就備份會一直駐留在恢復目錄中。為了解決這個問題,Oracle提供了$ORACLE_HOME\rdbms\admin\prgmanc.sql 腳本來刪除恢復目錄中狀態(tài)為deleted的所有記錄。 建議定期執(zhí)行這個腳本,以控制文件恢復目錄的大小。
如果要從恢復目錄中刪除舊的對應物記錄,就必須從DBINC表中刪除這些對應物。可以使用RC_DATABASE_INCARNATION 視圖來確定要刪除的對應物,記錄想刪除的每個對應物的DBINC_KEY值。然后在sqlplus中執(zhí)行delete 命令,如:

SQL> select * from rc_database_incarnation;
    DB_KEY       DBID  DBINC_KEY NAME     RESETLOGS_CHANGE# RESETLOGS_TIME CUR P
---------- ---------- ---------- -------- ----------------- -------------- --- -
         2 1247395743          4 ORCL                940976 21-5月 -10     NO  0

         2 1247395743         21 ORCL                     1 02-4月 -10     NO
         2 1247395743        787 ORCL               8554968 06-7月 -10     YES 2
SQL> delete from dbinc where dbinc_key=4;
已刪除 1 行。
 
 
 
 

三. 備份恢復目錄
我們可以使用RMAN來備份數據庫,同樣可以用RMAN 來備份恢復目錄數據庫。 只要確保設置了合理的恢復策略,就能夠很快的還原恢復目錄。
丟失恢復目錄并不可怕,即使使用了恢復目錄,在以后也可以不使用恢復目錄就能夠恢復數據庫。關鍵的是,我們需要數據庫控制文件的備份。
 
 
 

四. RMAN 存儲的腳本
在RMAN中,我們可以創(chuàng)建一個命令文件,里面包含rman命令,然后在RMAN的中調用這個文件。如:
Rman target usr/pwd cmdfile=backup.cmd
或者,也可以直接在RMAN 中直接運行
@@backup.cmd

此外,RMAN 還提供了恢復目錄中的存儲腳本, 這些操作必須使用恢復目錄。

4.1 創(chuàng)建存儲的腳本
使用create script RMAN 命令可以在恢復目錄中存儲腳本。 創(chuàng)建每個存儲的腳本時,都要為腳本指定一個名稱。 可以創(chuàng)建執(zhí)行數據庫備份,恢復和維護操作的腳本。在腳本中,RMAN 允許使用comment 參數存儲與存儲腳本相關的注釋。 注意: 必須連接到恢復目錄。 如:
RMAN> create script my_backup_script
2> comment 'dave'
3> {
4> backup database plus archivelog;
5> }

已創(chuàng)建腳本 my_backup_script

4.2 修改存儲腳本
使用replace script 命令可以替換恢復目錄中的存儲腳本。

RMAN> replace script my_backup_script
2> comment 'bl'
3> {
4> backup database plus archivelog delete input;
5> }
已替換腳本 my_backup_script

4.3 刪除存儲腳本
使用delete script命令可以刪除一個存儲腳本。
RMAN>   Delete script my_backup_script;
已刪除腳本: my_backup_script

4.4 使用存儲腳本
創(chuàng)建一些存儲過程腳本后,可以執(zhí)行execute script命令來使用這些腳本。如:
Run { execute script my_backup_script; }

4.5 打印存儲的腳本
RMAN> Print script my_backup_script;
正在打印存儲的腳本: my_backup_script
{backup database plus archivelog;}

還可以使用RC_STORED_SCRIPT_LINE恢復目錄視圖來顯示存儲的腳本的內容,如:
SQL> select script_name,text from rc_stored_script_line order by script_name,line;

SCRIPT_NAME                    TEXT
------------------------------ -------------------------------------------------

my_backup_script               {
my_backup_script               backup database plus archivelog delete input;
my_backup_script               }
 
 
 

五. 刪除數據庫
如果無法采取其他方法來處理數據庫的問題,則可以使用RMAN 的drop database。 只需要將數據庫置于受限制的會話模式,在使用RMAN連接到目標數據庫,執(zhí)行drop database命令,就可以安靜的刪除數據庫。 如果添加inculding backups參數,則在刪除同時刪除RMAN相關的備份。 執(zhí)行該命令時,RMAN 首先會確認操作,然后繼續(xù)刪除數據庫。 如果希望不回顯提示,可以使用noprompt參數。 示例:
DROP DATABASE;
DROP DATABASE NOPROMPT;
DROP DATABASE INCLUDING BACKUPS;
DROP DATABASE INCLUDING BACKUPS NOPROMPT;

The “DROP DATABASE” command deletes the
Datafiles
Logfiles
Controlfiles
Spfile
The ” DROP DATABASE INCLUDING BACKUPS ” command in addition to the above files also removes
Archivelogs
Backup pieces generated by RMAN

SQL> startup mount;
ORACLE 例程已經啟動。
Total System Global Area  636100608 bytes
Fixed Size                  1376464 bytes
Variable Size             457183024 bytes
Database Buffers          171966464 bytes
Redo Buffers                5574656 bytes
數據庫裝載完畢。
SQL> alter system enable restricted session;
系統(tǒng)已更改。

alter system disable restricted session.

C:\Users\Administrator.DavidDai>rman target /;
恢復管理器: Release 11.2.0.1.0 - Production on 星期日 7月 11 14:23:48 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
已連接到目標數據庫: BL (DBID=680066685, 未打開)

RMAN> DROP DATABASE INCLUDING BACKUPS;
數據庫名為 "BL" 且 DBID 為 680066685
是否確實要刪除所有備份和數據庫 (輸入 YES 或 NO)? yes
使用目標數據庫控制文件替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=10 設備類型=DISK
......

補充一點,windows 下,不會刪除服務,要刪除服務,需要手工的運行ormdim 命令。如:
C:\Users\Administrator.DavidDai>oradim -delete -sid bl
Unable to stop service, OS Error = 1062
實例已刪除。
 
 
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/tianlesoftware/archive/2010/07/12/5728097.aspx

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    成人欧美精品一区二区三区| 欧美欧美欧美欧美一区| 国产视频一区二区三区四区| 欧美一区二区三区播放| 欧美胖熟妇一区二区三区 | 久久国产精品熟女一区二区三区 | 国产成人精品国内自产拍| 日韩人妻少妇一区二区| 在线观看那种视频你懂的| 日韩人妻av中文字幕| 日韩av生活片一区二区三区| 欧美又黑又粗大又硬又爽| 亚洲欧美一二区日韩高清在线| 一区二区三区18禁看| 国产精品推荐在线一区| 亚洲香艳网久久五月婷婷| 国产白丝粉嫩av在线免费观看| 日韩高清一区二区三区四区 | 国产伦精品一区二区三区精品视频 | 欧美日韩国产的另类视频| 不卡视频在线一区二区三区| 中文字幕区自拍偷拍区| 国产精品色热综合在线| 国产精品久久香蕉国产线| 九九热国产这里只有精品| 国产一区二区三区色噜噜| 日韩不卡一区二区在线| 熟妇久久人妻中文字幕| 日本久久精品在线观看| 国产精品免费自拍视频| 日本一品道在线免费观看| 色欧美一区二区三区在线| 天堂网中文字幕在线视频| 久久综合日韩精品免费观看| 欧美加勒比一区二区三区 | 欧美精品亚洲精品一区| 亚洲一区二区久久观看 | 国产又色又爽又黄又大| 不卡一区二区在线视频| 女同伦理国产精品久久久| 欧美做爰猛烈叫床大尺度|