LoginSignup
2
1

More than 1 year has passed since last update.

OCI DB管理の使用体験

Last updated at Posted at 2021-08-12

初めに

OCI Database Management(DB管理)サービスが、2021/01/27にリリースされました。
OCI上のDBCSだけではなく、OCI以外(On-P)のOracle DBも管理できます。

サポート対象DB:
On-P、或いはExternal Oracle DB 11.2.0.4以降
2021/09/08より、OCI DB System(Bare Metal, VM)とExaData Cloud Serviceは、管理対象になりました。
2021/11/30より、Autonomous DBも管理対象になりました。

DB場所:Oracle Cloud Infrastructure, On-P, 他クラウド上
管理範囲:DBサマリー情報、パラメータ、表領域、パフォーマンス、ジョブ(SQL,PL/SQL)など
管理エージェントの対応OS: Linux(Oracle Linux, RHL, CentOS, SUSE), Windows(2012 R2, 2016, 2019)

今回は、OCI DB管理の設定方法を簡単に紹介します。この例は、OCI DB System(VM)を管理対象として利用します。(このブログを発表する時点で、まだOCI DB Systemは直接な管理対象外でしたので、外部データベースとして管理します。)
DBバージョン:Oracle DB 19c Enterprise Edition

  1. IAMポリシーの設定 - 管理エージェント用
  2. IAMポリシーの設定 - DB管理サービス用
  3. 管理エージェントのインストール
  4. 外部データベース接続
  5. パフォーマンス・ハブ
  6. DBの監視と管理

IAMポリシーの設定 - 管理エージェント用

グループ名:AGENT_ADMINS
IAMユーザをグループに追加します。

動的なグループ名:Management_Agent_Dynamic_Group
ルール:
ALL {resource.type='managementagent', resource.compartment.id='ocid1.compartment.oc1..compartmentocid'}
DBが所属するCompartmentのOCIDを事前に用意しておきます。

ポリシー名:Agent-Policy-PoC
ステートメント
ALLOW GROUP AGENT_ADMINS TO MANAGE management-agents IN COMPARTMENT PoC
ALLOW GROUP AGENT_ADMINS TO MANAGE management-agent-install-keys IN COMPARTMENT PoC
ALLOW GROUP AGENT_ADMINS TO READ METRICS IN COMPARTMENT PoC
ALLOW DYNAMIC-GROUP Management_Agent_Dynamic_Group TO MANAGE management-agents IN COMPARTMENT PoC
ALLOW DYNAMIC-GROUP Management_Agent_Dynamic_Group TO USE METRICS IN COMPARTMENT PoC

IAMポリシーの設定 - DB管理サービス用

グループ名:DB-MGMT-GRP
IAMユーザをグループに追加します。

ポリシー名:DB-MGMT-Policy-PoC
ステートメント
Allow group DB-MGMT-GRP to use external-database-family in compartment PoC
Allow group DB-MGMT-GRP to manage dbmgmt-family in compartment PoC
Allow group DB-MGMT-GRP to read metrics in compartment PoC
Allow group DB-MGMT-GRP to read alarms in compartment PoC

管理エージェントのインストール

DBサーバに管理エージェントのインストールは必要です。
JDK(1.8以降)を事前にインストールしておいてください。(この例は、JDKのインストールを省略します。)
エージェントとOCIの通信は、HTTPSを経由します。

エージェント・ソフトウェアのダウンロード
MENU -> Observability & Management -> Management Agents -> Downloads and Keys
この例は、"Agent for LINUX"を利用します。

ダウンロード後、ローカルに保存します。
image.png

エージェント・インストール・キーの作成
image.png

キー名とCompartmentを指定し、作成します。
最大インストール回数と有効期限は、デフォルトのままです。

キーのダウンロード
キーファイルをローカルに保存します。
image.png

エージェント・ソフトウェアのインストール

ダウンロードしたエージェント・ソフトウェアをDBサーバにアップロードします。
sudoユーザで、以下を実行します。
コマンド例sudo rpm -ivh oracle.mgmt_agent.rpm


[opc@db19cee ~]$ sudo rpm -ivh oracle.mgmt_agent.rpm
Preparing...                          ################################# [100%]
Checking pre-requisites
        Checking if any previous agent service exists
        Checking if OS has systemd or initd
        Checking available disk space for agent install
        Checking if /opt/oracle/mgmt_agent directory exists
        Checking if 'mgmt_agent' user exists
        Checking Java version
                JAVA_HOME is not set or not readable to root
                Trying default path /usr/bin/java
                Java version: 1.8.0_281 found at /usr/bin/java
        Checking agent version
Updating / installing...
   1:oracle.mgmt_agent-210727.1608-1  ################################# [100%]

Executing install
        Unpacking software zip
        Copying files to destination dir (/opt/oracle/mgmt_agent)
        Initializing software from template
        Creating 'mgmt_agent' daemon
        Agent Install Logs: /opt/oracle/mgmt_agent/installer-logs/installer.log.0

        Setup agent using input response file (run as any user with 'sudo' privileges)
        Usage:
                sudo /opt/oracle/mgmt_agent/agent_inst/bin/setup.sh opts=[FULL_PATH_TO_INPUT.RSP]

Agent install successful

[opc@db19cee ~]$

レスポンス・ファイルの作成

ダウンロードしたキーファイルを編集します。
キーファイルの内容(サンプル)


managementAgentInstallKey = MS4wLHVzLWFzaGJ1cm4tMSxvY2lkMS50ZW5hbmN5
CredentialWalletPassword = abcdefgh1#

managementAgentInstallKey: エージェント・インストール・キーで、必須項目です。(編集不要)
CredentialWalletPassword: キーファイルが作成された時、空白のままです。必須項目なので、入力必要です。エージェントをインストールする際、妥当性をチェックします。(大文字、小文字、数値、特殊文字は必要ですが、"_"と"-"などはだめです。)
認証用パスワードの妥当性チェックが失敗した時、以下のメッセージが表示されます。


Credential wallet password must contain atleast 16 character for FIPS only mode and 8 for non-FIPS with one of each of the following classes:
Lower case chars [a-z]
Upper case chars [A-Z]
Numeric chars [0-9]
Special chars [!@#%^&*]
Additional details are available in the configure logs at /opt/oracle/mgmt_agent/configure-logs

その他はオプションで、必要により編集します。
AgentDisplayName: エージェントの表示名です。空白のままにしますと、デフォルト値は「Agent (ホスト名)」に設定されます。この例は、"DB19cEE_Agent"に設定します。
ProxyXXXX: プロキシサーバーを利用する場合、設定します。

編集後、DBサーバにアップロードします。
保存先:/opt/oracle/mgmt_agent/agent_inst/bin (エージェントのインストール先)
ファイル名:input.rspに変更
所有者とグループ:mgmt_agent


[opc@db19cee ~]$ sudo mv DB19c.txt /opt/oracle/mgmt_agent/agent_inst/bin/input.rsp
[opc@db19cee ~]$ sudo chown mgmt_agent:mgmt_agent /opt/oracle/mgmt_agent/agent_inst/bin/input.rsp
[opc@db19cee ~]$

管理エージェントのインストール
コマンド例:
sudo /opt/oracle/mgmt_agent/agent_inst/bin/setup.sh opts=<full_path_of_response_file>


[opc@db19cee ~]$ sudo /opt/oracle/mgmt_agent/agent_inst/bin/setup.sh opts=/opt/oracle/mgmt_agent/agent_inst/bin/input.rsp

Executing configure

        Parsing input response file
        Validating install key
        Generating communication wallet
        Generating security artifacts
        Registering Management Agent

Starting agent...
Agent started successfully


Agent setup completed and the agent is running.
In the future agent can be started by directly running: sudo systemctl start mgmt_agent

Please make sure that you delete /opt/oracle/mgmt_agent/agent_inst/bin/input.rsp or store it in secure location.

[opc@db19cee ~]$

OSでエージェントの起動状態を確認します。
コマンド例:sudo systemctl status mgmt_agent


[opc@db19cee ~]$ sudo systemctl status mgmt_agent
● mgmt_agent.service - mgmt_agent
   Loaded: loaded (/etc/systemd/system/mgmt_agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2021-08-10 04:21:02 UTC; 5min ago
  Process: 91110 ExecStart=/opt/oracle/mgmt_agent/agent_inst/bin/agentcore start sysd (code=exited, status=0/SUCCESS)
 Main PID: 91186 (wrapper)
   CGroup: /system.slice/mgmt_agent.service
           tq91186 /opt/oracle/mgmt_agent/agent_inst/bin/./wrapper /opt/oracle/mgmt_agent/agent_inst/bin/../config/wrapper.con...
           mq91202 /usr/java/jre1.8.0_281-amd64/bin/java -Dorg.tanukisoftware.wrapper.WrapperSimpleApp.maxStartMainWait=5 -Dja...

Aug 10 04:20:49 db19cee systemd[1]: Starting mgmt_agent...
Aug 10 04:20:49 db19cee agentcore[91110]: Starting mgmt_agent...
Aug 10 04:20:57 db19cee agentcore[91110]: Waiting for mgmt_agent..........
Aug 10 04:21:02 db19cee systemd[1]: Started mgmt_agent.
[opc@db19cee ~]$

OCIコンソールで、エージェントの状態(Active)を確認します。
エージェント起動後、すぐOCIコンソールに反映されます。
image.png
※管理エージェント用のポリシーは、未設定か設定不正の場合、エージェントをインストールした後、"Not Available"(使用不可)の状態になりますので、ご注意ください。

外部データベース接続

この例は、CDBに接続します。
MENU -> Oracle Database -> External Databases -> Container Databases
image.png

CDBを登録します。

"Connect to External Container Database"をクリックし、接続設定画面に入ります。
image.png

DBの接続情報を入力してください。


※TIPS
接続文字列をチェックするため、事前にSQL Plusコマンドでを確認したほうがよいです。
コマンド例
sqlplus system/パスワード@ホスト名:ポート/サービス名
ログイン後、"show con_name"で接続先のコンテナ名を確認します。


[oracle@db19cee ~]$ sqlplus system/XXXXXXX@db19cee.publicsubnet1.vcn1.oraclevcn.com:1521/db19c_nrt1v3.publicsubnet1.vcn1.oraclevcn.com
...省略...
SQL> show con_name;

CON_NAME
------------------------------
CDB$ROOT
SQL>

接続開始後、"Work Request"で進捗状況を確認します。(完了まで、数分間がかかります。)
image.png
接続成功後:
image.png

DB管理を有効にする
接続の詳細画面に、"Enable"をクリックします。
image.png

ライセンスタイプを指定し、有効化をします。(数分間がかかります。)
有効化にしたら、追加使用料が発生します。料金の詳細は、ここをご参照ください。

有効化実施後:
image.png

Performance Hub

"Performance Hub"は、以下の2つ条件を満たす場合、利用可能です。
1. DB管理サービスを有効にする必要があります。
2. "Enterprise Edition"バージョン、12.1.0.0.0以上です。
image.png
"Performance Hub"画面に入ったら、以下の権限付与のコマンドが表示されます。
そのコマンドをコピーし、DB管理者でSQL Plusのコマンド実行します。(ユーザ名を置き換えます。)
※このユーザは、DBの接続情報を入力した時、指定したユーザです。
image.png


GRANT CREATE PROCEDURE to "db_monitoring_user";
GRANT SELECT ANY DICTIONARY, SELECT_CATALOG_ROLE to "db_monitoring_user";
GRANT ALTER SYSTEM to "db_monitoring_user";
GRANT ADVISOR to "db_monitoring_user";
GRANT EXECUTE ON DBMS_WORKLOAD_REPOSITORY to "db_monitoring_user";

もう一回"Performance Hub"を開くと、正常に表示されます。この画面で、下記の各種レポートが出力できます。
AWR - Automatic Workload Repository
ASH - Active Session History
Performance Hub
image.png

DBの監視と管理

DBグループとフリート管理を利用し、OCI上と外部の各DBの一元管理ができます。

DBグループの作成
MENU -> Observability & Management -> Database Management -> Database Groups
image.png

DBグループ名を指定し、作成します。

管理DBの追加
image.png
対象DBを追加します。

追加後:
image.png
DB詳細画面に入りますと、各種情報(サマリー、表領域、パラメータなど)が見られます。
SQLジョブの実施もできます。
image.png

管理対象のDBの状態は、"不明"(UNKNOWN)になった場合

以下のような画面があった時、管理エージェントが動作されていないと思われます。
管理エージェントの状態は、動作中であるのかをチェックしてください。
参考ドキュメント:
OCI : All The Managed Databases Started Reporting UNKNOWN In Console (Doc ID 2765784.1)

image.png

以上


関連記事
オラクル・クラウド関連の個人ブログ


参考ドキュメント
管理エージェント
外部データベース接続の作成および管理

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1