Oracle データベースのディスカバリー

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:15分
  • ディスカバリーは、UNIX または Windows オペレーティングシステム上で実行されている Oracle データベースインスタンスを識別できます。また、Real Application Cluster (RAC) を実行する Oracle Clusterware を検索することもできます。

    パターンが Oracle インストールのディスカバリーを実行します。そのようなパターンは新しいインスタンスのプローブを複数置き換えます。プローブを引き続き使用する場合は、水平ディスカバリープローブを非アクティブ化することで、パターンを起動し、必要なプローブを有効にすることができます。
    注:
    UNIXOracle および WindowsOracle は、RAC 単一ノード検出をサポートしていません。
    ディスカバリーは、データベースカタログと呼ばれる Oracle のデータベース自体は検出しません。
    注:
    プローブからパターンへの移行の詳細については、ナレッジ記事 KB0694477を参照してください。

    認証情報

    次の認証情報を設定します。
    認証情報タイプ 追加情報

    適用可能な認証情報

    適用可能な認証情報は、次の 2 つのユースケースで必須です。
    • リモートの Oracle DB インスタンスに対する SQL クエリの実行
    • データベースリンクへの接続を作成する場合
    • ソフトウェア資産管理が有効になっている場合
    Oracle データベースのインストール時に構成したデータベースユーザーを追加する必要があります。Oracle インスタンス [cmdb_ci_db_ora_instance] を CI タイプに指定します。

    ユーザーには tnsnames.ora パラメーターファイルへのアクセス権も必要です。tnsnames.ora が正しく構成され、ターゲットの Windows ホストの Oracle パスに存在することを確認します。また、使用するディスカバリー認証情報が tnsnames.ora ファイルを読み込むことができることを確認します。

    ユーザーには、SQL*Plusコマンドライン・ツールの権限と、次の表に対してSELECT問合せを実行する権限が必要です。
    • PRODUCT_COMPONENT_VERSION
    • V$VERSION
    • V$DATABASE
    • V$PARAMETER
    Windows 資格情報 また、アプリケーションの認証情報に加えて、Windows と SSH の認証情報を使用することもできます。Windows の認証情報の場合、ユーザーは tnsnames.ora ファイルの読み込み権限を有している必要があります。SSH の認証情報では、oratab ファイルの読み込み権限とシステムパラメーターファイルの読み込み権限を許可する必要があります。

    ディスカバリーおよびサービスマッピングに必要な特権コマンドのリストについては、「特権ユーザーを必要とする サービスマッピング コマンド」を参照して、組織内で Unix ベースのホストを検出およびマッピングするために、昇格された権限を必要とするコマンドのリストを確認してください。

    SSH 認証情報

    その他の要件

    ディスカバリーは、ora_pmon_ で始まるプロセスから UNIX 上の Oracle データベースの実行中のインスタンスを識別します。このプロセスが、書き込みディスカバリー用に指定した IP 範囲で実行されていることを確認してください。ディスカバリーは oracle.exe プロセスから Windows 上の Oracle データベースの実行中のインスタンスを識別します。このプロセスが指定した IP 範囲で実行されていることを確認してください。

    Oracle Clusterware の場合、ホスト名を IP アドレスに関連付ける /etc/hosts/ ファイルを読み込む権限も必要です。

    Oracle Clusterware では次のコマンドが実行されます。
    コマンド 説明

    ps -ef | grep 'crsd.bin' |grep -v grep

    Oracle CRS プロセスが実行されているかどうかを確認します。

    ps -ef |grep リスナー |grep -v $$ |ヘッド-1 |awk '{print $8}'

    Oracle ホームを取得します。

    /u01/app/12.1.0.2/grid/bin/olsnodes -c |egrep -v 'エラー|リターンコード'

    Oracle CRS クラスター名を取得します。

    /u01/app/12.1.0.2/grid/bin/crsctlクエリCRSソフトウェアバージョン|egrep -v 'エラー|リターンコード'

    Oracle CRS クラスター ID を取得します。

    /u01/app/12.1.0.2/grid/bin/crsctlクエリCRSソフトウェアバージョン|egrep -v 'エラー|リターンコード'

    Oracle CRS バージョンを取得します。

    /u01/app/12.1.0.2/grid/bin/olsnodes |egrep -v 'エラー|リターンコード'

    Oracle CRS ノードを取得します。

    /u01/app/12.1.0.2/grid/bin/crsctl status server |egrep -v 'エラー|リターンコード'

    Oracle CRS ノードステータスを取得します。

    /u01/app/12.1.0.2/grid/bin/crsctl stat res -f |tr '\n' '#'

    Oracle CRS リソースを取得します。
    /u01/app/12.1.0.2/grid/bin/crsctl stat res -p | grep -v CHECK_R |grep -v error |grep -v failed Oracle CRS VIP リソースを取得します。

    /u01/app/12.1.0.2/grid/bin/srvctl config scan | tr '\n' ‘ '

    Oracle RAC SCAN VIP の構成を取得します。

    /u01/app/12.1.0.2/grid/bin/srvctl config vip -node ol7-121-rac1|egrep ' 名前' |awk '{print $3}'

    Oracle CRS VIP の名前を取得します。

    /u01/app/12.1.0.2/grid/bin/srvctl config vip -node ol7-121-rac1|grep ' IPv4アドレス:' |awk '{print $4}'

    Oracle CRS VIP の ip_address を取得します。
    sudo /u01/app/12.1.0.2/grid/bin/ocrcheck | egrep -v 'error|return code' を実行する Sudo 権限

    分類子、プローブ、パターン

    ディスカバリーは Oracle データベースディスカバリーに次の分類子、プローブ、およびパターンを使用します。
    分類子 トリガープローブ パターン
    Oracle インスタンス
    • 水平ディスカバリープローブ:パターンを起動します。
    • Powershell-Oracle - インスタンス PFile (Windows 用)*
    • Powershell-Oracle - インスタンスバージョン (Windows 用)*
    • SSHCommand-Oracle - インスタンスの詳細 (Linux 用)*
    アプリケーションパターン:
    • Windows 上 Oracle DB パターン
    • UNIX 上 Oracle DB のパターン

    Linux サーバーパターンで使用される、この共有ライブラリーパターン:

    UNIX クラスター - ORACLE Clusterware
    注:
    この共有ライブラリーパターンは、crsd.bin プロセスが Oracle データベースサーバー上で実行されている場合にトリガーされます。
    Oracle リスナー SSHCommand-Oracle - リスナーの詳細 なし
    * 新しいインスタンスで非アクティブなプローブ

    パターンを使用するには、分類子の水平パターンプローブに正しいパターンが指定されていることを確認します。手順については、「分類子への水平パターンプローブの追加」を参照してください。

    収集されるデータ

    UNIX と Windows の両方について、次のデータが Oracle インスタンス [cmdb_ci_db_ora_instance] テーブルで収集されます。
    表 : 1. UNIX マシンで収集されるデータ
    ラベル フィールド名 追加情報
    SID sid ora_pmon_ で始まるプロセスの名前から取得されます。
    インストールディレクトリー install_directory ORA_HOME のパスから取得されます。
    バージョン version 次の順序で取得されます。
    • ORA_HOME/bin/sqlplus /NOLOG コマンドの出力から
    • ORA_HOME/bin/lsnrctl ステータスコマンドの出力から
    • ORA_HOME のパスから
    パラメーターファイル pfile システムパラメーターファイルの場所について、次の場所が探索されます。探索した場所のいずれかにこのファイルが存在しない場合、ディスカバリーはファイルを見つけることができず、エラーを報告します。
    • oracle_home/dbs/spfileSID.ora
    • oracle_home/dbs/spfile.ora
    • oracle_home/dbs/initSID
    Oracle ホーム oracle_home ORATAB ファイルから取得されます。
    エディション edition context.xml ファイルから取得されます。
    名前 name SID@ホスト名」形式の SID 名とホスト名の組み合わせ。
    TCP ポート tcp_port tnsnames.ora ファイルまたは lsnrctl status コマンドから取得されます。有効な情報が取得されない場合は、デフォルトのポート 1521 が割り当てられます。
    注:
    パターン拡張と収集されたその他の情報については、「Oracle のオプション」を参照してください。
    表 : 2. Windows マシンで収集されるデータ
    ラベル フィールド名 追加情報
    SID sid oracle.exe プロセスに渡されるプロセスパラメーターから取得されます。
    インストールディレクトリー install_directory
    バージョン version ORA_HOME/bin/sqlplus.exe -V コマンドの出力から取得されます。
    パラメーターファイル pfile システムパラメーターファイルの場所について、次の場所が探索されます。探索した場所のいずれかにこのファイルが存在しない場合、ディスカバリーはファイルを見つけることができず、エラーを報告します。
    • oracle_home\database\spfileSID.ora
    • oracle_home\database\spfile.ora
    • oracle_home\database\initSID
    Oracle ホーム oracle_home oracle.exe のパスから解析されます。
    エディション edition
    注:
    パターン拡張と収集されたその他の情報については、「Oracle のオプション」を参照してください。

    Oracle のオプション

    ディスカバリーは、インスタンスで有効にした Oracle オプションを検索することもできます。オプションについては、Oracle の Web サイト (https://docs.oracle.com/en/) を参照してください。ディスカバリーはオプションを Oracle オプション [samp_oracle_options] テーブルに保存します。
    ラベル フィールド名
    インスタンス インスタンス
    オプション option
    ライセンス可能 ライセンス可能
    現在使用されている currently_used
    最初の使用日 first_usage
    前回の使用日 last_usage
    最後のサンプル日付 last_sample
    検出された使用率 detected_usage
    サンプル間隔 sample_interval
    必要なテーブル権限 追加情報
    次のテーブルには、UNIXWindows の Oracle オプションの拡張機能の一部としてアクセスされます。
    • DBA_FEATURE_USAGE_STATISTICS
    • CDB_FEATURE_USAGE_STATISTICS
    • V$DATABASE
    • V$VERSION
    • GV$PARAMETER
    • V$CONTAINERS
    • V$INSTANCE
    次のパターン拡張では、Oracle の options_packs_usage_statistics.sql スクリプトを使用しています。この sql スクリプトは、DB サーバーバージョン 11.2 以降を対象としています。スクリプトを実行するには、 Select Any Dictionary 権限が必要です。スクリプトの使用方法に関する詳細については、https://support.oracle.com/portal/ にあるサポートドキュメント ID 13172651.1 を参照してください。
    • UNIX の Oracle オプション拡張
    • Windows の Oracle オプション拡張
    表 : 3. Clusterware で収集されるデータ
    テーブル ラベルとフィールド名
    Unix クラスター [cmdb_ci_unix_cluster]

    名前 [name]

    クラスターステータス [cluster_status]

    クラスタータイプ [cluster_type]

    IP アドレス [ip_address]

    簡単な説明 [short_description]

    クラスター ID [cluster_id]

    クラスターバージョン [cluster_version]

    cmdb_ci_unix_cluster_node

    名前 [name]

    ノードステータス [node_state]

    IP アドレス [ip_address]

    ノードステータス [node_status]

    cmdb_ci_unix_cluster_resource

    名前 [name]

    リソースタイプ [resource_type]

    リソースステータス [resource_status]

    プロパティ [properties]

    cmdb_ci_cluster_vip

    名前 [name]

    IP アドレス [ip_address]

    クラスター名 [cluster_name]

    クラスター ID [cluster_id]

    依存関係ビューで、Oracle データベースサーバーの +1 は、それがクラスターの一部であることを示しています。

    Extend Oracle Instance 拡張

    注:
    ディスカバリーは、Extend Oracle Instance 拡張を使用してインスタンスの追加属性を検索することもできます。オプションの詳細については、Oracle のウェブサイト (https://docs.oracle.com/en/) を参照してください。ディスカバリーは、これらの属性を Oracle インスタンス [cmdb_ci_db_ora_instance] テーブルに保存します。
    ラベル フィールド名
    インスタンス インスタンス
    ホスト名 host_name
    IS_CDB cdb_yn
    DB の一意の名前 db_unique_name
    DB 名 database_name
    有効化されたレプリケーション replication_enabled
    必要なテーブル権限 追加情報
    次のテーブルは、UNIXWindows の Extend Oracle Instance 拡張の一部としてアクセスされます。
    • V$DATABASE
    • V$INSTANCE
    Extend Oracle Instance 拡張をインストールする必要があります。この拡張は、ディスカバリーとサービスマッピングパターンアプリケーションのバージョン 1.0.72 以降に含まれています。これらのアプリケーションは ServiceNow Store からダウンロードできます。

    仮想マシン上の Oracle インスタンス

    Oracle インスタンスが仮想マシンでホストされている場合、システムによって CI 間に関係が作成されます。
    CI 関係 CI
    Oracle インスタンス サービスオファリング元 コンピューター [cmdb_ci_computer] またはサーバー [cmdb_ci_server]
    注:
    これは仮想マシンです。[仮想] フィールドは [true] です。
    コンピューター [cmdb_ci_computer] またはサーバー [cmdb_ci_server]
    注:
    これは仮想マシンです。[仮想] フィールドは [true] です。
    仮想化担当: コンピューター [cmdb_ci_computer] またはサーバー [cmdb_ci_server]
    注:
    これは仮想マシンではありません。

    AWS または Azure クラウドでホストされている仮想マシン上の Oracle インスタンス

    基底クラス 関係 依存クラス
    Oracle インスタンス サービスオファリング元 コンピューター [cmdb_ci_computer]
    注:
    これは仮想マシンです。[仮想] フィールドは [true] です。
    コンピューター [cmdb_ci_computer]
    注:
    これは仮想マシンです。[仮想] フィールドは [true] です。
    仮想化担当: コンピューター [cmdb_ci_computer]
    注:
    これは仮想マシンではありません。
    コンピューター [cmdb_ci_computer]
    注:
    これは仮想マシンです。[仮想] フィールドは [true] です。
    仮想化担当: 仮想マシンインスタンス [cmdb_ci_vm_instance]
    注:
    vCPU カウントはこのテーブルに入力されます。
    仮想マシンインスタンス [cmdb_ci_vm_instance] サービスオファリング元 AWS データセンター [cmdb_ci_aws_datacenter] または Azure データセンター [cmdb_ci_azure_datacenter]

    Clusterware の関係

    CI 関係 CI
    Unix クラスター [cmdb_ci_unix_cluster] Virtualizes::Virtualized by クラスター仮想 IP [cmdb_ci_cluster_vip]
    Unix クラスターリソース [cmdb_ci_unix_cluster_resource] Defines resources for::Gets resources from Unix クラスターノード [cmdb_ci_unix_cluster_node]
    クラスター仮想 IP [cmdb_ci_cluster_vip] Uses::Used by Unix クラスターノード [cmdb_ci_unix_cluster_node]
    Unix クラスターノード [cmdb_ci_unix_cluster_node] Cluster of::Cluster Unix クラスター [cmdb_ci_unix_cluster]
    Unix クラスターノード [cmdb_ci_unix_cluster_node] Hosted on:Hosts Unix クラスター [cmdb_ci_unix_cluster]
    Unix クラスターリソース [cmdb_ci_unix_cluster_resource] Defines resources for::Gets resources from Unix クラスター [cmdb_ci_unix_cluster]

    Unix クラスター [cmdb_ci_unix_cluster]

    Hosts::Hosted on Linux サーバー [cmdb_ci_linux_server]
    Unix クラスターノード [cmdb_ci_unix_cluster_node] Hosted on::Hosts Linux サーバー [cmdb_ci_linux_server]