スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)

[目次][索引][前へ][次へ]

13.21 リストの管理絞込み検索

実行者 HiRDB管理者及び表の所有者(又はDBA権限保持者)

ここでは,絞込み検索をするときに使用するリストの管理方法について説明します。リストを使用している場合,次に示すことに注意してください。

<この節の構成>
(1) HiRDBを終了するとすべてのリストが削除されます
(2) リストの基表をデータベース回復ユティリティで回復した場合
(3) リストの基表を格納しているRDエリアを再初期化した場合
(4) リストが無効になる操作
(5) リスト及びリスト用RDエリアに対して使用できないコマンドがあります
(6) ディクショナリサーバが終了したときの留意事項
(7) リストの情報を調べるコマンド(pdlistlsコマンド)
(8) インナレプリカ機能使用時の注意事項
(9) リストの初期化(削除)時期の変更
(10) リスト用RDエリアの構成変更

(1) HiRDBを終了するとすべてのリストが削除されます

HiRDBを終了(異常終了を含む)するとすべてのリストが削除されるため,リストを使用した検索ができなくなります。リストが必要な場合は,ASSIGN LIST文で再度リストを作成してください。

HiRDB/パラレルサーバの場合
  1. ユニット単位の終了をすると,そのユニットにあるすべてのリストが削除されます。
  2. サーバ単位の終了をすると,そのサーバにあるすべてのリストが削除されます。

(2) リストの基表をデータベース回復ユティリティで回復した場合

リストの基表を最新の同期点の状態まで回復した場合,リストはそのまま使用できます。しかし,最新の同期点の状態まで回復しなかった場合(例えば,バックアップ取得時点に回復した場合),基表とリストの整合性が合わなくなる可能性があるため,ASSIGN LIST文でリストを再作成してください。

(3) リストの基表を格納しているRDエリアを再初期化した場合

リストの基表を格納しているRDエリアを再初期化した場合,そのリストに対して次に示すどちらかの処置をしてください。

(4) リストが無効になる操作

リストの基表に対して次に示す操作をした場合,リストの検索結果が不正になります。この場合,ASSIGN LIST文でリストを再作成してください。

(5) リスト及びリスト用RDエリアに対して使用できないコマンドがあります

リスト及びリスト用RDエリアに対して,次に示すコマンドが使用できません。

(6) ディクショナリサーバが終了したときの留意事項

リストの作成及び削除のオーバヘッド低減のため,HiRDBではリストの管理情報をディクショナリサーバのメモリに保持しています。このため,ディクショナリサーバ又はディクショナリサーバがあるユニットを終了すると,リストの管理情報が失われます。その結果,これまで作成した全リストが無効になります。この場合,ASSIGN LIST文で再度リストを作成してください。

なお,ディクショナリサーバの再開始後,終了以前に実行していた他ユーザのリストを使用したトランザクションの回復が完了するまでの間,リストを使用した処理がKFPA11998-Eエラー(トランザクション未決着状態でのリスト操作)となることがあります。

(7) リストの情報を調べるコマンド(pdlistlsコマンド)

pdlistlsコマンドでリストの情報を調べられます。表示される情報は次のとおりです。

(8) インナレプリカ機能使用時の注意事項

リストの基表を格納しているRDエリアにレプリカRDエリアが定義されている状態で,アクセス対象RDエリアの切り替えをする場合に注意が必要です。カレント切り替えコマンド(pddbchgコマンド),又はクライアント環境定義若しくはUAP環境定義のPDDBACCSオペランドでアクセス対象RDエリアを切り替えた場合,次に示すときを除いて検索結果が不正になります。

リストを使用する場合は,次に示すどれかの方法をとってください。

インナレプリカ機能については,マニュアル「インナレプリカ機能 HiRDB Staticizer Option Version 8」を参照してください。

(9) リストの初期化(削除)時期の変更

(1)で説明したように,HiRDBを終了するとリストが削除されます。このリストの削除処理(初期化処理)はHiRDBの開始処理時に行われるため,作成したリスト数が多いとHiRDBの開始処理に時間が掛かります。次に示すような場合に,リストの初期化時期の変更を検討してください。

リストの初期化時期はpd_list_initialize_timingオペランドで次のように変更できます。

(a) ASSIGN LIST文の実行時にリストを初期化する場合

HiRDBを開始するときにリストを初期化しないで,ASSIGN LIST文を実行するときにリストを初期化します。そのため,ASSIGN LIST文を実行するときに初期化する分のオーバヘッドが掛かります。この初期化処理のオーバヘッドを小さくするには,リスト用RDエリアの容量及び最大リスト数をなるべく小さく設定してください。リスト作成数が多い場合は,リスト用RDエリアの数を増やして対応してください。これで,ASSIGN LIST文実行時の初期化処理のオーバヘッドを分散できます。

(b) 待機系のHiRDBを開始するときにリストを初期化する場合(高速系切り替え機能限定)

待機系のHiRDBを開始するときにリストを初期化します。系の切り替え時にはリストを初期化しません。また,系切り替え後のASSIGN LIST文の実行時にもリストを初期化しません。そのため,リスト用RDエリアの容量及び最大リスト数を大きく設定し,作成するリスト用RDエリア数を少なくできます。ただし,次に説明する準備作業をする必要があります。

準備作業
実行系と待機系の両方にリストが必要になります。それぞれのローカルディスクに作成してください。次の二つの方法があります。
実行系のHiRDBで作成したリストを待機系のHiRDBにコピーする方法
  1. 実行系のHiRDBのリスト用RDエリアを格納している全HiRDBファイルシステム領域を待機系のローカルディスクにコピーします。
  2. リスト用RDエリアに定義されているすべてのHiRDBファイル名が,1で作成したHiRDBファイルシステム領域を指すようにリンクを設定します。
データベース構成変更ユティリティ(pdmodコマンド)の再初期化を使用する方法
  1. pdstopコマンドで実行系のHiRDBを正常終了します。
  2. pdfmkfsコマンドで,リスト用RDエリアを作成するHiRDBファイルシステム領域を作成します。実行系と同じ設定,同じ数だけ作成してください。
  3. リスト用RDエリアに定義されているすべてのHiRDBファイル名が,2で作成したHiRDBファイルシステム領域を指すようにリンクを設定します。
  4. pdstartコマンドで待機系のHiRDBを正常開始します。このとき,待機系のHiRDBにはHiRDBファイルシステム領域内にHiRDBファイルがないため,リスト用RDエリアがオープン,障害閉塞状態になります。
  5. pdmodコマンドですべてのリスト用RDエリアを再初期化します。このとき,再初期化するRDエリア名だけを指定してください。
  6. pdrelsコマンドですべてのリスト用RDエリアの閉塞を解除します。
  7. pdstopコマンドで待機系のHiRDBを正常終了します。

(10) リスト用RDエリアの構成変更

(9)(b)に示した実行系と待機系のローカルディスクに別々にリスト用RDエリアを作成している場合,(9)の再初期化以外のRDエリアの構成変更は,以下の手順で行います。

  1. 実行系でリスト用RDエリアの構成変更を行います。
  2. pdstopコマンドで実行系のHiRDBを正常終了します。
  3. 実行系のHiRDBのリスト用RDエリアを格納している全HiRDBファイルシステム領域を待機系のローカルディスクにコピーします。
  4. リスト用RDエリアに定義されているすべてのHiRDBファイル名が,3で作成したHiRDBファイルシステム領域を指すようにリンクを設定します。