一步一步學RMAN第七篇 RMAN基礎知識補充 二

junsansi發表於2007-07-18

  經過前面的練習,我們已經能夠使用rman完成資料庫的備份,但是我想對於初次接觸rman的朋友,多數人肯定心中有很多疑問,現在大家應該是處在知道How to do.but don't konw why的境界,表怕,此是俺有意為之,緣由嘛,且聽俺慢慢道來。

一步一步學RMAN第一篇 進入RMAN
http://junsansi.itpub.net/post/29894/307688

一步一步學RMAN第二篇 RMAN命令知多少
http://junsansi.itpub.net/post/29894/308749

一步一步學RMAN第三篇 RMAN備份演練初級篇
http://junsansi.itpub.net/post/29894/308751

一步一步學RMAN第四篇 RMAN備份演練進階篇
http://junsansi.itpub.net/post/29894/308752

一步一步學RMAN第五篇 RMAN基礎知識補充 一
http://junsansi.itpub.net/post/29894/308753

一步一步學RMAN第六篇 實戰RMAN備份
http://junsansi.itpub.net/post/29894/308756


  多數技術書籍在初始幾章往往都是介紹基礎知識,從命名、來由到基礎概念,幾乎都是大篇幅介紹,就俺看來這種方式在當前情況下極不適宜,原因有二。第一:多數有興趣的朋友在研究某種技術之初往往都是想先看看其大致的使用方法,而概念介紹多數都是枯燥的連篇文字,很少有人有毅力在毫不瞭解這項技術的情況下研讀進去,這就造成幾種後果,有些人跳過初始幾章直接從實際應用開始,等了解之後再翻回來看前面的介紹,有些人耐著性子看完前面卻發現更加一頭霧水,選擇重看一遍或者不管接著往後看,而有些人則更是直接就放棄了。第二:目前技術發展日新月異,從業人員水平參差不齊,有些工作在分配給技術人員時,該技術甚至對此項工作一無所知,如種情況下還讓他去看基礎概念恐怕費時費力,保不齊書還沒翻幾篇,飯碗已不保,畢竟多數老闆都是隻看結果,過程是不管地。有鑑於此,俺希望能夠在最開始的幾章少一些枯燥的概念,多一些實際的操作,先讓大家把手動來,把飯碗保住。同時,在經過一些操作之後,無論是對其瞭解或是興趣應該都大大增加,這個時候再轉回頭來看看一些基本的概念,理解起來能夠更加事半功倍吧。

  基礎畢竟是基礎,乃物之根本,重中之重,俺老大每每在俺向其討教時均向俺強調基礎的重要,俺也深以為然,對於一個真正想要精通oracle的dba而言,無論如何都需要做到深入理解,認真銘記的。經過一些練習之後,相信大家對rman已經有所瞭解,對其操作也有了一定興趣,我想這個時候來面對這些枯燥文字也應該稍稍能有些主觀意願吧,事不宜遲,請睡著的同學趕緊醒醒,進入補基礎時間。
注:以下文字多摘抄自網路,如有錯誤純屬正常;如有侵權,這個。。。。。。你看不見我看不見我看不見我。。。。。。。。。。。。。。。。。

一、RMAN通道
上次基礎知識講理裡簡單提到了通道,在那裡我把它形容為三環和五環,我感覺從便於理解的角度是可以這樣描述的,RMAN通道實質是一個到儲存裝置的資料流。如果你想城市交通流通的更快些,多建幾個環路對於緩解交通是有意義的。在RMAN中可以通過手動方式或自動方式分配通道。
1、手工分配通道
在執行BACKUP、RESTORE、DELETE等需要進行磁碟I/O操作的命令時,可以將它們與ALLOCATE CHANNEL命令放在一個RUN的命令塊中,利用ALLOCATE CHANNEL為它們分配通道。例如:
RUN{
ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT 'd:/backup/%U';
BACKUP DATAFILE 'F:ORAHOME1ORADATAJSSWEBJWEB.ORA';
}
需要注意的是,RMAN中執行的每一條BACKUP、DELETE等命令都至少要求使用一個通道,通道數決定了這些操作執行的並行度。

2、自動分配通道
如果沒有使用手工分配通道,那麼RMAN在執行BACKUP等操作I/O的命令時將會使用預定義配置(configure,記起來了吧)中的設定來自動分配通道。
下列預定義配置命令均可以分配通道:
CONFIGURE DEVICE TYPE ... PARALLELISM
CONFIGURE DEFAULT DEVICE TYPE
CONFIGURE CHANNEL DEVICE TYPE
CONFIGURE CHANNEL n DEVICE TYPE

二、RMAN備份型別
利用RMAN進行備份時,可以通過三種方式來對RMAN的備份做分類
完全備份(Full Backup)與增量備份(Incremental Backup)
全備與增備是針對資料檔案而言,控制檔案和歸檔日誌檔案不能進行增量備份。當然,後兩者可以做備份優化。

開啟備份(Open Backup)或關閉備份(Closed Backup)
資料庫開啟狀態下進行備份即是開啟備份,資料庫關閉狀態下(載入狀態)進行的備份即關閉備份。

一致備份(Consistent Backup)與不一致備份(Inconsistent Backup)
資料庫開啟狀態或不乾淨關閉狀態(shutdown abort)進行的備份是不一致備份,利用不一致的備份修復資料庫後還需要做資料庫的恢復。在資料庫乾淨關閉狀態進行的備份是一致備份,利用一致備份修復資料庫後不需要做資料庫的恢復。


三、增量備份的工作機制
  所謂增量備份,顧名思義即是每次備份僅操作那些發生了"變化"的資料塊。RMAN中增量備份有兩種:Differential方式和Cumulative方式。下面將分別胡扯,請看官自辨真偽。。。

1、差異備份Differential

說起Differential,相當有意思,大家可以這樣理解。有一家名為Differential的紅社會組織,他們民主自由善良博愛為人忠懇正直(以下省略5000個褒義形容詞),總之呢,黑黑,他們會按照你與其約定的週期來向你收取保護費,因為他們的組織非常嚴密,(以上圖為例吧)所有成員按照0,1,2分為不同等級,0級最高就是老大。貴為老大自然身份尊崇,手底下小弟多,開銷也大,所以如果0級老大親自登門收取的話,沒啥說的,甭管它什麼時候來,你的家底他都要重新清點一遍,從你成立開始到現在,總共應交多少保護費,一個子兒都不能少的都要交出來。每次來都是這樣。而1級成員就顯的溫和多了,它每次來,只要求你將上次0級收到之後到現在應交的稅款給交了就行了。甚至於如果上次也是個1級成員(與它平級)來收取的話,它也認同。當然,如果上次來收的是個2級成員,它是不承認的,好歹它也是個有身份的人,比它低階的成員打的收條它向來是不認同地。它至少要求將最後一個與它平級或級別比它要高的成員收取日期到現在應結的給它。1級成員帶了頭,2級成員也按這個來。

2、累積增量備份Cumulative

繼續白話,名為Cumulative的紅社會組織相比Differential差距就比較大,雖然它們也會按照與你約定的同期來收取,但是,這家組織顯然作風是屬於比較凶悍的。仍然以上圖為例,假設它們也按照0,1,2分為三個等級,0級老大身份尊崇,表現倒與Differential家的相同。但級別比它低的那些小弟表現與Differential家的就相差較多。對於那些級別高於它們的成員打的收條,他們還是會認可,但是其它人,甚至與它們平級的成員它們都不認。哪怕上次就是它來收取的,他也能翻臉不認帳。比如某個1級成員昨天來時就直接從上次0級收取的時間開始算的,而今天來的又是這個傢伙,可它對昨天的所為都拒不認帳,堅持還要從上次0級收取的時間開始算。

注意:這兩家非0級成員都有個毛病,假如它們來收費時發現自你成立起,自家的0級老大從來都沒來過,本著為老大盡心為老大盡責的高貴品格,他們都會替老大把你的家底翻個底朝天,來個大清算。

現在,大家對它們兩家都有所瞭解了吧。另外backup命令在不顯式指定的情況下,預設會選擇Differential地喲:)

四、備份集概述備份集由RMAN建立的具有特定格式的邏輯備份物件,一個備份集中可能包含多個資料庫檔案(包括資料檔案,控制檔案和歸檔日誌檔案)。RMAN中通過BACKUP命令建立備份集。
一個備份集是由多個備份片段組成,每個備份片段即是一個物理檔案。


五、RMAN恢復目錄(CATALOG)
  Oracle9i版本因為控制檔案的自動備份,可以很大程度不需要使用恢復目錄。當然,號稱使用目錄資料庫控制檔案的方式將會非常的不安全,因為一旦備份檔案丟失,不僅資料庫崩潰,rman備份資訊也將丟失(就個人使用而言,我覺著沒有這麼嚴重,9i中的控制檔案備份就已經多種多樣,而且恢復及重建方式也有許多,所以假如您在沒有使用恢復目錄的情況下丟失了控制檔案,千萬表以為就此玩完,準備摸腳走人。Google一下rman 控制檔案 恢復,您會發現無數個能夠挽救您飯碗的頁面存在),扯了一堆,但願沒有給像上個禮拜的俺一樣的初學者造成印象上的混淆,如果能用恢復目錄還是推薦使用恢復目錄,恢復目錄實際上也是一個資料庫,一般獨立於目標資料庫。因為它自己就是個資料庫,所以一個恢復目錄可以同時被多個目錄資料庫使用。網上搜了一些特點如下:
·有些命令只被恢復目錄支援(找著不少,大家自己gg吧,這裡就不一一介紹了,要不然俺這就不像在做筆記,倒像是在寫高階參考大全,o對了還有,控制檔案方式中無法直接儲存rman備份指令碼)
·能保留更多的歷史備份資訊
·一個恢復目錄能管理與備份多個目標資料庫
·如果沒有恢復目錄,而且發生了結構上的改變,時間點的恢復需要小心操作
·能儲存備份與恢復的指令碼
  可以看到,主要是可以保留更多的備份資訊與方便的管理多個目標資料庫,這個在眾多目標資料庫的情況下,絕對是強烈推薦的,能省很多事兒。
同樣,如果您選擇使用恢復目錄方式,千萬表忘了對恢復目錄資料庫做備份喲,當然這個庫您就不用再使用rman做備份了,呵呵:),exp是個好法子,簡單又方便,反正rman的恢復目錄資料庫也佔不了什麼空間。而且通過exp備份之後,一旦恢復目錄資料庫發生故障,也可能很輕易的通過imp進行恢復。

本章節有圖片,此處未能有效顯示,建議大家還是直接下載word版:http://www.itpub.net/showthread.php?s=&threadid=810100&perpage=10&pagenumber=5

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

相關文章