DBCAのサイレントモードでBIGFILE表領域を作るには?
CREATE DATABASE文には「SET DEFAULT BIGFILE TABLESPACE」が用意されており、SYSTEM、SYSAUX表領域をBIGFILEで作成することができます。
Oracle® Database管理者ガイド 12cリリース2 (12.2) E72998-04
2 Oracle Databaseの作成および構成
2.5.9 データベース作成時のbigfile表領域のサポート
https://docs.oracle.com/cd/E82638_01/ADMIN/creating-and-configuring-an-oracle-database.htm#GUID-35A12594-29EB-4545-A6AD-63B9AC3A5671
DBCAをサイレントでデータベースを作成したい場合、dbcaのコマンドオプションやレスポンスファイルで作成するためのオプションが用意されていません。
DBCAのサイレントモードで作成するには、非シードのDBCAテンプレート(New_Database.dbt)を編集することで可能です。
具体的にはテンプレートファイルの中の<TablespaceAttributes id="SYSTEM">
タグの中のBIGFILEを制御するタグを<bigfile>true</bigfile>
に設定します。
なお、<TablespaceAttributes id="SYSTEM">
と<TablespaceAttributes id="SYSAUX">
のどちらかで設定しても
両方がBIGFILE かつ デフォルトの表領域設定もBIGFILEとなります。
SYSTEMおよびSYSAUX表領域は、常にデフォルトの表領域タイプで作成されるという仕様のためと考えられます。
実行例
デフォルトで存在している「New_Database.dbt 」を「New_Database2.dbt」としてコピーして編集します。
cd /u01/app/oracle/product/12.2.0.1/dbhome_1/assistants/dbca/templates
cp New_Database.dbt New_Database2.dbt
vi New_Database2.dbt
SYSTEM表領域のbigfileをtrueに設定します。(★部分)
略
<TablespaceAttributes id="SYSTEM">
<online>true</online>
<offlineMode>1</offlineMode>
<readOnly>false</readOnly>
<temporary>false</temporary>
<defaultTemp>false</defaultTemp>
<undo>false</undo>
<local>true</local>
<blockSize>-1</blockSize>
<allocation>3</allocation>
<uniAllocSize unit="KB">-1</uniAllocSize>
<initSize unit="KB">64</initSize>
<increment unit="KB">64</increment>
<incrementPercent>50</incrementPercent>
<minExtends>1</minExtends>
<maxExtends>-1</maxExtends>
<minExtendsSize unit="KB">64</minExtendsSize>
<logging>true</logging>
<recoverable>false</recoverable>
<maxFreeSpace>0</maxFreeSpace>
<bigfile>false</bigfile> ★
<datafilesList>
<TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf"/>
</datafilesList>
</TablespaceAttributes>
以下略
dbcaの「-templateName」に編集したテンプレート指定します。
レスポンスファイルは任意です。
dbca -silent -createDatabase -responseFile ./dbca.rsp -templateName /u01/app/oracle/product/12.2.0.1/dbhome_1/assistants/dbca/templates/New_Database2.dbt
DBが作成されたあと確認するとBIGFILEになっていることがわかります。
SQL> set sqlformat ansiconsole
SQL> select * from database_properties where PROPERTY_NAME='DEFAULT_TBS_TYPE'
2 /
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
DEFAULT_TBS_TYPE BIGFILE Default tablespace type
SQL> select TABLESPACE_NAME,BIGFILE from dba_tablespaces
2 where TABLESPACE_NAME in ('SYSTEM','SYSAUX')
3 /
TABLESPACE_NAME BIGFILE
SYSAUX YES
SYSTEM YES
参考
Sh! – silent installation (DBCA)
https://www.spotonoracle.com/?p=155
Manually setting tablespace
https://www.ibm.com/support/knowledgecenter/en/SSBNJ7_1.3.2/com.ibm.tnpm.doc/Wireless_Deployment/ttnpm_wls_deployment_manually_setting_tablespace.html