EM Express(Enterprise Manager Express)は、Oracle Database 12c以降で使用可能な軽量なウェブベースの管理ツールです。これにより、GUIを通じてデータベースのパフォーマンスモニタリングや基本的な管理作業を行うことができます。この記事では、EM Expressの概要と手動での構成方法について解説します。
1. EM Expressの概要
EM Expressは、従来のEnterprise Manager(EM)に比べて非常に軽量であり、データベースのリソース消費を最小限に抑えたまま運用できる点が特徴です。以下は、EM Expressの主な機能です。
- パフォーマンス監視: リアルタイムでのデータベースのパフォーマンスやリソース使用状況を監視できます。
- SQLモニタリング: 実行中のSQLステートメントを監視し、ボトルネックやパフォーマンス問題を特定します。
- ストレージ管理: 表領域やデータファイルの使用状況を管理・監視します。
- ユーザー管理: データベースユーザーの作成、削除、権限の管理が可能です。
- レポート機能: データベースの統計情報を収集し、レポートを作成できます。
メリット
- 軽量: データベースのリソースを大量に消費しない。
- インストール不要: データベースと一緒に自動的にインストールされるため、追加のインストールが不要。
- 簡易なセットアップ: 特別なソフトウェアやエージェントを設定することなく、ブラウザからアクセスできる。
2. EM Expressを構成する手順
EM Expressはデフォルトでインストールされますが、使用するには構成が必要です。ここでは、EM Expressを有効にして、アクセスできるように構成する手順を説明します。
手順1: リスナーが起動していることを確認
EM Expressを使用するためには、データベースのリスナーが起動している必要があります。リスナーの状態を確認するために、次のコマンドを使用します。$ lsnrctl status
[oracle@v19single ~]$ lsnrctl status LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 11-10月-2024 12:37:05 Copyright (c) 1991, 2023, Oracle. All rights reserved. (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))に接続中 リスナーのステータス ------------------------ 別名 LISTENER バージョン TNSLSNR for Linux: Version 19.0.0.0.0 - Production 開始日 11-10月-2024 12:25:04 稼働時間 0 日 0 時間 12 分 41 秒 トレース・レベル off セキュリティ ON: Local OS Authentication SNMP OFF ログ・ファイル /u01/app/oracle/diag/tnslsnr/v19single/listener/alert/log.xml リスニング・エンドポイントのサマリー… (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=v19single)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=v19single)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/v19/xdb_wallet))(Presentation=HTTP)(Session=RAW)) サービスのサマリー… サービス"v19"には、1件のインスタンスがあります。 インスタンス"v19"、状態READYには、このサービスに対する1件のハンドラがあります… サービス"v19XDB"には、1件のインスタンスがあります。 インスタンス"v19"、状態READYには、このサービスに対する1件のハンドラがあります… コマンドは正常に終了しました。 [oracle@v19single ~]$
このコマンドでリスナーが正常に動作しているか確認します。もしリスナーが停止している場合は、以下のコマンドで起動します。$ lsnrctl start
[oracle@v19single ~]$ lsnrctl status
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 11-10月-2024 12:53:47
Copyright (c) 1991, 2023, Oracle. All rights reserved.
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))に接続中
TNS-12541: TNS: リスナーがありません。 ★リスナーが停止している
TNS-12560: TNS: プロトコル・アダプタ・エラー
TNS-00511: リスナーがありません。
Linux Error: 111: Connection refused
[oracle@v19single ~]$ lsnrctl start ★リスナーを起動
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 11-10月-2024 12:54:36
Copyright (c) 1991, 2023, Oracle. All rights reserved.
/u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnrを起動しています。お待ちくだ さい...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
ログ・メッセージを/u01/app/oracle/diag/tnslsnr/v19single/listener/alert/log.xml に書き込みました。
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=v19single)(PORT=1521)))
(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 19.0.0.0.0 - Production
開始日 11-10月-2024 12:55:16
稼働時間 0 日 0 時間 2 分 30 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
ログ・ファイル /u01/app/oracle/diag/tnslsnr/v19single/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=v19single)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=v19single)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/v19/xdb_wallet))(Presentation=HTTP)(Session=RAW))
サービスのサマリー...
サービス"v19"には、1件のインスタンスがあります。
インスタンス"v19"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"v19XDB"には、1件のインスタンスがあります。
インスタンス"v19"、状態READYには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。
[oracle@v19single ~]$
手順2: dispatchers に protocol=tcp が含まれていることを確認
Oracle DatabaseでEM Expressを利用するためには、dispatchers
の設定に protocol=tcp
が含まれている必要があります。以下のSQLコマンドで設定を確認します。SQL> SHOW PARAMETER dispatchers
SQL> SHOW PARAMETER dispatchers
NAME TYPE VALUE
--------------------- ------------------ ---------------------------------
dispatchers string (PROTOCOL=TCP) (SERVICE=v19XDB) ★含まれている
max_dispatchers integer
出力に PROTOCOL=TCP
が含まれていることを確認してください。もし設定されていない場合は、以下のコマンドで追加できます。SQL> ALTER SYSTEM SET DISPATCHERS = '(PROTOCOL=TCP)(SERVICE=<サービス名>)' SCOPE=BOTH;
SQL> SHOW PARAMETER dispatchers
NAME TYPE VALUE
--------------------- ------------------ ---------------------------------
dispatchers string ★設定されていない
max_dispatchers integer
SQL> ALTER SYSTEM SET DISPATCHERS = '(PROTOCOL=TCP) (SERVICE=v19XDB)' SCOPE=BOTH;
システムが変更されました。
SQL> SHOW PARAMETER dispatchers
NAME TYPE VALUE
--------------------- ------------------ ---------------------------------
dispatchers string (PROTOCOL=TCP) (SERVICE=v19XDB) ★
max_dispatchers integer
手順3: shared_servers が0より大きいことを確認
次に、shared_servers
の設定が有効であることを確認します。これが無効(0)になっていると、EM Expressは使用できません。確認には以下のコマンドを使用します。SQL> SHOW PARAMETER shared_servers
SQL> SHOW PARAMETER shared_servers
NAME TYPE VALUE
--------------------- ------------------ ---------------------------------
max_shared_servers integer
shared_servers integer 1
shared_servers
が0より大きい値になっていることを確認してください。もし値が0の場合、以下のコマンドで設定を変更します。SQL> ALTER SYSTEM SET SHARED_SERVERS = 1 SCOPE=BOTH;
SQL> SHOW PARAMETER shared_servers
NAME TYPE VALUE
--------------------- ------------------ ---------------------------------
max_shared_servers integer
shared_servers integer 0
SQL> ALTER SYSTEM SET SHARED_SERVERS = 1 SCOPE=BOTH;
システムが変更されました。
SQL> SHOW PARAMETER shared_servers
NAME TYPE VALUE
--------------------- ------------------ ---------------------------------
max_shared_servers integer
shared_servers integer 1
手順4: リスナーのポートを確認する
これまでの準備が整ったら、リスナーのポートを確認します。EM Expressはデフォルトでデータベースの専用ポートを使用します。このポートが正しく設定されていることを確認するために、以下のSQLコマンドを実行します。SQL> SELECT DBMS_XDB_CONFIG.GETHTTPSPORT() FROM DUAL;
SQL> SELECT DBMS_XDB_CONFIG.GETHTTPSPORT() FROM DUAL;
DBMS_XDB_CONFIG.GETHTTPSPORT()
------------------------------
0
もし、ポートが0で返される場合は、EM Expressは構成されていない状態です。次に、ポート番号を設定します。
手順5: HTTPSポートの設定
EM ExpressはHTTPSポートを使用します。次のコマンドを使用して、適切なポートを設定します。たとえば、5500番ポートを使用する場合:SQL> EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5500);
設定が成功したら、もう一度ポート番号を確認します。SQL> SELECT DBMS_XDB_CONFIG.GETHTTPSPORT() FROM DUAL;
SQL> EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5500);
PL/SQLプロシージャが正常に完了しました。
SQL> SELECT DBMS_XDB_CONFIG.GETHTTPSPORT() FROM DUAL;
DBMS_XDB_CONFIG.GETHTTPSPORT()
------------------------------
5500
手順6: ファイアウォールの設定
もしEM Expressにリモートからアクセスする場合は、ファイアウォールの設定で、使用しているポート(例: 5500番)へのアクセスを許可する必要があります。
手順7: EM Expressでアクセスできるユーザーの設定
EM Expressにアクセスできるのは、通常データベース管理者の権限を持つユーザー(SYSやSYSTEMなど)ですが、特定のユーザーにアクセス権限を付与することも可能です。これには、該当ユーザーに適切な権限を割り当てる必要があります。
- 既存のユーザーに権限を付与する既存のデータベースユーザーにEM Expressへのアクセス権限を付与するためには、そのユーザーに
EM_EXPRESS_BASIC
またはEM_EXPRESS_ALL
のロールを付与します。これにより、ユーザーはそれぞれのロールに応じた権限でEM Expressを使用できるようになります。EM_EXPRESS_BASIC
ロール: 基本的なモニタリング機能にアクセスできます。EM_EXPRESS_ALL
ロール: データベースの完全な管理機能にアクセスできます。
SQL> GRANT EM_EXPRESS_BASIC TO <ユーザー名>;
または、すべての権限を付与する場合は:SQL> GRANT EM_EXPRESS_ALL TO <ユーザー名>;
- 新しいユーザーの作成と権限付与必要に応じて、新しいユーザーを作成し、EM Expressへのアクセス権限を付与することもできます。次の手順で新しいユーザーを作成し、権限を付与します。
SQL> CREATE USER <ユーザー名> IDENTIFIED BY <パスワード>;
SQL> GRANT CONNECT, RESOURCE TO <ユーザー名>;
SQL> GRANT EM_EXPRESS_BASIC TO <ユーザー名>;
または、完全な権限を持つ管理者としてのユーザーを作成する場合は:SQL> CREATE USER <ユーザー名> IDENTIFIED BY <パスワード>;
SQL> GRANT CONNECT, RESOURCE, DBA TO <ユーザー名>;
SQL> GRANT EM_EXPRESS_ALL TO <ユーザー名>;
これにより、該当ユーザーはEM Expressにアクセスでき、データベースのモニタリングや管理を行えるようになります。必要な権限は、システムのセキュリティポリシーに従って適切に割り当ててください。
手順8: EM Expressへアクセス
構成が完了したら、ブラウザからEM Expressにアクセスできます。以下のURLにアクセスしてください。https://<データベースサーバーのホスト名orIPアドレス>:<ポート番号>/em
例: https://localhost:5500/em
https://192.168.56.10:5500/em
3. トラブルシューティング
- アクセスできない場合:
- リスナーのポート設定を再度確認してください。
- データベースが正しく起動しているか確認します。
- ファイアウォールの設定が正しいか確認します。
- パフォーマンスが低い場合:
- EM Expressは軽量ですが、同時に大量のセッションを処理することは得意ではありません。多数のユーザーが同時にアクセスする環境では、別途フル機能のEnterprise Managerを検討する必要があります。
まとめ
EM Expressは、Oracleデータベース管理のための簡易なツールですが、パフォーマンス監視や基本的な管理タスクを効率的に行うことができます。データベースのリソースを抑えつつ、管理者に必要な機能を提供するため、特に小規模環境やリソースが限られた環境での使用に適しています。
[参考]
2日でデータベース管理者
コメント