6.3 大文件表空间的管理
大文件(BigFile)表空间是一种特殊类型的表空间,在每个大文件表空间中只包含一个数据文件,但这个数据文件的大小可以达到4GB个数据块。
使用大文件表空间的最大好处是可以大大扩展数据库的容量。假设数据块的大小为8KB,那么一个数据文件的大小就可以达到8KB(4GB=32TB。另外,使用大文件表空间可以大大减少数据文件的数目,因为一个表空间只有一个数据文件。Oracle推出大文件表空间的主要目的是支持自动存储管理(ASM)和RAID、条带状逻辑卷,这些技术结合起来,为数据库提供大容量的、对用户透明的存储空间。
需要注意的是,大文件表空间的区管理方式只能是本地管理,段管理方式只能是自动管理。UNDO表空间、临时表空间和SYSTEM表空间属于例外情况,如果把它们指定为大文件表空间,它们的区管理方式只能是本地管理,但是段管理方式可以是自动管理或手工管理。
6.3.1 大文件表空间的支持
在默认情况下,数据库中表空间的类型为小文件(SmallFile)表空间,如果要创建大文件表空间,则需要通过关键字BIGFILE指定。在创建数据库时,可以将默认的表空间类型指定为大文件表空间,这样以后在数据库中创建的表空间默认都属于大文件表空间。
在创建数据库的CREATE DATABASE命令中,如果使用了SET DEFAULT BIGFILE TABLESPACE子句,那么表空间的默认类型将为大文件表空间。如果使用了SET DEFAULTSMALLFILE TABLESPACE子句,或者这两条子句都没有使用,那么表空间的默认类型将为小文件表空间。例如,以下语句在创建数据库时指定表空间的默认类型为大文件表空间:
SQL>CREATE DATABASE test
SET DEFAULT BIGFILE TABLESPACE
……
在数据库的运行过程中,数据库管理员也可以动态修改表空间的默认类型,修改以后的表空间类型对以后创建的所有表空间起作用。例如:
SQL>ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;
SQL>ALTER DATABASE SET DEFAULT SMALLFILE TABLESPACE;
从数据字典视图database_properties中可以获得数据库的属性,包括默认的表空间类型。例如:
SQL>SELECT property_value FROM database_properties
WHERE property_name='DEFAULT_TBS_TYPE';
大文件表空间的删除方法与普通表空间相同,这里不再介绍。