CiscoWorks Network Compliance Manager アドミニストレーション ガイド
13 設定テキストのフルテキスト検索(Oracle および SQL Server)
13 設定テキストのフルテキスト検索(Oracle および SQL Server)
発行日;2012/11/19 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 1MB) | フィードバック

設定テキストのフルテキスト検索(Oracle および SQL Server)

CiscoWorks Network Compliance Manager ソフトウェア(NCM)は、設定テキストの [contains (full text)] 検索をサポートします。フルテキスト検索を有効にすると、次のレポート オプションでさらに高速な設定テキスト検索を使用できます。

  • [Reports] > [Search For] > [Devices] > [Configuration Text] > [contains (full text)]
  • [Reports] > [Search For] > [Configurations] > [Configuration Text] > [contains (full text)]
  • [Reports] > [Search For] > [Device Templates] > [Configuration Text] > [contains (full text)]
  • [Reports] > [Advanced Search] > [Search Criteria] > [Configuration Text] > [contains (full text)]

さらに、[Search Criteria] > [Configuration Text] > [contains (full text)] 検索の結果に基づいて動的グループまたは動的ポリシー スコープを作成できます。

同様に、これらの検索では、 [does not contain (full text)] の設定テキストの検索もサポートします。 [contains (full text)] および [does not contain (full text)] のオペレータでは、検索は常に大文字と小文字を区別しません。

[contains (full text)] 検索はインデックス付きの検索で、データベースがフルテキスト検索に対して有効である必要があります。

[contains (full text)] 検索にはインデックス付きなので、 [contains] 検索が行うよりも結果を高速に返します。ただし、 [contains (full text)] 検索がサポートするオプションは [contains] 検索よりも少ないです。

 

この機能は MySQL ではサポートされていません。

ここでは、次のトピックについて説明します。

設定テキストのフルテキスト検索の有効化

フルテキスト検索は、データベース内のテキスト レコードのインデックスにアクセスします。インデックスを初めて生成する際には、時間およびディスク領域が必要になります。

 

Oracle Text(Oracle データベース用)または SQL Server Full Text Search サービス(Microsoft SQL Server データベース用)がまだ有効でない場合は、データベースのダウンタイムも計画してください。

NCM は、スナップショット タスク中に追加された新しい設定に段階的にインデックス付けし、削除されたコンフィギュレーションのインデックス エントリを削除することによって、フルテキスト インデックスを管理します。

 

次の点に注意してください。

  • インデックスの生成は CPU を大量に消費するので、NCM タスクは、フルテキスト検索を有効化するプロセス中は通常よりも実行が遅くなる可能性があります。
  • インデックスの生成が進行している間は、NCM 管理エンジンを再起動しないでください。

水平スケーラビリティ環境で、 1 台の NCM サーバでフルテキスト検索を有効にします。

マルチマスター分散システム環境で、 NCM サーバでフルテキスト検索を有効にします。有効化プロシージャを並列実行します。つまり、いずれの NCM サーバで手順 2 を開始する前にも、各 NCM サーバで手順 1 を完了します。

次のデータベース タイプに適した手順に従ってください。

Oracle でフルテキスト検索を有効化

Oracle データベースでフルテキスト検索を有効にする手順は、次のとおりです。

Oracle Text が有効で、必要な権限と領域があることを確認します。
  1. NCM をインストールするのに使用したクレデンシャルを使用して NCM プロキシにログインします。
次のコマンドを実行します。
fulltextsearch -option analyze
analyze コマンドの出力を調べます。
  • Oracle Text が有効になっていない場合は、Oracle データベース管理者に連絡し、設定を変更します。Oracle Text の有効化に関する詳細については、『 Oracle Text Application Developer's Guide 』の「Administering Oracle Text」を参照してください。
  •  

    もう 1 つの情報源としては、Oracle MetaLink のドキュメント コレクションですが、これには Oracle で MetaLink のアカウントを持っている必要があります。対象となるドキュメントには次のものがあります。

    • 280713.1:『 Manual installation, deinstallation of Oracle Text 10gR1
    • 979705.1:『 Manual installation, deinstallation of Oracle Text 10gR2
    • 579601.1:『 Manual installation, deinstallation and verification of Oracle Text 11gR1
    • 970473.1:『 Manual installation, deinstallation and verification of Oracle Text 11gR2
  • Oracle Text が有効になっている場合は、次の手順を実行します。
  • データの消去が必要かどうかを決定します。analyze コマンドの出力がデータベースの消去を推奨している場合は、フルテキスト インデックスを生成する前にこのプロセスを完了します。詳細については、『 Installation and Upgrade Guide for CiscoWorks Network Compliance Manager 1.8 』の「Data Pruning」を参照してください。
  • インデックスの生成プロセスに必要なおおよその追加領域が、データベース サーバ上で利用できることを確認します。

インデックスの設定プロセスは、設定テキスト サイズの 50 % から 200 % がディスク領域で利用できる必要があります。実際必要になる領域は、データベースの内容に依存します。

インデックスの設定プロセスは、リソースを大量に消費します。実際の時間は、データベースのハードウェアおよび構成、さらにはインデックスを作成するテキストの量によって異なります。

詳細については、『 Oracle Text Application Developer's Guide 』の「Frequently Asked Questions About Indexing Performance」を参照してください。

  1. NCM コンソール の中で、インデックス生成が完了するのに必要なおおよその時間の終了前に開始するようにスケジュールされているスナップショットの作成タスクを遅らせます。
  2. 次の手順でフルテキスト インデックスを生成します。
  3. NCM プロキシから次のコマンドを実行します。
fulltextsearch -option enable -numthreads T

T は、並列スレッドの数です。指定できる値は、1 からデータベースサーバのコア数よりも 1 少ない数です。

enable コマンドの出力を調べます。
  • 予測されるステータスは、 Complete & Valid です。
  • ステータスが In Progress の場合、インデックスの生成が終わるまで待ちます。
  • ステータスが Invalid の場合、fulltextsearch -option disable コマンドを使用してインデックスを削除し、 NCM プロキシから次のコマンドを実行します。 を繰り返します。
  •  

    インデックス生成中はコマンドプロンプト ウィンドウは閉じても構いません。このとき、インデックス生成のステータスを判断するには、次のコマンドを実行します。

    fulltextsearch -option status

    または、トラブルシューティング機能/プロキシをデバッグに設定し、NCM ログを確認することもできます。

  • 水平スケーラビリティ環境では、NCM データベースに接続されているその他すべての NCM サーバで NCM を再起動し、データベース設定を同期します。
  • Windows :[Services] コントロール パネルを開きます。サービスのリストの中で、次の各サービスを右クリックし、[Restart] をクリックします。
  • TrueControl Management Engine
  • TrueControl FTP Server
  • TrueControl SWIM Server
  • TrueControl Syslog Server
  • TrueControl TFTP Server
  • UNIX :次のコマンドを実行します。
/etc/init.d/truecontrol restart
  1. NCM コンソール で、最近のスナップショットの取得タスクのステータスを確認します。失敗しているタスクがあれば再実行します。
  2.  

    Oracle データベースでは、フルテキスト インデックスの生成時に実行されていたすべてのスナップショットの作成タスクのエラーがログ ファイルに含まれます。次のエラーは無視することができます。

    java.sql.SQLException: ORA-29861: domain index is marked LOADING/FAILED/UNUSABLE

Microsoft SQL Server でフルテキスト検索を有効化

Microsoft SQL Server データベースでフルテキスト検索を有効にする手順は、次のとおりです。

SQL Server の Full Text Search サービスが有効になっており、必要な権限があるか確認します。
  1. NCM をインストールするのに使用したクレデンシャルを使用して NCM プロキシにログインします。
次のコマンドを実行します。
fulltextsearch -option analyze
analyze コマンドの出力を調べます。
  • SQL Server の Full Text Search サービスが有効になっていない場合は、SQL Server データベース管理者に連絡し、設定を変更します。
  • SQL Server の Full Text Search サービスが有効になっている場合は、データの消去が必要か判断します。analyze コマンドの出力がデータベースの消去を推奨している場合は、フルテキスト インデックスを生成する前にこのプロセスを完了します。詳細については、『 Installation and Upgrade Guide for CiscoWorks Network Compliance Manager 1.8 』の「Data Pruning」を参照してください。
  • SQL Server 2005 では、SQL Server のノイズ ワードを次のように削除します。
  • $SQL_Server_Install_Path\Microsoft SQL Server\
    MSSQL.1\MSSQL\FTDATA\
    ディレクトリに変更します。
noiseENU.txt ファイルをバックアップします。
noiseENU.txt ファイル内のすべてのエントリを削除し、空のファイルを残します。

ノイズ ワードの詳細については、次の URL から MSDN ライブラリの「Noise Words」のトピックを参照してください。

http://msdn.microsoft.com/en-us/library/ms142551(v=sql.90).aspx

 

SQL Server 2008 では、デフォルトでノイズ ワードが有効になっていません。

  1. 次の手順でフルテキスト インデックスを生成します。
  2. NCM をインストールするのに使用したクレデンシャルを使用して NCM プロキシにログインします。
次のコマンドを実行します。
fulltextsearch -option enable
 

SQL Server では、このコマンドはすぐに返り、フルテキスト インデックスの作成を開始します。少し時間が経ってから新しい検索の使用を開始してください。出力結果の中で、この実行により SQL の例外が生成されなかったことを確認します。

  1. 次のコマンドを実行し、インデックス生成のステータスを判断します。

fulltextsearch -option status

  • 予測されるステータスは、 Complete & Valid です。
  • ステータスが In Progress の場合、インデックスの生成が終わるまで待ちます。
  • ステータスが Invalid の場合、fulltextsearch -option disable コマンドを使用してインデックスを削除します。必要に応じて、利用可能なディスク領域を増やし、 次の手順でフルテキスト インデックスを生成します。 を繰り返します。
  •  

    または、トラブルシューティング機能/プロキシをデバッグに設定し、NCM ログを確認することもできます。

  • 水平スケーラビリティ環境では、NCM データベースに接続されているその他すべての NCM サーバで NCM を再起動し、データベース設定を同期します。
  • Windows :[Services] コントロール パネルを開きます。サービスのリストの中で、次の各サービスを右クリックし、[Restart] をクリックします。
  • TrueControl Management Engine
  • TrueControl FTP Server
  • TrueControl SWIM Server
  • TrueControl Syslog Server
  • TrueControl TFTP Server
  • UNIX :次のコマンドを実行します。
/etc/init.d/truecontrol restart

フルテキスト検索の無効化

水平スケーラビリティ環境で、 1 台の NCM サーバでフルテキスト検索を無効にします。

マルチマスター分散システム環境で、 NCM サーバでフルテキスト検索を無効にします。無効化プロシージャを並列実行します。つまり、いずれの NCM サーバで手順 2 を開始する前にも、各 NCM サーバで手順 1 を完了します。

 

[contains (full text)] 検索オペレータを NCM コンソール の中で完全に削除し、データベースからフルテキスト インデックスを削除するには、次の手順に従います。

動的グループが [contains (full text)] または [does not contain (full text)] オペレータを使用するように設定されている場合は、それらの動的グループ設定を削除します。
  1. 動的ポリシー スコープが [contains (full text)] または [does not contain (full text)] オペレータを使用するように設定されている場合は、それらの動的ポリシー設定を削除します。
  2. 次の手順でフルテキスト インデックスを削除します。
  3. NCM をインストールするのに使用したクレデンシャルを使用して NCM プロキシにログインします。
次のコマンドを実行します。
fulltextsearch -option disable
  1. フルテキスト検索機能を無効にするには、 [contains (full text)] および [does not contain (full text)] オペレータを NCM コンソール から削除します。
  2. 次の手順で .rcx ファイルを含むディレクトリに変更します。
  3. Windows %NCM_HOME%\jre
  4. UNIX $NCM_HOME/jre
adjustable_options.rcx ファイルを $NCM_HOME (Windows 上の %NCM_HOME% )ディレクトリ以外の場所にバックアップします。
adjustable_options.rcx ファイルの中に次の行を追加します。
<option name="fulltextsearch/enabled">false</option>
adjustable_options.rcx ファイルを保存します。
次の いずれか を実行し、 .rcx 設定を再ロードします。
  • NCM プロキシから reload server options コマンドを実行します。
  • NCM 管理エンジンを再起動します。
  • 水平スケーラビリティ環境では、NCM データベースに接続されているその他すべての NCM サーバで NCM を再起動し、データベース設定を同期します。
  • Windows :[Services] コントロール パネルを開きます。サービスのリストの中で、次の各サービスを右クリックし、[Restart] をクリックします。
  • TrueControl Management Engine
  • TrueControl FTP Server
  • TrueControl SWIM Server
  • TrueControl Syslog Server
  • TrueControl TFTP Server
  • UNIX :次のコマンドを実行します。
/etc/init.d/truecontrol restart