この章の内容は、次のとおりです。
このマニュアルでは、SNMPサポートを提供する3つのOracle製品について説明します。これらの製品は次のとおりです。
Oracle Database
Oracleリスナー
Oracle Enterprise Manager
Oracle Serverは、オラクル社が開発および販売しているリレーショナル・データベース管理システム(RDBMS)です。このRDBMSには、情報を格納するデータベース、およびその情報にアクセスして操作するサーバー・ソフトウェアが含まれています。
Oracle Serverの詳細は、使用しているシステムに固有の『Oracle Database概要』を参照してください。
Oracleリスナーはプロトコルに依存しないアプリケーション・リスナーで、基礎となる様々なプロトコル上で動作するアプリケーションにかわって接続を受け持ちます。このリスナーは、Oracleのリモート・データ・アクセス製品であるOracle Net Servicesのコンポーネントであり、任意のネットワークで、クライアントとサーバー間およびサーバー相互の通信を可能にします。Oracleリスナーは、単一プロセスまたは単一タスクとして実行されます。
Oracleリスナーの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
Oracle Enterprise Managerは、Oracleデータベース管理者に、直観的で使いやすいインタフェースと、リモート・タスクの実行および事前・事後対策を講じる管理機能による高度な自動化を提供します。また、大規模なデータベース構成に対応する一方で、多数のデータベースを含むインストレーションの処理にも柔軟に対応できるスケーラビリティがあります。Oracle Enterprise Managerには、オープン・アーキテクチャ設計が採用されているため、サード・パーティ・ベンダーとユーザーは、それぞれのアプリケーションをOracleのシステム管理プラットフォームに統合できます。
これらのOracle製品をサポートするMIBは、次のとおりです。
ネットワーク・サービスMIB
パブリックRDBMS MIB
プライベートOracle Database MIB
その他のOracleプライベートMIB
パブリック・ネットワーク・サービスMIB(RFC 1565で説明)には、あらゆる種類のネットワーク・サービス・アプリケーションに適用するように設計された汎用変数が含まれています。Oracleには、このMIBの中で、Oracle Databaseに関連のある変数が実装されています。
これらの変数の特定の値は、構成ファイル、ネットワーク・サービス・アプリケーション内部の表、マスター・エージェント自体など、様々なソースから取り出されます。
Oracleリスナーでは、ネットワーク・サービスMIB変数は使用されません。
パブリックRDBMS MIBは、IETF作業グループによって定義され、リレーショナル・データベース用に提案された標準MIBです。このMIBによって、データベースの検出、識別、およびデータベースのサイズやアクティビティ・レベルの特徴付けが可能になります。
パブリックRDBMS MIBには、管理変数が含まれています。これらの管理変数は、すべてのRDBMSに共通で、ベンダーに依存していません。
このMIBでは、データベースとそのサーバーが明確に区別されますが、現在、Oracle Databaseサブエージェントで認識されるのは、サーバーとデータベースが1対1の標準的なOracle構成のみです。したがって、Oracle Real Application ClustersのサーバーまたはゲートウェイはMIBの対象外となります。
このMIB内のほとんどの情報は、動的なパフォーマンス表(V$表)およびOracle DatabaseのINIT.ORA構成ファイルから取り出されます。
この項では、SNMPオブジェクトID(OID)がどのように割り当てられるかを簡単に説明します。これは、Oracleで実装されているMIBに関係するためです。この項では、特に次の項目について説明します。
Oracle OIDの解釈
Oracleで実装されたパブリックMIBに対するOIDの解釈
OracleプライベートMIB変数のインスタンスに対するOIDの解釈
SNMP OIDの詳細は、「はじめに」にある標準的なSNMPのテキストの一覧を参照してください。
簡単に参照できるように、Oracleで実装された特定のMIBの各オブジェクトのオブジェクトIDを示した表が、そのMIBを説明する付録に記載されています。
SNMP標準(RFC 1442)では、各オブジェクトを一意に識別するために、オブジェクトID(OID)の使用が規定されています。OIDとは、IDの階層型構造を示す一連の要素です。これらの要素は、ドットで区切られた一連の整数の形式であり、インターネット・アドレスの形式に類似しています。
プライベートOracle MIB変数に対するOIDの例を次に示します。
1.3.6.1.4.1.111.4.1.7.1.1
このOIDの各要素は、次のとおりです。
最初の要素(1)は、isoオブジェクトを指します。
2番目の要素(3)は、orgオブジェクトを指します。
3番目の要素(6)は、dodオブジェクトを指します。
4番目の要素(1)は、internetオブジェクトを指します。
5番目の要素(4)は、privateオブジェクトを指します。
6番目の要素(1)は、enterprisesオブジェクトを指します。
7番目の要素(111)は、Oracleオブジェクトを指します。
前述の各要素は、Oracle以外のエンティティによって割り当てられます。したがって、Oracle ID空間内のすべてのオブジェクト(つまり、OracleによってOIDが割り当てられたオブジェクト)は、ルートOID 1.3.6.1.4.1.111を共有します。
このOIDの例を継続して使用した場合、Oracleでは、そのプライベートID空間の要素を次のように定義しています。
8番目の要素(4)は、MIBサービスIDです。Oracleでは、次のMIBサービスIDを定義しています。
4: プライベートOracle Database MIB
5: OracleリスナーMIB
9番目の要素(1)は、MIBオブジェクトIDです。Oracleでは、各サービスのMIBオブジェクトIDを次のように定義しています。
1: SNMP変数
2: SNMPトラップ
10番目の要素(7)は、MIB表ID(この例では、oraDbConfigTable)です。
11番目の要素(1)は、表エントリIDです。この要素は、プレース・ホルダーとして考えることができ、常に1です。
12番目の要素(1)は、リーフ・オブジェクトID(表内の特定の変数を識別)です。
Oracle OID空間内に属する4つのプライベートOracle MIBの他に、Oracleでは、Oracle OID空間外に属する2つのパブリックMIB(ネットワーク・サービスMIBおよびRDBMS MIB)の一部が実装されています。これらのMIB内の変数のオブジェクトIDは、それぞれのRFCで割り当てられています。
パブリックRDBMS MIB変数に対するOIDの例を次に示します。
1.3.6.1.2.1.39.1.2.1.3
このOIDの最初の4つの要素(1.3.6.1)は、OracleルートIDの4つの要素に一致しており、このオブジェクトがiso、org、dodおよびinternetの各オブジェクトの下に位置することを示します。ただし、5番目の要素(2)は、このオブジェクトがインターネット管理OID空間に属することを示します。7番目の要素(39)は、このオブジェクトがパブリックRDBMS MIBに属することを示します。パブリックRDBMS MIBのすべての変数は、このルートOID 1.3.6.1.2.1.39を共有します。9番目の要素(2)は、このオブジェクトがrdbmsDbInfoTableの一部であることを示します。11番目の要素(3)は、これをリーフ・オブジェクトrdbmsDbInfoSizeUnitsとして識別します。
パブリック・ネットワーク・サービスMIB変数に対するOIDの例を次に示します。
1.3.6.1.2.1.27.1.1.1.6
このOIDの最初の4つの要素(1.3.6.1)は、OracleルートIDの4つの要素に一致しており、このオブジェクトがiso、org、dodおよびinternetの各エンティティの下に位置することを示します。ただし、5番目の要素(2)は、このオブジェクトがインターネット管理OID空間に属することを示します。7番目の要素(27)は、このオブジェクトがパブリック・ネットワーク・サービスMIBに属することを示します。パブリック・ネットワーク・サービスMIBのすべての変数は、このルートOID 1.3.6.1.2.1.27を共有します。9番目の要素(1)は、このオブジェクトがapplTableの一部であることを示します。11番目の要素(6)は、これをリーフ・オブジェクトapplOperStatusとして識別します。
OracleのMIB内の変数は複数の表で定義されるため、単一の変数について複数インスタンスがある場合があります。たとえば、特定の管理対象ノード上で2つのOracleデータベースが実行されている場合、各データベースには、applInboundAssociations、rdbmsDbName、rdbmsSrvInfoDiskReadsなど、それぞれ独自のMIB変数値が存在することになります。
すべての変数にサービス単位で索引が付けられるわけではありません。1つの変数が1つのデータベースに対して多数のインスタンスを持つ場合もあります。たとえば、rdbmsSrvParamEntryは単一のデータベース構成パラメータを示していますが、その同じ管理対象ノードでは、rdbmsSrvParamNameのインスタンスが多数生じます。
これらの変数の複数インスタンスを一意に識別するために、各MIB表には、その表の行を一意に識別する1つ以上の変数によって索引が付けられます(これらの索引変数は、概念的にはリレーショナル・データベース表の主キーと同じです)。変数の特定のインスタンスを示すには、変数のOIDに、その変数が属するMIB表の索引変数の値を連結します。
たとえば、rdbmsDbNameは、変数rdbmsDbIndexによって索引が付けられたrdbmsDbTable内に定義されています。たとえば、ホスト上で2つのデータベースが実行されており、一方のSNMP索引が2、もう一方のSNMP索引が4だとします。この場合、最初のデータベースの名前は、rdbmsDbNameに対するOID(1.3.6.1.2.1.39.1.1.1.4)にrdbmsDbIndexの該当する値(2)を連結し、1.3.6.1.2.1.39.1.1.1.4.2として指定できます。同様に、2番目のデータベースの名前は、1.3.6.1.2.1.39.1.1.1.4.4の値になります。
表が複数の変数によって索引を付けられている場合は、各索引変数の該当する値をOIDの終わりに、表のMIB定義のINDEX句にリストされている順にドットで区切って追加します。前述のホスト(rdbmsDbIndexは4)上の2番目のデータベースの5番目のデータ・ファイル(5)のサイズ(oraDbDataFileSizeAllocated、つまり1.3.6.1.4.1.111.4.1.3.1.3)の値は、1.3.6.1.4.1.111.4.1.3.1.3.4.5です。