RMAN 對記憶體的使用
研讀了下RMAN對記憶體的使用,有很多精細的地方。
1.RMAN如何使用記憶體
對於每一個server process(一般就是 channel):
- 為每個磁碟檔案分配4個input buffer
- 為每個backup piece分配4個output buffer
所以減小同時開啟的檔案數可以減小對記憶體的使用。 設定 MAXOPENFILES =
在
對檔案的操作過程中,每個buffer會專屬於這個檔案,而且會被迴圈使用。 在input buffer中可能會包含不需要被備份的block。
然後需要備份的block會從input buffer複製到output buffer中,在這個過程裡會進行block的有效性檢查。
2. buffer大小
每個input buffer的大小為
db_block_size * db_file_direct_io_count (9i以後為隱含引數_DB_FILE_DIRECT_IO_COUNT,預設是1M,也許會根據OS的max_io_size調整)
所以完整的input buffer 大小為
buffer個數(4) * 開啟檔案數 * 單個buffer大小
關於output buffer:
磁碟:同上,只不過“開啟檔案數”變成“backup piece個數”
磁帶:9i/10G, buffer size預設256K
3. 記憶體的出處
一 般來說,Channel的server process是從PGA裡分配記憶體。但如果使用了IO Slave, 則會從SGA裡分配,也就是large pool,因為這部分記憶體需要共享。如果Slave從SGA中得不到足夠的記憶體,則會報4031,slave被停掉,但server process會繼續從PGA中申請buffer,繼續操作。
4. 關於 IO Slaves
實際就是啟動一些子程式,把 讀 和 寫 操作分開進行,提高效率。
DBWR_IO_SLAVES > 0
每個channel都會被分配這麼多slave。BACKUP_TAPE_IO_SLAVES = true
啟動一個tape slave詳見 Note 73354.1 - RMAN: I/O Slaves and Memory Usage
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/225056/viewspace-1022333/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript對記憶體的使用JavaScript記憶體
- 17、python對記憶體的使用Python記憶體
- RMAN的IO記憶體緩衝區記憶體
- Linux 記憶體管理:記憶體對映Linux記憶體
- 記憶體對映記憶體
- 記憶體對齊記憶體
- Python mmap的使用-檔案記憶體對映Python記憶體
- aix的記憶體使用AI記憶體
- 遊戲記憶體對比普通記憶體區別 遊戲記憶體和普通記憶體相差大嗎?遊戲記憶體
- GO 記憶體對齊Go記憶體
- 理解記憶體對齊記憶體
- mmap記憶體對映記憶體
- db_files對於oracle使用記憶體的影響Oracle記憶體
- 結構體記憶體對齊結構體記憶體
- MySQL記憶體使用MySql記憶體
- C++ 記憶體對齊C++記憶體
- 記憶體位元組對齊記憶體
- 關於記憶體對齊記憶體
- nginx中共享記憶體的使用Nginx記憶體
- Oracle的記憶體分配和使用Oracle記憶體
- 記憶體故障對電腦的影響記憶體
- 程式設計師對記憶體的理解程式設計師記憶體
- Linux記憶體使用的體會(轉)Linux記憶體
- ABAP Memory Inspector 裡對動態記憶體物件的記憶體消耗度量方式記憶體物件
- Java使用記憶體對映實現大檔案的上傳Java記憶體
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- iOS 記憶體位元組對齊iOS記憶體
- c語言記憶體對齊C語言記憶體
- MongoDB 如何使用記憶體?為什麼記憶體滿了?MongoDB記憶體
- MongoDB如何使用記憶體?為什麼記憶體滿了?MongoDB記憶體
- RMAN備份時候記憶體區域的使用及split block處理問題記憶體BloC
- 如何檢視linux系統中空閒記憶體/實體記憶體使用/剩餘記憶體Linux記憶體
- 記憶體管理篇——實體記憶體的管理記憶體
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- JS中的棧記憶體、堆記憶體JS記憶體
- iOS中的圖片使用方式、記憶體對比和最佳實踐iOS記憶體
- vue使用中的記憶體洩漏Vue記憶體
- Oracle PGA記憶體的配置和使用Oracle記憶體