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を中心としたプリセールスおよびフィールド技術を担当。 ...show more


■本記事の内容について
 本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。

■商標に関して
 ・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
 ・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
  文中の社名、商品名等は各社の商標または登録商標である場合があります。

関連している記事

  • Oracle Cloud
  • Oracle Database
2024.07.19

Oracle Cloud Shellで簡単にOCIのComputeへシリアルコンソール接続する方法!

Oracle Cloudで構築したComputeインスタンスは、ハードウェア等インフラ周りはオラクル社が管理しますが、OSやアプリケーションはお客様が管理する必要があります。今回は、事前準備不要で簡単に操作可能なCloud Shellによるコンソール接続をご紹介します。

  • Oracle Cloud
2024.07.19

【Oracle Cloud】Oracle Base Database Serviceにシリアル・コンソール接続する方法

これまでComputeインスタンス停止の自動化はOCI CLIやcronやタスクスケジューラ、ジョブ管理ツールからのCLI実行が必要でした。自動スケーリング機能がリリースされたことで任意の日時でComputeインスタンスの起動/停止が可能となりました。課金抑制にも繋がる詳細手順をご紹介します。

  • Oracle Cloud
2024.07.18

【Oracle Cloud】opcユーザー以外のSSH接続を許可する方法

Oracle Cloud上にComputeインスタンスやDBシステムを構築すると、システム管理者ユーザであるopcユーザが作成されますが、お客様の中にはopcユーザ以外からSSH接続を必要とするケースもあるかと思います。今回は、opcユーザ以外のユーザからSSH接続を行う方法をご紹介します。

ページの先頭へ戻る