Database Cloud Serviceのインスタンスにプラガブル・データベース(PDB)を追加してみた


# 概要
Oracle CloudのDatabase Cloud Serviceでインスタンスを作成する手順を以前投稿しました。

- [Oracle CloudでDatabase Cloud Serviceインスタンスを作ってみた](http://qiita.com/shinyay/items/2e7de9c1c3be3428818b)
- [Database Cloud ServiceのインスタンスをPSM CLIで作成してみた](http://qiita.com/shinyay/items/e6e0c038090039dabb18)

作成したインスタンスのOracle Databaseのエディションは、Enterprise Edition - High Performanceというものだったので、マルチテナント・オプションが利用できる状態にあります。

そこで、マルチテナント・オプションで提供されるプラガブル・データベースを追加してみます。

# プラガブル・データベース追加手順
プラガブル・データベースの追加は、Database Cloud Serviceが提供しているユーティリティ・ツールの**DBaaSモニター・コンソール**から行います。

この**DBaaSモニター・コンソール**は、443番ポート(https)でアクセスするのですが、Database Cloud Serviceではデフォルトでは443番ポートは閉じられています。
そこで、443番ポートへのアクセス・ルールを変更して開放し、DBaaSモニター・コンソールにアクセスしてPDBの追加作業を行います。

1. 443番ポートへのアクセス・ルールの変更
2. DBaaSモニター・コンソールへのアクセス
3. PDBの作成

## 1. 443番ポートへのアクセス・ルールの変更
Database Cloud Serviceは、DBaaSモニター・コンソールをはじめ、Oracle Cloud上のDatabaseを活用するためのツールを提供しています。

- DBaaSモニター・コンソール
- Enterprise Manager
- Application Express

一方でこれらツールへ直接アクセス可能なポート番号は無効化されています。デフォルトで有効化されているポート番号は22番(SSH)となっています。

以下のオラクル社公開資料の中から抜粋したスライドを参照ください。

- [(参考)Oracle Database Cloudを使ってみよう](http://www.slideshare.net/oracle4engineer/oracle-database-cloud)
![Connection-to-DBCS](http://image.slidesharecdn.com/oracle-database-cloud-start-guide-160411112423/95/oracle-database-cloud-62-638.jpg?cb=1473247935)

このように有効化されているポートが22番SSHポートなので、このポートを利用してSSHポートフォワーディングして、その他ポート番号でListenしているツールを使用する事が可能です。

一方で、ポートフォワードするよりも利便性を考慮して直接アクセスしたいような場合は、無効化されているポートを有効化する事が可能です。

ここでは、DBaaSモニター・コンソールがListenしている443番ポートに対するアクセス・ルールを変更して、外部から直接443番ポートへのアクセスできるように変更します。

 ### 1.1. アクセス・ルール画面の表示
 Database Cloud Serviceのサービスコンソールを表示します。
![pdb01](https://bytebucket.org/shinyay/images-for-blog/raw/b0b80ae52a482a01a6cb1b1369734e38941864db/qiita/160908_dbcs-pdb/dbcs.emea.oraclecloud.com_2016-09-06_08-46-31.png)

次にアクセス・ルールを変更するインスタンスの右側のメニューボタンから、**アクセス・ルール**を選択します。
![pdb02](https://bytebucket.org/shinyay/images-for-blog/raw/b0b80ae52a482a01a6cb1b1369734e38941864db/qiita/160908_dbcs-pdb/dbcs.emea.oraclecloud.com_2016-09-06_08-47-52.png)

 ### 1.2. アクセス・ルールの有効化
 ルール名が**ora_p2_httpssl**というアクセス・ルールが外部(インターネット)から443番ポートでアクセスするルールです。このステータスアイコン(左端)を見ると**×**が付いていますが、無効化されている事を表しています。
 
 このアクセス・ルールのメニューから**Enable**を選択します。
![pdb03](https://bytebucket.org/shinyay/images-for-blog/raw/b0b80ae52a482a01a6cb1b1369734e38941864db/qiita/160908_dbcs-pdb/dbcs.emea.oraclecloud.com_2016-09-06_08-48-31.png)

**Enable Access Rule**というダイアログが表示されるので、**Enable**を選択します。
![pdb04](https://bytebucket.org/shinyay/images-for-blog/raw/b0b80ae52a482a01a6cb1b1369734e38941864db/qiita/160908_dbcs-pdb/dbcs.emea.oraclecloud.com_2016-09-06_08-48-44.png)

## 2. DBaaSモニター・コンソールへのアクセス
アクセス・ルールを変更して443番ポートが有効になりました。
これによりDBaaSモニター・コンソールにアクセスする事が可能になりました。

### DBaaSモニター・コンソール
DBaaSモニター・コンソールはDatabase Cloud Serviceインスタンス上のDBMSを管理・モニターするために使用するツールです。
主な機能として、以下のようなものがあります。

- 表領域の容量
- 待機イベントのリアルタイム表示
- アラート・ログ及びログ検索
- ユーザセッションの一覧表示
- セッションの詳細表示
    - 最後のSQL文
    - 実行計画
    - 待機
    - 競合など
- 初期化パラメータの一覧(メモリーおよびSPFILE内のパラメータ値の変更が可能)
- 特定のデータベース・オプションが有効かどうかの表示
- 現在および過去のSQL Developer PDBのアップロードの監視
- OSプロセス情報表示
- データベース・インスタンスの起動および停止
- プラガブル・データベースの作成およびドロップ
- プラガブル・データベースの開閉
- プラガブル・データベースのプラグインと切断
- プラガブル・データベースのクローニング
- リスナーの起動および停止

 ### 2.1. DBaaSモニター・コンソールへのアクセス
 メニューからDBaaSモニター・コンソールを選択します。
![pdb05](https://bytebucket.org/shinyay/images-for-blog/raw/b0b80ae52a482a01a6cb1b1369734e38941864db/qiita/160908_dbcs-pdb/dbcs.emea.oraclecloud.com_2016-09-06_08-49-24.png)

ログイン画面ではユーザとパスワードは以下のように入力します。

|ユーザ名|パスワード|
|---|---|
|dbaas_monitor|インスタンス作成時に設定した管理者パスワード|
![pdb09](https://bytebucket.org/shinyay/images-for-blog/raw/b0b80ae52a482a01a6cb1b1369734e38941864db/qiita/160908_dbcs-pdb/141.144.33.180_2016-09-06_08-54-22.png)

DBaaSモニター・コンソールのホーム画面が表示されます。
このトップ画面でDatabase Statusボックスで、**Open(R/W)**と表示されている箇所をクリックします。
![pdb10](https://bytebucket.org/shinyay/images-for-blog/raw/b0b80ae52a482a01a6cb1b1369734e38941864db/qiita/160908_dbcs-pdb/141.144.33.180_2016-09-06_08-54-53.png)

 ### 2.2. DBaaSモニター・コンソールへのアクセス
 Manage画面では、現在作成済みのプラガブル・データベース(PDB)の一覧及びステータスが表示されます。
 ここで、**+ Create PDB**をクリックします。
![pdb11](https://bytebucket.org/shinyay/images-for-blog/raw/b0b80ae52a482a01a6cb1b1369734e38941864db/qiita/160908_dbcs-pdb/141.144.33.180_2016-09-06_08-55-18.png)

## 3. PDBの作成
Create PDBダイアログで以下の情報を入力し、「OK」をクリックします。

|入力項目|説明|
|---|---|
| New PDB Name| 新しいプラガブル・データベースの名前を指定|
|Admin Username|PDB管理者のユーザー名|
|Admin Password|PDB管理者のパスワード|
|File Name Conversions|<オプション>PDBデータファイルにカスタム名と式を指定|
|Unlimited Storage|デフォルト：PDBには無制限のストレージ|
|Reuse Temp File|デフォルト：PDBには無制限の再利用一時ファイル|
|Create TDE Key|デフォルト：TDE鍵の作成が選択|
|Keystore Password|「Create TDE Key」を選択すると、「Keystore Password」フィールドが表示<br>サービス・インスタンスの作成時に指定されたパスワードを使用|

### 3.1. Create PDBダイアログ
必要な情報を入力して、OKをクリックします。
![pdb13](https://bytebucket.org/shinyay/images-for-blog/raw/b0b80ae52a482a01a6cb1b1369734e38941864db/qiita/160908_dbcs-pdb/141.144.33.180_2016-09-06_08-58-35.png)

### 3.2. PDB作成終了
PDBが作成できました。
![pdb14](https://bytebucket.org/shinyay/images-for-blog/raw/b0b80ae52a482a01a6cb1b1369734e38941864db/qiita/160908_dbcs-pdb/141.144.33.180_2016-09-06_08-59-31.png)

Manage画面にも追加したPDB2が表示されてます。
![pdb15](https://bytebucket.org/shinyay/images-for-blog/raw/b0b80ae52a482a01a6cb1b1369734e38941864db/qiita/160908_dbcs-pdb/141.144.33.180_2016-09-06_08-59-46.png)

# まとめ
プラガブル・データベースの作成をブラウザ上から単純な操作のみで実施できました。
SQLの知識も必要ないのでデータベース担当のエンジニアでなくても、必要に応じてデータベースを簡単に追加する事ができます。