ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RMAN的IO内存缓冲区

RMAN的IO内存缓冲区

原创 Linux操作系统 作者:cow977 时间:2011-06-23 10:46:36 0 删除 编辑
在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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-03-02

  • 博文量
    699
  • 访问量
    754620