分类: 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 。"你要把鸡蛋都放到一个篮子里么? "
chinaunix网友2011-03-05 18:13:51
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com
chinaunix网友2011-03-05 18:13:20
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com