「DBCAのコマンドライン・パラメータを試す / useBigFileForTablespace 」のその後です。
エラーが返され保留とした-useBigFileForTablespace true
に再チャレンジします。
BIGFILEにする表領域を列挙(<tablespace name>:<true/false>[,<tablespace name>:<true/false>]
)するのでなく、値にtrue
だけを指定します。これにより作成するデータベースのすべての表領域がBIGFILEになることを確認します。
結論をいえば次の二つのステップで期待する結果になりました。
- テンプレートの表領域サイズ編集
- 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に変更しました。
<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 -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設定を確認します。
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サイレント・モードのコマンド