分类: oracle
2011-02-25 15:14:15
oracle 10g 的存储能力有了显著的增强。这表现在很多方面,下面介绍 10g 新增的表空间类型:大文件 (bigfile) 表空间。
大文件表空间从某种角度来说提高了 oracle 在 , 内核的版本是2.6.9,文件系统是 ext3 。2.4以后的版本的内核都是支持 lfs (large file support)的。
文件系统(块) 文件大小限制 文件系统大小限制 ext2/3 (2k) 256g 8t ext2/3 (4k) 2t 16t ext2/3 (8k) 64t 32t reiserfs 3.6 1e 16t
我们检查一下os文件系统块大小:
[root@fc3 ~]# tune2fs -l /dev/hda7 | grep block
block count: 2621440
block size: 4096
blocks per group: 32768
[root@fc3 ~]#
也即,我们可以在操作系统上创建不大于 2t 的文件。虽然我们没有那么大的存储空间,不妨也测试一下:
sql> create bigfile tablespace bftbs02
2 datafile '/u01/app/oracle/oradata/demo/bftbs02.dbf' size 1800g;
在另外一个终端中,观察该目录的变化情况:
[root@fc3 demo]# ls -ltr
total 1159048
-rw------- 1 oracle oracle 5251072 nov 28 20:05 bftbs01.dbf
-rw------- 1 oracle oracle 1932735291392 nov 28 20:49 bftbs02.dbf
[root@fc3 demo]#
哇,我们真的能观察到oracle在创建“超大”文件呢,接近1.8t 的文件 :-) 要过一会儿,oracle 才会报告错误(毕竟1800g 的大文件):
create bigfile tablespace bftbs02
*
error at line 1:
ora-19502: write error on file "/u01/app/oracle/oradata/demo/bftbs02.dbf",
blockno 898048 (blocksize=8192)
ora-27072: file i/o error
additional information: 898047
可见,在本例中,由于操作系统文件系统的限制,我们只可以创建2t以下的 bft。
应用 bft 的话,优点缺点都存在。根据 oracle 官方的文档,db_files 和 maxdatafiles 这两个参数的值给 sga 带来的压力会减轻(原来的压力就很大么?)。数据库中最大数据文件数是有限的 (64k files),bft 的出现的确对海量数据库有一定的积极意义。从一定程度上来说,bft 简化了管理多个数据文件的复杂性,但是在恢复的时候可能是一场灾难。
在笔者看来,至少我们现在在大多数情况下不需要用 bft 。"你要把鸡蛋都放到一个篮子里么? "