>> 連載トップページに戻る

 

もしもみなみんがDBをクラウドで動かしてみたら

第2回: Oracle Database Cloud Service の中身をみてみよう


著者紹介


南野 英梨子 (みなみの えりこ)

日本オラクルに新卒で入社。以来、Oracle Databaseの製品担当として、主にOracle Maximum Availability Architecture(MAA)に関わる機能や製品を担当。特に好きなのは、Oracle Active Data Guard や Oracle GoldenGate。Oracle Database の魅力やベストプラクティス、そしてそれを簡単に使えるOracle Cloudの魅力をお客様に伝えようと、日々邁進中。


第2回: Oracle Database Cloud Service の中身をみてみよう

(本内容は、2017/10時点(DBCS 17.3.5)の情報になります)


こんにちは、みなみんです。今回は、第1回で作成した Oracle Database Cloud Service Instance が、実際にどのような構成になっているのかを見てみましょう。インスタンス情報の確認方法なども、あわせてご紹介いたします。

今回は第2回なので、Oracle CloudのPlatform as a Serviceで提供される、Oracle Database関連の様々なサービスについて簡単に紹介した後、実際にサービスを作成してみます。

■ 1. Database Cloud Service Instanceの構成ってどうなっているの?

Oracle Database Cloud Service (DBCS) は、コンピュート(Oracle Compute Instance)、ストレージ(Oracle Compute Block Storage)やネットワークが構成済の環境に、Oracle Database がインストール・構成済みで、さらにそれらを簡単に管理/利用することが可能な各種ツールが入っています。

img-1

これらの各コンポーネントは、Oracle Compute Cloud Serviceのオーケストレーション機能によって関連付けが定義されています。これにより、関連付けされている複数コンポーネントの管理が一括で行えます。例えば、DBCSインスタンスの削除時には関連付けされているコンポーネントがまとめて削除されたり、起動時には関連付けに従った順番で起動されているのは、この定義づけが行われているからなのです。

このようにInfrastructure as a Service(IaaS) のOracle Compute Cloud Serviceの機能を利用しながらも、同じような環境を構成しようとした場合に必要となるコンポーネントの作成や各種設定作業が不要で、さらに最初からサービスにあった便利なツールも使えるというのが、Platform as a Service(PaaS) のDBCS の良さですよね。

ちなみに、私が初めてIaaS で同じような環境を作成してみた時は、関連付けや作成の順番等を間違えてしまったり、構築に時間がかかってしまったので、数クリックで図1の環境が出来上がったことに感動しました。「とにかくすぐにデータベースを触りたい!」という私にとっては、とっても素敵な環境だといえます。逆に、自分で設定ができるという柔軟性の高さが、IaaSのいいところですね。

■ 2. Database Cloud Service Instanceの構成を確認したい

利用しているDBCS のサービス・インスタンスがどのような構成で作成されているのか、第一回で作成した環境を見てみましょう。

まずは、DBCSのサービス・コンソールに入って、サービス一覧をみてみると、
DBCSの『サービス名』、データベースの『バージョン』、『エディション』、『作成日』、『OCPU』、『メモリ』、『ストレージ』の情報がわかりますね。複数サービス・インスタンスがあれば、縦列して表示されるので、これらの情報を一画面で確認可能です。

img-2

もう少し詳細な情報がみたい、そんなときには『サービス名』(ここではDB122)をクリックしてみましょう。すると、Service Overview ページで各サービス・インスタンスの情報が確認できます。

img-3

①にはデータベース関連の情報、②にはリソースの情報、③はインスタンス全体のリソースの情報が表示されます。

②と③がReal Application Clusters(RAC)やData Guard(DG)の環境になったときにどのように表示されるのか、楽しみですね。今後、DBCSのRACやDGに関しても取り上げる回を予定しているので、その際に触れていきます。

このように画面で確認することも可能ですが、せっかくなのでDBCSでバンドルされているREST APIを使った確認もしてみましょう!

DBCSのエンドポイントに対して、curlコマンドでHTTPリクエストを発行しますが、まずその際に必要となるエンドポイントをサービスのダッシュボードから確認します。

img-4

・サービス・インスタンスの表示

$ curl --include --request GET --user <ユーザー名>:<パスワード> --header "X-ID-TENANT-NAME:\
<Identity Domain名>" <エンドポイント>/paas/service/dbcs/api/v1.1/instances/\
<Identity Domain名>/<サービス名>

参考) マニュアル Oracle Database Cloud ServiceのREST API 『サービス・インスタンスの表示』

上記のコマンドで、必要な情報を入れてリクエストを発行すると、下記の様な結果が返ってきます。サービス・コンソールのUIから確認できる項目をはじめ、いくつか赤字で説明を入れておきます。

{
   "service_name": "DB122", --サービス名
   "version": "12.2.0.1", --バージョン(Oracle Database)
   "status": "Running", --ステータス(DBCSインスタンスの状態)
   "description": "DB122",
   "identity_domain": "<Identity Domain>",
   "creation_time": "2017-09-07T02:11:58.884+0000",
   "last_modified_time": "2017-09-07T02:11:58.859+0000",
   "created_by": "<user>", --DBCSインスタンス作成したユーザー
   "sm_plugin_version": "17.3.5-539",
   "tools_version": "17.3.5-539",
   "backup_supported_version": "16.2.3",
   "service_uri": 
"https:\/\/dbaas.oraclecloud.com:443\/paas\/service\/dbcs\/api\/v1.1\/instances\/xxx\/DB122",
   "database_id": "0",
   "num_nodes": 1, --コンピュート数
   "level": "PAAS",
   "edition": "EE_EP", --エディション
   "shape": "oc3", --シェイプ(OCPU数とメモリ・サイズの組み合わせ)
   "use_high_performance_storage": false,
   "subscriptionType": "MONTHLY",
   "creation_job_id": "15240479",
   "num_ip_reservations": 1,
   "backup_destination": "BOTH", --バックアップの保存先
   "cloud_storage_container": "Storage-xxxx\/DB122", --クラウド・ストレージ・コンテナ
   "failover_database": false,
   "rac_database": false, --RAC構成かどうか
   "byol": false,
   "current_version": "12.2.0.1.0", --実際のOracle Databaseのバージョン
   "sid": "ORCL", --コンテナ名(SID)
   "pdbName": "PDB1", --デフォルトで作成されたPDB名
   "demoPdb": "",
   "listenerPort": 1521, --SQL*Netポート(リスナー用)
   "timezone": "UTC", --タイムゾーン
   "em_url": "https:\/\/ xxx.xxx.xxx.xxx:5500\/em",
   "connect_descriptor": "DB122:1521\/PDB1.xxx.xxx.xxx.xxx",
   "connect_descriptor_with_public_ip": " xxx.xxx.xxx.xxx:1521\/PDB1.xxx.xxx.xxx.xxx",
   "apex_url": "https:\/\/xxx.xxx.xxx.xxx\/apex\/pdb1\/",
   "glassfish_url":    "",
   "dbaasmonitor_url": "https:\/\/xxx.xxx.xxx.xxx\/dbaas_monitor",
   "charset": "AL32UTF8", --文字セット
   "ncharset": "AL16UTF16", --各国語文字セット
   "is_clone": false,
   "clone_supported_version": "16.3.1",
   "service_associations": [],
   "compute_site_name": "xxxxx",
   "jaas_instances_using_service": "" 

このように、コマンドでも情報を確認することが可能で、サービス・コンソールのUI上で確認できることよりも、より多くの情報がわかります。

今回のような環境情報の確認といった作業だけではなく、REST APIは作成・削除やパッチ適用など、サービス・コンソールから行えることの一部が実行可能です。そのため、例えば

  • 複数のサービス・インスタンスを簡単に作成したい
  • サービス・インスタンス起動・停止を決まった時間に実行されるように自動化したい
  • サービス・インスタンスの状態(起動・停止)を監視したい

というようなケースで活用できるので、シンプルな運用・管理を行うことができますね。
ちなみに、私はテスト環境を複数作りたい時や、ある時間帯だけスケールアップしたい(負荷掛けテストの前後でスケールアップ/ダウン等)時などに活用しています。

■3. Database Cloud Service Instance の中身をみてみよう

さて、DBCSインスタンスの中身がどうなっているか、実際に環境にはいってみてみましょう。
まずは、インスタンス(仮想マシン)にSSHアクセスするには、サービス作成時に登録されたSSH秘密鍵を利用して、opcユーザーもしくはoracleユーザーにログインしてください。セキュリティ観点から、rootには直接ログインできないようにしています。

ここで、まずはユーザーについて少し説明します。
DBCSのSingle環境では、デフォルトで3つのOSユーザーが用意されています。

ユーザー名 説明
root システム管理ユーザー。直接アクセスすることは不可。ユーザー・アクセスを必要とする操作を実行する場合、opcユーザーで"sudo -s"を実行。
opc システム管理者ユーザー。sudo コマンドでroorユーザーのアクセス権を得られる。
oracle Oracle Database のインストールユーザー。

参考) マニュアル Oracle Database Cloud Serviceの使用 『Linuxユーザー・アカウント』

OSにも入れる、sudoでrootユーザーにもなれて、データベースのシステム権限も制限されてない(SYSDBAシステム権限が利用可能)のが、DBCSの一つの特徴かと思います。DBAとしては、ログを直接見たり設定を変更したりなど、データベースを丸ごと使えるならばやりたいことですよね。DBCSは出来上がったデータベースに対して、実際の用途に合った設定も出来るのです。

さて、ファイル・システム・レイアウトはどうなっているのでしょうか。

[opc@DB122 ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_main-lv_root
                       19G   12G  5.8G  67% /
tmpfs                 3.7G     0  3.7G   0% /dev/shm
/dev/xvdb1            477M   69M  379M  16% /boot
/dev/xvde1             59G   20G   37G  35% /u01  --Oracleのソフトウェアバイナリ
/dev/mapper/dataVolGroup-lvol0
                      25G  5.3G   19G  23% /u02     --DATA(データファイル等)
/dev/mapper/fraVolGroup-lvol0
                      42G   30G  9.9G  75% /u03     --FRA(バックアップファイル等)
/dev/mapper/redoVolGroup-lvol0
                      26G  3.3G   21G  14% /u04     --REDO(オンラインREDOログ等)

データファイル、バックアップファイル、オンラインREDOログファイルの置き場ごとに、きちんとボリュームが分かれていますね。
ちなみに、サービス作成時に指定した『使用可能なデータベース記憶域』は、/u02のサイズになります。また、上記の使用サイズは状況や作成した環境によって異なるので、ご注意ください。

参考) マニュアル Oracle Database Cloud Serviceの使用『ストレージ・ボリュームとファイル・システムのレイアウト』

さて、早速データベースに接続してみましょう。

[oracle@DB122 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Wed Oct 18 10:46:50 2017

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c EE Extreme Perf Release 12.2.0.1.0 - 64bit Production

SQL>

“EE Extreme Perf Release” と、DBCSのエディションの名前が表示されています。

実際に環境にさわるとここで気付くかれる方もいるかと思いますが、DBCSインスタンスではORACLE_HOMEやORACLE_SID、PATHなど、Oracle Database を利用するのに必要最低限の環境変数がデフォルトでセットされているのです。環境を使い始める時点で、sql*plus にパスが通っている。そのため、すぐにSQL が打てちゃいます。便利ですね。

接続できたので、実際にデータベースの構成や設定情報を見たいと思うのですが、多くの構成情報を収集するのは大変。そんなときにオススメなのがORAchkというツールです。 このツールは、対象の環境がOracle Database が稼働する環境として最適な状態になっているかどうか、OSやデータベースの構成情報を収集して、最新のベストプラクティスと照らし合わせて監査した結果をレポートにまとめてくれます。そのため、

  • 環境全体の構成情報を確認したい
  • 重要な問題が起きえる環境に該当しないか、最新情報と照らし合わせてプロアクティブにチェックしたい
  • メンテナンスで構成や設定内容がどのように変わったのか、変更前後の情報を比較したい
  • 障害発生時などで、分析のために必要となる環境情報を簡単に収集したい

こういったケースで活用できますね。今回は1つめのケースに該当します。ORAchk自体の説明や実行方法は、My Oracle Supportの「Doc ID 1545832.2 ORAchk - Oracleスタックのヘルスチェック(Doc ID 1268927.2 ORAchk - Health Checks for the Oracle Stack)」や、しばちょう先生の連載 第37回 ORAchkを使用したデータベースのヘルス・チェック でも紹介されていますので、チェックしてみてください。

実際にこの環境に対してORAchkを実行した結果、100点満点中の94点という結果が出てきました!
私自身、ここ数年オンプレミスの多くの環境のレポートを見てきましたが、このスコアはあまりみたことのない高得点です。レポートの詳細な中身に触れだすと長くなってしまうので、構成の詳細が気になる方はぜひ実行してみてレポートの内容をご確認頂きたいのですが、今回お伝えしたいことは、環境全体がOracleのベストプラクティスに基づいているかどうかのチェックでも高得点をたたき出している、つまりOracle Databaseを動かす環境として適している環境を、簡単に使えるのがDBCSということです。

そのため、DBCSでOracle Databaseを利用する際には、最適化されているのでそのまま利用することも、用途に合わせてデータベースの設定を変更してチューニングすることも、ユーザーに応じた利用が可能な環境だと思います。

今回は、DBCSのサービス・インスタンスの構成がどうなっているのか、いくつか特徴的なところを簡単にご紹介しました。次回からは、もう少しDBCSならではの機能を、数回に分けてご紹介してきたいと思います。

>> 連載トップページに戻る