10G新特性:BIGFILE TABLESPACE
Kevin Zou
2011-9-14
ORACLE 10G 引入了BIGFILE TABLESPACE。由单一大的文件组成的TABLESPACE,可不是由众多小的数据文件。由BIGFILE TABLESPACE 组成的DATABASE,大小可以到8个E (1 EB = 1000000000000000000B = 1018 bytes = 1 billion gigabytes = 1 million terabytes)
8个E的数据库在目前来说,已经是足够大了。
BIGFILE TABLESPACE对普通用户来说,仅仅是空间而已,是透明的,用户只是关心空间够不够,可不管空间来自小的数据文件还是大文件。
系统缺省的行为是创建小文件的表空间,SYSTEM和SYAAUX 一般都是系统缺省的小文件表空间;
可以在创建数据库时指定,系统的缺省表空间是小文件还是大文件:
CREATE DATABASE mynewdb
USER SYS IDENTIFIED BY sys_password
USER SYSTEM IDENTIFIED BY system_password
SET DEFAULT BIGFILE TABLESPACE
UNDO TABLESPACE undotbs
DEFAULT TEMPORARY TABLESPACE tempts1;
当然了,这种缺省行为可以在创建数据库后,动态修改:
SQL> ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;
Database altered.
Elapsed: 00:00:00.05
SQL> ALTER DATABASE SET DEFAULT smallfile TABLESPACE;
Database altered.
Elapsed: 00:00:00.00
查看系统当前的缺省表空间类型:
SQL> SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES
2 WHERE PROPERTY_NAME = 'DEFAULT_TBS_TYPE';
PROPERTY_VALUE
---------------------------------------------------------------------
SMALLFILE
小文件的表空间可以容纳1022 个文件,每个文件可以容纳4M个BLOCK。我们可以估算每个DATAFILE的最大的尺寸:
Block Size Maximum Datafile File Size
----------- ---------------------------
2k 4194303 * 2k = 8 GB
4k 4194303 * 4k = 16 GB
8k 4194303 * 8k = 32 GB
16k 4194303 * 16k = 64 GB
32k 4194303 * 32k = 128 GB
而大文件的表空间尺寸:
Block Size Maximum Datafile File Size
----------- ---------------------------
2k 4294967295 * 2k = 8 TB
4k 4294967295 * 4k = 16 TB
8k 4294967295 * 8k = 32 TB
16k 4294967295 * 16k = 64 TB
32k 4294967295 * 32k = 128 TB
大文件的表空间只支持自动段空间管理的本地管理表空间,但对于本地管理的回滚和临时表空间也是支持的。
创建一个大文件组成的临时表空间:
SQL> create bigfile temporary tablespace temp1 tempfile 'D:\ORACLE\ORADATA\TES
T\temp02.dbf' size 10m;
表空间已创建。
SQL> select tablespace_name, EXTENT_MANAGEMENT, SEGMENT_SPACE_MANAGEMENT,bigfil
e from dba_tablespaces where tablespace_name='TEMP1';
TABLESPACE_NAME EXTENT_MAN SEGMEN BIG
------------------------------ ---------- ------ ---
TEMP1 LOCAL MANUAL YES
一个数据库可以是两者的混合体,就是可以容纳基于小文件的表空间,也可以容纳基于大文件的空间;
SQL> select bigfile, count(*) from dba_tablespaces group by bigfile;
BIG COUNT(*)
--- ----------
NO 6
YES 1
大文件表空间的优缺点:
1) 减少了数据文件的数量,提高了管理效率;
2) 打开数据库,检查点,DBMR的效率会比数据存储在小文件表空间要高;但是在创建大文件或者在做损坏BLOCK恢复时要花更多的时间;
适合BIGFILE的场景和一些限制:
1)要用ASM做存储管理的;因为大文件的表空间只能有一个数据文件,如果表空间不够,那只能扩展数据文件;数据文件能扩展到多大,受到操作系统和存储空间的限制;如操作系统是不支持大尺寸文件的,那不建议使用BIGFILE。如32位的WINDOWS,不支持超过4G的文件,那BIGFILE就英雄无用武之地。
2) 避免在不支持条带化的系统上创建BIGFIEL。因为会在并行处理和并行RMAN备份时会影响性能;
-THE END-
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/40239/viewspace-707416/,如需转载,请注明出处,否则将追究法律责任。