欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-05-13 23:01:59
...

看过类似的文章,多数是讲的文件系统的blocksize,不知道这是否和oracle block size有啥关系,我试着发现,即使是文件系统blocks

看过类似的文章,多数是讲的文件系统的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