OS block size和Oracle block size,查找OS Blocksize的方法

看过类似的文章,多数是讲的文件系统的blocksize,不知道这是否和Oracle block size有啥关系,我试着发现,即使是文件系统blocksize,Oracle blocksize 也可以比这个filesystem block size 小的。

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> create tablespace test datafile '/install/test_tbs1.ora' size 2m blocksize 2k;

Tablespace created.
[root@rhel4a ~]# tune2fs -l /dev/sdc1|grep -i block
Block count:              1048233
Reserved block count:    52411
Free blocks:              828704
First block:              0
Block size:              4096
Reserved GDT blocks:      255
Blocks per group:        32768
Inode blocks per group:  512
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
Journal backup:          inode blocks

[root@rhel4a ~]# mount -l
/dev/sda2 on / type ext3 (rw) [/]
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw) [/boot]
none on /dev/shm type tmpfs (rw)
/dev/sdb1 on /oracle10g type ext3 (rw) []
/dev/sdc1 on /install type ext3 (rw) []
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
configfs on /config type configfs (rw)
ocfs2_dlmfs on /dlm type ocfs2_dlmfs (rw)
/dev/sdd1 on /oracle10g/oradata/orcl type ocfs2 (rw,_netdev,datavolume,heartbeat=local) [oradatafiles]
oracleasmfs on /dev/oracleasm type oracleasmfs (rw)

[root@rhel4a ~]# stat -f /install
  File: "/install"
    ID: 0        Namelen: 255    Type: ext2/ext3
Blocks: Total: 1031769    Free: 828190    Available: 775779    Size: 4096
Inodes: Total: 524288    Free: 521290   

[root@rhel4a ~]# dumpe2fs /dev/sdc1|grep 'Block size'
dumpe2fs 1.35 (28-Feb-2004)
Block size:              4096

从这里是不是可以说oracle block size 和 filesystem blocksize没什么直接的关系呢?

Linux: file Block size is selected at the time of high-level formatting。

==========================================================

The log block size is platform. specific, and can be found out using the following query: (size in bytes)

select max(lebsz) from x$kccle

most platforms have log block size of 512, but HPUX has 1k, and tru64 has blocksize of 2k if my memory serves me well.

===========================================================

Oracle给出的查找OS Block size的方法:

To find the OS Block size in windows.
Kindly run the below sql statement

select lebsz from x$kccle;
which gives the OS Block size.

In Unix:
Goto the directory $ORACLE_HOME/bin/ and run the command dbfsize. (is available on UNIX only)
Example: $ORACLE_HOME/bin/dbfsize

You can find your log block size in bytes with the following query (connected as SYS or internal):
select distinct lebsz from x$kccle;

This is the unit in which you should set the log_checkpoint_interval parameter (otherwise known as the operating system block size). Some sample sizes are:

O/S Log Block Size
======= ==============
Solaris 512 bytes
HP-UX 1024 bytes
NT 512 bytes
OpenVMS 512 bytes
Digital UNIX 1024 bytes
To get it from the operating system, try grep DEV_BSIZE /usr/include/sys/param.h

相关推荐