0
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のコマンドライン・パラメータを試す / createAsContainerDatabase

Posted at

DBCサイレント・モードでのコマンドライン・パラメータについて挙動確認です。
Oracle Database 21cのDBCAサイレント・モードでデータベースの作成にNon-CDB(非CDB)を指定してみます。
使うパラメータはcreateAsContainerDatabaseです。

Oracle Database 21cではNon-CDB(非CDB)はサポートされなくなっています。
製品マニュアル(Oracle Multitenant管理者ガイド 21c)には記載がありますが、DBCAのヘルプには出てきません。

Oracle Database 21cのDBCA(GUI)では「Create as Container database」のチェックボックスがチェック付きでグレーアウトされています。
選択項目としては残っていることから、-createAsContainerDatabase <true | false>の指定が、サイレント・モードではどのように処理されるか?と確認してみた次第です。

構成

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

実践

次の二つの動作を確認します。
Non-CDB指定でデータベース作成を実行する
 コマンドライン:-createAsContainerDatabase falseを付けて実行
 想定される動作:何らかのエラーが返される または パラメータが無視され下記デフォルト動作になる
CDB指定でデータベース作成を実行する
 コマンドライン:-createAsContainerDatabase trueを付けて実行
 想定される動作:下記デフォルト動作に同じ または パラメータの存在に対してエラーまたは警告が返される

使用するDBCAのパスとバージョンを確認します。

$ which dbca
/u01/app/oracle/product/21.0.0/dbhome_1/bin/dbca
$

$ dbca -version
Version:"21.3.0.0.0"
Build-Date:Sat Jun 26 23:53:15 PDT 2021
$

Non-CDB指定でデータベース作成を実行する

データベース作成のパラメータに-createAsContainerDatabase falseを付け加えます。

$ dbca -silent -createDatabase -gdbname db21c -templateName General_Purpose.dbc -createAsContainerDatabase false
[FATAL] [DBT-10333] Container database (CDB) creation option is not selected.
   CAUSE: Non-CDB creation is not supported.
   ACTION: Make sure container database (CDB) option is selected.
$

「FATAL」で返されました。想定の「何らかのエラーが返される」ほうです。
Non-CDBをサポートしていないので、ちゃんとCDBを作成するオプションを付けるように、と示されています。

CDB指定でデータベース作成を実行する

コンテナ・データベースを作成するように-createAsContainerDatabase trueを指定して実行してみます。

Oracle Database 21cのDBCAとしてはこれがデフォルト動作と理解できますが、せっかくなので指定してみます。

$ dbca -silent -createDatabase -gdbname db21c -templateName General_Purpose.dbc -createAsContainerDatabase true
Enter SYS user password:

Enter SYSTEM user password:

Prepare for db operation
10% complete
Copying database files
・・・ 以下、略・・・

先に進みました。
上の例は実行途中の出力ですがcreateAsContainerDatabaseパラメータに関するエラーや警告はありません。

DBCA完了後に作成されたファイルを確認すると、ちゃんとpdbseedとそのファイルが作られています。

作成されたファイル
$ ls -l /u01/app/oracle/oradata/DB21C/*
-rw-r----- 1 oracle oinstall   18726912 Sep 18 21:08 /u01/app/oracle/oradata/DB21C/control01.ctl
-rw-r----- 1 oracle oinstall   18726912 Sep 18 21:08 /u01/app/oracle/oradata/DB21C/control02.ctl
-rw-r----- 1 oracle oinstall  209715712 Sep 18 21:06 /u01/app/oracle/oradata/DB21C/redo01.log
-rw-r----- 1 oracle oinstall  209715712 Sep 18 21:06 /u01/app/oracle/oradata/DB21C/redo02.log
-rw-r----- 1 oracle oinstall  209715712 Sep 18 21:07 /u01/app/oracle/oradata/DB21C/redo03.log
-rw-r----- 1 oracle oinstall  597696512 Sep 18 21:07 /u01/app/oracle/oradata/DB21C/sysaux01.dbf
-rw-r----- 1 oracle oinstall 1394614272 Sep 18 21:06 /u01/app/oracle/oradata/DB21C/system01.dbf
-rw-r----- 1 oracle oinstall  248520704 Sep 18 21:01 /u01/app/oracle/oradata/DB21C/temp01.dbf
-rw-r----- 1 oracle oinstall  125837312 Sep 18 21:07 /u01/app/oracle/oradata/DB21C/undotbs01.dbf
-rw-r----- 1 oracle oinstall    5251072 Sep 18 21:06 /u01/app/oracle/oradata/DB21C/users01.dbf

/u01/app/oracle/oradata/DB21C/pdbseed:
total 737360
-rw-r----- 1 oracle oinstall 356524032 Sep 18 21:06 sysaux01.dbf
-rw-r----- 1 oracle oinstall 293609472 Sep 18 21:06 system01.dbf
-rw-r----- 1 oracle oinstall  36708352 Sep 18 21:02 temp012022-09-18_20-59-05-081-PM.dbf
-rw-r----- 1 oracle oinstall 104865792 Sep 18 21:06 undotbs01.dbf
$

まとめ

Oracle Database 21cのデータベース作成では、あえて指定する必要のないパラメータですが、DBCAは単純に無視するわけでなく、パラメータを解釈していて次のような動作でした。

  • -createAsContainerDatabase falseを指定した場合は、CDBで作るようメッセージが返されエラー終了する。(=Non-CDBは作成できない)
  • -createAsContainerDatabase trueを指定した場合は、パラメータの指定通りCDBを作成する。

補足情報

  • DBCA(GUI)での操作やイメージについては、いろんな方が試された記事があります。それらを参照されるとよいかと思います。
0
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
0
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?