ビッグファイル表領域(BFT:Bigfile Tablespace)

Bigfile Tablespaceの概要

  • データファイルは一つしかありません。データファイル追加操作は必要がなくなりました。
  • 最大サイズはOracle block sizeによって8TB~128TBになります。
  • BTF表領域は論理的にデータファイルと同等になります。
  • 同じDBにはBigfile Tablespaceと"Smallfile Tablespace"が共存できます。
  • 管理作業は容易になります。
  • BFTはローカル自動管理表領域しかサポートしません。
  • ロジカルボリュームマネージャー或いはASMでBFTを使います。

Bigfile Tablespaceの作成及び管理

EMを用いて作成:管理タグ→記憶域セクション・表領域→作成ボタン

CREATE BIGFILE TABLESPACE

CREATE BIGFILE TABLESPACE bigtbs DATAFILE '/u02/oracle/data/bigtbs01.dbf' SIZE 50G

※ SIZEは、キロバイト(KB)、メガバイト(MB)、ギガバイト(GB)またはテラバイト(TB)で指定できます。

CREATE DATABASE … SET DEFAULT BIGFILE TABLESPACEによるデータベース表領域デフォルトタイプの設定

データベース作成時にデフォルトの表領域タイプをBIGFILEに設定している場合は、CREATE TABLESPACE文にBIGFILEキーワードを指定する必要はありません。この場合、大型ファイル表領域はデフォルトで作成されます。
データベース作成時にデフォルトの表領域タイプをBIGFILEに設定しておきながら、従来の表領域(小型ファイル)を作成する場合は、CREATE SMALLFILE TABLESPACE文を指定すると、デフォルトの表領域タイプよりも作成する表領域が優先されます。

ALTER TABLESPACE:大型ファイル表領域使用時におけるデータ・ファイルの透過性をサポートします。

ALTER TABLESPACE bigtbs RESIZE 80G;

ALTER TABLESPACE bigtbs AUTOEXTEND ON NEXT 20G;

※ 大型ファイル表領域に対してADD DATAFILE句を指定すると、エラーが発生します。

BFTによるデータディクショナリー変更

DATABASE_PROPERTIES:データベース表領域デフォルトタイプ確認

SQL> select property_value from database_properties where property_name = 'DEFAULT_TBS_TYPE';

PROPERTY_VALUE
----------------------------------------------------------------------------------------------------
SMALLFILE

SQL>

DBA_TABLESPACESV$TABLESPACEBIGFILEカラムを追加

SQL> select tablespace_name,bigfile from dba_tablespaces;

TABLESPACE_NAME                                                                            BIGFILE
------------------------------------------------------------------------------------------ ---------
SYSTEM                                                                                     NO
UNDOTBS1                                                                                   NO
SYSAUX                                                                                     NO
TEMP                                                                                       NO
USERS                                                                                      NO

SQL> select name,bigfile from v$tablespace;

NAME                                                                                       BIGFILE
------------------------------------------------------------------------------------------ ---------
SYSTEM                                                                                     NO
UNDOTBS1                                                                                   NO
SYSAUX                                                                                     NO
TEMP                                                                                       NO
USERS                                                                                      NO

BFTのROWIDフォーマット

従来のROWID:OOOOOOFFFBBBBBBRRR

バイト 定義
OOOOOO the data object number that identifies the database segment
FFF the tablespace-relative data file number of the data file that contains the row
BBBBBB the data block that contains the row.
RRR is the slot number identifying the row inside a particular block

BFTのROWID:OOOOOOLLLLLLLLLRRR

バイト 定義
OOOOOO the data object number that identifies the database segment
LLLLLLLLL Encoded block number
RRR is the slot number identifying the row inside a particular block
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License