18.28.1 同義語検索を行うための準備をする
ここでは,同義語検索を行うときの準備作業について説明します。ここの説明は,すでにマルチノード機能を使用していることが前提となっています。
- 〈この項の構成〉
(1) テキストインデクスの定義を検討する
同義語検索を行う場合,テキストインデクスを使用すると性能向上が見込まれるため,テキストデータ(文書データ)を格納している列にテキストインデクスを定義することを推奨します。詳細については,「11.17.1 同義語検索を行うための準備をする」の「(1) テキストインデクスの定義を検討する」を参照してください。
(2) 同義語辞書ファイルの格納ディレクトリに必要な容量を見積もる
マルチノード機能の使用時に同義語検索を行う場合,HAモニタありのマルチノード構成のときは,ノード切り替え対象のファイルシステムに同義語辞書ファイルの格納ディレクトリを作成します。HAモニタなしのマルチノード構成のときは,プライマリノードのノードローカルのファイルシステムに同義語辞書ファイルの格納ディレクトリを作成します。
ファイルシステムを用意する前に次のことを実施してください。
- 同義語辞書ファイルの格納ディレクトリの容量見積もり
-
同義語辞書ファイルの格納ディレクトリの容量見積もりを実施し,その結果を考慮してファイルシステムを用意してください。同義語辞書ファイルの格納ディレクトリの容量見積もりについては,「11.17.1 同義語検索を行うための準備をする」の「(3) 同義語辞書ファイルの格納ディレクトリに必要な容量を見積もる」を参照してください。
- 重要
-
同義語辞書ファイルの格納ディレクトリの空き容量が不足した場合,同義語辞書ファイルの格納ディレクトリを変更する必要があります。同義語辞書ファイルの格納ディレクトリを変更した場合,すべての同義語辞書を再登録する必要があるため,ディレクトリを作成しているディスクの容量不足などが発生しないように,見積もりを行ってください。
- メモ
-
同義語辞書ファイルの格納ディレクトリとは,サーバ定義のadb_syndict_storage_pathオペランドに指定するディレクトリのことです。
(3) 同義語辞書ファイルの格納ディレクトリを作成するファイルシステムを準備する
同義語辞書ファイルの格納ディレクトリは,ノード切り替え対象のファイルシステムに作成する必要があります。ノード切り替え対象のファイルシステムは,プライマリノードおよびセカンダリノードから参照可能なディスクで構成されるVG内のLV上に作成してください。共有ディスクについては,マニュアルHAモニタ Linux(R)(x86)編の共有ディスクの構成を参照してください。
- メモ
-
HAモニタなしのマルチノード構成の場合は,ここで説明している作業を実施する必要はありません。
(4) 同義語辞書ファイルの格納ディレクトリを作成するファイルシステムを初期化する
同義語辞書ファイルの格納ディレクトリを作成するファイルシステムを初期化してください。同義語辞書ファイルの格納ディレクトリを作成するLVとして作成した/dev/vg_hadb02/hadb_syndictを,ext4のファイルシステムで初期化する場合の実行例を次に示します。
mkfs -t ext4 /dev/vg_hadb02/hadb_syndict
- メモ
-
HAモニタなしのマルチノード構成の場合は,ここで説明している作業を実施する必要はありません。
(5) 同義語辞書ファイルの格納ディレクトリを作成する
ファイルシステムの準備が完了したあとに,同義語辞書ファイルの格納ディレクトリを作成し,作成したディレクトリに対する権限を付与してください。詳細については,「11.17.1 同義語検索を行うための準備をする」の「(4) 同義語辞書ファイルの格納ディレクトリを作成する」~「(5) 同義語辞書ファイルの格納ディレクトリに対する権限を付与する」を参照してください。
- 重要
-
-
同義語辞書ファイルの格納ディレクトリを削除しないでください。また,同義語辞書ファイルの格納ディレクトリ下のファイルを,adbsyndictコマンド以外で削除しないでください。削除した場合,同義語検索の実行がエラーになります。
-
同義語辞書ファイルの格納ディレクトリ下のファイルを,adbsyndictコマンド以外で更新しないでください。更新した場合,同義語検索の実行結果が不正となるか,または同義語検索の実行がエラーになります。
-
- メモ
-
同義語辞書ファイルの格納ディレクトリはフルバックアップの対象になります。詳細については,「10.3.1 バックアップの取得方法」の「(2) バックアップを取得する手順」を参照してください。
(6) マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを作成する
マルチノード機能の使用時に同義語検索を行う場合は,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを,ノードローカルのファイルシステムに作成してください。マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリは,全ノードで作成する必要があります。
- メモ
-
マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリとは,サーバ定義のadb_syndict_node_storage_pathオペランドに指定するディレクトリのことです。
同義語検索を行うSQL文がセカンダリノードまたはワーカーノードで実行される場合,ここで作成したディレクトリ下にある同義語辞書ファイルが使用されます。adbsyndictコマンドによる同義語辞書の登録,変更,または削除をした際,プライマリノードの同義語辞書ファイルが自動的にセカンダリノードおよびワーカーノードにコピーされ,ここで作成したディレクトリ下に格納されます。
- 重要
-
セカンダリノードまたはワーカーノードに同義語辞書ファイルが格納されていなかったり,古い同義語辞書ファイルが格納されていたりした場合でも,同義語検索は実行できます。ただし,この場合,そのセカンダリノードまたはワーカーノードに同義語検索を行うSQL文の実行処理が割り振られても,そのセカンダリノードまたはワーカーノードではSQL文の実行処理は行われません。SQL文の実行処理はプライマリノードで行われます。この状態が続くと,プライマリノードの負荷が高まるおそれがあるため,同義語辞書ファイルの同期を取って,セカンダリノードまたはワーカーノードに最新の同義語辞書ファイルを格納するようにしてください。同義語辞書ファイルの同期については,「18.28.5 同義語辞書ファイルの同期を取る」を参照してください。
次に示す手順で,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを作成してください。
手順
- 1.マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリの容量を見積もる
-
マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリの容量見積もりを実施し,その結果を考慮してディレクトリを作成してください。マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリの容量見積もりについては,「6.17 マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリの容量見積もり」を参照してください。
- 重要
-
マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリの空き容量が不足した場合,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを変更する必要があります。マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを変更した場合,同義語辞書ファイルの同期を実行する必要があるため,ディレクトリを作成しているディスクの容量不足などが発生しないように,見積もりを行ってください。
- 2.マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを作成する
-
マルチノード機能で使用する同義語辞書ファイルを格納するディレクトリを作成してください。ディレクトリを作成する際,次の点に注意してください。
-
次のディレクトリは,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできません。
-
サーバディレクトリ
-
サーバディレクトリの下位のディレクトリ
-
下位のディレクトリにサーバディレクトリがあるディレクトリ
-
DBディレクトリ
-
DBディレクトリの下位のディレクトリ
-
下位のディレクトリにDBディレクトリがあるディレクトリ
-
ルートディレクトリ
-
adb_syndict_storage_pathオペランドに指定したディレクトリ
-
adb_syndict_storage_pathオペランドに指定したディレクトリの下位のディレクトリ
-
下位のディレクトリに,adb_syndict_storage_pathオペランドに指定したディレクトリがあるディレクトリ
DBディレクトリが/HADB/dbの場合,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできるディレクトリの例と,できないディレクトリの例を次に示します。
マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリの例
理由
マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできるディレクトリの例
/HADB/syndict
なし。
マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできないディレクトリの例
/HADB/db
左記のディレクトリは,DBディレクトリと同一のため,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできません。
/HADB/db/synonym
左記のディレクトリは,DBディレクトリの下位のディレクトリのため,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできません。
/HADB
左記のディレクトリは,下位のディレクトリにDBディレクトリがあるため,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにできません。
-
-
HADBサーバのインストール時にインストールデータを格納したディレクトリを,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリにしないでください。
なお,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを作成するディスクには,セクターサイズが512バイトまたは4,096バイトのディスクが使用できます。
-
- 3.マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリに対する権限を付与する
-
次に示す手順で,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリに対して必要な権限を付与してください。
手順
-
マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリに,HADB管理者に対する読み取り権限,書き込み権限,および実行権限を付与する
-
マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリのパスに含まれるすべてのディレクトリに,HADB管理者に対する実行権限を付与する
(例)マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリが/HADB/syndictの場合
-
/HADB/syndictには,読み取り権限,書き込み権限,および実行権限が必要です。
-
/,および/HADBには,実行権限が必要です。
-
- 重要
-
-
マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを変更した場合,adbsyndictコマンドを実行して同義語辞書ファイルの同期を取る必要があります。同期を取らなかった場合,同義語検索を行うSQL文の実行ノードがセカンダリノードまたはワーカーノードからプライマリノードに切り替わります。その結果,プライマリノードの負荷増加や,実行ノードを切り替える処理によって,検索性能が低下するおそれがあります。
-
マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを削除しないでください。また,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリ下のファイルを,adbsyndictコマンド以外で削除しないでください。削除した場合,同義語検索を行うSQL文の実行ノードがセカンダリノードまたはワーカーノードからプライマリノードに切り替わります。その結果,プライマリノードの負荷増加や,実行ノードを切り替える処理によって,検索性能が低下するおそれがあります。
-
マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリ下のファイルを,adbsyndictコマンド以外で更新しないでください。更新した場合,同義語検索の実行結果が不正となるか,または同義語検索の実行がエラーになります。
-
(7) HAモニタのserversファイルの指定を変更する
マルチノード構成のHADBサーバを終了して,HAモニタのserversファイルの指定を変更してください。
- メモ
-
HAモニタなしのマルチノード構成の場合は,ここで説明している作業を実施する必要はありません。
「図18‒1 HAモニタありのマルチノード構成のシステム構成例(オンプレミス環境の場合)」の場合,FS002が同義語辞書ファイルの格納ディレクトリを作成するファイルシステムです。VGの名称はvg_hadb02で,LVの名称はhadb_syndictとします。
次に示すオペランドの指定値を変更します。
-
disk
同義語辞書ファイルの格納ディレクトリを作成するファイルシステムを含むVGの絶対パスの指定を追加してください。「図18‒1 HAモニタありのマルチノード構成のシステム構成例(オンプレミス環境の場合)」の場合は,/dev/vg_hadb02を追加します。
-
fs_name
同義語辞書ファイルの格納ディレクトリを作成するファイルシステムに対応する論理ボリュームの絶対パスの指定を追加してください。「図18‒1 HAモニタありのマルチノード構成のシステム構成例(オンプレミス環境の場合)」の場合は,/dev/vg_hadb02/hadb_syndictを追加します。
-
fs_mount_dir
同義語辞書ファイルの格納ディレクトリを作成するファイルシステムをマウントするディレクトリのパスの指定を追加してください。同義語辞書ファイルの格納ディレクトリを作成するファイルシステムをマウントするディレクトリのパスは,プライマリノードおよびセカンダリノードで同じパスとなるように指定してください。
-
fs_mount_opt
同義語辞書ファイルの格納ディレクトリを作成するファイルシステムをマウントするためのマウントオプションを追加してください。
-
vg_neck
useの指定を追加してください。
-
fs_neck
useの指定を追加してください。
-
scsi_device
このオペランドには,同義語辞書ファイルを格納するファイルシステムのデバイス名(SCSIリザーブの対象となるデバイス名)を絶対パスで追加してください。
なお,系のリセットを使用する場合は,このオペランドを指定する必要はありません。
共有ディスクのSCSIリザーブを使用する場合で,かつ共有ディスクが次のどれかの条件を満たすときに,このオペランドを指定してください。
-
シングルパス構成の場合
-
VMware ESXiでの仮想化環境の場合(DMMPを使用する場合を除く)
-
マルチパスソフトウェア(HDLM)による冗長化構成の場合
-
-
dmmp_device
このオペランドには,同義語辞書ファイルを格納するファイルシステムのデバイス名(SCSIリザーブの対象となるデバイス名)を,DMMPの論理デバイスの絶対パスで指定します。
なお,系のリセットを使用する場合は,このオペランドを指定する必要はありません。
共有ディスクのSCSIリザーブを使用する場合で,かつ共有ディスクがマルチパスソフトウェア(DMMP)による冗長化構成のときに,このオペランドを指定してください。
serversファイルの指定例については,次のどちらかの個所を参照してください。
-
系のリセットを使用している場合
「18.4.4 HAモニタの環境設定」の「(5) 各ファイルの指定例(系のリセットを使用する場合)」の「(b) serversファイルの指定例」を参照してください。
-
共有ディスクのSCSIリザーブを使用している場合
シングルパス構成の場合は,「18.4.4 HAモニタの環境設定」の「(6) 各ファイルの指定例(共有ディスクのSCSIリザーブを使用する場合)」の「(b) serversファイルの指定例(シングルパス構成の場合)」を参照してください。
マルチパスソフトウェアによる冗長化構成の場合は,「18.4.4 HAモニタの環境設定」の「(6) 各ファイルの指定例(共有ディスクのSCSIリザーブを使用する場合)」の「(c) serversファイルの指定例(マルチパスソフトウェアによる冗長化構成の場合)」を参照してください。
serversファイルの各オペランドの詳細については,マニュアルHAモニタ Linux(R)(x86)編のサーバ対応の環境設定(servers)を参照してください。
(8) サーバ定義を修正する
サーバ定義に次に示すオペランドを指定してください。
-
adb_syndict_storage_path
サーバ定義のadb_syndict_storage_pathオペランドに,同義語辞書ファイルの格納ディレクトリ名を指定してください。このオペランドは,プライマリノードおよびセカンダリノードのサーバ定義に指定してください。
adb_syndict_storage_pathオペランドについては,「7.2.9 同義語検索に関するオペランド(set形式)」のadb_syndict_storage_pathを参照してください。
adb_syndict_storage_pathオペランドに同義語辞書ファイルの格納ディレクトリのシンボリックリンクを指定した場合,シンボリックリンクを解決したあとの絶対パス名が,「11.17.1 同義語検索を行うための準備をする」の「(4) 同義語辞書ファイルの格納ディレクトリを作成する」で説明している規則に従っているかどうかがチェックされます。
-
adb_syndict_node_storage_path
サーバ定義のadb_syndict_node_storage_pathオペランドに,マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリ名を指定してください。このオペランドは,全ノードのサーバ定義に指定してください。
adb_syndict_node_storage_pathオペランドについては,「7.2.9 同義語検索に関するオペランド(set形式)」のadb_syndict_node_storage_pathを参照してください。
adb_syndict_node_storage_pathオペランドにマルチノード機能で使用する同義語辞書ファイルの格納ディレクトリのシンボリックリンクを指定した場合,シンボリックリンクを解決したあとの絶対パス名が,「(6) マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを作成する」の「2.マルチノード機能で使用する同義語辞書ファイルの格納ディレクトリを作成する」で説明している規則に従っているかどうかがチェックされます。
- メモ
-
サーバ定義の変更手順については,「8.5.2 サーバ定義の変更方法」を参照してください。
(9) マルチノード構成のHADBサーバを開始する
マルチノード構成のHADBサーバを開始してください。
マルチノード構成のHADBサーバの開始方法については,「18.5.1 マルチノード構成のHADBサーバの開始方法」を参照してください。
(10) テキストインデクスを定義する
「(1) テキストインデクスの定義を検討する」の結果,テキストインデクスを定義する場合は,次に示す手順でテキストインデクスを定義してください。
手順
-
CREATE INDEX文を実行して,テキストインデクスを定義する
-
adbidxrebuildコマンドを実行して,テキストインデクスのインデクスデータを作成する
(11) 同義語辞書を登録する
同義語辞書を登録するには,「11.17.1 同義語検索を行うための準備をする」の「(7) 同義語一覧定義ファイルを作成する」~「(10) 同義語辞書ファイルの格納ディレクトリのバックアップを取得する」の作業を実施してください。
- 重要
-
同義語一覧定義ファイル,辞書情報登録ファイル,辞書情報削除ファイルは,プライマリノードから参照可能なファイルシステムに作成することを推奨します。
HAモニタありのマルチノード構成の場合は,同義語辞書ファイルの格納ディレクトリと同様に,ノード切り替え対象のファイルシステム上に作成するか,またはプライマリノードおよびセカンダリノードで同一パスのディレクトリにマウントした,各ノードから参照可能なディスク上に作成することを検討してください。
プライマリノードでadbsyndictコマンドを実行して同義語辞書を登録した場合,自動的に同義語辞書ファイルの同期が行われます。そのため,-sオプションを指定したadbsyndictコマンドの実行は不要です。