Oracle10g新特性——RMAN(轉來的)
RMAN增量備份方案、增量備份的離線恢復、恢復預覽、從resetlogs中恢復、檔案壓縮等被重新設計後變得更加強大了。
大多數人都贊同RMAN就是Oracle事實上的資料庫備份工具。儘管早期版本的RMAN已經很強大,但是人們對它的期待還是有很多。很多DBA對於一些很希望有但實際上沒有的特性很煩惱。很幸運,在10g中解決了很多問題並且增加了很多受期待的特性,下面就一起看一下。
增量備份
RMAN有一項增量備份的功能。但實際上你是否經常用它呢?或許偶爾,或許從來沒有。
這項功能使RMAN備份上一次同級別或者更低階別的增量備份以後發生變化的資料塊。例如,在第一天執行了一次全備份(level_0),在第二、三天執行了兩次增量備份(level_1)。後面兩次備份僅僅備份在第一天和第二天之間變化的資料塊、第二天和第三天之間變化的資料塊,而不是備份整個資料。這種策略降低了備份資料大小,只需要較少的空間,並且使備份視窗變得更小,降低了網路傳輸數量。使用增量備份的最重要的因素為了和資料倉儲環境相關聯。因為在資料倉儲中,很多操作都是在NOLOGGING模式下進行的,並且資料的變化並沒有記錄在歸檔日誌檔案中,因此,沒有可用來恢復資料的媒質了。由於如今資料倉儲非常盤大,所以根本不會考慮使用全備份,同時也不可行。因而採用增量備份是一個可選的方法。
但為什麼那麼多DBA很少採用增量備份呢?一個原因就是在Oracle 9i和更低版本中,RMAN會掃描所有資料塊以定位哪些塊需要被備份。這一操作給系統造成了很大的壓力,因此增量備份不具備操作性。
Oracle 10G的RMAN對增量備份的方式進行了改進。它利用一個和檔案系統中日誌檔案類似的檔案,來跟蹤從上次備份以來發生變化的資料塊。RMAN需要讀這個檔案決定哪些塊需要備份。
你可以通過執行以下命令來啟用這種跟蹤機制:
可以通過以下查詢語句確定當前跟蹤機制是否被啟用:
閃動恢復區域
在9i中的閃回功能依賴於迴歸表空間閃回到一個早期狀態,這樣就限制它閃回到很早的的狀態。通過建立閃回日誌,閃動恢復提供了一個新的解決方法。閃回日誌和重做日誌類似,使資料庫恢復到一個早期狀態。總之,你可以通過以下SQL語句為資料庫建立一個閃動恢復區域,指定它的大小,並將資料庫設定為閃動恢復模式:
為了使閃回功能啟用,資料庫必須在歸檔日誌模式。上述操作會在目錄/ora_flash_area下建立oracle管理檔案(Oracle Managed Files OMF),總的大小使2GB。資料庫的變化都會記錄在這些檔案中,可以使資料庫迅速恢復到以前的某一點。
預設情況下,RMAN也會使用/ora_flash_area目錄來儲存備份檔案。因此,RMAN的備份全市儲存在磁碟上,而不是磁帶上。這樣的話,你就可以設定備份資料保留多少天,時間到了後,如果需要更多空間時這些檔案會被自動刪除。
然而,閃動恢復區域可以不需要一個檔案系統或目錄,它可以是一個自動儲存管理(Automatic Storage Management ASM)磁碟組。在這種情況下,閃動恢復區域可以用以下語句指定:
通過ASM和RMAN的結合使用,你可以通過使用哪些如Serial ATA和SCSI盤等廉價的磁碟來構建可擴充套件的、容錯性強的儲存系統。這種方式不能是備份過程更快,而可以使用比磁帶方式更便宜的磁碟來完成同樣的事情。
另外一個好處就是避免了使用者錯誤。永偉ASM檔案不是實際的檔案系統,他們被DBA和系統管理員損壞的機率更小。
大多數人都贊同RMAN就是Oracle事實上的資料庫備份工具。儘管早期版本的RMAN已經很強大,但是人們對它的期待還是有很多。很多DBA對於一些很希望有但實際上沒有的特性很煩惱。很幸運,在10g中解決了很多問題並且增加了很多受期待的特性,下面就一起看一下。
增量備份
RMAN有一項增量備份的功能。但實際上你是否經常用它呢?或許偶爾,或許從來沒有。
這項功能使RMAN備份上一次同級別或者更低階別的增量備份以後發生變化的資料塊。例如,在第一天執行了一次全備份(level_0),在第二、三天執行了兩次增量備份(level_1)。後面兩次備份僅僅備份在第一天和第二天之間變化的資料塊、第二天和第三天之間變化的資料塊,而不是備份整個資料。這種策略降低了備份資料大小,只需要較少的空間,並且使備份視窗變得更小,降低了網路傳輸數量。使用增量備份的最重要的因素為了和資料倉儲環境相關聯。因為在資料倉儲中,很多操作都是在NOLOGGING模式下進行的,並且資料的變化並沒有記錄在歸檔日誌檔案中,因此,沒有可用來恢復資料的媒質了。由於如今資料倉儲非常盤大,所以根本不會考慮使用全備份,同時也不可行。因而採用增量備份是一個可選的方法。
但為什麼那麼多DBA很少採用增量備份呢?一個原因就是在Oracle 9i和更低版本中,RMAN會掃描所有資料塊以定位哪些塊需要被備份。這一操作給系統造成了很大的壓力,因此增量備份不具備操作性。
Oracle 10G的RMAN對增量備份的方式進行了改進。它利用一個和檔案系統中日誌檔案類似的檔案,來跟蹤從上次備份以來發生變化的資料塊。RMAN需要讀這個檔案決定哪些塊需要備份。
你可以通過執行以下命令來啟用這種跟蹤機制:
SQL> alter database enable block change tracking using file '/rman_bkups/change.log';
SQL> select filename, status from v$block_change_tracking;
閃動恢復區域
在9i中的閃回功能依賴於迴歸表空間閃回到一個早期狀態,這樣就限制它閃回到很早的的狀態。通過建立閃回日誌,閃動恢復提供了一個新的解決方法。閃回日誌和重做日誌類似,使資料庫恢復到一個早期狀態。總之,你可以通過以下SQL語句為資料庫建立一個閃動恢復區域,指定它的大小,並將資料庫設定為閃動恢復模式:
SQL> alter system set db_recovery_file_dest = '/ora_flash_area'; SQL> alter system set db_recovery_file_dest_size = 2g; SQL> alter system set db_flashback_retention_target = 1440; SQL> alter database flashback on;
預設情況下,RMAN也會使用/ora_flash_area目錄來儲存備份檔案。因此,RMAN的備份全市儲存在磁碟上,而不是磁帶上。這樣的話,你就可以設定備份資料保留多少天,時間到了後,如果需要更多空間時這些檔案會被自動刪除。
然而,閃動恢復區域可以不需要一個檔案系統或目錄,它可以是一個自動儲存管理(Automatic Storage Management ASM)磁碟組。在這種情況下,閃動恢復區域可以用以下語句指定:
SQL> alter system set db_recovery_file_dest = '+dskgrp1';
另外一個好處就是避免了使用者錯誤。永偉ASM檔案不是實際的檔案系統,他們被DBA和系統管理員損壞的機率更小。
增量合併
假如你有以下的備份計劃:星期天做level 0的完全備份,標識為level_0;星期一做level 1的增量備份,標識為level_1_mon;星期四做level 1的增量備份,標識為level_1_tue。如果資料庫在星期六被損壞了,在10G之前你不得不恢復level_0然後再將所有6個增量備份實施上去,這樣會消耗很長一段時間。這也是很多dba避免使用增量備份的原因之一。
Oracle 10g的RMAN從根本上改變了這種方式,現在的增量備份命令如以下這個樣子:
這樣RMAN再做增量備份level_1備份時會和標識為level_0的完全備份合併。經過這樣的備份,level_0變成了那天的完全備份了。
因此,在週四,標識為level_0的備份實際與level_1的增量備份合併,成了在週四做的完全備份。如果在週六資料庫損壞了,你只需要將level_0的備份加上一些歸檔日誌共同恢復就可以了。而不需要將增量備份也恢復。這種方式大大減少了恢復時間,使備份加速,並且避免了重新做一個增量備份。
壓縮檔案
在基於磁碟備份的閃動恢復區域功能中,你還有一個很大的限制:磁碟容量。特別使當通過網路實現時——實際也經常是這麼用的——強烈建議建立一個儘可能小的備份。在10G的RMAN中,你可以在備份命令中插入壓縮檔案的命令:
請注意這使用了COMPRESS子句。它壓縮的備份檔案有一個很重要的特點:當恢復時,RMAN可以無需解壓檔案直接讀取它。為了確認是否壓縮,可以在輸出資訊中檢測是否有以下內容:
你還可以通過在RMAN中list output確認備份是否被壓縮:
就如所有的壓縮動作一樣,這一方法會增大CPU的壓力。但這也使你可以保留更多的備份在磁碟上以備恢復。另外,你還可以用RMAN來備份物理備份資料庫以用於恢復主資料庫。這一方法可以將備份資源從其他主機上解除安裝下來。
恢復預覽
通過提供了能預覽恢復操作功能,Oracle 10g變得很先進了:
你還可以預覽特定的恢復操作,如:
預覽功能使你能通過定期的檢查來確認恢復時要做什麼樣的準備。
Resetlogs和恢復
假如你丟失了當前的線上重做日誌檔案又不得不做一次不完全的資料庫恢復。最大的問題時resetlogs。當不完全恢復後,你必須使用resetlogs子句來開啟資料,它會設定日誌執行緒的序列號為1,刪除RMAN中早期的備份,使恢復操作更容易。在Oracle 9i和更低版本中,如果你需要將資料庫從resetlogs中恢復到一個早期狀態,你不得不把它恢復成一個不同的樣子。在Oracle 10G中,你就不需要這樣做了。由於控制檔案增加了一些結構,RMAN可以在一次resetlogs操作之前或之後隨時利用所有的備份來恢復資料庫。做備份使沒有必要關閉資料庫了。這一新功能意味著在一次resetlogs操作以後資料庫可以迅速的被使用者開啟。
假如你有以下的備份計劃:星期天做level 0的完全備份,標識為level_0;星期一做level 1的增量備份,標識為level_1_mon;星期四做level 1的增量備份,標識為level_1_tue。如果資料庫在星期六被損壞了,在10G之前你不得不恢復level_0然後再將所有6個增量備份實施上去,這樣會消耗很長一段時間。這也是很多dba避免使用增量備份的原因之一。
Oracle 10g的RMAN從根本上改變了這種方式,現在的增量備份命令如以下這個樣子:
RMAN> backup incremental level_1 for recover of copy with tag level_0 database;
因此,在週四,標識為level_0的備份實際與level_1的增量備份合併,成了在週四做的完全備份。如果在週六資料庫損壞了,你只需要將level_0的備份加上一些歸檔日誌共同恢復就可以了。而不需要將增量備份也恢復。這種方式大大減少了恢復時間,使備份加速,並且避免了重新做一個增量備份。
壓縮檔案
在基於磁碟備份的閃動恢復區域功能中,你還有一個很大的限制:磁碟容量。特別使當通過網路實現時——實際也經常是這麼用的——強烈建議建立一個儘可能小的備份。在10G的RMAN中,你可以在備份命令中插入壓縮檔案的命令:
RMAN> backup as compressed backupset incremental level 1 database;
channel ORA_DISK_1: starting compressed incremental level 1 datafile backupset
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
恢復預覽
通過提供了能預覽恢復操作功能,Oracle 10g變得很先進了:
RMAN> restore database preview; … …
RMAN>restore tablespace users preview; … …
Resetlogs和恢復
假如你丟失了當前的線上重做日誌檔案又不得不做一次不完全的資料庫恢復。最大的問題時resetlogs。當不完全恢復後,你必須使用resetlogs子句來開啟資料,它會設定日誌執行緒的序列號為1,刪除RMAN中早期的備份,使恢復操作更容易。在Oracle 9i和更低版本中,如果你需要將資料庫從resetlogs中恢復到一個早期狀態,你不得不把它恢復成一個不同的樣子。在Oracle 10G中,你就不需要這樣做了。由於控制檔案增加了一些結構,RMAN可以在一次resetlogs操作之前或之後隨時利用所有的備份來恢復資料庫。做備份使沒有必要關閉資料庫了。這一新功能意味著在一次resetlogs操作以後資料庫可以迅速的被使用者開啟。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/701141/viewspace-407003/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle10g新特性——RMAN(轉來的)——2Oracle
- (轉)oracle10g新特性之 flashbackOracle
- Oracle10g新特性——利用RMAN遷移表空間Oracle
- Oracle10g新特性——利用RMAN遷移表空間(二)Oracle
- Oracle10g新特性——利用RMAN遷移表空間(一)Oracle
- 轉載:Oracle10g新特性——審計Oracle
- rman總結(包含10g rman中的新特性)
- oracle10G新特性之ASM的應用OracleASM
- oracle10g新特性——物化檢視Oracle
- 10G 新特性系列:RMAN 新的引數-PREVIEWView
- 10G RMAN恢復新特性
- ZT oracle10g新特性——物化檢視Oracle
- Oracle10g新特性之stream流配置Oracle
- ORACLE10g的新特性-簡化你的工作:自動化儲存管理 (轉)Oracle
- 實戰10g新特性之RMAN TSPITR特性
- InterBase 6.5的新特性 (轉)
- XPath 2.0 的新特性 (轉)
- oracle10G新特性之段顧問的應用Oracle
- 12c RMAN新特性之Recover Table
- Oracle10g新特性:Recycle Bin回收站Oracle
- 玩轉iOS開發:iOS 11 新特性《Layout的新特性》iOS
- Superedge的新特性和未來之路
- XSLT 2.0 的新特性 (轉)
- Fedora Core 6的新特性(轉)
- Oracle 12C新特性-RMAN恢復表Oracle
- Oracle11g新特性點評之RMANOracle
- ORACLE10g新特性——全域性HASH分割槽索引Oracle索引
- JBUILDER 5 新特性 (轉)UI
- GCC 6 即將帶來的新特性GC
- 【RMAN】Oracle11g備份恢復新特性Oracle
- ZT:資料庫Oracle11g新特性RMAN資料庫Oracle
- 玩轉iOS開發:iOS 11 新特性《UIKit新特性的基本認識》iOSUI
- 【轉】http2 新特性HTTP
- oracle10G新特性之臨時表空間組的應用Oracle
- .NET 5 帶來的新特性 [MemberNotNull] 與 [MemberNotNullWhen]Null
- Xcode 8帶來的新特性和坑XCode
- rman備份的其它特性
- Oracle10g新特性:使用DBMS_SQLTUNE最佳化SQLOracleSQL