RMAN的IO記憶體緩衝區

cow977發表於2011-06-23
在Matthew Hart和Robert G. Freeman合著,江玲玲譯的《Oracle Database 10g RMAN備份與恢復》(清華大學出版社出版)中,有如下一段講述RMAN的IO記憶體緩衝區:

備份資料庫時,輸入記憶體緩衝區的大小和數目取決於實際執行的備份命令,事實上主要取決於在一個備份中多路複用的檔案數。多路複用指的是在同一個備份片中備份其資料塊的檔案數。為了保持合理的記憶體分配,根據一起備份的檔案數,分配記憶體緩衝區大小時需要應用下面的規則:

如果備份集內的檔案數小於或等於4個,RMAN會為每個檔案分配4個大小為1MB的緩衝區,緩衝區總和小於或等於16MB

如果備份集內的檔案數多於4個但少於或等於8個,RMAN會為每個檔案分配4個大小為512KB的緩衝區,緩衝區總和確保少於或等於16MB

如果備份集內的檔案數多於8個,RMAN會為每個檔案分配4個大小為128KB的緩衝區,確保每個要備份的檔案佔用512KB的緩衝區記憶體。

 

如果備份到磁碟,RMAN會為每個透過道分配41MB的輸出緩衝區;

如果備份到磁帶,RMAN會為每個透過道分配4256KB的輸出緩衝區。

 
 
但在實際系統中,發現並非完全如此。
 

SQL> select * from v$version;

 

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod

PL/SQL Release 10.2.0.4.0 - Production

CORE    10.2.0.4.0      Production

TNS for Linux: Version 10.2.0.4.0 - Production

NLSRTL Version 10.2.0.4.0 – Production

 

SQL> select set_count, device_type, type,filename, buffer_size, buffer_count from v$backup_async_io order by set_count,type;

 

 SET_COUNT DEVICE_TYPE       TYPE      FILENAME          BUFFER_SIZE BUFFER_COUNT

---------- ----------------- --------- ----------------- ----------- ------------

 1      20 DISK              AGGREGATE                             0            0

 2      20 DISK              INPUT     …/fda_idx_02.dbf     1048576            4

 3      20 DISK              INPUT     …/fda_idx_01.dbf     1048576            4

 4      20 DISK              INPUT     …/sysaux01.dbf       1048576            4

 5      20 DISK              INPUT     …/undotbs01.dbf      1048576            4

 6      20 DISK              OUTPUT    …/s20_1.dbf          1048576            4

 7      21 DISK              AGGREGATE                             0            0

 8      21 DISK              INPUT     …/oratext01.dbf       524288            6

 9      21 DISK              INPUT     …/system01.dbf        524288            6

10      21 DISK              INPUT     …/users_01.dbf        524288            6

11      21 DISK              INPUT     …/fda_data_02.dbf     524288            6

12      21 DISK              INPUT     …/fda_data_01.dbf     524288            6

13      21 DISK              OUTPUT    …/s21_1.dbf          1048576            4

14      22 DISK              AGGREGATE                             0            0

15      22 DISK              INPUT     …/snapcf_orcl.f      1048576           16

16      22 DISK              OUTPUT    …/s22_1.dbf          1048576            4

17      23 DISK              AGGREGATE                             0            0

18      23 DISK              INPUT     …/snapcf_orcl.f      1048576           16

19      23 DISK              OUTPUT    …/o1_mf_s_%u_.bkp    1048576            4

 

實際測試情況是:

如果備份集內的檔案數是1個,RMAN會分配大小為1MB的緩衝區,每個檔案會佔用16個緩衝區;

如果備份集內的檔案數是4個,RMAN會分配大小為1MB的緩衝區,每個檔案會佔用4緩衝區;

如果備份集內的檔案數是5個,RMAN會分配大小為512KB的緩衝區,每個檔案會佔用6緩衝區;

如果備份集內的檔案數是9個,RMAN會分配大小為512KB的緩衝區,每個檔案會佔用4個緩衝區。

 
 

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

相關文章