RMAN筆記——綜合概述
RMAN 綜合概述
1. RMAN 的核心是命令解釋程式,接受使用者輸入的命令,並將這些命令轉化為遠端資料庫上執行的遠端過程呼叫(remote procedure call ,RPC )。
2. RMAN 只做少量工作,是Database Utilities (一組命令列形式的程式)的一部分。
3. RMAN 實用程式分為兩部分:可執行檔案、recover.bsq 檔案,recover.bsq 實際上是庫檔案,可執行檔案從recover.bsq 檔案中吸取程式碼,來建立在目標資料庫中執行的PL/SQL 呼叫,recover.bsq 是整個操作的中樞,這兩個檔案在邏輯上構成了RMAN 的客戶端,他們的版本必須相同,否則不能正常工作。
4. RMAN 需要訪問目標資料庫中sys 模式的各種資料包,所以要以sysdba 登入。
5. RMAN 在整個備份期間都要使用到控制檔案,為了整個備份時間間隔內的控制檔案的一致性,Oracle 實用快照控制檔案來解決這個問題,快照控制檔案(snapshot controlfile )預設儲存在dbs 或database 目錄中,snapcf+SID.f 檔案。快照檔案在同一時間只能被一個程式鎖定,如果在兩個RMAN 工作中,就有可能出現RMAN-08512 :waiting for snapshot controlfile enqueue 錯誤,使用如下指令碼可以查詢:
6. Select s.sid,username,program,module,action,logon_time,l.* from v$session s,v$enqueue_lock l where l.sid=s.sid and l.type= ’CF’ and l.id1=0 and l.id2=2;
7. I/O 從屬,此時記憶體緩衝區在SGA 中,當dbwr_io_slaves 被設定為非0 值(1~32 )時,RMAN 為每個通道啟用4 個從屬程式來輔助磁碟IO 。當backup_tape_io_slaves=true 時,RMAN 也會為磁碟讀寫分配從屬程式。
8. RMAN 主要訪問兩個sys 包:dbms_rcvman 和dbms_backup_restore, 這兩個包包含了RMAN 的所有功能,這兩個包在catproc.sql 指令碼中建立。
9. Dbms_rcvman 包用來收集控制檔案中的資訊,並返回給RMAN 。然後RMAN 在通道間執行基於負載均衡的演算法來分配工作,然後建立一系列的dbms_backup_restore 資料包的呼叫。每完成一個備份集,dbms_backup_restore 就會在控制檔案中儲存相關的備份資訊,包括備份名,大小,開始時間,備份時間等。
10. 資料塊備份的過程:RMAN 在PGA (有時在SGA ,如果使用了I/O 從屬程式)中建立一系列的緩衝區,讀取資料檔案時,填充這些緩衝區,緩衝區被填滿時,資料傳到輸出緩衝區,如果符合備份標準且無錯誤,就會保留在輸出緩衝區,一旦輸出緩衝區被填滿,則寫入到備份檔案。當所有的檔案都經過了這種過濾的時候,就完成了資料塊的備份。
11. 關於空值壓縮的誤解:
1) 要刪除空資料塊:RMAN 只有從檔案頭和資料塊頭資訊中推斷資料塊的內容,而不需要空間管理資訊,因為空間管理資訊在開啟資料庫時有效,而RMAN 不依賴資料庫的開啟與否。因此,如果截斷一張表,那麼所有儲存過資訊的空資料塊都會備份,因為Oracle 只知道這個塊被初始化過了,而不知道是否為空。
2) 備份期間的增量備份可以節約時間:RMAN 任然需要將每個資料塊讀入記憶體,如果裝置(磁碟或磁帶)很快,那麼刪除記憶體中資料的速度不見得會節約多少時間。
12. 10g 中,RMAN 使用空白壓縮,提供了備份塊自身的壓縮,另外,塊更改跟蹤檔案可以在備份期間跳過一些塊,不將他們讀入記憶體,從而節約備份時間。
13. 輸入記憶體緩衝區:備份集內檔案數目n,
l 0
l 4
l n>8 ,每個檔案分配4 個128K 緩衝區。
14. 可以從v$backup_async_io 檢視中看出每個檔案的緩衝區大小:
Select set_count,device_type,type,filename,buffer_size,buffer_count,open_time,close_time from v$backup_async_io;
15. 輸出記憶體緩衝區:
u 當輸出裝置為磁碟時,每個通道分配4 個1M 的輸出緩衝區,總大小4M ;
u 當輸出裝置為磁帶時,每個通道分配4 個256K 的緩衝區,總大小為1M 。
16. 還原操作中,輸出緩衝區為128K ,每個通道4 個。當裝置為磁碟時,輸入緩衝區為每個通道4 個1M 的,裝置為磁帶時,輸入緩衝區為4 個大小為blksize (通常為256K )。
17. RMAN 以50M 為增量分配磁碟空間,在第一個50M 填滿以後,才開始分配第二個50M ,直到最後一個資料塊備份完,然後釋放最後一個備份塊中的剩餘空間。RMAN 在分配時不會檢查是否有剩餘空間可用,因為空值壓縮和空白壓縮都能減小所需要的空間,這是不可預測的大小,RMAN 在磁碟可用空間用完時會失敗。
18. 可以從v$session_longops 檢視中檢視RMAN 備份的最新程式:
Select sid,serial#,context,sofar,totalwork,round(sofar/totalwork*100,2) %_complete from v$session_longops where opname like ‘RMAN% ’ and opname not like ‘%aggregate% ’ and totalwork!=0 and sofar!=totalwork;
19. 如果想要進一步瞭解備份期間的RMAN 內部工作流程,可以開啟RMAN 的除錯選項(輸出專案非常詳細,可能會影響到備份的效能):
rman target / debug trace=/xxx/rman.out
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24465008/viewspace-688018/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN筆記筆記
- 【pandas學習筆記】綜合整理筆記
- rman備份筆記筆記
- Docker筆記1-概述Docker筆記
- 計網筆記(1)——概述筆記
- rman 建 Standby Database 筆記Database筆記
- 續rman學習筆記筆記
- Boltdb學習筆記之〇--概述筆記
- 資料結構筆記——概述資料結構筆記
- Isaac Lab 學習筆記:概述筆記
- 【JAVA】筆記(12)---集合(1)-概述篇Java筆記
- mongoDB研究筆記:複製集概述MongoDB筆記
- bootstrap學習筆記 外掛概述boot筆記
- RMAN筆記之查詢rman備份資訊狀態筆記
- RMAN學習筆記_ Duplicate建立DataGuard筆記
- RMAN學習筆記_ Duplicate重做DataGuard筆記
- Python機器學習筆記:SVM(1)——SVM概述Python機器學習筆記
- TensorFlow筆記-01-開篇概述筆記
- Web開發學習筆記——HTTP 概述Web筆記HTTP
- angular學習筆記(三十)-指令(1)-概述Angular筆記
- rman之建立恢復目錄筆記筆記
- Spring AOP學習筆記01:AOP概述Spring筆記
- Python 筆記-2-1-Python 概述Python筆記
- Hadoop學習筆記——————1、Hadoop概述Hadoop筆記
- Linux筆記01:概述以及環境搭建Linux筆記
- http協議讀書筆記1-概述HTTP協議筆記
- [概述]部落格隨筆/文章/日記食用指北
- CMake構建學習筆記1-概述筆記
- PMBOK筆記-第四章 專案綜合管理筆記
- RMAN 概述及其體系結構
- RMAN概述及其體系結構
- 大資料筆記01--大資料概述大資料筆記
- MQTT工作筆記0001---MQTT協議概述MQQT筆記協議
- Open CV 學習開發筆記之概述(一)筆記
- JavaScript中的物件學習筆記(概述和建立)JavaScript物件筆記
- 【軟體測試】(三)黑盒測試綜合策略概述
- SSM框架學習筆記_第1章_SpringIOC概述SSM框架筆記Spring
- Linux核心學習筆記(5)– 程式排程概述Linux筆記