Database Support Blog

  • Oracle Cloud
2021.01.19

Oracle Cloud上にコマンドラインでRACを構築する方法

「OCI CLI」を利用すると、管理コンソールを利用せずにOracle Cloud上にサービス・インスタンスを作成することも可能です。

今回は「OCI CLI」を利用して、RAC構成のDatabase Systemのサービス・インスタンスを作成する方法をご紹介します。
オンプレミスでRAC構成のOracleDBを構築するには、サーバ間の疎通設定や共有ストレージ設定などのHW設定、Oracle Databaseに加えてOracle Grid Infrastructure の構成検討など準備だけでも1ヵ月程度はかかります。

Oracle Cloudであれば、RAC構成のデータベース環境を数時間で利用開始できます。
また、シングル構成のコマンドはRAC構成独自のオプションを削除するだけです。
RAC構成のコマンドを理解することで、2つの構成のDB作成コマンドをマスターすることができます。

※前回までの記事※
OCI CLIを利用してコマンドラインからOCIを操作する方法
OCI CLIでCompute VMとDatabase VMを操作する方法


Database VM サービスインスタンス作成

Database Systemのサービス・インスタンスをOCL CLIで作成します。
作成から状況確認まで全てOCI CLIで実施可能です。

事前準備

作成コマンドを実行するために、以下の情報を確認・検討します。

項目 詳細、設定値
パスワード ADMIN(DBのSYSやSYSTEMユーザ)のパスワードを指定します。
アイデンティティ・ドメイン名 oci iam availability-domain list」でインスタンスを作成する対象のアイデンティティ・ドメイン名を確認できます。
※OCI CLI設定時に選択したリージョンの情報が出力されます。
コンパートメントのOCID oci iam compartment list」でインスタンスを作成する対象のコンパートメントのOCIDが確認できます。
サブネットのOCID oci network subnet list --compartment-id <コンパートメントのOCID> --vcn-id <VCNのOCID>」でインスタンスを作成する対象のサブネットのOCIDが確認できます。
CPU数 CPU数を指定します。
DBエディション RAC構成の場合は”ENTERPRISE_EDITION_EXTREME_PERFORMANCE”を指定します。
DB名 データベース名を指定します。
DBバージョン バージョンを指定します。
ホスト名 ホスト名を入力します。
シェイプ RAC構成の場合は、2 OCPU以上のシェイプを選択します。
公開鍵名 コマンド実行環境のカレントディレクトリにに配置しておく必要があります。
ノード数 2と入力します。

上述の項目以外も指定することは可能です。詳細はOCI CLIコマンドリファレンス(DB SYSTEM作成) をご確認ください。


サービス・インスタンス作成

確認・検討した値を用いてサービス・インスタンスを作成します。

作成

サービス・インスタンスの作成を開始します。
※プロンプトはすぐに戻ってきますが、起動処理は実行中です。
 (プロンプトが戻ってくる=作成済ではありません。)

※コマンド構文では最低限必要な構文を記載しています。
 実行例では、PDB名やライセンス情報も指定してコマンドを実行する例を記載しています。

コマンド構文

oci db system launch --availability-domain "<アイデンティティ・ドメイン名>" --compartment-id <コンパートメントのOCID> --subnet-id <サブネットのOCID> --shape "<シェイプ>" --database-edition "<DBエディション>" --admin-password "<ADMINパスワード>" --db-version <DBバージョン> --hostname "<ホスト名>" --cpu-core-count <CPU数> --node-count <ノード数> --db-name "<DB名>" --ssh-authorized-keys-file <ファイル名>


■実行例

 
 $ oci db system launch --availability-domain "lihX:AP-TOKYO-1-AD-1" --compartment-id ocid1.compartment.oc1..aaaaaaaakaqsxx2qtsdba26usi290jkkslairn4yk52nexkjpgn73f72t62a --subnet-id ocid1.subnet.oc1.ap-tokyo-1.aaaaaaaaqcht3ojmzrj333ezhdky3xxxxxxxxx7777777777777777yyygqa --shape  "VM.Standard2.2" --initial-data-storage-size-in-gb 256 --database-edition "ENTERPRISE_EDITION_EXTREME_PERFORMANCE" --admin-password "PPassw0d--2020" --db-version 19.7.0.0 --hostname "cli-instance-rac" --cpu-core-count 2 --db-name "ORCL" --pdb-name "PDB1" --node-count 2 --ssh-authorized-keys-file id_rsa_cli.pub --license-model "BRING_YOUR_OWN_LICENSE"
 {
   "data": {
     "availability-domain": "lihX:AP-TOKYO-1-AD-1", -- アイデンティティ・ドメイン名
     "backup-network-nsg-ids": null,
     "backup-subnet-id": null,
     "cluster-name": null,
     "compartment-id": "ocid1.compartment.oc1..aaaaaaaakaqsxx2qtsdba26usi290jkkslairn4yk52nexkjpgn73f72t62a", 
 --コンパートメントのOCID
     "cpu-core-count": 4, -- CPU数
     "data-storage-percentage": 80,
     "data-storage-size-in-gbs": 256,
     "database-edition": "ENTERPRISE_EDITION_EXTREME_PERFORMANCE", -- DBエディション
     "db-system-options": {
       "storage-management": "ASM"
     },
     "defined-tags": {
       "Oracle-Tags": {
         "CreatedBy": "oracleidentitycloudservice/sample@test.co.jp",
         "CreatedOn": "2020-05-17T05:51:56.454Z"
       }
     },
     "disk-redundancy": "HIGH",
     "display-name": "dbsystem20200517055156", -- コンソールで表示されるサービス・インスタンス名
     "domain": "clisub1.clivcn.oraclevcn.com",
     "fault-domains": [
       "FAULT-DOMAIN-1",
       "FAULT-DOMAIN-3"
     ],
     "freeform-tags": {},
     "hostname": "cli-instance-rac", -- ホスト名
     "id": "ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljrwmm5uhj33jl56jvwh7c4iabcdefghi6666dddd99998888prunyq",
     "iorm-config-cache": null,
     "last-maintenance-run-id": null,
     "last-patch-history-entry-id": null,
     "license-model": "BRING_YOUR_OWN_LICENSE",
     "lifecycle-details": null,
     "lifecycle-state": "PROVISIONING",
     "listener-port": 1521,
     "maintenance-window": null,
     "next-maintenance-run-id": null,
     "node-count": 2,
     "nsg-ids": null,
     "reco-storage-size-in-gb": 256,
     "scan-dns-record-id": null,
     "scan-ip-ids": null,
     "shape": "VM.Standard2.2", -- シェイプ
     "sparse-diskgroup": null,
     "ssh-public-keys": [
       "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuGqG9b+IlOpZ88pJ4LlpTpn6eHAE9m4uaYoeQEjrSTG6YOc0o9L3O10Nt/VqdTwb2ZmK5DCXDPGF/nEyoLbVg14oeSeiQ/uk3s7V1XhFdCLXuimkZ/K6ylPQ2/knuc2bDyHXCpU9b1UU0rj7B6ZTOhBBawMhwfj54MSDJmfRTOsRlmTGY7ujste0LXzxbn7t1oYsNDRITETQOGpfsuGebWs90i/80L53qIG45CzH74adym41ttoXvbSkow0LKQd/R8Uhe+QpWarwPvKUJSrzgWNi371stGBDLpw90QpUSRt/dXEmo6EhK5wTg3WdArN1Ptc2w4dUO3+j4BU3U8C/Gw=="
     ],
     "subnet-id": "ocid1.subnet.oc1.ap-tokyo-1.aaaaaaaaqcht3ojmzrj333ezhdky3xxxxxxxxx7777777777777777yyygqa",
     "time-created": "2020-05-17T05:51:56.977000+00:00",
     "time-zone": "UTC",
     "version": null,
     "vip-ids": null
   },
   "etag": "9dd7c9ed",
   "opc-work-request-id": "ocid1.coreservicesworkrequest.oc1.ap-tokyo-1.abxhiljroa2nqga7jnw7uwooaxmxxxie45zhpflxaocgjgjqnjgzjomd6jrq"
  -- 進捗状況確認コマンドで利用するリクエストID
 }
 
 

状態確認

サービス・インスタンス作成の進捗状態は、作成コマンド実行時に出力される” opc-work-request-id ”の情報を利用して利用してコマンドで確認します。

コマンド構文

oci work-requests work-request get --work-request-id "<opc-work-request-id>"


■実行例:処理中

 
 $ oci work-requests work-request get --work-request-id "ocid1.coreservicesworkrequest.oc1.ap-tokyo-1.abxhiljroa2nqga7jnw7uwooaxmxxxie45zhpflxaocgjgjqnjgzjomd6jrq"
 {
   "data": {
     "compartment-id": "ocid1.compartment.oc1..aaaaaaaakaqsxx2qtsdba26usi290jkkslairn4yk52nexkjpgn73f72t62a",
     "id": "ocid1.coreservicesworkrequest.oc1.ap-tokyo-1.abxhiljroa2nqga7jnw7uwooaxmxxxie45zhpflxaocgjgjqnjgzjomd6jrq",
     "operation-type": "Create DB System",
     "percent-complete": 42.0, -- 進捗状況のパーセンテージ
     "resources": [
       {
         "action-type": "IN_PROGRESS",
         "entity-type": "database",
         "entity-uri": "/20160918/databases/ocid1.database.oc1.ap-tokyo-1.abxhiljroev2mhiulqkfzu7kjyysysyhhhhhhhhhh11111ylcxu7shqxbaba",
         "identifier": "ocid1.database.oc1.ap-tokyo-1.abxhiljroev2mhiulqkfzu7kjyysysyhhhhhhhhhh11111ylcxu7shqxbaba"
       },
       {
         "action-type": "IN_PROGRESS",
         "entity-type": "dbHome",
         "entity-uri": "/20160918/dbHomes/ocid1.dbhome.oc1.ap-tokyo-1.abxhiljro4nrv42cjwopm2ze4u7ko2puwqnex6ke5555555ffffffffxs6ua",
         "identifier": "ocid1.dbhome.oc1.ap-tokyo-1.abxhiljro4nrv42cjwopm2ze4u7ko2puwqnex6ke5555555ffffffffxs6ua"
       },
       {
         "action-type": "IN_PROGRESS",
         "entity-type": "node",
         "entity-uri": "/20160918/dbNodes/ocid1.dbnode.oc1.ap-tokyo-1.abxhiljr6vdaqwom3dqshuvvprqwt6nkwq73aqs3ywck6toa626yxwk7xyxq",
         "identifier": "ocid1.dbnode.oc1.ap-tokyo-1.abxhiljr6vdaqwom3dqshuvvprqwt6nkwq73aqs3ywck6toa626yxwk7xyxq"
       },
       {
         "action-type": "IN_PROGRESS",
         "entity-type": "dbSystem",
         "entity-uri": "/20160918/dbSystems/ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljrwmm5uhj33jl56jvwh7c4iabcdefghi6666dddd99998888prunyq",
         "identifier": "ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljrwmm5uhj33jl56jvwh7c4iabcdefghi6666dddd99998888prunyq"
       },
       {
         "action-type": "IN_PROGRESS",
         "entity-type": "node",
         "entity-uri": "/20160918/dbNodes/ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrpdpjkz3rl6ukhskdyetbnxgs872hs64bhjaoi0sjrybshjdsohla",
         "identifier": "ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrpdpjkz3rl6ukhskdyetbnxgs872hs64bhjaoi0sjrybshjdsohla"
       }
     ],
     "status": "IN_PROGRESS", -- 進捗状況:実行中
     "time-accepted": "2020-05-17T05:51:57.136000+00:00",
     "time-finished": null,
     "time-started": "2020-05-17T05:52:09.614000+00:00"
   }
 }
 
 

■実行例:完了

 
 
 $ oci work-requests work-request get --work-request-id "ocid1.coreservicesworkrequest.oc1.ap-tokyo-1.abxhiljroa2nqga7jnw7uwooaxmxxxie45zhpflxaocgjgjqnjgzjomd6jrq"
 {
   "data": {
     "compartment-id": "ocid1.compartment.oc1..aaaaaaaakaqsxx2qtsdba26usi290jkkslairn4yk52nexkjpgn73f72t62a",
     "id": "ocid1.coreservicesworkrequest.oc1.ap-tokyo-1.abxhiljroa2nqga7jnw7uwooaxmxxxie45zhpflxaocgjgjqnjgzjomd6jrq",
     "operation-type": "Create DB System",
     "percent-complete": 100.0, -- 進捗状況のパーセンテージ
     "resources": [
       {
         "action-type": "CREATED",
         "entity-type": "database",
         "entity-uri": "/20160918/databases/ocid1.database.oc1.ap-tokyo-1.abxhiljroev2mhiulqkfzu7kjyysysyhhhhhhhhhh11111ylcxu7shqxbaba",
         "identifier": "ocid1.database.oc1.ap-tokyo-1.abxhiljroev2mhiulqkfzu7kjyysysyhhhhhhhhhh11111ylcxu7shqxbaba"
       },
       {
         "action-type": "CREATED",
         "entity-type": "dbHome",
         "entity-uri": "/20160918/dbHomes/ocid1.dbhome.oc1.ap-tokyo-1.abxhiljro4nrv42cjwopm2ze4u7ko2puwqnex6ke5555555ffffffffxs6ua",
         "identifier": "ocid1.dbhome.oc1.ap-tokyo-1.abxhiljro4nrv42cjwopm2ze4u7ko2puwqnex6ke5555555ffffffffxs6ua"
       },
       {
         "action-type": "CREATED",
         "entity-type": "node",
         "entity-uri": "/20160918/dbNodes/ocid1.dbnode.oc1.ap-tokyo-1.abxhiljr6vdaqwom3dqshuvvprqwt6nkwq73aqs3ywck6toa626yxwk7xyxq",
         "identifier": "ocid1.dbnode.oc1.ap-tokyo-1.abxhiljr6vdaqwom3dqshuvvprqwt6nkwq73aqs3ywck6toa626yxwk7xyxq"
       },
       {
         "action-type": "CREATED",
         "entity-type": "dbSystem",
         "entity-uri": "/20160918/dbSystems/ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljrwmm5uhj33jl56jvwh7c4iabcdefghi6666dddd99998888prunyq",
         "identifier": "ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljrwmm5uhj33jl56jvwh7c4iabcdefghi6666dddd99998888prunyq"
       },
       {
         "action-type": "CREATED",
         "entity-type": "node",
         "entity-uri": "/20160918/dbNodes/ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrpdpjkz3rl6ukhskdyetbnxgs872hs64bhjaoi0sjrybshjdsohla",
         "identifier": "ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrpdpjkz3rl6ukhskdyetbnxgs872hs64bhjaoi0sjrybshjdsohla"
       }
     ],
     "status": "SUCCEEDED", -- 進捗状況:完了
     "time-accepted": "2020-05-17T05:51:57.136000+00:00",
     "time-finished": "2020-05-17T07:13:48.032000+00:00", -- 完了時間
     "time-started": "2020-05-17T05:52:09.614000+00:00"
   }
 }
 
 
 

管理コンソールより確認したい場合は、以下の手順となります。

管理コンソールの「メニュー >> ベア・メタル、VMおよびExadata >> DBシステム >> 」より「サービス・インスタンス名」を選択します。処理実行中は”プロビジョニング中”と表示されます。

DBシステムの詳細画面の左側にあるリソースメニューより”作業リクエスト”を選択します。
処理中はステータスが”In Progress”に変わります。

処理が完了すると管理コンソールの状態は”使用可能”となり、ステータスが”Succeeded”に変わります。

Tips

作成が完了したら、以下のコマンドで作成した対象のコンパートメント内に作成されたデータベースの情報が確認できます。

コマンド構文

oci db system list -- compartment-id <コンパートメントのOCID>


■実行例:処理中

 
 
 $ oci db system list --compartment-id ocid1.compartment.oc1..aaaaaaaakaqsxx2qtsdba26usi290jkkslairn4yk52nexkjpgn73f72t62a
 {
   "data": [
     {
       "availability-domain": "lihX:AP-TOKYO-1-AD-1",
       "backup-network-nsg-ids": null,
       "backup-subnet-id": null,
       "cluster-name": null,
       "compartment-id": "ocid1.compartment.oc1..aaaaaaaakaqsxx2qtsdba26usi290jkkslairn4yk52nexkjpgn73f72t62a",
       "cpu-core-count": 4,
       "data-storage-percentage": 80,
       "data-storage-size-in-gbs": 256,
       "database-edition": "ENTERPRISE_EDITION_EXTREME_PERFORMANCE",
       "db-system-options": {
         "storage-management": "ASM"
       },
       "defined-tags": {
         "Oracle-Tags": {
           "CreatedBy": "oracleidentitycloudservice/sample@test.co.jp",
           "CreatedOn": "2020-05-17T05:51:56.454Z"
         }
       },
       "disk-redundancy": "HIGH",
       "display-name": "dbsystem20200517055156",
       "domain": "clisub1.clivcn.oraclevcn.com",
       "fault-domains": [
         "FAULT-DOMAIN-1",
         "FAULT-DOMAIN-3"
       ],
       "freeform-tags": {},
       "hostname": "cli-instance-rac",
       "id": "ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljrwmm5uhj33jl56jvwh7c4iabcdefghi6666dddd99998888prunyq",
       "last-maintenance-run-id": null,
       "last-patch-history-entry-id": null,
       "license-model": "BRING_YOUR_OWN_LICENSE",
       "lifecycle-details": null,
       "lifecycle-state": "AVAILABLE",
       "listener-port": 1521,
       "maintenance-window": null,
       "next-maintenance-run-id": null,
       "node-count": 2,
       "nsg-ids": null,
       "reco-storage-size-in-gb": 256,
       "scan-dns-record-id": "ocid1.vcndnsrecord.oc1.ap-tokyo-1.abxhiljrsxou3ssychok3w643xudxpoamqx7uhwdpeqgvmr7emazsbjltxdq",
       "scan-ip-ids": [
         "ocid1.privateip.oc1.ap-tokyo-1.aaaaaaaa35nmx7frv37lg64qs42ikw46ct6mf2osxjw3v64pl5azwjzogzfq",
         "ocid1.privateip.oc1.ap-tokyo-1.aaaaaaaasdqb2hoqypmambxypu47huvtrnawacmdnhz3437xk2c56rnb3dvq",
         "ocid1.privateip.oc1.ap-tokyo-1.aaaaaaaaflfco7wfc7w6hyv6vvwbzadconhlv6zav6x3bw75gnjgb5253gxq"
       ],
       "shape": "VM.Standard2.2",
       "sparse-diskgroup": null,
       "ssh-public-keys": [
       "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuGqG9b+IlOpZ88pJ4LlpTpn6eHAE9m4uaYoeQEjrSTG6YOc0o9L3O10Nt/VqdTwb2ZmK5DCXDPGF/nEyoLbVg14oeSeiQ/uk3s7V1XhFdCLXuimkZ/K6ylPQ2/knuc2bDyHXCpU9b1UU0rj7B6ZTOhBBawMhwfj54MSDJmfRTOsRlmTGY7ujste0LXzxbn7t1oYsNDRITETQOGpfsuGebWs90i/80L53qIG45CzH74adym41ttoXvbSkow0LKQd/R8Uhe+QpWarwPvKUJSrzgWNi371stGBDLpw90QpUSRt/dXEmo6EhK5wTg3WdArN1Ptc2w4dUO3+j4BU3U8C/Gw=="
       ],
       "subnet-id": "ocid1.subnet.oc1.ap-tokyo-1.aaaaaaaaqcht3ojmzrj333ezhdky3xxxxxxxxx7777777777777777yyygqa",
       "time-created": "2020-05-17T05:51:56.977000+00:00",
       "time-zone": "UTC",
       "version": "19.7.0.0.0",
       "vip-ids": [
         "ocid1.privateip.oc1.ap-tokyo-1.aaaaaaaabvl43xec3wfmv7dcm3hzezmv4lvkhtkdcw7loynj2uvhztmgp55q",
         "ocid1.privateip.oc1.ap-tokyo-1.aaaaaaaavnpepptoovjpmoqt4bs3lvcenqjed2fv2rfqmxs6yuetryf2c6yq"
       ]
     }
   ]
 }
 
 
 

まとめ

OCI CLIコマンドを利用すると、サービス・インスタンスの操作だけでなく作成することもできます。

コマンドのパターンを用意しておくことで、必要な時にコマンド一つで対応可能です。
サービス・インスタンスの命名規則が決まっている場合など、1つ1つ管理コンソールに項目を選択・入力すると誤ってしまうかもしれません。
事前にコマンドベースでパターンを用意しておくことで誤りを減らすことができるのではないでしょうか。

今後も引き続き、「OCI CLIコマンドの整形方法」や「コマンドでサービスを作成する方法」をお伝えしたいと思います。
※参考情報:OCI CLIコマンドリファレンス(DB SYSTEM作成)


執筆者情報

いとう さやね プロフィール画像

2012年アシスト入社後、Oracle Databaseフィールドエンジニアに従事。
2017年からはOracle Cloudを中心としたプリセールスおよびフィールド技術を担当。


■商標に関して
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。

関連している記事

  • Oracle Cloud
2021.02.18

オンプレミス環境とクラウドを接続してみよう!~1.オフィス環境準備~

クラウドを使い始めたいけど、何からやれば良いか悩む方も多いと思います。そんな方への情報収集のネタとして、アシストの社内検証環境でオンプレミス環境とOracle Cloudとを接続するために実施した経験を共有します。第1回目は必要となる設備の準備にフォーカスしてご紹介します。

  • Oracle Cloud
2021.02.12

IDCSユーザーでOCIリソースを扱うには?

OCIには、IAMユーザーとIDCSユーザーの2種類のOracle Cloudのユーザーがいます。IDCSユーザーでOracle Cloudのリソースを扱うには、IAMのポリシーをアタッチする必要があります。この記事では一連の設定手順をご紹介します。

  • Oracle Cloud
2021.02.04

Oracle Cloudの課金状況を把握しよう

Oracle Cloudは従量課金制となっており、使った分だけ課金されます。「今月分の課金っていくらだろう」「どのサービスでいくらかかったんだろう」という疑問が出てくるかと思います。そのような時の確認方法をご紹介します。

ページの先頭へ戻る