はじめに

こんにちは。プラチナホルダーでマネージャーの長沢です。

株式会社システムサポート インフラソリューション事業部に在籍して約13年目です。
ORACLE MASTER Platinum Oracle Database 12c取得、Oracle Cloud関連資格5種類ぐらいとってます。
営業、プリセールス、コンサル、設計、構築、運用保守となんでもやってます。

長沢の過去記事はこちら

最近Oracle Cloud Infrastructure(以下OCI)関連のお問い合わせが増えてきていまして、
時代がOCIに追いついてきたのかなと感じております。
そんなOCIですが、OCI Database Managementの注意ログがサポートされるようになったので試してみました。

是非ご一読ください。

参考になればと思います!
宜しくお願いします。

OCI Database Management ご利用前の注意点

今回利用するOCI Database Managementは少額ですが有料となります。
2022/7/25時点では1OCPUあたり4.80円/時間です。

最新の情報はOracle社のホームページをご確認ください。
https://www.oracle.com/jp/cloud/price-list.html

またDatabase Managementを有効化するためにvaultの作成なども必要となります。
Vaultもオプションによっては有料のため使用される場合はご注意ください。

Vaultの構成については今回は割愛いたします。

注意ログとは?

そもそも注意ログって何?という方もいるかと思いますので、まずは注意ログの概要について記載します。
マニュアルを見ると以下のように記載されています。

注意ログ(マニュアル)

注意ログは、重要で可視性の高いデータベース・イベントに関する情報を含む、構造化された外部で変更可能なファイルです。注意ログを使用すると、アクションが必要な重要なイベントに関する情報にすばやくアクセスできます。

注意ログで見られる情報は以下の通りです。(マニュアルからの抜粋です)

・注意ID: メッセージの一意の識別子。
・注意タイプ: 注意メッセージのタイプ。可能な値は、「エラー」、「警告」、「通知」または「追加情報」です。注意タイプは動的に変更できます。
・メッセージ・テキスト
・緊急度: 使用可能な値は、「即時」、「すぐに」、「遅延可能」または「情報」です。
・有効範囲: 使用可能な値は、「セッション」、「プロセス」、「PDBインスタンス」、「CDBインスタンス」、「CDBクラスタ」、「PDB」(データベースの再起動で修正されない永続記憶域の問題の場合)または「CDB」(データベースの再起動で修正されない永続記憶域の問題の場合)です。
・ターゲット・ユーザー: この注意ログ・メッセージを処理する必要があるユーザー。使用可能な値は、「クラスタウェア管理」、「CDB管理」または「PDB管理」です。
・原因
・アクション

上記を見る限り、エラー内容とその原因、やるべきアクションを見ることができるようです。
では実際に内容を見てみましょう。

OCI Database Managementの注意ログ

以前の記事(OCI Database Managementを設定してみました)でデータベース管理の有効化を実施しました。前回は外部データベースからの有効化を行っておりましたので、今回はOracle Base Database Cloud(BaseDB)でデータベース管理の有効化をして注意ログを見てみたいと思います。

BaseDBの作成とデータベース管理の有効化

まずは21cのDBをBaseDBで作成します。

DBが作成出来たらDatabase Managementで使用するDBユーザを用意します。
今回はSYSTEMユーザを使用します。

Database Managementの有効化を実施します。
OCIコンソール画面から監視及び管理⇒データベース管理⇒管理を選択します。

管理の画面からプライベート・エンドポイントを選択し、プライベートエンドポイントを作成します。

データベース管理の有効化をクリックします。

※権限が無くエラーが出る場合は下記を参照ください。
OCI : DB Management Enable Operation Failed Because Password Secret Is Not Accessible By Database Management (Doc ID 2812268.1)

有効化するにあたってSYSユーザ以外の接続ユーザを作成する必要があります。
今回は前述の通りSYSTEMユーザを使用しています。

作成が開始されると右上にリクエスト状況を見るためのリンクが出ます。
上記をクリックすることで動作の進捗状況が確認できます。

有効化後の画面は以下になります。

これでデータベース管理の有効化まで完了しました。
それでは注意ログを見ていきたいと思います。

注意ログを確認する

作成できたDBにアクセスして、現状の注意ログの状況を確認します。
確認方法はいくつかあるようですが、ここではattention.logとV$DIAG_ALERT_EXTビューで確認してみます。

[oracle@oracle21c trace]$ cd /u01/app/oracle/diag/rdbms/orcl_orcl001/orcl/trace
[oracle@oracle21c trace]$
[oracle@oracle21c trace]$ tail -100 attention_orcl.log

※一部抜粋です。

{
  "NOTIFICATION" : "Starting ORACLE instance (normal) (OS id: 81358)",
  "URGENCY" : "INFO",
  "INFO" : "Additional Information Not Available",
  "CAUSE" : "A command to startup the instance was executed",
  "ACTION" : "Check alert log for progress and completion of command",
  "CLASS" : "CDB Instance / CDB ADMINISTRATOR / AL-1000",
  "TIME" : "2022-07-25T01:30:56.480+00:00"
}

INFOのログが表示されました。

次に管理データベースを有効化したページからの確認になります。
左下のリソースからAlert logsを選択し、Attention logを表示します。

表示しようとしたところエラーが発生しました。
VIEWと権限が不足しているようです。
メッセージに従ってSYSユーザでVIEWの作成、SYSTEMユーザに権限の付与を実施します。

SQL> create or replace view VW_X$DIAG_ALERT_EXT as select * from X$DIAG_ALERT_EXT;

View created.

SQL> create or replace public synonym VW_X$DIAG_ALERT_EXT for sys.VW_X$DIAG_ALERT_EXT;

Synonym created.

SQL> grant select on VW_X$DIAG_ALERT_EXT to SYSTEM;

Grant succeeded.

権限が付与できたので再度確認します。
エラーは消えましたが、コマンドで確認したとき同様エラーはない状態です。
INFOの情報も表示されないようです。

では早速障害を起こしてみたいと思います。
マニュアルにも記載がある PMON をダウンさせて、ログを確認します。

[oracle@oracle21c ~]$ ps -ef | grep pmon
grid 6560 1 0 02:37 ? 00:00:00 asm_pmon_+ASM1
grid 7580 1 0 02:38 ? 00:00:00 apx_pmon_+APX1
oracle 9117 1 0 02:38 ? 00:00:00 ora_pmon_orcl
oracle 33666 32969 0 05:08 pts/0 00:00:00 grep --color=auto pmon
[oracle@oracle21c ~]$ kill -9 9117

中身を見るとIMMEDIATEのログとINFOのログが出ています。
IMMEDIATEの方がORA error 472なので PMON 停止のエラーのようです。
その後再度起動したことをINFOのメッセージとして出しているようです。

[oracle@oracle21c trace]$ cd /u01/app/oracle/diag/rdbms/orcl_orcl001/orcl/trace
[oracle@oracle21c trace]$ tail -100 attention.log
{
  "ERROR" : "ARC1 (ospid: 35557): terminating the instance due to ORA error 472",
  "URGENCY" : "IMMEDIATE",
  "INFO" : "Additional Information Not Available",
  "CAUSE" : "The instance termination routine was called",
  "ACTION" : "Check alert log for more information relating to instance termination rectify the error and restart the instance",
  "CLASS" : "CDB Instance / CDB ADMINISTRATOR / AL-1003",
  "TIME" : "2022-08-10T05:13:42.246+00:00"
}

{
  "NOTIFICATION" : "Starting ORACLE instance (normal) (OS id: 43103)",
  "URGENCY" : "INFO",
  "INFO" : "Additional Information Not Available",
  "CAUSE" : "A command to startup the instance was executed",
  "ACTION" : "Check alert log for progress and completion of command",
  "CLASS" : "CDB Instance / CDB ADMINISTRATOR / AL-1000",
  "TIME" : "2022-08-10T05:13:48.123+00:00"
}

次にデータベース管理の方からも確認してみます。

上記のようにエラーとして表示されました。
今回 PMON kill なのでそのまま起動して特に操作は不要でしたが、原因やアクションがコンソール上で見れるのでOracle Databaseに不慣れな人でもDB管理が容易にできそうです。

Appendix

前回の記事から他の機能も追加されていたのでいくつか紹介します。
データベース管理の画面からユーザ情報も見えるようになっています。
ユーザの有効期限までの表示まで画面上で出来るので非常に便利です。

統計の情報も見えるようになっています。
アドバイザの進捗なども見えます。アドバイザ系の進捗情報の確認が画面上で出来るのは助かる内容かと思います。

SQL tuning advisorも使用できるみたいです。
今回はSE環境を構築したため使用できませんでしたが、DB管理に必要なことはほとんどデータベース管理の機能で実施できそうですね。

最後に

以上、OCI Database Managementの注意ログの記事でした。
何かの参考になりましたら幸いです。

当社はOracleデータベースOracle Cloudサービスを多数展開しております。
何かお困りのことがありましたら、お気軽にお問い合わせください!

お問い合わせはこちら📩