国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle 10G 最佳20位新特性:RMAN

2024-08-29 13:38:30
字體:
來源:轉載
供稿:網友

  RMAN 的功能更強大,它具有重新設計的增量備份模式、增量備份的脫機恢復、預覽恢復、復原日志進行恢復、文件壓縮等功能。
  
  大多數人都認同 RMAN 是用于 Oracle 數據庫備份的實際工具。但是與它們所具有的強大功能相比,RMAN 的早期版本并未提供人們所期待的一些功能。就像許多 DBA 一樣,假如它沒有包含我認為必須具有的功能,我將會異常惱怒。
  
  幸運的是,Oracle 數據庫 10g 通過合并人們所想要的許多功能解決了很多這類問題,這使 RMAN 成為一種更強大、更有用的工具。讓我們看一下這些功能。
  
  再論增量備份
  RMAN 包含一個用于增量備份的選項。但是老實講,您多久使用一次呢?可能經常用,也可能永遠也不會用。
  
  該選項用于指示該工具以相同或較低的級別來備份自上一次增量備份后發生改變的塊。例如,在第 1 天采用完全備份 (level_0),而在第 2、3 天采用兩個 level_1 的增量。后面的兩個備份只是備份了第 1 天和第 2 天之間,及第 2 天和第 3 天之間更改過的塊,而不是跨整個備份時間進行備份。這種策略減少了備份規模、需要的空間較少,并縮小了備份窗口,減少了網絡間移動的數據量。
  
  執行增量備份的最重要的原因是:與數據倉庫環境關聯起來,在該環境中許多操作都是在 NOLOGGING 模式下執行的,并且數據更改不會涉及到存檔的日志文件—因此,不可能發生介質恢復??紤]到今天的數據倉庫的巨大規模,以及其中的大部分數據并沒有發生改變的事實,就會知道執行完全備份既不值得又不實際。相反,在 RMAN 中執行增量備份是一個理想的選擇。
  
  既然如此,那么為什么許多 DBA 極少執行增量備份呢?一個原因是:在 Oracle 9i 及其較低的版本中,RMAN 會掃描所有的數據塊以確定要備份的內容。這個過程給系統施加了如此大的壓力,以致于執行增量備份變得不實際。
  
  Oracle 數據庫 10g RMAN 以消除了該缺陷的方式來執行增量備份。它使用一個文件,類似于文件系統中的日志,來跟蹤自上一次備份起更改過的塊。RMAN 讀取該文件來確定將要備份的塊。
  
  您可以通過發布以下命令來啟用該跟蹤機制:
  
  SQL> alter database enable block change tracking using file '/rman_bkups/change.log';
  
  該命令將創建一個名為 /rman_bkups/change.log 的二進制文件,以用于跟蹤。相反,您可以使用以下命令來禁用跟蹤:
  
  SQL> alter database disable block change tracking;
  
  要想查看當前是否啟用了對更改的跟蹤,您可以查詢:
  
  SQL> select filename, status from v$block_change_tracking;
  
  快速恢復區
  在 Oracle 9i 中引入的閃回查詢,依靠于撤消表空間來閃回到先前的版本,因此限制了它深入到過去的能力。快速恢復通過創建閃回日志提供了一個可選的解決方案,它類似于重做日志,用于將數據庫恢復到先前的狀態。 總之,您為數據庫創建了一個快速恢復區,指定了其大小,并用如下 SQL 命令將數據庫置于快速恢復模式下:
  
  alter system set db_recovery_file_dest = '/ora_Flash_area';
  alter system set db_recovery_file_dest_size = 2g;
  alter system set db_flashback_retention_target = 1440;
  alter database flashback on;
  
  該數據庫必須處于存檔日志模式下以支持閃回。此過程在目錄 /ora_flash_area 中創建了 Oracle 治理文件,其總大小高達 2GB。對數據庫所作的更改將寫入到這些文件中,并且可用于將數據庫快速恢復到過去的某個點上。
  
  默認情況下,RMAN 還使用 /ora_flash_area 來存儲備份文件;因此,RMAN 是存儲在磁盤上,而不是磁帶上。鑒于此,您就有能力指定您需要備份的天數。在該期限之后,假如需要更多的空間,則會自動將這些文件刪除。
  
  快速恢復區不必是一個文件系統或一個目錄,但是—,它可以是一個自動存儲治理 (ASM) 磁盤組。假如是那樣的話,就可以通過如下命令來指定快速恢復區:
  
  alter system set db_recovery_file_dest = '+dskgrp1';
  
  因此,結合使用 ASM 和 RMAN,您就可以使用廉價的磁盤(如 Serial ATA 或 SCSI 驅動)來構建一個高度可伸縮的、容錯能力強的存儲系統,而不需要額外的軟件。(有關 ASM 的具體信息,請參閱本系列中的 第 8 周 的內容。
)此過程不但使存儲過程更快,也使之能用足夠便宜的、基于磁帶的方法來完成。
  
  一個額外的好處是防止用戶錯誤。由于 ASM 不是真正的文件系統,使其遭受 DBA 和系統治理員意外破壞的可能性也更小一些。
  
  增量合并
  假如您有如下備份計劃:
  
  星期天 - 第 0 級(完全),帶有標簽 level_0
  星期一 - 第 1 級(增量),帶有標簽 level_1_mon
  星期二 - 第 1 級(增量),帶有標簽 level_1_tue
  
  等等。假如數據庫在星期天發生故障,在 Oracle 10g 之前的版本中,您將不得不恢復標簽 level_0,然后應用所有六個增量。它將持續一段較長的時間,這是許多 DBA 不進行增量備份的另一個原因。
  
  Oracle 數據庫 10g RMAN 從根本上改變了此格局?,F在,您的增量備份命令看起來如下所示:
  
  RMAN> backup incremental level_1 for recover of copy with tag level_0 database;
  
  在此,我們指示 RMAN 進行 level_1 增量備份,并將其與帶有 level_0 標簽的完全備份副本合并。在執行該命令之后,level_0 就成為了那一天的完全備份。
  
  因此,在星期二,帶有標簽 level_0 的備份,當將其與 level_1 增量備份合并時,它就變得與完全的星期二備份相等。同樣地,對于星期六采用的增量,當采用磁盤上的備份時,它將會與完全的 level_0 星期六備份相等。假如數據庫在星期六發生故障,您只需恢復 level_0 備份外加一小份存檔日志,使數據庫一致;在此不需要應用額外的增量。該方法顯著地削減了恢復時間、加快了備份速度,并消除了再一次執行完全的數據庫備份的需要。
  
  壓縮文件
  對于快速恢復區中基于磁盤的備份,仍有一個大的限制:磁盤空間。非凡是當經網絡進行時—通常情況下就是這樣—那么創建一個盡可能小的備份集是明智的。在 Oracle 數據庫 10g RMAN 中,您可以在備份命令內部壓縮文件:
  
  RMAN> backup as comPRessed backupset incremental level 1 database;
  
  注重子句 COMPRESSED 的用法。它將用一個顯著不同的方式壓縮備份文件:在恢復時,RMAN 不用解壓縮就能讀取文件。為了確認壓縮,檢查如下的輸出信息:
  
  channel ORA_DISK_1:starting compressed incremental level 1 datafile backupset
  
  此外,您可以通過檢查 RMAN 列表輸出來驗證備份已被壓縮:
  
  RMAN> list output;
  
  BS Key Type LV Size    Device Type Elapsed Time Completion Time
  ------- ---- -- ---------- ----------- ------------ ---------------
  3    Incr 1 2M     DISK    00:00:00   26-FEB-04   
  BP Key:3  Status:AVAILABLE Compressed:YES Tag:TAG20040226T100154
  Piece Name:/ora_flash_area/SMILEY10/backupset/2004_02_26/o1_mf_ncsn1_TAG20040226T100154_03w2m3lr_.bkp
  Controlfile Included:Ckp SCN:318556    Ckp time:26-FEB-04
  SPFILE Included:Modification time:26-FEB-04
  
  對于任意的壓縮過程,該方法都會對 CPU 產生壓力。作為折衷,您可以在磁盤上保存更多的 RMAN 備份,它預備好為還原和恢復操作所用。此外,您可以在物理備用數據庫上制作 RMAN 備份,它可用于恢復初始的數據庫。該方法將備份源卸載到另一臺主機上。
  
  在您開始行動之前先看看:恢復預覽
  
  在 Oracle 數據庫 10g中,RMAN 通過提供執行恢復操作所需要的預覽備份的能力向前邁進了一大步。
  
  RMAN> restore database preview;
  
  列表 1 顯示了該操作的輸出結果。您還可以預覽特定的恢復操作;例如:
  
  restore tablespace users preview;
  
  預覽答應您通過執行周期性的、有規則的檢查,來確保您的備份基礎架構的恢復預備就緒。
  
  Resetlogs 和恢復
  假設您丟失了當前的聯機重做日志文件,并且您不得不執行一個不完全的數據庫恢復—一種很少見但聽說過的情況。最大的問題是 resetlogs;在不完全的恢復之后,您必須用 resetlogs 子句打開數據庫,它把日志線程的序列號設置為 1,會使您的 RMAN 中的早期備份作廢并使恢復操作面臨更多的挑戰。
  
  在 Oracle 9i 及其較低的版本中,假如您需要將數據庫恢復到執行 resetlogs 操作之前的某個版本,您將不得不恢復到一個不同的拷貝。在 Oracle 數據庫 10g 中,您不必這樣做。由于控制文件中額外的基礎架構,在執行 resetlogs 之前或之后,RMAN 現在都可以輕易地使用所有備份來恢復 Oracle 數據庫。它不需要關閉數據庫來制作一個備份。這種新功能意味著在執行 resetlogs 操作之后,可以立即為用戶社區重新打開數據庫。
  
  為 RMAN 作好預備
  Oracle 數據庫 10g RMAN 中的增強功能使它成為您的備份策略中的甚至更具強制性的工具。對增量備份過程的改進只會使 RMAN 難以被忽視。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 呼伦贝尔市| 三江| 金塔县| 南城县| 新化县| 浙江省| 雷州市| 榆树市| 甘洛县| 沧州市| 内黄县| 中江县| 香格里拉县| 从化市| 景泰县| 山阳县| 乐至县| 景洪市| 息烽县| 孟津县| 汤阴县| 特克斯县| 六枝特区| 阳信县| 灵寿县| 海晏县| 星子县| 恭城| 嘉定区| 广南县| 迁西县| 嫩江县| 卢氏县| 莒南县| 景泰县| 万宁市| 诏安县| 和静县| 铜山县| 宾川县| 江阴市|