1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DBCAのコマンドライン・パラメータを試す / useBigFileForTablespace

Posted at

Oracle Database 21cで追加されたDBCAのオプション・パラメータの動作を確認します。
対象のパラメータはuseBigFileForTablespaceです。

書式(ヘルプの引用)
[-useBigFileForTablespace <true | false> Specify true to enable bigfile property to all database tablespace or a comma separated list of <tablespace name>:<true/false> pairs to enable/disable database tablespace bigfile property. For example <SYSTEM:false,SYSAUX:false,USERS:true>]

用法は次の3通りです。

  1. すべての表領域別をBIGFILEにする
    -useBigFileForTablespace true
  2. すべての表領域別をSMALLFILEにする (デフォルト)
    -useBigFileForTablespace false
  3. 表領域別にBIGFILEにする
    -useBigFileForTablespace <tablespace name>:<true/false>[,<tablespace name>:<true/false>]

構成

  • Oracle Database 21c Enterprise Edition (21.3)
  • Oracle Eneterprise Linux 8.2

実践

DBCAでデータベース作成を実行します。サイレントモードです。
オプション・パラメータで-useBigFileForTablespace trueを付けます。
すべての表領域をBIFILE作成です。

すべての表領域をBIGFILEにする

$ dbca -silent -createDatabase -gdbName db21bigf -templateName New_Database.dbt -useBigFileForTablespace true
Enter SYS user password:

Enter SYSTEM user password:

[FATAL] [DBT-06013] The size of the datafile (5)MB is less than the required minimum size (7)MB.
   CAUSE: Bigfile option is selected for the tablespace of the datafile. To create tablespace with bigfile option, the datafile needs to be greater than 7MB size.
$

FATALが返されました。
データファイルの最小サイズは7MBという要件に対して、メッセージでは5MBの表領域があることが示されています。
5MBの表領域というとUSERS表領域のことですね。

製品に含まれているテンプレートはいずれもUSERS表領域を初期サイズ5MBで作成する設定です。
-useBigFileForTablespace trueでBIGFILEにするにはテンプレートをいじる必要があります。

7MB未満の表領域を含まないテンプレートでの動作確認は別の機会として表領域別にBIGFILE指定してみます。

表領域別にBIGFILEにする

-useBigFileForTablespace trueでエラーが返されたUSERS表領域を除き、表領域ごとにBIGFILEを指定します。

$ dbca -silent -createDatabase -gdbName db21bigf -templateName New_Database.dbt -useBigFileForTablespace SYSTEM:true,SYSAUX:true,TEMP:true,UNDOTBS1:true
Enter SYS user password:

Enter SYSTEM user password:

Prepare for db operation
4% complete
Creating and starting Oracle instance
5% complete
6% complete
8% complete
Creating database files
9% complete
13% complete
Creating data dictionary views
14% complete
・・・以下、略・・・

先に進みました。

データベース作成の完了後、データベースに接続して各表領域がBIGFILEになっていることを確認します。

SQL> SELECT NAME,CDB FROM V$DATABASE;

NAME      CDB
--------- ---
DB21BIGF  YES

SQL> SELECT TABLESPACE_NAME,BIGFILE FROM DBA_TABLESPACES ORDER BY 1;

TABLESPACE_NAME                BIG
------------------------------ ---
SYSAUX                         YES
SYSTEM                         YES
TEMP                           YES
UNDOTBS1                       YES
USERS                          NO

SQL>

指定したとおりにUSERS表領域を除いてBIGFILE表領域になりました。

ちなみにデータベースのデフォルト表領域タイプもBIGFILEになっています。

SQL> SELECT * FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TBS_TYPE';

PROPERTY_NAME
--------------------------------------------------------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
DESCRIPTION
--------------------------------------------------------------------------------
DEFAULT_TBS_TYPE
BIGFILE
Default tablespace type


SQL>

まとめ

useBigFileForTablespaceを使用するには少し注意が必要です。

  • trueを指定する場合はテンプレート内のすべての表領域のサイズを7MB以上にする必要がある。
  • 次のいずれかの設定ではデータベースのデフォルト表領域タイプがBIGILEになる。
    • trueを指定
    • 表領域別設定で一つ以上の表領域にtrueを指定
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?