本ブログは、オラクル・クラウドの個人ブログの1つです。
初めに
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
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"を利用します。
キー名とCompartmentを指定し、作成します。
最大インストール回数と有効期限は、デフォルトのままです。
エージェント・ソフトウェアのインストール
ダウンロードしたエージェント・ソフトウェアを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コンソールに反映されます。
※管理エージェント用のポリシーは、未設定か設定不正の場合、エージェントをインストールした後、"Not Available"(使用不可)の状態になりますので、ご注意ください。
外部データベース接続
この例は、CDBに接続します。
MENU -> Oracle Database -> External Databases -> Container Databases
"Connect to External Container Database"をクリックし、接続設定画面に入ります。
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"で進捗状況を確認します。(完了まで、数分間がかかります。)
接続成功後:
DB管理を有効にする
接続の詳細画面に、"Enable"をクリックします。
ライセンスタイプを指定し、有効化をします。(数分間がかかります。)
有効化にしたら、追加使用料が発生します。料金の詳細は、ここをご参照ください。
有効化実施後:
Performance Hub
"Performance Hub"は、以下の2つ条件を満たす場合、利用可能です。
- DB管理サービスを有効にする必要があります。
-
"Enterprise Edition"バージョン、12.1.0.0.0以上です。
"Performance Hub"画面に入ったら、以下の権限付与のコマンドが表示されます。
そのコマンドをコピーし、DB管理者でSQL Plusのコマンド実行します。(ユーザ名を置き換えます。)
※このユーザは、DBの接続情報を入力した時、指定したユーザです。
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
DBの監視と管理
DBグループとフリート管理を利用し、OCI上と外部の各DBの一元管理ができます。
DBグループの作成
MENU -> Observability & Management -> Database Management -> Database Groups
管理DBの追加
対象DBを追加します。
追加後:
DB詳細画面に入りますと、各種情報(サマリー、表領域、パラメータなど)が見られます。
SQLジョブの実施もできます。
管理対象のDBの状態は、"不明"(UNKNOWN)になった場合
以下のような画面があった時、管理エージェントが動作されていないと思われます。
管理エージェントの状態は、動作中であるのかをチェックしてください。
参考ドキュメント:
OCI : All The Managed Databases Started Reporting UNKNOWN In Console (Doc ID 2765784.1)
以上
関連記事
オラクル・クラウドの個人ブログ一覧
公式ドキュメント
管理エージェント
外部データベース接続の作成および管理