日志的块大小

  

初始化参数LOG_BUFFER决定了重做日志缓冲区的大小,<强>虽然LOG_BUFFER中的重做条目的大小是以字节为单位,<强>但是LGWR仍然以块为单位把重做写入磁盘,<强>重做块大小是甲骨文源代码中固定的,与操作系统相关强。   

通常的操作系统都是以<强> 512字节为单位,如Solaris, AIX, Windows NT/2000, Linux等。这个日志大小可以从Oracle的内部视图中获得:

  
  

sys@TQGZS>选择马克斯(lebsz)从x kccle美元;马克斯(lebsz)

- - - - - - - - - - -
,,,,,,512年

  

也可以从<强> v sysstat 中美元的统计信息中通过计算粗略得到,如<强>重做大小(重做信息的大小),重做浪费(浪费的重做的大小),重做块写(LGWR写出的重做块的数量)等额外的信息,每个重做块头需要占用16字节,由此可以粗略地计算重做块大小如下:

  
  

sys@TQGZS>选择名称,值v $ sysstat ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,2,名字(“重做规模”,“重做浪费”,“重做块写”);
NAME ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,值
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
重做size ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13253016
重做wastage ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,225776
重做块written ,,,,,,,,,,,,,,,,,,,,,,,,,,,27416
sys@TQGZS>选择装天花板(16 +(13253016 + 225776)/27416)从双重rbsize;
,,,RBSIZE
- - - - - - - - - - -
,,,,,,508年

  

在Linux/UNIX下,甲骨文还提供另外一个命令行工具可以用于检查文件的块大小大小:

  
  

[oracle@tqgzs ~/oradata/tqgzs): $ dbfsize redo01。日志
数据库文件:redo01。文件系统日志
数据库文件类型:
数据库文件大小:102400 512字节块
[oracle@tqgzs ~/oradata/tqgzs): $ dbfsize system01。dbf
数据库文件:system01。dbf
数据库文件类型:文件系统
数据库文件大小:89600 8192字节块
[oracle@tqgzs ~/oradata/tqgzs): $这dbfsize
~/产品/10.2.0/db_1/bin/dbfsize

  

从以上的输出中可以看的到,<强>日志文件的块大小是512字节强,而<强>数据文件的块大小为8192字节强。当然,也可以通过转储日志文件的方式来获取日志文件块大小,转储日志文件头可以通过如下命名实现:

  
  

改变会话设置事件的即时跟踪名称redohdr级别10;

  

查看跟踪文件可以得到类似如下信息,输出中的<强> bsz 强就是指重做块大小为512字节:

  
  

日志文件# 1:,,,
,(名字# 3)/u01/oracle/oradata/tqgzs/redo01。日志
线程1重做日志链接:转发:2落后:0
siz: 0 x19000 seq: 0 x00000077探测:0 x4 <强> bsz: 512 nab: flg: 0 x2 0 x1 dup: 1
归档链接:fwrd: 0: 0 Prev scn: 0 x0000.005f5e8e
低视交叉上核:0 x0000.005f5e90 12/13/2009 23:33:58
下一个scn: 0 x0000.005f5e92 12/13/2009 23:34:03

  

有时候当数据库出现归档错误时,也会给出提示信息,告知<强> blocksize=512

  
  

ora - 19502:把错误写在文件“/data1/oraarc/PTL017151。弧”,blockno 169985(<强> blocksize=512 )
ora - 27072: skgfdisp: I/O错误

日志的块大小