ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 10G新特性:BIGFILE TABLESPACE

10G新特性:BIGFILE TABLESPACE

原创 Linux操作系统 作者:kewin 时间:2011-09-14 15:44:31 0 删除 编辑
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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-03-10

  • 博文量
    125
  • 访问量
    578355