はじめに

Autonomous Databaseはデータベースの様々な管理タスクをADB自身、もしくはOracleが行う自律型データベースですが、ユーザーが実行したり、ユーザーがOracleに実行の方法やタイミングの指示を出すタスクもあります。それがデータベースのパフォーマンス監視/アラート監視です。本記事ではADBインスタンスに対する監視設定をいくつかご紹介します。

目次 :

前提条件

  • ADBインスタンスが構成済みであること
    ※ADBインタンスの作成方法については、 101:ADBインスタンスを作成してみよう を参照ください。
    なお本記事では、後続の章でCPU使用率が閾値を超えた際の挙動を確認するため、ECPU数は4、auto scalingは無効 で作成しています。


所要時間 : 約40分


1. 技術概要

Autonomous Databaseに対する監視・通知を行うツールはいくつか存在します。環境やユーザーによって、適切なツールを選択します。

本記事ではOCIモニタリング、サービス・コンソール、Oracle Enterprise Manager(EM)、Oracle Cloud Observability and Management Platform(O&M)Database Managementによる監視設定をご紹介します。


2. 単体インスタンスの監視

単体のADBインスタンスに対しては、OCIモニタリングとサービス・コンソールを使ってメトリック監視/イベント監視をすることができます。

2-1. アラームの通知先の作成

監視設定の前に通知先を作成しておく必要があります。こちら を参考に、トピックの作成・サブスクリプションの作成を行います。


2-2. OCIモニタリングによるメトリック監視

OCIモニタリングでは、OCI上の各種リソースの性能や状態の監視、カスタムのメトリック監視を行うことが可能です。また、アラームで事前定義した条件に合致した際には、管理者に通知を行うことで管理者はタイムリーに適切な対処を行うことができます。

今回は、ADBのCPUの閾値を超えた際に通知が来るよう設定し、その挙動を確認します。

  1. まずはこちらの記事 を参考に、アラームの通知先の作成をします。

  2. 次にアラームの定義の作成をします。ハンバーガーメニューのObservability & Management[アラーム定義] をクリックします。 monitoring1イメージ

  3. [アラームの作成] をクリックします。

  4. 以下の項目を入力し、[アラームの保存] をクリックします。
    • アラーム名: CPU_alarm とします。
    • アラームの重大度: クリティカル
    • アラーム本体(オプション): 任意
    • タグ(オプション): 任意
    • メトリックの説明
      • コンパートメント: メトリックのあるコンパートメントを選択
      • メトリック・ネームスペース: oci_autonomous_databaseを選択
      • リソース・グループ: 空白のまま
      • メトリック名: CpuUtilization
      • 間隔: 1m(デフォルト)
      • 統計: Mean(デフォルト)
    • メトリック・ディメンション
      • DeploymentType: Sharedを選択
    • トリガー・ルール
      • 演算子: 次より大きい
      • 値: 40
      • トリガー遅延分数: 3
    • Notifications
      • 宛先サービス: Notification Serviceを選択
      • コンパートメント: さきほど作成した通知トピックのあるコンパートメントを選択
      • トピック: 先ほど作成したトピック名を選択
      • メッセージの書式: RAWメッセージの送信
    • このアラームを有効化しますか。: チェックが入っていることを確認 (デフォルト) alarm1イメージ alarm2イメージ alarm3イメージ
  5. アラームが作成されたら、有効になっているかを確認します。 alarm4イメージ

  6. Autonomous Database のCPU使用率を40%より大きくするため、データベース・アクションを開き、以下のPL/SQLを実行します。
    begin
      while 1 = 1 loop
     declare n1 number;
     begin n1 := 1; end;
      end loop;
    end;
    /
    

    (補足) 上記PL/SQLは1CPUを占有させるものです。 OCPU数が2以上のADBインスタンスの場合、アラームの定義のCPU使用率を下げる、もしくは複数のデータベース・アクションで並列実行する必要があります。

  7. 数分待つと、アラームの通知先として設定したアドレスに以下のようなメールが届きます。 notificationイメージ
    しばらくすると、上記PL/SQLが終了し、以下のようなメールも届きます。 notification2イメージ
    Status:OK になっていることがわかります。このように、ADBインスタンスの状態が変化する度に通知が届くようになっています。

  8. 続いてCPU使用率をOCIモニタリングのサービス・メトリックから確認してみます。
    • メトリック・ネームスペース: oci_autonomous_databaseを選択
    • メトリック・ディメンション: Sharedを選択 metric1イメージ

ここでは、CPU使用率のほか、セッション数やトランザクション件数などもグラフで確認することができます。 これらもNotificationsと組み合わせることで、閾値を超えた際に通知を行うことが可能です。


2-3. サービス・コンソールによるパフォーマンス監視

OCIモニタリングは、事前定義されたメトリックを用いてOCIの各種リソースのモニタリングや通知ができる一方で、サービス・コンソールでは以下のようなADBのアクティビティ状況が把握できます。

  • ストレージ使用状況
  • CPU使用率
  • 割り当てOCPU数
  • SQL実行数
  • SQLの平均レスポンスタイム
  • 接続サービス毎の負荷状況
  • DBの待機イベント
  • キューイングの状況

以下のように、ADBの詳細画面からサービス・コンソール をクリックします。 service_console1イメージ

アクティビティ からデータベース・アクティビティやCPU使用率が確認できます。 service_console2イメージ

モニター対象SQL からリアルタイムの個々のSQL監視をすることができます。 service_console3イメージ

SQLテキストを選択し、レポートのダウンロード をクリックすると、Enterprise ManagerのDatabase Active Reportが取得できます。 service_console4イメージ


2-4. イベント監視

OCIではメトリック監視とは別に、あらかじめ指定されたイベントが対象のリソースに起こった際に、通知やストリーミングなどのアクションを設定することができます。

  1. ハンバーガーメニューのObservability & Management[イベント・サービス] をクリックします。 event1イメージ

  2. [ルールの作成] をクリックします。

  3. 以下の項目を入力し、[ルールの作成] をクリックします。

    • 表示名: ADB_critical_rule とします。
    • 説明: 任意
    • ルール条件
      • 条件:イベント・タイプ
      • サービス名: Databaseを選択
      • イベント・タイプ: Autonomous Database - Criticalを選択
    • アクション
      • アクション・タイプ: 通知を選択
      • 通知コンパートメント: 現在使用しているコンパートメント
      • トピック: 先ほど作成したトピックを選択

(補足) Autonomous Databaseにおけるイベント・タイプ一覧(※2021年12月時点) event_allイメージ 個別のイベント条件の詳細はこちら

上記の手順に沿って、ADBに対してイベント・タイプCriticalのルールを作成しておくと、以下のようなメールが届くことがあります。
この例は、ADBがダウンした場合の通知です。 critical_mailイメージ


2-5. インスタンス管理者に対する通知設定

Autonomous Databaseサービス関連の問題について、以下の手順で指定された電子メールアドレスに通知を送信することができます。

  1. ADBの詳細ページのメンテナンス顧客の連絡先フィールドの管理をクリックします。 メンテナンス通知設定1イメージ

  2. [連絡先の追加] をクリックします。

  3. 連絡先のメールアドレスを入力します。 メンテナンス通知設定2イメージ

顧客の連絡先リストが更新されている間、ライフサイクル状態は更新中に変わります。

顧客の連絡先が設定されると、主に以下のイベントの通知が送信されます。

  • データベースのアップグレード
  • ウォレットの有効期限の通知
  • 計画外のメンテナンス通知


なお、顧客の連絡先が設定されていない場合、通知はアカウントに関連付けられているテナント管理者の電子メールアドレスに送信されます。適切な担当者がサービス関連の通知を受信するように、顧客の連絡先を設定することをお勧めします。

(参考) OCIには他にもテナント管理者のみが受け取れる通知がいくつか存在します。 こちら にまとめられている記事がございますので、ご参照ください。


3. 複数のインスタンスをまとめて監視

複数のADBインスタンスをまとめて監視するには、Oracle Enterprise Manager(EM)と Database Managementが有用です。

3-1. EM, Database Managementによる監視項目

EM, Database Managementのどちらにも一般的なデータベース監視に必要な項目が多数用意されています。 主な項目は以下です。

  • データベースのアクティビティ
  • SQLの平均レスポンスタイム
  • 初期化パラメータ
  • アラートの事前定義
  • 閾値のカスタマイズ/アラート通知

3-2. EMによる監視設定

Enterprise Manager13.4 RU4(13.4.0.4)以降でAutonomous Databaseに対応しています。 またOCI マーケットプレイスからデプロイができ、コンピュート費用で利用が可能になっています。

em_sampleイメージ

ADBに対する使用手順はEnterprise Manager Cloud Control 『Oracle Autonomous Database管理者ガイド』 をご参照ください。


3-3. Database Managementによる監視設定

Database Managementでは、オンプレミスおよびクラウドデータベースの監視、パフォーマンス管理、チューニング、および業務管理ができます。高度なデータベースフリート診断とチューニングを使用し、問題のトラブルシューティングとパフォーマンスの最適化を行うことができます。リアルタイムSQL監視でSQLを最適化し、データベース構成を簡素化します。

database_managementイメージ

設定手順については、こちら をご参照ください。


おわりに

本記事では、単体のADBインスタンスの監視、複数のADBインスタンスの監視に有効な機能をいくつかご紹介しました。使用用途や対象ユーザーがどれも異なりますが、データベースの運用をする上で全て重要なツールですので、ぜひご活用ください。


参考資料


以上でこの章は終了です。次の章にお進みください。


ページトップへ戻る

更新日時: