oracle 中的大文件表空间是具有单个但非常大(最多 4g 块)数据文件的表空间。相比之下,传统的小文件表空间可以包含多个数据文件,但文件不能那么大。大文件表空间的好处如下:
- oracle 中具有 8k 块的大文件表空间可以包含 32 TB 的数据文件。具有 32k 块的大文件表空间可以包含 128 TB 的数据文件。oracle 数据库中的最大数据文件数是有限的(通常为 64k 文件)。因此,oracle 中的大文件表空间可以显着提高 oracle 数据库的存储容量。
- oracle 中的大文件表空间可以减少数据库所需的数据文件数量。另一个好处是可以调整创建数据库和创建控制文件语句的 db_files 初始化参数和 maxdatafiles 参数,以减少数据文件信息所需的 sga 空间量和控制文件的大小。
- 大文件表空间通过提供数据文件透明性来简化数据库管理。alter tablespace 语句的 SQL 语法允许您对表空间执行操作,而不是对底层的单个数据文件执行操作。
只有具有自动段空间管理的本地管理的表空间支持大文件表空间,但有三个例外:本地管理的撤消表空间、临时表空间和系统表空间。
笔记:
- Bigfile 表空间旨在与自动存储管理 (asm) 或其他支持条带化或 RAID 的逻辑卷管理器以及动态可扩展的逻辑卷一起使用。
- 避免在不支持条带化的系统上的 oracle 中创建大文件表空间,因为这会对并行查询执行和 rman 备份并行化产生负面影响。
- 不建议在不支持大文件大小的平台上使用 oracle 中的大文件表空间,这会限制表空间容量。有关支持的最大文件大小的信息,请参阅特定于操作系统的文档。
创建大文件表空间:
要创建大文件表空间,请指定 create tablespace 语句 (createbigfiletablespace ...) 的 bigfile 关键字。Oracle 数据库通过自动段空间管理自动创建本地管理的表空间。
您可以但不必在此语句中指定范围管理 local 和 segmentspacemanagementauto。
但是,如果您指定extentmanagementdictionary 或segmentspacemanagementmanual,数据库将返回错误。
该语句的其余语法与 create tablespace 语句相同,但您只能指定一个数据文件。例如:
Sql>create bigfile tablespace bigtbs Datafile ‘/u02/oracle/data/bigtbs01.dbf’ size 50g You can specify size in kilobytes (k), megabytes (m), gigabytes (g), or terabytes (t).
复制
如果在创建数据库时默认表空间类型设置为大文件,则无需在创建表空间语句中指定关键字大文件。默认情况下会创建一个大文件表空间。
如果在创建数据库时默认表空间类型设置为大文件,但您想创建传统(小文件)表空间,则指定 createsmallfiletablespace 语句以覆盖您正在创建的表空间的默认表空间类型。
更改大文件表空间:
当您使用大文件表空间时,alter tablespace 语句的两个子句支持数据文件透明性:
- Resize:resize 子句让您将大文件表空间中的单个数据文件的大小调整为绝对大小,而无需参考数据文件。例如:
- alter tablespace big tbs resize 80g;
- 自动扩展(在 add datafile 子句之外使用):
使用大文件表空间,您可以在添加数据文件子句之外使用自动扩展子句。例如:
Sql>alter tablespace bigtbs autoextend on next 20g;
复制
如果为大文件表空间指定添加数据文件子句,则会引发错误。
识别大文件表空间:
以下视图包含将表空间标识为大文件表空间的大文件列:
- 数据库表空间
- 用户表空间
- V$表空间
您还可以通过其单个数据文件的相对文件号来识别大文件表空间。这个数字在大多数平台上是 1024,但在 os/390 上是 4096。
原文标题:Bigfile Tablespace in Oracle
原文链接:https://mindmajix.com/oracle-dba/bigfile-tablespaces