Oracle Database 21cのDBCAコマンドライン・パラメータを確認する

Oracle Database 21cのDBCAでの確認です。
`dbca -createDatabase -help`で表示される内容について、Oracle Database 19cでの同コマンドから変わった点を書き出してます。（2022年9月時点）
* 追加されたオプション・パラメータ
* ヘルプに出てこないオプション・パラメータ

:::note info
ヘルプ・コマンドで示される内容だけでは確認しきれない部分は製品マニュアルも参照しています。ただしヘルプで確認できるオプション・パラメータと製品マニュアルに記載されているオプション・パラメータは完全には一致していないようです。参照した製品マニュアルについては本記事末の参考情報をご覧ください。
::: 

# 追加されたオプション・パラメータ
### templateFromCloud
Oracle Cloud Infrastructureに保存しているテンプレートを利用するオプションです。
```:書式
 [-templateFromCloud <This flag indicates that specified template is a cloud template>]
        -opcConfigFile <Specify opc config file.>
        -opcLibPath <Provide the directory containing odbsrmt.py script for delete template operation else provide the directory containing libopc.so>
        [-rmanDecryptionPassword <Specify rman decryption password>]
```
templateFromCloudを指定する場合は次の三つのパラメータも記述します。
* opcConfigFile 
* opcLibPath
* rmanDecryptionPassword （任意）

:::note warn
製品マニュアルによるとLinux環境のみサポートしているとのこと。
:::


### useBigFileForTablespace
データベース作成時に各表領域をBIGFILE表領域にするためのオプション・パラメータなりました。
```:書式
 [-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>]
```

:::note info
このパラメータの動作についてはこちらで確認しています。
[DBCAのコマンドライン・パラメータを試す / useBigFileForTablespace](https://qiita.com/shin3it/items/8221973bfd20005546b2)
::: 

### rmanParallelism
RMANの並列度を指定します。
```:書式
[-rmanParallelism <Parallelism value>]
```
動作は未確認です。
ヘルプのテキストにも製品マニュアルにも、あまり説明はなく、推測になりますが、`createDatabase`コマンドで指定したテンプレートからデータファイルを展開（リストア）するときに実行されるRMANによるリストア操作の並列度と考えられます。
`unplugDatabase`や`createCloneTemplate`といったコマンドにも同じオプション・パラメータがあり、これらは多少の説明もあります。操作内部で実行されるRMANによるバックアップ動作の並列度の指定と考えられます。
普段筆者が使っている`New_database.dbt`では、その恩恵を受けられない気がします。使い方によっては作業時間を短縮させたりできるかもしれません。

### configureTDE
BIGFILE表領域の設定同様にデータベース作成の段階で透過的データ暗号化を構成できるオプション・パラメータです。

ちゃんと指定しようとするとパラメータが多くなりそうですがウォレットの構成を自動化できるのはよさそうです。
ソフトウェア・ウォレットにのみ対応していると製品マニュアルに記載されています。
```:書式
[-configureTDE <true | false> Specify true to configure TDE wallet]
        [-sourceTdeWalletPassword <Specify password for source database TDE wallet>]
        [-tdeAlgorithm <Specify the TDE Algorithm Type. Default is AES128>]
        [-primaryDBTdeWallet <Specify the location for TDE wallet of primary database>]
        [-tdeWalletRoot <Specify the location for TDE wallet root init parameter>]
        [-pdbTDEPassword <Specify password for PDB TDE wallet>]
        [-encryptPDBTablespaces <Specify ALL to encrypt all Tablespaces or A comma separated list of name:value pairs with tablespace encryption to true/false. For example SYSTEM:true,SYSAUX:false>]
        [-tdeWalletModeForPDB <Type of keystore, either UNITED or ISOLATED. Default is UNITED>]
        [-tdeWalletLoginType <Specify the TDE Wallet Login Type, PASSWORD | AUTO_LOGIN  | LOCAL_AUTO_LOGIN. Default is PASSWORD for SI and AUTO_LOGIN is default for RAC]
        [-encryptTablespaces <Specify ALL to encrypt all Tablespaces or A comma separated list of name:value pairs with tablespace encryption to true/false. For example SYSTEM:true,SYSAUX:false>]
        [-sourcePdbTDEPassword <Specify password for source PDB TDE wallet and it is used only in creation of PDB from existing PDB which has TDE wallet>]
        [-tdeWalletPassword <Specify password for TDE wallet>]
```

### enableForceLogging
データベース作成時に強制ロギングを有効にします。
Data Guard を構成することが前提のデータベースを作成するときに使うことがあるかもしれません。
```:書式
[-enableForceLogging <<true | false> Specify true to enable force logging at database level.>]
```
:::note warn
本記事時点の製品マニュアルには記載されていません。
:::



# ヘルプに出てこないオプション・パラメータ

### createAsContainerDatabase
コンテナ・データベースとして構成するかを指定するパラメータです。
Non-CDBでの作成はOracle Database 21cではサポートされなくなったなっていますが、パラメータとして指定することはできます。falseを指定するとNon-CDBはサポートしていない旨のメッセージが示されエラー終了します。

:::note
本記事時点の製品マニュアルには記載されています。
以下の説明文があります。
> Oracle Databaseリリース20.3以降では、falseを指定することはサポートされません。
:::

:::note info
このパラメータの動作についてはこちらで確認しています。
[DBCAのコマンドライン・パラメータを試す / createAsContainerDatabase](https://qiita.com/shin3it/items/dbd49b40b2b0da56a20a)
::: 

### sampleSchema
サンプル・スキーマを構成するかを指定するパラメータです。
指定することはできますが、動作上は無視されているように

:::note
本記事時点の製品マニュアルには記載されています。
:::


# 参考情報
* Oracle Multitenant Administrator’s Guide, 21c F31734-10 (August 2022)
[19 DBCA Silent Mode Commands](https://docs.oracle.com/en/database/oracle/oracle-database/21/multi/dbca-command.html#GUID-EC3C396B-6FFB-4957-BC73-1BE8F4FD852E)
* Oracle Multitenant管理者ガイド, 21c F37693-04 (2021年9月)  日本語ドキュメント
[19 DBCAサイレント・モードのコマンド](https://docs.oracle.com/cd/F39414_01/multi/dbca-command.html#GUID-0A94814D-032B-4F6A-8B54-A35223A1E3EF)


# 補足情報
* 別途、各パラメータの動作を確認してみます。