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?

DBCAのコマンドライン・パラメータ/-useBigFileForTablespace(その2)

Posted at

DBCAのコマンドライン・パラメータを試す / useBigFileForTablespace 」のその後です。
エラーが返され保留とした-useBigFileForTablespace trueに再チャレンジします。
BIGFILEにする表領域を列挙(<tablespace name>:<true/false>[,<tablespace name>:<true/false>])するのでなく、値にtrueだけを指定します。これにより作成するデータベースのすべての表領域がBIGFILEになることを確認します。

結論をいえば次の二つのステップで期待する結果になりました。

  1. テンプレートの表領域サイズ編集
  2. DBCAの実行
     実行時パラメータとして以下を使用します。
    • -templateName 上記テンプレート
    • -useBigFileForTablepaces true

以前の記事ではテンプレートとしてNew_Database.dbtをデフォルト構成のまま使用しました。このためUSERS表領域のサイズ(5MB)が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.
$

BIGFILE表領域データファイルの最小サイズについてはSQL言語リファレンスのCREATE TABLESPACEの項で触れられています。

bigfile表領域に格納されるのは、1つのデータファイルまたは一時ファイルのみであり、(中略)。データファイルまたは一時ファイル1つ当たりの最小サイズは、32Kブロックの表領域の場合は12MB、8Kブロックの表領域の場合は7MBです。(後略)

最小サイズは、厳密にはDBブロック・サイズに応じた最小ブロック数によってきまってます。作成時のサイズ指定をKB単位にした場合は6300KBくで作成できます。

試してみる

1. テンプレートの表領域サイズ編集

前回も使用したNew_Database.dbtからNew_Database_withBigFile.dbtをコピー作成し、USERS表領域のサイズを5MBから7MBに変更しました。

New_Database_withBigFile.dbt
       <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf" con_id="1">
          <tablespace>USERS</tablespace>
          <temporary>false</temporary>
          <online>true</online>
          <status>0</status>
+         <size unit="MB">7</size>
-         <size unit="MB">5</size>
          <reuse>true</reuse>
          <autoExtend>true</autoExtend>
          <increment unit="KB">1280</increment>
          <maxSize unit="MB">-1</maxSize>
       </DatafileAttributes>

2. DBCAの実行

作成したテンプレートNew_Database_withBigFile.dbtを使用してDBCAを実行します。BIGFILE表領域にするため-useBigFileForTablespace trueも指定します。

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

Enter SYSTEM user password:

Prepare for db operation
4% complete
(中略)
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
 /u01/app/oracle/cfgtoollogs/dbca/db21bigf.
Database Information:
Global Database Name:db21bigf
System Identifier(SID):db21bigf
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/db21bigf/db21bigf7.log" for further details.
$

無事データベース作成が完了しました。

データベースの確認

作成されたデータベースの各表領域のBIGFILE設定を確認します。

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

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

前回は-useBigFileForTablespacesパラメータ指定から外し、BIGFILEにしなかったUSERS表領域もBIGFILEになっていることが確認できました。

参考

Oracle Database SQL言語リファレンス 21c / CREATE TABLESPACE
Oracle Multitenant 管理者ガイド 21c / 19 DBCAサイレント・モードのコマンド

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?