Oracle表領域の作成(CREATE TABLESPACE)

実践オラクルデータベース構築・運用

オラクルデータベース構築オラクルデータベース運用SQL書式PL/SQL書式Oracle Master試験

TOP オラクルデータベース運用 Oracle表領域管理

Oracle表領域の作成(CREATE TABLESPACE)


スポンサードリンク



Oracle表領域の作成(CREATE TABLESPACE)


本項では、Oracle表領域の作成方法について紹介してます。CREATE TABLESPACEのオプション解説や実際にテスト環境で実行した結果についても紹介しておりますので、参考にしてください。

CREATE TABLESPACE文を使用しOracle表領域を作成します。表領域とは、スキーマ・オブジェクトを格納する、データベース内に論理領域です(※詳細は、「表領域の概要と管理」を参照)。

表領域の種類
Oracle表領域には以下の3種類があります。種類ごとに表領域の作成・変更・削除方法も違ってくるので注意が必要です。

 ・永続表領域
  ⇒永続スキーマ・オブジェクトが格納される表領域です。永続表領域のオブジェクトは、データファイルに格納されます。

 ・UNDO表領域(※詳細は、「UNDO表領域(UNDO TABLESPACE)とは?」を参照)
  ⇒データベースを自動UNDO管理モードで実行している場合にOracle DatabaseがUNDOデータを管理するために使用する永続表領域です。

 ・一時表領域(※詳細は、「一時表領域(TEMPORARY TABLESPACE)とは?」を参照)
  ⇒セッションの存続期間中のみ、スキーマ・オブジェクトが格納されます。一時表領域のオブジェクトは、一時ファイルに格納されます。



以下に表領域作成の実行例を紹介します。以下の実行例は、test_tbs_01表領域を作成しています。
※1つのデータファイルを持ち初期サイズ500MBで自動拡張を有効にし拡張する単位は500MBで領域制限はなし


(1)表領域作成前の確認
SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME
------------------------------------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS

SQL>


(2)表領域作成(test_tbs_01)
SQL> CREATE TABLESPACE test_tbs_01
DATAFILE 'C:\ORACLEXE\APP\ORACLE\ORADATA\XE\TEST_TBS_01.DBF' SIZE 500M REUSE
AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;


表領域が作成されました。

SQL>


(3)表領域作成後の確認
SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME
------------------------------------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
TEST_TBS_01

6行が選択されました。


SQL> select tablespace_name,file_name from dba_data_files where tablespace_name='TEST_TBS_01';

TABLESPACE_NAME    FILE_NAME
------------------  ----------------------------------------------------
TEST_TBS_01        C:\ORACLEXE\APP\ORACLE\ORADATA\XE\TEST_TBS_01.DBF

SQL>


CREATE TABLESPACE構文
CREATE
[ BIGFILE | SMALLFILE ]
{ permanent_tablespace_clause
| temporary_tablespace_clause
| undo_tablespace_clause
} ;
create tablespace構文1


permanent_tablespace_clause構文
TABLESPACE tablespace
[ DATAFILE file_specification [, file_specification ]... ]
{ MINIMUM EXTENT size_clause
| BLOCKSIZE integer [ K ]
| logging_clause
| FORCE LOGGING
| ENCRYPTION tablespace_encryption_spec
| DEFAULT [ table_compression ]
storage_clause
| { ONLINE | OFFLINE }
| extent_management_clause
| segment_management_clause
| flashback_mode_clause
}...;
create tablespace構文2

file_specification構文
[ 'filename' | 'ASM_filename' ]
[ SIZE size_clause ]
[ REUSE ]
[ autoextend_clause ]


※ここでは最も使用される永続表領域の構文の、さらに重要な構文をピックアップし記載しています。その他構文やUNDO表領域や一時表領域に関しては、以下のオラクルのサイトで確認してください。
http://docs.oracle.com/cd/E16338_01/server.112/b56299/statements_7003.htm#CJAEADCI



CREATE TABLESPACE文オプション解説
BIGFILE | SMALLFILE この句を使用すると、表領域がbigfileかsmallfileかを指定できます。この句は、データベースのデフォルトの表領域タイプの設定を上書きします。

bigfile表領域に格納されるのは、1つのデータファイルまたは一時ファイルのみであり、このファイルには最大約40億(232)ブロックを格納できます。データファイルまたは一時ファイル1つ当たりの最大サイズは、32Kブロックの表領域の場合は128TB、8Kブロックの表領域の場合は32TBです。

smallfile表領域は、Oracleの従来の表領域であり、1022のデータファイルまたは一時ファイルを含めることができます。それぞれのファイルは、最大で約400万(222)のブロックを格納できます。

この句を省略した場合、データベースに設定された永続表領域または一時表領域の、現在のデフォルト表領域タイプが使用されます。永続表領域にBIGFILEを指定すると、デフォルトで、自動セグメント領域管理のローカル管理表領域が作成されます。
tablespace 作成する表領域の名前を指定します。名前は、「データベース・オブジェクトのネーミング規則」に指定されている要件を満たしている必要があります。

DATAFILE | TEMPFILE 永続表領域を構成するデータファイルを指定するか、または一時表領域を構成する一時ファイルを指定します。オペレーティング・システムのファイル・システム内の標準データファイルと一時ファイル、またはOracle自動ストレージ管理(Oracle ASM)ディスク・グループのファイルを作成するには、file_specificationのdatafile_tempfile_spec書式を使用します。

DB_CREATE_FILE_DEST初期化パラメータに値を設定してOracle Managed Filesを使用可能にしていないかぎり、DATAFILEまたはTEMPFILE句を指定する必要があります。

filename filenameは、ファイル・システム内またはRAWデバイス上に格納されたデータファイルに使用します。Oracle Managed Filesを使用していない場合は、filenameとSIZE句の両方を指定しないと、文は失敗します。サイズを指定せずにファイル名を指定すると、Oracleは既存のファイルを再利用し、ファイルが存在しない場合はエラーを戻そうとします。Oracle Managed Filesを使用している場合は、filenameや残りの句は必須ではありません。この場合、Oracle Databaseによってファイルに一意の名前が作成され、そのファイルが次のいずれかの初期化パラメータで指定されるディレクトリに保存されます。

SIZE ファイルのサイズをバイト単位で指定します。K、M、GまたはTを使用して、KB、MB、GBまたはTB単位で指定することもできます。UNDO表領域の場合、各データファイルに対してSIZE句を指定する必要があります。その他の表領域の場合、ファイルがすでに存在するとき、またはOracle Managed Fileを作成するときには、このパラメータを省略できます。Oracle Managed Fileの作成時にこの句を指定しないと、100MBのファイルが作成されます。

REUSE REUSEは、既存ファイルの再利用を可能にします。ファイルがすでに存在する場合、ファイル名が再利用され、新しいサイズが適用されるか(SIZEを指定する場合)、または元のサイズのままとなります。ファイルが存在していない場合、この句は無視され、ファイルが作成されます。(REUSE句の制限事項: filenameを指定しないかぎり、REUSEは指定できません。)

autoextend_clause ・ONを指定すると、自動拡張を使用可能にします。

・OFFを指定すると、自動拡張を使用禁止にします。自動拡張を使用禁止にする場合は、NEXTおよびMAXSIZEの値を0(ゼロ)に設定します。後続の文で自動拡張を使用可能に戻す場合は、これらの値を設定しなおす必要があります。

・NEXT句を使用すると、エクステントがさらに必要になった場合にデータファイルに自動的に割り当てられるディスク領域の増分サイズを、バイト単位で指定できます。デフォルトのサイズは1データ・ブロックです。

・MAXSIZE句を使用すると、データファイルの自動拡張で使用されるディスク領域の最大サイズを指定できます。

・UNLIMITEDはデータファイルまたは一時ファイルに割り当てられるディスク領域を制限しない場合は、UNLIMITED句を使用します。

MINIMUM EXTENT この句は、ディクショナリ管理表領域にのみ有効です。表領域で使用されるエクステントの最小サイズを指定します。この句を指定すると、表領域内のすべての使用済エクステントまたは未使用エクステントのサイズが、size_clauseで指定された値以上であること、およびその倍数であることが保証され、表領域における空き領域の断片化を制御できます。

BLOCKSIZE 表領域の非標準ブロック・サイズを指定するには、BLOCKSIZE句を使用します。この句を指定するには、DB_CACHE_SIZEと少なくとも1つのDB_nK_CACHE_SIZEパラメータを設定する必要があります。

LOGGING | NOLOGGING LOGGINGを指定すると、データベース・オブジェクトの作成、およびその後のオブジェクトへの挿入をREDOログ・ファイルに記録します。

NOLOGGINGを指定すると、データベース・オブジェクトの作成、およびその後の従来型INSERTをREDOログ・ファイルに記録します。ダイレクト・パス・インサートは記録されません。

ONLINE | OFFLINE この句を使用すると、表領域がオンラインまたはオフラインのいずれであるかを決定できます。この句は、一時表領域では無効です。




スポンサードリンク




    ◎-表領域の概要と管理

    ◎-UNDO表領域(UNDO TABLESPACE)とは?

    ◎-一時表領域(TEMPORARY TABLESPACE)とは?

    ◎-Oracle表領域の作成(CREATE TABLESPACE)

    ◎-Oracle表領域の変更(ALTER TABLESPACE)

    ◎-Oracle表領域の削除(DROP TABLESPACE)

    ◎-SYSTEM表領域が増加する理由

    ◎-SYSAUX表領域が増加する理由

    ◎-表領域の使用率と空き領域確認方法

    ◎-表領域の物理データファイル確認方法

    ◎-表領域拡張手順(データファイル追加)

    ◎-表領域縮小可能サイズ確認手順

    ◎-表領域縮小手順(resize)





スポンサードリンク

リンク集 / 免責事項サイトマップ問い合わせ
Copyright (C) 2012  実践オラクルデータベース構築・運用  All rights reserved