日志的块大小

发布时间:2020-08-09 18:45:23 作者:不一样的天空w
来源:ITPUB博客 阅读:191

初始化参数LOG_BUFFER决定了Redo Log Buffer的大小,虽然LOG_BUFFER中的Redo Entries的大小是以bytes为单位但是LGWR仍然以Block为单位把Redo写入磁盘Redo Block Size是Oracle源代码中固定的,与操作系统相关

通常的操作系统都是以512bytes为单位,如Solaris、AIX、Windows NT/2000、Linux等。这个Log Size可以从Oracle的内部视图中获得:

sys@TQGZS> select max(lebsz) from x$kccle;
MAX(LEBSZ)
----------
       512

也可以从v$sysstat中的统计信息中通过计算粗略得到,如Redo Size(Redo信息的大小)、Redo Wastage(浪费的Redo的大小)、Redo Blocks Written(LGWR写出的Redo Block的数量)等额外的信息,每个Redo Block Header需要占用16 Bytes,由此可以粗略地计算Redo Block Size如下:

sys@TQGZS> select name,value from v$sysstat                                
  2  where name in ('redo size','redo wastage','redo blocks written');
NAME                                            VALUE
---------------------------------------- ------------
redo size                                    13253016
redo wastage                                   225776
redo blocks written                             27416
sys@TQGZS> select ceil(16+(13253016+225776)/27416) rbsize from dual;
    RBSIZE
----------
       508

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

[oracle@tqgzs: ~/oradata/tqgzs]$dbfsize redo01.log
Database file: redo01.log
Database file type: file system
Database file size: 102400 512 byte blocks
[oracle@tqgzs: ~/oradata/tqgzs]$dbfsize system01.dbf
Database file: system01.dbf
Database file type: file system
Database file size: 89600 8192 byte blocks
[oracle@tqgzs: ~/oradata/tqgzs]$which dbfsize
~/product/10.2.0/db_1/bin/dbfsize

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

alter session set events 'immediate trace name redohdr level 10';

查看跟踪文件可以得到类似如下信息,输出中的bsz就是指Redo Block Size为512Bytes:

LOG FILE #1:   
  (name #3) /u01/oracle/oradata/tqgzs/redo01.log
Thread 1 redo log links: forward: 2 backward: 0
siz: 0x19000 seq: 0x00000077 hws: 0x4 bsz: 512 nab: 0x2 flg: 0x1 dup: 1
Archive links: fwrd: 0 back: 0 Prev scn: 0x0000.005f5e8e
Low scn: 0x0000.005f5e90 12/13/2009 23:33:58
Next scn: 0x0000.005f5e92 12/13/2009 23:34:03

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

ORA-19502: write error on file "/data1/oraarc/PTL017151.arc", blockno 169985 (blocksize=512)
  ORA-27072: skgfdisp: I/O error

推荐阅读:
  1. Docker如何限制日志文件的大小和数量
  2. 数据文件OS块的大小

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

大小 日志

上一篇:学完Python好找工作吗?为什么有人学完找不到工作?

下一篇:微信分享域名被屏蔽拦截导致无法打开或显示已停止访问的原因及规避方案

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》