はじめに
オンプレミス環境では、オラクルデータベースの監視ツールとして Oracle Enterprise Manager が長らく使用されてきました。クラウド時代のオラクルデータベースの監視ツールとして、Oracle Cloud 上で提供されている OCI Database Management サービスを活用し、各種データベースの監視を行うことができます。本記事では、OCI Database Managementサービスの概要と、Base Database(以下、BaseDB)を OCI Database Managementで監視するための設定について紹介します。
OCI Database Management サービスとは
OCI Database Management(以下、Database Management)は、OCI上のデータベースの管理に加え、外部環境にあるOracleデータベースのパフォーマンス監視、構成管理、診断など、Oracleデータベースを包括的に監視および管理するためのツールと機能を提供しています。
主な機能には次のようなものがあります。
- パフォーマンス・ハブ:Oracleデータベースのパフォーマンスの問題を特定して、トラブルシューティングをする際の洞察と診断を提供する
- モニタリングのメトリック監視:CPU使用率、ストレージ使用率など20種類以上のメトリックデータが定義されており、通知サービスと連携することができる
- フリートサマリー:複数のDBを一つの画面上で監視、管理する機能を提供する
- SQLジョブ:デーベースグループにまとめた全てのDBに対してジョブの作成と実行ができる
- SQLチューニングアドバイザ:パフォーマンスが最適でないSQLを特定し、改善の方法をアドバイスする
- AWRレポート:SQL文を直接実行せずに画面UI上からAWRレポート情報を取得し、可視化する
なおDatabase Managementは、無償の「Basicオプション」と有償の「Fullオプション」の2つのプランが用意されています。それぞれのオプションで対応する機能が異なるため、詳細は以下のドキュメントを参照してください。
BaseDBをDatabase Managementで監視するための設定
前提条件
本ブログで紹介する手順の前提条件は以下となります。
- VCNを「インターネット接続性を持つVCNの作成」ウィザードで作成済み
- 上記VCN内にBaseDBが構築されている
- BaseDBでCDBとPDBが作成済み
ユーザグループとポリシーの付与
まず、Database Managementサービスで必要となるユーザグループとポリシーを付与します。
- ハンバーガーメニューから「アイデンティティとセキュリティ」>「アイデンティティ」>「グループ」を選択します。
- 「グループの作成」をクリックし、グループ名と説明を入力してグループを作成します。
- ハンバーガーメニューから「監視及び管理」>「データベース管理」を選択します。
- 右側の「はじめに」と記載されている箇所の「ポリシーの追加」をクリックします。
- コンパートメントが適切か確認し、先程作成したユーザグループを選択し、ポリシーを生成します。
- 生成したポリシーを確認し、ユーザグループにポリシーを付与します。
データベースユーザのアンロックと権限の付与
次に、デフォルトで制限されているDBSNMPユーザのロックを解除し、必要な権限を付与します。
-
Oracle Cloud で Oracle Database を使おう(BaseDB)などを参考にBaseDBにアクセスし、以下コマンドを実行
1234567891011121314SQL> alter user dbsnmp account unlock;User altered.SQL> alter user dbsnmp identified by "<password>";User altered.SQL> GRANT CREATE PROCEDURE TO dbsnmp;Grant succeeded.SQL> GRANT SELECT ANY DICTIONARY, SELECT_CATALOG_ROLE TO dbsnmp;Grant succeeded.SQL> GRANT ALTER SYSTEM TO dbsnmp;Grant succeeded.SQL> GRANT ADVISOR TO dbsnmp;Grand succeeded.SQL> GRANT EXECUTE ON DBMS_WORKLOAD_REPOSITORY TO dbsnmp;Grant succeeded.なお、設定するパスワードは後に使用するため、テキストにメモをするなどして保存することを推奨します。
Vaultおよびシークレットの作成
次に、先程アンロックした DBSNMP ユーザで設定したパスワードを OCI Vault サービスに登録します。以下の手順で行っていきます。
-
ハンバーガーメニューをクリックし、「アイデンティティとセキュリティ」>「キー管理とシークレット管理」>「ボールト」を選択します。
-
作成したボールトをクリックし、ボールトの詳細画面から「キーの作成」ボタンをクリックします。以下の内容を入力し、キーを作成します。
- 保護モード:HSM(デフォルト)
- 名前:任意
- キーのアルゴリズム:AES(デフォルト)
- キーの長さ:256ビット
-
Vaultの詳細画面の左下にあるリソースパネルから「シークレット」を選択し、「シークレットの作成」ボタンをクリックします。
-
「シークレットの作成」画面にて、以下項目を入力し、「シークレットの作成」ボタンをクリックします。
Network Security Group (NSG) の作成と登録
ここでは後に作成するプライベートエンドポイントを用いて、Database ManagementとBaseDBの間で通信接続を行うために許可する通信ルールを作成します。
NSGの作成の手順と登録手順は以下の通りです。
- ハンバーガーメニューをクリックし、「ネットワーキング」>「仮想クラウド・ネットワーク」を選択し、前提条件で作成しているVCNを選択します。
- 画面左下のリソースから「ネットワーク・セキュリティ・グループ」を選択し、「ネットワーク・セキュリティ・グループの作成」をクリックします。
- 任意の名前を入力し、「次」をクリックします。
-
セキュリティ・ルールの追加において、以下項目を入力し、「作成」ボタンをクリックします。
ルール1
- 方向:イングレス
- ソースタイプ:CIDR
- ソースCIDR:BaseDBが配置されてるサブネットのCIDRを入力
- IPプロトコル:TCPを選択
- ソース・ポート範囲:All
- 宛先ポート範囲:1521
ルール2
- 方向:エグレス
- ソースタイプ:CIDR
- ソースCIDR:BaseDBが配置されてるサブネットのCIDRを入力
- IPプロトコル:TCPを選択
- ソース・ポート範囲:All
- 宛先ポート範囲:1521
次に、先程作成したNSGをBaseDBに登録します。
- ハンバーガーメニューをクリックし、「Oracle Database」>「Oracleベース・データベース」を選択し、今回監視するBaseDBをクリックします。
- BaseDBの詳細情報から、NSGの「編集」ボタンをクリックします。
-
「ネットワーク・セキュリティ・グループの編集」画面にて、先程作成したNSGを選択し、「変更の保存」をクリックします。
なお、BaseDBにNSGを登録すると、BaseDBは「更新中」となり、5分ほどすると「使用可能」というステータスに変わります。
プライベートエンドポイントの作成
次に、Database Management サービスがデータベースに接続するためにプライベート・エンドポイントを作成します。手順は以下の通りです。
- ハンバーガーメニューをクリックし、「監視および管理」>「データベース管理」>「管理」>「プライベート・エンドポイント」を選択します。
-
プライベート・エンドポイントの作成をクリックし、「プライベート・エンドポイントの作成」画面にて、以下項目を入力し、「プライベート・エンドポイントの作成」ボタンをクリックします。
- 名前:任意
- 説明:任意
- 仮想クラウド・ネットワークの場所:前提条件で作成済みのVCNを選択
- サブネットの場所:BaseDBを配置したサブネットを選択
- ネットワーク・セキュリティ・グループ:先程作成したNSGを選択
なお、プライベート・エンドポイントの作成には、 2-3分ほど時間がかかります。
Database Managementの有効化
今までの手順でDatabase Managementを利用する準備ができました。最後にDatabase ManagementをCDBとPDB各々で有効化していきます。
CDBの有効化
CDBの有効化の手順は以下の通りです。
- ハンバーガーメニューをクリックし、「監視および管理」>「データベース管理」>「管理」>「管理対象データベース」を選択し、「データベース管理の有効化」をクリックします。※BaseDBの「関連付けられたサービス」からも有効化できます
-
「データベース管理の有効化」画面にて、以下項目を入力し、「データベース管理の有効化」ボタンをクリックします。
- データベース・タイプ:ベア・メタル、VM
- デーベース名:前提条件で作成済みのBaseDBを選択
- サービス名:デフォルト
- プロトコル:デフォルト
- ポート:デフォルト
- データベース・ユーザー名:DBSNMP
- ユーザー・パスワード・シークレット:先程作成したシークレットを選択
- プライベート・エンドポイント:先程作成したプライベート・エンドポイントを選択
- 管理オプション:完全管理(Fullオプション)
なお、有効化するとBaseDBが「更新中」に変わり、2-3分ほどすると「使用可能」にステータスが変わります。
PDBの有効化
PDBの有効化の手順は、CDBの有効化とほぼ同じ操作になります。異なる箇所は以下の通りです。
-
「プラガブル・データベース」というチェックボックスにチェックを入れ、今回有効化するPDBを選択します。
こちらも有効化をするとBaseDBが「更新中」に変わり、2-3分ほどすると「使用可能」にステータスが変わります。
フリートサマリの確認
今までの手順でBaseDBのDatabase Managementを有効化をすることが出来ました。Fullオプションを選択した場合、フリートサマリ機能を利用することが出来ます。先程有効化したCDBとPDBを確認していきます。
PDBの確認
ハンバーガーメニューをクリックし、「監視および管理」>「データベース管理」>「フリート・サマリー」を選択します。すると以下のように、Database Managementを有効化したDBが表示されます。なお、デフォルトで表示されているのはPDBです。
CDBの確認
CDBが表示されるようにするには、イベントリの「タイプ」を選択し「CDB」をクリックする必要があります。
ダッシュボードの作成
先程のフリートサマリ機能では、CDBとPDBを切り替えないと確認できませんでした。そこで最後に、PDBとCDBを1つの画面で監視するためのダッシュボードを作成する手順を紹介します。
- ハンバーガーメニューをクリックし、「監視および管理」>「データベース管理」>「ダッシュボード」を選択します。
- ダッシュボードの作成を選択します。
- 任意のダッシュボード名を入力します。
- 初期設定では、ダッシュボード画面が空のため、監視したい項目をもとにウィジェットを追加します。
- 同様に、ウィジェットの内容をフィルタリングするために任意のフィルタを追加します。
上記の手順で作成したダッシュボード画面が以下のものです。
フリートサマリ機能では実現できなかったPDBとCDBの一元監視が出来ています!
まとめ
本ブログでは、Database Management の機能の概要とBaseDBにおけるDatabase Managementの有効化の手順について紹介しました。また、CDBとPDBの一元監視のためにダッシュボード画面の作成についても紹介しました。次回は、HaatWaveとADBにおける有効化の手順について紹介し、Database Managementの機能についても紹介したいと考えています。