LoginSignup
6
4

More than 3 years have passed since last update.

[Oracle Cloud] Enterprise Manager の作成と、DBaaS で作成した Data Guard インスタンスのモニタリング

Last updated at Posted at 2019-08-17

はじめに

内容が古くなっています。こちらをご参照ください

Oracle Cloud Infrastructure (以下OCI)では、Oracle Database などを対象にしたシステムの運用管理ツールとして、Enterprise Manager が Market Place で提供されています。

Enterprise Manager は、多くの機能がありますが、特に便利な機能だと考えているのは以下の機能です

  • SQL モニター
  • SQL チューニングアドバイザー
  • ホストのリソース消費をモニタリング

Oracle DB に発行する SQL 一つ一つを詳細にモニタリングを行うことが出来ます。SQLの実行にどれくらい時間がかかっているのか、時間が掛かっているのはどこのポイントなのか、どのような実行計画なのか、を詳細に把握することが可能です。

今回の記事では、Enterprise Manager を導入して、OCI の Oracle DBマネージドサービス(以下DBaaS) で作成した Data Guard 構成のインスタンスを監視対象として追加する手順を記載します。Data Guard の可用性構成をとっているため、2台の DBaaS インスタンスを追加する手順になります。

次のDocumentを参考にしています。
https://docs.oracle.com/en/enterprise-manager/cloud-control/enterprise-manager-cloud-control/13.3.1/emoci/index.html

構成図

1566054091282.png

事前準備

Compartment IDの確認

OCI のメニューから、Identity > Compartments へ移動します。
Enterprise Manager を作成する Compartment の OCID を確認します

1564902364425.png

Dynamic Groupの作成

OCI のメニューから、 Identity > Dynamic Group へ移動します。

Create Dynamic Group を押します

  • NAME : sugi_OEM_Group
  • DESCRIPTION : OEM Dynamic Group by sugiyama
  • RULE1 : ALL {instance.compartment.id = 'コンパートメントのOCID'}

1564902792609.png

Policy の作成

OCI のメニューから、 Identity > Policies へ移動します。
Create Policy を選択し、以下のパラメータを入力します

  • NAME : EnterpriseManager_Policy
  • Description : EnterpriseManager_Policy
  • STATEMENT に以下を入力
Allow dynamic-group sugi_OEM_Group to manage instance-family in compartment <Compartment名>
Allow dynamic-group sugi_OEM_Group to manage volume-family in compartment <Compartment名>

1564903734297.png

Network Security Groupの作成

Enterprise Manager 用 Network Security Group を作成

  • NAME : EnterpriseManagerNSG
  • 以下の Ingress を許可
    • TCP 22 : SSH
    • TCP 3872 : Enterprise Manager から、EMエージェントを配布するときに利用するポート
    • TCP 7803 : Enterprise Manager Console
    • TCP 4903 : Agent Upload
    • TCP 7301 : JVMD
    • TCP 9851 : BI Publisher
    • ICMP

Oracle DB のマネージドサービスインスタンス側のNSGの設定

  • NAME : dbaas_nsg01
  • 以下のIngressを許可
    • TCP 22 : ICMP
    • TCP 1521 : Oracle DB
    • TCP 3872 : Enterprise Manager から、EMエージェントを配布するときに利用するポート
    • TCP 4903 : Agent Upload
    • ICMP

Enterprise Manager Install

Compute Instanceを作成

Market Place から Enterprise Manager を構成

  • 商用環境では、VM.Standard2.8 以上が推奨されているため、これを選択

1564906522384.png

Storageを多めに確保します。600GB以上あれば大丈夫なようです。

1564906595190.png

Enterprise Manager 用に作成した、Network Security Group を選択します。

1564906674713.png

Fault Domain を選択して、Create を押します

1564906737007.png

Compute Instance の状態が緑色になってから、Instance内の Enterprise Manager の構成が完了するまで、約30分ほど掛かります

SSHアクセスを行います。SSHが出来るようになるまで若干時間がかかります

> ssh opc@132.145.125.202 
[opc@em01 ~]$  

Oracle ユーザーにスイッチします

sudo su - oracle

Install が完了していない場合は、login メッセージに、Enterprise Manager を install 途中の旨が表示されています

NOTE: EM not fully installed yet, check the progress in /var/log/emgc_setup.log      
Installation details of EM 13.3 PG .....



Ports used by this deployment at /u01/app/em13c/middleware/install/portlist.ini      
Database location: /u01/app/database/product
Database name: emrep
EM Middleware Home location: /u01/app/em13c/middlewareEM Agent Home location: /u01/app/em13c/emagent/agent_13.3.0.0.0
EM Diagnostic Kit (omsvfy): /u01/app/em13c/middleware/emdiag
EM Diagnostic Kit (repvfy): /u01/app/em13c/middleware/emdiag_rep
EM Diagnostic Kit (agtvfy): /u01/app/em13c/emagent/agent_13.3.0.0.0/emdiag

This information is also available in the file /home/oracle/README.FIRST

To start all processes, as the user oracle, run the script /home/oracle/start_all.sh 
To stop all processes, as the user oracle, run the script /home/oracle/stop_all.sh   
[oracle@em01 ~]$

/var/log/emgc_setup.log を確認することで、Install の Log を確認することが出来ます

tail -f /var/log/emgc_setup.log 

Install が完了していると、以下のログインメッセージに切り替わります

Installation details of EM 13.3 PG .....

Public EM url:  https://<global ip>:7803/em
Private EM url: https://10.2.0.4:7803/em
Ports used by this deployment at /u01/app/em13c/middleware/install/portlist.ini      
Database location: /u01/app/database/product
Database name: emrep
EM Middleware Home location: /u01/app/em13c/middleware
EM Agent Home location: /u01/app/em13c/emagent/agent_13.3.0.0.0
EM Diagnostic Kit (omsvfy): /u01/app/em13c/middleware/emdiag
EM Diagnostic Kit (repvfy): /u01/app/em13c/middleware/emdiag_rep
EM Diagnostic Kit (agtvfy): /u01/app/em13c/emagent/agent_13.3.0.0.0/emdiag

This information is also available in the file /home/oracle/README.FIRST

To start all processes, as the user oracle, run the script /home/oracle/start_all.sh 
To stop all processes, as the user oracle, run the script /home/oracle/stop_all.sh   
[oracle@emcc ~]$

なお、setup.log の末尾出力が以下のものになっています。

[oracle@emcc ~]$ tail -f /var/log/emgc_setup.log  
Starting BI Publisher Server ...
BI Publisher Server Successfully Started
BI Publisher Server is Up
Starting the Oracle Management Agent .....

Oracle Enterprise Manager Cloud Control 13c Release 3
Copyright (c) 1996, 2018 Oracle Corporation.  All rights reserved.
Starting agent ....................... started.
OMS url: https://<global ip>:7803/em
Setup started at : Sun Aug  4 08:24:41 GMT 2019 and finished at Sun Aug  4 08:37:00 GMT 2019 

サービスが全て稼働しているかを確認します

  • WebTier
  • Oracle Management Server
  • JVMD
  • BI Publisher
[oracle@emcc ~]$ /u01/app/em13c/middleware/bin/emctl status oms 
Oracle Enterprise Manager Cloud Control 13c Release 3   
Copyright (c) 1996, 2018 Oracle Corporation.  All rights reserved.
WebTier is Up 
Oracle Management Server is Up 
JVMD Engine is Up 
BI Publisher Server is Up 
[oracle@emcc ~]$  

Enterprise Manager の初期アカウントは、以下のものになっています

  • User : sysman
  • Password : welcome1

初期パスワードのままでは、セキュリティに不安があるので、パスワードを変更します。15分ほど実行時間が掛かります。

/u01/app/em13c/middleware/bin/emctl config oms -change_repos_pwd -old_pwd welcome1 -new_pwd <your_password>

実行例

[oracle@emcc ~]$ /u01/app/em13c/middleware/bin/emctl config oms -change_repos_pwd -old_pwd welcome1 -new_pwd <your_password> 
Oracle Enterprise Manager Cloud Control 13c Release 3   
Copyright (c) 1996, 2018 Oracle Corporation.  All rights reserved.

Changing passwords in backend ... 
Passwords changed in backend successfully. 
Updating repository password in Credential Store... 
Successfully updated Repository password in Credential Store. 
Restart all the OMSs using 'emctl stop oms -all' and 'emctl start oms'.
Successfully changed repository password. 
[oracle@emcc ~]$  

Enterprise Manager の再起動を行います。まず停止をします

/u01/app/em13c/middleware/bin/emctl stop oms -all

実行例

[oracle@emcc ~]$ /u01/app/em13c/middleware/bin/emctl stop oms -all 
Oracle Enterprise Manager Cloud Control 13c Release 3   
Copyright (c) 1996, 2018 Oracle Corporation.  All rights reserved.
Stopping Oracle Management Server... 
WebTier Successfully Stopped 
Oracle Management Server Successfully Stopped
Oracle Management Server is Down 
JVMD Engine is Down 
Stopping BI Publisher Server... 
BI Publisher Server Successfully Stopped 
AdminServer Successfully Stopped
BI Publisher Server is Down 
[oracle@emcc ~]$  

起動します

/u01/app/em13c/middleware/bin/emctl start oms

実行例

[oracle@emcc ~]$ /u01/app/em13c/middleware/bin/emctl start oms 
Oracle Enterprise Manager Cloud Control 13c Release 3   
Copyright (c) 1996, 2018 Oracle Corporation.  All rights reserved.
Starting Oracle Management Server... 
WebTier Successfully Started 
Oracle Management Server Successfully Started 
Oracle Management Server is Up 
JVMD Engine is Up 
Starting BI Publisher Server ... 
BI Publisher Server Successfully Started 
BI Publisher Server is Up 
[oracle@emcc ~]$  

Enterprise Manager に、Oracle DB のホスト(仮想インスタンス)を監視対象に追加

Enterprise Manager Login

Enterprise Manager を Install した インスタンスの Public IP を使用して、Webブラウザからアクセスを行います

  • User : sysman
  • Password : 変更後パスワード

保存して続行を押します

1564909827442.png

ライセンスに同意します

1564910114814.png

ようこそページが表示されています

1564911670301.png

監視対象側の準備

監視対象として含める、Oracle DB マネージドサービスのインスタンス側の設定を行います。iptables を停止します。Network Security Group で仮想ファイアウォール設定を行っているため、シンプルのために停止を行います

Oracle DB のインスタンスにSSHログインします。1台目

ssh opc@sugihostname01.priv01.vcn.oraclevcn.com

root ユーザーにスイッチします

sudo su -

iptables を無効にします。再起動時にも起動してこないようにします

service iptables stop
chkconfig iptables off

Enterprise Manager のエージェントを格納するためのディレクトリを作成します

mkdir -p /u01/app/oracle/product/em13.3/agent
chown oracle:oinstall /u01/app/oracle/product/em13.3/agent

/etc/hostsの設定を行います。emcc.marketplace.com という名前で名前解決が出来る必要があり、hostsに追加することで名前解決が出来るようにします。

以下の設定を末尾に追加

sudo vi /etc/hosts
10.2.0.4 emcc.marketplace.com emcc

2台目も同様の操作を行う

Enterprise Manager側の準備

SSHログインして、firewalld (iptables) を無効にします

sudo systemctl stop firewalld
sudo systemctl disable firewalld

Enterprise Manager のターゲットに追加

メニューから、「ターゲットの手動追加」を選択します

1565979624292.png

ホストにエージェントをインストールを押します。

1565979674276.png

追加を押します

1565979822272.png

OCI上に存在するインスタンスは、Oracle が提供する内部DNSによって、自動的に名前解決が出来るようになっています。1台目のDBaaSインスタンスを指定します。

  • ホスト : sugihostname01.priv01.vcn.oraclevcn.com

1565979886281.png

以下パラメータ入力して、名前付き資格証明の + ボタンを押します

  • インストールのベース・ディレクトリ : /u01/app/oracle/product/em13.3/agent
  • インスタンス・ディレクトリ : /u01/app/oracle/product/em13.3/agent/agent_inst

1565980406299.png

Enterprise Manager が Bug らしき挙動があり、関係ないダミーの値を入力する必要があります

1565980600076.png

再度 + ボタンをクリックします

1565980629063.png

以下のパラメータを入力します。SSHの秘密鍵は、DBaaS インスタンスを作成したときの公開鍵に対応したものを選択します。

1566018662381.png

ルート資格証明の + を押します

1565980758294.png

以下のパラメータを入力します。SSHの秘密鍵は、DBaaS インスタンスを作成したときの公開鍵に対応したものを選択します。

1566019134043.png

次を押します。

1565980914769.png

Enterprise Manager のエージェントをDBaaSインスタンス1台目にデプロイします。

1565980946090.png

進行中画面に切り替わります。15分くらいかかります。

1565980963749.png

15分後に、設定完了となり、完了ボタンを押します

1566019913272.png

DBaaS インスタンスは、Data Guard 構成をしているので、2台目も同様に追加をします

追加したホストの確認

追加した DBaaS インスタンスを確認します。
メニューから、ホストを選択します。

1566020333427.png

追加したホストが見えています

1566020376864.png

CPU使用率、メモリ使用率、CPUスレッド使用率などが表示されています。OCI の Monitoring では、現在 DBaaS に対応していないので、便利に活用できると思います。

1566021373730.png

Enterprise Manager に、Oracle DB のインスタンスを監視対象に追加

今までの手順で、DBaaSインスタンスのホスト(仮想マシン)として、Enterprise Manager へ追加することが出来ました。Oracle DB として追加を行うことで、SQLのモニタリングなど、Oracle DB としてのモニタリングが出来るようになります。

Data Guard 1台目のインスタンスを追加

Data Guard で構成されているうち、1台目のインスタンスを追加します。

Oracle DB ユーザーDBSNMPのロックを解除する

DBaaS インスタンスへSSHを行い、oracleユーザーへスイッチをします

[opc@sugihostname01 ~]$ sudo su - oracle 
[oracle@sugihostname01 ~]$  

SQL*Plusを起動して、Oracle DB に接続します。
DBaaS インスタンスを作成した時に指定したパスワードを入力します。
なお、Data Guard 構成を組んでいるときは、Primary Role にしかアクセス出来ないためご注意ください。Secondary Role に接続した場合はエラーとなります

sqlplus system/yourpassword

実行例

[oracle@sugihostname01 ~]$ sqlplus system/yourpassword

SQL*Plus: Release 18.0.0.0.0 - Production on Sat Aug 17 06:11:33 2019
Version 18.6.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

Last Successful login time: Sat Aug 17 2019 06:11:29 +00:00 

Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.6.0.0.0

SQL> 

show con_name コマンドで、接続先のコンテナ名を確認します。CDB$ROOT と表示されると、CDB(Container DataBase) に接続していることがわかります。

SQL> show con_name 

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

Oracle DB 上の、DBSNMP ユーザー情報を確認します

select USERNAME,ACCOUNT_STATUS from DBA_USERS where USERNAME='DBSNMP'; 

実行例。ACCOUNT_STATUSの値が EXPIRED & LOCKED となっていることがわかります。

SQL> select USERNAME,ACCOUNT_STATUS from DBA_USERS where USERNAME='DBSNMP'; 

USERNAME
----------------------------------------------------------------------------------------------------
ACCOUNT_STATUS
--------------------------------
DBSNMP
EXPIRED & LOCKED


SQL> 

ユーザーDBSNMPのパスワードを設定しロック解除します。

alter user DBSNMP identified by (設定するパスワード) account unlock;

実行例 (パスワードは仮の値へ置き換えています)

SQL> alter user DBSNMP identified by "secretsecretsecretsecretsecret" account unlock; 

User altered.

SQL>

Enterprise manager のターゲットに追加

Oracle DB として Enterprise Manager へ追加するために、メニューからターゲットの手動追加を押します

1566025496486.png

ガイド付きプロセスを使用した追加を押します

1566025599984.png

Oracleデータベースの行を選択して、追加を押します

1566025697913.png

虫眼鏡マークを押します

1566025738993.png

1台目の DBaaS ホストを選択します

1566025763738.png

次を押します

1566025791230.png

進行中。2分くらい待ちます。

1566025806770.png

気にせずに、OK を押します。

1566025872492.png

ターゲットを選択し、構成ボタンを押します

1566026152862.png

以下パラメータを入力後、接続テストを押します

  • モニター・パスワード : dbsnmp ユーザーのパスワードを入力
  • リスナー・マシン名 : DBaas インスタンスのホスト名(FQDN)を入力。デフォルトで入力されているものでは、Enterprise Manager から接続が出来ないため、変更が必要

1566026335630.png

接続テストに成功した場合は、以下が表示されます

1566026424132.png

次に指定する情報を入力するために、DBaaSのインスタンスにログインする必要があります。
DBaaS のインスタンスへSSH後、Oracleユーザーへスイッチ

[opc@sugihostname01 ~]$ sudo su - oracle 
[oracle@sugihostname01 ~]$  

lsnrctl stat コマンドを実行

[oracle@sugihostname01 ~]$ lsnrctl stat 

LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 17-AUG-2019 07:23:13

Copyright (c) 1991, 2018, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) 
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 18.0.0.0.0 - Production
Start Date                03-AUG-2019 18:22:57
Uptime                    13 days 13 hr. 0 min. 15 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/18.0.0.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/grid/diag/tnslsnr/sugihostname01/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER))(SDU=65535)(SEND_BUF_SIZE=10485760)(RECV_BUF_SIZE=10485760))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.2.100.5)(PORT=1521)))
Services Summary...
Service "+APX" has 1 instance(s).
  Instance "+APX1", status READY, has 1 handler(s) for this service...
Service "+ASM" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_DATA" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_RECO" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "867e3020a52702dee053050011acf8c0.priv01.vcn.oraclevcn.com" has 1 instance(s).
  Instance "suginm01", status READY, has 2 handler(s) for this service...
Service "8f3a3bbb2413115fe0530564020a2e54.priv01.vcn.oraclevcn.com" has 1 instance(s).
  Instance "suginm01", status READY, has 2 handler(s) for this service...
Service "sgpbd01.priv01.vcn.oraclevcn.com" has 1 instance(s).
  Instance "suginm01", status READY, has 2 handler(s) for this service...
Service "suginm01XDB.priv01.vcn.oraclevcn.com" has 1 instance(s).
  Instance "suginm01", status READY, has 1 handler(s) for this service...
Service "suginm01_CFG.priv01.vcn.oraclevcn.com" has 1 instance(s).
  Instance "suginm01", status READY, has 2 handler(s) for this service...
Service "suginm01_nrt1mv.priv01.vcn.oraclevcn.com" has 1 instance(s).
  Instance "suginm01", status READY, has 2 handler(s) for this service...
Service "suginm01_nrt1mv_DGB.priv01.vcn.oraclevcn.com" has 1 instance(s).
  Instance "suginm01", status READY, has 2 handler(s) for this service...
The command completed successfully
[oracle@sugihostname01 ~]$ 

この中から、pdb に関する情報を取得するために、DBaaS インスタンス作成時に指定した、PDB name で grep

[oracle@sugihostname01 ~]$ lsnrctl stat | grep -i sgpbd 
Service "sgpbd01.priv01.vcn.oraclevcn.com" has 1 instance(s). 

接続名 sgpbd01.priv01.vcn.oraclevcn.com が必要になるので、控えておきます。

Enterprise Manager の画面に戻り、プラがブル・データベースのタブへ移動します。この中から、2つ目のサービス名を控えたものに変更する必要があります

1566027014231.png

1個目を選択して、接続テスト。OKであることを確認

1566027061368.png

OKであれば、2個目も選択して接続テスト。

1566027126082.png

保存を押します

1566027177110.png

リスナー2個を選択して、次を押します

1566027259646.png

保存を押します

1566027310680.png

正常に完了。閉じるを押します

1566027324140.png

追加した Oracle DB インスタンスを確認

Oracle DB のインスタンスに関するモニタリング状況を確認するため、メニューからすべてのターゲットを選択します

1566027796483.png

データベース・インスタンスを選択します

1566027852035.png

追加した 1台目のインスタンスをクリックします

1566027875291.png

パフォーマンス、リソース消費量が見えています

1566028450986.png

また、過去1時間の直近のSQLモニターが表示されています。

1566028501313.png

SQLモニタリングを選択します

1566032368464.png

ログインをします。system ユーザーと、DBaaS インスタンス作成時に指定したパスワードを入力します

1566031978078.png

SQL モニタリング画面がひらかれます。Top 100 By を Duration にすることで、実行時間の長いSQLを表示することが可能です

1566032461977.png

また、SQL一つを選択し、どのような実行計画かを確認することが可能となっています

1566032557426.png

Data Guard の 2台目インスタンスを追加

1台目 DBaaS インスタンスが出来ましたが、2台目のインスタンスが追加されていないため、フェールオーバー・スイッチオーバーで2台目インスタンスが Primary Role になった際には、モニタリングが出来なくなります。

2台目インスタンスがPrimary Role になった際にもモニタリングが出来るように、2台目インスタンスを Enterprise Manager へ追加を行います。

追加作業をするために、一時的に スイッチオーバーを実施して、2台目の DBaaS インスタンスを Primary へスイッチします。
OCIのコンソール画面から、スイッチオーバーを行います。

1566057413489.png

Switchover ボタンを押下後、すぐに処理が走り黄色ステータスに変わります。その後、数分待機することで、AVAILABLE ステータスになります。

その後、1台目のインスタンスを追加した手順を、そのまま使用して2台目を追加します。

確認

2台とも追加すると、ターゲットの一覧に2台分表示されます。Data Guard の Secondary の方は、Oracle DB としての通信が出来ないため、赤色矢印となっていますが、正常状態なので無視して頂いて大丈夫です。

1566057538389.png

URL

Data Guard の Install
https://docs.oracle.com/cd/E96517_01/dgbkr/oracle-data-guard-broker-installation-requirements.html#GUID-DBCAC77D-8B4D-4727-B89E-6CFA69302187

Data Guard の構成とフェールオーバー実行例
https://www.oracle.com/technetwork/jp/content/bcp-dg-401575-ja.pdf

Enterprise Manager に必要な要件
https://docs.oracle.com/en/enterprise-manager/cloud-control/enterprise-manager-cloud-control/13.3.1/emoci/index.html

Enterprise Manager を作成
https://qiita.com/ts_carp/items/f351d43d2017e8786768

Enterprise Manager Document
https://www.oracle.com/technetwork/jp/oem/enterprise-manager/documentation/index.html

Enterprise Manager を OCI 上に Install
https://qiita.com/ts_carp/items/f351d43d2017e8786768

Enterprise Managerについて
https://dev.classmethod.jp/cloud/aws/oem-cloud-control-building-oms/

6
4
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
6
4