Oracle Database@AzureでExaDB-XSをプロビジョニングしてみた

## はじめに
Oracle Database@AzureのExadata Database Service on Exascale Infrastructure (ExaDB-XS)をプロビジョニングしていきたいと思います。
個人で利用の方は、以下の投稿を参考にPAYG環境でOracle Database@Azureを使える状態にしておきましょう。

https://qiita.com/yunagash/items/1073a8a69cf4f0448960

また、今回はExaDB-XSの設定値の詳細は説明しないので、ご不明点はこちらの資料をご確認ください。

https://speakerdeck.com/oracle4engineer/exadb-xs-technical-detail

## 今回構成するアーキテクチャ
今回は、下記のようにOracle Database@AzureでExaDB-XSを構築していきます。
2025年4月12日時点では、ExaDB-XSがイタリア北部とブラジル南部のリージョンしか展開されていないので、今回はイタリア北部リージョンにプロビジョニングしていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/5bad87b2-e19b-4b69-a2c5-4709aa3630a2.png)

しかし、パブリックオファーのPAYG契約の場合、デフォルトで使えるリージョン数は最初にホームリージョンとして設定した1リージョンのみです。
他のリージョンを使う際は、OCI上でリージョン数のService Limit引き上げを行う必要があります。
Service Limitの引き上げを行う場合は以下の記事をご確認ください。

https://qiita.com/yunagash/items/60036ef2f585d8ab75bf

## 事前準備
ExaDB-XSをプロビジョニングしていくにあたり、事前に必要なリソースをAzure上で作成する必要があります。
* **Azure Virtual Network (VNet)**：ADBをデプロイするための仮想ネットワーク
* **サブネット**：ADBをデプロイするためのサブネット

こちらの記事を参考にVNetとサブネットを作成してみてください。
※注意点として、VNet作成時にExaDB-XSがリリースされているリージョンを選択する必要があります。以下の記事では東日本リージョンにしていますが、本記事ではイタリア北部リージョンを使っています。

https://qiita.com/yunagash/items/4e17c84c8af4335f8465

上記のVNetの設定項目と異なる点は、以下の画像の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/f7c0bb2a-adbb-40e0-acdd-439b4d3cf1b8.png)

## Oracle Database@AzureでのExaDB-XS構築手順
### ①ExaDB-XSの作成

Azureの画面上部の検索窓から「**Oracle Database**」と入力し、「**Oracle Database@Azure**」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/3e1c6091-9147-41ac-adf9-ed080ad6996d.png)

画面左側の「**Oracle Exadata Database Service on Exascale Infrastructure**」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/c9e20f05-4d5f-4173-aaec-22aeeaecbd7a.png)

「**Vm Clusters**」タブの「**作成**」をクリックします。
※2025年4月12日時点では、日本語表記だと上手く表示されなかったので、英語表記に変えて設定していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/4095e283-8a89-4ef2-9199-f861fcf07cee.png)

「**Basics**」タブで、以下項目を入力していきます。
今回は、以下の画像のように入力していますが、設定は自由に変えることができます。
入力が終わったら、「**Next**」をクリックします。
**Project details**
* **Subscription**：Oracle Database@AzurePAYGを連携させてあるサブスクリプションを選択。
* **Resource group**：VNetと同じリソース グループを選択。

**Exascale VM Cluster details**
* **Name**：Exascale VMクラスタの名前です。任意の名前を入力していきます。
* **Region**：Exascale VMクラスタをプロビジョニングしたいリージョンを選択します。今回は「**Italy North**」を選択。
ExaDB-XSがそのリージョンでリリースされているか、OCI側で対象のリージョンをサブスクライブしているかを事前にご確認ください。
リリース状況の確認は[こちら](https://apexadb.oracle.com/ords/r/dbexpert/multicloud-capabilities/multicloud-regions?session=100635909804746)、OCI側でのサブスクライブ法は[こちら](https://qiita.com/yunagash/items/60036ef2f585d8ab75bf)を参照ください。
* **Select an availability zone**：可用性ゾーン (AZ)を選択します。
* **Cluster name**：クラスタの名前を入力。任意の名前を入力していきます。
* **License type**：VMクラスタに使用するライセンスのタイプ。「**License included (ライセンス込み)**」または「**Bring your own license (BYOL：ライセンス持込み)**」のいずれかを選択。
* **Time zone**：デフォルトのタイムゾーンは「**UTC**」になっているので、別のタイムゾーンを選択する場合は、「**Select another time zone**」を選択。今回は、日本時間に合わせたいので、「**Select another time zone**」を選択していきます。
* **Region or country**：今回は「**Asia**」を選択。
* **Selected time zone**：今回は「**Tokyo**」を選択。
* **Oracle grid infrastructure release**: Oracle Grid Infrastructureリリースを選択。
* **Oracle grid infrastructure version**：Oracle Grid Infrastructureのバージョンを選択。

**Exascale Database Storage Vault**
* **Choose**：「**Create new vault**」か「Select existing vault」を選択。今回は、新規でVaultを作っていきます。
* **Vault name**：新しいExascaleのVaultの名前を入力。任意の名前を入力していきます。
* **Storage capacity for Databases**：必要なデータベースのストレージサイズ(GB)を入力。今回は、最小値の「300 GB」を選択します。ちなみに50 GBはシステムが利用します。
* **Add smart flash and memory cache options**：Smart Flash Cacheのサイズを入力できます。任意なので、今回はチェックを外しておきます。

**Security**
* **SSH public key source**：SSH鍵の設定を選択。今回は「**Generate new key pair**」を選択します。
* **Key pair name**：新しいキーペアの名前を入力。任意の名前を入力していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/b7c369e2-357a-4f9c-a561-b064dbb9cf44.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/7f88dd54-cc5a-49a0-8cd5-369fd80ada63.png)

続いて、「**Configuration**」タブで、以下項目を入力していきます。
今回は、以下の画像のように入力していますが、設定は自由に変えることができます。
入力が終わったら、「**Next**」をクリックします。

**VM Cluster allocation** (VMクラスタのリソースの設定)
* **Number of VMs in the Cluster**：クラスタに対して構成するVMの数を2から10の間で指定。
* **ECPUs enabled per VM**：VMクラスタに対して有効化するECPUコアの数を指定。最小は8 ECPU。選択する値は4の倍数にする必要があり。
* **Total ECPUs enabled across VM Cluster**： VMクラスタ全体で有効化するECPUの合計が自動入力されます。
* **Add reserve additional ECPU**：チェックを入れると、予約済ECPUを追加できます。今回はチェックを外してます。

**Memory**
* **Memory per VM (GB)**：各VMに割り当てられたメモリ量(GB)が自動入力されます。メモリは、1 ECPU当たり2.75 GBに基づいて計算されます。
* **Total memory across VM Cluster (GB)**：VMクラスタ全体の合計メモリ(GB)が自動入力されます。

**VM file system storage**
* **File system storage capacity for Databases (GB)**：VM当たりのファイル・システム・ストレージ容量(GB)を入力。VMあたり、280 GB～2 TBが利用可能。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/f0fc6272-819d-4ca6-84ce-4716f64368d0.png)

「**Networking**」タブですが、以下項目を入力していきます。
今回は、以下の画像のように入力していますが、設定は自由に変えることができます。
「**Diagnostics Collection**」、「**Consent**」、「**Tags**」のタブについては、スキップしても問題ないものなので、必要がない方は、「**Review + create**」をクリックしてしまいましょう。

* **Virtual network**：VMクラスタを作成するVNetを選択。
* **Client subnet**：VNetに作成した委任サブネットを選択。
* **Backup subnet CIDR**：Oracleによって自動的に割り当てられるので、空白のままで問題ありません。Backup subnetは、バックアップ保存先とのバックアップ情報の転送やData Guard構成時に使用されます。

**DNS**
* **Host name prefix**：任意のホスト名接頭辞を入力。Exadata VMクラスタのホスト名の最初の部分になります。
* **Host domain name**：VMクラスタのホスト・ドメイン名が自動入力されます。
* **Host and domain URL**：ホスト名とドメイン名を組み合せたデータベースの完全修飾ドメイン名(FQDN)が自動入力されます。

**Database Listener**
* **SCAN Listener Port (TCP/IP)**：1024から8999の範囲で、SCANリスナー・ポート(TCP/IP)を割り当てます。デフォルトは1521で、ポートを割り当てない場合はデフォルトのポートで作成されます。

**Network ingress rules**
* **Add additional network ingress rules**：イングレス・ルールを設定したい場合は、チェックを入れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/36af48b9-4ac4-423f-a475-d53095e5f055.png)

:::note info
**残りタブの補足** (基本飛ばして問題ありません。)
* **Diagnostics Collection**
デフォルトで全て有効になっており、これによりユーザーとOCIオペレーションは、ゲストVMの問題を迅速かつ効率的に特定、調査、追跡および解決できるようになります。
* **Consent**：サービス利用規約、プライバシー・ポリシー、アクセス権限の同意。
* **Tags**：タグをつける場合は設定する必要があります。
:::

内容を確認して問題がなければ、「**Create**」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/317a5ca7-65db-47d7-829d-470aab21f82b.png)

SSHのキーペアを新規に作成していたら、このような画面が出るので、「**Download + create**」を選択して、ダウンロードされたキーペアをなくさないように管理しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/85841e5f-347f-428a-ae17-c0482807d2b4.png)

ExaDB-XSのデプロイが完了するまで数時間待ちます。
私の場合は、2時間ほど待ちました。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/a5ebd106-455c-4a4a-b46f-ff0caef0ae72.png)

無事ExaDB-XSのプロビジョニングが完了しました！！
「**Go to resource group**」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/47d81328-7d32-431b-bdad-16f3e618f59f.png)

リソースグループの中に、SSHキーやvnicなど色々作成されていると思います。
今回作成したExascale VM Clusterを確認していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/e19aebd6-6f3b-447e-8aae-d3104d7bd0d3.png)

Exascale VM Clusterに関する情報が詳細に記載されていると思いますが、Azureポータル上ではDatabaseの作成やCPUなどのリソースの変更ができないため、それらの操作はOCI上で行う必要があります。
またADBと違い、Data Guardの構成もOCI上で行う必要があるようです。
実際にデータベースを作成していくため、「**Go to OCI**」をクリックし、OCIにログインしていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/4b7a8d6a-5165-427b-96d9-200b51c5fb1c.png)

OCIコンソールでExaDB-XSのCPUやストレージなどのリソースの増減をするには、「**VMクラスタのスケーリング**」から操作することが可能です。
VMクラスタを削除したい場合は、「**その他のアクション**」から「**終了**」を選択する必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/c1cb5eed-24ac-4f4d-90e6-2846c77e6163.png)

「**VMクラスタのスケーリング**」に関しては、有効ECPUを0にすることで、CPU部分の課金を止めることができます。しかし、ストレージなどのインフラ部分にかかる課金は止まりませんのでご注意ください。

### ②コンテナ・データベース (CDB)の作成
ここからは、ExaDB-XSのVM cluster上にデータベースを作成していきます。

OCIのExaDB-XSの画面で、下の方に行くと「**コンテナ・データベースの作成**」があるのでクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/d3c159ee-f9b4-49f7-9284-cf7eea9d637f.png)

内容に沿って以下のような情報を入力していきます。

**コンテナ・データベースの基本情報**
* **データベース名の指定**：任意のデータベース名を入力。
* **データベースの一意の名前の指定**：一意のデータベース名を指定できます。空欄でもOKですが勝手に決まります。
* **データベース・バージョンの選択**：使用可能なデータベース・バージョンを選択します。
* **PDB名の指定**：作成する最初のPDBの名前を入力。空欄でもOKですが勝手に決まります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/c72cb68b-6e58-4b7e-bdb6-ce7c00680898.png)

**データベース・ホームの指定**
* **データベース・ホームのソース**：既存または新規でデータベース・ホームを作成できます。今回は、新規で作成していきます。
* **データベース・ホームの表示名**：任意のデータベース・ホーム名を入力。
* **データベース・イメージの変更(オプション)**：データベースに使用するOracle Databaseバージョンを変更できます。デフォルトでは、最新のイメージが選択されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/575dad06-bdd5-4025-a724-fec78a164f25.png)

**管理者資格証明の作成**
ここではsysユーザーのパスワードを入力していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/458f3784-ef9f-46ef-9af7-e34f0c3b0990.png)

**データベース・バックアップ**
* **自動バックアップの有効化**：チェックを外した場合は、データベースのバックアップは行われません。
* **バックアップの保存先**：オブジェクト・ストレージかOracle Database Autonomous Recovery Serviceかのどちらかを選択できます。

あとの項目に関しては、バックアップの要件によって変更していきましょう。

また「**拡張オプション**」に関しては、文字セットやデータベース・キーの管理、タグの設定が可能なので、必要な方は設定しましょう。

最後に、「**コンテナ・データベースの作成**」をクリックするとCDBとPDBが作成されていきます。
私の場合は、作成されるまでに2時間ほどかかりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/e299fd25-0dd6-479c-9273-d9a9fc65782a.png)

無事、PDBまで作成されました！！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3072173/ae293d7a-304c-49f4-8062-4f0546a4d1d9.png)


## まとめ
今回は、Oracle Database@AzureのExaDB-XSをプロビジョニングしていきました。
他にもOracleのマルチクラウドに関する記事を発信しているので、以下の関連記事も合わせてご参考ください。

## 関連記事
:::note info
**Oracle Database@Azureに関して**
* [Oracle Database@Azureについてまとめてみた](https://qiita.com/yunagash/items/e603ef227928824921a3)
* [Oracle Database@AzureをPAYGで利用する手順](https://qiita.com/yunagash/items/1073a8a69cf4f0448960)
* [Oracle Database@AzureでADBをプロビジョニングしてみた](https://qiita.com/yunagash/items/4e17c84c8af4335f8465)
* [Oracle Database@AzureでADBのDatabase Actionsに接続してみた](https://qiita.com/yunagash/items/27001de1a602a59d9225)
* [Oracle Database@AzureのADBへData Pumpで移行してみた](https://qiita.com/yunagash/items/037d00df68d8f17fc144)
* [Oracle Database@Azureでのリージョン数のService Limit引き上げ方法](https://qiita.com/yunagash/items/60036ef2f585d8ab75bf)
* [Oracle Database@AzureでExaDB-XSをプロビジョニングしてみた](https://qiita.com/yunagash/items/cd848c4a9b585be561e6)
* [Oracle Database@AzureのExaDB-XSへData Pumpで移行してみた](https://qiita.com/yunagash/items/e8886945aa33e249132d)
:::

:::note info
**Oracle Database@AWSに関して**
* [Oracle Database@AWSについてまとめてみた](https://qiita.com/yunagash/items/5f6565db017e20d20a34)
:::

:::note info
**Oracle Database@Googleに関して**
* [Oracle Database@Google Cloudについてまとめてみた](https://qiita.com/yunagash/items/478e9a10f80ebcc45804)
* [Oracle Database@Google CloudでADBをプロビジョニングしてみた](https://qiita.com/yunagash/items/e44bde42f1bcebacceba)
* [Oracle Database@Google CloudでADBのDatabase Actionsに接続してみた](https://qiita.com/yunagash/items/c9443e866bbaa15d4ce8)
* [Oracle Database@Google CloudのADBでコンソール上でできる操作をまとめてみた](https://qiita.com/yunagash/items/5eb02f8482c5724582dd)
* [Oracle Database@Google CloudでCloud DNSの課金が発生する理由](https://qiita.com/yunagash/items/899b05803aae4103c042)
:::


## 編集履歴
* 2025/04/13 記事公開