ノンストップデータベース　HiRDB Version 10 コマンドリファレンス（UNIX(R)用）

文法書

3020-6-558-80

前書き

対象製品

●適用OS：AIX 7.1，AIX 7.2，AIX 7.3

P-1M62-35A1 HiRDB Server Version 10 10-08

P-1M62-1BA1 HiRDB/Run Time Version 10 10-08

P-1M62-1CA1 HiRDB/Developer's Kit Version 10 10-08

P-1M62-1DA1 HiRDB/Run Time Version 10(64) 10-08

P-1M62-1EA1 HiRDB/Developer's Kit Version 10(64) 10-08

P-F1M62-11A13 HiRDB Staticizer Option Version 10 10-00

P-F1M62-11A15 HiRDB Non Recover Front End Server Version 10 10-00

P-F1M62-11A16 HiRDB Advanced High Availability Version 10 10-00

P-F1M62-11A18 HiRDB Disaster Recovery Light Edition Version 10 10-00

P-F1M62-11A1A HiRDB Accelerator Version 10 10-00

●適用OS：Red Hat Enterprise Linux 7 (64-bit x86_64)，Red Hat Enterprise Linux 8 (64-bit x86_64)，Red Hat Enterprise Linux 9 (64-bit x86_64)

P-8462-35A1 HiRDB Server Version 10 10-08

P-8462-1DA1 HiRDB/Run Time Version 10(64) 10-08

P-8462-1EA1 HiRDB/Developer's Kit Version 10(64) 10-08

P-F8462-11A13 HiRDB Staticizer Option Version 10 10-00

P-F8462-11A15 HiRDB Non Recover Front End Server Version 10 10-00

P-F8462-11A16 HiRDB Advanced High Availability Version 10 10-00

P-F8462-11A18 HiRDB Disaster Recovery Light Edition Version 10 10-00

P-F8462-11A1A HiRDB Accelerator Version 10 10-00

●適用OS：Red Hat Enterprise Linux 7 (64-bit x86_64)，Red Hat Enterprise Linux 8 (64-bit x86_64)，Red Hat Enterprise Linux 9 (64-bit x86_64)

P-8362-1BA1 HiRDB/Run Time Version 10 10-08

P-8362-1CA1 HiRDB/Developer's Kit Version 10 10-08

P-8362-3CA1 HiRDB Developer's Suite Version 10 10-08

これらのプログラムプロダクトのほかにもこのマニュアルをご利用になれる場合があります。詳細は「リリースノート」でご確認ください。

輸出時の注意

本製品を輸出される場合には、外国為替及び外国貿易法の規制並びに米国輸出管理規則など外国の輸出関連法規をご確認の上、必要な手続きをお取りください。

なお、不明な場合は、弊社担当営業にお問い合わせください。

商標類

HITACHI，HiRDB，Cosminexus，DABroker，DBPARTNER，HAモニタ，JP1，OpenTP1，TPBroker，uCosminexus，VOS3/LS，VOS3/US，VOS3/XS，XDMは，株式会社 日立製作所の商標または登録商標です。

Amazon Web Services，AWS，Powered by AWSロゴ，Amazon Elastic Compute Cloud (Amazon EC2)，Amazon Route 53は，Amazon.com, Inc.またはその関連会社の商標です。

AMDは，Advanced Micro Devices, Inc.の商標です。

Hibernate is a registered trademark of Red Hat, Inc. in the United States and other countries.

Hibernateは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。

IBM，AIX，DataStageおよびPowerHAは，世界の多くの国で登録されたInternational Business Machines Corporationの商標です。

Jboss is a registered trademark of Red Hat, Inc. in the United States and other countries.

Jbossは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。

Linuxは，Linus Torvalds氏の米国およびその他の国における登録商標です。

Microsoft，Access，ActiveX，Azure，Excel，Visual Basic，Visual C++，Visual Studio，Windows，Windows Serverは，マイクロソフト 企業グループの商標です。

Oracle(R)，Java，MySQL及びNetSuiteは，Oracle，その子会社及び関連会社の米国及びその他の国における登録商標です。文中の社名，商品名等は各社の商標または登録商標である場合があります。

Red Hat, and Red Hat Enterprise Linux are registered trademarks of Red Hat, Inc. in the United States and other countries. Linux(R) is the registered trademark of Linus Torvalds in the U.S. and other countries.

Red Hat，およびRed Hat Enterprise Linux は，米国およびその他の国におけるRed Hat, Inc.の登録商標です。Linux(R)は，米国およびその他の国におけるLinus Torvalds 氏の登録商標です。

RHEL is a trademark or a registered trademark of Red Hat, Inc. in the United States and other countries.

RHELは，米国およびその他の国におけるRed Hat, Inc.の商標または登録商標です。

UNIXは，The Open Groupの登録商標です。

VeritasおよびVeritasロゴは，米国およびその他の国におけるVeritas Technologies LLCまたはその関連会社の商標または登録商標です。

その他記載の会社名，製品名などは，それぞれの会社の商標もしくは登録商標です。

発行

2024年4月　3020-6-558-80

著作権

All Rights Reserved. Copyright (C) 2018, 2024, Hitachi, Ltd.

変更内容

変更内容(3020-6-558-80)　HiRDB Version 10 10-08

追加・変更内容

関連するコマンド

変更個所

一つのグローバルバッファを複数に分割する機能をサポートしました。

これによって，一つの大きなグローバルバッファを定義してもグローバルバッファの競合を減らすことができ，グローバルバッファの設計を容易にできます。

pdbufmod

2.10.1(5)

デッドロック検知時に，デッドロックSQL情報ファイルにユーザ識別子ごとのSQLオブジェクト情報を出力できるようにしました。

これによって，デッドロック情報ファイルとデッドロックSQL情報ファイルに出力されるユーザ識別子を対応づけて，デッドロック発生要因のSQL文を確認できます。

pdobils

2.27.1(6)，2.87.1(3)，2.87.1(4)

単なる誤字・脱字などはお断りなく訂正しました。

変更内容(3020-6-558-70)　HiRDB Version 10 10-07

追加・変更内容

関連するコマンド

インナレプリカグループ内のRDエリアの整合性チェックコマンドでRDエリアの構成情報をCSV形式で出力する機能をサポートしました。これによって，CSV形式を扱えるツール（Excelなど）を使用したRDエリアの構成情報を確認できるようになり，対象RDエリアの数が多い環境でも効率良く構成情報を確認できます。

pdrdconstck

1バックエンドサーバ当たりの最大起動プロセス数（pd_max_bes_process），及びユニット内の最大同時起動サーバプロセス数（pd_max_server_process）の上限値を拡大しました。これによって，構成の設計の自由度を高めることができます。

pdchprc

ユーザ識別子ごとにSQLオブジェクト情報を出力できるようにしました。

これによって，デッドロック情報やユーザの状態表示コマンドで出力されるユーザ識別子と対応づけて，使用中のSQLオブジェクトを基にSQL文を確認できます。

pdobils

シンクポイント処理中の更新バッファに対して更新要求が発生した場合にも，代行出力をスキップできるようにしました。これによって，更新トランザクションの性能を安定させることができるようになります。

pdstedit

HiRDBの適用OSに次のOSを追加しました。

AIX V7.3

Red Hat Enterprise Linux 9

−

変更内容(3020-6-558-60)　HiRDB Version 10 10-06

追加・変更内容

関連するコマンド

インナレプリカグループ内のRDエリアに対して，構成情報の整合性をチェックする機能をサポートしました。

これによって，pdmodコマンドを使用して構成変更をした場合，構成情報の整合性をチェックし，必要に応じて構成情報複写を実行することで，構成情報複写漏れによるRDエリアの障害閉塞を回避できます。

pdrdconstck

HP-UXに関する説明を削除しました。

−

変更内容(3020-6-558-50)　HiRDB Version 10 10-05

追加・変更内容

関連するコマンド

インナレプリカグループ内のRDエリアに対しpdmodコマンドを使用して構成変更をした場合に，インナレプリカグループ内のすべてのRDエリアへの構成情報複写をする必要がある旨のメッセージを出力する機能をサポートしました。

メッセージ出力に応じて構成情報複写を実行することで，構成情報複写漏れによるRDエリアの障害閉塞を回避できるようになります。

pdmod

HiRDBの適用OSにWindows Server 2022を追加しました。

−

はじめに

このマニュアルは，プログラムプロダクト　ノンストップデータベース　HiRDB Version 10で使用するコマンドの文法について説明したものです。なお，ここに記載されていない前提情報については，マニュアル「HiRDB Version 10 解説」を参照してください。

対象読者

HiRDB Version 10（以降，HiRDBと表記します）のコマンドを使用する方を対象にしています。

このマニュアルは次に示す知識があることを前提に説明しています。

UNIX，またはLinuxのシステム管理の基礎的な知識

SQLの基礎的な知識

なお，このマニュアルは次に示すマニュアルを前提としていますので，あらかじめお読みいただくことをお勧めします。

「HiRDB Version 10 システム導入・設計ガイド」

「HiRDB Version 10 システム運用ガイド」

図中で使用している記号

このマニュアルの図中で使用している記号を，次のように定義します。

このマニュアルで使用している記号

形式および説明で使用している記号を次に示します。ここで説明する文法記述記号は，説明のための記号なので実際には記述しないでください。

文法記述記号

意味

〔　　〕

この記号で囲まれている項目は省略できます。

（例）pdfbkup 〔-y〕

これは，pdfbkupと指定するか，またはpdfbkup -yと指定することを示します。

…

この記号直前の項目を繰り返して指定できます。

（例）pdclose -r RDエリア名 〔，RDエリア名〕…

これは，-rオプションのRDエリア名を繰り返し指定できることを示します。

｜

この記号で区切られた項目を選択できます。

（例）pdloginit -d sys｜spd

これは，-dオプションにsysかspdのどちらかを指定できることを示します。

｛　　｝

この記号で囲まれている複数の項目のうちから，一つを選択できます。

（例）pdcat -｛a｜b｜ab｝

これは，-a，-b，-abの三つのオプションのうち，どれか一つを指定することを示します。

（例）pdstart 〔｛-x ホスト名｜-s サーバ名｝〕

これは，-x ホスト名，-s サーバ名の二つのオプションのうち，どちらか一つを指定することを示します。

　　（下線）

この記号で示す項目は，省略時の仮定値です。

（例）pdcat 〔-｛a｜b｜ab｝〕

これは，オプションの指定を省略した場合，-abオプションが仮定されることを示します。

〜

この記号のあとにユーザ指定値の属性を示します。

《　　》

ユーザが指定しなかった場合に仮定される値を示します。

＜　　＞

ユーザ指定値の構文要素記号を示します。

((　　))

ユーザ指定値の指定範囲を示します。

このマニュアルで使用している構文要素記号

このマニュアルで使用している構文要素記号を次に示します。

構文要素記号

意味

＜英字＞

アルファベット（A〜Z，a〜z）と下線（_）

＜英字記号＞

アルファベット（A〜Z，a〜z）と＃，＠，￥

＜英数字＞

英字と数字（0〜9）

＜英数字記号＞

英字記号と数字

＜符号なし整数＞

数字

＜16進数字＞

数字と（A〜F，a〜f）

＜識別子＞

先頭がアルファベットの英数字

＜識別子＞

RDエリア名を指定する場合の識別子

先頭が英字記号で始まる英数字記号，下線（_），ハイフン（-），および空白

空白を含む場合は，引用符（“）で囲んでください。

＜識別子＞

ホスト名を指定する場合の識別子

アルファベット（A〜Z，a〜z），数字，ピリオド（.），ハイフン（-），下線（_），および＠で構成される文字列

＜識別子＞

グローバルバッファ名を指定する場合の識別子

先頭が英字記号で始まる英数字記号

＜識別子＞

インメモリデータバッファ名を指定する場合の識別子

先頭が下線（_）で始まる英数字記号

＜記号名称＞

先頭が英字記号の英数字記号

＜文字列＞

任意の文字の配列

＜パス名＞※

/，英数字，ピリオド（.），#，@

＜HiRDBファイル名＞

アルファベット（A〜Z，a〜z），数字（0〜9），ピリオド（.），下線（_），および＠で構成される文字列（最大30文字）

注

すべて半角文字を使用してください。また，英字の大文字と小文字は区別されます。

注※

パス名は，使用しているOSに依存します。

コマンドの記述構成

このマニュアルで説明しているコマンドの記述構成を次に示します。ただし，コマンドによって多少異なります。

注※

各コマンドの実行者については，表「運用コマンド一覧」および表「ユティリティ一覧」を参照してください。

1　コマンドの概要

この章では，コマンドの入力方法，及び記述形式について説明します。

1.1　概要

HiRDBで使用するコマンドには，運用コマンドとユティリティとがあります。入力方法及び記述形式については，どちらも同じです。

1.1.1　コマンドの入力方法

HiRDBのコマンドは，シェルから入力します。

コマンドの実行形態（HiRDB/シングルサーバの場合）を次の図に示します。

図1‒1　コマンドの実行形態（HiRDB/シングルサーバの場合）

［説明］

次のどちらかの方法でコマンドを入力します。

ワークステーション又はパーソナルコンピュータから，シングルサーバがあるサーバマシンにリモートログインし，コマンドを入力します。

OSコンソールから，シングルサーバがあるサーバマシンを指定してコマンドを入力します。

コマンドの実行形態（HiRDB/パラレルサーバの場合）を次の図に示します。

図1‒2　コマンドの実行形態（HiRDB/パラレルサーバの場合）

［説明］

次のどちらかの方法でコマンドを入力します。

ワークステーション又はパーソナルコンピュータから，システムマネジャ※があるサーバマシンにリモートログインし，コマンドを入力します。

OSコンソールから，システムマネジャ※があるサーバマシンを指定してコマンドを入力します。

注※

コマンドによってはシステムマネジャ以外のサーバマシンから実行する場合もあります。各コマンドを実行するサーバマシンについては，表「運用コマンド一覧」，表「ユティリティ一覧」，又は各コマンドの説明箇所を参照してください。

1.1.2　コマンドの記述形式

コマンドの記述形式を次に示します。

　コマンド名　オプション　コマンド引数

(1)　コマンド名

コマンド名は，実行するコマンドのファイル名称です。

ファイル名称をコマンドとして使用するため，コマンド実行者の環境の環境変数PDDIRに，HiRDB運用ディレクトリを絶対パス名で指定する必要があります。

HiRDBのコマンドを実行するために，実行者は自分の環境に次の環境変数を指定します。

PDDIR：

HiRDB運用ディレクトリを絶対パス名で指定します。

PDCONFPATH：

HiRDBシステム定義ファイルを格納するディレクトリを絶対パス名で指定します。

PATH：

$PDDIR/binをPATHに加えます。

SHLIB_PATH※：

$PDDIR/libをSHLIB_PATHに加えます。

注※

Linux版の場合はLD_LIBRARY_PATHに，AIX版の場合はLIBPATHになります。

(2)　オプション

オプションで指定するのは，コマンドの操作そのものを修飾するか，又は操作の対象物を特定するために，対象物を修飾するかのどちらかです。

次の説明中で使用するcmdは，コマンド名称を示します。

オプションはマイナス記号（−）で始まる文字列で，フラグ引数を指定しないか，又は1種類のフラグ引数を指定します。

オプションの記述形式を次に示します。

−オプションフラグ

　又は

−オプションフラグ　フラグ引数

（凡例）

オプションフラグ：

1文字の英数字（英大文字と英小文字は区別されます）。

フラグ引数：

オプションフラグに対する引数（コンマ（，）で区切って複数指定できます）。

フラグ引数のないオプションフラグは，一つのマイナス記号の後ろにまとめて指定できます。

（例）次の二つは同じ意味です。

cmd -a -b -c

cmd -abc

フラグ引数を必要とするオプションフラグのフラグ引数は，省略できません。

フラグ引数中に空白を含める場合で，シェルから入力するときには，前後を引用符（"）で囲まなければなりません。

（例）1 2を引数に持つオプションfは，次のように記述します。

cmd -f "1 2"

同じオプションフラグを2回以上指定すると，最後に指定したものが有効になります。

（例）次のように入力すると，-a 2が有効となります。

cmd -a 1 -a 2

オプションは，コマンド引数より前に指定しなければなりません。

（例）オプションフラグaが，フラグ引数をとらない場合，次のように入力すると，fileと-bはコマンド引数とみなされます。

cmd -a file -b

二つのマイナス記号（−−）は，オプションの終わりを示します。

（例）次のように入力すると，-bはコマンド引数とみなされます。

cmd -a -- -b

マイナス記号だけのオプションは，入力できません。

（例）次のように入力すると，−はコマンド引数とみなされます。

cmd -

(3)　コマンド引数

コマンド引数は，コマンド操作の直接の対象となるものを指定します。対象物を修飾指定する場合，オプションで対象物を指定します。

コマンド引数として制御文ファイルを指定した場合，特に明記しないかぎり通常ファイルを対象とします。

1.1.3　コマンドの別名での利用

OSやほかのプログラムが提供しているコマンド名称とHiRDBのコマンド名称が同一であると，HiRDBのコマンドを実行できないことがあります。そのような場合，次の回避策があります。

環境変数の設定をHiRDBのコマンド優先にします。

絶対パスを指定してコマンドを実行します。

しかし，上記の二つの回避策がとれない場合，HiRDBのコマンドを任意の名称で実行できる方法があります。コマンドを別名で実行するためのシェルスクリプトの作成方法については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

1.2　運用コマンド一覧

HiRDBの運用コマンド一覧を次の表に示します。なお，運用コマンドによっては，「運用コマンドの実行者」「HiRDB稼働中での実行」「実行するサーバマシン」に，さらに条件が付くことがあります。詳細は，各運用コマンドの説明を参照してください。

表1‒1　運用コマンド一覧

運用コマンド

内容

運用コマンドの実行者

HiRDB稼働中での実行

実行するサーバマシン

pdacunlck

連続認証失敗アカウントロック状態を解除します。

HiRDB管理者

○

SDS又はMGR

pdadmvr

HiRDBの製品情報を表示します。

HiRDB管理者

◎

各サーバマシン

pdaudatld

監査証跡表の自動データロード機能を制御します。

HiRDB管理者及び監査人※1

○

SDS又はMGR

pdaudbegin

監査証跡の取得を開始します。

HiRDB管理者

○

SDS又はMGR

pdaudend

監査証跡の取得を停止します。

HiRDB管理者

○

SDS又はMGR

pdaudrm

監査証跡ファイルを削除します。

HiRDB管理者

○

SDS又はMGR

pdaudswap

監査証跡ファイルをスワップします。

HiRDB管理者及び監査人※1

○

SDS又はMGR

pdbkupls

pdcopyで取得したバックアップファイルの情報を表示します。

HiRDB管理者

◎

バックアップファイルがあるホストのサーバマシン

pdbufls

グローバルバッファの状態を表示します。

HiRDB管理者

○

SDS又はMGR

pdbufmod

HiRDB稼働中にグローバルバッファの追加，削除，又は変更をします。

HiRDB管理者

○

SDS又はMGR

pdcancel

UAP又はユティリティの処理をするHiRDB側の処理プロセスを，UAP又はユティリティから強制的に切り離し，終了します。

HiRDB管理者

○

任意のサーバマシン

pdcat

ステータスファイルの内容を表示します。

一般ユーザ

◎

任意のサーバマシン

メッセージログファイルの内容を表示します。

一般ユーザ

○

任意のサーバマシン

pdcbl

COBOL言語で記述したUAPのプリプロセスをします※2。

一般ユーザ

◎

任意のサーバマシン

pdchgconf

HiRDBの稼働中に，システム定義を変更します。

HiRDB管理者

○

SDS又はMGR

pdchpathf

HiRDBファイルに登録しているパス情報を変更します。

HiRDB管理者

×

SDS又はDS

pdchpathn

ディクショナリ表に登録しているHiRDBファイルシステム領域のパスを変更します。

HiRDB管理者

○

SDS又はMGR

pdchprc

サーバプロセスの常駐プロセス数と最大起動プロセス数を変更します。また，サーバプロセスの情報も表示します。

HiRDB管理者

○

SDS又はMGR

pdclibsync

Cライブラリファイルを操作します。

HiRDB管理者

◎

任意のサーバマシン

pdclose

RDエリアをクローズします。

HiRDB管理者

○

SDS又はMGR

pdclttrc

SQL実行中のクライアントの，SQLトレースを取得します。

HiRDB管理者

○

SDS又はMGR

pdcmdact

指定したコマンドを，HiRDB管理者として実行します。

一般ユーザ

◎

各サーバマシン

pdcmdls

pdcmdsetコマンドで設定した内容を表示します。

HiRDB管理者

◎

各サーバマシン

pdcmdset

pdcmdactコマンドで実行できるコマンドを設定します。また，pdcmdactコマンドでコマンドを実行できるユーザを設定します。

HiRDB管理者

◎

各サーバマシン

pdcmt

グローバルトランザクションを構成しているトランザクションブランチが，トランザクションを決着できないときに，トランザクションをコミットします。

HiRDB管理者

○

各サーバマシン

pdconfchk

HiRDBシステム定義の整合性をチェックします。

HiRDB管理者

◎

SDS又はMGR

pdcpp

C言語で記述したUAPのプリプロセスをします※2。

一般ユーザ

◎

任意のサーバマシン

pdcspool

トラブルシュート情報及び作業用一時ファイルを削除します。

HiRDB管理者

◎

各サーバマシン

pddbchg

レプリカRDエリアのレプリカステータスを切り替えます。

HiRDB管理者

○

SDS又はMGR

pddbfrz

ユーザLOB用RDエリアを構成するHiRDBファイルで，データが満杯となったHiRDBファイルを，更新凍結状態にします。

HiRDB管理者

○

SDS又はMGR

pddbls

RDエリアの状態を表示します。

HiRDB管理者

○

SDS又はMGR

pddefrev

定義系SQLを生成します。

DBA権限保持者，又は表の所有者。

かつHiRDBグループのユーザ※4。

○

SDS又はMGR

pddivinfgt

表の分割条件の取得及び出力をします。

DBA権限保持者，又は表の所有者。

かつHiRDBグループのユーザ※4。

○

任意のサーバマシン

pdextfunc

拡張システム定義スカラ関数の定義又は削除をします。

HiRDB管理者

○

任意のサーバマシン

pdfbkup

HiRDBファイルシステム領域のバックアップを取得します。

HiRDB管理者

◎

HiRDBファイルシステム領域があるサーバマシン

pdfchfs

HiRDBファイルシステム領域の管理情報を変更します。

HiRDB管理者

◎

HiRDBファイルシステム領域があるサーバマシン

pdffsck

HiRDBファイルシステム領域の整合性の検証及び修復をします。

スーパユーザ又はHiRDB管理者

◎

HiRDBファイルシステム領域があるサーバマシン

pdfgt

グローバルトランザクションを構成している各トランザクションブランチが何らかの要因でトランザクションを終了できない場合，強制的にトランザクションを終了します。

HiRDB管理者

○

各サーバマシン

pdfls

HiRDBファイルシステム領域内のHiRDBファイルの内容を表示します。

一般ユーザ

◎

HiRDBファイルシステム領域があるサーバマシン

pdfmkfs

ファイルをHiRDBファイルシステム領域用に初期設定します。

HiRDB管理者

◎

HiRDBファイルシステム領域を初期設定するサーバマシン

pdfrm

HiRDBファイルシステム領域からHiRDBファイルを削除します。

HiRDB管理者

◎

HiRDBファイルシステム領域があるサーバマシン

pdfrstr

pdfbkupコマンドで取得したバックアップをHiRDBファイルシステム領域にリストアします。

HiRDB管理者

×

HiRDBファイルシステム領域があるサーバマシン

pdfstatfs

HiRDBファイルシステム領域の状態を表示します。

一般ユーザ

◎

HiRDBファイルシステム領域があるサーバマシン

pdfzeroinit

指定したHiRDBファイルシステム領域内にある使用済み領域を初期化します。

HiRDB管理者

◎

HiRDBファイルシステム領域があるサーバマシン

pdgeter

HiRDBシステムの障害情報を取得します。

HiRDB管理者

◎

任意のサーバマシン

pdhold

RDエリアを閉塞します。

HiRDB管理者

○

SDS又はMGR

pdinfoget

HiRDBシステムで障害が発生した場合，障害の原因を調査するために障害情報を取得します。また，取得する情報の容量見積もりをします。

HiRDB管理者

◎

任意のサーバマシン

pdinfocoreget

pdinfogetでcoreファイルが取得できなった場合，coreファイルを取得します。また，取得するcoreファイルの容量見積もりをします。

スーパーユーザ

◎

任意のサーバマシン

pditvstop

pditvtrcコマンドで起動したコマンドを停止します。

一般ユーザ

◎

任意のサーバマシン

pditvtrc

指定したコマンドを，指定した秒間隔ごとに実行して，実行結果をファイルに出力します。

一般ユーザ

◎

任意のサーバマシン

pdjarsync

JARファイルの登録，再登録，削除，又は一覧表示をします。

HiRDB管理者

◎

SDS又はMGR

pdlistls

リスト定義情報を表示します。

HiRDB管理者

○

SDS又はMGR

pdlogadpf

HiRDBシステム定義で指定したファイルグループに物理ファイルを割り当てます。

HiRDB管理者

○

SDS又はMGR

pdlogatul

自動ログアンロード機能の再開始，中断，又は動作状態の表示をします。

HiRDB管理者

○

SDS又はMGR

pdlogchg

ファイルグループのステータスを変更します。

HiRDB管理者

◎

SDS又はMGR

pdlogcls

ファイルグループを構成するオープン中の物理ファイルをクローズし，稼働中のHiRDBで使用しないようにします。

HiRDB管理者

○

SDS又はMGR

pdloginit

HiRDBファイルシステム領域にログ関係の物理ファイルを作成し，稼働中のHiRDBで使用できるように初期設定します。

HiRDB管理者

◎

SDS又はMGR

pdlogls

シンクポイントダンプファイルの情報を表示します。

一般ユーザ

○

SDS又はMGR

システムログファイルの情報を表示します。

一般ユーザ

◎

SDS又はMGR

pdlogopen

ファイルグループを構成するクローズ中の物理ファイルをオープンし，稼働中のHiRDBで使用できるようにします。

HiRDB管理者

○

SDS又はMGR

pdlogrm

HiRDBファイルシステム領域にあるログ関係のファイル※3を削除します。

HiRDB管理者

◎

SDS又はMGR

pdlogswap

ログ関係のファイル※3をスワップします。

HiRDB管理者

○

SDS又はMGR

pdlogsync

シンクポイントダンプを取得します。

HiRDB管理者

○

SDS又はMGR

pdlogucat

アンロードログファイルの情報を表示します。

HiRDB管理者

◎

アンロードログファイルがあるホストのサーバマシン

pdlogunld

アンロードログファイルを作成し，ファイルグループをアンロード済み状態にします。

HiRDB管理者

◎

SDS又はMGR

pdls

次に示す状態を表示します。

ユーザの状態

監査証跡ファイルの状態

系切り替え機能を使用しているときの系の状態

サーバの排他の状態

サーバの共用メモリの情報

オンライン再編成の追い付き反映処理の経過情報

サーバのプロセスの状態

ログ適用処理の実行状況

コネクションが確立しているサーバの通信制御情報

HiRDB Datareplicator連携の状態

サーバのスケジュールの状態

ユニット及びサーバごとの統計情報出力種別の指定有無

ステータスファイルの状態

ユニット及びサーバの状態

サーバのトランザクションの状態

ユニットの稼働状態

-dオプションの指定によって異なります。

なお，-d aud以外のオプション指定時はHiRDBグループのユーザ※4。

-dオプションの指定によって異なります。

-dオプションの指定によって異なります。

pdmemdb

インメモリデータ処理に関する操作をします。

HiRDB管理者

○

SDS又はMGR

pdmemsv

マルチHiRDB運用時に，メモリを削減できるようにします。

スーパユーザ

×

SDS又はMGR

pdmstchk

マスタディレクトリ用RDエリアとディクショナリ表の整合性をチェックします。

HiRDB管理者

○

SDS又はDS

pdobils

SQLオブジェクト用バッファに格納されているSQLオブジェクトの利用状況を表示します。

HiRDB管理者

○

任意のサーバマシン

pdobjconv

64ビットモードのHiRDBへSQLオブジェクトを移行します。

DBA権限保持者，かつHiRDBグループのユーザ※4

○

SDS又はMGR

pdocb

OOCOBOL言語で記述したUAPのプリプロセスをします※2。

一般ユーザ

◎

任意のサーバマシン

pdocc

C++言語で記述したUAPのプリプロセスをします※2。

一般ユーザ

◎

任意のサーバマシン

pdopen

RDエリアをオープンします。

HiRDB管理者

○

SDS又はMGR

pdopsetup

HiRDBの付加PPの組み込み・取り外しをします。

スーパユーザ

×

各サーバマシン

pdorbegin

オリジナルRDエリアとレプリカRDエリアを，オンライン再編成閉塞にします。

HiRDB管理者

○

SDS又はMGR

pdorcheck

更新可能なオンライン再編成の適用条件をチェックします。

HiRDB管理者

○

SDS又はMGR

pdorchg

カレントRDエリアを，オンライン再編成閉塞のオリジナルRDエリアから，オンライン再編成閉塞のレプリカRDエリアに切り替えます。

HiRDB管理者

○

SDS又はMGR

pdorcreate

オンライン再編成の追い付き反映の環境を作成します。

HiRDB管理者

○

SDS又はMGR

pdorend

オンライン再編成の追い付き反映をします。

HiRDB管理者

○

SDS又はMGR

pdparaload

パラレルローディングを実行します。

pdloadと同じ

○

SDS又はMGR

pdpfresh

現在稼働中のサーバプロセスを終了させ，代わりに新しいサーバプロセスを開始します。

HiRDB管理者

○

SDS又はMGR

pdplgrgst

プラグインの登録，削除，又はバージョンアップをします。

DBA権限保持者，かつHiRDBグループのユーザ※4

○

任意のサーバマシン

pdplgset

プラグインをセットアップします。

HiRDB管理者

×

各サーバマシン

pdprfed

PRFトレース情報ファイル（バイナリ形式）をCSV形式に変換して出力します。

HiRDB管理者

◎

任意のサーバマシン

pdprflevel

PRFトレース取得レベル（pd_prf_levelオペランドの指定値）を表示又は変更します。

HiRDB管理者

○

任意のサーバマシン

pdprgcopy

修正版HiRDBを入れ替え用ディレクトリ下にコピーします。

HiRDB管理者

◎

SDS又はMGR

pdprgrenew

稼働中のHiRDBを，修正版HiRDBに入れ替えます。

HiRDB管理者

○

SDS又はMGR

pdrbk

グローバルトランザクションを構成しているトランザクションブランチがトランザクションを決着できないときに，トランザクションをロールバックします。

HiRDB管理者

○

各サーバマシン

pdrdconstck

インナレプリカグループ内のRDエリアの構成情報の整合性をチェックします。

HiRDB管理者

○

SDS又はDS

pdrdrefls

関連するRDエリアの情報の表示，又はRDエリアの関連性チェックをします。

HiRDB管理者

○

SDS又はMGR

pdrels

RDエリアの閉塞状態を解除します。

HiRDB管理者

○

SDS又はMGR

pdrisechk

リアルタイムSANレプリケーションの構成確認をします。

HiRDB管理者

◎

SDS又はMGR

pdrisedbto

ログ同期方式のリアルタイムSANレプリケーションで，ログ適用サイトを終了して，業務サイトからデータベースを引き継ぎます。

HiRDB管理者

○

ログ適用サイトのSDS又はMGR

pdriseset

ログ同期方式のリアルタイムSANレプリケーションで，コマンド実行側のサイト状態の設定，若しくは解除，又はサイト状態を表示します。

HiRDB管理者

◎

SDS又はMGR

pdrpause

中断されていたシステムの開始処理又は再開始処理を再開します。

HiRDB管理者

×

各サーバマシン

pdrplstart

HiRDB Datareplicator連携を開始します。

HiRDB管理者

○

SDS又はMGR

pdrplstop

HiRDB Datareplicator連携を終了します。

HiRDB管理者

○

SDS又はMGR

pdsetenv

HiRDBユニットの環境を設定します。

スーパユーザ

×

各サーバマシン

pdsetup

HiRDB運用ディレクトリ下のHiRDBシステムをOSに登録・削除します。

スーパユーザ

×

各サーバマシン

pdstart

HiRDBシステムを開始します。

HiRDB管理者

×

SDS又はMGR

ユニット又はサーバを開始します。

HiRDB管理者

○

SDS又はMGR

pdstbegin

統計ログファイルへの統計情報の出力を開始します。

HiRDB管理者

○

SDS又はMGR

pdstend

統計ログファイルへの統計情報の出力を停止します。

HiRDB管理者

○

SDS又はMGR

pdstjswap

統計ログファイルをスワップします。

HiRDB管理者

○

SDS又はMGR

pdstjsync

統計ログファイルに統計ログバッファの情報を出力します。

HiRDB管理者

○

任意のサーバマシン

pdstop

HiRDBシステム，ユニット，又はサーバを終了します。

HiRDB管理者

○

SDS又はMGR

pdstscls

オープン状態のステータスファイルをクローズします。

HiRDB管理者

○

SDS又はMGR

pdstsinit

ステータスファイル（論理ファイル）を構成する，物理ファイルを初期設定します。

HiRDB管理者

◎

SDS又はMGR

pdstsopen

初期設定したステータスファイル，又はクローズしたステータスファイルをオープンします。

HiRDB管理者

○

SDS又はMGR

pdstsrm

ステータスファイルを削除します。

HiRDB管理者

◎

SDS又はMGR

pdstsswap

ステータスファイルをスワップします。

HiRDB管理者

○

SDS又はMGR

pdsvhostname

サーバのホスト名をDAT形式で表示します。

HiRDB管理者

○

SDS又はMGR

pdtrndec

未決着のトランザクションがある場合，そのトランザクションを強制的に決着します。

HiRDB管理者

○

SDS又はMGR

pdtrnqing

トランザクションキューイングの開始，又は解除をします。

HiRDB管理者

○

任意のサーバマシン

pdvrup

HiRDBをバージョンアップしたときに，マスタディレクトリ用RDエリア及びデータディクショナリ用RDエリアを保守します。

HiRDB管理者

○

SDS又はMGR

（凡例）

◎：HiRDBの稼働に関係なく実行できます。

○：HiRDBが稼働中のときだけ実行できます。

×：HiRDBが停止中のときだけ実行できます。

SDS：HiRDB/シングルサーバの場合に，シングルサーバがあるサーバマシンで実行することを示します。

MGR：HiRDB/パラレルサーバの場合に，システムマネジャがあるサーバマシンで実行することを示します。

DS：HiRDB/パラレルサーバの場合に，ディクショナリサーバがあるサーバマシンで実行することを示します。

注1

運用コマンド又はユティリティの実行時に指定したファイルを，ほかの運用コマンド，ユティリティ，又はUAPで同時に使用しないでください。同じファイルを運用コマンド，ユティリティ，又はUAPで同時に使用した場合は，処理結果が不正となったりエラーが発生したりすることがあります。

注2

運用コマンドは，HiRDBのサービスの状態が開始（OSによって表記は異なります）となっているときに実行してください。

注※1

HiRDB管理者でコマンドを実行し，HiRDBへアクセスする際の認証には監査人の認可識別子とパスワードを指定してください。

注※2

詳細は，マニュアル「HiRDB UAP開発ガイド」を参照してください。

注※3

システムログファイル及びシンクポイントダンプファイルを示します。

注※4

通信情報ファイルディレクトリ変更機能を適用している場合は，HiRDBグループに属しているユーザで実行してください。

1.3　ユティリティ一覧

HiRDBのユティリティ一覧を次の表に示します。なお，ユティリティによっては，「ユティリティの実行者」「HiRDB稼働中での実行」「実行するサーバマシン」に，さらに条件が付くことがあります。詳細は，各ユティリティの説明を参照してください。

表1‒2　ユティリティ一覧

ユティリティ

内容

ユティリティの実行者

HiRDB稼働中での実行

実行するサーバマシン

データべース初期設定ユティリティ

（pdinit）

データベースの初期設定（RDエリアの作成）をします。

HiRDB管理者

○

SDS又はMGR

データべース定義ユティリティ

（pddef）

定義系SQLを実行します。

CONNECT権限保持者，かつHiRDBグループのユーザ※2

○

任意のサーバマシン

データべース作成ユティリティ

（pdload）

ユーザが用意したデータを表に格納します。

HiRDBグループのユーザ※2。

DBアクセスに必要なユーザの権限は，動作モードによって異なります。

○

SDS又はMGR

会話型SQL実行ユティリティ

（pdsql）

会話形式でSQLを実行できます。

CONNECT権限保持者

○

任意のサーバマシン

データべース構成変更ユティリティ

（pdmod）

RDエリアの追加，拡張，又は再初期化など，データベースの物理構成を変更します。

HiRDB管理者

○

SDS又はMGR

データべース再編成ユティリティ

（pdrorg）

表の再編成，インデクスの再作成など，表のメンテナンスをします。

機能によって異なります。

○

SDS又はMGR

ディクショナリ搬出入ユティリティ

（pdexp）

表定義情報又はストアドプロシジャ情報を移行します。

DBA権限保持者，又は表の所有者。

かつHiRDBグループのユーザ※2。

○

SDS又はMGR

リバランスユティリティ

（pdrbal）

リバランス表にRDエリアを追加したときに発生する，データの偏りを修正します。

DBA権限保持者，又はSELECT権限，INSERT権限，DELETE権限保持者。

かつHiRDBグループのユーザ※2。

○

SDS又はMGR

空きページ解放ユティリティ

（pdreclaim）

オンライン中に空きページ（使用中空きページ）を解放します。

DBA権限保持者，又はINSERT権限，DELETE権限保持者。

かつHiRDBグループのユーザ※2。

○

SDS又はMGR

グローバルバッファ常駐化ユティリティ（pdpgbfon）

表のページ情報をグローバルバッファに読み込みます。

DBA権限保持者，SELECT権限保持者，又はスキーマの所有者。かつHiRDBグループのユーザ※2。

○

SDS又はMGR

整合性チェックユティリティ（pdconstck）

参照制約又は検査制約が定義された表に対して，整合性チェック及び検査保留状態の操作（設定又は解除）をします。

DBA権限保持者，又は表の所有者。

かつHiRDBグループのユーザ※2。

○

SDS又はMGR

統計解析ユティリティ

（pdstedit）

アンロードデータファイル，及びシステムログファイルから情報を入力し，統計情報を編集します。

HiRDB管理者

◎

任意のサーバマシン

データべース状態解析ユティリティ

（pddbst）

ユーザ用RDエリアの表とインデクス，又はデータディクショナリ用RDエリアの格納状態を解析し，解析結果を表示します。

DBA権限保持者，かつHiRDBグループのユーザ※2

○

SDS又はMGR

最適化情報収集ユティリティ

（pdgetcst）

コストベースの最適化のための最適化情報を取得し，ディクショナリ表に最適化情報を登録します。

SELECT権限保持者，かつHiRDBグループのユーザ※2

○

SDS又はMGR

アクセスパス表示ユティリティ

（pdvwopt）

SQL最適化処理によって決定されたアクセスパスを表示します。

一般ユーザ

◎

SDS又はFES

データべース複写ユティリティ

（pdcopy）

データベースのバックアップを取得します。

ログポイント情報の取得，及びログポイント情報ファイルの作成をします。

HiRDB管理者

○

SDS又はMGR

データべース回復ユティリティ

（pdrstr）

障害が発生した場合，データベースのバックアップとバックアップ取得以降のログを基にして，データベースを回復します。

ログポイント情報ファイルを再作成します。

HiRDB管理者

○

SDS又はMGR

レジストリ機能初期設定ユティリティ

（pdreginit）

レジストリ機能を管理，操作するためのレジストリ用RDエリア，レジストリLOB用RDエリア，及びレジストリ管理表を作成します。

HiRDB管理者

○

SDS又はMGR

JP1/NETM/Audit用監査ログ出力ユティリティ（pdaudput）

JP1/NETM/Audit用監査ログ出力ファイルに，監査証跡表のデータを出力します。

HiRDB管理者及び監査人※¹

○

SDS又はMGR

（凡例）

◎：HiRDBが稼働中でも停止中でも実行できます。

○：HiRDBが稼働中のときだけ実行できます。

SDS：HiRDB/シングルサーバの場合に，シングルサーバがあるサーバマシンで実行することを示します。

MGR：HiRDB/パラレルサーバの場合に，システムマネジャがあるサーバマシンで実行することを示します。

FES：HiRDB/パラレルサーバの場合に，フロントエンドサーバがあるサーバマシンで実行することを示します。

注1

運用コマンド又はユティリティの実行時に指定したファイルを，ほかの運用コマンド，ユティリティ，又はUAPで同時に使用しないでください。同じファイルを運用コマンド，ユティリティ，又はUAPで同時に使用した場合は，処理結果が不正となったりエラーが発生したりすることがあります。

注2

ユティリティは，HiRDBのサービスの状態が開始（OSによって表記は異なります）となっているときに実行してください。

注※1

HiRDB管理者でコマンドを実行し，HiRDBへアクセスする際の認証には監査人の認可識別子とパスワードを指定してください。

注※2

通信情報ファイルディレクトリ変更機能を適用している場合は，HiRDBグループに属しているユーザで実行してください。

1.4　ユティリティの入出力ファイル

1.4.1　「ファイル」と「ボリューム」の概念

HiRDBでは，「ファイル」及び「ボリューム」を次のように定義しています。

ファイル：

ユティリティからみた論理的な単位

ボリューム：

物理的な格納単位

通常ファイルの場合，一つの通常ファイルを指します。テープ装置を扱う場合は，各テープ媒体のことを指します。 HiRDBファイルシステムでは，一つのHiRDBファイルを指します。

通常一つの「ファイル」は一つの「ボリューム」の中に格納されます（シングルファイル・シングルボリューム）。しかし，「ファイル」が「ボリューム」に比べて大きい場合，「ファイル」を複数のボリュームに分割して格納することになります（シングルファイル・マルチボリューム）。それとは逆に「ファイル」が「ボリューム」に比べて小さい場合，フォーマット上できるならば，複数の「ファイル」を一つの「ボリューム」上にまとめて格納することになります(マルチファイル・シングルボリューム）。

また，「マルチファイル・シングルボリューム」に「ファイル」を追加してゆくと最後の「ファイル」が次のボリュームにわたって格納されることがあります（マルチファイル・マルチボリューム）。

「ファイル」と「ボリューム」の概念図を次の図に示します。

図1‒3　「ファイル」と「ボリューム」の概念図

1.4.2　ユティリティで使用できるファイルの形態

HiRDBの各ユティリティの入出力ファイルは，特に明記しないかぎり通常ファイルを対象とし，その形態は「シングルファイル・シングルボリューム」となります。

また，NFS（ネットワークファイルシステム）は，ネットワークを介したファイルアクセスであるため，性能遅延，データ欠損などが発生する場合があり，信頼性の面からユティリティの入出力ファイルとして使用を推奨しません。

ユティリティによっては「シングルファイル・シングルボリューム」以外の形態のファイルを扱えます。通常ファイル「シングルファイル・シングルボリューム」以外の入出力ができるユティリティの一覧を次の表に示します。

表1‒3　通常ファイル「シングルファイル・シングルボリューム」以外の入出力ができるユティリティ一覧

ユティリティ名

ファイル種別

通常ファイルシングルファイルマルチボリューム

テープ装置※１

EasyMT

HiRDBファイル

シングルファイル

マルチファイル

データベース作成ユティリティ（pdload）

入力データファイル，LOB入力ファイル，列単位LOB入力ファイル

○※２

△

○※３

-f easymt

○※３

-f easymt

×

データベース再編成ユティリティ（pdrorg）

アンロードデータファイル，LOBデータのアンロードファイル

○

○

-f hirdb

データベース複写ユティリティ（pdcopy）

バックアップファイル

○

-k m

又は

-k e※３

×

○

-k i

データベース回復ユティリティ（pdrstr）

ディクショナリ搬出入ユティリティ（pdexp）

搬出ファイル

×

×

×

×

（凡例）

○：

使用できます。コマンドラインでの指定が必要な場合は，○の下にオプションフラグを記述してあります。その場合，このコマンドオプション以外にも各ファイルに固有の情報の指定が必要となります。詳細は，各コマンドの該当オプションフラグの説明を参照してください。

△：

可変長ブロックモードは使用できます，固定長ブロックモードではDAT形式が使用できます（拡張DAT形式は不可）。バイナリ形式は使用できません。詳細は，「データベース作成ユティリティの入力データファイルの作成方法」を参照してください。

×：

未対応です。

注※1

Linux版の場合，pdload，pdcopy，pdrstr，及びpdrorgでは固定長ブロックテープは使用できません。

注※2

pdrorg，pdcopyで通常ファイル・シングルファイルマルチボリュームに出力する場合，各ボリュームには容量が2ギガバイトを超えないファイルシステム上のファイルを指定してください。

注※3

Mtguideがインストールされて使用できる状態であれば，シングルボリュームの場合だけ，Mtguideを用いてボリュームが管理されます。Mtguideを用いてボリュームを管理しない場合には，次の指定をしてください。

pdload又はpdrorg：制御情報ファイル内でmtguide nouseを指定

pdcopy又はpdrstr：コマンドラインで-k eを指定

(1)　テープ装置

ユティリティで使用できるテープ装置を次の表に示します。

表1‒4　ユティリティで使用できるテープ装置

装置名称

ユティリティでの直接入出力

CMT

×

DAT

○

OMT

×

CGMT

×

8mm

○

DLT

○

LTO

○

（凡例）

○：使用できます。

×：使用できません。

注　

EasyMTを利用する場合，使用できるテープ装置については，マニュアル「磁気テープ運用支援　JP1/Magnetic Tape Access」，又は「磁気テープ簡易アクセス法　EasyMT」を参照してください。

ユティリティがテープ装置に対して直接入出力をする場合，シングルボリュームとして扱うため，装置タイプは単体のTape Driveとしてアクセスします。AutoloaderやTape Libraryの制御はしません。

テープ装置では可変長ブロックモードで使用することをお勧めします。

固定長ブロックモードでは512バイト単位で入出力をしますが，可変長ブロックモードでは32キロバイト単位で入出力をするため，入出力回数が削減できます。固定長ブロックモードを使用する場合は，ブロックサイズが512バイトであることを確認してください。

各テープ装置については，OSのマニュアルを参照してください。

pdrorg，pdload，又はpdrstrでテープ装置を使用する場合，デバイスドライバのマイナー番号に，クローズ時に巻き戻さない指定はしないでください。巻き戻しをしないでユティリティを実行した場合，ユティリティ終了後にmtコマンド（磁気テープ操作プログラム）などでテープを巻き戻す必要があります。

一つの媒体に複数のバックアップを保存したい場合は，いったんユティリティでバックアップをファイルに出力して，それからtarコマンドなどで一つの媒体へコピーするなどしてください。

(2)　EasyMT，MTguide

関連プログラムプロダクトのEasyMTをインストールして，表「通常ファイル「シングルファイル・シングルボリューム」以外の入出力ができるユティリティ一覧」のオプションフラグを指定すれば，テープ装置の可変長ブロックモードでラベルを付けた形の磁気テープを扱えます。また，HITAC Mシリーズで作成したテープを扱えます。

HiRDBのユティリティとEasyMTの組み合わせで，テープ装置を次の形態で扱います(シングルボリュームへの対応）。

シングルファイル・シングルボリューム

マルチファイル・シングルボリューム

EasyMTとMTguideについては，次のマニュアルを参照してください。

EasyMT

「磁気テープ運用支援　JP1/Magnetic Tape Access」，又は「磁気テープ簡易アクセス法　EasyMT」

MTguide

「磁気テープマウント管理　JP1/Magnetic Tape Library」

(3)　HiRDBファイル

HiRDBユティリティは，入出力ファイルとして直接ハードディスク装置のキャラクタ型スペシャルファイルを扱えませんが，それをHiRDBファイルシステム領域とすることで扱えます。

また，通常ファイルでもHiRDBファイルシステムとして初期化すれば，HiRDBファイルとして扱えます。

入出力ファイルとしてHiRDBファイルを使用する場合は，事前にpdfmkfsコマンドで-k UTLを指定して，HiRDBファイルシステムを作成し，HiRDBユティリティ実行時に表「通常ファイル「シングルファイル・シングルボリューム」以外の入出力ができるユティリティ一覧」のオプションを指定する必要があります。

HiRDBユティリティはHiRDBファイルを次の形態で使用します。

シングルファイル・シングルボリューム

シングルファイル・マルチボリューム

HiRDBファイルについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

1.5　コマンド実行時の留意事項

1.5.1　コマンド実行中の割り込みによる強制終了

コマンド実行中は，シグナル割り込み（例えば，CTL＋C，CTL＋¥，OSのkillコマンドなど）を使用してコマンドを強制終了させないでください。タイミングによっては，HiRDBが終了することがあります。ユティリティについては，pdcancelコマンドで終了させてください。

1.5.2　運用コマンド，ユティリティでのRDエリアの指定

運用コマンド，ユティリティでのRDエリアの指定について説明します。

(1)　RDエリアの指定

運用コマンド，及びユティリティでRDエリアを指定する場合，次の方法が選択できます。

RDエリア名を指定する（直接指定）

複数のRDエリアをグループ化して指定する（一括指定）

運用コマンド又はユティリティの引数にALLを指定する（ALL指定）

(a)　RDエリア名を指定する（直接指定）

RDエリア名をコマンドラインで直接指定できます。

(b)　複数のRDエリアをグループ化して指定する（一括指定）

運用コマンドで指定するRDエリアは，次の方法で一括指定できます。これによって，複数のRDエリアをグループ化して指定できます。

表1‒5　RDエリアを一括指定する方法

項目

パターン文字列の例

意味

指定例

前方一致

nnn*

先頭部分がnnnのRDエリアが対象となります。

RDUSER*

（RDUSERで始まるRDエリアが対象となります）

nnn*mmm*

先頭部分がnnn，任意の部分にmmmを含むRDエリアが対象となります。

RD*USER*

（RDで始まり，USERを含むRDエリアが対象となります）

nnn*mmm

先頭部分がnnn，最後の部分がmmmのRDエリアが対象となります。

RD*USER

（RDで始まり，USERで終わるRDエリアが対象となります）

中間一致

*nnn*

任意の部分にnnnを含むRDエリアが対象となります。

*RDUSER*

（RDUSERを含むRDエリアが対象となります）

*nnn*mmm*

任意の部分にnnnとmmmを含むRDエリアが対象となります。

*RD*USER*

（RDとUSERを含むRDエリアが対象となります）

後方一致

*nnn

最後の部分がnnnのRDエリアが対象となります。

*RDUSER

（RDUSERで終わるRDエリアが対象となります）

*mmm*nnn

任意の部分にmmmを含み，最後の部分がnnnのRDエリアが対象となります。

*RD*USER

（RDを含み，USERで終わるRDエリアが対象となります）

.nnn

.の後にnnnで終わるRDエリアが対象となります。pdcopy及びpdrstrの場合だけ指定できます。

..RDUSER

（任意の２文字の後がRDUSERで終わる，8文字のRDエリアが対象となります）

(c)　運用コマンド又はユティリティの引数にALLを指定する（ALL指定）

ALLを指定すると，すべてのRDエリアに対して処理を実行します。

ALLは，引数の先頭に記載してください。また，ALLを指定したときは，同時に直接指定と一括指定を指定することはできません。

(2)　RDエリアを指定する場合の規則

運用コマンド，又はユティリティによって，直接指定，一括指定，ALL指定の指定可否が異なります。直接指定，一括指定，ALL指定の指定可否を次の表に示します。

表1‒6　直接指定，一括指定，ALL指定の指定可否

運用コマンド，及びユティリティ名

指定方法

直接指定

一括指定

ALL指定

pdhold

○

○

○

pdrels

○

○

○

pdopen

○

○

○

pdclose

○

○

○

pddbls

○

○

○

pddbchg

○

○

○

pddbfrz

○

○

○

pdmemdb

○

○

○

pdbufmod

○

×

×

pdorbegin

○

○

×

pdorcheck

○

○

○

pdrdrefls

○

○

○

pdorcreate

○

×

×

pdrorg

○

×

×

pdreclaim

○

×

×

pdpgbfon

○

×

×

pddbst

再編成時期予測

×

×

○

状態解析結果蓄積

○

○

○

RDエリア論理解析

○

○

○

RDエリア物理解析

○

○

○

pdcopy

○

○

×

pdrstr

○

○

×

pdrdconstck

○

×

○

（凡例）

○：指定できます。

×：指定できません。

RDエリアを指定する場合，文字列長の上限は，OSやシェルスクリプト指定文字列長の制限に従います。その値を超えるとエラーとなり，運用コマンド及びユティリティは実行されません。

RDエリア名を重複して指定した場合，重複排除して処理されます。ただし，次の運用コマンド又はユティリティを指定した場合は，重複排除しないでエラーとなります。

pdorcreate -o

pdrorg

pdreclaim

pdpgbfon

指定できるRDエリア数の上限値を次の表に示します。重複排除された結果の値と処理対象として指定できるRDエリア数です。なお，重複排除されたRDエリアの数が上限値を超えるとエラーとなります。

表1‒7　指定できるRDエリア数の上限値

運用コマンド，及びユティリティ名

重複排除された

RDエリア数の上限値

処理できるRDエリア数の

上限値

pdhold

4,096

上限なし

pdrels

4,096

上限なし

pdopen

4,096

上限なし

pdclose

4,096

上限なし

pddbls

4,096

上限なし

pddbchg

4,096

上限なし

pddbfrz

4,096

上限なし

pdmemdb

4,096

上限なし

pdbufmod

4,096

4,096

pdorbegin

4,096

4,096

pdorcheck

上限なし

上限なし

pdrdrefls

上限なし

上限なし

pdorcreate

-o指定の場合：1

-r指定の場合：4,095

-o指定の場合：1

-r指定の場合：4,095

pdrorg

1

1

pdreclaim

1

1

pdpgbfon

1

1

pddbst

再編成時期予測

1

上限なし

状態解析結果蓄積

4,096

上限なし

RDエリア論理解析

4,096

上限なし

RDエリア物理解析

4,096

上限なし

pdcopy

上限なし

上限なし

pdrstr

上限なし

上限なし

pdrdconstck

1

上限なし

(3)　注意事項

パターン文字列中に指定する「*」及び「.」についての注意事項を示します。

pdcopy，及びpdrstrの場合

パターン文字列中に指定する「*」及び「.」は，任意の位置で任意の個数指定できます。ただし，「*」だけのパターン文字列，「.」だけのパターン文字列，及び「*」と「.」だけのパターン文字列は指定しないでください。

pdcopy，及びpdrstr以外の場合

パターン文字列中に指定する「*」は，任意の位置で任意の個数指定できます。ただし，「*」だけのパターン文字列は指定しないでください。

パターン文字列中には，「%」を含めないでください。

RDエリア名，及びパターン文字列中の英字の大文字と小文字を区別する場合，全体を引用符（"）で囲んでください。引用符で囲まない場合はすべて大文字として扱われます。また，空白を含む場合も引用符で囲んでください。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，全体をアポストロフィ（’）で囲む必要があります。

ただし，pdcopy，及びpdrstrにパターン文字列を指定した場合は，引用符の有無に関係なく，文字を大文字と小文字に区別します。

一括指定でグループ化されたRDエリアと，ほかのRDエリア名の指定（ほかの一括指定でグループ化されたRDエリア名も含む）が重複した場合，複数回処理をするかどうかについては運用コマンド及びユティリティによって異なります。RDエリア名が重複した場合の運用コマンド及びユティリティの処理方法を次に示します。

表1‒8　RDエリア名が重複した場合の運用コマンド及びユティリティの処理方法

運用コマンド，及びユティリティ名

重複した場合の処理

pdhold

-s指定の場合：

重複排除します。

-s以外の指定の場合：

重複排除しないで複数回処理を実行します。

pdrels

重複排除しないで複数回処理を実行します。

pdopen

pdclose

pddbls

pddbchg

重複排除します。

pddbfrz

重複排除しないで複数回処理を実行します。

pdmemdb

重複排除します。

pdbufmod

該当しません。

pdorbegin

重複排除します。

pdorcheck

pdrdrefls

重複排除します。

pdorcreate

該当しません。

pdrorg

該当しません。

pdreclaim

pdpgbfon

pddbst

再編成時期予測

状態解析結果蓄積

重複排除します。

RDエリア論理解析

RDエリア物理解析

pdcopy

pdrstr

pdrdconstck

該当しません。

指定するパターン文字列の文字数の合計が指定可能なRDエリア名称の長さ（30文字）を超えないようにしてください。

1.5.3　コマンド実行結果をDAT形式で出力する場合の規則

コマンドの実行結果をDAT形式で出力する場合の規則を次の表に示します。

表1‒9　コマンド実行結果をDAT形式で出力する場合の規則

コマンド

オプション

各要素をコンマ（,）で区切って表示する

文字要素を引用符（"）で囲んで表示する

数値要素をそのまま表示する

空要素（文字要素）を二つの連続した引用符（"）で表示する

空要素（数値要素）の値を表示しない

pdbufls

−

○

○

○

○

○

pddbls

−

○

○

○

○

○

pddbst

-k logi

○

○※1

○

○

○

-k phys

○

○※1

○

−※2

○

-k pred

○

○※1

○

−※2

○

pdbkupls

−

○

−※3

○

−※2

○

pdfstatfs

−

○

○

○

○

○

pdlogls

-d sys

○

○

○

○

○

pdlogucat

−

○

−※3

○

−※2

○

pdls

-d prc

○

○

○

○

○

-d svr

○

○

−※4

○

−※4

-d trn

○

○

○

○

○

-d ust

○

○

−※4

○

−※4

pdobils

−

○※5

−

○

−

○

pdrdconstck

−

○

○

○

○

○

pdstedit

−

○

○※1

○

○

○

pdsvhostname

−

−※6

○

−※4

−※2

−※4

（凡例）

○：該当します。

−：該当しません。

注

要素，文字要素，数値要素，及び空要素について説明します。

要素：要素には，文字要素，数値要素，及び空要素があります。

文字要素：出力形式が文字列の要素を表します。

数値要素：出力形式が数値の要素を表します。

空要素：情報がない要素を表します。

注※1　先頭にタイトル行を出力しますが，タイトル行自体は引用符（"）で囲まれません。

注※2　数値要素と同じで，値は表示されません。

注※3　数値要素と同じで，そのまま表示されます。

注※4　数値要素がないため該当しません。

注※5　-Cオプションの区切り文字にコンマを指定した場合，各要素がコンマで区切られて表示されます。

注※6　要素が一つだけのため該当しません。

1.5.4　LANG環境変数の設定

コマンドには，LANG環境変数の設定が必要なものがあります。

LANG環境変数を指定しなくても，LC_ALL又はLC_*環境変数を指定していれば，こちらの設定が有効となります。また，LC_ALL又はLC_*環境変数を指定していない場合はLANG環境変数の設定が有効となります。

LANG環境変数の設定が必要なコマンドについては，これらを考慮して実行するようにしてください。

1.5.5　OSログインユーザの簡易認証機能使用時の規則

OSログインユーザの簡易認証機能を使用する場合の規則を示します。

(1)　HiRDB接続時の規則

HiRDBに接続する場合，環境変数PDUSERの認可識別子及びパスワードに簡易認証キーワードを指定し，-uオプションは指定しないでください。

(2)　認可識別子を省略した場合の規則

コマンドライン及び制御文に指定する表名，インデクス名，抽象データ型名，関数名，順序数生成子で認可識別子を省略した場合，仮定される認可識別子は，ログインウィンドウのユーザ名になります。

(3)　制限事項

OSログインユーザの簡易認証機能を使用した場合，次の表のとおりエラーとなります。なお，プラグインユティリティについては，各種プラグイン製品のマニュアルを参照してください。

表1‒10　OSログインユーザの簡易認証機能使用時にエラーとなるユティリティ一覧

ユティリティ

OSログインユーザの簡易認証機能による実行時の動作

pdrorgを用いたエクスポート

KFPX18430-Eでエラー終了

pdgetcst

KFPN00104-Eでエラー終了

pdexp

KFPX28448-Eでエラー終了

pddefrev

pdplgrgst

KFPY02230-Eでエラー終了

1.5.6　環境変数に設定したクライアント環境変数の制限事項

運用コマンド，またはユティリティの実行環境に設定したクライアント環境変数については，実行する運用コマンド，又はユティリティによって次に示すクライアント環境変数だけ指定を有効とします。ほかのクライアント環境変数については，指定があっても無効として動作します。クライアント環境変数については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

■指定を有効とするクライアント環境変数（その1）

対象ユティリティ名

pdaudatld

pdaudput

pdaudswap

pdconstck

pddbst

pddefrev

pdexp

pdextfunc

pdgetcst

pdload

pdls(-d aud)

pdorbegin

pdorcheck

pdorcreate

pdorend

pdparaload

pdpgbfon

pdrbal

pdrdrefls

pdreclaim

pdreginit

pdrorg

プラグインが提供するコマンド

指定を有効とするクライアント環境変数

PDUSER

PDLANG

PDPLUGINNSUB

PDDBBUFLRU

PDCLTBINDLOOPBACKADDR

PDTIMEDOUTRETRY

PDDDLDEAPRPEXE

PDLCKWAITTIME

PDBINDRETRYCOUNT

PDBINDRETRYINTERVAL

■指定を有効とするクライアント環境変数（その2）

対象ユティリティ名

pddivinfgt

pdplgrgst

指定を有効とするクライアント環境変数

PDUSER

PDLANG

PDPLUGINNSUB

PDHOST

PDNAMEPORT

PDCLTGRP

PDDBBUFLRU

PDCLTBINDLOOPBACKADDR

PDCWAITTIME

PDSWAITTIME

PDSWATCHTIME

PDTIMEDOUTRETRY

PDDDLDEAPRPEXE

PDLCKWAITTIME

PDBINDRETRYCOUNT

PDBINDRETRYINTERVAL

PDAUTHTYPE

PDIPCFILEDIR

■指定を有効とするクライアント環境変数（その3）

対象ユティリティ名

pddef

指定を有効とするクライアント環境変数

PDUSER

PDLANG

PDPLUGINNSUB

PDHOST

PDNAMEPORT

PDCLTRCVADDR

PDDBLOG

PDCLTGRP

PDDBBUFLRU

PDCLTBINDLOOPBACKADDR

PDCWAITTIME

PDSWAITTIME

PDSWATCHTIME

PDTIMEDOUTRETRY

PDDDLDEAPRPEXE

PDLCKWAITTIME

PDDELRSVWDFILE

PDBINDRETRYCOUNT

PDBINDRETRYINTERVAL

PDCNSTRNTNAME

PDTMPTBLRDAREA

PDAUTHTYPE

PDIPCFILEDIR

1.6　HiRDBの付加PPを導入すると使用できる機能

HiRDBの付加PPを次の表に示します。HiRDBの付加PPを導入すると次の表に示す機能を使用できます。

表1‒11　HiRDBの付加PP

付加PPの製品名

付加PPを導入すると使用できる機能

HiRDB Staticizer Option

インナレプリカ機能

更新可能なオンライン再編成

HiRDB Advanced High Availability

1:1スタンバイレス型系切り替え機能

影響分散スタンバイレス型系切り替え機能

グローバルバッファの動的変更（pdbufmodコマンド）

システム構成変更コマンド（pdchgconfコマンド）

表のマトリクス分割

分割格納条件の変更（ALTER TABLE）

HiRDB Non Recover FES

回復不要FES

HiRDB Accelerator

インメモリデータ処理によるバッチ高速化機能

HiRDB Disaster Recovery Light Edition

リアルタイムSANレプリケーション（ログ同期方式を適用する場合）

注

付加PPをインストールした後に，pdopsetupコマンドで付加PPのセットアップをする必要があります。

2　運用コマンド

この章では，運用コマンドの文法について説明します。

2.1　pdacunlck（連続認証失敗アカウントロック状態の解除）

2.1.1　pdacunlckの形式と規則

(1)　機能

設定したアカウントロック期間を経過していない認可識別子，又は無期限の連続認証失敗アカウントロック状態となっている認可識別子の，連続認証失敗アカウントロック状態を解除します。

pdacunlckコマンドを実行すると，ディクショナリ表SQL_USERSの連続認証失敗アカウントロック日時がナル値でない認可識別子の，連続認証失敗アカウントロック日時，及び連続認証失敗回数をナル値に設定します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdacunlck ｛認可識別子〔，認可識別子〕…｜ALL｝
　　　　　　　〔-W 実行監視時間〕

(4)　コマンド引数

(a)　認可識別子〔，認可識別子〕…

連続認証失敗アカウントロック状態を解除する認可識別子を指定します。認可識別子は，最大128個指定できます。

(b)　ALL

連続認証失敗アカウントロック状態となっているすべての認可識別子を解除する場合に指定します。

ALLを指定してpdacunlckコマンドを実行した場合，ユーザ権限情報用バッファにCONNECT権限の情報がなく，かつ連続認証失敗アカウントロック日時がナル値でないユーザは，コマンド実行中はHiRDBに接続できません。

(c)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pdacunlckコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

pdacunlckコマンドは，HiRDBが稼働中のときだけ実行できます。

pdacunlckコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

データディクショナリ用RDエリアが閉塞している場合，pdacunlckコマンドは実行できません。

(6)　注意事項

認可識別子を指定した場合，ディクショナリ表SQL_USERSの行ごとに排他モードで排他を掛けます。また，ALLを指定した場合，連続認証失敗アカウントロック日時がナル値でないユーザに対して，ディクショナリ表SQL_USERSの行ごとに排他モードで排他を掛けます。

pdacunlckコマンド実行時のリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

認可識別子を引用符（"）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（"）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（'）で囲む必要があります。

2.2　pdadmvr（HiRDBの製品情報の取得）

2.2.1　pdadmvrの形式と規則

(1)　機能

HiRDBの製品情報を表示します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdadmvr 〔-s｜-c〕

(4)　オプション

(a)　-s

バージョン情報にリビジョン以下のコードを表示させる場合に指定します。バージョン情報の表示例を次に示します。

オプションなしの場合：09-00

-sオプションありの場合：09-00-01

(b)　-c

オプション指定なし又は-sオプション指定時に表示される情報に加えて，文字コード種別の情報が表示されます。

(5)　規則

pdadmvrコマンドは，HiRDBの稼働に関係なく実行できます。

pdadmvrコマンドは，各サーバマシンで実行してください。

(6)　注意事項

pdadmvrコマンド実行時のリターンコードは，0の場合は正常終了，8の場合は異常終了（オプション指定不正）となります。

(7)　出力形式

図中の丸付き数字が項番に対応しています。

項番

表示項目

表示内容と意味

1

HiRDBの種類

single：HiRDB/シングルサーバ

parallel：HiRDB/パラレルサーバ

2

HiRDBのバージョン

HiRDBのバージョン

オプションの指定によって表示形式が異なります。

オプション指定なしの場合

リビジョンまでを表示します。

（例）09-00

-s又は-cオプション指定の場合

リビジョン以下のコードまでを表示します。

（例）09-00-01

3

Object-Option

常にObject-Optionが表示されます。

4

HiRDBのアドレッシングモード

常に64bitが表示されます。

64bit：64ビットアドレッシングモード

5

POSIXライブラリ版のセットアップ有無

POSIX：あり

NO-POSIX：なし

Linux版の場合，-cオプションを指定したときに表示されます。このとき，常にPOSIXが表示されます。

6

HiRDBの内部情報

−

7

文字コード種別

sjis：シフトJIS漢字コード

chinese：EUC中国語漢字コード

chinese-gb18030：中国語漢字コード（GB18030）

ujis：EUC日本語漢字コード

utf-8：Unicode（UTF-8）

utf-8_ivs：Unicode（IVS対応UTF-8）

lang-c：単一バイト文字コード

8

HiRDB Staticizer Optionのセットアップ有無

Staticizer-Option：あり

No-Staticizer-Option：なし

9

HiRDB External Data Accessのセットアップ有無※1

常にNo-Exdが表示されます。

10

HiRDB Advanced High Availabilityのセットアップ有無

Advanced-High-Availability：あり

No-Advanced-High-Availability：なし

11

HiRDB Advanced Partitioning Optionのセットアップ有無

Advanced-Partitioning-Option：あり

No-Advanced-Partitioning-Option：なし

HiRDB Advanced Partitioning Optionの機能はHiRDB Advanced High Availabilityに包含されるため，HiRDB Advanced High Availabilityのセットアップ有無と同じになります。

12

HiRDB Non Recover FESのセットアップ有無※2

Non-Recover-FES：あり

No-Non-Recover-FES：なし

13

HiRDB Disaster Recovery Light Editionのセットアップ有無

Disaster-Recovery-Light-Edition：あり

No-Disaster-Recovery-Light-Edition：なし

14

HiRDB Data Convert Type1 Optionのセットアップ有無

No-Plus-facilities：なし

Plus-facilities：あり

15

HiRDB Acceleratorのセットアップ有無

Accelerator：あり

No-Accelerator：なし

16

オペランド省略時動作

sysdef-recom：推奨モード

sysdef-v0904：0904互換モード

17

HiRDB Structured Data Access Facilityかどうか

No-Structured-Data-Access：HiRDB Structured Data Access Facilityではない

Structured-Data-Access：HiRDB Structured Data Access Facilityである

18

HiRDB Structured Data Access Facility Extension for XDM/SD typeのセットアップ有無

Extension-for-XDM/SD-type：あり

No-Extension-for-XDM/SD-type：なし

注※1　HiRDB/パラレルサーバの場合，又はHiRDB/シングルサーバで-cオプションを指定した場合に出力されます。

注※2　HiRDB/パラレルサーバの場合に出力されます。

2.3　pdaudatld（監査証跡表の自動データロード機能の制御）

2.3.1　pdaudatldの形式と規則

(1)　機能

監査証跡表の自動データロード機能を制御します。次の制御ができます。

停止した監査証跡表の自動データロード機能を再開始します。

実行中の監査証跡表の自動データロード機能を停止します。

監査証跡表の自動データロード機能の動作状態と，自動データロード対象の監査証跡ファイルがあるユニットの一覧を表示します。

(2)　実行者

HiRDB管理者でコマンドを実行し，HiRDBへアクセスする際の認証には監査人の認可識別子とパスワードを指定してください。

(3)　形式

　pdaudatld 〔-U 認可識別子〕 〔-b｜-t｜-i〕

(4)　オプション

(a)　-U 認可識別子

監査人の認可識別子を指定します。このオプションを指定すると，パスワード入力要求の応答付きメッセージが出力されます。

＜規則＞

このオプションに指定した認可識別子と，応答付きメッセージに入力したパスワードでHiRDBに接続し，その認可識別子に監査権限があるかどうかをチェックします。

このオプションは，応答付きメッセージに応答できる環境でpdaudatldコマンドを実行する場合に指定できます。

このオプションを省略する場合は，環境変数PDUSERを設定しておく必要があります。このオプションを省略した場合，pdaudatldコマンド実行時の環境変数PDUSERの設定値が仮定されます。このオプションを省略し，かつ環境変数PDUSERも設定していない場合，pdaudatldコマンドは実行できません。指定例を次に示します。

（例）Cシェルの場合

setenv PDUSER '"認可識別子"/"パスワード"'

(b)　-b

監査証跡表の自動データロード機能を再開始します。データロード待ち状態になっていた監査証跡ファイルのデータロードを順次実行します。

(c)　-t

監査証跡表の自動データロード機能を停止します。このオプションを指定してpdaudatldコマンドを実行すると，監査証跡ファイルの世代がスワップしても，監査証跡表の自動データロードは行いません。

このオプションを指定してpdaudatldコマンドを実行した時に監査証跡表の自動データロードが実行中だった場合，そのデータロードが完了するまで待ってから自動データロード機能を停止します。詳細については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(d)　-i

監査証跡表の自動データロード機能の動作状態と，自動データロード対象の監査証跡ファイルがあるユニットの一覧を表示します。

(5)　規則

pdaudatldコマンドは，HiRDBシステムが稼働中の場合だけ実行できます。ただし，pdstart -rでHiRDBを起動している場合は実行できません。

pdaudatldコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdaudatldコマンドは，システム定義にpd_aud_file_nameオペランドを指定していない場合，又はpd_aud_auto_loadingオペランドにY以外を指定している場合，コマンドエラーとなります。

pdaudatld -b又は-tコマンド実行中にpdaudbegin，pdaudend，pdaudrm，pdaudswap，pdaudatld -b又は-tコマンドを実行すると，コマンドエラーとなります。

オプションをすべて省略した場合，pdaudatldは-iオプションが指定されたものとして動作します。

(6)　注意事項

pdaudatldコマンドのリターンコードを次に示します。

0：正常終了

4：警告終了

pdaudatld -tコマンドで自動データロード処理が完了するのを待っているときに自動データロードでエラーが発生したため，自動データロード完了とみなして自動データロード機能を停止したことを示します。

8：異常終了

(7)　出力形式

Hostname : aa....aa (bb....bb)
Auto-Loading-Service-Status : cc....cc
unit  Status    Dataload-Request-Time  Count  Dataload-Start-Time
dddd  ee....ee  ffff/gg/hh ii:jj:kk      lll  mmmm/nn/oo pp:qq:rr
dddd  ee....ee  ffff/gg/hh ii:jj:kk      lll
   :                :         :           :
dddd  ee....ee  ffff/gg/hh ii:jj:kk      lll

［説明］

aa....aa：

pdaudatldコマンドを実行したユニットの現用系ホスト名称（32文字）

bb....bb：

コマンド実行時刻（年（西暦4けた）/月/日 時:分:秒の形式）

cc....cc：

監査証跡表の自動データロード機能の動作状態（16文字以内）

ENABLE：有効

DISABLE（WAIT）：停止処理中

DISABLE：停止

dddd：

自動データロード対象の監査証跡ファイルがあるユニットのユニット識別子（4文字）

ee....ee：

監査証跡表の自動データロード機能によるデータロードの実行状態

loading：自動データロード中

standby：データロード待ち状態

skip：ユニット停止中のため，自動データロードをスキップした状態

ffff/gg/hh ii:jj:kk：

自動データロード対象になった時刻（年（西暦4けた）/月/日 時:分:秒の形式）

lll：

自動データロードの要求を受けた回数（3文字）

自動データロード対象になった時点では1です。ee....eeが「standby」又は「skip」で，同一ユニットから自動データロード要求を受けると1ずつ増加します。システムマネジャがあるユニットを停止して再起動した場合は，1に戻ります。

mmmm/nn/oo pp:qq:rr：

自動データロード機能でデータロードを開始した時刻（年（西暦4けた）/月/日 時:分:秒の形式）

ee....eeに「loading」が表示されている場合だけ表示します。

注

自動データロード対象の監査証跡ファイルが1件もない場合，先頭1行だけ表示します。

ddddからmmmm/nn/oo pp:qq:rrまでは，自動データロード中及びデータロード待ち状態のユニットの数だけ表示します。複数行表示されている場合，自動データロードはこの表示順に実行します。自動データロードが終了したユニットは，これらの項目が表示されなくなります。

データロード待ち状態のユニットで，新たに監査証跡ファイルのスワップが発生した場合，自動データロード時にまとめて監査証跡表にデータロードします。

自動データロード中のユニットで，新たに監査証跡ファイルのスワップが発生した場合，同一ユニットで「loading」と「standby」の2行を表示することがあります。このとき，実行中のデータロードがKFPS05716-Wメッセージを表示してリトライしたり，KFPS05713-Eメッセージを表示して自動データロードを停止すると，表示は1行になります。自動データロードの要求を受けた回数（lll）には，2行の値が合算された値を表示します。表示例を次に示します。

＜例＞

「loading」と「standby」の2行が表示されています。

unit  Status    Dataload-Request-Time  Count  Dataload-Start-Time
unt1  loading   2007/03/01 12:34:56        2  2007/03/01 12:35:01
unt1  standby   2007/03/01 12:38:02        1

実行中のデータロードがKFPS05716-Wメッセージを表示してリトライすると，次のように表示が1行になります。

unit  Status    Dataload-Request-Time  Count  Dataload-Start-Time
unt1  standby   2007/03/01 12:34:56        3

2.4　pdaudbegin（監査証跡の取得開始）

2.4.1　pdaudbeginの形式と規則

(1)　機能

監査証跡の取得を開始します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdaudbegin

(b)　HiRDB/パラレルサーバの場合

　pdaudbegin 〔-u ユニット識別子〕

(4)　オプション

(a)　-u ユニット識別子　〜＜識別子＞((4文字))

監査証跡の取得を開始するユニットのユニット識別子を指定します。

-uオプションを省略した場合，すべてのユニットで監査証跡の取得を開始します。

(5)　規則

pdaudbeginコマンドは，HiRDBが稼働中のときだけ実行できます。

pdaudbeginコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdaudbeginコマンド実行中に，pdaudbegin，pdaudend，pdaudrm，及びpdaudswapコマンドを実行するとコマンドエラーになります。

pdaudbeginコマンドは，システム定義にpd_aud_file_nameオペランドを指定していない場合，又はpd_aud_file_nameオペランドに指定している監査証跡ファイルがない場合，コマンドエラーとなります。

HiRDB/パラレルサーバで，-uオプションを省略してpdaudbeginコマンドを実行した場合，コマンド処理中にエラーが発生したユニット，及び監査証跡の取得が既に開始されているユニットについては，エラーメッセージを出力します。エラーにならなかったユニットについては監査証跡の取得を開始します。

(6)　注意事項

pdaudbeginコマンドの結果は，pdls -d audコマンド，エラーメッセージの有無，及びコマンド実行時のリターンコードで確認できます。

コマンド実行時のリターンコードを次に示します。

0：正常終了

4：正常終了（監査証跡取得開始済みのユニットがあり，処理をスキップしました）

スキップしたユニット以外は，正常監査証跡取得を開始できているため，対処は必要ありません。

8：異常終了（オプション指定不正，rsh失敗など）

監査証跡の取得開始ができていません。

その状態で業務を継続すると監査証跡が取得されない問題が発生することがあります。

メッセージに従って対処した後，再度コマンドを実行してください。

監査証跡を取得中かどうかについては，pdls -d audコマンドを実行して確認できます。

2.5　pdaudend（監査証跡の取得停止）

2.5.1　pdaudendの形式と規則

(1)　機能

監査証跡の取得を停止します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdaudend

(b)　HiRDB/パラレルサーバの場合

　pdaudend 〔-u ユニット識別子〕

(4)　オプション

(a)　-u ユニット識別子　〜＜識別子＞((4文字))

監査証跡の取得を停止するユニットのユニット識別子を指定します。

-uオプションを省略した場合，すべてのユニットで監査証跡の取得を停止します。

(5)　規則

pdaudendコマンドは，HiRDBが稼働中で，かつ監査証跡の取得が開始されている場合に実行できます。

pdaudendコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdaudendコマンド実行中に，pdaudbegin，pdaudend，pdaudrm，及びpdaudswapコマンドを実行すると，コマンドエラーとなります。

pdaudendコマンドは，システム定義にpd_aud_file_nameオペランドを指定していない場合，又はpd_aud_file_nameオペランドに指定している監査証跡ファイルがない場合，コマンドエラーとなります。

HiRDB/パラレルサーバで，-uオプションを省略してpdaudendコマンドを実行した場合，コマンド処理中にエラーが発生したユニット，及び監査証跡の取得が既に停止しているユニットについては，エラーメッセージを出力します。エラーとならなかったユニットについては，監査証跡の取得を停止します。

監査証跡の取得を開始している場合は，pdaudendコマンドを実行しないかぎり，ユニットが停止するまで監査証跡を取得し続けます。

(6)　注意事項

pdaudendコマンドの結果は，pdls -d audコマンド，エラーメッセージの有無，及びコマンド実行時のリターンコードで確認できます。

コマンド実行時のリターンコードを次に示します。

0：正常終了

4：正常終了（監査証跡取得停止済みのユニットがあり，処理をスキップしました）

スキップしたユニット以外は，正常監査証跡取得を停止できているため，対処は必要ありません。

8：異常終了（オプション指定不正，rsh失敗など）

監査証跡の取得停止ができていません。

その状態で業務を継続すると次の問題が発生することがあります。

pd_aud_no_standby_file_oprの指定が無い又はforcewriteを指定

再実行しないで監査証跡を取得し続けた場合，使用できる監査証跡ファイルが無くなると，古い監査証跡から破棄します。

pd_aud_no_standby_file_oprにdownを指定

再実行しないで監査証跡を取得し続けた場合，使用できる監査証跡ファイルが無くなると，HiRDB（HiRDB/パラレルサーバの場合はユニット）を強制終了します。

メッセージに従って対処した後，再度コマンドを実行してください。

2.6　pdaudrm（閉塞中の監査証跡ファイルの削除）

2.6.1　pdaudrmの形式と規則

(1)　機能

閉塞中の監査証跡ファイルを削除します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdaudrm -g 監査証跡ファイル名 〔-f〕

(b)　HiRDB/パラレルサーバの場合

　pdaudrm -u ユニット識別子 -g 監査証跡ファイル名 〔-f〕

(4)　オプション

(a)　-u ユニット識別子　〜＜識別子＞((4文字))

削除する監査証跡ファイルがあるユニットのユニット識別子を指定します。

(b)　-g 監査証跡ファイル名

削除する監査証跡ファイルの名称を指定します。

(c)　-f

-gオプションで指定した監査証跡ファイルが，データロード待ちの状態であっても削除する場合に指定します。

監査証跡ファイルについては，pdls -d audコマンドで確認できます。

(5)　規則

pdaudrmコマンドは，HiRDB稼働中のときだけ実行できます。

pdaudrmコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdaudrmコマンド実行中に，pdaudbegin，pdaudend，pdaudrm，及びpdaudswapコマンドを実行すると，コマンドエラーとなります。

pdaudrmコマンドは，システム定義にpd_aud_file_nameオペランドを指定していない場合，又はpd_aud_file_nameオペランドに指定している監査証跡ファイルがない場合，コマンドエラーとなります。

現用の監査証跡ファイルは削除できません。

(6)　注意事項

pdaudrmコマンドの結果は，pdls -d audコマンド，エラーメッセージの有無，及びコマンド実行時のリターンコードで確認できます。コマンド実行時のリターンコードが0の場合は正常終了，8の場合は異常終了となります。

容量不足で生成に失敗した監査証跡ファイルを削除しようとすると，KFPS05752-Eメッセージ（理由コード：FILE_ACCESS）でエラーとなりますが，対処は不要です。HiRDBを一度正常終了してから正常開始すると，生成に失敗した監査証跡ファイルはpdls -d audコマンドで表示されなくなります。

2.7　pdaudswap（現用の監査証跡ファイルのスワップ）

2.7.1　pdaudswapの形式と規則

(1)　機能

現用の監査証跡ファイルをスワップします。

(2)　実行者

HiRDB管理者でコマンドを実行し，HiRDBへアクセスする際の認証には監査人の認可識別子とパスワードを指定してください。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdaudswap 〔-U 認可識別子〕

(b)　HiRDB/パラレルサーバの場合

　pdaudswap -u ユニット識別子 〔-U 認可識別子〕

(4)　オプション

(a)　-u ユニット識別子　〜＜識別子＞((4文字))

スワップする現用の監査証跡ファイルがあるユニットの，ユニット識別子を指定します。

(b)　-U 認可識別子

監査人の認可識別子を指定します。このオプションを指定すると，パスワード入力要求の応答付きメッセージが出力されます。

＜規則＞

このオプションに指定した認可識別子と，応答付きメッセージに入力したパスワードでHiRDBに接続し，その認可識別子に監査権限があるかをチェックします。

このオプションは，応答付きメッセージに応答できる環境でpdaudswapコマンドを実行する場合に指定できます。

このオプションを省略した場合，pdaudswapコマンド実行時の環境変数PDUSERの設定値が仮定されます。このオプションを省略し，かつ環境変数PDUSERも設定していない場合，pdaudswapコマンドは実行できません。このオプションを省略する場合は，環境変数PDUSERを設定しておく必要があります（指定例を次に示します）。

（例）Cシェルの場合

setenv PDUSER '"認可識別子"/"パスワード"'

(5)　規則

pdaudswapコマンドは，HiRDB稼働中のときだけ実行できます。ただし，pdstart -rコマンドでHiRDBを開始している場合は実行できません。

pdaudswapコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdaudswapコマンド実行中に，pdaudbegin，pdaudend，pdaudrm，及びpdaudswapコマンドを実行すると，コマンドエラーとなります。

pdaudswapコマンドは，システム定義にpd_aud_file_nameオペランドを指定していない場合，又はpd_aud_file_nameオペランドに指定している監査証跡ファイルがない場合，コマンドエラーとなります。

スワップ先にできるファイルの世代がない場合，及び監査証跡ファイルが1世代も生成されていない場合，コマンドエラーとなります。

スワップ先にできるファイルの世代の，監査証跡ファイルのオープンに失敗した場合，自動的にほかの世代へスワップします。

システム定義にpd_aud_no_standby_file_opr = downを指定していて，かつ使用できる世代数が残り1世代以下の場合，pdaudswapコマンドを実行するとコマンドエラーになります。

(6)　注意事項

pdaudswapコマンドの結果は，pdls -d audコマンド，エラーメッセージの有無，及びコマンド実行時のリターンコードで確認できます。コマンド実行時のリターンコードが0の場合は正常終了，8の場合は異常終了となります。

2.8　pdbkupls（バックアップファイルの情報表示）

2.8.1　pdbkuplsの形式と規則

(1)　機能

pdcopyで取得したバックアップの情報（RDエリアの一覧，バックアップ取得日時など）を表示します。

pdbkuplsコマンドは，次のような場合に使用します。

取得したバックアップの内容を調査したいとき（例えば，以前取得したバックアップに何が入っているかを調べたいなど）

取得したバックアップの情報を履歴として残しておきたいとき

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdbkupls -b ｛バックアップファイル名〔，バックアップファイル名〕…

　　　　　　 ｜装置記号名〔，装置記号名〕｜装置グループ名｜ポリシー名｝

　　　　〔-k ｛u｜i｜e｜m｜n｝〕

　　　　〔-o バックアップ情報出力ファイル名〕 〔-c〕

　　　　〔-a〕 〔-s 経過メッセージ出力間隔〕

　　　　〔-U ｛バックアップ検索条件開始時刻，バックアップ検索条件終了時刻

　　　　　　　 ｜，バックアップ検索条件終了時刻｝〕

　　　　〔-E EasyMT用MT属性定義ファイル名〕 〔-B EasyMT用入出力バッファ面数〕

　　　　〔-v ボリューム名〔，ボリューム名〕…〕 〔-N EasyMTファイル名〕

(4)　オプション

(a)　-b ｛バックアップファイル名〔，バックアップファイル名〕…｜装置記号名〔，装置記号名〕｜装置グループ名｜ポリシー名｝

バックアップファイルの名称を指定します。

バックアップファイル名〔，バックアップファイル名〕…の場合：

　　　〜＜パス名＞((1023バイト以内))

通常ファイル名，MT装置名，又はHiRDBファイル名を指定します。

通常ファイル名，及びMT装置名の場合は同時に-k uを，HiRDBファイル名の場合は同時に-k iを指定してください。

装置記号名〔，装置記号名〕の場合：

　　　〜＜識別子＞

EasyMTの装置記号名を指定します。このとき，同時に-k eを指定してください。

装置グループ名の場合：

　　　〜＜識別子＞

MTguideの装置グループ名を指定します。このとき，同時に-k mを指定してください。

ポリシー名の場合：

　　　〜＜識別子＞((128バイト以内))

NetBackupのポリシー名を指定します。このとき，同時に-k nを指定してください。

＜規則＞

ホスト名を指定した場合，エラーとなります。

複数個にわたっているバックアップだけ複数同時に指定できます。複数個にわたっていないバックアップを複数同時に指定した場合は無視されます。また，複数個にわたっているバックアップを一つだけ指定した場合，-aオプションを指定しているときはエラー終了します。

バックアップは，pdcopyコマンドを実行してコマンドの戻り値が0又は4で取得したバックアップを指定してください。

(b)　-k ｛u｜i｜e｜m｜n｝

バックアップファイルの種別を指定します。

u：

バックアップファイルが通常ファイル，又はMTのスペシャルファイルの場合に指定します。

i：

バックアップファイルがHiRDBファイルの場合に指定します。

e：

バックアップファイルがEasyMTを使用して取得している場合に指定します。

m：

バックアップファイルがMTguideを使用して取得している場合に指定します。

n：

バックアップファイルがNetBackupを使用して取得している場合に指定します。

(c)　-o バックアップ情報出力ファイル名　〜＜パス名＞((1023バイト以内))

バックアップファイルの情報をファイルに出力する場合に指定します。省略した場合，標準出力に出力します。

(d)　-c

CSV形式で出力する場合に指定します。省略した場合，標準形式で出力します。

(e)　-a

すべての情報を出力する場合に指定します。

省略した場合，HiRDB識別子，バックアップ取得モード，バックアップ取得時刻，及びログポイント情報ファイルの指定有無を出力します。

(f)　-s 経過メッセージ出力間隔　〜＜符号なし整数＞((1〜1024))

pdbkuplsコマンドの実行中に経過メッセージを出力する場合に指定します。経過メッセージ出力間隔には，バックアップファイルのデータ処理量をギガバイト単位で指定します。例えば，「-s 100」と指定した場合，100ギガバイト処理するごとに経過メッセージを出力します。

なお，このオプションは，-aオプションを指定しているときだけ有効となります。

(g)　-U ｛バックアップ検索条件開始時刻，バックアップ検索条件終了時刻｜，バックアップ検索条件終了時刻｝

同一ポリシー名で取得したバックアップ中の，任意の時点で取得したバックアップを対象とする場合に指定します。このオプションは，NetBackup連携機能使用時（-k n指定時）に指定します。それ以外の場合に指定しても無効となります。

バックアップ検索条件開始時刻，及びバックアップ検索条件終了時刻の両方を指定した場合，指定した期間内での最新のバックアップが対象となります。バックアップ検索条件終了時刻だけを指定した場合，終了時刻時点でのバックアップが対象となります。

＜規則＞

このオプションを省略した場合，同一ポリシー名で取得したバックアップ中の最新のバックアップを使用します。

バックアップの取得日時は，bpimagelistコマンド（-policyオプション指定）で参照できます。

バックアップ検索条件開始時刻及びバックアップ検索条件終了時刻は，日付と時刻を_（アンダースコア）で結んで指定します。形式を次に示します。時刻を省略した場合，開始時刻は000000が，終了時刻は235959が仮定されます。

　-U YYYYMMDD〔_hhmmss〕，YYYYMMDD〔_hhmmss〕

YYYY：年　〜＜符号なし整数＞((1990〜2037))

西暦で指定します。

MM ：月　〜＜符号なし整数＞((01〜12))

DD ：日　〜＜符号なし整数＞((01〜31))

hh ：時　〜＜符号なし整数＞((00〜23))

mm ：分　〜＜符号なし整数＞((00〜59))

ss ：秒　〜＜符号なし整数＞((00〜59))

終了時刻だけを指定する場合は，コンマ（，）に続けて終了時刻を指定します。

(h)　-E EasyMT用MT属性定義ファイル名　〜＜パス名＞((1023バイト以内))

EasyMT用のMT属性定義ファイルのファイル名を指定します。このオプションは，-k e又は-k mのときだけ有効となります。

＜規則＞

このファイルは，pdbkuplsコマンドを実行するサーバマシンに接続されていなければなりません。

MT属性定義ファイル内の有効となる属性を次に示します。

buffno：入出力バッファ面数

magazin：MT装置割り当てパターン

job：業務名称

expire：満了日付

preserve：保存日数

ただし，-Bオプションを指定した場合，入出力バッファ面数については-Bオプションの指定が優先されます。

このファイルの指定内容は，EasyMT実行時にチェックされます。

(i)　-B EasyMT用入出力バッファ面数　〜＜符号なし整数＞((1〜255))

MTの入出力に使用する入出力バッファの面数を指定します。このオプションは，-k e又は-k mのときだけ有効となります。

＜規則＞

指定値を大きくすれば性能が向上しますが，その分メモリ所要量も大きくなります。

-Eオプションと-Bオプションを共に省略した場合は，EasyMTの仮定値が仮定されます。

(j)　-v ボリューム名〔，ボリューム名〕…　〜＜英数字＞((6文字以内))

バックアップを取得したMTのボリューム名称を指定します。このオプションは，-k e又は-k mのときだけ有効となります。

＜規則＞

MTデッキにマウントされたボリュームが指定値と異なっている場合は，エラーとなります。

指定したボリュームの数よりバックアップに必要なボリュームが多い場合は，指定したボリューム数以降の名称はチェックされません。

このオプションを省略した場合，ボリューム名称はチェックされません。

ボリューム名を複数指定する場合は，-k mを指定する必要があります。このとき，ボリューム名は全体で重複しないようにしてください。

(k)　-N EasyMTファイル名　〜＜英数字＞((17文字以内))

バックアップファイル取得時に付けたEasyMTファイル名を指定します。このオプションは，-k e又は-k mのときだけ有効となります。

＜規則＞

ここで指定したファイル名とバックアップファイルが対応していない場合，エラーとなります。

バックアップファイルは，必ずマウントされたMTの先頭から（ファイル順序が1から）作成されていなければなりません。

(5)　規則

pdbkuplsコマンドは，HiRDBの稼働に関係なく実行できます。

pdbkuplsコマンドは，バックアップファイルがあるホストのサーバマシンで実行してください。なお，NetBackupを使用する場合は，pdcopy実行時のバックアップファイル出力先のホストがあるサーバマシンで実行してください。

pdbkuplsコマンドは，pdcopyで取得したバックアップファイルだけ処理できます。それ以外のバックアップファイルを指定した場合，エラーとなります。

NetBackupを使用する場合，JP1/VERITAS NetBackup Agent for HiRDB Licenseが必要となります。JP1/VERITAS NetBackup Agent for HiRDB Licenseについては，マニュアル「JP1/VERITAS NetBackup v4.5 Agent for HiRDB License」を参照してください。

差分バックアップファイルは指定できません。指定した場合はエラーとなります。

(6)　注意事項

pdbkuplsコマンドのリターンコードは，0の場合は正常終了，12の場合は異常終了となります。12の場合は，その前に出力されているメッセージを参照してエラー要因を取り除いてください。

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdbkuplsで出力されるファイルにはBOMは付きません。

(7)　出力形式

出力形式についての規則を次に示します。

(改行)には改行コード（LF）が入ります。

出力情報がない項目については，標準形式の場合は「*」を出力します。CSV形式の場合は，該当部分の情報は出力しません（コンマが2個続きます）。

rr...r〜uu...uは，RDエリア数分繰り返します。繰り返す場合，出力順はRDエリアIDの昇順となり，(改行)と<<RDAREA information>>も繰り返し出力します。

バックアップ情報出力ファイルにデータを出力した場合，最終データの次の行にEOFが入ります。

出力されるデータは，1,024バイト（改行コードを含まない）ごとに改行されます。

CSV形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

出力形式を次に示します。

(a)　-aオプションを省略した場合

標準形式：

<<System information>>(改行)
<HiRDB system id> : aaaa(改行)
(改行)
<<Backup file information>>(改行)
<Backup mode> : dd...d(改行)
<Backup start Time> : ee...e(改行)
<Logpoint information Y/N> : g(改行)

CSV形式：

aaaa,dd...d,ee...e,g(改行)

［説明］

aaaa〜gについては，「-aオプションを指定した場合」の説明を参照してください。

(b)　-aオプションを指定した場合

標準形式：

<<System information>>(改行)
<HiRDB system id> : aaaa(改行)
(改行)
<<Backup file information>>(改行)
<Backup file count> : bbbb(改行)
<Backup file name> : cc...c(改行)
<Backup mode> : dd...d(改行)
<Backup start time> : ee...e(改行)
<Backup end time> : ff...f(改行)
<Logpoint information Y/N> : g(改行)
<Get RDAREA's count> : hhhh(改行)
<Get RDAREA's list> : ii...i(改行)
<Errskip Y/N> : j(改行)
<Replica RDAREA generation No> : kk(改行)
<Server name> : ll...l(改行)
<Server RUNID> : mm...m(改行)
<Server group name> : nn...n(改行)
<Server block No> : oo...o(改行)
<Server generation No> : pp(改行)
<Server Log start time> : qq...q(改行)
(改行)
<<RDAREA information>>(改行)
<RDAREA name> : rr...r(改行)
<RDAREA id> : ss...s(改行)
<RDAREA kind> : tt...t(改行)
<RDAREA last LSN> : uu...u(改行)
<RDAREA last in-memory db-sync time> : vv...v(改行)
        ：

CSV形式：

aaaa,bbbb,cc...c,dd...d,ee...e,ff...f,g,hhhh,ii...i,j,kk,ll...l,mm...m,nn...n,
oo...o,pp,qq...q,rr...r,ss...s,tt...t,uu...u …

［説明］

aaaa：

バックアップを取得したHiRDBのHiRDB識別子です（4文字以内）。

bbbb：

-bオプションに指定したバックアップファイルの個数です（10進数の1〜4けた）。

cc...c：

-bオプションに指定したバックアップファイル名です（1,023文字以内）。pdcopyの-bオプションに指定した順番で出力します。複数ある場合は，コンマで区切って出力します。

dd...d：

バックアップ取得時の-Mオプションの指定値です（10文字以内）。

-M x又は-M rの場合はEXCLUSIVE，-M sの場合はSHAREDとなります。

ee...e：

バックアップ取得時に最初のレコードを書き込んだ時間です（YYYY-MM-DD hh:mm:ss）。

インメモリRDエリアがバックアップ対象に含まれている場合，インメモリデータバッファとインメモリRDエリアの同期を取った時刻（一度も同期を取っていない場合はインメモリ化した時刻）を出力します。インメモリRDエリアが複数ある場合は，その中で一番古い時刻が出力されます。

ff...f：

バックアップ取得時に最後のレコードを書き込んだ時間です（YYYY-MM-DD hh:mm:ss）。

g：

バックアップ取得時にログポイント情報ファイルを作成していたかどうかの情報です（1文字）。

ログポイント情報ファイルを作成していた場合はY，作成していない場合はNとなります。

hhhh：

バックアップファイル中に格納されいてるRDエリアの個数です（10進数1〜4けた）。

ii...i：

バックアップファイル中に格納されいてるRDエリアの名称です（30文字以内）。複数ある場合はコンマで区切ります。また，バックアップ取得時のRDエリアIDの昇順で出力します。

j：

バックアップ取得時に-Jオプションを指定していたかどうかの情報です（1文字）。

-Jオプションを指定していた場合はY，指定していない場合はNとなります。

kk：

バックアップ取得時の-qオプションの指定値です（10進数1〜2けた）。

ll...l：

RDエリアがあるサーバの名称です（8文字以内）。

mm...m：

ログサーバランID（システムが使用する情報）です（16進数8けた）。

nn...n：

ロググループ名（システムが使用する情報）です（8文字以内）。

oo...o：

ブロック番号です（16進数8けた）。

pp：

世代番号です（10進数1〜2けた）。

qq...q：

システムログファイルの使用開始時刻です（YYYY-MM-DD hh:mm:ss）。

rr...r：

RDエリア名です（30文字以内）。

ss...s：

RDエリアIDです（10進数1〜8けた）。

tt...t：

RDエリアの種別です（15文字以内）。

MASTERDIRECTORY：マスタディレクトリ用RDエリア

DATADIRECTORY：データディレクトリ用RDエリア

DATADICTIONARY：データディクショナリ用RDエリア

SYSTEM_LOB：データディクショナリLOB用RDエリア

USER：ユーザ用RDエリア

USER_LOB：ユーザLOB用RDエリア

REG：レジストリ用RDエリア

REG_LOB：レジストリLOB用RDエリア

uu...u：

RDエリアの更新通番（システムが使用する情報）です（17文字）。

vv...v：

インメモリRDエリアがバックアップ対象に含まれている場合，インメモリデータバッファとインメモリRDエリアの同期を取った時刻（一度も同期を取っていない場合はインメモリ化した時刻）を，YYYY-MM-DD hh:mm:ssの形式で出力します。

インメモリRDエリアがバックアップ対象に含まれていない場合は，’*’が出力されます。

なお，この項目は標準形式のときだけ出力されます。

2.9　pdbufls（グローバルバッファ情報の表示）

2.9.1　pdbuflsの形式と規則

(1)　機能

グローバルバッファの状態を表示します。

インメモリRDエリアがある場合は，インメモリデータバッファの状態も表示できます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdbufls 〔-k 出力種別〕 〔-d〕 〔-x 〔-y〕〕〔-M〕〔-N〕

　　　　　〔｛-s サーバ名〔，サーバ名〕…

　　　　　　　｜-a グローバルバッファ名〔，グローバルバッファ名〕…｝〕
　　　　　〔-W 実行監視時間〕

(4)　オプション

(a)　-k 出力種別　〜≪sts≫

表示する情報の種別を指定します。

def：

グローバルバッファの定義情報を表示します。

sts：

グローバルバッファの統計情報を表示します。表示する統計情報は，前回のpdbuflsコマンド実行時点からの累計です。最初にpdbuflsコマンドを実行する場合，又は-dオプションを指定した場合は，HiRDB開始時点からの累計を表示します。

all：

グローバルバッファの定義情報及び統計情報の両方を表示します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

サーバ内にあるすべてのグローバルバッファの情報を表示したい場合，そのサーバ名を指定します。指定できるサーバ名の数は最大128個です。129個以上指定すると，129個目以降のサーバは無視されます。

(c)　-a グローバルバッファ名　〜＜識別子＞((1〜16))

表示するグローバルバッファの名称を指定します。グローバルバッファ名を重複指定した場合は，重複排除して処理されます。指定できるグローバルバッファ名の数は最大128個です。129個以上指定すると，129個目以降のグローバルバッファは無視されます。

このオプションにインメモリデータバッファ名を指定すると，インメモリデータバッファの情報が表示されます。

(d)　-d

HiRDB開始時点からのグローバルバッファの統計情報を表示したい場合に指定します。なお，-k defを指定した場合にこのオプションを指定しても無視されます。

(e)　-x

DAT形式で情報を表示する場合に指定します。-k allの場合，このオプションは指定できません。

(f)　-y

-xオプション指定時に，ヘッダを付ける場合に指定します。

(g)　-M

インメモリデータバッファの情報を表示する場合に指定します。このオプションの指定例を次に示します。

＜指定例1＞

pdbufls -k def -M

この場合，グローバルバッファとインメモリデータバッファの両方の定義情報が表示されます。

＜指定例2＞

pdbufls -k sts -M -a インメモリデータバッファ名

この場合，-aオプションに指定したインメモリデータバッファの統計情報が表示されます。

インメモリデータバッファの情報もグローバルバッファと同じように表示されます。そのため，このオプションを指定してインメモリデータバッファの情報を表示した場合は，pdbuflsコマンドの説明文中の「グローバルバッファ」を「インメモリデータバッファ」に読み替えてください。

(h)　-N

OTHER用グローバルバッファに割り当てているRDエリアの名称を表示する場合に指定します。-kオプションにstsを指定した場合，又は省略した場合はこのオプションは無視されます。

(i)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pdbuflsコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

pdbuflsコマンドは，HiRDBが稼働中のときだけ実行できます。

pdbuflsコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

-sオプション及び-aオプションの両方を省略した場合は，すべてのサーバのグローバルバッファの情報を表示します。

グローバルバッファの統計情報の取得範囲を次の図に示します。

図2‒1　グローバルバッファの統計情報の取得範囲

［説明］

表示される情報は，HiRDB開始から1までのAの期間となります。このとき，前回統計情報を取得した時刻は表示されません。

表示される情報は，-dオプションを指定しているので，HiRDB開始から2までのA＋Bの期間となります。このとき，前回統計情報を取得した時刻は表示されません。また，この時点のグローバルバッファの情報は，次回のpdbuflsコマンド実行には反映されません。

buf01で表示される情報は，1から3までのB＋Cの期間となります。buf02で表示される情報は，HiRDB開始から3までのDの期間となります。このとき，buf01には1で統計情報を取得した時刻が表示されます。また，buf02には，前回統計情報を取得した時刻は表示されません。

(6)　注意事項

pdbuflsコマンドのリターンコードを次に示します。

0：正常終了

4：警告終了（一部のサーバの処理がエラー終了）

8：異常終了

12：異常終了（エラーメッセージを表示できない事象が発生）

リターンコードが12の場合は，シングルサーバ又はディクショナリサーバがあるホストのsyslogfileのエラーメッセージを参照し，エラーの要因を取り除いた後，再度pdbuflsコマンドを実行してください。syslogfileにエラーメッセージが出力されていない場合は，保守員に連絡してください。

参照GET回数と更新GET回数の合計が4,294,967,295回を超えるグローバルバッファが検出されると，該当するグローバルバッファの統計情報はリセットされます。リセット契機を次に示します。

pdbufls -k sts，又はpdbufls -k allを実行したとき（JP1/PFM-Agent for HiRDBが，内部的にpdbufls -k sts，又はpdbufls -k allを実行したときを含む）

pdstbegin -k bufで統計ログを取得中にシンクポイントが発生したとき

リセット契機と，リセット時に得られる統計情報について，次の図に示します。

図2‒2　グローバルバッファの統計情報のリセット契機と，リセット時に得られる統計情報

［説明］

A時点でリセットされた場合

A時点で表示される情報のうち，次の項目以外は0となります。

・カレントの参照バッファ数

・カレントの更新バッファ数

・デファードライトトリガ時の出力契機となる更新バッファ数

B時点で表示される情報は，aの期間となります。

C時点で表示される情報は，C時点で出力される統計ログのうち，bの期間となります。

B時点でリセットされた場合

B時点で表示される情報のうち，次の項目以外は0となります。

・カレントの参照バッファ数

・カレントの更新バッファ数

・デファードライトトリガ時の出力契機となる更新バッファ数

C時点で表示される情報は，C時点で出力される統計ログのうち，cの期間となります。

D時点で表示される情報は，dの期間となります。

C時点でリセットされた場合

C時点で出力される統計ログのうち，次の項目以外は0となります。

・バッファ面数

・カレントの参照バッファ数

・カレントの更新バッファ数

・デファードライトトリガ時の出力契機となる更新バッファ数

・バッファ管理領域の排他処理での，排他競合待ちとなった回数

・バッファの排他処理での，排他競合待ち発生率

・スリープ処理実行での，バッファの排他処理のスリープ処理実行回数の平均値

・スピン処理実行での，バッファの排他処理発生率

・バッファの排他処理中の，スピンループの実行回数の平均値

・シンクポイント時のバッファプール排他占有時間

・シンクポイント時のバッファプール排他占有時間内の処理バッファ数

D時点で表示される情報は，eの期間となります。

(7)　出力形式

(a)　-k defを指定した場合

 DEFINE OF GLOBAL BUFFER
   EDIT TIME aa...a
   BUFNAME SVID    TYPE   SIZE  NUM    WRATIO RDAREA/INDEX NAME
                   PRMAX  PRNUM CSIZE  MAPS
   bb...b  cc...c  d      eeK   ff...f ggg    hh...h
                   kk...k lll   mm...m nn
       [NOT FOUND ii...i=jj...j]

［説明］

aa...a：

pdbuflsコマンドを実行した時刻

年月日　時：分：秒の形式

bb...b：

グローバルバッファ名称（16文字以内）

cc...c：

サーバ名（8文字以内）

d ：

グローバルバッファ種別

R：RDエリア用

I：インデクス用

B：LOB用

O：OTHER用

OTHER用のグローバルバッファとは，システム共通定義のpdbufferオペランドで-oオプションを指定したグローバルバッファのことです。

M：インメモリデータバッファ

ee ：

バッファ長（10進数2けた，単位はキロバイト）。

ff...f：

バッファ面数（32ビットモードの場合10進数6けた以内，64ビットモードの場合10進数10けた以内）。

ggg ：

デファードライトトリガ時の更新ページ出力比率（10進数3けた，単位は％）。システム共通定義のpdbufferオペランドの-wオプションの指定値。

hh...h：

RDエリア名又はインデクス名（65文字以内）。

同一グローバルバッファに複数RDエリアが割り当てられている場合，割り当てられている1RDエリアを1行とし，複数行で表示されます。既に削除されているRDエリアは表示されません。

割り当てられていたインデクス又はすべてのRDエリアを削除している場合，この項目は表示されません。

また，OTHER用のグローバルバッファでは，次のどちらかに該当する場合，この項目は表示されません。

-Nオプションを指定していない

OTHER用グローバルバッファに割り当てられたRDエリアが存在しない

出力形式は次のようになります。

RDエリア名の場合："RDエリア名"

インデクス名の場合："認可識別子"."インデクス識別子"

ii...i：

-sオプションを指定した場合，「SERVER」と表示されます。-aオプションを指定した場合，「BUFFER POOL」と表示されます。

jj...j：

-sオプションを指定した場合，サーバ名（8文字以内）が表示されます。-aオプションを指定した場合，グローバルバッファ名（16文字以内）が表示されます。

kk...k：

同時実行最大プリフェッチ数（10進数5けた）。システム共通定義のpdbuffer -mオプションの指定値です。

lll　：

一括入力最大ページ数（10進数3けた）。システム共通定義のpdbuffer -pオプションの指定値です。

mm...m：

システムが使用する内部情報。「******」固定です。

nn　：

システムが使用する内部情報。「**」固定です。

(b)　-k stsを指定した場合

 STATISTICS OF GLOBAL BUFFERRC
 EDIT TIME aa...a
 BUFFNAME SVID   HIT(REF,UPD)  RFGET  READ   RFFLS  REFBUF         WAITL
          LAST_EXEC_TIME       UPGET  WRITE  UPFLS  UPBUF(TRG)     SYNC
                               PRRED  PRHIT  PRINS  PRREQ          INSB
                               LRREQ  LWREQ  LRPAG  LWPAG
                               CINSM  CFMAX  CFAVG
 bb...b   cc...c eee(fff,ggg)  hh...h jj...j ll...l nn...n         qq...q
          dd...d               ii...i kk...k mm...m oo...o(pp...p) rr...r
                               uu...u vvv    ww...w xx...x         yy...y
                               zz...z AA...A BB...B CC...C
                               DD...D EE...E FF...F
        [NOT FOUND ss...s=tt...t]

［説明］

aa...a：

pdbuflsコマンドを実行した時刻

年月日　時：分：秒の形式

bb...b：

グローバルバッファ名（16文字以内）

cc...c：

サーバ名（8文字以内）

dd...d：

個々のグローバルバッファに対する，前回統計情報を取得した時刻

年月日　時：分：秒の形式

前回統計情報が取得されていない場合，又は-dオプションを指定している場合には，「****-**-** **:**:**」が表示されます。

eee ：

グローバルバッファのヒット率（10進数3けた，単位は％）

fff ：

参照要求のヒット率（10進数3けた，単位は％）

ggg ：

更新要求のヒット率（10進数3けた，単位は％）

hh...h：

参照GET回数※

ii...i：

更新GET回数※

jj...j：

実READ回数※

kk...k：

実WRITE回数※

ll...l：

参照バッファフラッシュ回数※

mm...m：

更新バッファフラッシュ回数※

nn...n：

カレントの参照バッファ数（32ビットモードの場合10進数6けた以内，64ビットモードの場合10進数10けた以内）

oo...o：

カレントの更新バッファ数（32ビットモードの場合10進数6けた以内，64ビットモードの場合10進数10けた以内）

pp...p：

デファードライトトリガ時の出力契機となる更新バッファ数（32ビットモードの場合10進数6けた以内，64ビットモードの場合10進数10けた以内）

qq...q：

バッファ排他待ち発生回数※

rr...r：

DBシンクポイント発生回数※

ss...s：

-sオプションを指定した場合，「SERVER」と表示されます。-aオプションを指定した場合，「BUFFER POOL」と表示されます。

tt...t：

-sオプションを指定した場合，サーバ名（8文字以内）が表示されます。-aオプションを指定した場合，グローバルバッファ名（16文字以内）が表示されます。

uu...u：

プリフェッチ入力ページ数※

vvv　：

プリフェッチヒット率（10進数3けた）

ww...w：

プリフェッチバッファ不足発生回数※

xx...x：

プリフェッチREAD要求回数※

yy...y：

バッファ不足発生回数※

zz...z：

LOBバッファREAD要求回数※

AA...A：

LOBバッファWRITE要求回数※

BB...B：

LOBバッファ一括入力ページ数※

CC...C：

LOBバッファ一括出力ページ数※

DD...D：

システムが使用する内部情報

EE...E：

システムが使用する内部情報

FF...F：

システムが使用する内部情報

注※　表示形式を次に示します。

数値の範囲

表示形式

0〜999

0〜999

1,000〜9,994

1.00K〜9.99K※

9,995〜99,949

10.0K〜99.9K※

99,950〜999,499

100K〜999K※

999,500〜9,994,999

1.00M〜9.99M※

9,995,000〜99,949,999

10.0M〜99.9M※

99,950,000〜999,499,999

100M〜999M※

999,500,000〜4,294,967,295

1.00G〜4.29G※

（凡例）

K：キロ

M：メガ

G：ギガ

注※

表示けた数の次の位が，四捨五入されます。

(c)　DAT形式での出力形式（-x及び-yオプション指定時）

-k def

"DEFINE_OF_GLOBAL_BUFFER"[CR]
"EDIT_TIME"[CR]
"aa...a"[CR]
"BUFFNAME","SVID","TYPE","SIZE","NUM","WRATIO","RDAREA/INDEX_NAME","PRMAX",
"PRNUM","CSIZE","MAPS"[CR]
"bb...b","cc...c","d",ee,ff...f,ggg,"hh...h",kk...k,lll,mm...m,nn[CR]

-k sts

"STATISTICS_OF_GLOBAL_BUFFER"[CR]
"EDIT_TIME"[CR]
"aa...a"[CR]
"BUFFNAME","SVID","LAST_EXEC_TIME","HIT","REFHIT","UPDHIT","RFGET","UPGET",
"READ","WRITE","RFFLS","UPFLS","REFBUF","UPBUF","TRG","WAITL","SYNC",
"PRRED","PRHIT","PRINS","PRREQ","INSB","LRREQ","LWREQ","LRPAG","LWPAG",
"CINSM","CFMAX","CFAVG","RFGETR","UPGETR","RFHITR","UPHITR","READR","WRITER",
"RFFLSR","UPFLSR","WAITLR","SYNCR","PRREDR","PRHITR","PRINSR","PRREQR","INSBR",
"LRREQR","LWREQR","LRPAGR","LWPAGR"[CR]
"bb...b","cc...c","dd...d",eee,fff,ggg,"hh...h","ii...i",
"jj...j","kk...k","ll...l","mm...m",nn...n,oo...o,pp...p,"qq...q","rr...r",
"uu...u",vvv,"ww...w","xx...x","yy...y","zz...z","AA...A","BB...B","CC...C",
"DD...D","EE...E","FF...F","GG...G","HH...H","II...I","JJ...J","KK...K","LL...L",
"MM...M","NN...N","OO...O","PP...P","QQ...Q","RR...R","SS...S","TT...T","UU...U",
"VV...V","WW...W","XX...X","YY...Y"[CR]

注

[CR]は，改行を表します。

［説明］

aa...aからFF...Fについては，「出力形式」で説明した内容を参照してください。なお，次に説明する項目は，DAT形式表示の場合だけ表示されます。

GG...G：

参照GET回数の実データ（10進数10けた以内）

HH...H：

更新GET回数の実データ（10進数10けた以内）

II...I：

参照要求ヒット回数の実データ（10進数10けた以内）

JJ...J：

更新要求ヒット回数の実データ（10進数10けた以内）

KK...K：

実READ回数の実データ（10進数10けた以内）

LL...L：

実WRITE回数の実データ（10進数10けた以内）

MM...M：

参照バッファフラッシュ回数の実データ（10進数10けた以内）

NN...N：

更新バッファフラッシュ回数の実データ（10進数10けた以内）

OO...O：

バッファ排他待ち発生回数の実データ（10進数10けた以内）

PP...P：

DBシンクポイント発生回数の実データ（10進数10けた以内）

QQ...Q：

プリフェッチ入力ページ数の実データ（10進数10けた以内）

RR...R：

プリフェッチヒット回数の実データ（10進数10けた以内）

SS...S：

プリフェッチバッファ不足発生回数の実データ（10進数10けた以内）

TT...T：

プリフェッチREAD要求回数の実データ（10進数10けた以内）

UU...U：

バッファ不足発生回数の実データ（10進数10けた以内）

VV...V：

LOBバッファREAD要求回数の実データ（10進数10けた以内）

WW...W：

LOBバッファWRITE要求回数の実データ（10進数10けた以内）

XX...X：

LOBバッファ一括入力ページ数の実データ（10進数10けた以内）

YY...Y：

LOBバッファ一括出力ページ数の実データ（10進数10けた以内）

［DAT形式での出力規則］

DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

1行に1グローバルバッファの情報を表示します。ただし，同一グローバルバッファに複数RDエリアが割り当てられている場合，グローバルバッファの定義情報は，割り当てられている1RDエリアを1行で表示します。このとき，RDエリア名以外の項目はすべて繰り返して表示します。

グローバルバッファの統計情報の，単位を含めた表示は文字要素として扱います。

pdbuflsコマンドの実行時刻は，タイトル行の一部となります。そのため，タイトル行の出力指定（-yオプション）がある場合にだけ表示します。

次の項目の情報が取得できない場合は，空要素として表示します。

・グローバルバッファの定義情報のバッファ長，及びバッファ面数

・グローバルバッファの統計情報の前回情報を取得した時刻

また，システムが使用する内部情報は，空又は「""」となります。

DAT形式で表示する場合，次のエラーメッセージは出力しません。

[NOT FOUND ss...s=tt...t]

2.10　pdbufmod（グローバルバッファの動的変更）

2.10.1　pdbufmodの形式と規則

(1)　機能

HiRDBの稼働中に，グローバルバッファの追加，削除，及び変更をします。

pdbufmodの変更は，ユニット又はサーバの正常終了後は引き継がれません。したがって，次回のHiRDBの正常開始までに，システム定義のpdbufferオペランドにpdbufmodでの変更を反映しておく必要があります。なお，pdchgconfコマンドを使用すると，HiRDBを終了しなくてもシステム定義を変更できます。

pdbufmodコマンドは，HiRDB Advanced High Availabilityを組み込んでいる場合に使用できます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdbufmod -k 変更種別 -a グローバルバッファ名

　　　　　〔｛-r RDエリア名〔，RDエリア名〕…｜-b RDエリア名〔，RDエリア名〕…

　　　　　　　｜-o｜-i 認可識別子.インデクス識別子｝〕

　　　　　〔-n バッファ面数 〔-l バッファサイズ〕〕

　　　　　〔-m 同時実行最大プリフェッチ数〕 〔-p 一括入力最大ページ数〕

　　　　　〔-w デファードライトトリガ時の更新ページ出力比率〕

　　　　　〔-y デファードライトトリガ契機の更新バッファ面数〕

　　　　　〔-W 実行監視時間〕

(4)　オプション

(a)　-k 変更種別

変更種別を指定します。

add：

グローバルバッファを新規に追加する場合，又は既存のグローバルバッファに新たにグローバルバッファを追加する場合に指定します。

新規にグローバルバッファを追加する場合，-nオプションを必ず指定してください。また，新規にグローバルバッファを追加する場合に-r，-b，又は-iオプションを指定するときは，指定するRDエリア，又はインデクスは先に定義されていなければなりません。

既存の共用メモリセグメントに空きがない場合，新規のグローバルバッファは，新規の共用メモリセグメントに作成されます。

del：

グローバルバッファを削除する場合，又はグローバルバッファの特定のRDエリアを削除したい場合に指定します。

特定のRDエリアを削除する場合は，-r又は-bオプションでそのRDエリアを指定します。

削除するグローバルバッファに割り当てられているRDエリア，及びグローバルバッファから削除するRDエリアは，事前に閉塞クローズ状態にしておく必要があります。

インメモリRDエリアに割り当てているグローバルバッファは削除できません。このグローバルバッファを削除する場合は，インメモリ化を解除した後にグローバルバッファを削除してください。

upd：

グローバルバッファの定義を変更する場合に指定します。グローバルバッファの定義とは，バッファ面数，バッファサイズ，同時実行最大プリフェッチ数，一括入力最大ページ数，デファードライトトリガ時の更新ページ出力比率，及びデファードライトトリガ契機の更新バッファ面数を指します。

グローバルバッファの定義を変更した後は，グローバルバッファのキャッシュ内容は破棄されます。

グローバルバッファの定義を変更して，グローバルバッファのメモリサイズが増加した場合，既存の共用メモリセグメントに空きがないと，定義を変更したグローバルバッファは新規の共用メモリセグメントに作成されます。

変更種別とそのほかのオプションとの関係を次に示します。

そのほかのオプション

-k 変更種別

add

del

upd

-a

◎

◎

◎

-r

○

○

×

-b

○

○

×

-o

○※１

×

×

-i

○※１

×

×

-n

○※１※２

×

○

-l

○※１

×

○

-m

○※１

×

○

-p

○※１

×

○

-w

○※１

×

○

-y

○※１

×

○

（凡例）

◎：必ず指定します。

○：任意に指定できます。

×：指定できません。

注※1

新規にグローバルバッファを追加する場合に指定できます。

注※2

新規にグローバルバッファを追加する場合，必ず指定してください。

(b)　-a グローバルバッファ名　〜＜識別子＞((1〜16))

追加，削除，又は変更をするグローバルバッファの名称を指定します。

-k add（既存のグローバルバッファへのRDエリアの追加），-k del，及び-k updの場合は，既に定義されているグローバルバッファの名称を指定してください。-k add（新規のグローバルバッファの追加）の場合は，サーバ内で一意となるグローバルバッファの名称を指定してください。

このオプションにはインメモリデータバッファを指定できません。

(c)　-r RDエリア名〔，RDエリア名〕…　〜＜識別子＞((1〜30))

グローバルバッファに割り当てるRDエリア，又はグローバルバッファから削除するRDエリアの名称を指定します。

＜規則＞

RDエリアを指定する場合の規則については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

同時に-nオプションでバッファ面数を指定して，一つのグローバルバッファに複数のRDエリアを指定した場合，RDエリアのページサイズの中で最も大きいページサイズがバッファ長となります。そのため，ページサイズが近いRDエリアを同じグローバルバッファに割り当てることをお勧めします。ただし，同じページサイズでも用途の異なる表があるRDエリア，ランダムアクセスが多いRDエリア，及び順次アクセスが多いRDエリアは，別グローバルバッファとして割り当てた方がバッファリングの効果が向上します。

ユーザ用RDエリアを指定する場合は，データディクショナリ用RDエリアが次のどちらかの状態でなければなりません。

・オープン状態，かつ閉塞解除状態

・オープン状態，かつコマンド閉塞状態

(d)　-b RDエリア名〔，RDエリア名〕…　〜＜識別子＞((1〜30))

グローバルバッファに割り当てるLOB用RDエリア，又はグローバルバッファから削除するLOB用RDエリアの名称を指定します。

＜効果的な指定方法＞

次に示すようなLOB用RDエリアを指定します。

プラグインインデクスを格納するLOB用RDエリア

データ量が少なく，アクセス頻度が高いデータを格納するLOB用RDエリア

なお，一つのLOB用グローバルバッファには，一つのLOB用RDエリアを割り当てることをお勧めします。

＜規則＞

RDエリアを指定する場合の規則については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

指定できるRDエリアは，データディクショナリLOB用RDエリア，ユーザLOB用RDエリア，及びレジストリLOB用RDエリアです。これ以外のRDエリアを指定した場合はエラーとなります。

-bオプションを指定した場合，-m，-p，及び-wオプションは指定できません。

-oオプション指定のグローバルバッファを割り当てていない場合，-rに指定しているLOB用RDエリアは，-bにも指定する必要があります。

ユーザLOB用RDエリアを指定する場合は，データディクショナリ用RDエリアが次のどちらかの状態でなければなりません。

・オープン状態，かつ閉塞解除状態

・オープン状態，かつコマンド閉塞状態

(e)　-o

-rオプションで指定していないすべてのRDエリアに，グローバルバッファを割り当てる場合に指定します。-oオプションは１回だけ指定できます。２回以上指定した場合は最初の指定を有効とします。

(f)　-i 認可識別子.インデクス識別子

　　　認可識別子：〜＜識別子＞((1〜30))

　　　インデクス識別子：〜＜識別子＞((1〜30))

インデクス用グローバルバッファを割り当てるインデクスの名称（認可識別子.インデクス識別子）を指定します。

＜効果的な指定方法＞

使用頻度の高いインデクスを指定してください。使用頻度の高いインデクスにグローバルバッファを割り当てると，インデクスページのメモリ常駐度が上がるため，入出力回数が削減できます。

特に，クラスタキー又はユニークキーに定義したインデクスをグローバルバッファに割り当てると効果が大きいです。なお，クラスタキーのインデクス識別子はHiRDBが決めるため，表を定義した後にディクショナリ表（SQL_INDEXES表のINDEX_NAME列）を検索してインデクス識別子を確認してください。

また，すべてのインデクスをインデクス用のグローバルバッファに割り当てると，グローバルバッファ全体の使用効率が悪くなります。したがって，メモリ量に応じてグローバルバッファに割り当てるインデクスを厳選してください。

＜規則＞

認可識別子及びインデクス識別子を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符（"）で囲まない場合はすべて大文字として扱われます。また，インデクス識別子に空白を含む場合は，引用符（"）で囲んでください。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

認可識別子.インデクス識別子を指定する場合，データディクショナリ用RDエリアは次のどちらかの状態でなければなりません。

・オープン状態，かつ閉塞解除状態

・オープン状態，かつコマンド閉塞状態

(g)　-n バッファ面数

　　　32ビットモードの場合：〜＜符号なし整数＞((4〜460000))

　　　64ビットモードの場合：〜＜符号なし整数＞((4〜1073741824))

グローバルバッファの面数を指定します。

＜指定値の目安＞

必要以上に大きな値を指定すると，入出力回数は減るがバッファを検索するためのオーバヘッドが増えます。

グローバルバッファは共用メモリに確保されます。そのため，必要以上に大きくするとほかのメモリの使用時にページングが多発し，性能が悪くなります。

シンクポイント取得のタイミング，及びグローバルバッファ内の更新ページの比率によっては，データベースへの出力が集中します。そのため，入出力回数のバランスも考慮する必要があります。

バッファ面数が大き過ぎると，共用メモリを確保できないことがあるため，注意してください。

グローバルバッファの面数は，次の表から求めてください。

条件

グローバルバッファ面数の求め方

-r又は-oオプション指定のグローバルバッファの場合

HiRDB/シングルサーバの場合

同時に発生するSQL処理要求の数×1SQLで使用するページ数（3〜6程度）

HiRDB/パラレルサーバの場合

同時実行ユーザ数×1トランザクション内の平均同時アクセス表数×3×n※１

-bオプション指定のグローバルバッファの場合

LOB用RDエリアの総ページ数×常駐度※２(％)

-iオプション指定のグローバルバッファの場合

インデクスの格納ページ数×常駐度※３(％)

注※1

n=1として見積もったバッファ面数では，バッファのヒット率を高くできません。このため，係数としてどれくらいの余裕をバッファに持たせるか（バッファのヒット率をどのくらいにするか）を検討して指定してください。

注※2

常駐度は1(100％)が望ましいが，メモリ容量，データのアクセス頻度などを考慮して設定します。ユーザLOB用RDエリアの総ページ数，及びレジストリ用RDエリアの総ページ数については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

注※3

常駐度は1（100％）が望ましいが，メモリ容量，インデクスの重要度などを考慮して設定します。インデクスの格納ページ数については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

バッファのヒット率がHiRDB稼働業務で80％以上となるように設定してください。バッファのヒット率は次に示す方法で確認できます。

・統計解析ユティリティ（グローバルバッファに関する統計情報）の「更新バッファヒット率」及び「参照バッファヒット率」で確認できます。

・pdbuflsコマンドのヘッダ名HITで確認できます。

(h)　-ｌ バッファサイズ　〜＜符号なし整数＞((4〜30の偶数))

グローバルバッファのバッファサイズをキロバイト単位で指定します。このオプションは-nオプションと一緒に指定します。

＜指定値の目安＞

通常，このオプションは省略してください。このオプションを省略すると，このグローバルバッファに割り当てたRDエリアの最大ページサイズが，バッファサイズとして仮定されます。ただし，次に示す場合は指定値の変更を考えてください。

将来，このオプションで指定した値を超えるページ長のRDエリアを追加したり，再初期化してRDエリアのページ長を大きくしたりすることがある場合，このオプションの指定値を大きめに設定しておくことをお勧めします。ただし，HiRDBを終了できる場合は，HiRDBの次回開始時にはバッファサイズに最大ページ長が仮定されるため，このオプションの指定値を大きめに設定しておく必要はありません。

＜規則＞

このオプションの指定値がRDエリアの最大ページサイズより小さい場合，RDエリアの最大ページサイズがバッファサイズとなります。

このオプションに奇数を指定した場合，バッファサイズは指定した値に1を加算した値となります。

(i)　-m 同時実行最大プリフェッチ数　〜＜符号なし整数＞((0〜95000))《0》

同時にプリフェッチ機能を使用する最大数を指定します。プリフェッチ機能は，キャラクタ型スペシャルファイルを使用して大量検索をする場合に入出力時間を削減する効果があります。

このオプションに0を指定するか，又は省略した場合は，プリフェッチ機能は動作しません。プリフェッチ機能を動作させるには，1以上を指定してください。

＜指定値の目安＞

指定値の設定は，このグローバルバッファに割り当てられたRDエリアの表の中で，プリフェッチ機能が適用されるSQLを同時に実行する回数を指定します。プリフェッチ機能が適用されるSQLを次に示します。ただし，3.に関しては実行数を2として算出します。

インデクスを使用しないSELECT，UPDATE，DELETE文（=条件，IN条件を除く）

インデクスを使用した昇順検索※をするSELECT，UPDATE，DELETE文（=条件，IN条件を除く）

クラスタキーを使用した昇順検索※をするSELECT，UPDATE，DELETE文（=条件，IN条件を除く）

注※　複数列インデクスの場合はインデクス定義で指定した順序

＜規則＞

プリフェッチ機能を使用する場合，グローバルバッファ用の共用メモリからグローバルバッファとは別に一括入力専用のバッファが確保されるため，再度共用メモリを見積もる必要があります。

プリフェッチ機能，及びグローバルバッファが使用する共用メモリの計算式については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

(j)　-p 一括入力最大ページ数　〜＜符号なし整数＞((2〜256))《32》

プリフェッチ機能の一括入力最大ページ数を指定します。この指定は，-mオプションで１以上を指定したときだけ有効になります。

＜指定値の目安＞

共用メモリ量と削減効果のコストパフォーマンスから，指定の目安として次に示す計算式を満足するように指定します。

a×b＝64〜128　　（単位：キロバイト）

a：プリフェッチ対象表のデータ，又はインデクスが格納されているRDエリアのページ長
b：一括入力最大ページ数

(k)　-w デファードライトトリガ時の更新ページ出力比率

　　　〜＜符号なし整数＞((0〜100))《20》

デファードライトトリガでの更新ページ出力比率をパーセントで指定します。デファードライトトリガについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

このオペランドに0を指定した場合は，デファードライトトリガでの更新ページ出力をしません。

＜指定値の目安＞

グローバルバッファごとの入出力回数，及び更新ページのヒット率などを統計解析ユティリティで確認し，指定値を決めてください。更新ページのヒット率が高いグローバルバッファでは出力比率を低く，ヒット率の低いグローバルバッファでは出力比率を高く指定してください。

必要以上に大きい値を指定すると，更新の頻度が多い場合，入出力が多発します。また，遅延書き込み時にデータベースに書き込むページ数が増え，スループットが低下します。反対に，少な過ぎる値を指定すると，シンクポイントダンプ出力時にデータベースに書き出すページ数が多くなることがあります。このため，できるだけ，シンクポイントダンプ出力間隔の間に同じページがデータベースに書き出される回数が少なくなるようにしてください。

すべてのページがグローバルバッファ上にあり，複数トランザクションで同一ページの更新が多く発生する場合は0を指定してください。0を指定すると，シンクポイント間隔内でデータベースに書き出す総ページ数を減らすことができます。

(l)　-y デファードライトトリガ契機の更新バッファ面数

　　　〜＜符号なし整数＞((2〜2147483647))

デファードライト処理を実行するときの，更新バッファ面数を指定します。更新バッファ面数が指定値に達すると，デファードライトトリガによってディスクに書き込まれます。

なお，-yオペランドの指定を省略した場合，デファードライトトリガ契機の更新バッファ面数は，pd_dbbuff_rate_updpageオペランド，pdbuffer -yオペランドの組み合わせによって次のようになります。

pd_dbbuff_rate_updpageオペランドの指定有無

pdbuffer -yオペランドの指定有無

デファードライトトリガ契機の更新バッファ面数

あり

あり

pdbuffer -yオペランド指定値

なし

グローバルバッファ面数×pd_dbbuff_rate_updpageオペランド指定比率

なし

あり

pdbuffer -yオペランド指定値

なし

HiRDBが自動計算します。

＜指定値の目安＞

通常はこのオペランドを省略してください。デファードライト処理がシンクポイント間隔内で終了しない場合など，更新バッファ面数を減らし，更新バッファヒット率を多少抑えてでも書き込み時間を短縮したいときに，このオペランドを指定します。指定する場合は，50%（HiRDBが設定する初期値）を目安にし，マニュアル「HiRDB システム運用ガイド」の「デファードライト処理適用時のシンクポイント処理時間のチューニング」を参照して，オペランドの値を決定してください。

＜規則＞

-yオプションにグローバルバッファ面数より大きい値を指定した場合は，グローバルバッファ面数と同じ値が適用されます。

＜注意事項＞

-yオプションの指定値が小さ過ぎると，デファードライト処理の回数が増えてしまい，デファードライト処理による負荷を高めるおそれがあります。このため，指定値の目安に従った設定をお勧めします。

(m)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pdbufmodコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

pdbufmodコマンドは，HiRDBが稼働中のときだけ実行できます。

pdbufmodコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdbufmodコマンドを実行すると，関連するRDエリア及びRDエリア状態に対してEXモードで排他を掛けます。そのため，関連するRDエリアを他トランザクション又はユティリティがアクセスする場合は待ち状態になります。

pdbufmodコマンドは，次の場合は実行できません。

高速系切り替え機能，又はスタンバイレス型系切り替え機能を使用している場合

システム定義でpd_dbbuff_modify=Yを指定していない場合

pdbufmodコマンドは，複数同時には実行できません。

定義できるグローバルバッファ数，及び新たに追加できる共用メモリセグメント数の上限は，システム定義のpd_max_add_dbbuff_no及びpd_max_add_dbbuff_shm_noオペランドの指定値で決まります。

pdbufmodコマンドは，pdbufferオペランドに-Dを指定しているグローバルバッファを操作できません。

(6)　注意事項

グローバルバッファの削除に伴う共用メモリセグメントの削除は，コマンドの終了契機によって遅延したりします。すぐに削除したい場合は，pdpfreshコマンドを実行してください。

pdbufmodコマンド実行中に，ユニットが終了，又はHiRDBを強制終了した場合は，再開始後にpdbufls -k defコマンドで前回実行していた操作が完了しているか確認してください。完了していない場合は，再度pdbufmodコマンドを実行してください。

pdbufmodコマンドのリターンコードを次に示します。

0：正常終了

4：警告終了（一部のサーバの処理が異常終了）

8：異常終了

12：異常終了（エラーメッセージを出力できない事象が発生）

リターンコードが12の場合は，シングルサーバ又はディクショナリサーバがあるホストのsyslogfileのエラーメッセージを参照し，エラーの要因を取り除いた後，再度pdbufmodコマンドを実行してください。syslogfileにエラーメッセージが出力されていない場合は，保守員に連絡してください。

(7)　使用例

例１：

グローバルバッファ（gbuf01）を追加して，そのグローバルバッファに追加したRDエリア（RDAREA1）を割り当てます。

 pdbufmod -k add   .................1
          -a gbuf01   ..............2
          -r RDAREA1   .............3
          -n 1000   ................4

［説明］

グローバルバッファを追加する場合に指定します。

追加するグローバルバッファの名称を指定します。

割り当てるRDエリアを指定します。

グローバルバッファのバッファ面数を指定します。

例２：

RDエリアを割り当てていないグローバルバッファ（gbuf01）を削除します。

 pdbufmod -k del   .................1
          -a gbuf01   ..............2

［説明］

グローバルバッファを削除する場合に指定します。

削除するグローバルバッファの名称を指定します。

例３：

グローバルバッファ（gbuf01）のバッファ面数を1000から2000に変更します。

 pdbufmod -k upd   .................1
          -a gbuf01   ..............2
          -n 2000   ................3

［説明］

グローバルバッファの定義を変更する場合に指定します。

定義を変更するグローバルバッファの名称を指定します。

変更後のバッファ面数を指定します。

2.11　pdcancel（UAP，ユティリティ処理の強制終了）

2.11.1　pdcancelの形式と規則

(1)　機能

UAP又はユティリティを処理するHiRDB側の処理プロセスを，UAP又はユティリティから強制的に切り離し，終了します。

UAPが異常終了などで終了しているのに，HiRDB側の処理プロセスがまだ処理途中の場合は，このコマンドを実行して終了します。このコマンドは，UAPと接続していたHiRDB側のシングルサーバプロセス，又はフロントエンドサーバプロセス及びバックエンドサーバプロセスを強制終了します。

また，実行中のユティリティの処理を中断します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdcancel ｛-U｜-u UAP識別子〔-i プロセスID〕｜-i プロセスID -d｝

(b)　HiRDB/パラレルサーバの場合

　pdcancel ｛-x ホスト名｜-X ユニット識別子｝

　　　　　　｛-U｜-u UAP識別子 〔-i プロセスID〕｜-i プロセスID -d｝

(4)　オプション

(a)　UAPの場合

-x ホスト名　〜＜識別子＞((1〜32))

該当するUAPが接続しているフロントエンドサーバがあるホストの名称を指定します。ホスト名はpdlsコマンドで確認できます。

-X ユニット識別子　〜＜識別子＞((4文字))

該当するUAPが接続しているフロントエンドサーバがあるユニットの，ユニット識別子を指定します。

-U

指定したホスト名のユニットで動作している，すべてのUAPを強制終了する場合に指定します。

-u UAP識別子　〜＜文字列＞((1〜30))

強制終了するHiRDB側の処理プロセスに対応する，クライアントUAPのUAP識別子（PDCLTAPNAME）を指定します。該当するユニットで同一識別子を持つUAPが複数動作している場合は，-iオプションを指定する必要があります。

-i プロセスID　〜＜符号なし整数＞((1〜10))

強制終了するプロセスのプロセスIDを指定します。-uオプションと同時に指定した場合は，シングルサーバ，又はフロントエンドサーバのプロセスIDを指定してください。-dオプションと同時に指定した場合は，シングルサーバプロセス，ディクショナリサーバプロセス，フロントエンドサーバプロセス，又はバックエンドサーバプロセスを指定してください。プロセスIDは，pdlsコマンド（-dオプションにprcを指定）で表示されます。したがって，該当するUAPのサービス要求受け付け時刻を基にして，強制終了するプロセスのプロセスIDを知ることができます。

-d

HiRDB側の処理プロセスをcore取得後強制終了する場合に指定します。プロセスがトランザクション処理中の場合は，トランザクション関係にあるディクショナリサーバプロセス，フロントエンドサーバプロセス，及びバックエンドサーバプロセスを強制終了し，coreを取得します。

(b)　ユティリティの場合

-x ホスト名　〜＜識別子＞((1〜32))

システムマネジャがあるホストの名称を指定します。ただし，データベース初期設定ユティリティ（pdinit）及びデータベース構成変更ユティリティ（pdmod）を強制終了する場合は，ディクショナリサーバがあるホストの名称を指定してください。

ホスト名はpdlsコマンドで確認できます。

-X　ユニット識別子　〜＜識別子＞((4文字))

ユティリティが動作しているユニットのユニット識別子を指定します。ただし，データベース初期設定ユティリティ及びデータベース構成変更ユティリティを強制終了する場合は，ディクショナリサーバがあるユニットのユニット識別子を指定してください。

ユニット識別子はpdls -d prcコマンドで確認できます。

-u UAP識別子　〜＜識別子＞((1〜8))

ユティリティの処理をしているサーバの名称を指定します。サーバ名は，pdls -d prc -aコマンドで表示される，"0m"で始まる名称です。例えば，データベース作成ユティリティ（pdload）の場合，サーバ名は"0mload0"と表示されます。ただし，データベース構成変更ユティリティを強制終了する場合は，UAP識別子としてpdmodを指定します。

各ユティリティのサーバの名称を次に示します。

ユティリティ

サーバの名称

データベース初期設定ユティリティ（pdinit）

0minitx※

データベース作成ユティリティ（pdload）

0mloadx※

データベース構成変更ユティリティ（pdmod）

pdmod

データベース再編成ユティリティ（pdrorg）

0mrorgx※

ディクショナリ搬出入ユティリティ（pdexp）

0mexpx※

リバランスユティリティ（pdrbal）

0mrbalx※

空きページ解放ユティリティ（pdreclaim）

0mrorgx※

グローバルバッファ常駐化ユティリティ（pdpgbfon）

0mrorgx※

データベース状態解析ユティリティ（pddbst）

0mdbstx※

最適化情報収集ユティリティ（pdgetcst）

0mgcstx※

データベース複写ユティリティ（pdcopy）

0bcpyx※

データベース回復ユティリティ（pdrstr）

0brstr

注※

末尾のxは，0，1，2…と数値文字になります。

-i プロセスID　〜＜符号なし整数＞((1〜10))

強制終了するユティリティのプロセスIDを指定します。ユティリティの場合，このオプションは必ず指定してください。

-d

ユティリティをcore取得後強制終了する場合に指定します。ユティリティがトランザクション処理中の場合は，トランザクション関係にあるシングルサーバプロセス，ディクショナリサーバプロセス，及びバックエンドサーバプロセスを強制終了し，coreを取得します。

(5)　規則

pdcancelコマンドは，HiRDBが稼働中のときだけ実行できます。

pdcancelコマンドは，任意のサーバマシンから実行できます。ただし，ユティリティ専用ユニットのサーバマシンからは実行できません。

pdcancelコマンド（-dオプション指定なし）でUAPと接続していたHiRDB側の処理プロセスを強制終了する場合，強制終了の対象となるプロセスはトランザクション処理中のものだけです。このため，トランザクション開始以前，又はトランザクション終了後であるのに，シングルサーバプロセス，又はフロントエンドサーバプロセスからの応答がUAPに返ってこない場合は，-dオプションを指定してpdcancelコマンドを実行するか（この場合はcoreを取得します），又はOSのkillコマンドでシングルサーバプロセス，若しくはフロントエンドサーバプロセスを終了してください。該当するUAPに対応するプロセスがトランザクション処理中かどうかは，pdlsコマンド（-dオプションにtrn -aを指定）で表示される情報で判別できます。この場合，該当するUAPに関する情報が表示されればトランザクション処理中であり，表示されなければトランザクション処理中でないことになります。

UAPが異常終了などで終了しているのに，HiRDB側の処理プロセスがまだ処理途中の場合にpdcancelコマンドを実行しなかったときは，該当するUAPのクライアント環境定義（PDSWAITTIME）で指定した時間でプロセスは強制終了されます。

(6)　注意事項

pdcancelコマンドの結果は，pdlsコマンド（-d prc指定）で確認できます。

クライアント環境定義のPDCLTAPNAMEに英数字以外の文字を指定した場合，pdcancelコマンドを実行できない場合があります。

ユティリティをキャンセルする場合，不当にキャンセルしないように注意してください。

pdcancelコマンド実行時のリターンコードは，0の場合は正常終了，8の場合は異常終了（オプション指定不正，rsh失敗など）となります。

2.12　pdcat（ファイルの内容表示）

2.12.1　pdcatの形式と規則

(1)　共通機能

指定した表示対象種別ごとにHiRDBシステムのファイルの内容を表示します。

(2)　共通形式

　pdcat 〔-d 表示対象種別〕 〔表示対象種別ごとのオプション〕

注

表示対象種別ごとのオプションは，指定する表示対象種別によって異なります。

(3)　共通オプション

(a)　-d 表示対象種別

内容を表示するファイルの種別を指定します。

sts：

ステータスファイルの内容を表示します。

省略時：

メッセージログファイルの内容を表示します。

(4)　共通注意事項

pdcatコマンド実行時のリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

システム定義のpd_tmp_directoryオペランドを指定しないで，環境変数TMPDIRだけを指定している場合，pdcatコマンド，又はほかのHiRDBのコマンドを実行中に中断すると，環境変数TMPDIRに設定したディレクトリ下に"pdcmd"で始まる名称のファイルが残ることがあります。pdcatコマンド，又はほかのHiRDBのコマンドが終了した後も，"pdcmd"で始まる名称のファイルが残っている場合は，OSのrmコマンドなどで削除してください。

2.13　pdcat【-d sts】（ステータスファイルの内容表示）

2.13.1　pdcat【-d sts】の形式と規則

(1)　機能

ステータスファイルの内容を標準出力に出力します。

(2)　実行者

権限がないユーザでも実行できます。

(3)　形式

(a)　ユニット用ステータスファイル

　pdcat -d sts 〔｛-x ホスト名｜-u ユニット識別子｝〕

　　　　-f 物理ファイル名 〔-v〕 〔-e〕

(b)　サーバ用ステータスファイル

　pdcat -d sts -s サーバ名 -f 物理ファイル名 〔-v〕 〔-e〕

(4)　オプション

(a)　｛-x ホスト名｜-u ユニット識別子｝

ユニット用ステータスファイルに対応するホストのホスト名，又はユニットのユニット識別子を指定します。省略した場合，HiRDBシステム全体の情報を表示します。

-x ホスト名　〜＜識別子＞((1〜32))

ユニット用ステータスファイルに対応するホストのホスト名を指定します。

-u ユニット識別子　〜＜識別子＞((4文字))

ユニット用ステータスファイルに対応するユニットのユニット識別子を指定します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

サーバ用ステータスファイルに対応するサーバ名を指定します。HiRDB/シングルサーバではHiRDBサーバは一つですが，サーバ用ステータスファイルが操作対象であることを識別するために必ず指定してください。

(c)　-f 物理ファイル名　〜<パス名>((167文字以内))

物理ファイルの名称を，絶対パス名で指定します。物理ファイル名は，HiRDBファイルシステム領域名/HiRDBファイル名で指定してください。

ログ同期方式のリアルタイムSANレプリケーションを適用しているHiRDBでは，正ステータスファイル，及び副ステータスファイルのどちらも指定できます。なお，物理ファイルのあるボリュームが読み込み可能である必要があります。

(d)　-v

ステータスファイルに関する次の内容をチェックします。

レコード(先頭，終端)整合性チェック番号によるレコード破壊チェック

pdstsinitコマンド実行時のファイル管理情報によるレコード長，レコード数チェック

ステータスファイル管理情報によるファイル更新完了チェック

ステータスファイル管理情報内のレコード数，レコード種別チェック

チェック結果が不正の場合，指定したステータスファイルの内容を表示した後に，エラーメッセージを出力します。

このオプションの指定を省略すると，ステータスファイルはチェックされません。

(e)　-e

ステータスファイルを排他的にオープンします。このため，ユニット，又はサーバの開始時にこのオプションを指定してpdcatコマンドを実行すると，HiRDBが排他エラーで異常終了する場合があります。

このオプションの指定を省略すると，ステータスファイルは排他的にオープンされません。このため，指定したステータスファイルをHiRDBで使用中の場合，正しい状態が表示されないことがあります。

(5)　規則

pdcatコマンドは，HiRDBの稼働に関係なく実行できます。ただし，HiRDB開始処理中及び終了処理中は実行できません。

pdcatコマンドは，任意のサーバマシンから実行できます。ただし，ユティリティ専用ユニットのサーバマシンからは実行できません。

(6)　出力形式

 Path name:aa...a
     Initial_time Current_time  R_le  R_co   factor Available Manage  Assign-Seq
     bb...b       cc...c        ddddd ee...e fff%   gg...g    hh...h      ii...i

［説明］

aa...a：

物理ファイルの名称(63けた以内)

bb...b：

初期設定年月日と時刻

年(西暦の下2けた)/月/日　時:分:秒の形式

cc...c：

現用決定年月日と時刻

年(西暦の下2けた)/月/日　時:分:秒の形式

現用ファイルとして使用されていない場合，「−−/−−/−−　−−：−−：−−」と表示されます。

ddddd：

レコード長(10進数)

ee...e：

レコード数(10進数)

fff ：

ファイル内のレコード使用率（％）

gg...g：

ファイル内の連続空きレコード数(10進数)

hh...h：

ファイル内の管理レコード数(10進数)

ii...i：

システムが使用する内部情報(10進数)

なお，障害が発生したファイルや破壊されたファイルに対する表示内容は，不正となる場合があります。

2.14　pdcat【-d省略】（メッセージログファイルの内容表示）

2.14.1　pdcat【-d省略】の形式と規則

(1)　機能

メッセージログファイル中のメッセージの内容を表示します。

(2)　実行者

権限がないユーザでも実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdcat 〔-｛a｜b｜ab｝〕 〔-c 重要度コード〔，重要度コード〕…〕

　　　　〔-y yyyymmdd〕 〔-t hhmmss〕 〔-T hhmmss〕 〔-n レコード数〕

　　　　〔ファイル名〕

(b)　HiRDB/パラレルサーバの場合

　pdcat 〔-｛a｜b｜ab｝〕 〔-c 重要度コード〔，重要度コード〕…〕

　　　　〔｛-x ホスト名｜-u ユニット識別子｝〕 〔-y yyyymmdd〕

　　　　〔-t hhmmss〕 〔-T hhmmss〕 〔-n レコード数〕

　　　　〔ファイル名〕

(4)　オプション

(a)　-｛a｜b｜ab｝

-a ：

メッセージID及びテキスト以外の情報を表示します。

-b ：

メッセージID及びテキストを表示します。

-ab：

メッセージのすべての情報を表示します。

(b)　-c 重要度コード

重要度コードでメッセージを選択する場合，その重要度コードを指定します。省略した場合，すべてのメッセージを表示します。

重要度コードについては，マニュアル「HiRDB メッセージ」を参照してください。

(c)　｛-x ホスト名｜-u ユニット識別子｝

ホストごと又はユニットごとにメッセージを表示する場合，そのホストのホスト名又はそのユニットのユニット識別子を指定します。省略した場合，すべてのホスト又はすべてのユニットのメッセージログを出力します。

-x ホスト名　〜＜識別子＞((1〜32))

ホストごとにメッセージを表示する場合，そのホストのホスト名を指定します。pdunitオペランドの-xオプションにホスト名を指定している場合は，そのホスト名を指定します。pdunitオペランドの-xオプションを省略している場合は，標準ホスト名を指定してください。このオプションを省略した場合は，すべてのホストのメッセージログを出力します。

なお，影響分散スタンバイレス型系切り替え機能を適用している場合，サーバに関するメッセージを出力するためには，サーバが実行系となっているホストのホスト名を指定する必要があります。系切り替えをしたサーバに関するメッセージは，サーバが実行系となっているホストのメッセージログに出力されるためです。

-u ユニット識別子　〜＜識別子＞((4文字))

ユニットごとにメッセージを表示する場合，そのユニットのユニット識別子を指定します。影響分散スタンバイレス型系切り替え機能を適用している場合，サーバに関するメッセージを出力するためには，サーバが実行系となっているユニットのユニット識別子を指定する必要があります。系切り替えをしたサーバに関するメッセージは，サーバが実行系となっているユニットのメッセージログに出力されるためです。

(d)　-y yyyymmdd

メッセージログの発生日付でメッセージを選択する場合，表示を開始するメッセージログの発生日付を，年月日で指定します。年は4けたの西暦で，月と日は2けたで指定します。省略した場合，すべてのメッセージログを表示します。

(e)　-t hhmmss

メッセージログの発生時刻でメッセージを選択する場合，表示を開始するメッセージログの発生時刻を，時分秒で指定します。省略した場合，すべてのメッセージログを表示します。

(f)　-T hhmmss

メッセージログの発生時刻でメッセージを選択する場合，表示を終了するメッセージログの発生時刻を，時分秒で指定します。省略した場合，すべてのメッセージログを表示します。

(g)　-n レコード数　〜＜符号なし整数＞((1〜32767))

表示するメッセージの数を限定したい場合，表示するメッセージログのレコード数を指定します。省略した場合，すべての情報を表示します。

(5)　コマンド引数

(a)　ファイル名　〜＜パス名＞

表示するメッセージログファイルの名称を指定します。メッセージログファイルを複写したファイルも指定できます。

省略した場合，次のメッセージログファイルの作成日付の古い順にマージして表示します。

$PDDIR/spool/pdlog1

$PDDIR/spool/pdlog2

(6)　規則

pdcatコマンドは，HiRDBの稼働に関係なく実行できます。ただし，HiRDB開始処理中及び終了処理中は実行できません。

pdcatコマンドは，任意のサーバマシンから実行できます。ただし，ユティリティ専用ユニットのサーバマシンからは実行できません。

HiRDB/パラレルサーバで，8文字以上の名称のホストがある場合，-uオプションを指定してユニットごとに情報を出力してください。

(7)　注意事項

HiRDB/パラレルサーバの場合，システム定義のpd_mlg_msg_log_unitオペランドの指定値によって，メッセージログファイルの格納場所が次のようになります。

pd_mlg_msg_log_unit=managerの場合

システムマネジャがあるユニット

pd_mlg_msg_log_unit=localの場合

すべてのユニット

pdcatコマンドを実行した場合，pd_mlg_msg_log_unit=localを指定しているときは，該当ユニットのメッセージログファイルの内容を表示します。pd_mlg_msg_log_unit=managerを指定している場合，又はpd_mlg_msg_log_unitオペランドを省略している場合，システムマネジャがあるユニットでは該当ユニットのメッセージログファイルの内容を表示し，それ以外のユニットでは何も表示されません。

8文字以上の名称のホストがある場合，-xオプションに8文字以上のホスト名を指定すると，ホスト名の先頭8文字が同じホストの情報をすべて出力します。

(8)　出力形式

 aa...a bb...b cc...c dddd ee...e ff...f gg...g hhhh ii...i
 jjj kk...k ll...l

［説明］

項目ごとに1文字以上の半角空白を空けて表示します。

aa...a：

メッセージ通番（10進数7けた以内）

bb...b：

プロセスID（AIX版は10進数10けた以内で右詰め表示，AIX版以外は99999以下の場合，10進数5けた以内で右詰め表示，100000以上の場合は，10進数10けた以内で左詰め表示）

AIX版以外で100000以上の場合，プロセス内メッセージ通番以降の項目の表示位置は右にシフトします。

cc...c：

プロセス内メッセージ通番（10進数7けた以内）

dddd ：

HiRDB識別子（4文字）

ee...e：

年月日（年/月/日の形式）（10進数10けた）

ff...f：

時分秒（時:分:秒の形式）（10進数8けた）

gg...g：

要求元ホスト名（先頭8文字）

影響分散スタンバイレス型系切り替え機能を適用している場合，サーバが実行系となっているホストのホスト名となります。

hhhh ：

ユニット識別子（4文字）

影響分散スタンバイレス型系切り替え機能を適用している場合，サーバが実行系となっているユニットのユニット識別子となります。

ii...i：

メッセージ出力要求元サーバ名（8文字以内）

jjj ：

システムが使用する内部情報（3文字）

kk...k：

メッセージID（10進数11けた以内）

ll...l：

メッセージテキスト（223文字以内）

＜出力例＞

AIX版以外でプロセスIDが100000以上の表示を含む場合

       12 38095       1 PRDB 2014/04/07 17:18:46 HOST0001 UNT0 _rdm
rdm KFPS05220-I HiRDB system termination process started. mode = NORMAL
 … プロセスIDが99999以下
       13 108221       0 PRDB 2014/04/07 17:18:47 HOST0001 UNT0 _pdustop
 adm KFPS01840-I Now terminating HiRDB unit UNT0
 … プロセスIDが100000以上
       14  8101       0 PRDB 2014/04/07 17:18:47 HOST0001 UNT0 _trn
trn KFPS00958-I Unit terminating; stops receiving new transactions
 … プロセスIDが99999以下

2.15　pdchgconf（システム構成変更コマンド）

2.15.1　pdchgconfの形式と規則

(1)　機能

HiRDBの稼働中に，システム定義を変更します。

pdchgconfコマンドを実行する前に，変更後の定義内容の妥当性を確認してください（pdconfchk -d chgconfコマンドを実行してください）。

pdchgconfコマンドは，HiRDB Advanced High Availabilityを組み込んでいる場合に使用できます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdchgconf

(4)　オプション

なし。

(5)　変更手順

システム定義の変更の概要を次の図に示します。

図2‒3　システム定義の変更の概要（pdchgconfコマンド）

［説明］

pdchgconfコマンドを実行する前に，$PDDIR/confに変更後のシステム定義ファイルを格納するディレクトリchgconfを作成してください。HiRDB/パラレルサーバの場合は，すべてのユニットに作成してください。

$PDDIR/confにあるすべてのシステム定義ファイルをchgconfディレクトリにコピーした後，システム定義の変更をしてください。

変更できるシステム定義については，マニュアル「HiRDB システム運用ガイド」を参照してください。

pdchgconfコマンドを実行します。

pdchgconfコマンドが終了すると，変更前のシステム定義ファイルは$PDDIR/confのbackconfディレクトリに退避されます。

$PDDIR/confには変更後のシステム定義ファイルが格納されます。

(6)　規則

pdchgconfコマンドは，HiRDBが稼働中のときだけ実行できます。

pdchgconfコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(7)　注意事項

pd_system_id，及びpd_master_file_nameオペランドは，pdchgconfコマンドでは変更できません。また，現用のシステムファイル，及び上書きできないシステムファイルに対しても削除はできません。これらの変更，又は削除をするとエラーになります。

OSのオペレーティングシステムパラメタ（カーネルパラメタ）変更を伴うシステム定義の変更はできません。この場合，通常のシステム定義の変更（HiRDBを終了して，システム定義を変更してから再度HiRDBを開始する方法）をしてください。

pdchgconfコマンドを実行すると，システムログファイルが切り替わります。そのため，pdchgconfコマンドを実行する前に，変更後の構成で稼働するための容量が，システムログファイルにあるかどうかを確認してから実行してください。スワップ先にできるシステムログファイルがない状態でpdchgconfコマンドを実行すると，KFPS01256-Eメッセージを出力し，HiRDBは停止します（アボートコードPsjnf07又はPsjn381を出力）。HiRDBが停止した場合，スワップ先にできるシステムログファイルを準備してから，HiRDBを開始してください。スワップ先にできるシステムログファイルがない場合，システムログファイルを追加する必要があります。スワップ先にできるファイルがない場合の対処方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

pdchgconfコマンドを実行すると，メッセージログファイルが切り替わります。ただし，メッセージログファイルの切り替えを示すメッセージは出力されません。そのため，メッセージログファイルのメッセージログが必要な場合は，pdchgconfコマンドを実行する前にメッセージログファイルのバックアップを取得してください。

次の条件に該当する場合，pdchgconfコマンドは実行できないことがあります。

HiRDB/パラレルサーバの場合で，一部のユニット又はサーバが終了しているとき（縮退起動も含む）。なお，回復不要FESのユニットが停止している場合，pdchgconfコマンドを実行できることがあります。詳細については，「回復不要FESがある場合の注意事項」を参照してください。

HiRDB/パラレルサーバの場合で，ユニット間のネットワークに通信障害が発生しているとき

更新可能なオンライン再編成を実行中の場合

pdrplstopコマンドを実行中の場合

pdchgconfコマンド実行後に，15分間以上トランザクション，又はユティリティが動作した場合

pdstart -rコマンドでHiRDBを開始している場合

拡張ユニットを使用する場合（pd_system_expand_unitオペランドを指定している場合）

インメモリRDエリアがある場合

HiRDBシステム定義ファイルの共用化を行ない，環境変数PDCONFPATHに$PDDIR/conf以外を指定している場合

HiRDB Datareplicator連携中に，システム定義のpd_rpl_init_startオペランドの内容と，実際のデータ抽出モードが異なっている場合。この場合の詳細を次に示します。

変更前のpd_rpl_init_startオペランドの内容

HiRDB Datareplicator連携の状態

変更後のpd_rpl_init_startオペランドの内容

pdchgconfコマンドの実行可否

Y

実行中

Y

○

N又は省略

×

pdrplstopコマンド実行で停止中

Y

×

N又は省略

○

N又は省略

停止中

Y

×

N又は省略

○

pdrplstartコマンド実行で実行中

Y

○

N又は省略

×

（凡例）

○：実行できます。

×：実行できません。

次に示す条件をすべて満たす場合

(i)pd_mode_confオペランドにAUTOを指定している

(ii)回復不要FESを定義したユニットが停止している

(iii)システム定義の変更後に，上記(ii)のユニットの回復不要FESの適用をやめる

pdchgconfコマンドの実行中は，次の運用に制限が生じます。

UAPのレスポンスが遅くなることがあります。pdchgconfコマンドの実行時間の目安は，「HiRDBを正常終了する時間＋HiRDBを正常開始する時間」です。

ほかの運用コマンド及びユティリティは実行しないでください。

系切り替え機能は使用できません。HAモニタのサーバモードの系切り替え機能を使用している場合，pdchgconfコマンド実行中に待機系を停止するため，pdchgconfコマンドが正常終了した後に変更後のシステム定義に入れ替えて，待機系を再開始してください。また，Hitachi HA Toolkit Extensionを使用した系切り替え機能の場合は，pdchgconfコマンドを実行する前に待機系を停止して，pdchgconfコマンドが正常終了した後に変更後のシステム定義に入れ替え，待機系を再開始してください。

HiRDB Datareplicator連携中に，ユニット又はサーバの追加，削除をする場合，HiRDB Datareplicatorの抽出環境の再構築が必要となります。HiRDB Datareplicatorの抽出環境の再構築中に，HiRDBのトランザクションが動作して抽出側DBの追加，更新，及び削除がされると，反映側DBとの不整合が発生します。この場合，pdchgconfコマンドでの構成変更はしないでください。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合に，pdchgconfコマンドを実行したときは，システムログ適用化を実行してください。リアルタイムSANレプリケーションの詳細については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

pdchgconfコマンドの実行が失敗した場合，$PDDIR/conf下のbackconfディレクトリにある変更前のシステム定義ファイルを使用して，自動的にシステム定義変更前の状態に戻します。戻す処理が失敗した場合，HiRDBが終了することがあります。この場合，エラーメッセージを参照し対処してください。

pdchgconfコマンド実行中，HiRDBの開始，終了に伴うエラーメッセージ及びアボートコードが出力されることがあります。この場合，変更後のシステム定義，又は環境に問題があることがあります。エラーメッセージ，及びアボートコードの対処方法に従って対処してください。

pdchgconfコマンドのリターンコードを次に示します。

0：正常終了

8：異常終了

リターンコードが8の場合は，HiRDBが停止している可能性があるため，マニュアル「HiRDB システム運用ガイド」の「HiRDBの稼働中にHiRDBシステム定義を変更する方法（システム構成変更コマンド）」を参照して対処してください。

回復不要FESのユニットが停止している場合，次に示す状態ではpdchgconfコマンドを実行できないことがあります。

システム定義のpd_mode_confオペランドの指定値がAUTOの場合

システム定義変更後に，停止しているユニットのフロントエンドサーバが回復不要FESでなくなる場合

(8)　回復不要FESがある場合の注意事項

回復不要FESが正常停止していて，該当するユニットが稼働している場合，pdchgconfコマンドは実行できません。

回復不要FESユニットのサーバマシンがダウンしている場合，pdchgconfコマンドの終了に時間が掛かることがあります。

サーバマシンの起動後に，回復不要FESユニットを一度も開始していない場合，pdchgconfコマンドがエラー終了することがあります。

回復不要FESのユニット以外のユニットがすべて稼働していて，かつ単独停止中のサーバがない場合，回復不要FESのユニットが停止していても，pdchgconfコマンドを実行できます。ただし，注意事項の5.〜10.に該当する場合は実行できません。

pdchgconfコマンドは，停止しているユニットの$PDDIR/conf下にあるシステム定義ファイルを，$PDDIR/conf/chgconf下のシステム定義ファイルに置き換えます。また，停止しているユニットは，変更後のシステム定義を反映するために再度開始します。ただし，マシンダウンやネットワーク障害などによって，pdchgconfコマンドは，停止しているユニットのシステム定義ファイルの置き換えや開始をしないことがあります。その場合，KFPS04665-Wメッセージが表示されます。KFPS04665-Wメッセージに表示されたユニットに対しては，ユニットを再開始する前に，次の(i)，(ii)の操作を必ず行ってください。行わなかった場合，HiRDBがシステム定義の変更を正しく受け付けられなくなり，不正な動作をすることがあります。この場合，すぐに該当ユニットを停止し，(i)，(ii)の操作を行ってください。

(i) $PDDIR/conf下，$PDCONFPATH下のシステム定義ファイルを，変更後のシステム定義ファイルに置き換える。

(ii) pdconfchkコマンドで，ユニット間のシステム定義に差異がないことを確認する。

2.16　pdchpathf（ファイルパス変更オフラインコマンド）

2.16.1　pdchpathfの形式と規則

(1)　機能

RDエリアの構成ファイルを格納しているHiRDBファイルシステム領域を移動するために，HiRDBファイルに登録されているパス情報を変更します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdchpathf 制御文ファイル パス変更情報ファイル

(4)　オプション

(a)　制御文ファイル　〜＜パス名＞

制御文ファイルには変更するファイルの情報を次の形式で記述してください。HiRDB/パラレルサーバの場合，一つの制御文ファイルに複数の制御文を記述できます。制御文にはコメントは記述できません。

制御文

オペランド
change path
〔host ホスト名〕
area "HiRDBファイルシステム領域名"
〔generation ｛世代番号|rep｝〕
〔area "HiRDBファイルシステム領域名"
　〔generation ｛世代番号|rep｝〕〕…
;

host ホスト名：

〜＜識別子＞((1〜32))

【HiRDB/シングルサーバの場合】

指定不要です。指定しても無視されます。

【HiRDB/パラレルサーバの場合】

HiRDBファイルシステム領域を定義しているユニットのホスト名を指定してください。システム定義pdunitの-x又は-cに指定しているホスト名を指定してください。同一のホスト名を複数の制御文に指定することはできません。

area "HiRDBファイルシステム領域名"：

〜＜パス名＞((165文字以内))

変更するHiRDBファイルシステム領域名のパス名称を指定します。

HiRDBファイルシステム領域名は引用符(")で囲んで指定してください。指定したHiRDBファイルシステム領域に格納している最大のHiRDBファイル名長と，HiRDBファイルシステム領域名長が合わせて166文字以内になるようにしてください。

複数のHiRDBファイルシステム領域を変更する場合，それぞれの変更前後のHiRDBファイルシステム領域名が重ならないようにしてください。重なった場合，コマンドがエラーになります。

<問題のある変更の例>

HiRDBファイルシステム領域名AのファイルパスをBに変更し，HiRDBファイルシステム領域名BのファイルをAに変更する（ファイル名の入れ替え）。

HiRDBファイルシステム領域名AのファイルをBに変更し，HiRDBファイルシステム領域名BのファイルをCに変更する（ファイル名の玉突き）。

<注意事項>

マスタディレクトリ用RDエリアの構成ファイルのファイルパスを変更する場合は，最初の制御文に指定してください。最初の制御文に指定しない場合，コマンドがエラー終了します。

generation ｛世代番号|rep｝

インナレプリカ機能を使用し，世代登録しているHiRDBファイルシステム領域を変更する場合は，このオペランドに登録している世代番号，又はrepを指定してください。このオペランドはareaごとに指定してください。

世代番号《1〜10》

世代登録している世代番号を指定してください。複数の世代を登録している場合は，世代番号の指定が必要です。世代番号については，ディクショナリ表のSQL_IOS_GENERATIONS表の検索で取得できます。

rep

登録している世代が一つだけの場合は，その世代番号を指定していると見なします。複数の世代が登録されている場合，コマンドがエラー終了します。

(b)　パス変更情報ファイル　〜＜パス名＞

パス変更情報ファイルは，pdchpathnコマンドの入力ファイルです。指定したファイルがある場合はコマンドがエラー終了します。パス変更情報ファイルのサイズを次に示します。

パス変更情報ファイルサイズ(単位：バイト) ＝ 20＋(a＋ｂ)×384

［説明］

a：

制御文に指定したHiRDBファイルシステム領域のうち，インナレプリカ機能を使用しているHiRDBファイルシステム領域数。

b：

制御文に指定したHiRDBファイルシステム領域に作成しているHiRDBファイル数の合計。

(5)　規則

pdchpathfコマンドは，HiRDBが停止中のときだけ実行できます。pdchpathfコマンド実行後は，HiRDBを起動してpdchpathnコマンドを実行してください。

pdchpathfコマンドは，シングルサーバ又はディクショナリサーバがあるサーバマシンで実行してください。

pdchpathfコマンド実行後は，pdchpathnコマンドの実行が完了するまで再実行できません。変更するHiRDBファイルシステム領域が複数ある場合は，制御文ファイルにすべて記載してください。

マスタディレクトリ用RDエリアのファイルを変更する場合，先頭の制御文に記載する必要があります。

pdchpathfコマンドは，HiRDBを正常停止した状態で実行してください。強制終了，異常終了状態で実行した場合，再開始時の更新ログによる回復中にDB破壊となります。

(6)　注意事項

pdchpathfコマンドのリターンコードを次に示します。

0：正常終了

4：異常終了（回復不要）

8：異常終了（回復要）

pdchpathfコマンドのリターンコードが4の場合は，制御文の情報に問題があります。この場合，制御文ファイルを修正して再実行できます。リターンコードが8の場合は，ファイル更新中にエラーが発生しているため，実行前のバックアップから回復が必要です。なお，リターンコードはKFPH27072-Iメッセージで確認できます。

リアルタイムSANレプリケーションを使用し，リモートサイトへのデータ反映方式にログ同期方式を適用している場合，pdchpathnコマンド実行後に業務サイトとログ適用サイトのHiRDB構成を同じにしてから，システムログ適用化を実施してください。

2.17　pdchpathn（ファイルパス変更オンラインコマンド）

2.17.1　pdchpathnの形式と規則

(1)　機能

pdchpathfコマンドが出力したパス変更情報ファイルを基に，ディクショナリ表で管理しているHiRDBファイルシステム領域のパスを変更します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdchpathn 〔-W 実行監視時間〕 パス変更情報ファイル

(4)　オプション

(a)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pdchpathnコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。

このオプションに0を指定した場合は，監視を行いません。

このオプションを省略した場合は，pd_cmd_exec_timeオペランドの指定値が仮定されます。詳細はマニュアル「HiRDB システム定義」の pd_cmd_exec_timeオペランドを参照してください。

なお，pdchpathnコマンドの実行時間は，パスを変更するHiRDBファイル数に依存します。そのため，変更するHiRDBファイル数が多いほど，実行時間が長くなります。

(5)　コマンド引数

(a)　パス変更情報ファイル　〜＜パス名＞

pdchpathfコマンドが出力したパス変更情報ファイルのパスを指定します。

SDS又はDSがあるホスト上でアクセスできるファイルを指定してください。

HiRDB/パラレルサーバの場合で，MGRとDSが別のユニットにある場合は，DSがあるホスト上での絶対パスを指定してください。

(6)　規則

pdchpathnコマンドは，HiRDBが稼働中のときだけ実行できます。

pdchpathnコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdchpathnコマンドを実行する場合，データディクショナリ用RDエリア及びマスタディレクトリ用RDエリアがオープンかつ閉塞なし状態である必要があります。

(7)　注意事項

pdchpathnコマンドのリターンコードを次に示します。

0：正常終了

8：異常終了

異常終了時は，出力したエラーメッセージを参照して，エラー要因を取り除き再度コマンドを実行してください。

pdchpathnコマンドを実行する前に，マニュアル「HiRDB システム運用ガイド」の「ファイルパス変更コマンドを使用した移動手順」の注意事項を参照してください。

pdchpathnコマンドは，ディクショナリ表を更新するため，システムファイルに更新ログを出力します。マニュアル「HiRDB システム導入・設計ガイド」の「ファイルパス変更オンラインコマンド（pdchpathn）実行時に出力されるシステムログ量」を参照して，更新ログ量を見積ってください。

pdchpathfコマンド実行前に取得したバックアップは使用できません。pdchpathnコマンドの正常終了後，全RDエリアのバックアップを取得してください。

リアルタイムSANレプリケーションを使用し，リモートサイトへのデータ反映方式にログ同期方式を適用している場合，pdchpathnコマンド実行後に業務サイトとログ適用サイトのHiRDB構成を同じにしてから，システムログ適用化を実施してください。

2.18　pdchprc（サーバプロセスの起動本数変更）

2.18.1　pdchprcの形式と規則

(1)　機能

サーバプロセスの常駐プロセス数と最大起動プロセス数を変更します。また，サーバプロセスの常駐プロセス数と最大起動プロセス数を表示します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdchprc 〔-p常駐プロセス数〔，最大起動プロセス数〕〕

(b)　HiRDB/パラレルサーバの場合

　pdchprc ｛-a｜-sサーバ名｝

　　　　　　〔-p常駐プロセス数〔，最大起動プロセス数〕〕

(4)　オプション

(a)　-p常駐プロセス数〔，最大起動プロセス数〕　〜＜符号なし整数＞

HiRDB/シングルサーバの場合：((0〜3000))

HiRDB/パラレルサーバの場合：((0〜12000))

サーバプロセスの常駐プロセス数及び最大起動プロセス数を指定します。最大起動プロセス数を省略した場合，常駐プロセス数と同じ値が仮定されます。また，-pオプションを省略した場合，pdchprcコマンド実行時のサーバプロセスの常駐プロセス数，及び最大起動プロセス数を表示します。

プロセス数には，0〜HiRDBのシステム定義で指定したサーバプロセスの最大起動プロセス数までの値を指定できます。サーバプロセスの最大起動プロセス数を次に示します。なお，pd_max_reflect_process_countオペランドを指定していない場合は，pd_max_reflect_process_countオペランドの指定値は0とみなしてください。

シングルサーバ又はフロントエンドサーバの場合

システム共通定義のpd_max_usersオペランドの値＋pd_max_reflect_process_countオペランドの値

バックエンドサーバの場合

サーバ共通定義又はバックエンドサーバ定義のpd_max_bes_processオペランドの指定値＋pd_max_reflect_process_countオペランドの値

ディクショナリサーバの場合

サーバ共通定義又はディクショナリサーバ定義のpd_max_dic_processオペランドの指定値＋pd_max_reflect_process_countオペランドの値

(b)　-a

pdchprcコマンドを実行したときに起動している，すべてのサーバのサーバプロセスの常駐プロセス数，最大起動プロセス数を表示します。-pオプションと同時に指定した場合は，起動中のすべてのフロントエンドサーバとバックエンドサーバの，サーバプロセスの常駐プロセス数，最大起動プロセス数を変更します。

(c)　-sサーバ名　〜＜識別子＞((1〜8))

サーバプロセスの常駐プロセス数，最大起動プロセス数の変更又は表示をする，サーバの名称を指定します。

(5)　規則

pdchprcコマンドは，HiRDBが稼働中のときだけ実行できます。

pdchprcコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

-pオプションに指定した常駐プロセス数の値が最大起動プロセス数より大きい場合，エラーとなります。

-pオプションに，HiRDBのシステム定義で指定したサーバプロセスの最大起動プロセス数より大きな値を指定した場合は，警告メッセージが表示され，HiRDBのシステム定義で指定したサーバプロセスの最大起動プロセス数に値を変更します。

-pオプションでの常駐プロセス数，最大起動プロセス数に値が変更された場合，HiRDBはプロセス数を変更した旨のメッセージをサーバごとに表示します。

pdchprcコマンドで変更したサーバプロセスの常駐プロセス数及び最大起動プロセス数は，該当するサーバが停止するまで有効となります。HiRDBが正常終了，強制終了，又は計画停止した後の再開始では，変更した情報は引き継がれません。

(6)　注意事項

-sオプションに，停止中又は停止処理中のサーバを指定した場合，pdchprcコマンドはエラー終了します。また，-aオプションを指定した場合，停止中又は停止処理中のサーバに対しては，サーバプロセスの常駐プロセス数，最大起動プロセス数の変更及び表示はできません。

ディクショナリサーバのサーバプロセスの常駐プロセス数，最大起動プロセス数を変更する場合は，-sオプションにディクショナリサーバのサーバ名を指定してください。

サーバプロセスの最大起動プロセス数を0に変更した場合，pdchprcコマンド実行後に発生したトランザクション処理は，すべてエラーとなります。

ディクショナリサーバ又はバックエンドサーバの最大起動プロセス数を，HiRDBのシステム定義で指定した値より小さくした場合，そのサーバにトランザクション処理が集中したときは，処理しきれなかったトランザクションがエラーとなることがあります。

HiRDB/パラレルサーバで，システムマネジャとフロントエンドサーバが同じユニットの場合，フロントエンドサーバの最大起動プロセス数を0に変更すると，次に示すユティリティは実行できなくなります。

データベース作成ユティリティ（pdload）

データベース構成変更ユティリティ（pdmod）

データベース再編成ユティリティ（pdrorg）

データベース状態解析ユティリティ（pddbst）

最適化情報収集ユティリティ（pdgetcst）

1：1スタンバイレス型系切り替え機能を適用する構成で，系切り替えによって代替BESが正規BESの処理を代行している（代替中）場合，正規BESに対してpdchprcコマンドを実行すると次のようになります。

-sオプションを指定してpdchprcコマンドを実行すると，コマンドはエラー終了します。

正規BESのサーバプロセスの常駐プロセス数及び最大起動プロセス数の変更及び表示はできません。

1：1スタンバイレス型系切り替え機能を適用する場合のサーバプロセス数については，マニュアル「HiRDB システム運用ガイド」の「HiRDBシステム定義の作成」の「系切り替え後のサーバプロセスの割り当て」を参照してください。

影響分散スタンバイレス型系切り替え機能を適用している場合，pdchprcコマンドでサーバプロセスの常駐プロセス数及び最大起動プロセス数を表示させると，サーバプロセス割り当て数によってはバックエンドサーバプロセスの常駐プロセス数及び最大起動プロセス数が変更されて表示されることがあります。また，-pオプションを指定して常駐プロセス数及び最大起動プロセス数を変更しても，サーバプロセス割り当て数によっては，バックエンドサーバプロセスの常駐プロセス数及び最大起動プロセス数が変更されないことがあります。影響分散スタンバイレス型系切り替え機能使用時のサーバプロセス割り当て数については，マニュアル「HiRDB システム運用ガイド」を参照してください。

pdchprcコマンドのリターンコードを次に示します。

0：正常終了

4：一部のユニットが正常終了

一部のユニットでサーバプロセス数を変更できていないおそれがあります。

その状態で業務を継続すると同時に実行可能なトランザクション数が減るなどの問題が発生することがあります。

メッセージに従って対処した後に再度コマンドを実行してください。

8：異常終了（オプション指定不正，rsh失敗など）

サーバプロセス数を変更できていないおそれがあります。

その状態で業務を継続すると同時に実行可能なトランザクション数が減るなどの問題が発生することがあります。

メッセージに従って対処した後に再度コマンドを実行してください。

(7)　出力形式

-pオプションを省略したときだけ，表示されます。

 aa...a         bb...b,cc...c         dd...d,ee...e
 aa...a         bb...b,cc...c         dd...d,ee...e

［説明］

aa...a：

サーバ名（8文字以内）

bb...b：

HiRDBのシステム定義で指定したサーバプロセスの常駐プロセス数（10進数5けた以内で右詰め表示）

cc...c：

HiRDBのシステム定義で指定したサーバプロセスの最大起動プロセス数（10進数5けた以内で右詰め表示）

dd...d：

pdchprcコマンドで変更したサーバプロセスの常駐プロセス数（10進数5けた以内で右詰め表示）

bb...bと同じ場合は****を表示します。

ee...e：

pdchprcコマンドで変更したサーバプロセスの最大起動プロセス数（10進数5けた以内で右詰め表示）

cc...cと同じ場合は****を表示します。

＜出力例＞

 dic1         10, 100   ****,****        … プロセス数が10000未満の場合
 fes1         10, 100   ****,****        … プロセス数が10000未満の場合
 bes1       5000,10000    500,****       … プロセス数が10000以上の場合
 bes2       10000,12000    500,10000     … プロセス数が10000以上の場合

2.19　pdclibsync（Cライブラリファイルの操作）

2.19.1　pdclibsyncの形式と規則

(1)　機能

Cライブラリファイルに対して次に示す操作ができます。

Cライブラリファイルの新規登録

Cライブラリファイルの再登録

Cライブラリファイルの削除

Cライブラリファイルの一覧表示

Cライブラリファイルのホスト間の再登録（HiRDB/パラレルサーバ限定）

このコマンドは，Cストアドプロシジャ又はCストアドファンクションを使用するときに使用します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdclibsync 〔｛-I｜-R｜-D｜-L｝〕

　          〔-u 認可識別子〔，認可識別子〕…〕

　          〔-f Cライブラリファイル名〕

(b)　HiRDB/パラレルサーバの場合

　pdclibsync 〔｛-I｜-R｜-D｜-L｜-S｝〕

　          〔-x ホスト名〔，ホスト名〕…〕

　          〔-u 認可識別子〔，認可識別子〕…〕

　          〔-f Cライブラリファイル名〕

(4)　オプション

(a)　｛-I｜-R｜-D｜-L｜-S｝

pdclibsyncコマンドで実行する処理を指定します。

-I

CライブラリファイルをHiRDBに新規登録します。Cライブラリファイルは，pd_c_library_directoryオペランドで指定したディレクトリ下に格納されます。

このオプションを指定した場合は，-u及び-fオプションを必ず指定してください。

-fオプションで指定したCライブラリファイルが既に登録されている場合に，このオプションを指定してコマンドを実行するとエラーになります。

-R

CライブラリファイルをHiRDBに再登録します（登録済みのCライブラリファイルを上書きします）。

このオプションを指定した場合は，-u及び-fオプションを必ず指定してください。

-D

Cライブラリファイルを削除します。

このオプションを指定した場合は，-u及び-fオプションを必ず指定してください。

-fオプションで指定したCライブラリファイルがHiRDBに登録されていない場合に，このオプションを指定してコマンドを実行するとエラーになります。

-L

HiRDBに登録されているCライブラリファイルの一覧を表示します。

-S

このオプションは，HiRDB/パラレルサーバ限定のオプションです。

-xオプションで指定したサーバマシンのCライブラリファイルをコピー元とし，HiRDB/パラレルサーバを構成する全サーバマシンにそのCライブラリファイルを再登録します。-xオプションを省略した場合，ディクショナリサーバが定義されているサーバマシンのCライブラリファイルをコピー元とします。

例えば，サーバマシンを追加したときにこのオプションを使うと，追加したサーバマシンにCライブラリファイルを登録できます。

pdclibsyncコマンドに指定するオプションの関係を次の表に示します。

表2‒1　pdclibsyncコマンドに指定するオプションの関係

Cライブラリファイルの

操作種別のオプション

ほかのオプション

-x

-u

-f

-I

○

◎

◎

-R

○

◎

◎

-D

○

◎

◎

-L

○

○

○

-S

○※

○

○

（凡例）

◎：必ず指定してください。

○：任意に指定できます。

注※

-xオプションを指定する場合は，ホスト名を一つだけ指定してください。

(b)　-x ホスト名〔，ホスト名〕…

このオプションは，HiRDB/パラレルサーバ限定のオプションです。

・-Sオプションを指定した場合

コピー元のCライブラリファイルがあるサーバマシンのホスト名を指定します。ホスト名を二つ以上指定することはできません。

このオプションを省略した場合は，ディクショナリサーバが定義されているサーバマシンのホスト名が仮定されます。

・-Sオプション以外を指定した場合

pdclibsyncコマンドの処理対象となるホストを限定する場合に指定します。

例えば，-Dオプションを指定してCライブラリファイルを削除する場合に，-xオプションを指定すると，指定したホストにあるCライブラリファイルだけが削除されます。

(c)　-u 認可識別子〔，認可識別子〕…

認可識別子を指定します。認可識別子にMASTER又はHiRDBを指定することはできません。

-I，-R，及び-Dオプションを指定した場合は，このオプションを必ず指定してください。

・-Iオプションを指定した場合

Cライブラリファイルの所有者となる認可識別子を指定します。Cストアドプロシジャ又はCストアドファンクションの所有者となる認可識別子を指定してください。

HiRDB管理者とここで指定した認可識別子のユーザだけが，登録したCライブラリファイルを操作できます。

・-Iオプション以外を指定した場合

指定した認可識別子のユーザが所有するCライブラリファイルがコマンドの処理対象になります。

(d)　-f Cライブラリファイル名

操作対象のCライブラリファイルの名称を指定します。

-I，-R，及び-Dオプションを指定した場合は，このオプションを必ず指定してください。

-S，-Lオプション指定時にこのオプションを省略した場合は，登録されているすべてのCライブラリファイルが操作対象になります。

(5)　規則

pdclibsyncコマンドは，HiRDBの稼働に関係なく実行できます。

pdclibsyncコマンドは，任意のサーバマシンから実行できます。

pdclibsyncコマンドは，複数同時に実行しないでください。

(6)　リターンコード

pdclibsyncコマンドのリターンコードを次に示します。

0：正常終了

4：異常終了

Cライブラリファイルに対する処理を実行する前に異常終了したときに返されるリターンコードです。

例えば，新規登録を行った場合にCライブラリファイルが既に登録されている，削除を行った場合に該当するCライブラリファイルがないときにこのリターンコードが返されます。

8：異常終了

Cライブラリファイルに対する処理の実行中に異常終了したときに返されるリターンコードです。

この場合，出力されたメッセージを参照し，障害原因を取り除いた後にコマンドを再実行してください。なお，このリターンコードが返された場合，Cライブラリファイルが壊れている可能性があるため，Cライブラリファイルの一覧を表示してください。ファイルサイズが通常と異なるCライブラリファイルがある場合，そのファイルが壊れている可能性があります。この場合，Cライブラリファイルを再登録するなどの対処を取ってください。

(7)　注意事項

トランザクションの実行中に，そのトランザクション中で実行されるCストアドルーチンが使用するC関数を含むCライブラリファイルを再登録及び削除しないでください。

(8)　出力形式

pdclibsyncコマンドのオプションに-Lを指定，又はオプションを省略した場合は，次の情報が表示されます。

 HOSTNAME(aabbcc)  DATE        TIME       SIZE    OWNER   FILE
 dd...d            eeee/ff/gg  hh:ii:jj   kk...k  ll...l  mm...m
    :                :            :         :       :       :

［説明］

aabbcc：

pdclibsyncコマンドを実行した時刻が表示されます。

dd...d：

pdclibsyncコマンドを実行したホスト名が表示されます。

eeee/ff/gg：

Cライブラリファイルの日付※が表示されます。

hh:ii:jj：

Cライブラリファイルの時刻※が表示されます。

kk...k：

Cライブラリファイルの大きさが表示されます（単位：バイト）。

ll...l：

Cライブラリファイルの所有者名が表示されます。

mm...m：

Cライブラリファイルの名称が表示されます。

注※

SQL文（INSTALL CLIB，REPLACE CLIB）でＣライブラリファイルを新規登録又は再登録した場合は，SQL文を実行した日付及び時刻となります。pdclibsyncコマンドでＣライブラリファイルを新規登録又は再登録した場合は，新規登録又は再登録したCライブラリファイルの日付及び時刻となります。

2.20　pdclose（RDエリアのクローズ）

2.20.1　pdcloseの形式と規則

(1)　機能

指定したRDエリアをクローズします。pdholdコマンドによって閉塞したRDエリア，又は障害閉塞状態のRDエリアを指定します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdclose -r ｛RDエリア名〔，RDエリア名〕…｜ALL｝ 〔-q 世代番号〕〔-W 実行監視時間〕

(4)　オプション

(a)　-r ｛RDエリア名〔，RDエリア名〕…｜ALL｝

RDエリア名　〜＜識別子＞((1〜30))

クローズするRDエリア名を指定します。

ALL

マスタディレクトリ用RDエリアを除くすべてのRDエリアをクローズします。ただし，-qオプション指定時は，同じ世代のRDエリアを対象とします。

＜規則＞

RDエリアを指定する場合の規則については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

参照可能バックアップ閉塞（更新WAITモード），更新可能バックアップ閉塞のRDエリア，及びマスタディレクトリ用RDエリアはクローズできません。

ユーザ用RDエリア又はユーザLOB用RDエリアを指定する場合は，データディクショナリ用RDエリアが次のどちらかの状態でなければなりません。

オープン状態，かつ閉塞解除状態

オープン状態，かつpdholdコマンドによる閉塞状態

データディクショナリ用RDエリアとユーザ用RDエリア，又はユーザLOB用RDエリアを同時に指定する場合は，データディクショナリ用RDエリア名を最後に指定してください。

インナレプリカ機能を使用している場合，オリジナルRDエリア名及びレプリカRDエリア名も指定できます。ただし，この場合，指定できるのはユーザ用RDエリア及びユーザLOB用RDエリアだけです。

(b)　-q 世代番号　〜＜符号なし整数＞((0〜10))

レプリカRDエリアの世代番号を指定します。

このオプションを指定した場合，-rオプションにはオリジナルRDエリア名を指定してください。この場合，レプリカがすべて削除されたオリジナルRDエリア，又は通常のRDエリア（レプリカRDエリアがないRDエリア）を指定したときはエラーとなります。

(c)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pdcloseコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

pdcloseコマンドは，HiRDBが稼働中のときだけ実行できます。

pdcloseコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdcloseコマンドは，RDエリアに対してモードEXで排他制御をします。そのため，指定したRDエリアにほかのトランザクションがアクセスしている場合は，そのトランザクションの終了までpdcloseコマンドは待ち状態となります。

共用RDエリアに対してpdcloseコマンドを実行した場合，全バックエンドサーバに排他を掛けます。このため，該当するRDエリアへのアクセスを複数同時に実行している場合，グローバルデッドロックが発生し，タイムアウトする可能性があります。グローバルデッドロックが発生した場合，再度pdcloseコマンドを実行してください。

DB非同期状態又はRDエリア障害状態の場合にpdcloseコマンドを実行すると，インメモリデータバッファ上のデータをディスクに書き込み，インメモリデータバッファとRDエリアの同期を取ります（DB同期状態になります）。

リアルタイムSANレプリケーションの処理方式にハイブリッドを選択している場合，pdcloseコマンドを実行すると，リモートサイトへのデータベース同期待ち合わせをします。このため，-rオプションで指定したRDエリア一つにつき，2秒以上のオーバヘッドが掛かることがあります。リモートサイトへのデータベース同期待ち合わせに失敗した場合，リモートサイトのデータベースを回復する必要があります。リアルタイムSANレプリケーションを使用した場合の障害発生時の運用については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

(6)　注意事項

pdcloseコマンドの結果は，pddblsコマンドで確認できます。

pdcloseコマンドのリターンコードと基本的な対処方法を次に示します。

0以外の場合，一部のRDエリアがクローズしていることがあります。その状態では業務を継続できないおそれがあるため，pdcloseコマンドに指定したRDエリアをpdrelsコマンド（-oオプション指定）でオープンしてください。

0：正常終了

4：警告終了

一部のRDエリアの処理がエラー終了しました。

8：異常終了

一部のRDエリアの処理がエラー終了していることがあります。

12：異常終了

エラーメッセージを表示できない事象が発生しました。

一部のRDエリアの処理がエラー終了していることがあります。シングルサーバ又はディクショナリサーバがあるホストのsyslogfile中のエラーメッセージを参照して，エラーの要因を取り除いた後，再度コマンドを実行してください。syslogfile中にエラーメッセージが出力されていない場合は保守員に連絡してください。

2.21　pdclttrc（SQLトレースの動的取得）

2.21.1　pdclttrcの形式と規則

(1)　機能

SQL実行中のクライアントの，SQLトレースを取得します。SQLトレースは，クライアントに出力されます。

SQLトレースを取得するサーバのサーバ名とプロセスIDは，pdls -d prcコマンドの実行結果の，クライアントのIPアドレス，UAPの識別情報から特定できます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdclttrc 〔-s サーバ名〕 〔-p プロセスID〕 〔-e〕 〔-l PDUAPREPLVL指定値〕

　　　　 〔-m ?パラメタ及び検索データの最大データ長〕

　　　　 〔-n 出力オペレーションコード数〕 〔-o SQLトレースファイルのサイズ〕

(4)　オプション

(a)　-s サーバ名　〜＜識別子＞((1〜8))

SQLトレースを取得するクライアントが接続している，サーバの名称を指定します。シングルサーバ又はフロントエンドサーバのサーバ名を指定してください。

このオプションを省略した場合，HiRDBのすべてのサーバ（シングルサーバ又はフロントエンドサーバ）に接続しているプロセスのSQLトレースを取得します。

シングルサーバの場合，不正なサーバ名を指定してもエラーにはなりません。

(b)　-p プロセスID　〜＜符号なし整数＞((1〜10))

SQLトレースを取得するクライアントが接続している，サーバのプロセスIDを指定します。

HiRDB/パラレルサーバの場合，必ず-sオプションと同時に指定してください。HiRDB/シングルサーバの場合，-sオプションの指定は任意です。

このオプションを省略した場合，シングルサーバ又はフロントエンドサーバに接続しているすべてのプロセスのSQLトレースを取得します。

(c)　-e

SQLトレースの取得を停止します。

＜規則＞

既に接続が切断されていたり，-nオプションの指定値に達してSQLトレースの取得が停止したりしている状態で，このオプションを指定してもエラーにはなりません。

このオプションだけ指定した場合，HiRDBのすべてのサーバ（シングルサーバ又はフロントエンドサーバ）に接続しているプロセスのSQLトレース取得を停止します。

同時に-sオプションを指定した場合，指定したサーバに接続しているすべてのプロセスのSQLトレース取得を停止します。

同時に-pオプションを指定した場合，指定したプロセスのSQLトレース取得を停止します。

クライアント側への停止要求は次回SQLで実行されます。その間に内部的なオペレーションが実行された場合，-eオプションで停止した後もSQLトレースに情報が出力されることがあります。内部的なオペレーションについては，「DAT形式ファイルのレコード形式」のオペレーションコードを参照してください。

(d)　-l PDUAPREPLVL指定値

このオプションは，SQLトレース情報以外に，UAP統計レポート情報も出力する場合に指定します。UAP統計レポートの出力情報（クライアント環境定義PDUAPREPLVLの指定値）を指定します。指定値，情報の出力先などについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

プロセス間メモリ通信機能を使用している場合，このオプションを指定しても無視されます。このとき，プロセス間メモリ通信中のメッセージが出力されます。

-eオプションと同時に指定した場合，このオプションの指定は無効となります。

(e)　-m ?パラメタ及び検索データの最大データ長　〜＜符号なし整数＞((4〜32008))

SQLトレースに出力する?パラメタ情報，及び検索データの最大データ長を，バイト単位で指定します。

このオプションは，クライアント環境定義PDPRMTRCにINOUTを指定した場合と同じ機能になります。

-eオプションと同時に指定した場合，このオプションの指定は無効となります。

(f)　-n 出力オペレーションコード数　〜＜符号なし整数＞((0〜10000))《0》

SQLトレースファイルに出力するオペレーションコード数を指定します。指定したオペレーションコード数分情報を出力した場合，SQLトレース取得は停止します。

このオプションを省略した場合，-eオプション指定のpdclttrcコマンドを実行するまで，又はDISCONNECTされるまでSQLトレースを出力します。

-eオプションと同時に指定した場合，このオプションの指定は無効となります。

(g)　-o SQLトレースファイルのサイズ　〜＜符号なし整数＞((0，4096〜2000000000))《32768》

SQLトレースファイルのサイズをバイト単位で指定します。

0を指定した場合，ファイルの最大サイズとなります。

-eオプションと同時に指定した場合，このオプションの指定は無効となります。

(5)　規則

pdclttrcコマンドは，HiRDBが稼働中のときだけ実行できます。

pdclttrcコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdclttrcコマンドは，接続しているクライアントのバージョンが07-01以降の場合に，SQLトレースを取得します。

SQLトレースの取得は，pdclttrcコマンド実行時に処理中のSQLから取得を開始します。ただし，SQLトレース取得開始時に処理中のSQLについては，次の情報は出力されません。

SQL開始時刻

クライアント環境定義PDSQLEXECTIME=YES指定時に出力されるSQL実行時間

UAP統計レポートに出力されるSQL単位情報のSQL実行時間と差分情報

SQLトレースファイル及びUAP統計レポートは，クライアント環境定義PDCLTPATHの指定ディレクトリに出力します。PDCLTPATHを省略している場合は，UAP実行時のカレントディレクトリに出力します。

ただし，-lオプション指定時にクライアント環境定義PDREPPATHが指定されている場合は，PDREPPATHの指定ディレクトリに出力されます。

-lオプション指定時のSQLトレースファイルの出力先を次に示します。

PDCLTPATHの指定

PDREPPATHの指定

SQLトレースファイルの出力先

なし

なし

カレントディレクトリ

あり

なし

PDCLTPATHの指定ディレクトリ

なし

あり

PDREPPATHの指定ディレクトリ

あり

あり

-lオプションを指定した場合，UAP単位の情報はコマンド開始からの情報であるため，コマンド実行以前の情報については出力されません。

このコマンド実行時のファイル名称については，マニュアル「HiRDB UAP開発ガイド」の「SQLトレース機能」を参照してください。

クライアント側で既にSQLトレースが取得されている場合，pdclttrcコマンドを実行しても無効となります。

pdclttrcコマンド実行中に再度pdclttrcコマンドを実行した場合，現在SQLトレースを取得しているプロセスについては，取得中である旨のメッセージが出力されます。

このコマンドで取得するSQLトレースの出力形式は，クライアント環境変数PDSQLTRCFMTの指定値に従います。PDSQLTRCFMT省略時は出力形式2で出力します。

(6)　注意事項

通信エラーやDISCONNECTなどで接続が切断された場合，又は-nオプションで指定したオペレーションコード数分SQLトレースを出力した場合，自動的にSQLトレースの取得を停止します。

クライアント環境定義PDHSICOPTIONSでUAPREP又はALLを指定している場合，pdclttrcコマンドを実行しないでください。PDHSICOPTIONSの詳細は，マニュアル「HiRDB UAP開発ガイド」の「クライアント環境定義（環境変数の設定）」を参照してください。

pdclttrcコマンドのリターンコードを次に示します。

0：正常終了

8：エラー終了

-pオプションを指定しないで実行したpdclttrcコマンドがエラー終了となった場合，一部のプロセスについてだけSQLトレース取得状態となることがあります。エラーとなった原因を対策してから再実行するか，-eオプションを指定してSQLトレースの取得を停止してください。

2.22　pdcmdact（HiRDB管理者以外のユーザによるコマンド実行）

2.22.1　pdcmdactの形式と規則

(1)　機能

HiRDB管理者だけ実行できるHiRDBの運用コマンド・ユティリティを，HiRDB管理者として実行します。

(2)　実行者

HiRDBグループ内のユーザが実行できます。

(3)　形式

　pdcmdact コマンド名 〔コマンドオプション〕

(4)　コマンド引数

(a)　コマンド名　〜＜英数字＞

実行権限を与えられている運用コマンド・ユティリティ名を指定します。

(b)　コマンドオプション

コマンド名に指定した運用コマンド・ユティリティに指定するオプションを指定します。指定するオプションの形式は，コマンド名に指定した運用コマンド・ユティリティの形式に従います。

(5)　規則

pdcmdactコマンドは，コマンド実行権限変更機能を有効にした環境で実行できます。コマンド実行権限変更機能を有効にする手順については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

pdcmdactコマンドはHiRDBの稼働状態に関係なく実行できますが，pdcmdactコマンドに指定した運用コマンド・ユティリティが実行できるかどうかは，指定した運用コマンド・ユティリティの規則に従います。

pdcmdactコマンドはすべてのユニットで実行できますが，pdcmdactコマンドに指定した運用コマンド・ユティリティが実行できるかどうかは，指定した運用コマンド・ユティリティの規則に従います。

pdcmdactコマンドに指定した運用コマンド・ユティリティは，HiRDB管理者権限で実行されます。

(6)　リターンコード

98：異常終了（コマンド名不正，権限不正）

99：異常終了（環境不正，メモリ不足など）

上記以外：pdcmdactコマンドに指定した運用コマンド・ユティリティの終了コード（運用コマンド・ユティリティの終了コードは，「コマンドのリターンコード一覧」を参照してください）。

(7)　注意事項

pdcmdactコマンドを実行したユーザが設定していた環境変数やumask，OSのシステム資源の制限値は，pdcmdactコマンドに指定した運用コマンド・ユティリティに引き継がれます。

pdcmdactコマンドに指定した運用コマンド・ユティリティが制御ファイルやHiRDBファイルシステム領域などを参照・操作する場合は，対象のファイルにHiRDB管理者のアクセス権限が与えられているか確認してください。アクセス権限がない場合，HiRDB管理者のアクセス権限を与えてから実行してください。

pdcmdactコマンドに指定した運用コマンド・ユティリティがファイルを作成した場合，そのファイルにはHiRDB管理者のアクセス権限だけが与えられている場合があります。必要に応じてHiRDB管理者に連絡し，ファイルのアクセス権限を変更してください。

2.23　pdcmdls（コマンドの実行権限表示）

2.23.1　pdcmdlsの形式と規則

(1)　機能

コマンドアクセスリストに登録したコマンド実行権限を表示します。このコマンドを実行したユニットのコマンドアクセスリストの内容が表示されます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdcmdls 〔｛-l コマンドアクセスリスト名 〔-c｜-u〕|-A｝〕

(4)　オプション

(a)　-l コマンドアクセスリスト名　〜＜文字列＞((1〜8))

表示対象のコマンドアクセスリスト名を指定します。指定を省略した場合は，コマンドを実行したユニットに登録されているコマンドアクセスリスト名を表示します。

(b)　〔-c｜-u〕

-lオプションで指定したコマンドアクセスリストの内容のうち，コマンドリスト又はユーザリストのどちらかを表示する場合に指定します。指定を省略した場合は，両方表示します。

-c：コマンドリストを表示します。

-u：ユーザリストを表示します。

(c)　-A

すべてのコマンドアクセスリストについて，コマンドリストとユーザリストを表示します。

(5)　規則

pdcmdlsコマンドは，コマンド実行権限変更機能を有効にした環境で実行できます。コマンド実行権限変更機能を有効にする手順については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

pdcmdlsコマンドはHiRDBの稼働状態に関係なく実行できます。

(6)　リターンコード

0：正常終了

8：異常終了

(7)　出力形式

(a)　オプションを省略した場合

#command-access-list    aaaa/bb/cc dd:ee:ff
#LISTNAME LAST_UPDATE
gg...g    hhhh/ii/jj kk:ll:mm        ...1
  :           :         :
## NO COMMAND ACCESS LIST ##         ...2

［説明］

1は，コマンドアクセスリストの数だけ繰り返し表示されます。

1で表示する項目は，1文字以上の半角空白を空けて表示します。

コマンドアクセスリストが登録されていない場合は，1は表示されないで，2を表示します。

aaaa/bb/cc dd:ee:ff：

pdcmdlsコマンドを実行した時刻（年/月/日 時:分:秒）

gg...g：

コマンドアクセスリスト名（8文字以内）

hhhh/ii/jj kk:ll:mm：

コマンドアクセスリストを最後に編集した時刻（年/月/日 時:分:秒）

(b)　-lオプションを指定した場合

#command-access-list    aaaa/bb/cc dd:ee:ff
#LISTNAME:gg...g
#LAST_UPDATE:hhhh/ii/jj kk:ll:mm
#COMMAND LIST                        ...1
nn...n                               ...1，3
  :
## NO COMMANDS ##                    ...1，4
#USER LIST                           ...2
oo...o                               ...2，5
  :
## NO USERS ##                       ...2，6

［説明］

aaaa〜mmについては，オプションを省略した場合の説明を参照してください。

-cオプションを指定した場合は1を，-uオプションを指定した場合は2を表示します。-cオプションと-uオプションのどちらも指定しなかった場合は，1と2を表示します。

3は，-lオプションで指定したコマンドアクセスリストに登録されている運用コマンド・ユティリティの数だけ繰り返し表示されます。コマンドが登録されていない場合は，3は表示されないで，4を表示します。

5は，-lオプションで指定したコマンドアクセスリストに登録されているユーザ名の数だけ繰り返し表示されます。ユーザ名が登録されていない場合は，5は表示されないで，6を表示します。

nn...n：

コマンドアクセスリストに登録された運用コマンド・ユティリティ名

oo...o：

コマンドアクセスリストに登録されたユーザ名

(c)　-Aオプションを指定した場合

#command-access-list    aaaa/bb/cc dd:ee:ff
#LISTNAME LAST_UPDATE
gg...g    hhhh/ii/jj kk:ll:mm        ...1
  :           :         :
## NO COMMAND ACCESS LIST ##         ...2
#LISTNAME:gg...g                        3
#COMMAND LIST                        ...3
nn...n                               ...3，4
  :
## NO COMMANDS ##                    ...3，5
#USER LIST                           ...3
oo...o                               ...3，6
  :
## NO USERS ##                       ...3，7
                  :
#LISTNAME:gg...g                        3
#COMMAND LIST                        ...3
nn...n                               ...3，4
  :
## NO COMMANDS ##                    ...3，5
#USER LIST                           ...3
oo...o                               ...3，6
  :
## NO USERS ##                       ...3，7

［説明］

aaaa〜oo....oについては，オプションを省略した場合，及び-lオプションを指定した場合の説明を参照してください。

1は，コマンドアクセスリストの数だけ繰り返し表示されます。

1で表示する項目は，1文字以上の半角空白を空けて表示します。

コマンドアクセスリストが登録されていない場合は，1は表示されないで，2を表示します。

3は，コマンドアクセスリストの数だけ繰り返し表示されます。コマンドアクセスリストが登録されていない場合は，3は表示されません。

4は，コマンドアクセスリストに登録されている運用コマンド・ユティリティの数だけ繰り返し表示されます。コマンドが登録されていない場合は，4は表示されないで，5を表示します。

6は，コマンドアクセスリストに登録されているユーザ名の数だけ繰り返し表示されます。コマンドが登録されていない場合は，6は表示されないで，7を表示します。

2.24　pdcmdset（コマンドの実行権限変更）

2.24.1　pdcmdsetの形式と規則

(1)　機能

pdcmdsetコマンドを実行したユニットのコマンド実行権限変更機能を制御します。次の制御ができます。

コマンドアクセスリストの新規作成・削除

コマンドアクセスリストのコマンドリストの登録

コマンドアクセスリストのユーザリストの登録

コマンドアクセスリストのバックアップ

コマンドアクセスリストのリストア

コマンドリスト用テンプレートファイルの出力

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdcmdset ｛-l コマンドアクセスリスト名
　　　　　　｛-C|-D|-E ｛-c コマンドリストファイル名 | -u ユーザリストファイル名｝｝
　　　　　 |-B 出力先ディレクトリ名
　　　　　 |-R バックアップファイル名
　　　　　 |-T 出力先ディレクトリ名｝

(4)　オプション

(a)　-l コマンドアクセスリスト名　〜＜英数字＞((1〜8))

編集対象のコマンドアクセスリスト名を指定します。-Cオプション，-Dオプション，又は-Eオプションと組み合わせて指定します。

(b)　-C

-lオプションで指定したコマンドアクセスリスト名で，新たなコマンドアクセスリストを作成します。

＜規則＞

コマンドアクセスリストは16個まで作成できます。

同じ名前のコマンドアクセスリストを複数作成することはできません。

(c)　-D

-lオプションで指定したコマンドアクセスリストを削除します。

(d)　-E

-lオプションで指定したコマンドアクセスリストのコマンドリスト，又はユーザリストを登録します。-cオプション又は-uオプションと組み合わせて指定します。

(e)　-c コマンドリストファイル名　〜＜パス名＞((1〜1023))

-lオプションで指定したコマンドアクセスリストのコマンドリストに，指定したファイルの内容を登録します。

コマンドリストファイルにはコマンドアクセスリストに登録する運用コマンド・ユティリティ名を，次の形式で記述してください。

コマンドリストの形式

コマンド名                   ...1
    ：
コマンド名     # コメント    ...2
# コメント行                 ...3

［説明］

登録する運用コマンド・ユティリティ名を1行に一つずつ記述します。

各行にコメントを記述できます。コメントを記述する場合は，コメントの先頭に"#"を記述してください。"#"を記述すると，その行の終わりまでがコメントとしてみなされます。

行の先頭に"#"を記述した場合は，1行全体がコメント扱いになります。

＜規則＞

実行権限を変更できる運用コマンド・ユティリティ名を記載してください。詳細は「実行権限を変更できる運用コマンド・ユティリティ一覧」を参照してください。

-lオプションで指定したコマンドアクセスリストにコマンドリストが既に登録されていた場合，コマンドリストファイルの内容に置き換わります。

コメントの内容はHiRDBに登録されません。

(f)　-u ユーザリストファイル名　〜＜パス名＞((1〜1023))

-lオプションで指定したコマンドアクセスリストのユーザリストに，指定したファイルの内容を登録します。

ユーザリストファイルにはコマンドアクセスリストに登録するユーザ名を，次の形式で記述してください。

ユーザリストの形式

ユーザ名                     ...1
    ：
ユーザ名       # コメント    ...2
# コメント行                 ...3

［説明］

登録するユーザ名を1行に一つずつ記述します。

各行にコメントを記述できます。コメントを記述する場合は，コメントの先頭に"#"を記述してください。"#"を記述すると，その行の終わりまでがコメントとしてみなされます。

行の先頭に"#"を記述した場合は，1行全体がコメント扱いになります。

＜規則＞

一つのコマンドアクセスリストにユーザ名を200まで登録できます。

登録するユーザ名は，次のすべての条件を満たす必要があります。

・英字で始まる30文字以内の英数字

・サーバマシンに登録済み

-lオプションで指定したコマンドアクセスリストにユーザリストが既に登録されていた場合，ユーザリストファイルの内容に置き換わります。

コメントの内容はHiRDBに登録されません。

(g)　-B 出力先ディレクトリ名　〜＜パス名＞((1〜1023))

登録されているすべてのコマンドアクセスリストのバックアップを取得し，指定した出力先ディレクトリにバックアップファイルを出力します。

バックアップファイルのファイル名称は，次に示す規則に従って付けられます。

バックアップファイル名：pdcmdacl.YYYYMMDDhhmmss

YYYYMMDDhhmmss：バックアップファイル出力時刻（年月日時分秒）

出力先ディレクトリにバックアップファイル名と同じ名前のファイルがある場合，バックアップファイルで上書きします。

(h)　-R バックアップファイル名　〜＜パス名＞((1〜1023))

指定したバックアップファイルから，コマンドアクセスリストを回復します。

登録されていたすべてのコマンドアクセスリストは削除され，バックアップファイルの内容に置き換えられます。

(i)　-T 出力先ディレクトリ名　〜＜パス名＞((1〜1023))

指定したパスにコマンドリストのテンプレートファイルを出力します。

テンプレートファイルのファイル名称はsample.clistです。

出力先ディレクトリにテンプレートファイル名と同じ名前のファイルがある場合，テンプレートファイルで上書きします。

(5)　規則

pdcmdsetコマンドは，コマンド実行権限変更機能を有効にした環境で実行できます。コマンド実行権限変更機能を有効にする手順については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

pdcmdsetコマンドはHiRDBの稼働状態に関係なく実行できます。

(6)　リターンコード

0：正常終了

8：異常終了

(7)　注意事項

コマンドアクセスリスト操作中にpdcmdsetコマンドが異常終了した場合，操作内容は取り消され，コマンドアクセスリストの内容はpdcmdsetコマンド実行直前の状態に回復します。

バックアップファイル又はテンプレートファイルの出力中にpdcmdsetコマンドが異常終了した場合は，出力途中のファイルを削除してから，pdcmdsetコマンドを実行してください。

2.25　pdcmt（トランザクションのコミット）

2.25.1　pdcmtの形式と規則

(1)　機能

pdcmtコマンドは，グローバルトランザクションを構成している各トランザクションブランチが，何らかの要因（通信障害など）でトランザクションを決着できない場合に，強制的にトランザクションをコミットするときに使用します。この場合，ほかのトランザクションとの不整合を発生させないために，グローバルトランザクション内のほかのトランザクションもコミットしなければなりません。

pdcmtコマンドは，「pdls -d trn」コマンドを実行して表示された情報中のトランザクション第１状態がREADYでトランザクション第２状態がｐのトランザクションを，強制的にコミットします。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdcmt 〔｛-x ホスト名｜-u ユニット識別子｝〕 〔-s サーバ名〕

　　　　　｛-A｜-t トランザクション識別子｝

(b)　HiRDB/パラレルサーバの場合

　pdcmt ｛-x ホスト名｜-u ユニット識別子｝ 〔-s サーバ名〕

　　　　　｛-A｜-t トランザクション識別子｝

(4)　オプション

(a)　｛-x ホスト名｜-u ユニット識別子｝

該当するトランザクションがあるホストのホスト名，又はユニットのユニット識別子を指定します。

-x ホスト名　〜＜識別子＞((1〜32))

該当するトランザクションがあるホストのホスト名を指定します。

-u ユニット識別子　〜＜識別子＞((4文字))

該当するトランザクションがあるユニットのユニット識別子を指定します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

ユニットに複数のサーバがある場合，サーバを特定するときにサーバ名を指定します。省略した場合，対象となるホスト内のすべてのサーバを対象とします。

(c)　-A

-sオプションで指定したサーバ内のトランザクションで，READY状態で回復処理待ち状態のすべてのトランザクションをコミットする場合に指定します。

(d)　-t トランザクション識別子　〜＜英数字＞((16文字))

READY状態で回復処理待ち状態のトランザクションをコミットする場合に，トランザクション識別子を指定します。

(5)　規則

pdcmtコマンドは，HiRDBが稼働中のときだけ実行できます。

pdcmtコマンドは，サーバマシンごとに実行してください。ただし，ユティリティ専用ユニットのサーバマシンでは実行できません。

(6)　注意事項

pdcmtコマンドの結果は，pdlsコマンド（-d trn指定），コマンド実行時のリターンコード，又はエラーメッセージの有無で確認できます。

コマンド実行時のリターンコードを次に示します。

0：正常終了

1：異常終了（オプション指定不正，rsh失敗など）

コミットができていないトランザクションが残っていることがあります。

メッセージに従って対処した後，再度コマンドを実行してください。

回復不要FESに接続して実行したトランザクションは，トランザクション第1状態がREADY，トランザクション第2状態がpの場合でも，強制的にコミットできないことがあります。この場合，トランザクションを自動決着してください。未決着状態のトランザクションを決着する方法の詳細については，マニュアル「HiRDB システム運用ガイド」の「未決着状態のトランザクションを決着する方法」を参照してください。

現在は停止しているクライアント製品からの要求で発生した未決着状態のトランザクションを強制的にコミットすると，この後でクライアント製品を開始したときに，HiRDBとクライアント製品との間でこのトランザクションの同期が取れないことがあります。

2.26　pdconfchk（システム定義のチェック）

2.26.1　pdconfchkの形式と規則

(1)　機能

HiRDBを開始するために必要な，システム定義の内容をチェックします。

システム定義が誤っている場合は，誤りの箇所及び詳細を表示します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdconfchk 〔-d サブディレクトリ名〕 〔-n〕 〔-l〕 〔-u ユニット識別子〕

(4)　オプション

(a)　-d サブディレクトリ名　〜＜パス名＞

チェック対象のHiRDBシステム定義ファイルを格納したサブディレクトリを，$PDDIR/conf又は$PDCONFPATHからの相対パス名で指定します。$PDDIR/confとは，ユニット制御情報定義ファイルを格納しているディレクトリを意味します。$PDCONFPATHとは，それ以外のHiRDBシステム定義ファイルを格納しているディレクトリを意味します。

チェックするHiRDBシステム定義ファイルを格納する場所を，次に示します。

HiRDBシステム定義ファイルの種類

-dオプションあり

-dオプションなし

ユニット制御情報定義ファイル

$PDDIR/conf/サブディレクトリ/

$PDDIR/conf/

上記以外

$PDCONFPATH/サブディレクトリ/

$PDCONFPATH/

＜適用基準＞

運用している環境のHiRDBシステム定義を変更する前に，変更したHiRDBシステム定義をサブディレクトリ下に格納してチェックできます。これによって，変更したHiRDBシステム定義を，事前にチェックできます。

＜規則＞

指定するサブディレクトリは，事前に作成しておいてください。

サブディレクトリ下には，変更したHiRDBシステム定義ファイルだけでなく，すべてのHiRDBシステム定義ファイルを格納してください。

HiRDB/シングルサーバの場合，$PDDIR/confと$PDCONFPATHには，同じパス名が設定されます。

HiRDB/パラレルサーバの場合，$PDDIR/confと$PDCONFPATHが指すパス名が異なることがあります（例えば，HiRDBシステム定義ファイルを共用化した場合など）。その場合，両方のパスに同一名称でサブディレクトリを作成してください。

また，ユニットごとに$PDDIR/conf，$PDCONFPATHの設定が異なる場合は，ユニットごとに$PDDIR/conf下と$PDCONFPATH下にサブディレクトリを作成し，HiRDBシステム定義ファイルを格納してください。

$PDDIR/conf/サブディレクトリ，及び$PDCONFPATH/サブディレクトリは，最大220バイトです。名称が220バイトを超えないようにしてください。

pdchgconfコマンドで変更するシステム定義をチェックする場合は，$PDDIR/conf/chgconfに変更後のシステム定義ファイルを格納し，pdconfchkコマンド実行時に-d chgconfを指定してください。

系切り替え機能を使用している場合，現用系の定義をチェックするため，サブディレクトリは現用系に作成してください。また，すべての実行系ユニットを現用系に切り替えてからpdconfchkコマンドを実行してください。なお，システムマネジャがあるユニットがオフラインのときは，現用系のシステムマネジャがあるユニットでpdconfchk -dコマンドを実行してください。

HiRDB/シングルサーバの場合，サブディレクトリ下のHiRDBシステム定義ファイルのオペランド指定値は，$PDDIR/conf又は$PDCONFPATH下のオペランド指定値と一致させる必要があります。

　・pdunitオペランドの-xオプションに指定するホスト名

　・pd_hostnameオペランドに指定するホスト名

HiRDB/パラレルサーバの場合，サブディレクトリ下のHiRDBシステム定義ファイルのオペランド指定値は，$PDDIR/conf又は$PDCONFPATH下のオペランド指定値と一致させる必要があります。

　・システムマネジャがあるユニットのpdunitオペランドの-xオプションに指定するホスト名

　・システムマネジャがあるユニットのpd_hostnameオペランドに指定するホスト名

(b)　-n

システムファイルのチェックと，アクセス権限のチェックをスキップしたい場合に指定します。pdfmkfsコマンドやpdloginitコマンドでシステムファイルを作成していないときなどに利用します。

(c)　-l

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，システムファイルのチェック及びアクセス権限のチェックの対象として，ログ適用処理に必要な副ステータスファイル，及び副シンクポイントダンプファイルを含めるときに指定します。

-lオプションは，次に示す条件をすべて満たす場合に指定できます。条件を満たしていない場合，pdconfchkコマンドがエラー終了します。

システム定義のpd_rise_useオペランドにYを指定している。

システム定義のpd_rise_pairvolume_combinationオペランドにsyssyncを指定している。

システム定義のpd_rise_fence_levelオペランドにdata又はneverを指定している。

(d)　-u ユニット識別子　〜＜識別子＞((4文字))

このオプションは，HiRDB/パラレルサーバ限定のオプションです。

特定のユニットをチェック対象にしたい場合に指定します。このオプションを指定すると，システムマネジャがあるユニットとこのオプションで指定したユニットの定義チェックを行います。

＜規則＞

このオプションは，システムマネジャがあるサーバマシンで実行できます。

このオプションにシステムマネジャがあるユニットを指定した場合は，サーバマシン間のチェックを行いません。

(5)　チェックする内容

文法のチェック

文法チェックの結果は標準出力又は標準エラー出力に出力されます。

システムファイルのチェック

システムログファイル，シンクポイントダンプファイル，及びステータスファイルの有無をチェックします。

ただし，pdconfchkコマンドで-nオプションを指定した場合はファイルをチェックしません。

アクセス権限のチェック

次のことをチェックします。

HiRDB管理者がHiRDBファイルをアクセスできるかどうか

ただし，pdconfchkコマンドで-nオプションを指定した場合はアクセス権限をチェックしません。

HiRDB管理者がhostsファイルをアクセスできるかどうか

システム定義のpd_tmp_directoryオペランドで指定したディレクトリの有無，及びHiRDB管理者がアクセスできるかどうか

ただし，pd_tmp_directoryオペランドを省略した場合はチェックしません。

システムファイルの重複指定チェック

同一ユニット，又は同一サーバ定義内に指定した以下の値が重複していないかどうかをチェックします。

システムログファイルのシステムログファイルパス名

シンクポイントダンプファイルのシンクポイントダンプファイルパス名

ステータスファイルの論理ファイル名，及びサーバステータスファイルパス名

ホストのチェック

ホスト名がHOSTSファイルに記述されているかどうかをチェックします。

サーバマシン間のチェック（HiRDB/パラレルサーバの場合）

システムマネジャのサーバマシンを基準に，サーバマシン間のチェックをします。

pdconfchkコマンドでチェックできるシステム定義のオペランドについては，マニュアル「HiRDB システム定義」の「pdconfchkコマンドでチェックできるオペランド」を参照してください。

(6)　規則

pdconfchkコマンドは，HiRDBの稼働に関係なく実行できます。

pdconfchkコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(7)　注意事項

正常終了時は，KFPS05007-I return code=0を出力し終了します。正常終了以外の場合には，KFPS05007-I return code=4（警告），又はKFPS05007-I return code=8（エラー）の終了メッセージの前に原因となるメッセージを出力します。

サーバマシン間のチェックで，コメント部分（#以降の部分），及びコメントだけの行はエラー検知の対象としません。

サーバマシン間のチェックでエラーがあった場合，システムマネジャがあるサーバマシンのシステム定義の内容も見直してください。システムマネジャがあるサーバマシンのシステム定義の内容が誤っていることもあります。

サーバマシン間のチェックで，定義文の前方及び文中にあるタブとスペースはチェック対象となります。定義文の後方にあるタブとスペースはチェック対象外となります。

サーバマシン間のチェックで，システムマネジャとシステムマネジャ以外の定義の順番が同じでない場合，順番の異なる定義を誤りとします。

(例)
システムマネジャの定義　　　システムマネジャ以外の定義
　　A　　　　　　　　　　　　　 B
　　B　　　　　　　　　　　　　 A

この場合，システムマネジャの定義Bとシステムマネジャ以外の定義Bを，Different definitionとして表示します。

pdconfchkコマンドでKFPY01012-Eメッセージが出力された場合，pdconfchkコマンドはKFPS05007-I return code=0で終了することがあります。この場合，エラーメッセージの原因を取り除いてください。

pdconfchkコマンドを実行してKFPS05062-Wメッセージが出力された場合でも，pdconfchkコマンドはKFPS05007-I（return code=0）で終了します。

pdconfchkコマンドが正常に動作した場合でも，KFPO00107-Eメッセージが出力されることがあります。pdconfchkコマンドでの定義チェックの結果はKFPS05007-Iメッセージで確認してください。

系切り替え機能を使用している場合，指定しているオプションによってpdconfchkコマンド実行時にチェック対象となる系が異なります。

-dオプション以外を指定している場合

実行系がチェック対象となります。ただし，HiRDBシステムが停止している又は定義エラーなどによって実行系かどうかを判別できないときは現用系がチェック対象になります。

-dオプションを指定している場合

現用系がチェック対象となります。

リモートシェル実行環境の設定で，HiRDBがリモート実行やファイル転送に使用するコマンドにセキュアシェルを選択した場合は，チェック対象のすべてのサーバマシンでシステム定義のpd_cmd_rmode=sshを指定してからpdconfchkコマンドを実行してください。リモートシェル実行環境については，マニュアル「HiRDB システム導入・設計ガイド」の「リモートシェル実行環境の設定」を参照してください。

pdconfchkコマンドを実行してKFPS05077-E又はKFPS05043-Eメッセージが出力された場合は，リモートシェル実行環境が正しく設定できているか，又はシステム定義のpd_cmd_rmodeオペランド指定値が正しいか確認してください。

(8)　出力形式

＜システムファイルの有無チェック，アクセス権限のチェック＞
 [aa...a]
  bbbb    cc...c    dd...d    ee...e
＜システムファイルの重複指定チェック＞
 [aa...a]
  bbbb    cc...c    dd...d    ee...e
  bbbb    cc...c    dd...d    ee...e
＜ホストのチェック＞
 [aa...a]
  bbbb    cc...c    dd...d    ff...f
＜サーバマシン間のチェック(HiRDB/パラレルサーバの場合)＞
 [aa...a]
 <gggg:hhhh>
  gggg;  cc...c;  line = iii <- hhhh;  cc...c;  nothing
  gggg;  cc...c;  nothing    -> hhhh;  cc...c;  line = iii

［説明］

aa...a：

チェックした項目のエラーの内容

File not found：

ファイルがありません。次のどちらかの原因が考えられます。

パス名に使用できない文字を指定しています。

HiRDBファイル名の長さが制限（30文字）を超えました。

Directory not found：

ディレクトリがありません。次のどちらかの原因が考えられます。

パス名に使用できない文字を指定しています。

システム定義のpd_tmp_directoryオペランドに指定したディレクトリがありません。

File invalid：

ファイルが不正です。

Directory invalid：

ディレクトリが不正です。ルートディレクトリ（/）を指定している場合は，別のディレクトリを指定してください。

No Permission：

権限がありません。なお，システム定義のpd_tmp_directoryオペランドに指定したディレクトリの場合は777をチェックします。

Duplicate filename：

ファイル名が重複しています。

Hosts name not matched：

ホスト名が一致しません。

Different definition：

システムマネジャとシステムマネジャ以外のユニットで異なる定義があります。

bbbb：

ユニット識別子

cc...c：

システム定義のファイル名

dd...d：

オペランドの指定内容

ee...e：

dd...dのオペランドで指定しているファイル名（絶対パス名）

ff...f：

dd...dがpdstart，pdunit，又はpd_hostnameの場合に，定義されているホスト名

gggg：

システムマネジャがあるユニットのユニット識別子

hhhh：

システムマネジャ以外のユニットのユニット識別子

iii：

システム定義のファイルの行番号

＜出力例＞

[File not found]
 unt1   pdutsys   pd_syssts_file_name_1              /dev/rdsys011/ut1sts1a ........1
[File invalid]
 unt1   pdutsys   pd_syssts_file_name_3              /users/yyy/pddir ..............2
[No permission]
 unt1   bes1      pd_sts_file_name_1                 /dev/rdsys011/bes1sts1a .......3
[Duplicate filename]
 unt1   fes1      pdlogadpf -d sys -g fes1log1 -a    /dev/rdsys011/fes1log1 ........4
 unt1   fes1      pdlogadpf -d sys -g fes1log1 -b    /dev/rdsys011/fes1log1 ........4
 unt1   bes1      pdlogadpf -d spd -g bes1spd1 -a    /dev/rdsys011/fes1log1 ........4
[Hosts name not matched]
 unt1   pdsys     pdstart -x                         dcm3500 .......................5
[Different definition]
<unt1:unt2>
 unt1   pdsys    line = 2   -> unt2   pdsys   nothing ..............................6
 unt1   pdsys    nothing    <- unt2   pdsys   line = 5 .............................7

［説明］

unt1のpdutsysにあるpd_syssts_file_name_1オペランドに指定したファイルが見付かりません。

unt1のpdutsysにあるpd_syssts_file_name_3オペランドに指定したファイルが不正です。

unt1のbes1にあるpd_sts_file_name_1オペランドに指定したファイルにアクセス権限がありません。

unt1のfes1にあるpdlogadpf -d sys -g fes1log1オペランドの-aに指定しているファイル名と，次のファイル名が重複しています。

unt1のfes1にあるpdlogadpf -d sys -g fes1log1オペランドの-bに指定しているファイル名

unt1のbes1にあるpdlogadpf -d spd -g bes1spd1オペランドの-aに指定しているファイル名

unt1のホスト名と，unt1のpdsysにあるpdstart -x dcm3500オペランドで指定しているホスト名の設定が異なっています。

unt1のpdsysの2行目の定義が，unt2のpdsysにはありません。

unt2のpdsysの5行目の定義が，unt1のpdsysにはありません。

(9)　使用例

運用中のHiRDB/パラレルサーバ（ユニット1，ユニット2の構成）のシステム定義を変更します。変更するHiRDBシステム定義ファイルはユニット1のpdsvrcとします。

ユニット1とユニット2の$PDDIR/conf下と$PDCONFPATH下にサブディレクトリ「chk」を作成します。

各ユニットで，$PDDIR/conf下のpdutsysを$PDDIR/conf/chk/にコピーします。

各ユニットで，$PDCONFPATH下のHiRDBシステム定義ファイルを$PDCONFPATH/chk/にコピーします。

ユニット1の$PDCONFPATH/chk/pdsvrcの定義内容を変更します。

「pdconfchk -d chk」を実行します。※

内容に問題がなければ，pdstopコマンドでHiRDBを正常終了又は計画停止します。ただし，計画停止の場合は，変更できない定義があるため注意してください。

pdlogunldコマンドで，「アンロード待ち状態」のシステムログファイルをアンロードします。

4.で変更したHiRDBシステム定義ファイルを$PDCONFPATH下にコピーします。

pdstartコマンドでHiRDBを正常開始します。

注※

「pdconfchk -d chk」実行時に，チェックするHiRDBシステム定義ファイルの場所は次のようになります。

2.27　pdcspool（トラブルシュート情報及び作業用一時ファイルの削除）

2.27.1　pdcspoolの形式と規則

(1)　機能

HiRDBが作成した，次のファイルを削除します。

スプール（$PDDIR/spoolディレクトリ）下のトラブルシュート情報

作業用一時ファイル格納ディレクトリ（$PDDIR/tmpディレクトリ）下の作業用一時ファイル

システム定義のpd_tmp_directoryオペランドに指定したディレクトリ下のファイル

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdcspool 〔-i〕〔-d 日数〕〔-k 種別〕

(4)　オプション

(a)　-i

トラブルシュート情報が格納された各ファイルを削除するときに，標準出力にプロンプトを返し，削除するかどうかを確認します（作業用一時ファイルの場合はプロンプトを返しません）。プロンプトにｙを応答すると，該当ファイルが削除されます。省略した場合は，プロンプトを出力しないで該当ファイルを削除し，削除したファイル名が標準出力に出力されます。

(b)　-d 日数　〜＜符号なし整数＞((0〜24855))≪1≫

pdcspoolコマンドを実行した時刻から換算して「24時間×指定した日数」以前に作成されたファイルを削除対象とします。例えば，日数に10を指定した場合，240時間前の時点より，以前に作成されたファイルが削除対象となります。

0を指定した場合は，スプール下のトラブルシュート情報，及び作業用一時ファイル格納ディレクトリ下の作業用一時ファイルをすべて削除対象とします。ただし，0を指定した場合でも，次に示すファイルについては，ファイルの更新日付がこのコマンドの起動時刻から3600秒以内のものは削除対象となりません。ファイルが残っている場合は，3600秒後に再度コマンドを実行してください。

$PDDIR/tmpディレクトリ下の作業用一時ファイル

省略した場合は，24時間以前に作成されたスプール下のトラブルシュート情報，及び作業用一時ファイル格納ディレクトリ下の作業用一時ファイルが削除対象となります。

pdcopy，pdrstrなど，処理が長時間になるコマンドを定期的に実行するような運用の場合，実行完了に要する時間以上の値を指定してください。

(c)　-k 種別

削除するトラブルシュート情報の範囲を指定します。

省略した場合，アクセスパス情報以外のトラブルシュート情報が削除されます。

all：

アクセスパス情報を含め，すべてのトラブルシュート情報及び作業用一時ファイルが削除されます。ただし，システム定義のpd_tmp_directoryオペランドの指定を省略した場合，及び指定したディレクトリが/tmp，/usr/tmp，又は/var/tmpの場合，削除されません。

dump：

HiRDBが内部的に取得するファイル（デッドロック・タイムアウト情報ファイル，及びアクセスパス情報ファイルを除くファイル）が削除されます。

(5)　規則

pdcspoolコマンドは，HiRDBの稼働に関係なく実行できます。

pdcspoolコマンドは，各サーバマシンで実行してください。

(6)　注意事項

pdcspoolコマンドの結果は，エラーメッセージの有無，及びコマンド実行時のリターンコードで確認できます。

コマンド実行時のリターンコードを次に示します。

0：正常終了

4：正常終了（削除対象となるファイルがありません）

トラブルシュート情報及び作業用一時ファイルの削除を行いませんでした。このため，対処は必要ありません。

12：異常終了（オプション指定不正など）

トラブルシュート情報及び作業用一時ファイルの削除を行いませんでした。メッセージに従って対処した後，再度コマンドを実行してください。

HiRDB管理者以外のユーザが実行したコマンド又はユティリティによって，出力されたトラブルシュート情報ファイルは削除されないことがあります。この場合，トラブルシュート情報ファイルの削除権限を持つユーザがOSのrmコマンドなどでファイルを削除してください。このとき，作業用一時ファイル格納ディレクトリ（$PDDIR/tmpディレクトリ）下の次のディレクトリ及びファイルは削除しないでください。

home

pdommenv

ファイル名が"CMb"で始まるファイル

環境変数TMPDIRが設定されている場合，作業用一時ファイルの出力先は$PDDIR/tmpディレクトリではなく，環境変数に設定されたディレクトリになります。環境変数TMPDIRに設定されたディレクトリ下の作業用一時ファイルはpdcspoolコマンドでの削除対象とはなりません。また，パイプファイル(FIFO)も削除しません。このため，これらのファイルは，OSのrmコマンドなどで直接削除する必要があります。

pdcspoolコマンドは，HiRDBが次のディレクトリ下に作成したすべてのファイルを削除の対象とします。

そのため，該当ディレクトリ下にファイルを作成した場合，一緒に削除されます。削除対象ディレクトリの一覧を，次に示します。

ディレクトリ名

出力ファイルの内容

-kオプション

備考

上位ディレクトリ

下位ディレクトリ

all

dump

省略時

$PDDIR/tmp

（作業用一時ファイル格納ディレクトリ）

−

作業用一時ファイル

○

○

○

-dオプションに0を指定した場合，このコマンドの起動時刻から3600秒以上経過した更新日付のファイルが削除されます。

ユニット制御情報定義のpd_tmp_directoryオペランドに指定したディレクトリ

−

作業用一時ファイル

○

○

○

$PDDIR/spool

（トラブルシュート情報）

pdsqldump

アクセスパス情報

○

×

×

クライアント環境定義PDVWOPTMODEに1以上を指定して，SQL文を実行した場合に出力されます。

pdlckinf

デッドロック・タイムアウト情報

○

×

○

排他制御でエラーが発生したときに出力されます。

排他資源管理テーブル情報

○

×

○

排他資源管理テーブル不足が発生したときに出力されます。

デッドロックSQL情報

○

×

○

デッドロックが発生したときに出力されます。

save

退避コアファイルなど

○

○

○

プロセスが異常終了したときに出力されます。

pdshmdump

共用メモリダンプファイル

○

○

○

プロセス又はユニットが異常終了したときに出力されます。

pdsysdump(1,2)

簡易ダンプファイル

○

○

○

なし。

pdsdsdump(1,2)

○

○

○

HiRDB/シングルサーバの場合，出力されます。

pdfesdump(1,2)

pddicdump(1,2)

pdbesdump(1,2)

○

○

○

HiRDB/パラレルサーバの場合，出力されます。

pdjnlinf

システムログファイルの状態情報ファイル

○

×

○

pdsnap.で始まるファイルだけ削除されます。

pdtrninf

回復したトランザクションの情報ファイル

○

×

○

リアルタイムSANレプリケーションを使用している場合にだけ出力されます。

tmp

作業用一時ファイル

○

○

○

なし。

（凡例）

○：削除されます。

×：削除されません。

−：該当しません。

ただし，次のディレクトリ下のディレクトリ，又はファイルは削除されません。

上位ディレクトリ

削除対象外のディレクトリ名，又はファイル名

出力ファイルの説明

$PDDIR/spool

（トラブルシュート情報）

パイプファイル

任意のファイル名称を持つすべてのパイプファイル

$PDDIR/tmp

（作業用一時ファイル格納ディレクトリ）

パイプファイル

任意のファイル名称を持つすべてのパイプファイル

home

HiRDBが起動するプロセスのカレントワーキングディレクトリ

pdommenv

共有メモリ情報ファイル

ファイル名称が"CMb"で始まるファイル

pdbuflsコマンドの差分情報ファイル

ユニット制御情報定義のpd_tmp_directoryオペランドに指定したディレクトリ※

パイプファイル

任意のファイル名称を持つすべてのパイプファイル

home

HiRDBが起動するプロセスのカレントワーキングディレクトリ

pdommenv

共有メモリ情報ファイル

ファイル名称が"CMb"で始まるファイル

pdbuflsコマンドの差分情報ファイル

注※

pd_tmp_directoryオペランドで指定した内容が次の場合には，削除対象となりません。

/tmp

/usr/tmp

/var/tmp

2.28　pddbchg（レプリカRDエリアのレプリカステータスの切り替え）

2.28.1　pddbchgの形式と規則

(1)　機能

レプリカRDエリアのレプリカステータスを切り替えます（サブRDエリアをカレントRDエリアに変更します）。

pddbchgコマンドは，HiRDB Staticizer Optionを組み込んでいる場合に使用できます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pddbchg -q 世代番号 -r ｛RDエリア名〔，RDエリア名〕…｜ALL｝ 〔-w〕〔-W 実行監視時間〕

(4)　オプション

(a)　-q 世代番号　〜＜符号なし整数＞((0〜10))

カレントRDエリアに変更するRDエリアの，世代番号を指定します。

(b)　-r ｛RDエリア名〔，RDエリア名〕…｜ALL｝

RDエリア名　〜＜識別子＞((1〜30))

カレントRDエリアに変更するRDエリアの，オリジナルRDエリア名を指定します。指定できるRDエリアは，ユーザ用RDエリア及びユーザLOB用RDエリアです。

ALL

-qオプションで指定した世代番号のすべてのレプリカRDエリアを，カレントRDエリアに変更します。

＜規則＞

RDエリアを指定する場合の規則については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

(c)　-w

指定したRDエリアに対して排他が掛かっている場合，システム定義のpd_lck_wait_timeoutオペランドの指定値の範囲内で，排他が解除されるまで待つときに指定します。

このオプションを省略した場合，指定したRDエリアに対してほかのトランザクションが排他を掛けていると，エラー終了します。

(d)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pddbchgコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

pddbchgコマンドは，HiRDBが稼働中のときだけ実行できます。

pddbchgコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pddbchgコマンドを実行する場合，データディクショナリ用RDエリアが次のどちらかの状態でなければなりません。

オープン状態，かつ閉塞解除状態

オープン状態，かつpdholdコマンドによる閉塞状態

pddbchgコマンドの実行では，現在のカレントRDエリアと新規のカレントRDエリアとの状態はチェックされないため，RDエリアの状態に関係なくカレントRDエリアを変更できます。

pddbchgコマンドは，更新可能なオンライン再編成を使用しているオリジナルRDエリアに対しては実行できません。

共用RDエリアに対してpddbchgコマンドを実行した場合，全バックエンドサーバに排他を掛けます。このため，該当するRDエリアへのアクセスを複数同時に実行している場合，グローバルデッドロックが発生し，タイムアウトする可能性があります。グローバルデッドロックが発生した場合，再度pddbchgコマンドを実行してください。

(6)　注意事項

pddbchgコマンドの結果は，pddblsコマンドで確認できます。

pddbchgコマンドの実行中は次に示すように排他が掛かります。

pddbchgコマンドの実行中はインナレプリカ構成資源に排他が掛かるため，インナレプリカの構成を変更（カレントRDエリアの変更，レプリカの定義や削除，又は更新可能なオンライン再編成など）するコマンドは排他待ち状態になります。

pddbchgコマンドの実行中はレプリカグループ構成資源に排他が掛かるため，カレント変更するRDエリアのインナレプリカグループにアクセスするUAPは排他待ち状態になります。

pddbchgコマンド実行時の排他制御の詳細については，「運用コマンドの排他制御モード」を参照してください。

pddbchgコマンド，トランザクション，及びユティリティ間の排他待ちの関係を次に示します。

ほかのトランザクション，及びユティリティがカレントRDエリアにアクセスしている場合の，pddbchgコマンドの処理

＜-wオプションを指定したとき＞

システム定義のpd_lck_wait_timeoutオペランドの指定値の範囲内で，ほかのトランザクションが終了するまで，pddbchgコマンドはすべての排他資源に対して待ち状態となります。

＜-wオプションを指定しないとき＞

ディクショナリ表，指定したオリジナルRDエリアがあるサーバ，新規のカレントRDエリア，及び現在のカレントRDエリアに，ほかのトランザクションがアクセスしている場合，pddbchgコマンドはエラー終了します。

pddbchgコマンドが，カレントRDエリアに対してアクセスしている場合の，ほかのトランザクション，及びユティリティの処理

システム定義のpd_lck_wait_timeoutオペランド，及びクライアント環境定義のPDCWAITTIMEの指定値の範囲内で，pddbchkコマンドの処理が終了するまで，ほかのトランザクション，及びユティリティは待ち状態となります。

pddbchgコマンドを実行した場合，参照及び更新トランザクションとの間でデッドロックが発生する場合があります。システム定義にpd_deadlock_priority_use=Yを指定し，更にpd_command_deadlock_priorityオペランドにデッドロックプライオリティ値を指定することで，デッドロック発生時に参照及び更新トランザクションと運用コマンドのどちらを優先させるかを選択できます。

pddbchgコマンドの処理中にエラーが発生した場合，処理中のRDエリアがあるサーバでの処理を，サーバ単位に無効にします。このとき，pddbchgコマンドは，別のサーバの処理を続行します。

pddbchgコマンドのリターンコードを次に示します。

0：正常終了

4：警告終了（一部のRDエリアの処理がエラー終了）

8：異常終了

12：異常終了（エラーメッセージを表示できない事象が発生）

12の場合，シングルサーバ又はディクショナリサーバがあるホストのsyslogfile中のエラーメッセージを参照して，エラーの要因を取り除いた後，再度コマンドを実行してください。syslogfile中にエラーメッセージが出力されていない場合は保守員に連絡してください。

2.29　pddbfrz（ユーザLOB用RDエリアの満杯HiRDBファイルの更新凍結）

2.29.1　pddbfrzの形式と規則

(1)　機能

ユーザLOB用RDエリアを構成するHiRDBファイルで，データが満杯（ファイルの最終ページまで使用中）となったHiRDBファイルを，更新及び削除できない状態にします。これを更新凍結状態といいます。更新凍結状態となったHiRDBファイルに格納されているLOBデータは，更新及び削除ができません。

このコマンドは，pdcopy以外の方法でバックアップを取得する場合に使用してください。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pddbfrz 〔-d〕 -r ｛RDエリア名〔，RDエリア名〕…｜ALL｝ 〔-q 世代番号〕〔-W 実行監視時間〕

(4)　オプション

(a)　-d

HiRDBファイルの更新凍結状態を解除する場合に指定します。

省略した場合は，データが満杯となっているHiRDBファイルを更新凍結状態にします。ただし，RDエリアを構成する先頭のHiRDBファイルは更新凍結状態にできません。

(b)　-r ｛RDエリア名〔，RDエリア名〕…｜ALL｝

RDエリア名　〜＜識別子＞((1〜30))

更新凍結状態にするRDエリア名，又は更新凍結状態を解除するRDエリア名を指定します。RDエリア名には，ユーザLOB用RDエリアだけ指定できます。

ALL

すべてのユーザLOB用RDエリアを更新凍結状態にします。-dオプション指定時は，すべてのユーザLOB用RDエリアの更新凍結状態を解除します。

ただし，-qオプション指定時は同じ世代のユーザLOB用RDエリアを対象とします。

＜規則＞

RDエリアを指定する場合の規則については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

ユーザLOB用RDエリア以外のRDエリア，プラグインインデクスが格納されているユーザLOB用RDエリア，及び未使用のユーザLOB用RDエリアを指定した場合はエラーとなります。

インナレプリカ機能を使用している場合は，オリジナルRDエリア及びレプリカRDエリアも指定できます。

(c)　-q 世代番号　〜＜符号なし整数＞((0〜10))

レプリカRDエリアの世代番号を指定します。

このオプションを指定した場合，-rオプションにはオリジナルRDエリアを指定してください。この場合，レプリカRDエリアがすべて削除されたオリジナルRDエリア，又は通常のRDエリア（レプリカRDエリアがないRDエリア）を指定したときはエラーとなります。

(d)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pddbfrzコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

pddbfrzコマンドは，HiRDBが稼働中のときだけ実行できます。

pddbfrzコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pddbfrzコマンドを実行する場合，ユーザLOB用RDエリアが次のどちらかの状態でなければなりません。

オープン状態，かつ閉塞解除状態

オープン状態，かつpdholdコマンドによる閉塞状態

pddbfrzコマンドを実行すると，RDエリアに対して排他モードで排他を掛けます。そのため，ほかのトランザクションがアクセスしているRDエリアに対してpddbfrzコマンドを実行すると，そのトランザクションが終了するまでpddbfrzコマンドは待ち状態となります。

RDエリアを構成する先頭のHiRDBファイルには，HiRDBの管理レコードがあるため，pddbfrzコマンドを実行しても更新凍結状態にはなりません。

更新凍結状態にできるHiRDBファイルは，コマンド実行時にデータが満杯となっているファイルだけです。そのため，コマンド実行時に満杯ではなかったHiRDBファイルがその後のデータ登録などで満杯になったとしても，更新凍結状態に切り替わることはありません。

pddbfrzコマンドは，更新可能なオンライン再編成を使用しているRDエリアに対しては実行できません。

(6)　注意事項

pddbfrzコマンドの結果は，pddbstで確認できます。

更新凍結状態のHiRDBファイルのデータを更新したい場合，又はpdrorgの再編成などでRDエリアを更新する必要がある場合，pddbfrz -dコマンドで更新凍結状態を解除してください。なお，RDエリアの更新後は，RDエリアのすべてのHiRDBファイルのバックアップを取得し直す必要があります。

pddbfrzコマンドのリターンコードと基本的な対処方法を次に示します。

0以外の場合，一部のユーザLOB用RDエリアのHiRDBファイルが更新凍結状態になっていることがあります。その状態では業務を継続できないおそれがあるため，pddbfrzコマンドに指定したRDエリアをpddbfrzコマンド（-dオプション指定）で更新凍結状態を解除してください。

0：正常終了

4：警告終了

一部のRDエリアの処理がエラー終了しました。

8：異常終了

一部のRDエリアの処理がエラー終了していることがあります。

12：異常終了

エラーメッセージを表示できない事象が発生しました。

一部のRDエリアの処理がエラー終了していることがあります。シングルサーバ又はディクショナリサーバがあるホストのsyslogfile中のエラーメッセージを参照して，エラーの要因を取り除いた後，再度コマンドを実行してください。syslogfile中にエラーメッセージが出力されていない場合は保守員に連絡してください。

2.30　pddbls（RDエリアの状態表示）

2.30.1　pddblsの形式と規則

(1)　機能

RDエリアの状態を表示します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pddbls ｛｛-r RDエリア名〔，RDエリア名〕…｜-r ALL｝

　　　　　　　　〔｛-l｜-a｝〕 〔｛-b｜-o｝〕 〔-x 〔-y〕〕〔-M〕〔-D〕〔-T〕〔-P〕〔-W 実行監視時間〕

　　　　　　｜｛-q 世代番号｜-C｝ 〔｛-l｜-a｝〕 〔-x 〔-y〕〕〔-M〕〔-D〕〔-P〕〔-W 実行監視時間〕｝

(b)　HiRDB/パラレルサーバの場合

　pddbls ｛｛-r RDエリア名〔，RDエリア名〕…｜-r ALL

　　　　　　　　 ｜-s サーバ名〔，サーバ名〕…｝

　　　　　　　　　〔｛-l｜-a｝〕 〔｛-b｜-o｝〕 〔-m〕 〔-x 〔-y〕〔-M〕〔-D〕〔-T〕〔-P〕〔-W 実行監視時間〕〕

　　　　　　｜｛-q 世代番号｜-C｝ 〔-｛l｜a｝〕 〔-m〕 〔-x 〔-y〕〕〔-M〕〔-D〕〔-P〕〔-W 実行監視時間〕｝

(4)　オプション

(a)　-r RDエリア名〔，RDエリア名〕…　〜＜識別子＞((1〜30))

表示するRDエリア名を指定します。

(b)　-r ALL

すべてのRDエリアに関する情報を表示します。

＜規則＞

RDエリアを指定する場合の規則については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

(c)　-s サーバ名〔，サーバ名〕…　〜＜識別子＞((1〜8))

サーバ内のすべてのRDエリアに関する情報を表示したい場合，表示するサーバ名を指定します。指定したサーバのすべてのRDエリアに関する情報を表示します。

指定できるサーバ数は最大128個です。129個以上指定すると，129個目以降のサーバは無視されます。

(d)　-｛l｜a｝

-l：

RDエリアの状態を表示します。

-a：

RDエリアに関するすべての情報を表示します。ただし，次に示す情報は表示されません。

共用RDエリアに関する情報

インメモリデータバッファに関する情報

共用RDエリアに関する情報を表示する場合は-mオプションを，インメモリデータバッファに関する情報を表示する場合は-M及び-Dオプションを指定してください。

また，-mオプションを指定した場合，全バックエンドサーバの共用RDエリア情報が表示されます。ただし，共用RDエリア内のセグメント使用情報については，更新可能バックエンドサーバだけが表示されます。

(e)　-b

閉塞状態のRDエリアの情報だけを表示します。サーバ名を指定した場合，そのサーバの閉塞状態のRDエリアについてだけ，情報を表示します。省略した場合，指定したすべてのRDエリアの情報を表示します。

(f)　-o

指定したRDエリアと同じオリジナルRDエリアを持つすべてのRDエリアの状態を表示します。

このオプションは，-bオプションとは同時に指定できません。また，-r ALL，又は-s サーバ名を指定する場合は，このオプションを指定してもしなくても，表示される情報は変わりません。

(g)　-m

共用RDエリアの情報を表示する場合に指定します。

-rオプションに共用RDエリアを指定し，かつ-mオプションを指定した場合，全バックエンドサーバの該当するRDエリアのRDエリア情報と共用RDエリア情報を表示します。

(h)　-x

DAT形式で情報を表示する場合に指定します。

(i)　-y

-xオプション指定時に，ヘッダを付ける場合に指定します。

(j)　-M

このオプションはインメモリデータ処理に関するオプションです。

-rオプションで指定したインメモリRDエリアに割り当てられたインメモリデータバッファの状態を表示します。

(k)　-D

このオプションはインメモリデータ処理に関するオプションです。

-rオプションで指定したインメモリRDエリアについて，次に示す情報を表示します。

インメモリ化した時刻

インメモリデータバッファとの同期を取った時刻

(l)　-T

一時表用RDエリアの属性を表示する場合に指定します。

(m)　-q 世代番号

指定した世代番号のすべてのRDエリアの状態を表示します。このオプションは，インナレプリカ機能を使用している環境で，レプリカRDエリアが定義されているRDエリアの情報を表示したい場合に指定します。

このオプションは，-b，-o，-Tオプションとは同時に指定できません。

(n)　-C

すべてのカレントRDエリアの状態を表示します。このオプションは，インナレプリカ機能を使用している環境で，レプリカRDエリアが定義されているRDエリアの情報を表示したい場合に指定します。

このオプションは，-b，-o，-Tオプションとは同時に指定できません。

(o)　-P

pdchpathfコマンドの実行時刻を表示します。DAT形式では表示しません。

(p)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pddblsコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

pddblsコマンドは，HiRDBが稼働中のときだけ実行できます。

pddblsコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

RDエリア名に，ユーザ用RDエリア又はユーザLOB用RDエリアを指定する場合は，データディクショナリ用RDエリアが次のどちらかの状態でなければなりません。

オープン状態，かつ閉塞解除状態

オープン状態，pdholdコマンドによる閉塞状態

(6)　注意事項

pddblsコマンドのリターンコードを次に示します。

0：正常終了

4：警告終了

8：異常終了

12：異常終了（エラーメッセージを表示できない事象が発生）

12の場合，シングルサーバ又はディクショナリサーバがあるホストのsyslogfile中のエラーメッセージを参照して，エラーの要因を取り除いた後，再度コマンドを実行してください。syslogfile中にエラーメッセージが出力されていない場合は保守員に連絡してください。

(7)　出力形式

(a)　-x及び-yオプション省略時

 STATE OF RDAREA
 RDAREA ID     STATUS  [SERVER] TYPE [ORIGINAL-RDAREA] [ORIGINAL-ID]    [GENERATION-NUMBER]
               OPNMODE [SHARED][MEMORY-STATUS]        [REPLICA-STATUS] [REPLICA-COUNTER]
 aa...a bb...b cc...c  dd...d  eeee  kk...k            ll...l           mm
               jj...j  ppp     qq...q                  n                oo
  [SEGMENT   ff...f/gg...g]
  [UNABLE TO DISPLAY CODE=hh]
     :    :   :
  [NOT FOUND ii...i=aa...a]
  [RDAREA NOT FOUND]
  [NO REPLICA DEFINED ii...i=aa...a]
  [NO SPECIFIED GENERATION]
  [DB-STAY-TIME  rr...r]
  [DB-SYNC-TIME  ss...s]
  [RDAREA_FOR_TEMPORARY_TABLE = tt...t]
  [PATH CHANGE = vv...v]

注

kk...k，ll...l，mm，n，oo，[NO REPLICA DEFINED ii...i=aa...a]，及び[NO SPECIFIED GENERATION]は，インナレプリカ機能を使用している環境の場合に表示されます。それ以外の場合は表示されません。

［説明］

aa...a：

RDエリア名（30文字以内）

bb...b：

RDエリア番号（10進数11けた）

cc...c：

RDエリアの状態（17文字以内）。RDエリアの状態を次に示します。

RDエリアの状態

意味

セグメント情報

CLOSE

クローズ

△

CLOSE HOLD

クローズ，障害閉塞中

−

CLOSE HOLD（RIS E）

クローズ，障害閉塞中（障害によるログ適用不可能状態）

−

CLOSE HOLD（RIS L）

クローズ，障害閉塞中（ログレスモードのUAP，ユティリティの実行によるログ適用不可能状態）

−

CLOSE HOLD（RIS M）

クローズ，障害閉塞中（pdmodによるログ適用不可能状態）

−

CLOSE HOLD（INQ）

クローズ，参照可能閉塞中

−

CLOSE HOLD（CMD）

クローズ，コマンド閉塞中

−

CLOSE HOLD（BU）

クローズ，更新可能バックアップ閉塞中

○

CLOSE HOLD（BU I）

クローズ，参照可能バックアップ閉塞中

○

CLOSE HOLD（BU W）

クローズ，更新可能バックアップ閉塞中（WAITモード）

○

CLOSE HOLD（BU IW）

クローズ，参照可能バックアップ閉塞中（更新WAITモード）

○

CLOSE HOLD（SYNC）

クローズ，同期化閉塞中

−

CLOSE HOLD（ORG）

クローズ，オンライン再編成閉塞中

−

CLOSE ACCEPT-HOLD

クローズ，pdholdコマンド受け付け状態

−

HOLD

障害閉塞中

−

HOLD（INQ）

参照可能閉塞中

○※

HOLD（CMD）

コマンド閉塞中

○※

HOLD（BU）

更新可能バックアップ閉塞中

○

HOLD（BU I）

参照可能バックアップ閉塞中

○

HOLD（BU W）

更新可能バックアップ閉塞中（WAITモード）

○

HOLD（BU IW）

参照可能バックアップ閉塞中（更新WAITモード）

○

HOLD（SYNC）

同期化閉塞中

−

HOLD（ORG）

オンライン再編成閉塞中

○

HOLD（RIS E）

障害閉塞中（障害によるログ適用不可能状態）

−

HOLD（RIS L）

障害閉塞中（ログレスモードのUAP，ユティリティの実行によるログ適用不可能状態）

−

HOLD（RIS M）

障害閉塞中（pdmodによるログ適用不可能状態）

−

ACCEPT-HOLD

pdholdコマンド受け付け状態

○※

OPEN

オープン

○

（凡例）

○：表示します。

△：RDエリアのオープン契機がDEFER又はSCHEDULEの場合に表示されます。

−：表示しません。

注※

クローズ処理中は，セグメント情報を表示しません。

dd...d：

HiRDB/パラレルサーバの場合，サーバ名（8文字以内）

eeee ：

RDエリアの種別

MAST：

マスタディレクトリ用RDエリア

DDIR：

データディレクトリ用RDエリア

DDIC：

データディクショナリ用RDエリア

DLOB：

データディクショナリLOB用RDエリア

USER：

ユーザ用RDエリア

ULOB：

ユーザLOB用RDエリア

LIST：

リスト用RDエリア

RGST：

レジストリ用RDエリア

RLOB：

レジストリLOB用RDエリア

ff...f：

RDエリア内の未使用セグメント数（10進数11けた）

LOB用RDエリアの場合，次のセグメントが未使用セグメント数に含まれますが，同期点に達するまで再使用はできません。同期点に達した後は再使用できるようになります。

DELETE文で削除されたBLOB型のデータが格納されていたセグメント

UPDATE文で更新されたBLOB型のデータについて，更新前のデータが格納されていたセグメント

DROP PROCEDURE，DROP SCHEMAなどの，手続き更新によって削除されたBLOB型のディクショナリデータが格納されていたセグメント

gg...g：

RDエリア内の全セグメント数（10進数11けた）

hh ：

リターンコード。リターンコードを次に示します。

リターンコード

意味

対策方法

01

該当するRDエリアが，情報を表示できない状態です。RDエリアの状態については，cc...cを参照してください。

該当しません。

02

該当するRDエリアは，ほかのトランザクションで占有されているため，情報を表示できない状態です。

占有しているトランザクションの実行完了後に，再度実行してください。

03

該当するRDエリアには，グローバルバッファが割り当てられていません。

グローバルバッファを割り当てて，再度実行してください。

04

HiRDBファイルアクセスで異常が発生しました。

対応するエラーメッセージが出力されるので，そのメッセージから対策方法を検討してください。

05

排他処理でエラーが発生しました。

101

RDエリアの種別が不正です。

該当するRDエリアに対して誤った運用をしていないか確認してください。誤りがない場合には，保守員に連絡してください。

ii...i：

RDエリア指定の場合，「RDAREA」と表示されます（6文字以内）。

サーバ指定の場合，「SERVER」と表示されます。

jj...j：

HiRDBファイルシステム領域のオープン契機ユーザ指定値。システム共通定義，データベース初期設定ユティリティ，又はデータベース構成変更ユティリティで指定したHiRDBファイルシステム領域のオープン契機（INITIAL，DEFER，又はSCHEDULEのどれか）を表示します。なお，系切り替え機能を使用している場合は，実行系でコマンドを実行したときにオープン契機を表示します。ただし，次のどれかの系切り替え機能を使用している場合，系切り替えが発生するとオープン契機が変更されることがあります。

高速系切り替え機能

1：1スタンバイレス型系切り替え機能

影響分散スタンバイレス型系切り替え機能

詳細は，マニュアル「HiRDB システム運用ガイド」を参照してください。

kk...k：

オリジナルRDエリアのRDエリア名（30文字以内）

ll...l：

オリジナルRDエリアのRDエリア番号（10進数8けた）

mm：

世代番号（0〜10）

n：

レプリカステータス（C：カレント，S：サブ）

oo：

レプリカカウンタ（1〜10）

オリジナルRDエリアの場合に表示されます。

ppp：

共用RDエリア情報

SUP：共用RDエリア（更新可能バックエンドサーバ）

SRD：共用RDエリア（参照専用バックエンドサーバ）

NON：共用RDエリアではないRDエリア

-mオプションを省略した場合，又はHiRDB/シングルサーバの場合は，ヘッダ，及び共用RDエリア情報は表示されません。

qq...q：

インメモリデータバッファの状態

表示される情報

説明

Y (SYNC)

このRDエリアはインメモリRDエリアになっています。

インメモリデータバッファとインメモリRDエリアの同期が取れている状態（DB同期状態）です。

Y (ASYNC)

インメモリデータバッファとインメモリRDエリアの同期が取れていない状態（DB非同期状態）です。

Y (OBST-MEM)

インメモリデータバッファに障害が発生している状態（バッファ障害状態）です。

Y (OBST-DB)

インメモリRDエリアに障害が発生している状態（RDエリア障害状態）です。

Y (OBST-ALL)

インメモリデータバッファとRDエリアの両方に障害が発生している状態（バッファ障害状態かつRDエリア障害状態）です。

N

このRDエリアはインメモリRDエリアではありません。

-Mオプションを省略した場合は，この情報は表示されません（ヘッダも表示されません）。

rr...r：

RDエリアをインメモリ化した時刻

最後にインメモリ化した時刻を，年（西暦4けた）/月/日 時：分：秒の形式で表示します。インメモリRDエリアがない場合，又は時刻を表示できない場合は，****/**/** **:**:**が表示されます。

-Dオプションを省略した場合は，この情報は表示されません（ヘッダも表示されません）。

ss...s：

インメモリデータバッファとインメモリRDエリアの同期を取った時刻

最後に同期を取った時刻を，年（西暦4けた）/月/日 時：分：秒の形式で表示します。一度も同期を取っていない場合，又は時刻を表示できない場合は，****/**/** **:**:**が表示されます。

-Dオプションを省略した場合は，この情報は表示されません（ヘッダも表示されません）。

tt...t：

一時表用RDエリアの属性

OCCUPIED：特定SQLセッション占有属性の一時表用RDエリア

SHARED：SQLセッション間共有属性の一時表用RDエリア

NONE：上記以外

uu...u：

システムで使用する情報

注

指定したRDエリアがない場合は，「NOT FOUND RDAREA=」が表示されます。

指定したサーバがない場合は，「NOT FOUND SERVER=」が表示されます。

-bオプションを指定したときに閉塞状態のRDエリアがない場合，又は-sオプションで指定したサーバにRDエリアがない場合は，「RDAREA NOT FOUND」が表示されます。

-aを指定したときに情報が表示されない場合は，「UNABLE TO DISPLAY CODE=hh」が表示されます。

-q又は-Cオプション指定時にレプリカRDエリアが定義されていない場合，及び-oオプション指定時に通常のRDエリア（レプリカRDエリアを定義していないRDエリア）を指定した場合に，[NO REPLICA DEFINED ii...i=aa...a]が表示されます。なお，-oオプション指定時には，RDエリア名を同時に表示します。

-qオプションに指定した世代番号のレプリカRDエリアがない場合，[NO SPECIFIED GENERATION]が表示されます。

vv...v：

pdchpathfコマンドの実行時刻

YYYY/MM/DD hh:mm:ssの形式で表示します。

pdchpathfコマンドを実行していない場合，又はpdchpathfコマンド実行後にpdchpathnコマンドを実行した場合，"NO"と表示します。

(b)　DAT形式での出力形式（-x及び-yオプション指定時）

"RDAREA","ID","STATUS","UNUSED_SEGMENT","TOTAL_SEGMENT","SERVER","TYPE","OPNMODE","ORIGINAL-RDAREA",
"ORIGINAL-ID","GENERATION-NUMBER","REPLICA-STATUS","REPLICA-COUNTER","SHARED","MEMORY-STATUS",
"DB-STAY-TIME","DB-SYNC-TIME","RDAREA_FOR_TEMPORARY_TABLE","DATAMODEL" [CR]
"aa...a",bb...b,"cc...c",ff...f,gg...g,"dd...d","eeee","jj...j","kk...k",
ll...l,mm,"n",oo,"ppp","qq...q","rr...r","ss...s","tt...t","uu...u" [CR]

注

[CR]は，改行を表します。

［DAT形式での出力規則］

DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

1行に1RDエリアの情報を表示します。

オプションの指定，インナレプリカ使用有無，サーバ種別などによって取得できない情報については，空要素として表示します。

-aオプション指定時にセグメント情報を取得できない状態の場合，RDエリア内の未使用セグメント数に-1，RDエリア内の全セグメント数にリターンコードを表示します。

DAT形式で表示する場合，次のエラーメッセージは出力しません。

[NOT FOUND ii...i=aa...a]

[RDAREA NOT FOUND]

[NO REPLICA DEFINED ii...i=aa...a]

[NO SPECIFIED GENERATION]

2.31　pddefrev（定義系SQLの生成）

2.31.1　pddefrevの形式と規則

(1)　機能

HiRDBシステム内に定義してある表，インデクス，ビュー表，ストアドプロシジャ，及びトリガの定義系SQLを生成します。

生成された定義系SQLは，データベース定義ユティリティの入力ファイルとして利用できます。pddefrevコマンドは，内部的にディクショナリ搬出入ユティリティ（pdexp）を起動して定義系SQLを生成します。

(2)　実行者

DBA権限を持つユーザ，又は表の所有者が実行できます。

(3)　形式

　pddefrev -f 制御文ファイル名

　　　　　 -o 定義系SQL出力ファイル名

　　　　　〔-w ワークディレクトリ名〕

　　　　　〔-W 実行監視時間〕

(4)　オプション

(a)　-f 制御文ファイル名　〜＜パス名＞((1023バイト以内))

定義系SQLを生成したい表やストアドプロシジャを指定した制御文ファイルを指定します。制御文ファイルの内容については，「ディクショナリ搬出入ユティリティ（pdexp）」を参照してください。

(b)　-o 定義系SQL出力ファイル名　〜＜パス名＞((1023バイト以内))

生成した定義系SQLを出力するファイルの名称を，絶対パス名で指定します。指定したファイルが既にある場合は上書きし，ない場合は新規に作成します。

(c)　-w ワークディレクトリ名　〜＜パス名＞

pddefrevコマンドの内部でディクショナリの搬出をするときに作成する搬出ファイルを，一時的に格納するディレクトリを絶対パス名で指定します。省略した場合は，次に示すディレクトリにファイルを作成します。

-wオプションの指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIRの指定

あり

なし

あり

-wオプションに指定したディレクトリ

なし

pd_tmp_directoryに指定したディレクトリ

TMPDIRに指定したディレクトリ

/tmpディレクトリ

なお，作成される搬出ファイルの名称は次のようになります。

pddefrev.exp.HHMMSS

HHMMSSには，ローカル時刻が設定されます。

(d)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pddefrevコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

pddefrevコマンドは，HiRDBが稼働中のときだけ実行できます。

pddefrevコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pddefrevコマンドを実行する場合，定義系SQL出力ファイルとワークディレクトリのアクセス権限を，HiRDB管理者に対して与えておく必要があります。

(6)　注意事項

pddefrevコマンドの結果は，コマンド実行時のリターンコード，又はエラーメッセージの有無で確認できます。pddefrevコマンド実行時のリターンコードは，0の場合は正常終了，8又は12の場合は異常終了となります。

pddefrevコマンドは，同時に複数実行できません。また，ディクショナリ搬出入ユティリティとは同時に実行できません。

生成される定義系SQLを次に示します。

種別

インデクス定義

コメント定義

生成される定義系SQL

実表

あり

あり

CREATE TABLE

CREATE INDEX

COMMENT

なし

CREATE TABLE

CREATE INDEX

なし

あり

CREATE TABLE

COMMENT

なし

CREATE TABLE

ビュー表

−

あり

CREATE VIEW

COMMENT

なし

CREATE VIEW

ストアドプロシジャ

−

−

CREATE PROCEDURE

トリガ

−

−

CREATE TRIGGER

（凡例）−：該当しません。

定義系SQLの生成順序は，制御文ファイルでの指定順になります。

生成された定義系SQLには，データベース定義ユティリティの入力ファイルとして利用できるように，行の最後にセミコロン（；）が付きます。ただし，CREATE PROCEDURE及びCREATE TRIGGERについては，end_proc;が付きます。

次に示す表，手続き，及び関数の定義系SQLは生成されません。

抽象データ型を含む表定義（CREATE TABLE）

インデクス型を指定したインデクス定義（CREATE INDEX）

関数定義（CREATE FUNCTION，及びシステム定義スカラ関数）

手続きのパラメタのデータ型として抽象データ型を指定している手続き（CREATE PROCEDURE）

手続き定義の中から手続きを呼び出している手続き（CREATE PROCEDURE）

抽象データ型内で宣言されている手続き（CREATE TYPE）

手続き定義の中から関数定義（CREATE FUNCTION，及びシステム定義スカラ関数）を呼び出している手続き（CREATE PROCEDURE）

CREATE PROCEDUREを生成する場合，SQL最適化オプション及びSQL拡張最適化オプションの指定値は，10進数に変換された形式で生成されます。

生成される定義系SQLは，条件によって改行されます。改行条件については，「定義系SQLの生成についての規則」を参照してください。

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pddefrevの制御文ファイルには，BOMを持つファイルを使用できます。なお，pddefrevの制御文ファイルとしてBOMを持つファイルを使用しても，BOMは読み飛ばされます。また，pddefrevで出力されるファイルにはBOMは付きません。

文字集合UTF-16を指定したCHAR型の列を，キーレンジ分割又はマトリクス分割（境界値指定のキーレンジ分割）の分割キーとして指定した表の場合，分割キーの長さが列の定義長を超えるときは，その表の定義系SQLは生成できません。

DEFAULT句のON ROW EXISTS指定がある表の定義系SQLを生成する場合は，ON ROW EXISTS指定なしの表を生成します。

2.32　pddivinfgt（表の分割条件の取得及び出力）

2.32.1　pddivinfgtの形式と規則

(1)　機能

ディクショナリ表から表の分割条件を取得し，ファイルに出力します。

(2)　実行者

DBA権限を持つユーザ，又は表の所有者が実行できます。

(3)　形式

　pddivinfgt -t 〔認可識別子.〕表識別子

　　　　　　 -f 分割情報ファイル名

(4)　オプション

(a)　-t 〔認可識別子.〕表識別子

分割条件を取得したい表の名称を指定します。実表以外は指定できません。

認可識別子を省略した場合は，クライアント環境定義のPDUSERに指定した認可識別子を仮定します。

認可識別子，又は表識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。表識別子に空白が含まれる場合は，引用符（"）で囲んでください。

なお，sh（Bourneシェル），csh（Cシェル），及びksh（Kシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

(b)　-f 分割情報ファイル名　〜＜パス名＞（1023バイト以内）

取得した分割条件を出力する分割情報ファイルのファイル名を絶対パスで指定します。

(5)　規則

pddivinfgtコマンドは，HiRDBが稼働中のときだけ実行できます。

pddivinfgtコマンドは，任意のサーバマシン，又はHiRDBクライアントをインストールしているマシンで実行できます。

pddivinfgtコマンドを実行する前に，クライアント環境定義のPDHOST，PDNAMEPORT，及びPDUSERを設定しておく必要があります。

各クライアント環境定義については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

次の場合，出力内容は保証されません。

pddivinfgtコマンドを実行中にエラーが発生した場合

定義系SQLを実行中にpddivinfgtコマンドを実行した場合

pddivinfgtコマンドで出力するファイル名が重複する場合，ファイルは上書きされます。

(6)　注意事項

pddivinfgtコマンドのリターンコードを次に示します。

0：正常終了

8：異常終了

pddivinfgtコマンドで取得できる表種別と表の分割方法を次に示します。

表2‒2　取得できる表種別と表の分割方法

表種別

表の分割方法

取得可否

非分割表

−

○

横分割表

キーレンジ分割

境界値指定

○

格納条件指定

格納条件の比較演算子に＝だけを指定

○

格納条件の比較演算子に＝以外を指定

×

ハッシュ分割

×

マトリクス分割表

−

×

（凡例）

○：取得できます。

×：取得できません。

−：該当しません。

分割キーに改行コード，又は引用符（"）を使用した表を指定した場合，ファイルの出力結果は保証されません。

HiRDB接続時のパスワード秘匿化機能を使用している場合，必要に応じて，クライアント環境変数PDAUTHTYPEを設定し，HiRDBへ接続するときの認証方式を指定してから実行してください。指定値についてはマニュアル「HiRDB システム運用ガイド」の「HiRDB接続時のパスワード秘匿化機能の設定方法」を参照してください。

通信情報ファイルディレクトリ変更機能を使用している場合，クライアント環境定義PDIPCFILEDIRに値を設定する必要があります。指定値については，マニュアル「HiRDB UAP開発ガイド」の「クライアント環境定義の設定内容」を参照してください。

(7)　出力形式

 #OwnerName : "aa...a", TableName : "bb...b"
 #DivisionNumber : cc...c
 dd, "ee...e", ff...f
　　　　　　:
　　　　　　:

［説明］

aa...a：

-tオプションに指定した認可識別子（30バイト以内）

bb...b：

-tオプションに指定した表識別子（30バイト以内）

cc...c：

取得した表の分割数（5バイト以内）

非分割表の場合は，1を表示します。

dd：

分割条件コード（=，^=，<，<=，>，>=のどれか）

非分割表の場合，又は空白の場合は「--」を表示します。

ee...e：

分割条件値（513バイト以内）

分割条件値の出力例を次に示します。

表の種別

ディクショナリ表SQL_DIV_TABLEのDCVALUES列の値※

ディクショナリ表SQL_DIV_TABLEのDCVALUES_TYPE列の値※

分割キーのデータ型

"ee...e"の出力例

備考

非分割表

−

−

−

NULL

""で囲みません。

分割表

NULL値

−

−

NULL値以外

'X'（16進文字列定数）

−

X'41424344'

X''で囲みます。16進文字列で出力します。

NULL値

（16進文字列定数以外）

数データ

1000

""で囲みません。また，空白は削除します。

数データ以外

"ABCD"

""で囲みます。

（凡例）

−：該当しません。

注※

ディクショナリ表の列の値です。詳細は，マニュアル「HiRDB UAP開発ガイド」の「ディクショナリ表の詳細」を参照してください。

値がNULLの場合，又は非分割表の場合は，NULLを表示します。

分割条件値のデータ型が数データの場合，又はNULLの場合は「""」で囲みません。また，分割条件値のデータ型が数データの場合は，空白は削除して表示します。

ff...f：

分割条件に対応するデータを格納するバックエンドサーバ名（8バイト以内）

空白は削除して表示します。

2.33　pdextfunc（拡張システム定義スカラ関数の定義，削除）

2.33.1　pdextfuncの形式と規則

(1)　機能

拡張システム定義スカラ関数の定義又は削除をします。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdextfunc ｛-c｜-e〔force〕｝

(4)　オプション

(a)　-c

拡張システム定義スカラ関数を定義する場合に指定します。

(b)　-e

拡張システム定義スカラ関数を削除する場合に指定します。ただし，拡張システム定義スカラ関数を使用している関数，手続き又はトリガがあるときは，削除できません。そのときは，forceオプションを指定してください。

(c)　force

拡張システム定義スカラ関数を使用している関数，手続き又はトリガがある場合で，拡張システム定義スカラ関数を削除するときに指定します。

(5)　規則

pdextfuncコマンドは，HiRDBが稼働中のときだけ実行できます。

HiRDBサーバへの要求から応答まで1分以上経過した場合は，タイムアウトエラーになります。

pdextfuncコマンドを実行する前に，次の環境変数を設定してください。

クライアント環境定義のPDUSERにDBA権限を持つユーザの認可識別子及びパスワードを設定してください。

LANG又はクライアント環境定義のPDLANGに，HiRDBサーバの文字コード種別に対応した値を設定してください。

詳細は，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(6)　注意事項

pdextfuncコマンドの実行結果は，コマンド実行時のリターンコード又はエラーメッセージの有無で確認できます。コマンド実行時のリターンコードが0の場合は正常終了，4の場合は警告終了，8の場合は異常終了です。

2.34　pdfbkup（HiRDBファイルシステムのバックアップ）

2.34.1　pdfbkupの形式と規則

(1)　機能

HiRDBファイルシステムを通常ファイルに退避（バックアップ）します。また，HiRDBファイル単位にも退避できます。

退避するとき，HiRDBファイルシステムの属性（pdfmkfsコマンドで指定した属性）も一緒に退避します。なお，属性は引き継がれますが，HiRDBファイルシステムを拡張した後，pdfrstrコマンドで拡張前のバックアップをリストアしても，拡張前の大きさに戻ることはありません。

HiRDBファイルシステム領域の状態を表示（pdfstatfsコマンドを入力）した時，増分回数，又は不連続な空き領域の総数が算出された場合，次の処置をすると，増分された領域，又は不連続な空き領域を統合し，HiRDBファイルシステム領域を有効に利用できます。

HiRDBファイルシステムの退避（pdfbkupコマンド）

HiRDBファイルシステム領域の初期設定（pdfmkfsコマンド）

退避したHiRDBファイルシステムの，初期設定されたHiRDBファイルシステムへの格納（pdfrstrコマンド）

このコマンドは，通常，HiRDB停止中に実行してください。HiRDB稼働中に実行する場合は，マニュアル「HiRDB システム運用ガイド」の「バックアップ閉塞を使用してバックアップを取得する場合（pdcopyコマンド以外でバックアップを取得する場合）」を参照してください。このとき，SCHEDULE属性でないRDエリアを含むHiRDBファイルシステム領域に対しては，HiRDBの常駐プロセスなどがHiRDBファイルをオープンしていることがあるため，強制的に退避する-fオプションを指定してください。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdfbkup 〔-y〕 〔-r〕 〔-i〕 〔-｛c｜l｜f｝〕

　　　　　　HiRDBファイルシステム領域名〔/HiRDBファイル名〕

　　　　　　バックアップファイル名

(4)　オプション

(a)　-y

HiRDBファイルシステムを退避するときに，ユーザの確認なしで実行する場合に指定します。省略した場合，確認してから実行します。

(b)　-r

指定したバックアップファイルが既にある場合，削除して再作成するときに指定します。省略した場合，バックアップファイルが既にあるときにはエラーとなります。

(c)　-i

HiRDBファイルシステムの退避中にエラーが発生した場合に，そのHiRDBファイルの退避をやめ，次のファイルから処理を続行するときに指定します。省略した場合は，エラー終了します。

(d)　-｛c｜l｜f｝

他プロセス又は他ユーザが，対象となるHiRDBファイルシステム領域にアクセスしている場合の処理を指定します。なお，退避元のHiRDBファイルシステム領域に書き込み権限がない場合，-c及び-lオプションでは退避できません。この場合，-fオプションを指定してください。

-c：

他プロセス又は他ユーザが，対象となるHiRDBファイルシステム領域にアクセスしている場合は，退避処理をしません。

-l：

他プロセス又は他ユーザが，対象となるHiRDBファイルシステム領域にアクセスしている場合，アクセス中のHiRDBファイルは退避しません。

-f：

他プロセス又は他ユーザが，対象となるHiRDBファイルシステム領域にアクセスしている場合でも，強制的に退避します。また，対象となるHiRDBファイルシステム領域に書き込み権限がない場合でも退避します。

(5)　コマンド引数

(a)　HiRDBファイルシステム領域名〔/HiRDBファイル名〕

退避するHiRDBファイルシステムがあるキャラクタ型スペシャルファイル名又は通常ファイル名と，HiRDBファイル名を指定します。

HiRDBファイルシステム領域名　〜＜パス名＞((165文字以内))

HiRDBファイルシステム領域名を指定します。

HiRDBファイル名　〜＜HiRDBファイル名＞

HiRDBファイル名を指定します。

(b)　バックアップファイル名

退避先の通常ファイル名を指定します。

(6)　規則

pdfbkupコマンドは，HiRDBの稼働に関係なく実行できます。なお，稼働中に実行する場合は-fオプションを指定してください。

pdfbkupコマンドは，HiRDBファイルシステム領域があるサーバマシンごとに実行してください。

一つの通常ファイルには，一つのHiRDBファイルシステムしか退避できません。そのため，複数のHiRDBファイルシステムを退避する場合は，その数分の通常ファイルが必要になります。

HiRDBファイルシステムの退避中にエラーが発生した場合，バックアップファイルは作成しません。

-yオプションを省略した場合は，確認メッセージが表示されます。このとき，確認メッセージに対してＧ以外の文字を指定した場合は，HiRDBファイルシステムは退避されません。

退避するHiRDBファイルのレコード長は，pdflsコマンドで確認しておいてください。レコード長が，回復先HiRDBファイルシステム領域のセクタ長の整数倍でない場合，退避したファイルは回復できません。

共用RDエリアとして使用しているHiRDBファイルシステム領域に対して実行する場合，更新可能バックエンドサーバがあるサーバマシンから実行してください。

(7)　注意事項

pdfbkupコマンドの実行結果は，コマンド実行時のリターンコード又はエラーメッセージの有無で確認できます。

pdfbkupコマンドのリターンコードを次に示します。

0：正常終了

1：警告終了（一部のHiRDBファイルの処理がエラー終了）

-1：異常終了

リターンコードが0以外の場合，バックアップファイルが正常に作成できていないおそれがあります。エラーの要因を取り除いた後，バックアップファイルを削除し，再度コマンドを実行してください。

pdfbkupコマンドが異常終了した場合，バックアップファイルが作成されることがありますが，ファイルの内容は保証できません。

退避するHiRDBファイルシステム領域又はHiRDBファイルが2ギガバイトを超える場合，退避先のファイルを，ラージファイルが使用できるファイルシステムにする必要があります。

2.35　pdfchfs（HiRDBファイルシステム領域の管理情報変更）

2.35.1　pdfchfsの形式と規則

(1)　機能

HiRDBファイルシステム領域の最大増分回数（pdfmkfsの-eオプションの指定値）を変更します。

プロセス固有領域不足が発生した際，pdfmkfsコマンドの-eオプションに見積もり値以上の不当に大きな値を指定していた場合は，これを適切な値に変更することで，プロセス固有領域のメモリ所要量を削減できます。

pdfchfsコマンドは，次のどちらかに該当するときに実行します。

大量のデータを格納しており，HiRDBファイルシステム領域の再作成に伴うデータの回復作業に時間を要する場合

HiRDBファイルシステム領域の再作成のためにHiRDBを停止できない場合

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdfchfs -e 最大増分回数 HiRDBファイルシステム領域名

(4)　オプション

(a)　-e 最大増分回数 〜＜符号なし整数＞((0〜60000))

pdfmkfsコマンドの-eオプションで指定した，HiRDBファイルシステム領域の最大増分回数を変更します。最大増分回数は，pdfstatfsコマンド実行結果の[available expand count]に表示される値で確認できます。ただし，pdfmkfsコマンドの-eオプションの指定値を超える値は指定できません。

pdfmkfsコマンドの-eオプションに指定していた値が見積もりで算出した値以上の場合，最大増分回数を小さくすることで，各HiRDBサーバプロセスが使用するプロセス固有領域のメモリ所要量を削減できます。

メモリ所要量の削減量の目安を次に示します。

pdfmkfsコマンドの-nオプション指定値が2048以上の場合：

↑｛（24×a）÷b｝↑×b　［単位：バイト］

pdfmkfsコマンドの-nオプション指定値が2047以下の場合：

↑｛（16×a）÷b｝↑×b　［単位：バイト］

可変記号の説明

a：pdfmkfs -eオプションの指定値

b：pdfmkfs -sオプションの指定値（pdfstatfs -bコマンド実行結果の[sector size]に表示される値。省略した場合，キャラクタ型スペシャルファイルのときは1024，通常ファイルのときは512）

サーバプロセスが使用するプロセス固有領域の詳細は，マニュアル「HiRDB システム導入・設計ガイド」の「メモリ所要量の計算式」を参照してください。

＜注意事項＞

指定値が次の条件を満たさない場合，コマンドはKFPI21604-Eを出力しエラー終了します。

下限：現時点での使用増分回数

上限：pdfmkfsコマンド実行時の-eオプション指定値

変更前と同じ値を指定した場合，コマンドは正常終了します。

次の値より小さい値を指定した場合，HiRDBファイルの作成又は拡張時に，HiRDBファイルの増分限界に達する前に領域の最大増分回数に達してエラーになるおそれがあります。

23×増分を使用するHiRDBファイル数の累計

HiRDBファイルシステム領域の使用目的ごとに，「pdfmkfs（HiRDBファイルシステム領域の初期設定）」を参照してください。

(5)　コマンド引数

(a)　HiRDBファイルシステム領域名　〜＜パス名＞((165文字以内))

HiRDBファイルシステム領域名を指定します。

＜注意事項＞

次のすべての条件を満たすHiRDBファイルシステム領域に対しては実行できません。実行した場合，コマンドはKFPI21603-Eを出力しエラー終了します。

pdfmkfsコマンドに-aオプションを指定して，HiRDBファイルシステム領域を自動的に拡張する指定をしている場合

自動的に拡張する指定をしているかどうかはpdfstatfsコマンド実行結果の[area auto expand]に表示される値で確認できます。

pdfmkfsコマンドの-kオプションで指定した，HiRDBファイルシステム領域の使用目的がDB，SDB，又はSYSの場合

使用目的はpdfstatfsコマンド実行結果の[initialize area kind]に表示される値で確認できます。

(6)　規則

pdfchfsコマンドは，HiRDBの稼働状況に関係なく実行できます。ただし，HiRDBファイルシステム領域の使用目的がSVRの場合を除きます。

HiRDB停止中に実行する場合の制限はありません。HiRDB稼働中に実行する場合は，pdfmkfsコマンドの-kオプションで指定した，HiRDBファイルシステム領域の使用目的ごとに，次に示す手順で実行してください。

項番

使用目的

pdfchfsコマンド実行時の手順

1

DB又はSDB

対象RDエリアを閉塞かつクローズ状態にします。コマンド実行対象のHiRDBファイルシステム領域に格納しているHiRDBファイルを構成ファイルとするすべてのRDエリアが対象です。

プロセスのリフレッシュ（pdpfresh）をします。

pdfchfsコマンドを実行します。

RDエリアの閉塞かつクローズ状態を解除します。

＜注意事項＞

マスタディレクトリ用RDエリアの構成ファイルを格納しているHiRDBファイルシステム領域は適用できません。適用するには，HiRDBを停止して実行する必要があります。

プロセスをリフレッシュする際，HiRDBファイルにアクセスしているプロセスを強制的にリフレッシュしてよい場合にはpdpfreshコマンドの-fオプションを指定して実行します。そうでない場合にはこのプロセスが実行中のジョブが終了するまで待つか，そのジョブを終了させてからコマンドを実行してください。HiRDBファイルにアクセスしているプロセスの確認方法及び，pdpfreshの使用方法については，「pdpfresh（サーバプロセスのリフレッシュ）」を参照してください。

2

SYS

対象のHiRDBファイルをクローズします。コマンド実行対象のHiRDBファイルシステム領域に格納しているHiRDBファイルすべてが対象です。

pdfchfsコマンドを実行します。

HiRDBファイルをオープンします。

＜注意事項＞

HiRDBファイルシステム領域内に現用のHiRDBファイルが存在する場合，別領域のHiRDBファイルにスワップした後に実行してください。

全世代を同じHiRDBファイルシステム領域に格納している場合は適用できません。適用するには，HiRDBを停止して実行してください。HiRDB/パラレルサーバでサーバ用HiRDBファイルだけを格納している場合は，サーバ単位の終了でも実行できます。

監査証跡ファイルを格納しているHiRDBファイルシステム領域は適用できません。適用するには，HiRDBを停止して実行してください。

3

WORK

作業表を使用するトランザクションの運用をいったん停止します。

pdfchfsコマンドを実行します。

＜留意事項＞

コマンド実行中にトランザクションを実行した場合，pdfchfsコマンド終了までトランザクションは実行待ちになり，pdfchfsコマンド実行後に動作を再開します。

4

UTL

対象HiRDBファイルシステム領域を指定するユティリティの運用をいったん停止します。

pdfchfsコマンドを実行します。

＜留意事項＞

コマンド実行中にユティリティを実行した場合，pdfchfsコマンド終了までユティリティは実行待ちになり，pdfchfsコマンド実行後に動作を再開します。

5

SVR

HiRDB稼働中に実行はできません。HiRDBを停止してから実行してください。

この手順に従わないでpdfchfsコマンドを実行した場合，対象のHiRDBファイルシステム領域を使用中のプロセスが存在すると，コマンドはKFPI21528-Eを出力してエラー終了します。エラー終了した場合はこの手順に従ってコマンドを再実行してください。

pdfchfsコマンドは，HiRDBファイルシステム領域があるサーバマシンごとに実行してください。

共用RDエリアとして使用しているHiRDBファイルシステム領域に対して実行する場合，更新可能バックエンドサーバがあるサーバマシンから実行してください。

(7)　注意事項

pdfchfsコマンドでは，pdfmkfsコマンド実行時に作成した管理情報のサイズは変更できません。管理部に使用しない無駄な領域ができるため，pdfmkfsコマンド再実行による変更を推奨します。

2.36　pdffsck（HiRDBファイルシステム領域の整合性の検証及び修復）

2.36.1　pdffsckの形式と規則

(1)　機能

HiRDBファイルシステム領域の整合性を検証して，不整合があれば修復します。また，不整合を検知した場合は，検知したファイル又は領域を表示します。

pdffsckコマンドは，次のどちらかに該当する場合に実行します。

pdflsコマンド実行時にKFPI21586-Wメッセージが表示された場合

HiRDBファイルシステム領域が，本来の容量より少ない容量しか使用できなくなった場合（例えば，100ギガバイト使えるはずが80ギガバイトまでしか使えないなど）

整合性の検証内容と修復方法を次に示します。

対象

検証内容

原因

修復方法

HiRDBファイル

使用できないHiRDBファイルの有無

ファイルの作成，又は削除処理の中断

未使用状態として管理します。また，割り当てられていた領域は空き領域として管理します。

HiRDBファイル内の領域

空き領域リスト，及びファイル管理テーブルのどちらからも参照されない領域の有無

ファイルの拡張（自動増分）処理の中断

孤立している領域を空き領域として管理します。

HiRDBファイルシステム領域の管理情報

HiRDBファイルシステム領域の管理領域に格納されている統計情報の矛盾

ファイルの作成，又は削除処理の中断

各検証が終了した状態で，ファイル数の統計情報などを修正します。

(2)　実行者

スーパユーザ又はHiRDB管理者が実行できます。

(3)　形式

　pdffsck 〔-c〕 HiRDBファイルシステム領域名

(4)　オプション

(a)　-c

HiRDBファイルシステム領域の検証だけをするときに指定します。-cオプションを指定した場合，HiRDBファイルシステム領域の修復はしません。

(5)　コマンド引数

(a)　HiRDBファイルシステム領域名　〜＜パス名＞((165文字以内))

HiRDBファイルシステム領域の名称を指定します。

(6)　規則

pdffsckコマンドは，-cオプションありの場合は，HiRDBの稼働に関係なく実行できます。-cオプションなしの場合は，HiRDBファイルシステム領域の使用目的ごとに次のように実行してください。

-k DBのHiRDBファイルシステム領域の場合

HiRDBファイルシステム領域内のすべてのRDエリアを，pdhold -cコマンドでコマンド閉塞かつクローズ状態にして，pdpfreshコマンドで稼働中のプロセスを終了させた後に実行してください。また，pdffsckコマンドを実行した後は，pdrelsコマンドですべてのRDエリアの閉塞状態を解除してください。

-k SYSのHiRDBファイルシステム領域の場合

pdlogswapコマンドでシステムログファイルをスワップして，pdlogclsコマンドでクローズ状態にした後に実行してください。また，pdffsckコマンドを実行した後は，pdlogopenコマンドでシステムログファイルを稼働中のHiRDBで使用できるようにしてください。

-k UTLのHiRDBファイルシステム領域の場合

ユティリティで使用中の場合は，ユティリティの処理が終了した後に実行してください。

-k WORKのHiRDBファイルシステム領域の場合

HiRDB稼働中には修復できないため，HiRDBを停止してから実行してください。

-cオプションありのpdffsckコマンドは，他プロセス又は他ユーザがアクセスしているHiRDBファイルシステム領域に対して実行できます。-cオプションなしのpdffsckコマンドは，他プロセス又は他ユーザがアクセスしているHiRDBファイルシステム領域に対しては実行できません。

pdffsckコマンドは，HiRDBファイルシステム領域があるサーバマシンごとに実行してください。

-k SDBのHiRDBファイルシステム領域に対してpdffsckコマンドを実行する場合，更新可能バックエンドサーバがあるサーバマシンから実行してください。

(7)　注意事項

pdffsckコマンドのリターンコードを次に示します。

0：正常終了

1：警告終了（複数ディスクの操作でエラーが発生）

-1：異常終了

リターンコードが0以外の場合，処理が正常に完了していないおそれがあります。エラーの要因を取り除いた後，再度コマンドを実行してください。

I/Oエラーが発生した場合は処理を中止します。

対象とするHiRDBファイルシステム領域に作成されているHiRDBファイルは，pdflsコマンドで確認できます。

RDエリアの自動増分機能適用時にHiRDBファイルシステム領域を検証する場合は，検証処理が終了するまで自動増分はしないで，検証処理終了後に自動増分を実行します。対象となるHiRDBファイルシステム領域に，RDエリアの自動増分機能を適用しているかどうかは，pdfstatfsコマンドで確認できます。

pdffsckコマンドの実行中には，pdmod及びpdrstrは実行しないでください。実行すると，データベースを破壊するおそれがあります。

pdffsckコマンドでのファイル修復処理中にプロセスが打ち切られた場合は，コマンドを再実行して修復を完了させてください。

バージョン07-02以前のHiRDBでは，管理領域の情報が破壊されていてpdffsckコマンドでは修復できないことがあります。この場合は，KFPI21585-Eメッセージが出力されるので，出力メッセージに従って，対象となるHiRDBファイルシステム領域をバックアップファイルから回復してください。詳細については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(8)　出力形式

領域の不整合が検知されてKFPI21559-Wメッセージが表示された場合だけ，検知した不整合の状態によって，次のどれかの情報が出力されます。なお，不整合が検知されないで，KFPI21558-Iメッセージが表示された場合には，次の情報は出力されません。

(a)　利用できないHiRDBファイルがある場合（ファイルの作成，削除処理の中断）

利用できないHiRDBファイルは，ファイルに割り当てられていた領域が利用できる状態とできない状態で区別します。領域が利用できない状態のファイルについては，すべてのファイルのファイル名，ファイル開始位置，及びファイルサイズが表示されます。利用できないファイルのすべてが，領域を利用できない状態とは限らないため，出力されるファイルカウントとファイルリストの数が一致しないこともあります。

unusable file count                 aa...a
file list
     FILE NAME                  OFFSET[kB]    SIZE[kB]
     bb...b                        cc...c      dd...d
       :                               :           :
total unusable area size[kB]             ee...e

［説明］

aa...a：

利用できないHiRDBファイルの数（10進数4けた以内）

bb...b：

領域が利用できない状態のHiRDBファイル名（30文字以内）

cc...c：

HiRDBファイルの開始オフセット（10進数10けた以内）

dd...d：

HiRDBファイルのサイズ（単位：キロバイト）（10進数10けた以内）

ee...e

領域が利用できない状態のHiRDBファイルの合計サイズ（修復実行によって空き領域として再利用できるようになるサイズ）（単位：キロバイト）（10進数10けた以内）

(b)　利用できない領域がある場合（ファイルの拡張処理の中断）

利用できない領域の開始位置とサイズが表示されます。該当するすべての領域が出力されます。出力される領域カウントと領域リストの数は常に一致します。

unusable area count                aa...a
area list
     OFFSET[kB]                      SIZE[kB]
     bb...b                            cc...c
       :                                  :
total unusable area size[kB]          dd...d

［説明］

aa...a：

利用できない領域数（10進数4けた以内）

bb...b：

利用できない領域開始オフセット（10進数10けた以内）

cc...c：

利用できない領域サイズ（単位：キロバイト）（10進数10けた以内）

dd...d：

利用できない領域の合計サイズ（修復実行によって空き領域として再利用できるようになるサイズ）（単位：キロバイト）（10進数10けた以内）

(c)　利用できないHiRDBファイル，及び利用できない領域が共にある場合

unusable file count                 aa...a
file list
     FILE NAME                  OFFSET[kB]    SIZE[kB]
     bb...b                        cc...c      dd...d
       :                               :           :
unusable area count                ff...f
area list
     OFFSET[kB]                     SIZE[kB]
     gg...g                          hh...h
       :                               :
total unusable area size[kB]         ee...e

［説明］

aa...a：

利用できないHiRDBファイルの数（10進数4けた以内）

bb...b：

領域が利用できない状態のHiRDBファイル名（30文字以内）

cc...c：

HiRDBファイルの開始オフセット（10進数10けた以内）

dd...d：

HiRDBファイルのサイズ（単位：キロバイト）（10進数10けた以内）

ee...e：

領域が利用できない状態のHiRDBファイル，及び利用できない領域すべての合計サイズ（修復実行によって空き領域として再利用できるようになるサイズ）（単位：キロバイト）（10進数10けた以内）

ff...f：

利用できない領域数（10進数4けた以内）

gg...g：

利用できない領域開始オフセット（10進数10けた以内）

hh...h：

利用できない領域サイズ（単位：キロバイト）（10進数10けた以内）

2.37　pdfgt（トランザクションの強制終了）

2.37.1　pdfgtの形式と規則

(1)　機能

グローバルトランザクションを構成している各トランザクションブランチが，何らかの要因（通信障害など）でトランザクションを終了できない場合に強制的にそのトランザクションを終了します。

例えば，次の場合はトランザクションが終了しません。

OLTPシステムとHiRDBの間でトランザクションの同期合わせをする前に，通信障害が発生した場合

OLTPシステムとHiRDBの間でトランザクションの同期合わせをする前に，OLTPシステムが異常終了した場合

このような場合にpdfgtコマンドを使用して，トランザクションを強制的に終了します。また，上記以外の障害が発生し，トランザクションを強制的に終了するときにもpdfgtコマンドを使用できます。

pdfgtコマンドは，pdlsコマンド（-d trn指定）で表示された情報のトランザクション第1状態がFORGETTINGでトランザクション第3状態がwのトランザクションを強制的に終了します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　 pdfgt 〔｛-x ホスト名｜-u ユニット識別子｝〕 〔-s サーバ名〕

　　　　 ｛-A ｜ -t トランザクション識別子｝

(b)　HiRDB/パラレルサーバの場合

　 pdfgt ｛-x ホスト名｜-u ユニット識別子｝ 〔-s サーバ名〕

　　　　 ｛-A ｜ -t トランザクション識別子｝

(4)　オプション

(a)　｛-x ホスト名｜-u ユニット識別子｝

該当するトランザクションがあるホストのホスト名，又はユニットのユニット識別子を指定します。

-x ホスト名　〜＜識別子＞((1〜32))

該当するトランザクションがあるホストのホスト名を指定します。

-u ユニット識別子　〜＜識別子＞((4文字))

該当するトランザクションがあるユニットのユニット識別子を指定します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

ユニットに複数のサーバがある場合，サーバを特定するときにサーバ名を指定します。省略した場合，対象となるホスト内のすべてのサーバを対象とします。

(c)　-A

-sオプションで指定したサーバ内のトランザクションのうち，FORGETTING状態で同期合わせ待ち状態のすべてのトランザクションを終了する場合に指定します。

(d)　-t トランザクション識別子　〜＜識別子＞((16文字))

FORGETTING状態で同期合わせ待ち状態のトランザクションを終了する場合に，トランザクション識別子を指定します。

(5)　規則

pdfgtコマンドは，HiRDBが稼働中のときだけ実行できます。

pdfgtコマンドは，各サーバマシンで実行してください。ただし，ユティリティ専用ユニットのサーバマシンでは実行できません。

(6)　注意事項

pdfgtコマンドの結果は，pdlsコマンド（-d trn指定），コマンド実行時のリターンコード，又はエラーメッセージの有無で確認できます。

コマンド実行時のリターンコードを次に示します。

0：正常終了

1：異常終了（オプション指定不正，rsh失敗など）

対象のトランザクションが終了できていないことがあります。

メッセージに従って対処した後，再度コマンドを実行してください。

回復不要FESに接続して実行したトランザクションは，トランザクション第1状態がFORGETTING，トランザクション第3状態がwの場合でも，強制的に終了できないことがあります。この場合，トランザクションを自動決着してください。未決着状態のトランザクションを決着する方法の詳細については，マニュアル「HiRDB システム運用ガイド」の「未決着状態のトランザクションを決着する方法」を参照してください。

現在は停止しているクライアント製品からの要求で発生した未決着状態のトランザクションを強制的に終了すると，この後でクライアント製品を開始したときに，HiRDBとクライアント製品との間でこのトランザクションの同期が取れないことがあります。

2.38　pdfls（HiRDBファイルシステムの内容表示）

2.38.1　pdflsの形式と規則

(1)　機能

HiRDBファイルシステム領域内のHiRDBファイルの内容を表示します。コマンド引数にHiRDBファイルシステム領域名だけを指定した場合には，指定したHiRDBファイルシステム領域内にあるすべてのHiRDBファイルについて出力します。HiRDBファイル名も指定した場合は，指定したHiRDBファイルについて出力します。

(2)　実行者

権限がないユーザでも実行できます。

(3)　形式

　pdfls ｛〔〔-H〕 〔-L｜-S〕 〔-｛t｜u｝〕〕 HiRDBファイルシステム領域名〔/HiRDBファイル名〕

　　　　 ｜〔-x〕 HiRDBファイルシステム領域名〔/HiRDBファイル名〕｝

(4)　オプション

(a)　-H

表示する情報にヘッダを付けて，HiRDBファイル名のアルファベット順に表示します。

(b)　-L

HiRDBファイルの排他制御の状態を，HiRDBファイル名のアルファベット順に縦方向で表示します。

(c)　-S

HiRDBファイルの分割格納状態（エクステントの状態）を，HiRDBファイル名のアルファベット順に縦方向で表示します。

(d)　-｛t｜u｝

-t：

HiRDBファイルシステム領域の内容を，更新クローズ日時が最新のものから順に表示します。

更新クローズ日時とは，ファイルオープン後1回以上書き込みをしたときの日時です。書き込みをしていないHiRDBファイルについては，ファイルの作成日時を更新クローズ日時とみなします。なお，RDエリアを構成するHiRDBファイルについては，更新クローズがあっても更新クローズ日時を利用しないことがあります。

-u：

HiRDBファイルシステム領域の内容を，クローズ日時が最新のものから順に表示します。

クローズ日時は，オープン後1回以上書き込み，読み込みをしたときの日時です。書き込み，読み込みをしていないHiRDBファイルについては，ファイルの作成日時をクローズ日時とみなします。なお，RDエリアを構成するHiRDBファイルについては，クローズがあってもクローズ日時を利用しないことがあります。

-t又は-uオプションと，-H又は-Lオプションを同時に指定した場合は，-t又は-uオプションの指定が有効となります。

(e)　-x

HiRDBファイル名だけをアルファベット順に横方向で表示したい場合に指定します。省略した場合，縦方向に表示します。

(5)　コマンド引数

(a)　HiRDBファイルシステム領域名　〜＜パス名＞((165文字以内))

HiRDBファイルシステム領域名を指定します。

(b)　HiRDBファイル名　〜＜HiRDBファイル名＞

HiRDBファイル名を指定します。

(6)　規則

pdflsコマンドは，HiRDBの稼働に関係なく実行できます。

pdflsコマンドは，HiRDBファイルシステムがあるサーバマシンごとに実行してください。

共用RDエリアとして使用しているHiRDBファイルシステム領域に対して実行する場合，更新可能バックエンドサーバがあるサーバマシンから実行してください。

(7)　注意事項

pdflsコマンド実行時のリターンコードは，0の場合は正常終了，-1の場合は異常終了となります。

(8)　出力形式

各項目は，1文字以上の半角空白を空けて表示します。

(a)　-Hオプションを指定した場合

 MODE    UID    GID    RSIZE  RNUM   TIME   FILE
 aabbcc  dd...d ee...e ff...f gg...g hh...h ii...i

［説明］

aabbcc：システムが使用する情報（rwrw--固定）

dd...d：

HiRDBファイルを作成したOS上のユーザ名

ee...e：

HiRDBファイルを作成したOS上のユーザが属するグループ名

ff...f：

レコード長（10進数5けた）

gg...g：

レコード数（10進数8けたで右詰め表示）

hh...h：

更新クローズ日時

時：分　月　日　年（西暦）の形式で表示されます。

2005年1月7日(金)9時5分の場合の出力例を次に示します。

09:05 Jan 07 2005

ii...i：

HiRDBファイル名（30文字以内）

(b)　-H及び-Lオプションを指定した場合

 MODE    UID    GID    PID    L TIME   FILE
 aabbcc  dd...d ee...e pp...p q hh...h ii...i

［説明］

aabbcc：システムが使用する情報（rwrw--固定）

dd...d：

HiRDBファイルを作成したOS上のユーザ名

ee...e：

HiRDBファイルを作成したOS上のユーザが属するグループ名

pp...p：

排他を掛けているプロセスのプロセスID（AIX版の場合は10進数10けた以内で右詰め表示，AIX版以外で99999以下の場合，10進数5けた以内で右詰め表示，100000以上の場合は，10進数10けた以内で左詰め表示）

排他を掛けているプロセスのプロセスIDが不明の場合は*が，排他を掛けているプロセスがない場合は−が表示されます。

AIX版以外で100000以上の場合，L（排他状態識別フラグ）以降の項目の表示位置は右にシフトします。

q ：

排他状態識別フラグ

E ：

占有排他

S ：

共有排他

* ：

排他状態は不明です。

- ：

排他は掛けられていません。

hh...h：

更新クローズ日時

時：分　月　日　年（西暦）の形式で表示されます。

2005年1月7日(金)9時5分の場合の出力例を次に示します。

09:05 Jan 07 2005

ii...i：

HiRDBファイル名（30文字以内）

＜出力例＞

AIX版以外でプロセスIDが100000以上の表示を含む場合

MODE    UID      GID        PID  L       TIME        FILE
rwrw-- USERID    GRPID     ----- - 19:32 Dec 26 2013 h001
rwrw-- USERID    GRPID     38095 S 19:32 Dec 26 2013 h002  … プロセスIDが99999以下
rwrw-- USERID    GRPID    108221 - 19:44 Dec 26 2013 h003  … プロセスIDが100000以上
rwrw-- USERID    GRPID      8101 S 19:44 Dec 26 2013 h004  … プロセスIDが99999以下

(c)　-H及び-Sオプションを指定した場合

 MODE    UID     GID     RSIZE  RNUM    TIME    FILE
 aabbcc  dd...d  ee...e  ff...f gg...g  hh...h  ii...i
                 extent size    jj...j

［説明］

aabbcc：システムが使用する情報（rwrw--固定）

dd...d：

HiRDBファイルを作成したOS上のユーザ名

ee...e：

HiRDBファイルを作成したOS上のユーザが属するグループ名

ff...f：

レコード長（10進数5けた）

gg...g：

レコード数（10進数8けたで右詰め表示）

hh...h：

更新クローズ日時

時：分　月　日　年（西暦）の形式で表示されます。

2005年1月7日(金)9時5分の場合の出力例を次に示します。

09:05 Jan 07 2005

ii...i：

HiRDBファイル名

jj...j：

HiRDBファイルの１エクステント当たりのレコード数。HiRDBファイルの１エクステントが複数ある場合，エクステントごとに表示されます。

2.39　pdfmkfs（HiRDBファイルシステム領域の初期設定）

2.39.1　pdfmkfsの形式と規則

(1)　機能

指定したハードディスクのパーティション（キャラクタ型スペシャルファイル）又は通常ファイルをHiRDBファイルシステム領域用に初期設定します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　キャラクタ型スペシャルファイルの場合

　pdfmkfs -n HiRDBファイルシステム領域サイズ 〔-l 最大ファイル数〕

　　　　〔-k 使用目的〕 〔-e 最大増分回数〕 〔-s セクタ長〕 〔-i〕 〔-a〕 〔-m〕

　　　　　キャラクタ型スペシャルファイル名

(b)　通常ファイルの場合

　pdfmkfs -n HiRDBファイルシステム領域サイズ 〔-l 最大ファイル数〕

　　　　　〔-k 使用目的〕 〔-s セクタ長〕 〔-e 最大増分回数〕 〔-i〕 〔-r〕 〔-a〕

　　　　　　通常ファイル名

(4)　オプション

(a)　-n HiRDBファイルシステム領域サイズ　〜＜符号なし整数＞

HiRDBファイルシステム領域として割り当てる容量をメガバイト単位で指定します。このオプションは，必ず指定してください。指定範囲を次に示します。

ファイルの種類

AIX

Linux

通常ファイル

1〜2,047

1〜2,047

キャラクタ型スペシャルファイル

1〜2,047

1〜2,047

ラージファイル

通常ファイル

1〜65,411※

1〜1,048,575

キャラクタ型スペシャルファイル

1〜1,048,575

1〜1,048,575

注※

Journaled File System（JFS）の場合の指定範囲です。Enhanced Journaled File System（JFS2）の場合は，1〜1,048,575の指定範囲となります。

このオプションと同時に-k DB -a，-k SDB -a，-k SYS -a，又は-k WORK -aを指定すると，このオプションで指定したHiRDBファイルシステム領域の容量を使い切ったときに自動的に領域を拡張します。

なお，HiRDBファイルシステム領域の管理で使用する管理領域も，-nオプションの指定値に含まれます。したがって，実際にHiRDBファイルに割り当てられる容量は，（-nオプションの指定値）−（管理領域の容量）となります。管理領域の容量の求め方については，注意事項を参照してください。実際にHiRDBファイルに割り当てられる容量は，pdfstatfsコマンドで確認できます。

(b)　-l　最大ファイル数　〜＜符号なし整数＞((1〜4096))

HiRDBファイルシステム領域内に作成するHiRDBファイル数の上限を指定します。

領域内のHiRDBファイル数は，少ない方が性能が向上します。

-aオプションを指定しない場合は，このオプションを必ず指定してください。

なお，ここで指定した値は，pdfmkfsコマンド実行後には変更できません。したがって，使用するHiRDBファイル数と，今後の拡張予定などを考慮して値を決める必要があります。最大ファイル数の計算式については，マニュアル「HiRDB システム導入・設計ガイド」の最大ファイル数の見積もり（pdfmkfs -lコマンド）を参照してください。

このオプションと同時に-k DB -a，-k SDB -a，又は-k SYS -aは指定できません。

(c)　-k 使用目的　〜《SVR》

HiRDBファイルシステム領域の使用目的を指定します。

DB：

RDエリア用のHiRDBファイルシステム領域として初期化します。

SDB：

共用RDエリア用のHiRDBファイルシステム領域として初期化します。SDBは，HiRDB/パラレルサーバの場合で，かつHiRDBファイルシステム領域としてキャラクタ型スペシャルファイルを使用する場合に指定できます。通常のRDエリアは，使用目的DBのHiRDBファイルシステム領域を使用してください。

使用目的SDBで初期化する場合，更新可能バックエンドサーバがあるサーバマシンで実行してください。参照可能バックエンドサーバからは実行しないでください。

SYS：

システムログファイル，シンクポイントダンプファイル，ステータスファイル，又は監査証跡ファイル用のHiRDBファイルシステム領域として初期化します。

SYSを指定した場合，-eオプションは指定しないでください。

WORK：

リスト用RDエリア，又は作業表用ファイルのHiRDBファイルシステム領域として初期化します。

UTL：

ユティリティ用のHiRDBファイルシステム領域として初期化します。

ユティリティ用のHiRDBファイルシステム領域には，次のファイルを作成できます。

アンロードデータファイル

LOBデータのアンロードファイル

インデクス情報ファイル（プラグインの遅延一括作成の場合）

バックアップファイル

差分バックアップファイル

差分バックアップ管理ファイル

アンロードログファイル

SVR：

ユティリティ用を除くすべての目的に使用できるHiRDBファイルシステム領域として初期化します。

テスト用のシステムなどで，一つのHiRDBファイルシステム領域に，異なる使用目的のHiRDBファイルを混在させても問題ない場合に指定します。

通常は信頼性の面から，使用目的によってHiRDBファイルシステム領域を分けるようにしてください。

(d)　-e　最大増分回数　〜＜符号なし整数＞((0〜60000))≪0≫

このオプションを指定すると，HiRDBファイルの容量が不足した場合，自動的にHiRDBファイルの容量が増分されます。このオプションには容量を増分する回数の上限値を指定します。

HiRDBファイルシステム領域内の全HiRDBファイルの容量増分回数がカウント対象になります。例えば，HiRDBファイルシステム領域内に二つのHiRDBファイルがあり，それぞれ増分した回数が5回，3回の場合，増分回数は8回とカウントされます。

使用目的がSYSの場合，指定した値は無効となり0が仮定されます。増分回数に応じてHiRDBファイルシステム領域を使用するプロセスのメモリ所要量が増加するため，指定値の求め方に記載した値より大きい値を指定しないでください。指定値の求め方に記載した値より大きい値を指定した場合，メモリ不足の原因になります。例えば，最大値60000と最小値0では，メモリ所要量が約1.8メガバイト異なります。メモリ所要量の計算式については，マニュアル「HiRDB システム導入・設計ガイド」の「メモリ所要量の計算式」を参照してください。

なお，1HiRDBファイルの容量増分回数の上限が23回のため，このオプションに最大ファイル数（-lオプションの指定値）×23以上の値を指定しても無効になります。この場合，最大増分回数には最大ファイル数×23が仮定されます。1領域1ファイルにする場合（-lの指定値に1を指定する場合）は，上限が23回という条件は適用されません。領域内で，増分によってファイル構成データが分断されることがないため，1を指定すればHiRDBファイルシステム領域サイズ（-n指定値）まで増分ができます。ただし，HiRDBファイルの上限サイズを超えることはできません。

このオプションと同時に-k DB -a，-k SDB -a，又は-k SYS -aは指定できません。

＜適用基準＞

作業表用ファイルを作成するHiRDBファイルシステム領域の場合，作業表用ファイルの容量見積もりの結果が次の値を超えるときは，必ず増分回数を指定してください。作業表用ファイルの容量見積もりについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

・HiRDB/シングルサーバの場合

　128キロバイト

・HiRDB/パラレルサーバの場合

　512キロバイト

容量見積もりの結果が上記の値を超えない場合，及び作業表用ファイル以外のHiRDBファイルシステム領域の場合でも，増分回数を指定することをお勧めします。

-eオプションでRDエリアを自動増分する場合は，必ず増分回数を指定してください。

RDエリアの削除，再初期化（割り当てサイズの縮小，又はwith reconstruction指定），及び統合では，割り当て済みHiRDBファイルの削除やサイズ縮小が発生するため，HiRDBファイルシステム領域内に断片化した空きが発生します。このような運用をする場合には，増分回数を指定することをお勧めします。RDエリアの追加，拡張，及び再初期化で新しく作成するHiRDBファイルは，連続した空きを確保できない場合，断片化した空きを複数個使用します。この場合，使用する「断片化した空き数−1」の増分回数が必要になります。

＜指定値の求め方＞

指定する増分回数は，次の式から求めてください。

-kオプション

増分回数の指定値

DB※1

Min（60000，23×増分対象ファイル数の累計※2）

なお，RDエリアの削除，再初期化（割り当てサイズの縮小，又はwith reconstruction指定），及び統合を頻繁に行う場合は，次の値を指定することをお勧めします。

Min（60000，23×RDエリアの構成ファイル数の累計）

SDB※1

SYS※1

0

WORK

Min（60000，23×-lオプションの指定値）

UTL

SVR

Min（60000，23×増分を適用するファイル数の累計）

増分を適用するファイルは，作業表用ファイル，及び増分対象ファイルです。※2

注1

pdfmkfs実行後は，増分回数の増加はできないため，将来の拡張を見込んで値を決めてください。なお，pdfchfsコマンドで，増分回数の削減はできます。

注2

計算値より少ない値を指定した場合，HiRDBファイルの増分の限界に達する前に，HiRDBファイルシステム領域の限界になります。

注※1

-aオプションを指定する場合，指定できません。

注※2

増分対象ファイルについては，マニュアル「HiRDB システム運用ガイド」の「RDエリアの自動増分」を参照してください。

(e)　-s セクタ長　〜＜符号なし整数＞((1024，2048，4096))

省略値

キャラクタ型スペシャルファイルの場合：1024

通常ファイルの場合：512

DVD-RAM装置などの，物理セクタ長が2,048バイト及び4,096バイトの媒体を扱う装置でHiRDBファイルシステム領域としてキャラクタ型スペシャルファイルを使用する場合，最小入出力単位をセクタ長（キャラクタ型スペシャルファイルに対応する媒体の物理セクタ長）で指定します。媒体の物理セクタ長については，媒体のマニュアルを参照してください。

また，論理セクタ長が4,096バイトのディスクのキャラクタ型スペシャルファイルに作成する場合，4,096を指定してください。

＜規則＞

媒体の物理セクタ長が4,096バイトより大きい場合，その媒体ではキャラクタ型スペシャルファイルのHiRDBファイルシステム領域は使用できません。

媒体の物理セクタ長が1,024バイト以下の場合，セクタ長を整数倍した値が1,024になるかを確認し，物理セクタ長に1,024を指定してください。1,024にならない場合，その媒体のキャラクタ型スペシャルファイルは使用できません。

キャラクタ型スペシャルファイルを使用する場合だけ，セクタ長に1,024及び2,048を指定できます。

セクタ長に2,048を指定した場合，-kオプションにはDB又はUTLのどちらか一方を指定できます。

pdworkに指定したHiRDBファイルシステム領域のセクタ長を変更する場合は，HiRDBが停止した状態で行ってください。

RDエリア用のHiRDBファイルシステム領域として使用する場合，RDエリアを作成するときのpdinit又はpdmodの制御文のページ長には，-sオプションで指定したセクタ長の整数倍の値を指定してください。

システムログファイル用のHiRDBファイルシステム領域として使用する場合，システム定義pd_log_rec_lengオペランドに4,096を指定してください。ステータスファイル用のHiRDBファイルシステム領域として使用する場合，pdstsinitコマンドの-lを省略するか，4,096の倍数を指定してください。

通常ファイルや論理セクタ長が512バイトのディスクのキャラクタ型スペシャルファイルにも，4,096を指定できます。

(f)　-i

-nオプションで指定したHiRDBファイルシステム領域サイズ分の領域を最初から初期化する場合に指定します。ただし，-aオプションを指定して，HiRDBファイルシステム領域を自動的に拡張する場合は，ファイル種別や-kオプションの指定値などによって増分領域の初期化可否が異なります。詳細は，-aオプションの説明を参照してください。

-iオプションを省略した場合，HiRDBファイルシステム領域の管理情報だけを作成します（最大約3.5メガバイトの領域が確保されます）。実際にHiRDBファイルシステム領域を使用したときに，-nオプションで指定したサイズまで拡張していきます。また，キャラクタ型スペシャルファイルで，HDP機能を使用していない場合，-nオプションに指定した容量の領域が保証されるため，ディスクが容量不足になりません。

＜注意事項＞

-nオプションで指定したHiRDBファイルシステム領域サイズが大きいと，初期化するのに時間が掛かります。

通常ファイルで-iオプションを省略した場合，-nオプションで指定したサイズまでデータを書き込む前に，ディスク（OSのファイルシステム）が容量不足になることがあります。HDP機能を使用していない，及びディスクの容量不足を回避したいときは，-iオプションを指定することをお勧めします。なお，ディスクの容量不足が発生すると，HiRDBは次の状態になります。

・-kオプションにDB又はSDBを指定した領域のとき：

　RDエリアが障害閉塞するおそれがあります。

・-kオプションにSYSを指定した領域のとき：

　スワップ先があればスワップしますが，スワップ先がないとHiRDB（HiRDB/パラレルサーバの場合はユニット）が異常終了します。

HDP機能を使用してHiRDBファイルシステム領域を作成する場合は，-iオプションを指定しないでください。-iオプションを指定すると，-nオプションに指定した容量を初期化して実ディスクを割り当てるため，ボリューム容量を仮想化していない状態になります。

(g)　-r

通常ファイルの初期設定の場合に，確認メッセージを表示しないで初期設定するときに指定します。省略した場合，指定した通常ファイルが既にあるときは，初期設定するかどうかの確認メッセージが表示されます。確認メッセージに対してg以外の文字を入力した場合は，初期設定されません。

(h)　-a

RDエリアの自動増分や作業表を使用するSQLの実行などでHiRDBファイルシステム領域内の空き領域がなくなった場合，HiRDBファイルシステム領域を自動的に拡張したいときに指定します。このオプションを指定すると，HiRDBファイルシステム領域サイズが-nオプションで指定した値に達したとき，自動的にHiRDBファイルシステム領域を拡張します。また，システムログファイルの自動拡張機能を適用するシステムログファイルのHiRDBファイルシステム領域を作成する場合もこのオプションを指定します。RDエリアの自動増分及びシステムログファイルの自動拡張機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

なお，自動的に拡張したHiRDBファイルシステム領域の初期化可否を，次の表に示します。

表2‒3　自動的に拡張したHiRDBファイルシステム領域の初期化可否

項番

ファイル種別

-kオプションの指定値

pd_rdarea_expand_formatオペランドの指定値※

増分領域の初期化可否

1

通常ファイル

DB又はSDB

Y

○

2

N

×

3

WORK

−

×

4

SYS

○

5

キャラクタ型スペシャルファイル

DB又はSDB

−

×

6

WORK

7

SYS

（凡例）

○：増分領域を初期化します。

×：増分領域を初期化しません。

−：該当しません。

注※

RDエリアの自動増分が発生した場合に増分領域を初期化するかどうかをシステム共通定義のpd_rdarea_expand_formatオペランドで指定します。

Y：増分領域を初期化する

N：増分領域を初期化しない

pd_rdarea_expand_formatオペランドについては，マニュアル「HiRDB システム定義」を参照してください。

＜規則＞

このオプションは，-k DB，-k SDB，-k SYS，又は-k WORKのときだけ指定できます。

-k DB，-k SDB，又は-k SYSの場合，HiRDBファイルシステム領域内に作成できるHiRDBファイル数は1ファイルです。そのため，-lオプションと-eオプションは指定できません。

-k DB，-k SDB，又は-k WORKの場合，-iオプションの指定有無に関係なく，拡張した領域の初期化は行いません。ただし，-k SYSの場合，ファイルの種類が通常ファイルであれば，拡張した領域を初期化し，ファイルの種類がキャラクタ型スペシャルファイルであれば初期化しません。

-aオプションを指定する場合のHiRDBファイルシステム領域の上限は次のとおりです。

表2‒4　HiRDBファイルシステム領域の上限

-kオプションの指定値

HiRDBファイルシステム領域の上限（単位：メガバイト）

DB

65536

SDB

SYS

102400

WORK

「-n HiRDBファイルシステム領域サイズ」で示したラージファイルの場合の値を参照してください。

(i)　-m

このオプションはLinux版限定です。複製ディスク機能用のHiRDBファイルシステム領域を，プライマリパスとセカンダリパスの両方に作成します。

このオプションを指定する場合，引数のHiRDBファイルシステム領域名にはプライマリパスを指定してください。セカンダリパスは，システム定義のpd_duplicated_fs_suffixオペランドの指定値を基に，コマンドが内部でパスを生成して作成します。

このオプションを指定する場合，次のすべての条件を満たす必要があります。

プライマリパス及びセカンダリパスともに，HiRDBファイルシステム領域がキャラクタ型スペシャルファイル又はブロック型スペシャルファイルで作成している

-kオプション指定値がDB，SYS，UTL，又はWORKのどれかである

システム定義のpd_duplicated_fs_suffixオペランドを指定している

aioライブラリを組み込んでいる

-mオプション指定時のコマンドのリターンコード，及び出力メッセージを次に示します。

HiRDBファイルシステム領域の作成結果

コマンドのリターンコード

KFPI21615-W出力

プライマリパス

セカンダリパス

○

○

正常終了

なし

○

×

警告終了

あり（セカンダリパスを出力）

×

○

警告終了

あり（プライマリパスを出力）

×

○

エラー終了

あり（プライマリパスとセカンダリパスを出力）

（凡例）

○：作成できました。

×：作成できませんでした。

＜注意事項＞

複製ディスク機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(5)　コマンド引数

(a)　キャラクタ型スペシャルファイル名　〜＜パス名＞((165文字以内))

初期化するキャラクタ型スペシャルファイルの名称を指定します。ここで指定した名称が，HiRDBファイルシステム領域名となります。

(b)　通常ファイル名　〜＜パス名＞((165文字以内))

初期化する通常ファイルの名称を指定します。ここで指定した名称が，HiRDBファイルシステム領域名となります。

HiRDBファイルシステム領域内に作成するHiRDBファイルは，ファイル名として30文字まで指定できます。HiRDBファイルシステム領域名/HiRDBファイル名の上限は167文字のため，HiRDBファイルシステム領域名が136文字を超える場合は，HiRDBファイル名の最大長が小さくなるので注意してください。

HiRDBが自動的に生成するHiRDBファイルについては，次のHiRDBファイルシステム領域の最大長を超えないようにしてください。

HiRDBが自動的に生成するHiRDBファイル

HiRDBファイルシステム領域の最大長（単位：文字）

作業表用ファイル（システム定義のpdworkオペランドで指定）

141

監査証跡ファイル（システム定義のpd_aud_file_nameオペランドで指定）

150

プラグインインデクスの遅延一括作成でのインデクス情報ファイル（システム定義のpd_plugin_ixmk_dirオペランドで指定）

136

システムログの自動ログアンロード機能でのアンロードログファイル（システム定義のpd_log_auto_unload_pathオペランドで指定）

136

また，パス名はシンボリックリンクで指定できます。

(6)　規則

pdfmkfsコマンドは，HiRDBの稼働に関係なく実行できます。

pdfmkfsコマンドは，HiRDBファイルシステム領域を初期設定するサーバマシンごとに実行してください。

(7)　注意事項

pdfmkfsコマンドのリターンコードを次に示します。

0：正常終了

1：警告終了（エラーメッセージが出力されたデバイスのHiRDBファイルシステム領域の作成でエラーが発生）

-1：異常終了

リターンコードが0以外の場合，初期設定が正常に完了していないおそれがあります。エラーの要因を取り除いた後，再度コマンドを実行してください。

初期化のとき，ディスクボリューム又はパーティションの容量より大きい値を指定すると，そのパーティションに物理的に続くパーティションを破壊することがあります。したがって，ディスクボリューム又はパーティションの容量より大きな値は指定しないでください。

HiRDBファイルシステム領域名，HiRDBファイル名，及び物理ファイル名の関係を次に示します。

キャラクタ型スペシャルファイル名又は通常ファイル名には，実体名称をそのまま使用しないでOSのlnコマンドで実体名称にシンボリックリンクした名称を指定することをお勧めします。こうすると，次に示す場合の運用が容易になります。

ハードディスクの障害時，別のハードディスクにHiRDBファイルシステム領域を回復する場合

RDエリアの構成変更の場合

pdfmkfsコマンドの結果は，pdfstatfsコマンドで確認できます。

-n，-l，及び-eオプションに指定する値は，使用目的によって次のマニュアルを参照してください。

使用目的がSYSの場合

マニュアル「HiRDB システム導入・設計ガイド」の「システムファイルの容量の見積もり」

使用目的がDBの場合

マニュアル「HiRDB システム導入・設計ガイド」の「RDエリアの容量の見積もり」

使用目的がWORKの場合

マニュアル「HiRDB システム導入・設計ガイド」の「作業表用ファイルの容量の見積もり」，及びマニュアル「HiRDB システム定義」の「pdworkオペランド」

使用目的がUTLの場合

「データベース再編成ユティリティ（pdrorg）」，及び「データベース複写ユティリティ（pdcopy）」

使用目的がSVRの場合

HiRDBファイルシステム領域に作成するHiRDBファイルの使用目的によって，上記マニュアルを参照してください。

使用目的がWORKの場合，システム定義のpd_watch_resourceとpdwork_wrn_pntの指定によって，初期化したHiRDBファイルシステム領域に対する使用率警告メッセージを出力できます。

HiRDBファイルシステム領域に通常ファイルを使用する場合，HiRDB管理者及びルートユーザでのシステム資源の制限値を，-nオプション指定値より大きな値，又は無制限に設定してください。特に，AIX版では，デフォルトのファイルサイズ制限が1ギガバイトなので注意してください。各OSのシェルでのシステム資源の制限値は，limitコマンド又はulimitコマンドで確認できます。AIXでファイルサイズ制限を変更する場合，/etc/security/limitsファイルの修正も必要です。詳細については，各OSのマニュアル，及びシェルのマニュアルを参照してください。

通常ファイルとして作成したHiRDBファイルシステム領域をOSコマンドなどで操作すると，ディスク上に確保された状態が変化する場合があるので注意してください。例えば，cpコマンドでHiRDBファイルシステム領域をコピーした場合，HiRDBがまだ使用していない箇所がディスク上に確保されるため，-nオプションで指定したサイズの範囲内でディスク使用量が増えることがあります。また，-iオプション指定で作成したHiRDBファイルシステム領域に対して，AIXのbackupコマンド，又はrestoreコマンドを使用したバックアップ・リストアをすると，初期化だけをして，HiRDBでまだ使用していない箇所をディスク上から解放してしまう場合があります。詳細については，各OSのマニュアルを参照してください。

HiRDBファイルシステム領域の所有者及びアクセス権の変更については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

(8)　HiRDBファイルシステム領域の管理領域サイズ

HiRDBファイルシステム領域には，管理領域が割り当てられます。割り当てる管理領域の大きさは，OSの種別，-n，-l，-e，-sオプション，使用するファイル種別などによって変わります。管理領域の計算式を次に示します。なお，固定管理部と可変管理部は，該当するHiRDBファイルシステム領域を使用している間は，メモリに読み込まれるため，各プロセスのメモリ消費量が増えることがあります。

管理領域（バイト）
＝固定管理部＋可変管理部＋HiRDBファイル管理部×a
　＋4096(AIX版の場合)

-n 2047以下，かつ-a指定なしの場合

固定管理部＝4096

可変管理部＝↑(20＋4×a)÷c↑×c＋↑(48＋16×(a＋b))÷c↑×c

HiRDBファイル管理部＝↑320÷c↑×c

-n 2048以上又は-k WORK -a指定の場合

固定管理部＝4096

可変管理部＝↑(20＋4×a)÷c↑×c＋↑(56＋24×(a＋b))÷c↑×c

HiRDBファイル管理部＝↑480÷c↑×c

可変記号の説明

a：-lオプションの指定値

b：-eオプションの指定値（省略時は0）

c：-sオプションの指定値（省略した場合，キャラクタ型スペシャルファイルのときは1024，通常ファイルのときは512）

なお，-k DB，-k SDB，又は-k SYSの場合に-aオプションを指定すると，割り当てられる管理領域の大きさは固定となります。管理領域の値を次に示します。

表2‒5　割り当てられる管理領域の大きさ（-k DB，-k SDB，又は-k SYSの場合）

ファイルの種類

OS

セクタ長（-s指定値）

管理領域サイズ（単位：キロバイト）

通常ファイル

AIX

512

9.5

AIX以外

512

5.5

キャラクタ型スペシャルファイル

AIX

1024

11

2048

14

4096

20

AIX以外

1024

7

2048

10

4096

16

(9)　使用例

次のHiRDBファイルシステム領域を初期設定します。

キャラクタ型スペシャルファイル /svr01

通常ファイル /prdb/ios001

 pdfmkfs -n 25   ............1
         -l 10   ............2
         -e 5   .............3
         /svr01   ...........4
 pdfmkfs -n 30   ............5
         -l 15   ............6
         /prdb/ios001    ....7

［説明］

HiRDBファイルシステム領域サイズ　25メガバイト

最大ファイル数　10個

最大増分回数　5回

キャラクタ型スペシャルファイル名　/svr01

HiRDBファイルシステム領域サイズ　30メガバイト

最大ファイル数　15個

通常ファイル名　/prdb/ios001

2.40　pdfrm（HiRDBファイルの削除）

2.40.1　pdfrmの形式と規則

(1)　機能

指定したHiRDBファイルをHiRDBファイルシステム領域から削除します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdfrm 〔-i〕 HiRDBファイルシステム領域名/HiRDBファイル名

(4)　オプション

(a)　-i

HiRDBファイルを削除する前に，確認のメッセージを表示したい場合に指定します。確認のメッセージが表示された場合，yを入力してください。

(5)　コマンド引数

(a)　HiRDBファイルシステム領域名/HiRDBファイル名

削除するHiRDBファイルがあるキャラクタ型スペシャルファイル名，又は通常ファイル名と，削除するHiRDBファイルを指定します。

HiRDBファイルシステム領域名　〜＜パス名＞((165文字以内))

HiRDBファイルシステム領域名を指定します。

HiRDBファイル名　〜＜HiRDBファイル名＞

HiRDBファイル名を指定します。

(6)　規則

pdfrmコマンドは，削除対象のHiRDBファイルがあるHiRDBファイルシステム領域の使用目的がUTL以外の場合，そのHiRDBファイルがあるHiRDBファイルシステム領域を，稼働中のHiRDBが使用中のとき（その中にあるHiRDBファイルを一度でもオープンしたことがあるとき）は実行できません。使用目的がUTLの場合は，HiRDBファイルシステム領域の使用に関係なく実行できますが，指定したHiRDBファイルを稼働中のHiRDBが使用中（ほかのプロセスでオープン中）のときは実行できません。

pdfrmコマンドは，HiRDBファイルシステム領域があるサーバマシンごとに実行してください。

指定したHiRDBファイルが使用中（ほかのプロセスでオープン中）の場合は，削除できません。

-iオプションを指定した場合，確認のメッセージに対してy以外の文字を入力したときは，HiRDBファイルは削除されません。

共用RDエリアとして使用しているHiRDBファイルシステム領域に対して実行する場合，更新可能バックエンドサーバがあるサーバマシンから実行してください。

(7)　注意事項

pdfrmコマンドのリターンコードを次に示します。

0：正常終了

-1：異常終了

リターンコードが0以外の場合，HiRDBファイルを正常に削除できていないおそれがあります。エラーの要因を取り除いた後，指定したHiRDBファイルシステム領域名/HiRDBファイル名が正しいかpdflsコマンドで確認し，再度コマンドを実行してください。

pdfrmコマンドの結果は，pdflsコマンドで確認できます。

pdfrmコマンドは使用目的がUTLの場合を除き，HiRDBファイルを強制的に削除する非常用のコマンドです。通常はその使用目的に応じてデータべース構成変更ユティリティ，pdlogrmコマンド，pdstsrmコマンドなどの上位のコマンドを使用してHiRDBファイルを削除してください。

pdfrmコマンドはRDエリアを構成しているHiRDBファイルでも強制的に削除できるため，実行するときには十分注意してください。

2.41　pdfrstr（HiRDBファイルシステムのリストア）

2.41.1　pdfrstrの形式と規則

(1)　機能

pdfbkupコマンドでバックアップしたHiRDBファイルシステムを格納（リストア）します。また，HiRDBファイル単位にも格納できます。

HiRDBファイルシステム領域の状態を表示（pdfstatfsコマンドを入力）した時，増分回数，又は不連続な空き領域の総数が算出された場合，次の処置をすると，増分された領域，又は不連続な空き領域を統合し，HiRDBファイルシステム領域を有効に利用できます。

HiRDBファイルシステムの退避（pdfbkupコマンド）

HiRDBファイルシステム領域の初期設定（pdfmkfsコマンド）

退避したHiRDBファイルシステムの，初期設定されたHiRDBファイルシステムへの格納（pdfrstrコマンド）

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdfrstr 〔-y〕〔-q〕 〔-｛t｜o｜r｝〕

　　　　　　バックアップファイル名〔/HiRDBファイル名〕

　　　　　　HiRDBファイルシステム領域名

(4)　オプション

(a)　-y

HiRDBファイルシステムをリストアするときに，ユーザの確認なしで実行する場合に指定します。省略した場合，確認してから実行します。

(b)　-q

バックアップファイルの情報を一括して書き込み，高速にリストアする場合に指定します。

(c)　-｛t｜o｜r｝

格納先のHiRDBファイルシステム領域に，リストアするバックアップファイル中にあるHiRDBファイルと同じ名称のHiRDBファイルがある場合の処理を指定します。

-t：

タイムスタンプを比較し，格納先のHiRDBのHiRDBファイルが更新されている場合は，格納しません。

-o：

バックアップファイル中のHiRDBファイルを格納しません。

-r：

タイムスタンプに関係なく，バックアップファイル中のHiRDBファイルを格納します。OSの時刻を遅らせたことによって，バックアップファイル中にあるHiRDBファイルのタイムスタンプが，格納先のHiRDBファイルシステム領域にあるHiRDBファイルより古くなっていても，データ自体はバックアップファイル中にあるHiRDBファイルの方が新しいことを保証されている場合などに使用します。

(5)　コマンド引数

(a)　バックアップファイル名〔/HiRDBファイル名〕

pdfbkupコマンドで退避したバックアップファイル名を指定します。HiRDBファイル単位に格納する場合は，HiRDBファイル名も指定します。

バックアップファイル名

バックアップファイル名を指定します。

HiRDBファイル名　〜＜HiRDBファイル名＞

HiRDBファイル名を指定します。

(b)　HiRDBファイルシステム領域名　〜＜パス名＞((165文字以内))

格納先のHiRDBファイルシステム領域名を指定します。

(6)　規則

pdfrstrコマンドは，HiRDBが停止中のときだけ実行できます。

pdfrstrコマンドは，HiRDBファイルシステム領域があるサーバマシンごとに実行してください。

格納先のHiRDBファイルシステム領域にバックアップファイルにないHiRDBファイルがある場合，そのHiRDBファイルはpdfrstrコマンド実行後も残ります。

-yオプションを省略した場合は，確認メッセージが表示されます。このとき，確認メッセージに対してＧ以外の文字を指定した場合は，HiRDBファイルシステムは格納されません。

格納先のHiRDBファイルシステム領域にHiRDBファイルが一つもない場合，-qオプションを仮定して実行します。

-qオプションを指定して実行中に異常終了した場合，格納先のHiRDBファイルシステム領域が，破壊される可能性があります。このため，格納先のHiRDBファイルシステム領域内にHiRDBファイルがある場合，pdfbkupコマンドで退避しておいてください。

退避したHiRDBファイルのレコード長が，回復先のHiRDBファイルシステム領域のセクタ長の整数倍でない場合，HiRDBファイルは回復できません。HiRDBファイルのレコード長は，退避する前にpdflsコマンドで確認しておいてください。また，回復先のHiRDBファイルシステム領域のセクタ長は，pdfstatfsコマンドで確認できます。

(7)　注意事項

pdfrstrコマンドの実行結果は，コマンド実行時のリターンコード又はエラーメッセージの有無で確認できます。

pdfrstrコマンドのリターンコードを次に示します。

0：正常終了

1：警告終了（一部のHiRDBファイルの処理がエラー終了）

-1：異常終了

リターンコードが0以外の場合，バックアップしたHiRDBファイルシステムの格納が正常に完了していないおそれがあります。エラーの要因を取り除いた後，再度コマンドを実行してください。

ユティリティ用HiRDBファイルシステム領域に格納する場合，ユティリティ実行中は格納できません。ユティリティ終了後，実行してください。

OSの時刻を遅らせる場合のpdfrstrコマンドの実行への影響については，マニュアル「HiRDB システム運用ガイド」を参照してください。

2.42　pdfssync（HiRDBファイルシステム領域の同期実行）

2.42.1　pdfssyncの形式と規則

(1)　機能

複製ディスク機能使用時に，障害が発生した（最新状態になっていない）側のHiRDBファイルシステム領域に対して，正常（最新状態になっている）側の内容をコピーします

pdfssyncコマンドはLinux限定です。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdfssync 〔-s サフィックス名〕 〔-r 同期先〕 〔-k 動作種別〕 〔-S サーバ名〕
　　　　　　-f HiRDBファイルシステム領域名 〔-W 実行監視時間〕

(4)　オプション

(a)　-s サフィックス名　〜＜パス名＞((1〜3文字))

-k refを指定，又は-kを省略している場合，システム定義pd_duplicated_fs_suffixオペランドの値を指定します。

-k updを指定している場合，指定不要です。指定しても無視します。

(b)　-r 同期先

コピー対象を指定したい場合に，同期先を指定します。

pri：

セカンダリボリュームの内容をプライマリボリュームへコピーします。

sec：

プライマリボリュームの内容をセカンダリボリュームへコピーします。

コピー元が複製ディスク機能用のHiRDBファイルシステム領域ではない場合，コマンドはエラー終了します。

コマンド実行時にKFPI21618-Eメッセージ（理由コードnot determined）が出力された場合に，このオプションを指定してコマンドを再実行してください。

更新可能モードで，HOLD状態のボリュームからOPEN状態のボリュームへ同期をとる同期先の指定はできません。指定する場合は，HiRDBを停止し，参照可能モードで実行してください。ファイルの状態はpdfstatfs -Aコマンドで確認してください。

(c)　-k 動作種別　〜《ref》

pdfssyncの動作種別を指定します。次のどちらかを指定してください。

ref：

参照可能モードで動作します。同期するHiRDBファイルシステム領域を更新するコマンドやSQLと同時実行できませんが，参照するコマンドやSQLとは同時実行できます。

upd：

更新可能モードで動作します。同期するHiRDBファイルシステム領域を更新・参照するコマンドやSQLと同時実行できます。なお，一部同時実行できないコマンドがあります。詳細はマニュアル「HiRDB システム運用ガイド」の「複製ディスク機能を用いた系切り替え構成の回復方法」を参照してください。

(d)　-Sサーバ名　〜＜識別子＞((1〜8文字))

【HiRDB/シングルサーバの場合】

指定不要です。指定しても無視します。

【HiRDB/パラレルサーバの場合】

-k updを指定している場合，HiRDBファイルシステム領域のあるフロントエンドサーバ，バックエンドサーバ，又はディクショナリサーバを指定します。

-k refを指定，又は-kを省略している場合，指定不要です。指定しても無視します。

(e)　-f HiRDBファイルシステム領域名　〜＜パス名＞((165文字以内))

コピー対象の複製ディスク機能用のHiRDBファイルシステム領域名（プライマリパス）を指定します。

-rオプションを指定していない場合，pdfstatfs -Aコマンドで表示される[duplicated fs]の状態によって，コピー元を決定します。次の表に示すように，状態の組み合わせによってはコピーしない場合があります。その場合，コピーはしないで，KFPI21618-Eメッセージ（理由コードnot determined）を出力してコマンドはエラー終了します。エラー終了した場合，-rオプションを指定してコマンドを再実行してください。

primary

secondary

open

open以外

open

コピーしない

プライマリ→セカンダリにコピー

open以外

セカンダリ→プライマリにコピー

コピーしない

(f)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pdfssyncコマンドの実行時間を監視する場合，その監視時間を分単位で指定します。このオプションは-k updを指定したときだけ有効になります。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

【-k refを指定した場合】

pdfssyncコマンドは，HiRDBの稼働に関係なく実行できます。

pdfssyncコマンドは，HiRDBファイルシステム領域があるサーバマシンごとに実行してください。

このコマンドを使用した回復手順は，対象のHiRDBファイルシステム領域に格納しているHiRDBファイルの種別により異なります。詳細については，マニュアル「HiRDB システム運用ガイド」の「複製ディスク機能を用いた系切り替え構成の回復方法」を参照してください。

【-k updを指定した場合】

pdfssyncコマンドは，HiRDBの稼働中のときだけ実行できます。

pdfssyncコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

このコマンドを使用した回復手順については，マニュアル「HiRDB システム運用ガイド」を参照してください。

システムマネジャのユニットに，フロントエンドサーバ，バックエンドサーバ，又はディクショナリサーバが存在しない場合，システムマネジャのユニットのHiRDBファイルシステム領域に対して-k updを指定した同期の取得はできません。-k refを指定して実行してください。

(6)　注意事項

pdfssyncコマンドのリターンコードを示します。

0：正常終了

-1：異常終了

リターンコードが0以外の場合，処理が正常に完了していないおそれがあります。エラーの要因を取り除いた後，再度コマンドを実行してください。

2.43　pdfstatfs（HiRDBファイルシステム領域の状態表示）

2.43.1　pdfstatfsの形式と規則

(1)　機能

HiRDBファイルシステム領域の状態を表示します。

(2)　実行者

権限がないユーザでも実行できます。

(3)　形式

　pdfstatfs ｛〔-｛c｜d｝〕〔｛-S｜-x 〔-y〕｝〕 〔-b〕 HiRDBファイルシステム領域名
　　　　　　｜-A 〔-x 〔-y〕〕 HiRDBファイルシステム領域名｝

(4)　オプション

(a)　-｛c｜d｝

c ：

HiRDBファイルシステム領域中に割り当てられた領域の最大使用量，最大使用ファイル数，及び最大使用増分回数を0にします。HiRDBファイルシステム領域の使用目的がWORK，及びUTLの場合に有効です。

d ：

HiRDBファイルシステム領域中に割り当てられた領域の最大使用量，最大使用ファイル数，及び最大使用増分回数を表示します。

(b)　-S

HiRDBファイルシステム領域中の，空き領域の状態を表示します。

(c)　-x

DAT形式で情報を表示する場合に指定します。

(d)　-y

-xオプション指定時に，ヘッダを付ける場合に指定します。

(e)　-b

HiRDBファイルシステム領域のセクタ長を表示します。

(f)　-A

HiRDBファイルシステム領域のすべての情報を表示します。

-d，-S，及び-bオプション指定時に表示する情報に加えて，次の情報を表示します。

HiRDBファイルシステム領域の最大増分回数を変更する際の上限値

HiRDBファイルシステム領域の初期化有無

HiRDBファイルシステム領域の作成先のファイル種別

HiRDBファイルシステム領域の複製ディスク機能使用有無

(5)　コマンド引数

(a)　HiRDBファイルシステム領域名　〜＜パス名＞((165文字以内))

HiRDBファイルシステム領域名を指定します。

(6)　規則

pdfstatfsコマンドは，HiRDBの稼働に関係なく実行できます。

pdfstatfsコマンドは，HiRDBファイルシステム領域があるサーバマシンごとに実行してください。

共用RDエリアとして使用しているHiRDBファイルシステム領域に対して実行する場合，更新可能バックエンドサーバがあるサーバマシンから実行してください。

(7)　注意事項

pdfstatfsコマンド実行時のリターンコードは，0の場合は正常終了，-1の場合は異常終了となります。

-cオプションで最大使用量，最大使用ファイル数，及び最大使用増分回数を0にしてから，その後-dオプションで表示すると，その間に使用したHiRDBファイルシステム領域の最大使用量，最大使用ファイル数，及び最大使用増分回数を取得できます。

-cオプションで最大使用量，最大使用ファイル数，及び最大使用増分回数を0にできるのは，HiRDBファイルシステム領域の使用目的がWORK，及びUTLの場合だけです。

HiRDBファイルシステム領域の使用目的がSYS，DB，及びSVRの場合，-cオプションで最大使用量，最大使用ファイル数，及び最大使用増分回数を0にはできません。ただし，pdfzeroinitコマンドで使用済み領域の初期化を行うと最大使用量，最大使用ファイル数，及び最大使用増分回数は0になります。

したがって，最大使用量，最大使用ファイル数，及び最大使用増分回数はpdfmkfsコマンド実行時点又はpdfzeroinitコマンド実行時点からの累積を表示します。

HDP機能を使用している場合は，-cオプションを指定しないでください。-cオプションを指定すると，pdfzeroinitコマンドで使用済みの領域が初期化できなくなります。

(8)　出力形式

(a)　-x及び-yオプション省略時

 user area capacity         aa...a[kB]
 remain user area capacity  bb...b[kB]
[peak capacity              mm...m[kB]]
 available file size        cc...c[kB]
 available file count       dd...d
 current file count         ee...e
 remain file count          ff...f
 free area count            gg...g
 available expand count     hh...h
 current expand count       ii...i
[sector size                qq...q[Byte]]
 initialize area kind       jj...j
 initialize user id         kk...k
 initialize time            ll...l
 area auto expand           rr...r
[peak file count            ss...s]
[peak expand count          tt...t]
[limit expand count         uu...u]
[clear option               v]
[file system type           www]
[area type                  xx...x]
[duplicated fs              yy...y]
[    primary                zz...z]
[    secondary              zz...z]

[***** HiRDB file system area space information *****]
[offset[kB]     size[kB]  used/unused]
[   nn...n      oo...o    pp...p]

［説明］

aa...a：

HiRDBファイルシステム領域中で，ユーザに割り当てられた領域の総容量（単位：キロバイト）（10進数10けた以内で右詰め表示）

bb...b：

ユーザに割り当てられた領域の中で，未使用領域（HiRDBファイルとして割り当てられていない領域）の容量（単位：キロバイト）（10進数10けた以内で右詰め表示）

cc...c：

一つのエクステント内に確保できる1HiRDBファイルの最大容量（単位：キロバイト）（10進数10けた以内で右詰め表示）

dd...d：

pdfmkfsコマンドの-lオプションで指定した，作成できるファイルの上限数（10進数4けた以内で右詰め表示）

ee...e：

作成済みのHiRDBファイルの数（10進数4けた以内で右詰め表示）

ff...f：

作成できるHiRDBファイルの数（最大作成可能ファイル数−作成済みファイル数）（10進数4けた以内で右詰め表示）

gg...g：

不連続な空き領域の総数（10進数5けた以内で右詰め表示）

hh...h：

pdfmkfsコマンドの-eオプションで指定した，HiRDBファイルシステム領域の増分回数の上限値（10進数5けた以内で右詰め表示）

ただし，pdfchfsコマンドで増分回数の上限値を変更していた場合は，pdfchfsコマンドの-eオプションで指定した値が表示されます。

ii...i：

HiRDBファイルシステム領域の増分回数合計値（10進数5けた以内で右詰め表示）

jj...j：

pdfmkfsコマンドの-kオプションで指定した，HiRDBファイルシステム領域の使用目的（9文字以内）

kk...k：

HiRDBファイルシステム領域を初期化したユーザのログイン名称

ll...l：

HiRDBファイルシステム領域を初期化した時刻（24文字）

曜日　月　日　時：　分：　秒　年（西暦）の形式で表示されます。

2005年1月7日(金)9時5分8秒の場合の出力例を次に示します。

initialize time Fri Jan 07 09:05:08 2005

mm...m：

現時点でのユーザ最大使用量（10進数10けた以内で右詰め表示）。-d又は-Aオプションを指定したときだけ表示されます。

nn...n：

HiRDBファイルシステム領域中の，使用中領域又は未使用領域の先頭オフセット（右詰め表示）。-S又は-Aオプションを指定したときだけ表示されます。

oo...o：

HiRDBファイルシステム領域中の，使用中又は未使用の領域サイズ（右詰め表示）。-S又は-Aオプションを指定したときだけ表示されます。

pp...p：

使用中又は未使用の表示。

used：使用中領域

unused：未使用領域

-S又は-Aオプションを指定したときだけ表示されます。

qq...q：

HiRDBファイルシステム領域のセクタ長（10進数4けた以内で右詰め表示）。

通常ファイルの場合は512，キャラクタ型スペシャルファイルの場合はpdfmkfsコマンドの-sオプションで指定したセクタ長（省略時は1,024）となります。

-b又は-Aオプションを指定したときだけ表示されます。

rr...r：

HiRDBファイルシステム領域を自動的に拡張する機能の適用，非適用の表示。

RDエリアの自動増分時にHiRDBファイルシステム領域内の空き領域がなくなった場合，HiRDBファイルシステム領域を自動的に拡張するかどうかを表示します。

USE：適用

NOUSE：非適用

USEが表示されている場合，user area capacityの値は変動します。

ss...s：

現時点でのユーザ最大使用ファイル数（10進数4けた以内で右詰め表示）。-d又は-Aオプションを指定したときだけ表示されます。

tt...t：

現時点でのユーザ最大使用増分回数（10進数5けた以内で右詰め表示）。-d又は-Aオプションを指定したときだけ表示されます。

uu...u：

HiRDBファイルシステム領域の最大増分回数を変更する際の上限値（10進数5けた以内で右詰め表示）。

pdfmkfsコマンドの-eオプションで指定した最大増分回数です。

pdfchfsコマンドの-eオプションで指定できる上限値となります。

-Aオプションを指定したときだけ表示されます。

v：

HiRDBファイルシステム領域の初期化有無。

pdfmkfsコマンドを実行した際の-iオプション指定の有無を表します。

Y：-iオプション指定あり

N：-iオプション指定なし

バージョン09-50より前のHiRDBで作成したHiRDBファイルシステム領域の場合は，"-"が表示されます。

-Aオプションを指定したときだけ表示されます。

www：

HiRDBファイルシステム領域の作成先のファイル種別。

CHR：キャラクタ型スペシャルファイル

BLK：ブロック型スペシャルファイル（Linux限定）

REG：通常ファイル

バージョン09-50より前のHiRDBで作成したHiRDBファイルシステム領域の場合は，"---"が表示されます。

-Aオプションを指定したときだけ表示されます。

xx...x：

HiRDBファイルシステム領域種別。

NORMAL：通常のHiRDBファイルシステム領域

UNSUPPORTED：未サポートのHiRDBファイルシステム領域

-Aオプションを指定したときだけ表示されます。

yy...y：

pdfmkfs -mオプションを指定し，複製ディスク機能を適用しているかを表します。

USE：適用

NOUSE：非適用

-Aオプションを指定したときだけ表示されます。

zz...z：

複製ディスク機能適用時のアクセス可否。

OPEN：オープン状態（アクセス可）

CLOSE：クローズ状態（アクセス不可）

HOLD：不整合発生による閉塞状態（アクセス不可）

-Aオプションを指定し，かつ[yy...y]が"USE"の場合にだけ表示されます。

(b)　DAT形式での出力形式（-x及び-yオプション指定時）

"USER_AREA_CAPACITY","REMAIN_USER_AREA_CAPACITY","PEAK_CAPACITY",
"AVAILABLE_FILE_SIZE","AVAILABLE_FILE_COUNT","CURRENT_FILE_COUNT",
"REMAIN_FILE_COUNT","FREE_AREA_COUNT","AVAILABLE_EXPAND_COUNT",
"CURRENT_EXPAND_COUNT","SECTOR_SIZE","INITIALIZE_AREA_KIND",
"INITIALIZE_USER_ID","INITIALIZE_TIME","AREA_AUTO_EXPAND",
"PEAK_FILE_COUNT","PEAK_EXPAND_COUNT","LIMIT_EXPAND_COUNT",
"CLEAR_OPTION","FILE_SYSTEM_TYPE","AREA_TYPE","DUPLICATED_FS",
"PRIMARY","SECONDARY" [CR]
aa...a,bb...b,mm...m,
cc...c,dd...d,ee...e,
ff...f,gg...g,hh...h,
ii...i,qq...q,"jj...j",
"kk...k","ll...l","rr...r",
ss...s,tt...t,uu...u,
"v","www","xx...x","yy...y",
"zz...z","zz...z" [CR]

注

[CR]は，改行を表します。

［DAT形式での出力規則］

DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

セクタ長，現時点でのユーザ最大使用量，現時点でのユーザ最大使用ファイル数，及び現時点でのユーザ最大使用増分回数は，各情報取得用のオプションを組み合わせて指定した場合だけ表示します。各情報取得用のオプションを指定しなかった場合は，該当する項目は表示しないで，空要素として表示します。

2.44　pdfzeroinit（HiRDBファイルシステム領域内の使用済み領域の初期化）

2.44.1　pdfzeroinitの形式と規則

(1)　機能

HiRDBファイルシステム領域内の使用済み領域を初期化します。

なお，pdfzeroinitコマンドは，HDP機能を使用してHiRDBファイルシステム領域を仮想化しているときに使います。

HDP機能を使用したHiRDBファイルシステム領域の仮想化については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdfzeroinit　HiRDBファイルシステム領域名

(4)　コマンド引数

(a)　HiRDBファイルシステム領域名　〜＜パス名＞((1〜165バイト))

使用済み領域を初期化するHiRDBファイルシステム領域名を指定してださい。

(5)　規則

pdfzeroinitコマンドは，HiRDBの稼働に関係なく実行できます。

pdfzeroinitコマンドは，HiRDBファイルシステム領域があるサーバマシンごとに実行してください。共用RDエリアとして使用しているHiRDBファイルシステム領域に対して実行する場合，更新できるバックエンドサーバがあるサーバマシンから実行してください。

指定したHiRDBファイルシステム領域内にHiRDBファイルがない場合に実行できます。HiRDBファイルがある場合は，警告終了します。

pdfzeroinitコマンドで初期化する範囲は，HiRDBファイルシステム領域の管理領域の終端から現時点でのユーザ最大使用量までの範囲です。

指定したHiRDBファイルシステム領域内にある使用済み領域を初期化した場合，現時点でのユーザ最大使用量，現時点でのユーザ最大使用ファイル数，及び現時点でのユーザ最大使用増分回数は0になります。

(6)　注意事項

pdfzeroinitコマンドのリターンコードを次に示します。

0：正常終了

1：警告終了（使用済み領域の初期化がエラー終了）

-1：異常終了

リターンコードが0以外の場合，初期化が正常に完了していないおそれがあります。エラーの要因を取り除いた後，再度コマンドを実行してください。

pdfzeroinitコマンドは初期化するサイズによって，書き込み処理に時間が掛かります。なお，業務でアクセス中のHiRDBファイルシステム領域に対しては，pdfzeroinitコマンドを実行しないでください。業務に影響を与えることがあります。

HiRDBファイルシステム領域の種別がWORKのHiRDBファイルシステム領域に対してpdfzeroinitコマンドを実行する場合は，HiRDBが停止した状態で実行してください。HiRDB稼働中に実行すると，作業表用ファイルを必要とするSQL及びユティリティに影響を与えることがあります。

初期化対象の領域に対して，pdfstatfs -cコマンドを実行しないでください。pdfzeroinitコマンドで使用済みの領域を初期化できなくなります。

2.45　pdgeter（障害情報の取得）

2.45.1　pdgeterの形式と規則

(1)　機能

HiRDBシステムで障害が発生した場合，pdgeterコマンドを実行することで，障害情報を指定ディレクトリ又はDATなどに出力できます。

なお，pdgeterコマンドは，バージョン10-03以降にサポートされた機能，及びHiRDBがサポートする新規プラットフォームに対応していません。

また，pdgeterコマンドで取得する情報はpdinfogetコマンドで取得する情報より少ないため，障害情報を取得する際はpdinfogetコマンドを使用してください。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdgeter 〔｛-o 出力先ディレクトリ名｜出力先デバイス名｝〕

　　　　　〔-w ワークディレクトリ名〕 〔-x ホスト名〔，ホスト名〕…〕

　　　　　〔-am〕

　　　　　〔-t〕

(4)　オプション

(a)　｛-o 出力先ディレクトリ名｜出力先デバイス名｝

障害情報を出力するディレクトリ名又はデバイス名を指定します。省略した場合，$PDDIR/erinf/outinf下に出力されます。

出力先ディレクトリ名　〜＜パス名＞

障害情報をディレクトリに出力する場合，そのディレクトリ名を絶対パス名で指定します。pdgeterコマンドを実行するホストのディレクトリ名を指定してください。

出力先デバイス名　〜＜パス名＞

障害情報をDATなどに出力する場合，そのデバイス名を指定します。pdgeterコマンドを実行するホストに備え付けてあるDATなどのデバイス名を指定してください。

(b)　-w ワークディレクトリ名　〜＜パス名＞

テープ装置にトラブルシュート情報を出力するとき，出力する情報をいったん蓄えるためのワークディレクトリ名を指定します。ディレクトリ名は，pdgeterコマンドを実行するサーバマシンのディレクトリ名を絶対パスで指定します。HiRDBは，このワークディレクトリ下に一時的にワークファイルを作成します。この一時的ワークファイルを作成するのは次に示す場合です。

-tオプションを指定する場合

pdgeterコマンド起動サーバマシン以外の情報をテープ装置に出力する場合

このオプションを省略した場合，$PDDIR/erinf/workが仮定されます。

また，このオプションには"/dev"で始まるディレクトリを指定できません。

(c)　-x ホスト名〔，ホスト名〕…　〜＜識別子＞((1〜32))

障害情報を取得するホストの名称を指定します。省略した場合，pdgeterコマンドを実行したホストの名称が仮定されます。

(d)　-am

障害情報の種類を指定します。

-a

すべての障害情報を取得する場合に指定します。省略した場合は，最小限の障害情報だけを取得します。-aオプションと取得する障害情報の関係を次の表に示します。

このオプションを指定しても，すべてのHiRDBシステムのマスタディレクトリ，データディレクトリ，及びデータディクショナリの情報は取得できません。pdgeterコマンドを実行したホストがあるHiRDBシステムで，かつ-xオプションにマスタディレクトリなどがあるホスト（シングルサーバ又はディクショナリサーバ）を指定した場合に限り，マスタディレクトリ，データディレクトリ，及びデータディクショナリの情報を取得します。

-m

共用メモリダンプの情報を取得しない場合，及びシステム情報のOSの情報だけを取得する場合に指定します。

表2‒6　-aオプションと取得する障害情報の関係

取得情報

-aオプション

備考

あり

なし

$PDDIR/spool下の全ファイル

○

○

なし。

$PDDIR/conf下の全ファイル

○

○

$PDDIR/.dbenv下の全ファイル

○

○

RPCトレースファイル

○

○

$PDDIR/tmp下の全ファイル

○

×

pdinit制御文

△

△

pdgeterコマンドを実行する前に，コマンド実行ホストの$PDDIR/conf下に次のファイル名称でコピーしておいてください。

pdinit制御文：$PDDIR/conf/INITCONT

コピー先のホストを次に示します。

＜-aオプション指定あり＞

コマンド実行ホストにコピーしてください。

＜-aオプション指定なし＞

障害情報の取得対象ホストのどれかにコピーしてください。

pdmod制御文

△

△

pdgeterコマンドを実行する前に，障害情報の取得対象ホストのどれかの$PDDIR/conf下にコピーしておいてください。

マスタディレクトリ

△

×

コマンド実行ホストに$PDDIR/conf/INITCONTがある場合に障害情報を取得します。

pdmodで拡張したHiRDBファイルについては，取得対象外とします。

障害情報の取得対象ホストが複数で，かつ他ホストがコマンド実行ホストと異なるHiRDBシステムのホストの場合は，他ホストの情報は取得できません。コマンド実行ホストがあるHiRDBシステムの情報だけ取得できます。

-xオプションにシングルサーバ又はディクショナリサーバを指定しているときだけ，情報を取得します。

情報を取得するための，一時的に必要なディスク容量は，pdflsコマンドで求めてください（取得するHiRDBファイルのレコード長×レコード数）。

データディレクトリ

△

×

データディクショナリ

△

×

OSライブラリ

○

○

OSによって異なります。

AIX版

/usr/lib/libdl.a

/lib/libm.a

/lib/libc.a

Linux版

/usr/lib/libdl.so

/lib/libm.so

/lib/libc.so

ソートライブラリ

×

×

なし。

共用メモリ内容

△

△

HiRDBが稼働中のときだけ障害情報を取得します。

-mオプション指定時は障害情報を取得しません。

ファイル名はshmdumpとなり，$PDDIR/spool/pdshmdump下へ出力されます。

マニュアル「HiRDB システム導入・設計ガイド」を参照し，共用メモリの見積もりをしてください。

【HiRDB/シングルサーバの場合】

ユニットコントローラが使用する共用メモリの計算式＋シングルサーバが使用する共用メモリの計算式

【HiRDB/パラレルサーバの場合】

ユニットコントローラが使用する共用メモリの計算式＋各サーバが使用する共用メモリの計算式

なお，これらの容量は，HiRDB稼働中にpdls -d memコマンドを実行すれば確認できます。

システム情報

△

△

ファイル名はpdgeter.sysinf.hhmmss（hh：時，mm：分，ss：秒）となります。

-mオプション指定時は，OSの情報だけを出力します。

HiRDB停止時は，シェル内部で実行するHiRDBの一連のコマンドが異常終了するため，OSの情報とHiRDBの一連のコマンドのエラーメッセージをファイルに出力します。

ログ

×

×

なし。

システムログファイル

×

×

ユーザ用RDエリア

×

×

（凡例）

○：取得します。

△：備考の内容によって取得する情報が異なります。

×：取得しません。

(e)　-t

トラブルシュート情報をDAT以外のテープ装置に出力する場合に指定します。

AIX版の場合，このオプションは指定できません。

このオプションを指定する場合は，必ず-wオプションでワークディレクトリ名称を指定してください。

pdgeterコマンドは，tarコマンドの追加書き（-rオプション）を使用し，テープ装置にトラブルシュート情報を取得しますが，テープ装置によっては，追加書きオプションをサポートしていない場合があり，これらのテープ装置には障害情報を出力できませんでした。-tオプションを指定すると，取得するトラブルシュート情報をいったんワークディレクトリ上に格納した後，追加書きなしでテープ装置に出力します。これによって，DAT以外のテープ装置にもトラブルシュート情報を取得できます。

(5)　規則

pdgeterコマンドは，HiRDBの稼働に関係なく実行できます。

pdgeterコマンドは任意のサーバマシンで実行できます。ただし，障害情報の取得対象ホスト間でリモートシェルが実行できるよう設定しておく必要があります。pdgeterコマンドを実行するホストだけの障害情報を取得する場合には，これに該当しません。また，-aオプション指定時には，障害情報を取得するホストのどれかで実行してください。

HiRDBが停止中のときは，共用メモリダンプの情報は取得されません。

障害情報をまとめたものをシェルスクリプト内でcompressコマンドを使用して圧縮しています。したがって，compress機能を使用できないシステムでは障害情報を圧縮しないで出力します。

(6)　注意事項

出力先ディレクトリ又はワークディレクトリが$PDDIR下の場合は，容量不足のためHiRDBが異常終了することがあります。そのため，十分なディスク容量を用意しておく必要があります。

指定した出力先ディレクトリ又はワークディレクトリがシステムにあるかどうか確認してください。指定を省略した場合は仮定値のディレクトリにファイルが作成されますが，既に$PDDIR/erinf/outinf又は$PDDIR/erinf/workのファイルがあるときはエラーメッセージを出力し処理を打ち切ります。存在しないディレクトリ又は書き込み権限のないディレクトリを指定した場合は，エラーメッセージを出力し処理を打ち切ります。

存在しないデバイスを指定した場合は，エラーメッセージを出力し処理を打ち切ります。

出力先ディレクトリ又はワークディレクトリ下に次のディレクトリ又はファイルがある場合は，エラーメッセージを出力し処理を打ち切ります。

PDDIR，lib，usr，HiRDB

ネットワーク障害の場合，自ホストの情報は取得できますが，他ホストの情報は取得できません。ただし，-xオプションに複数のホスト名を指定し，かつ-oオプションに出力先デバイス名を指定した場合は，自ホストの情報も取得できない可能性があります。この場合，-xオプションに指定するホストを自ホストだけにしてpdgeterコマンドを実行すれば自ホストの情報は取得できます。

ディレクトリに出力したファイルの名称はホストごとにユニークになりますが，コマンド実行ホストにまとめた結果をそのホストで展開すると障害情報が上書きされるので注意してください。また，デバイスに出力した障害情報は，同じDATなどを数回使用すると以前の障害情報が上書きされるので注意してください。

pdinitの制御文ファイル中のコメントが，次に示す形式と異なる場合は，pdgeterコマンドが正常に動作しないため，マスタディレクトリなどの情報を取得できません。

1行に複数のコメント（/＊と＊/で囲まれたもの）を記述している場合，コメント間に1バイト以上の空白があること。

コメントと制御文の間に1バイト以上の空白があること。

系切り替え機能を使用している場合，障害情報の取得方法は次のようになります。

IPアドレス引き継ぎあり

実行系ホストの情報は，コマンド実行ホストが実行系ホストでなくても情報は取得できます。待機系ホストの情報は，コマンド実行ホストが待機系ホストでなければ情報を取得できないので，待機系ホストにリモートログインしてpdgeterコマンドを実行する必要があります。

IPアドレス引き継ぎなし

実行系ホスト，待機系ホストで名称が異なるため，これらのホストの名称を-xオプションに指定すれば情報を取得できます。また，-aオプションを指定して，マスタディレクトリなどの情報を取得する場合は，-xオプションに実行系ホスト及び待機系ホストのホスト名を指定してください。

pdgeterコマンドを1ホスト上で複数同時実行すると，正常に動作しないため，正しい障害情報は取得できません。

-aオプションを指定した場合，pdgeterコマンド実行ホストのシステム共通定義（$PDDIR/conf/pdsys）のpdstart及びpdunitオペランドの指定値を解析します。このとき，一つのpdstart又はpdunitオペランドが複数行にわたって記述されている場合，pdgeterコマンドは正常に動作しません。

-wオプション指定時，一時的に次の計算式に示す空きディスク容量が必要になります。

ａ×ｂ×２

ａ：トラブルシュート情報を取得するサーバマシン数

ｂ：トラブルシュート情報を格納するファイル容量の総和

トラブルシュート情報を格納するファイルについては表「-aオプションと取得する障害情報の関係」を参照してください。

pdgeterコマンドの結果は，コマンド実行時のリターンコード，又はエラーメッセージの有無で確認できます。pdgeterコマンドのリターンコードを次に示します。

0：正常終了

4：警告終了（一部の情報取得処理をスキップ）

8：異常終了

12：割り込みによる終了

HiRDBの稼働中にpdgeterコマンドを実行する場合，出力先ディレクトリ又はワークディレクトリが$PDDIR下のディレクトリのときは，容量不足によってHiRDBが停止することがあるので十分なディスク容量を用意しておく必要があります。また，障害情報を出力先ディレクトリに残しておくと，ディスク容量が不足する可能性があるので不要な障害情報は削除しておいてください。pdgeterコマンドの実行ホストに用意する，ディスク容量及びデバイス容量の見積もりを次に示します。

-xオプションに指定するホスト

-oオプションに指定する出力先

ディレクトリ

デバイス

一つ

＜ディスク容量＞

対象ホストにある取得情報ファイルの総和

＜デバイス容量＞

−

＜ディスク容量＞

対象ホストにある取得情報ファイルの総和※１※２※３

＜デバイス容量＞

対象ホストにある取得情報ファイルの総和

複数

＜ディスク容量＞

対象ホストにある取得情報ファイルの総和

＜デバイス容量＞

−

＜ディスク容量＞

対象ホストのすべての取得情報ファイルの総和※２※４

＜デバイス容量＞

対象ホストにある取得情報ファイルの総和

（凡例）

−：該当しません。

注1

対象ホストにある取得情報ファイルについては，表「-aオプションと取得する障害情報の関係」を参照してください。

注2

-aオプション指定時は，マスタディレクトリ，データディレクトリ，及びデータディクショナリの情報がHiRDBファイル単位に取得され，そのときにバックアップが取得されます。そのため，-aオプション指定時は，ディスク容量に更に一時的なバックアップファイル用として，次の計算式の値を加算してください。

　レコード長×レコード数

レコード長及びレコード数は，pdflsコマンドを実行すると分かります。

注※1

対象ホストがpdgeterコマンドを実行したホストの場合，該当しません。

注※2

ワークディレクトリを使用するときに必要なディスク容量です。

注※3

-tオプションを指定していない場合は該当しません。

注※4

-tオプションを指定していない場合，対象ホストの1ホストごとの取得情報ファイルの総和となります。

(7)　出力形式

-oオプションに指定したディレクトリ又はデバイスに次の形式で情報を出力します。

ファイル名

ファイル名は，-o及び-wの指定によって次のようになります。

-xオプションに指定するホスト

-oオプションに指定する出力先

ディレクトリ

デバイス

pdgeterコマンド実行ホストだけ指定

ホスト名.時間.Z

各障害情報※

pdgeterコマンド実行ホスト以外のホストも指定

ホスト名.時間.Z

ホスト名.時間.Z

注

時間はhhmmssの形式です。

hh：時　mm：分　ss：秒

注※

-tオプションを指定した場合は「ホスト名.時間.Z」となります。

また，-o及び-wの指定に関係なく，pdgeterコマンド内で発行するOSコマンドの実行結果を，pdgeter.comlog.時間という名称のファイルに出力します。

形式

ホスト名.時間.Zを展開すると，ファイル名はホスト名.時間となります。ホスト名.時間ファイルは３個又は４個のファイルで構成されます。ホスト名.時間ファイルの内容を次の図に示します。

図2‒4　ホスト名.時間の内容

(8)　使用例

例1：

コマンド実行ホスト（host1）の障害情報を取得します。出力先ディレクトリ名は/err1とします。

［概要］

［コマンド実行例］

 pdgeter -o /err1 -x host1

例2：

複数のホスト（host2，host3）の障害情報を，コマンド実行ホスト（host1）に出力します。出力先デバイス名は/dev/dat01とし，ワークディレクトリ名は/workとします。

［概要］

［コマンド実行例］

 pdgeter -o /dev/dat01 -w /work -x host2,host3

2.46　pdhold（RDエリアの閉塞）

2.46.1　pdholdの形式と規則

(1)　機能

指定したRDエリアを閉塞します。ただし，RDエリアを使用中の場合は，使用の完了を待って閉塞します。

-r，-q及び-W以外のオプションを指定しない閉塞を，コマンド閉塞といいます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdhold  -r ｛RDエリア名〔，RDエリア名〕…｜ALL｝ 〔-q 世代番号〕

　　　　 〔｛-c｜-i｜-b〔-w〕〔-u〕｜-s｝〕〔-W 実行監視時間〕

(4)　オプション

(a)　-r ｛RDエリア名〔，RDエリア名〕…｜ALL｝

RDエリア名　〜＜識別子＞((1〜30))

閉塞するRDエリア名を指定します。

ALL

すべてのRDエリアを閉塞する場合に指定します。ただし，ほかのオプションと-qオプションとの組み合わせによって，閉塞されるRDエリアは次のようになります。

ほかのオプション

-qオプション指定なし

-qオプション指定あり

-b

リスト用RDエリア及び一時表用RDエリアを除くすべてのRDエリア

インナレプリカグループ内の，指定した世代のRDエリア

-s

-sオプションを指定した場合，-qは省略できません。

上記以外

マスタディレクトリ用RDエリアを除くすべてのRDエリア

＜規則＞

RDエリアを指定する場合の規則については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

-bオプションを指定した場合はマスタディレクトリ用RDエリアを指定できますが，それ以外の場合は指定できません。また，-bオプション指定時は，リスト用RDエリア及び一時表用RDエリアは指定できません。

ユーザ用RDエリア又はユーザLOB用RDエリアを指定する場合は，データディクショナリ用RDエリアが次のどちらかの状態でなければなりません。

オープン状態，かつ閉塞解除状態

オープン状態，かつpdholdコマンドによる閉塞状態

-cオプションを指定して，RDエリア名にデータディクショナリ用RDエリアとユーザ用RDエリア又はユーザLOB用RDエリアを同時に指定する場合は，データディクショナリ用RDエリアを最後に指定してください。

インナレプリカ機能を使用している場合，オリジナルRDエリア名及びレプリカRDエリア名も指定できます。ただし，この場合，指定できるのはユーザ用RDエリア及びユーザLOB用RDエリアだけです。

(b)　-q 世代番号　〜＜符号なし整数＞((0〜10))

レプリカRDエリアの世代番号を指定します。

このオプションを指定した場合，-rオプションにはオリジナルRDエリア名を指定してください。この場合，レプリカがすべて削除されたオリジナルRDエリア，又はレプリカRDエリアがないRDエリアを指定したときはエラーとなります。

(c)　-c

閉塞状態にした後，RDエリアをクローズします。これを「クローズ，コマンド閉塞」といいます。

このオプションを指定しなかった場合は，RDエリアの閉塞だけをします。

(d)　-i

閉塞したRDエリアに対して，ユーザからの参照を許可する場合に指定します。これを「参照可能閉塞」といいます。

このオプションを指定しなかった場合は，閉塞したRDエリアへの参照はできません。

(e)　-b〔-w〕〔-u〕

バックアップ閉塞にする場合に指定します。

バックアップ閉塞とは，オンライン中でもバックアップを取得できる閉塞状態のことをいいます。次の場合にRDエリアをバックアップ閉塞にします。

pdcopyの更新可能モードでバックアップを取得する場合

pdcopy以外の汎用バックアップツールや，OSのコマンドなどでバックアップを取得する場合

二重化された論理ボリュームを切り離す場合

バックアップ閉塞には，次の四つの状態があります。

参照可能バックアップ閉塞（-b指定）

参照可能バックアップ閉塞（更新WAITモード）（-b，-w指定）

更新可能バックアップ閉塞（-b，-u指定）

更新可能バックアップ閉塞（WAITモード）（-b，-w，-u指定）

1と2をデータベースの静止化といいます。

各バックアップ閉塞の説明を次に示します。

参照可能バックアップ閉塞：

閉塞解除するまで更新トランザクションをエラーにしてもよい場合，参照可能バックアップ閉塞にします。

＜留意事項＞

参照可能バックアップ閉塞の場合，更新トランザクションとのデッドロックは発生しません。

この状態で取得したバックアップは，システムログを使用しなくても，バックアップ取得時点にデータベースを回復できます。また，バックアップ閉塞直前からのシステムログを使用すると，障害発生時点の状態にデータベースを回復できます。

参照可能バックアップ閉塞のRDエリアは参照はできますが，閉塞解除するまでそのRDエリアへの更新はSQLエラー（−920）となります。特に，ログレスモードの更新トランザクションがエラーで終了した場合，更新済みのRDエリアがあると，そのRDエリアは障害閉塞となるため，注意してください。

参照可能バックアップ閉塞（更新WAITモード）：

閉塞解除するまで更新トランザクションを待たせてもよい場合に，参照可能バックアップ閉塞（更新WAITモード）にします。

＜留意事項＞

この状態で取得したバックアップは，システムログを使用しなくても，バックアップ取得時点にデータベースを回復できます。また，バックアップ閉塞直前からのシステムログを使用すると，障害発生時点の状態にデータベースを回復できます。

参照可能バックアップ閉塞（更新WAITモード）のRDエリアは参照できますが，閉塞解除するまでそのRDエリアへの更新は，バックアップ閉塞のRDエリアの排他で待ち状態となります。したがって，クライアント環境定義のPDLCKWAITTIME（省略時はシステム定義のpd_lck_wait_timeout），及びPDCWAITTIMEには，バックアップ閉塞中の時間以上を設定する必要があります。タイムアウトとなった場合，更新トランザクションはSQLエラー（-770や-732）となります。

参照可能バックアップ閉塞（更新WAITモード）にした場合，更新トランザクションとの間で，デッドロックが発生することがあります。システム定義にpd_deadlock_priority_use=Yを指定し，更にpd_command_deadlock_priorityオペランドにデッドロックプライオリティ値を指定することで，デッドロック発生時に更新トランザクションと運用コマンドのどちらを優先させるかを選択できます。

デッドロックが発生した場合，pdholdコマンドが取得したバックアップ閉塞の排他をすべて解除し，再度同じバックアップ閉塞処理を行います。このリトライ処理は，最大5回繰り返します。5回目のリトライ処理でもデッドロックが発生する場合は，pdholdコマンドが掛けたバックアップ閉塞をすべて解除し，エラー終了します。

ログレスモードの更新トランザクションがタイムアウト又はデッドロックでエラー終了した場合は，既に更新したRDエリアがあると，そのRDエリアは障害閉塞となるため，注意してください。

更新可能バックアップ閉塞：

すぐにバックアップ閉塞にしたい場合で，かつバックアップ閉塞中もそのRDエリアに対してアクセスしたいときに更新可能バックアップ閉塞にします。ほかのコマンドが実行中の場合，そのコマンドが完了した後，更新可能バックアップ閉塞にするpdholdコマンドが実行できるようになります。

＜留意事項＞

更新可能バックアップ閉塞にした場合，そのRDエリアに対して参照及び更新ができます。

更新可能バックアップ閉塞は，閉塞解除するまで更新バッファのデータベース反映時に，ページの物理ログが出力されます。このため，次の点に注意してください。

(a) システムログファイルの容量が不足していないか確認してください。

(b) 大量更新中には，更新可能バックアップ閉塞にしないでください（プラグインインデクスの更新も大量更新となります）。

(c) バックアップが完了したら，すぐに更新可能バックアップ閉塞を解除してください。

更新トランザクション実行中でも，pdholdコマンドを実行すると更新可能バックアップ閉塞状態にできます。

この状態で取得したバックアップを使用してデータベースを回復するときは，バックアップ及び前回のシンクポイント以降のシステムログが必要になります。ただし，前回のシンクポイント以降に更新前ログ取得モード又はログレスモードの更新トランザクションを実行している場合は，このバックアップでは回復できません。

更新可能バックアップ閉塞中に共用RDエリアを更新すると，物理ログが出力されます。そのため，更新可能バックアップ閉塞状態以外の共用RDエリアに対する更新に比べ，出力されるログの量が増加します。更新可能バックアップ閉塞状態の共用RDエリアのバックアップを取得する場合は，更新業務を実行しない，又は，更新量を減らすことをお勧めします。

更新可能バックアップ閉塞中のRDエリアに対する更新トランザクションが更新前ログ取得モード又はログレスモードの場合，バックアップ閉塞のRDエリアの排他で待ち状態となります。この場合，クライアント環境定義のPDLCKWAITTIME（省略時はシステム定義のpd_lck_wait_timeout），及びPDCWAITTIMEには，バックアップ閉塞中の時間以上を設定する必要があります。タイムアウトとなった場合，更新前ログ取得モード又はログレスモードの更新トランザクションはエラーとなります。

ログレスモードの更新トランザクションがタイムアウトでエラー終了した場合，更新済みのRDエリアがあると，そのRDエリアは障害閉塞となるため，注意してください。

更新可能バックアップ閉塞（WAITモード）：

更新トランザクションの完了を待ってバックアップ閉塞にしてもよい場合で，かつバックアップ閉塞中にそのRDエリアにアクセスしたいときに更新可能バックアップ閉塞（WAITモード）にします。

＜留意事項＞

更新可能バックアップ閉塞（WAITモード）中に，更新バッファの内容がRDエリアに反映された場合，バックアップ閉塞解除時に警告メッセージ（KFPH00157-W）を出力します。

更新可能バックアップ閉塞（WAITモード）にした場合，そのRDエリアに対しての参照及び更新ができます。

更新可能バックアップ閉塞（WAITモード）は，閉塞解除するまで更新バッファのデータベース反映時に，ページの物理ログが出力されます。このため，次の点に注意してください。

(a) システムログファイルの容量が不足していないか確認してください。

(b) 大量更新中には，更新可能バックアップ閉塞にしないでください（プラグインインデクスの更新も大量更新となります）。

(c) バックアップが完了したら，すぐに更新可能バックアップ閉塞を解除してください。

更新可能バックアップ閉塞（WAITモード）中に取得したバックアップを使用してデータベースを回復する場合，バックアップ閉塞解除時に警告メッセージ（KFPH00157-W）が出力されていなければ，システムログがなくてもバックアップ閉塞時点に回復できます。更新可能バックアップ閉塞（WAITモード）を解除した以降の任意の時点に回復する場合，RDエリア間で整合性がとれた状態に回復する場合，又は警告メッセージ（KFPH00157-W）が出力された場合は，バックアップ閉塞直前からのシステムログを使用して回復する必要があります。ただし，-M s指定のpdcopyでバックアップを取得した場合，警告メッセージ（KFPH00157-W）の有無に関係なく，前回のシンクポイント以降のシステムログが必要となります。

更新可能バックアップ閉塞中のRDエリアに対する更新トランザクションが更新前ログ取得モード又はログレスモードの場合，バックアップ閉塞のRDエリアの排他で待ち状態となります。この場合，クライアント環境定義のPDLCKWAITTIME（省略時はシステム定義のpd_lck_wait_timeout），及びPDCWAITTIMEには，バックアップ閉塞中の時間以上を設定する必要があります。タイムアウトとなった場合，更新前ログ取得モード又はログレスモードの更新トランザクションはエラーとなります。

更新可能バックアップ閉塞（WAITモード）にした場合，更新前ログ取得モード又はログレスモードの更新トランザクションとの間でデッドロックが発生することがあります。システム定義にpd_deadlock_priority_use=Yを指定し，更にpd_command_deadlock_priorityオペランドにデッドロックプライオリティ値を指定することで，デッドロック発生時に更新トランザクションと運用コマンドのどちらを優先させるかを選択できます。

デッドロックが発生した場合，pdholdコマンドが取得したバックアップ閉塞の排他をすべて解除し，再度同じバックアップ閉塞処理を行います。このリトライ処理は，最大5回繰り返します。5回目のリトライ処理でもデッドロックが発生する場合は，pdholdコマンドが掛けたバックアップ閉塞をすべて解除し，エラー終了します。

ログレスモードの更新トランザクションがタイムアウト又はデッドロックでエラー終了した場合，更新済みのRDエリアがあると，そのRDエリアは障害閉塞となるため，注意してください。

更新可能バックアップ閉塞中に共用RDエリアを更新すると，物理ログが出力されます。そのため，更新可能バックアップ閉塞状態以外の共用RDエリアに対する更新に比べ，出力されるログの量が増加します。更新可能バックアップ閉塞状態の共用RDエリアのバックアップを取得する場合は，更新業務を実行しない，又は，更新量を減らすことをお勧めします。

-w

参照可能バックアップ閉塞（更新WAITモード），又は更新可能バックアップ閉塞（WAITモード）にする場合に指定します。

-u

更新可能バックアップ閉塞にする場合に指定します。

更新可能バックアップ閉塞のRDエリアに対しては，閉塞中でも参照及び更新ができます。ただし，ログレスモードのUAP，ユティリティなどの更新は，閉塞解除されるまで待ち状態となります。

このオプションを省略した場合は，参照可能バックアップ閉塞となります。

＜バックアップ閉塞に共通する留意事項＞

バックアップ閉塞中は，pdmod（RDエリアの拡張，再初期化，属性変更），pdload，及びpdrorg（リロード）は実行できません。

参照可能バックアップ閉塞（更新WAITモード），更新可能バックアップ閉塞，及び更新可能バックアップ閉塞（WAITモード）のRDエリアは，リランのときに状態は引き継ぎません。

ログレスモードでの運用時に更新可能バックアップ閉塞にする場合は，事前にpdlogswap -d sys -wコマンドでシステムログファイルのスワップ及びシンクポイントの有効化を必ずしてください。しなかった場合に障害が発生したときは，pdrstrで範囲指定で回復することになります。

更新可能バックアップ閉塞でのバックアップ取得中にHiRDBを終了又は再開始した場合，取得していたバックアップは保証されなくなります。この場合，再度バックアップを取得し直してください。

参照可能バックアップ閉塞（更新WAITモード）の場合は，pdholdコマンドと更新トランザクションとの間で，また，更新可能バックアップ閉塞の場合は，pdholdコマンドとログレスモードの更新トランザクションとの間でデッドロックが発生することがあります。デッドロックが発生した場合，RDエリアが既に参照可能バックアップ閉塞（更新WAITモード），又は更新可能バックアップ閉塞となっていれば，そのRDエリアをpdrelsコマンドで閉塞解除した後，再度pdholdコマンドを実行してください。RDエリアが参照可能バックアップ閉塞（更新WAITモード），又は更新可能バックアップ閉塞になっていない場合，時間を空けてから再度pdholdコマンドを実行してください。

参照可能バックアップ閉塞，参照可能バックアップ閉塞（更新WAITモード），又は更新可能バックアップ閉塞（WAITモード）にする場合，更新トランザクションが実行中のときは，その更新トランザクションが終了するまでpdholdコマンドは待ちになります。この待ちでは排他待ち時間を監視しないで，実行中の更新トランザクションの終了を待ち続けます。この待ちの間，同一RDエリアに対する後続のトランザクションは排他待ちになり，待ち時間がクライアント環境定義のPDLCKWAITTIME（省略時はシステム定義のpd_lck_wait_timeout），又はPDCWAITTIME以上になるとタイムアウトします。pdholdで実行時間を監視する場合は，-Wオプションを指定してください。待ち状態となっているpdholdコマンドを終了したい場合は，pdcancelコマンドでシングルサーバプロセス，又はバックエンドサーバプロセスを終了してください。pdcancelの-uオプションのUAP識別子には文字列pdholdを指定します。

バックアップ閉塞にするpdholdコマンドが，ほかのコマンドが掛けた資源「RDエリア状態」の排他によって待ち状態になった場合，システム定義のpd_lck_wait_timeoutオペランドでのタイムアウトにはなりません。この場合，ほかのコマンドでの排他が解除されるまで待ち状態となります。待ち状態となっているpdholdコマンドを終了したい場合は，pdcancelコマンドでシングルサーバプロセス，又はバックエンドサーバプロセスを終了してください。

オンライン再編成閉塞や，参照可能閉塞になっているRDエリアは，バックアップ閉塞にはできません。RDエリアの状態は，pddblsコマンドで確認できます。

RDエリアの自動増分を適用している場合，そのRDエリアを更新可能バックアップ閉塞，又は更新可能バックアップ閉塞（WAITモード）にすると，RDエリアの自動増分を抑止します。RDエリアの自動増分の抑止状態を解除したい場合は，pdrelsコマンドを実行して，更新可能バックアップ閉塞，及び更新可能バックアップ閉塞（WAITモード）を解除してください。

RDエリアの自動増分を適用している場合，そのRDエリアを更新可能バックアップ閉塞，又は更新可能バックアップ閉塞（WAITモード）にするときは，事前にデータベース状態解析ユティリティで十分な未使用領域があることを確認してください。

(f)　-s

RDエリアを同期化閉塞する場合に指定します。

同期化閉塞は，インナレプリカ機能を利用している場合に使用します。インナレプリカグループ内でほかの世代のRDエリアのデータを，該当するRDエリアのデータとして複写するときなど（ペアボリュームの再ペア化など），同期化閉塞にします。

同期化閉塞をすると，該当するRDエリアのバッファを破棄し，参照及び更新トランザクションを待ち状態にします。

＜規則＞

同期化閉塞したRDエリアの更新バッファは破棄されてDBに反映されないため，RDエリアの内容は不整合となります。このため，更新バッファがある場合，RDエリアに不整合情報を書き込みます。同期化閉塞後，インナレプリカグループ内の整合性のあるほかのRDエリアのデータを，該当するRDエリアに複写するまで，閉塞は解除できません。

このオプションを指定して，-rオプションで次のRDエリアを指定した場合，エラーとなります。

レプリカ定義ができないRDエリア（レプリカ定義ができるRDエリアについては，マニュアル「インナレプリカ機能 HiRDB Staticizer Option」を参照）

レプリカRDエリアがすべて削除されたオリジナルRDエリア，又はレプリカRDエリアがないRDエリア

このオプションを指定して，-rオプションで複数のRDエリアを指定した場合，サーバ単位に一括で処理をします。途中でエラーとなった場合，そのRDエリアがあるサーバでの処理を無効にして，処理を続行します。

同期化閉塞中は，pdmod（RDエリアの拡張，削除，及び属性変更），pdload，pdrorg，及びpdcopyは実行できません。

同期化閉塞した場合，閉塞解除するまで，そのRDエリアには参照可能バックアップ閉塞（更新WAITモード）と同じ排他が掛かります。そのため，クライアント環境定義のPDLCKWAITTIME（省略時はシステム定義のpd_lck_wait_timeout），及びPDCWAITTIMEの値には，同期化閉塞中の時間以上を設定する必要があります。タイムアウトとなった場合，更新トランザクションはSQLエラー（-770や-732）となります。

同期化閉塞した場合，参照及び更新トランザクションとの間でデッドロックが発生することがあります。システム定義にpd_deadlock_priority_use=Yを指定し，更にpd_command_deadlock_priorityオペランドにデッドロックプライオリティ値を指定することで，デッドロック発生時に参照及び更新トランザクションと運用コマンドのどちらを優先させるかを選択できます。運用コマンドがデッドロックでエラーとなった場合，一定時間後に再度pdholdコマンドを実行してください。なお，複数のRDエリアを指定したpdhold -sコマンドがエラーになった場合，すべてのRDエリアの同期化閉塞処理を無効にします。

ログレスモードの更新トランザクションがタイムアウト又はデッドロックでエラー終了した場合，更新済みのRDエリアがあると，そのRDエリアはログレス閉塞状態になるので注意してください。

表とインデクスのように，データに関連性があるRDエリアを複数同期化閉塞する場合，1回のpdholdコマンドで実行してください。

pdhold -sコマンドを実行した場合，インメモリ化が強制的に解除されます。この場合，インメモリデータバッファ上の更新データはRDエリアに反映されません。

(g)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pdholdコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

pdholdコマンドは，HiRDBが稼働中のときだけ実行できます。

pdholdコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdholdコマンドは，RDエリアに対してモードEXで，-i又は-bオプション指定の場合はモードPRで排他制御をします。そのため，指定したRDエリアにほかのトランザクションがアクセスしている場合は，そのトランザクションの終了までpdholdコマンドは待ち状態となります。ただし，-i又は-bオプション指定の場合は，更新系トランザクションがアクセスしているときだけ待ち状態となります。RDエリアの閉塞状態とトランザクションとの関係を次の表に示します。

表2‒7　RDエリアの閉塞状態とトランザクションとの関係

RDエリアの閉塞状態

トランザクション

参照※1

更新※2

更新ログレス※3

コマンド閉塞

待ち

待ち

待ち

エラー

エラー

エラー

参照可能閉塞

待ちなし

待ち

待ち

待ちなし※4

エラー

エラー

参照可能バックアップ閉塞

待ちなし

待ち※5

待ち※5

待ちなし※4

エラー

エラー

参照可能バックアップ閉塞（更新WAITモード）

待ちなし

待ち※5

待ち※5

待ちなし※4

待ち

待ち

更新可能バックアップ閉塞

待ちなし

待ちなし

待ちなし

待ちなし

待ちなし

待ち

更新可能バックアップ閉塞（WAITモード）

待ちなし

待ち※5

待ち※5

待ちなし※4

待ちなし

待ち

同期化閉塞

待ち

待ち

待ち

待ち

待ち

待ち

注

上段は，トランザクションが先にRDエリアに排他を掛けた場合を示しています。

下段は，pdholdコマンドが先にRDエリアに排他を掛けた場合を示しています。

例えば，参照UAPが先にRDエリアに排他を掛けた場合，そのRDエリアをpdholdコマンドでコマンド閉塞にしようとすると，pdholdコマンドが待ちとなります。また，pdholdコマンド（コマンド閉塞）が先にRDエリアに排他を掛けた場合，そのRDエリアへの参照UAPを実行しようとすると，参照UAPがエラーとなります。

注※1

参照トランザクションとは，RDエリアにSR又はPRの排他が掛かるSQLを実行するトランザクションのことをいいます。例えば，WITH SHARE指定のあるSELECT文はSRの排他を掛けるため，参照トランザクションとなります。

注※2

更新トランザクションとは，RDエリアにSU，PU，又はEXの排他が掛かるSQLを実行するトランザクションのことをいいます。例えば，WITH EXCLUSIVE指定のあるSELECT文はSUの排他を掛けるため，更新トランザクションとなります。

注※3

クライアント環境定義のPDDBLOGにNOを指定した，ログレスモードのトランザクションのことをいいます。

注※4

更新トランザクションによってコマンドが待ち状態の場合は，後続の参照トランザクションも待ちになります。

注※5

排他待ち時間を監視しないで，実行中の更新トランザクションの終了を待ち続けます。この待ちの間，同一RDエリアに対する後続のトランザクションは排他待ちになり，待ち時間がクライアント環境定義のPDLCKWAITTIME（省略時はシステム定義のpd_lck_wait_timeout），又はPDCWAITTIME以上になるとタイムアウトします。pdholdで実行時間を監視する場合は，-Wオプションを指定してください。待ち状態となっているpdholdコマンドを終了したい場合は，pdcancelコマンドでシングルサーバプロセス，又はバックエンドサーバプロセスを終了してください。pdcancelの-uオプションのUAP識別子には文字列pdholdを指定します。

閉塞処置中のトランザクションの扱いを次の表に示します。なお，閉塞処理中とは，ACCEPT-HOLD（pddblsコマンドでの実行結果のRDエリアの状態）を指します。

表2‒8　閉塞処置中のトランザクションの扱い

閉塞処理中の受付内容

参照トランザクション

更新トランザクション

コマンド閉塞

エラー

エラー

参照可能閉塞

待ち

エラー

参照可能バックアップ閉塞

待ち

エラー

参照可能バックアップ閉塞（更新WAITモード）

待ち

待ち

更新可能バックアップ閉塞

待ちなし※

待ちなし※

更新可能バックアップ閉塞（WAITモード）

待ち

待ち

同期化閉塞

待ち

待ち

注※

更新可能バックアップ閉塞は，RDエリアに排他を掛けないため，待ちにはなりません。

データ未完状態の改竄防止表が格納されているRDエリアは，参照可能閉塞（-i指定），及びバックアップ閉塞（-b指定）にはできません。データ未完状態の改竄防止表に対して，pdrorgで表へのリロードを実行すると，データ未完状態は解除されます。解除された後に，参照可能閉塞，又はバックアップ閉塞にしてください。

共用RDエリアに対してpdholdコマンドを実行した場合，全バックエンドサーバに排他を掛けます。このため，該当するRDエリアへのアクセスを複数同時に実行している場合，グローバルデッドロックが発生し，タイムアウトする可能性があります。グローバルデッドロックが発生した場合，再度pdholdコマンドを実行してください。

インメモリRDエリアにpdholdコマンドを実行した場合のHiRDBの処理を次の表に示します。

表2‒9　インメモリRDエリアにpdholdコマンドを実行した場合のHiRDBの処理

pdholdコマンドの種類

pdholdコマンド実行時のHiRDBの処理

pdhold -b（参照可能バックアップ閉塞）

インメモリデータバッファとインメモリRDエリアの同期処理を行います（DB同期状態になります）。

このとき，インメモリRDエリアは，各オプションの指定に従った閉塞状態になります。

pdhold -b -w（参照可能バックアップ閉塞（更新WAITモード））

pdhold -c

pdhold -s（インナレプリカ機能の同期化閉塞）

インメモリ化が強制的に解除されます。この場合，インメモリデータバッファ上の更新データはRDエリアに反映されません。

このとき，RDエリアは同期化閉塞状態になります。

pdhold -b -u（更新可能バックアップ閉塞）

pdholdコマンドがエラーになります。

pdhold -b -u -w（更新可能バックアップ閉塞（WAITモード））

pdhold

インメモリデータバッファとインメモリRDエリアの同期処理を行いません。

インメモリRDエリアは，各オプションの指定に従った閉塞状態になります。

pdhold -i

(6)　注意事項

pdholdコマンドの結果は，pddblsコマンドで確認できます。

pdholdコマンドのリターンコードと基本的な対処方法を次に示します。

0以外の場合，一部のRDエリアが閉塞していることがあります。その状態では業務を継続できないおそれがあるため，pdholdコマンドに指定したRDエリアをpdrelsコマンドで閉塞解除してください。

0：正常終了

4：警告終了

一部のRDエリアの処理がエラー終了しました。

8：異常終了

一部のRDエリアの処理がエラー終了していることがあります。

12：異常終了

エラーメッセージを表示できない事象が発生しました。

一部のRDエリアの処理がエラー終了していることがあります。シングルサーバ又はディクショナリサーバがあるホストのsyslogfile中のエラーメッセージを参照して，エラーの要因を取り除いた後，再度コマンドを実行してください。syslogfile中にエラーメッセージが出力されていない場合は保守員に連絡してください。

リアルタイムSANレプリケーションの処理方式にハイブリッドを選択している場合，pdholdコマンド実行時に次のオプションを指定していると，リモートサイトへのデータベース同期待ち合わせをします。このため，-rオプションで指定したRDエリア一つにつき，2秒以上のオーバヘッドが掛かることがあります。

-c（クローズ，コマンド閉塞）

-s（同期化閉塞）

リモートサイトへのデータベース同期待ち合わせに失敗した場合，リモートサイトのデータベースを回復する必要があります。リアルタイムSANレプリケーションを使用した場合の障害発生時の運用については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

次に示す閉塞状態は，HiRDB（HiRDB/パラレルサーバの場合はユニット）が強制停止した後の再開始時には引き継ぎません。

参照可能バックアップ閉塞（更新WAITモード）

更新可能バックアップ閉塞

更新可能バックアップ閉塞（WAITモード）

2.47　pdinfoget（障害情報の取得と容量見積もり）

2.47.1　pdinfogetの形式と規則

(1)　機能

HiRDBシステムで障害が発生した場合，障害の原因を調査するために障害情報の取得，及び取得する情報の容量見積もりをします。

障害情報取得

HiRDBで障害が発生した場合，pdinfogetコマンドを実行することで，コマンドを実行したホストのHiRDBやOSの障害情報を取得します。取得した情報は，初期情報ファイル又は詳細情報ファイルに出力し，実行状況を実行ログに出力します。

障害情報容量見積もり

障害情報を取得する場合，障害情報の出力先に十分なディスクの空き容量がないと，必要な障害情報が取得できない，指定したディスクの構成によってはディスク容量を圧迫してシステムの性能に影響を及ぼすなどのおそれがあります。これを防ぐために，事前に取得する障害情報に必要な容量をメガバイト単位で見積もります。ただし，ここで表示する値は，障害情報の取得実行中に必要なディスク容量の最大値であり，取得後の障害情報の容量とは異なります。

(2)　実行者

HiRDB管理者が実行できます。なお，HiRDBが出力する情報ファイルやOSの情報ファイルへの参照権限が必要です。

(3)　形式

(a)　障害情報取得

　pdinfoget -e 初期情報ファイル出力先ディレクトリ名

　　　　　-d 詳細情報ファイル出力先ディレクトリ名

　　　　　〔-w ワークディレクトリ名〕

　　　　　〔-n〕

　　　　　〔-s syslogfile名〕

(b)　障害情報容量見積もり

　pdinfoget -m

　　　　　〔-n〕

　　　　　〔-s syslogfile名〕

(4)　オプション

(a)　-e 初期情報ファイル出力先ディレクトリ名

初期情報ファイル（障害原因の切り分けに必要な情報をまとめたファイル）を出力する既存のディレクトリ名を絶対パスで指定します。ディレクトリ名の長さの上限値を次に示します。

ディレクトリ名の長さ（単位：バイト）

OS上のパス名の上限値−初期情報ファイル名（最大：66）

指定したディレクトリが存在しない，又は書き込み権限がない場合は，エラーメッセージを出力して処理を打ち切ります。

初期情報ファイル出力先ディレクトリには，初期情報ファイルと実行ログが出力されます。初期情報ファイルはアーカイブファイルであり，複数のファイルが格納されています。それぞれのファイル名を次に示します。

初期情報ファイル：pdinfoget_ホスト名称_init_日時.tar※

ホスト名称の長さが32バイト以上の場合，先頭から32バイト分をファイル名とします。

実行ログ：pdinfoget_comlog_日時※，

注※

日時は「MMDDhhmmss」（MM：月，DD：日，hh：時，mm：分，ss：秒）です。

ファイルの容量が2ギガバイトを超える場合，ファイルを複数に分割して出力します。このとき，ファイル名の末尾に「.」及び連番「.aa，.ab，.ac，.ad，.ae，……」が付加されます。弊社問い合わせ窓口にすべてのファイルを送付してください。

初期情報ファイルに取得される障害情報については，表「pdinfogetコマンドで取得する障害情報一覧」を参照してください。

(b)　-d 詳細情報ファイル出力先ディレクトリ名

詳細情報ファイル（障害原因の切り分け後，さらに詳細な調査に必要な情報をまとめたファイル）を出力する既存のディレクトリ名を絶対パスで指定します。ディレクトリ名の長さの上限値を次に示します。

ディレクトリ名の長さ（単位：バイト）

OS上のパス名の上限値−詳細情報ファイル名（最大68）

指定したディレクトリが存在しない，又は書き込み権限がない場合は，エラーメッセージを出力して処理を打ち切ります。

詳細情報ファイルはアーカイブファイルであり，複数のファイルが格納されています。詳細情報ファイル名を次に示します。

詳細情報ファイル名：pdinfoget_ホスト名称_detail_日時.tar※

ホスト名称の長さが32バイト以上の場合，先頭から32バイト分をファイル名とします。

注※

日時は「MMDDhhmmss」（MM：月，DD：日，hh：時，mm：分，ss：秒）です。

ファイルの容量が2ギガバイトを超える場合，ファイルを複数に分割して出力します。このとき，ファイル名の末尾に「.」及び連番「.aa，.ab，.ac，.ad，.ae，……」が付加されます。弊社問い合わせ窓口にすべてのファイルを送付してください。

詳細情報ファイルに取得される障害情報については，表「pdinfogetコマンドで取得する障害情報一覧」を参照してください。

(c)　-w ワークディレクトリ名

pdinfogetは障害情報を取得した後，HiRDB・OSコマンドを実行して障害情報をアーカイブ，又は圧縮します。このとき，一時的に作成する作業用のファイルを格納する領域として，既存のディレクトリ名を絶対パスで指定します。ディレクトリ名の長さの上限値を次に示します。

ディレクトリ名の長さ（単位：バイト）

OS上のパス名の上限値−作業用のファイル名（最大53）

指定したディレクトリが存在しない，又は書き込み権限がない場合は，エラーメッセージを出力して処理を打ち切ります。

作業用のファイルは，指定したディレクトリ下にワークディレクトリ「pdinfoget_work_日時」を作成し，そこに格納します。既に「pdinfoget_work_日時」ディレクトリが存在する場合は，エラー終了します。

このオプションを省略した場合，次に示すディレクトリが仮定されます。

-wオプションの指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIR※の指定

あり

なし

あり

-wオプションに指定したディレクトリ

なし

pd_tmp_directoryに指定したディレクトリ

TMPDIRに指定したディレクトリ

/tmpディレクトリ

注※　コマンド実行環境の環境変数の指定

これらのファイルは，処理の終了時に削除されます。

ただし，処理中にエラーが発生した場合，ファイルが削除されないことがあります。この場合は，ファイルを手動で削除する必要があります。

(d)　-s syslogfile名

pdinfogetがデフォルトで取得すると設定しているsyslogfileと異なるsyslogfileを取得する必要がある場合，ファイル名を絶対パスで指定します。

pdinfogetがデフォルトで取得するsyslogfileを次に示します。

プラットフォーム

デフォルトで取得するファイル

AIX

/tmp/syslog.out

Linux

/var/log/messages

-sオプションで取得するファイルを指定する必要があると考えられるのは，次のような場合です。

pdinfogetを実行する時期が遅く，syslogfileのスワップが行われ，障害が発生した時間帯と，デフォルトで取得対象としているsyslogfileの時間帯が異なっている場合

この場合，障害が発生した時間帯と一致するログを持つファイルを，-sオプションで指定します。

/etc/syslog.confの指定で，syslogファイルの出力先を変更している場合

この場合，該当するsyslogfileの名称を指定します。

(e)　-m

取得する障害情報に必要な容量の見積もり値を出力する場合に指定します。見積もり値は標準出力に次の形式で出力されます。

ファイルの種類

表示形式（単位：メガバイト）

初期情報ファイル

init_directory = xxx Mbyte

詳細情報ファイル

detail_directory = yyyy Mbyte

PRFトレース情報ファイル

prf_directory = wwww Mbyte※

（凡例）xxx，yyyy，zzzz，wwww：数値

注※

次に該当する場合は，"0 Mbyte"と表示されます。

PRFトレース情報ファイルを取得しない場合

-sオプションを指定して障害情報を取得する場合，それらの容量も見積もり値に含めるため，-sオプションを同時に指定する必要があります。なお，-s以外のオプションが同時に指定されている場合は，エラー終了します。

(f)　-n

PRFトレース情報ファイルの容量の見積もり，取得を行わない場合に指定します。次の場合に指定してください。

弊社問い合わせ窓口から指示があった場合（障害の原因調査に支障が出ない場合）

PRFトレース情報ファイルを別途取得する場合

表2‒10　pdinfogetコマンドで取得する障害情報一覧

取得する情報項目

取得の有無

初期情報

詳細情報

HiRDBコマンド

HiRDBの状態を知るため，HiRDBコマンドを実行して取得した情報

ユニット，及び内部コンポーネントの状態

○

○

×

サーバプロセスの状態

○

○

×

HiRDBサーバのスケジュール状態

○

○

×

HiRDBサーバの設定情報

○

○

×

ユニット内のHiRDBサーバの状態

○

○

×

実行中トランザクション情報

○

○

×

ユーザ識別子情報

○

○

×

排他情報

○

○

×

排他制御用プール使用状況

○

○

×

内部ロック情報

○

○

×

セマフォ情報

○

○

×

メッセージキュー情報

○

○

×

ユニット及びサーバの状態

○

○

×

共用メモリ情報

○

○

×

HiRDBのバージョン情報

○

○

×

サーバプロセスの通信制御情報

○

○

×

グローバルバッファの使用情報

○

○

×

RDエリアの状態表示

○

○

×

SQLオブジェクト情報

○

○

×

リアルタイムSANレプリケーションの情報

○

○

×

系切り替え機能の情報

○

○

×

HiRDB情報ファイル

HiRDBが参照する定義や，結果として出力したファイル

$PDDIR/spool下の全ディレクトリとファイル

○

×

○

$PDDIR下の構成情報

○

○

×

$PDDIR/spool下のファイル

コマンドログファイル

○

○

×

メッセージログファイル

○

○

×

エラーログファイル

○

○

×

障害時スナップ情報ファイル

○

○

×

アボート情報ファイル

○

○

×

cwaitover情報ファイル

○

○

×

PRFトレース情報ファイル

○

×

○

システム定義情報（conf/*，%PDCONFPATH%）

○

○

×

簡易セットアップツール情報（pdistup/*）

bin

×

×

×

conf

×

×

×

ini

×

×

×

sample

○

○

×

tmp

○

○

×

spool

○

○

×

pdi_log.txt

○

○

×

HiRDBデータベース環境情報（$PDDIR/.dbenv/*）

○

○

×

HiRDB内部用ワークディレクトリ下（$PDDIR/tmp/*）

○

×

○

クライアントトレース情報（$PDCLTPATH下のファイル）

SQLトレース情報

○

※1

※1

エラーログファイル

○

○

×

pdess*ファイル

○

○

×

UAP統計情報

○

○

×

PRFトレース情報ファイル（pd_prf_output_directoryオペランドに指定したディレクトリに出力されたファイル）

○

×

○

PRFトレース情報ファイルの構成情報（pd_prf_output_directoryオペランドに指定したディレクトリの構成情報）

○

○

×

OSコマンド

OS下の状況を知るため，コマンドを実行して取得した情報

プロセス情報

○

○

×

ディスク情報

○

○

×

プロセス間通信機能のステータス情報

○

○

×

CPU利用率，及びディスク状況

○

○

×

プロセスのCPU稼働及びメモリ状態

○

○

×

仮想メモリ状態

○

○

×

カーネルパラメタ

○

○

×

ホスト名称

○

○

×

システムリソースの上限情報

○

○

×

OSのパフォーマンス情報

○

○

×

OS情報ファイル

OSが参照する定義や，結果として出力したファイル

OSのバージョン情報

○

○

×

マシン情報

○

○

×

プロセッサ情報

○

○

×

メモリ実装情報

○

○

×

環境変数情報

○

○

×

ネットワーク情報

○

○

×

ネットワークステータス情報

※2

○

×

DISK情報

※2

○

×

syslogfile

○

○

×

バックトレース情報

○

○

×

coreファイル

※2※3

×

○

coreファイル出力先設定ファイル

※2

○

×

ログ管理設定ファイル

※2

○

×

（凡例）

○：この情報を取得します。

×：この情報を取得しません

注※1

SQLトレース情報（pdsql1.trc，pdsql2.trc，pd2sql1.trc，及びpd2sql2.trc）のファイル容量の合計が100メガバイト以下の場合，初期情報ファイルに出力します。100メガバイトを超える場合，詳細情報ファイルに出力します。

注※2

Linuxの場合だけ取得します。

注※3

OSの設定が次の条件に該当する場合に取得します。

/proc/sys/kernel/core_patternファイルに「systemd-coredump」を指定

/etc/systemd/journald.confファイルに「Storage=persistent」を指定

(5)　規則

pdinfogetコマンドを実行するためには，次の環境変数が設定されている必要があります。

PDDIR

HiRDB運用ディレクトリを指定します。

PDCONFPATH

HiRDBシステム定義ファイルを格納するディレクトリを指定します。指定がない場合は，$PDDIR/confが仮定されます。

なお，ルートディレクトリ（/）を指定した場合は，KFPN10433-Wメッセージが出力されます。このとき，pdinfogetコマンドのリターンコードに4が返されます。

pdinfogetコマンドは，HiRDBの稼働に関係なく実行できます。

初期情報ファイル出力先ディレクトリと詳細情報ファイル出力先ディレクトリは，同じディレクトリを指定しないでください。同じディレクトリ名を指定していると，エラーメッセージを出力して処理を終了します。

ディレクトリ名を指定するオプションで，上限値を超えた長さのディレクトリ名を指定すると，ファイルやディレクトリの作成又はコピーでエラーが発生します。このとき，pdinfogetコマンドのリターンコードに4又は8が返されます。

初期情報ファイル出力先ディレクトリ，又は詳細情報ファイル出力先ディレクトリに，次の表に示すディレクトリが既に存在する場合，エラーメッセージを出力して処理を終了します。

表2‒11　出力先ディレクトリ下にあるとエラーになるディレクトリ

出力先ディレクトリ

出力先ディレクトリ下にあるとエラーになるディレクトリ

初期情報ファイル出力先ディレクトリ

CLTDIR

PDDIR

spool

conf

.dbenv

pdistup

OSFILE

SYSLOG

COREINF

PRF

詳細情報ファイル出力先ディレクトリ

PDDIR

spool

tmp

CLTDIR

PRF

この場合，次のどちらかの対処をしてから再度実行してください。

初期情報ファイル出力先ディレクトリ又は詳細情報ファイル出力先ディレクトリに別のディレクトリを指定する

指定したディレクトリ内の情報が不要な場合，すべて削除する

pdinfogetコマンド実行中でも，メッセージを出力した時点で該当する初期情報ファイルの障害情報は取得を完了しているため，取り出すことができます。詳細情報が多く，取得に時間が掛かる場合は，pdinfogetコマンドが終了する前に初期情報ファイルだけを取り出し，使用できます。

KFPN10403-I init information file output, file=初期情報ファイルパス名

(6)　注意事項

pdinfogetコマンドの結果は，コマンド実行時のリターンコード，又は実行ログ中のエラーメッセージで確認できます。pdinfogetコマンドのリターンコードの意味と対処方法を次に示します。

リターンコード

終了状態

意味と対処方法

0

正常終了

正常に終了しました。

なお，KFPN10451-Iが出力されている場合，障害情報のアーカイブ，又は圧縮が完了していません。

障害情報が取得済みのとき

そのまま障害情報として取得してください。

障害情報が取得されていないとき

障害情報を出力先ディレクトリにコピーします。なお，コピー中にエラーが発生したときは，実行ログやコンソールに出力されたエラーメッセージを参照して，エラーの原因を取り除いてから，コマンドを再度実行するか，個別に取得してください。

4

警告終了

障害情報取得の場合

一部の情報を取得できませんでした。次の原因が考えられます。

・取得対象のファイルがありません。

・必要な環境変数が正しく設定されていません。

取得できなかった障害情報が必要な場合，実行ログやコンソールに出力されたエラーメッセージを参照して，エラーの原因を取り除いてから，コマンドを再度実行するか，個別に取得してください。

障害情報容量見積もりの場合

-mオプションを指定して，障害情報容量見積もりを出力するときに，エラーが発生しました。

%PDCONFPATH%にルートディレクトリを指定している場合

処理を続行します。HiRDBのシステム定義情報以外の障害情報は取得済みのため，%PDCONFPATH%下のシステム定義情報を取得してください。

8

異常終了

エラーが発生したため，処理を打ち切りました。

オプションの指定方法が誤っています。

オプションを正しく指定して，再度実行してください。

初期情報ファイル出力先ディレクトリと詳細情報ファイル出力先ディレクトリに同じディレクトリを指定しています。

出力先ディレクトリには，異なるディレクトリを指定して，再度実行してください。

初期情報ファイル出力先ディレクトリ，又は詳細情報ファイル出力先ディレクトリのディレクトリ作成に失敗しました。又は，アクセス権限がありません。

指定する出力先ディレクトリに書き込み権限を付加するか，書き込み権限がある別のディレクトリを指定して，再度実行してください。

初期情報ファイル出力先ディレクトリ，又は詳細情報ファイル出力先ディレクトリ下に表「出力先ディレクトリ下にあるとエラーになるディレクトリ」に示すディレクトリがあります。

指定したディレクトリの内容を確認し，情報が不要な場合は削除して再度実行してください。情報が必要な場合は別のディレクトリを指定して再度実行してください。

HiRDB運用ディレクトリ（$PDDIR）が設定されていません。

HiRDB運用ディレクトリ（$PDDIR）を設定して，再度実行してください。

12

割り込み（シグナル発生）による終了

割り込み（シグナル発生）によって処理を打ち切りました。

初期情報ファイル及び詳細情報ファイルの出力先には，十分なディスク容量を用意する必要があります。特に，HiRDBの稼働中に，障害情報の出力先ディレクトリに$PDDIR下のディレクトリを指定してpdinfogetコマンドを実行すると，容量不足のためHiRDBが異常終了することがあるため，注意してください。なお，障害情報取得時に初期情報ファイル，又は詳細情報ファイルの出力先の容量が見積もりより少ない場合は，KFPN00407-Wメッセージを出力します。容量不足が発生して圧縮が行われなかった場合，圧縮前のファイルを取得してください。メッセージに出力した空き容量を確保できる出力先がほかにある場合は，障害情報の出力先を変更して，再実行してください。

pdinfogetコマンド実行中，アーカイブ及び圧縮対象となるファイルの容量とファイル数をKFPN00451-Iメッセージに出力します。ファイルの容量，ファイル数が多い場合は，処理時間が長くなります。

2.48　pdinfocoreget（coreファイルの取得と容量見積もり）

2.48.1　pdinfocoregetの形式と規則

(1)　機能

systemd-coredump が保持しているcoreファイルの取得，及び取得するcoreファイルの容量見積もりをします。

障害情報取得

systemd-coredump が保持しているcoreファイルを，OSのcoredumpctlコマンドで取得します。

障害情報容量見積もり

取得する障害情報に必要な容量をメガバイト単位で見積もります。

(2)　実行者

スーパーユーザーで実行します。

(3)　形式

(a)　障害情報取得

　pdinfocoreget -d coreファイル格納先ディレクトリ名

(b)　障害情報容量見積もり

　pdinfocoreget -m

(4)　オプション

(a)　-d coreファイル格納先ディレクトリ名

coreファイルを出力する既存のディレクトリ名を絶対パスで指定します。

ディレクトリ名の長さ（単位：バイト，最大：118バイト）

次のディレクトリを指定した場合は，エラーメッセージを出力して処理を打ち切ります。

HiRDB運用ディレクトリ下のディレクトリ

存在しないディレクトリ

書き込み権限がないディレクトリ

coreファイルは，複数のファイルを格納する場合があります。coreファイル名を次に示します。

coreファイル名：コマンド名.pid※

注※

pidはプロセスIDとなります。

(b)　-m

取得するcoreファイルに必要な容量の見積もり値を出力する場合に指定します。見積もり値は標準出力に次の形式で出力されます。

表示形式（単位：メガバイト）

coredump = xxx Mbyte

（凡例）xxx：数値

注

coreファイルを取得できない場合，"0 Mbyte"と表示されます。

(5)　規則

次のOS指定を行っている場合に，pdinfocoregetコマンドを実行します。

「/proc/sys/kernel/core_pattern」ファイルに「systemd-coredump」を指定

「/etc/systemd/journald.conf」ファイルに「Storage=persistent」以外を指定

pdinfocoregetコマンドを実行するためには，次の環境変数が設定されている必要があります。

PDDIR

HiRDB運用ディレクトリを指定します。

pdinfocoregetコマンドは，HiRDBの稼働に関係なく実行できます。

(6)　注意事項

pdinfocoregetコマンドの結果は，コマンド実行時のリターンコード，又は実行ログ中のエラーメッセージで確認できます。pdinfocoregetコマンドのリターンコードの意味と対処方法を次に示します。

リターンコード

終了状態

意味と対処方法

0

正常終了

正常に終了しました。

そのまま障害情報として取得してください。

4

警告終了

取得対象のファイルがありません（OSのcoredumpctlコマンドが異常終了しました）。

8

異常終了

エラーが発生したため，処理を打ち切りました。

KFPN10400-I以降に出力するメッセージに従って対処してください。

2.49　pditvstop（HiRDBの状態の定期取得停止)

2.49.1　pditvstopの形式と規則

(1)　機能

pditvtrcコマンドで起動したコマンドを停止します。

(2)　実行者

権限がないユーザでも実行できます。

(3)　形式

　pditvstop 出力ファイル接頭辞

(4)　コマンド引数

(a)　出力ファイル接頭辞

pditvtrcコマンドで指定した出力ファイルの接頭辞を指定します。

(5)　規則

pditvstopコマンドは，HiRDBの稼働に関係なく実行できます。

pditvstopコマンドは，停止対象のpditvtrcコマンドを実行したサーバマシンから実行してください。

”出力ファイル接頭辞.lck又はpid”ファイルが消失しているなどの理由によってpditvstopコマンドが実行できない場合は，psコマンドなどでPIDを確認してから，kill PID(kill -TERM PID)で終了してください。

出力ファイル接頭辞は，pditvtrcコマンドでの出力ファイルのパスの一部を構成します。pditvtrcコマンドでの出力ファイル接頭辞の指定（絶対パス名又は相対パス名）に関係なく，pditvstopコマンドでは絶対パス名又は相対パス名のどちらでも指定できます。

(6)　注意事項

pditvstopコマンドのリターンコードを次に示します。

0：正常終了

1：次のどれかの内容となります。

排他用ディレクトリ”出力ファイル接頭辞.lck”がありません。

”出力ファイル接頭辞.lck又はpid”ファイルがありません。

”出力ファイル接頭辞.lck又はpid”ファイルはありますが，プロセスがありません。

2.50　pditvtrc（HiRDBの状態の定期取得）

2.50.1　pditvtrcの形式と規則

(1)　機能

指定したコマンドを，指定した秒間隔ごとに実行して，標準出力，標準エラー出力，及び終了ステータスをファイルに出力します。

(2)　実行者

権限がないユーザでも実行できます。ただし，pditvtrcコマンド中に指定するコマンドについては，そのコマンドの実行権限に従います。

(3)　形式

　pditvtrc 秒間隔 出力ファイル接頭辞 ファイルサイズ 保有世代数

　　　　　コマンド 〔arg1 〔arg2〕 …〕

(4)　コマンド引数

(a)　秒間隔

指定したコマンドを実行する間隔を秒単位で指定します。秒間隔は0以上（0の場合は連続実行となります）の整数で指定してください。

指定した秒間隔以内に，指定したコマンドが終了しない場合，秒間隔の時間計測は停止します。指定したコマンドが終了すると，次のコマンドが実行され，同時に秒間隔の時間計測が再開されます。また，指定したコマンドが秒間隔以内に終了する場合でも，指定した秒間隔と誤差が発生することがあります。

(b)　出力ファイル接頭辞

出力ファイルの接頭辞を指定します。

実際の出力ファイル名は”出力ファイル接頭辞XX”となります（00≦XX＜保有世代数）。XXは，pditvtrcコマンドの開始時点で”出力ファイル接頭辞XX”がある場合には，出力ファイルのうちで最も新しいものを”出力ファイル接頭辞YY”として，YY+1から始まります。ただし，YY+1≧保有世代数の場合，及び”出力ファイル接頭辞XX”の出力ファイルがない場合は，”出力ファイル接頭辞00”から始まります。

指定したコマンドの実行後に，出力ファイルが指定したファイルサイズを超えた場合，出力ファイルをスワップして，”出力ファイル接頭辞XX”のXXをインクリメントした出力ファイル名に，指定したコマンドの結果を出力します。ただし，XX＝保有世代数に達した場合は，ラップアラウンドして再度00となります。XXがラップアラウンドした場合，前回の出力ファイルは上書きされます。

出力ファイルは，一つの出力ファイルが指定したファイルサイズを超えるたびにスワップされ，最大で保有世代数分保持されます。

(c)　ファイルサイズ

出力ファイルのファイルサイズの上限をメガバイト単位で指定します。

指定したコマンドの実行後に，カレントの出力ファイル名”出力ファイル接頭辞XX”のファイルサイズがここで指定したファイルサイズを超えた場合，カレント出力ファイルをスワップします。

(d)　保有世代数　〜((2〜100))

保持しておく出力ファイルの世代数を指定します。

世代数は実際の出力ファイル名に反映されます。出力ファイルの世代数は無限ですが，出力ファイルの接尾辞が00≦XX＜保有世代数の範囲であるため，新しいものから最大で保有世代数分の出力ファイルが保持されることになります。

(e)　コマンド 〔arg1 〔arg2〕…〕

実行するコマンドとその引数を指定します。

コマンドラインの文法は，通常のコマンドと同じです。コマンドには，HiRDBの運用コマンド以外にも任意のコマンドを指定できます。

(5)　規則

pditvtrcコマンドは，HiRDBの稼働に関係なく実行できます。ただし，pditvtrcコマンド中に指定するコマンドについては，そのコマンドの規則に従います。

pditvtrcコマンドは任意のサーバマシンから実行してください。ただし，pditvtrcコマンド中に指定するコマンドについては，そのコマンドの規則に従います。

pditvtrcコマンドを実行すると，ファイルサイズ×保有世代数以上の実行結果を出力する場合があるので，出力先の空き容量には十分注意してください。また，HiRDB運用ディレクトリ（$PDDIR），及びOSの運用ディレクトリ（/tmp，/varなど）が満杯になった場合，HiRDB及びOSが正常に動作しなくなることがあります。そのため，これらのディスクとは異なるディスクに実行結果を出力することをお勧めします。

pditvtrcコマンドは，同じ出力ファイル接頭辞に対して複数同時実行しないように，”出力ファイル接頭辞.lck”という名称の排他用ディレクトリを作成します。pditvstopコマンド，SIGTERMシグナル，及びSIGQUITシグナルでの終了の場合は排他を解放しますが，SIGKILLシグナルなどで強制終了すると排他が残ることがあるので強制終了はしないでください。排他ディレクトリが残った場合は，psコマンドで該当プロセスがないことを確認してから，排他ディレクトリをrm -r 出力ファイル接頭辞.lckで削除してください。

pditvtrcコマンドを実行すると，インターバル動作をするバックグラウンドプロセスを起動し，pditvtrcコマンド自身を終了します。このバックグラウンドプロセスは，pditvtrcコマンドを実行したターミナルを終了しても動作を続けます。動作を終了させる場合は，pditvstop 出力ファイル接頭辞を実行する必要があります。また，”出力ファイル接頭辞.lck又はpid”ファイルが消失しているなどの理由によってpditvstopコマンドが実行できない場合は，psコマンドなどでPIDを確認してから，kill PID(kill -TERM PID)で終了してください。このバックグラウンドプロセスは，SIGQUITシグナルもSIGTERMシグナルと同様に扱います。

pditvtrcコマンド実行中に，pdstartコマンドを実行すると，HiRDBの開始に失敗することがあります。開始に失敗した場合，pdstartコマンドを再度実行してください。また，pditvtrcコマンドでHiRDBのコマンドを実行する場合，HiRDBを停止する前にpditvstopコマンドを実行してください。

指定したコマンドが10回連続で０以外のリターンコードで終了した場合，pditvtrcコマンドは終了します。

(6)　注意事項

pditvtrcコマンドのリターンコードを次に示します。

0：正常終了

1：同一の出力ファイルを持つpditvtrcコマンドが既に動作中の場合，又は出力ファイル，排他用ディレクトリ”出力ファイル接頭辞.lck”が作成できない場合

(7)　出力形式

 YYYY/MM/DD HH:MM:SS   ......................................1
 "コマンド  arg1  arg2 ..."の標準出力＋標準エラー出力   .....2
 RC=コマンド リターンコード   ...............................3
        ：

［説明］

指定したコマンドの実行日時

“コマンド arg1 arg2 …“の標準出力及び標準エラー出力

“コマンド arg1 arg2 …“のリターンコード

2及び3については，各コマンドのマニュアル（HiRDBのコマンドの場合はこのマニュアルの各コマンドの説明）を参照してください。

(8)　使用例

例1：

コマンドごとにpditvtrcコマンドを実行する例を次に示します。

コマンド実行例：

 pditvtrc 60 /outputdir/rpc 10 2 pdls -d rpc -a
 pditvtrc 60 /outputdir/trn 10 2 pdls -d trn
 pditvtrc 60 /outputdir/prc 10 2 pdls -d prc
 pditvtrc 60 /outputdir/lck 10 2 pdls -d lck
 pditvtrc 60 /outputdir/buf 10 2 pdbufls

［説明］

各pditvtrcコマンドは，それぞれ異なる出力ファイルに，60秒ごとに起動する各コマンドの実行結果を追加出力します。各出力ファイルの最大ファイルサイズは10メガバイトで，各出力ファイルの保有世代数は2世代となります。

例2：

複数のコマンドを1回のpditvtrcコマンドで実行する例を次に示します。

コマンド実行例：

 pditvtrc 60 /outputdir/trc 20 6 trcscript

trcscriptの内容：

 #!/bin/posix/sh
 SCRIPT_RC=0

 # date '+%Y/%m/%d %H:%M:%S' 最初コマンド開始時間はpditvtrcが表示する
 pdls -d rpc -a
 RC=$?
 echo "RC=$?"
 if [[ $RC != 0 ]] ; then SCRIPT_RC=1; fi

 #date '+%Y/%m/%d %H:%M:%S' pdls -d trnは自ら実行時間を表示する
 pdls -d trn
 RC=$?
 echo "RC=$?"
 if [[ $RC != 0 ]] ; then SCRIPT_RC=1; fi

 #date '+%Y/%m/%d %H:%M:%S' pdls -d prcは自ら実行時間を表示する
 pdls -d prc
 RC=$?
 echo "RC=$?"
 if [[ $RC != 0 ]] ; then SCRIPT_RC=1; fi

 date '+%Y/%m/%d %H:%M:%S'
 pdls -d lck
 RC=$?
 echo "RC=$?"
 if [[ $RC != 0 ]] ; then SCRIPT_RC=1; fi

 #date '+%Y/%m/%d %H:%M:%S' pdls -d prcは自ら実行時間を表示する
 pdbufls
 RC=$?
 echo "RC=$?"
 if [[ $RC != 0 ]] ; then SCRIPT_RC=1; fi

 exit $SCRIPT_RC

［説明］

60秒ごとにシェルスクリプトtrcscriptを実行して，その実行結果を出力ファイル/outputdir/trcに追加出力します。出力ファイルのファイルサイズは20メガバイトで，保有世代数は6世代となります。

2.51　pdjarsync（JARファイルの操作）

2.51.1　pdjarsyncの形式と規則

(1)　機能

JARファイルの操作をします。

JARファイルの操作には，次のものがあります。

JARファイルのホスト間の再登録（HiRDB/パラレルサーバ限定）

JARファイルの登録

JARファイルの再登録

JARファイルの削除

JARファイルの一覧表示

このコマンドは，Javaストアドプロシジャ又はJavaストアドファンクションを使用するときに使うコマンドです。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdjarsync 〔｛-I｜-R｜-D｜-L｝〕

　          〔-u 認可識別子〔，認可識別子〕…〕

　          〔-f JARファイル名〕

(b)　HiRDB/パラレルサーバの場合

　pdjarsync 〔｛-S｜-I｜-R｜-D｜-L｝〕

　          〔-x ホスト名〔，ホスト名〕…〕

　          〔-u 認可識別子〔，認可識別子〕…〕

　          〔-f JARファイル名〕

(4)　オプション

(a)　｛-S｜-I｜-R｜-D｜-L｝

JARファイルの操作種別を指定します。

-S

HiRDB/パラレルサーバの場合に，JARファイルのホスト間の再登録をします。

-xオプションで指定したホストにあるJARファイルを，HiRDB環境下のサーバマシンに再登録します。-xオプションを省略した場合，ディクショナリサーバがあるサーバマシンのJARファイルを，HiRDB環境下のサーバマシンに再登録します。

HiRDBサーバの構成を変更した場合（例えば，サーバマシンを増やしたとき），系切り替えをした場合など，-Sオプションを指定してください。

-I

指定したJARファイルを登録します。

このオプションを指定した場合，-u，-fオプションを必ず指定してください。

指定したJARファイルが既に登録されている場合，エラーとなります。

-R

指定したJARファイルを再登録します。

指定したJARファイルが既に登録されている場合には，登録されているJARファイルに上書きします。

このオプションを指定した場合，-u，-fオプションを必ず指定してください。

-D

指定したJARファイルを削除します。

このオプションを指定した場合，-u，-fオプションを必ず指定してください。

指定したJARファイルがHiRDBに登録されていない場合，エラーとなります。

pdjarsyncコマンドが異常終了した場合，書き込み中のJARファイルが残ることがあります。この場合，-Dオプションを指定して，残ったJARファイルを削除してください。

-L

登録されているJARファイルの一覧を表示します。

JARファイルの操作種別と他オプションとの関係を次の表に示します。

表2‒12　JARファイルの操作種別と他オプションとの関係

JARファイルの操作種別

他オプション

-x

-u

-f

-S

○※

○

○

-I

○

◎

◎

-R

○

◎

◎

-D

○

◎

◎

-L

○

○

○

（凡例）

◎：必ず指定してください。

○：任意に指定できます。

注※

-xオプションを指定する場合は，ホスト名を一つだけ指定してください。

(b)　-x ホスト名〔，ホスト名〕…

-Sオプションを指定した場合，再登録の起点となるホスト名を一つだけ指定します。省略した場合は，ディクショナリサーバのホストが仮定されます。

-Sオプション以外を指定した場合，操作するホスト名を指定します。省略した場合は，HiRDB環境下のすべてのホストが仮定されます。

(c)　-u 認可識別子〔，認可識別子〕…

JARファイルの操作をする，ユーザの認可識別子を指定します。

-I，-R，及び-Dオプションを指定した場合は，このオプションを必ず指定してください。

認可識別子には，'MASTER'及び'HiRDB'は指定できません。

(d)　-f JARファイル名

操作をするJARファイルの名称を指定します。

-I，-R，及び-Dオプションを指定した場合は，このオプションを必ず指定してください。

-S，-Lオプション指定時にこのオプションを省略した場合は，登録されているすべてのJARファイルが仮定されます。

JARファイルは，システム定義のpd_java_archive_directoryオペランドで指定したディレクトリに格納されます。

(5)　規則

pdjarsyncコマンドは，HiRDBの稼働に関係なく実行できます。

pdjarsyncコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdjarsyncコマンドは，複数同時に実行しないでください。

(6)　注意事項

SQLのINSTALL JAR，REPLACE JAR，又はREMOVE JARを実行した場合，内部的にpdjarsyncコマンドが実行されます。この場合，pdjarsyncコマンドは，シングルサーバ又はフロントエンドサーバから実行されます。

pdjarsyncコマンドのリターンコードを次に示します。

0：正常終了

4：異常終了（登録，再登録の場合はJARファイルが登録済み，削除の場合はJARファイルが登録されていないことを示します）

8：異常終了

(7)　出力形式

pdjarsyncコマンドのオプションに-Lを指定，又はオプションを省略した場合に，次の情報が出力されます。

 HOSTNAME(aabbcc)  DATE        TIME       SIZE    OWNER   FILE
 dd...d            eeee/ff/gg  hh:ii:jj   kk...k  ll...l  mm...m
    :                :            :         :       :       :

［説明］

aabbcc：

pdjarsyncコマンドを実行した時刻

dd...d：

ホスト名

eeee/ff/gg：

JARファイルの日付※

hh:ii:jj：

JARファイルの時刻※

kk...k：

JARファイルの大きさ（単位：バイト）

ll...l：

JARファイルの所有者名

mm...m：

JARファイルの名称

注※

SQL文（INSTALL JAR，REPLACE JAR），又はJDBCのメソッドでJARファイルの登録又は再登録をした場合，SQL文又はJDBCのメソッドを実行した日付及び時刻となります。

pdjarsyncコマンドでJARファイルの登録又は再登録をした場合，登録又は再登録したJARファイルの日付及び時刻となります。

2.52　pdlistls（リスト定義情報の表示）

2.52.1　pdlistlsの形式と規則

(1)　機能

リスト定義情報を表示します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdlistls 〔-d ｛1｜2｝〕

　        〔-u リスト所有者名〕

　        〔-t リスト基表所有者名.リスト基表名〕

　        〔-W 実行監視時間〕

(4)　オプション

(a)　-d ｛1｜2｝

表示するリスト定義情報を指定します。

-dオプション

表示する情報

システム定義の値※

リストの所有者名

リスト名

リスト数

基表の所有者名

基表名

1

○

○

×

○

×

×

2

○

○

○

×

○

○

（凡例）

○：表示されます。

×：表示されません。

注※

pd_max_list_users及びpd_max_list_countオペランドの指定値を示します。

(b)　-u リスト所有者名　〜＜識別子＞((1〜30))

特定のリスト所有者のリスト定義情報だけを表示する場合，そのリスト所有者名を指定します。省略した場合，すべてのリスト所有者が仮定されます。

リスト所有者名は，引用符（"）で囲まないかぎり大文字として扱われます。

(c)　-t リスト基表所有者名.リスト基表名

特定のリスト基表のリスト定義情報だけを表示する場合，そのリスト基表所有者名，リスト基表名を指定します。

リスト基表所有者名は1〜30文字，リスト基表名は1〜30文字の識別子で指定してください。また，リスト基表所有者名，リスト基表名は，引用符（"）で囲まないかぎり大文字として扱われます。また，空白を含む場合も引用符（"）で囲んでください。

(d)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pdlistlsコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

pdlistlsコマンドは，HiRDBが稼働中のときだけ実行できます。

pdlistlsコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(6)　注意事項

pdlistlsコマンド実行時のリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

(7)　出力形式

(a)　-d 1の場合

  STATE OD LIST DEFINITION
  #       OWNER NAME    LIST COUNT
 [aa...a  bb...b        cc...c]
            :
 [NOT FOUND dd...d]
 pd_max_list_users : ee...e
 pd_max_list_count : ff...f

［説明］

aa...a：

表示上の通番

bb...b：

リストの所有者名

cc...c：

リストが使用しているセグメント数

dd...d：

見付からなかった情報

-tオプションを指定した場合：TABLE

-uオプションを指定した場合：USER

ee...e：

システム定義のpd_max_list_usersオペランドの値（シングルサーバ又はディクショナリサーバでの値）

ff...f：

システム定義のpd_max_list_countオペランドの値（シングルサーバ又はディクショナリサーバでの値）

(b)　-d 2の場合

  STATE OD LIST DEFINITION
  #       OWNER NAME  LIST NAME  BASE TABLE OWNER  BASE TABLE NAME
 [aa...a  bb...b      cc...c     dd...d            ee...e]
            :
 [NOT FOUND ff...f]
 pd_max_list_users : gg...g
 pd_max_list_count : hh...h

［説明］

aa...a：

表示上の通番

bb...b：

リストの所有者名

cc...c：

リスト名

dd...d：

リストの基表の所有者名

ee...e：

リストの基表名

ff...f：

見付からなかった情報

-tオプションを指定した場合：TABLE

-uオプションを指定した場合：USER

gg...g：

システム定義のpd_max_list_usersオペランドの値（シングルサーバ又はディクショナリサーバでの値）

hh...h：

システム定義のpd_max_list_countオペランドの値（シングルサーバ又はディクショナリサーバでの値）

2.53　pdlogadpf（ログ関係のファイルの割り当て）

2.53.1　pdlogadpfの形式と規則

(1)　機能

HiRDB稼働中に，HiRDBシステム定義で指定したファイルグループに物理ファイルを割り当てます。物理ファイルは，pdlogadpfコマンド実行前にpdloginitコマンドで作成しておく必要があります。

pdlogadpfコマンド実行後，pdlogopenコマンドでオープンすると，ファイルグループは稼働中のHiRDBで使用できる状態になります。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdlogadpf -d spd 〔-s サーバ名〕 -g ファイルグループ名

　　　　　　-a A系の物理ファイル名 〔-b B系の物理ファイル名〕

(b)　HiRDB/パラレルサーバの場合

　pdlogadpf -d spd -s サーバ名 -g ファイルグループ名

　　　　　　-a A系の物理ファイル名 〔-b B系の物理ファイル名〕

(4)　オプション

(a)　-d spd

シンクポイントダンプファイルに物理ファイルを割り当てます。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

ファイルグループに対応するサーバの名称を指定します。

(c)　-g ファイルグループ名　〜＜識別子＞((1〜8))

物理ファイルを割り当てるファイルグループの名称を指定します。シングルサーバ定義，フロントエンドサーバ定義，バックエンドサーバ定義，又はディクショナリサーバ定義で指定したファイルグループ名を指定してください。

(d)　-a A系の物理ファイル名　〜＜パス名＞((167文字以内))

ファイルグループに割り当てるA系の物理ファイル名を，絶対パス名で指定します。物理ファイル名は，HiRDBファイルシステム領域名/HiRDBファイル名で指定してください。

(e)　-b B系の物理ファイル名　〜＜パス名＞((167文字以内))

ファイルグループに割り当てるB系の物理ファイル名を，絶対パス名で指定します。物理ファイル名は，HiRDBファイルシステム領域名/HiRDBファイル名で指定してください。

このオプションは，シンクポイントダンプファイルを二重化している場合に必ず指定してください。二重化していない場合に指定したときはエラーとなります。

シンクポイントダンプファイルを二重化している場合，-a，及び-bオプションを指定し，片方の系でファイルの割り当てが失敗したときは，コマンドエラーとなります。

(5)　規則

pdlogadpfコマンドは，HiRDBが稼働中のときだけ実行できます。

pdlogadpfコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(6)　注意事項

既に物理ファイルを割り当てているファイルグループに対して，pdlogadpfコマンドを実行するとエラーになります。

pdlogadpfコマンドの結果は，コマンド実行時のリターンコード，エラーメッセージの有無，又はメッセージログから確認できます。コマンド実行時のリターンコードが0の場合は正常終了，4の場合は異常終了，8の場合は異常終了（オプション指定不正，rsh失敗など）です。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，コマンドを実行したサイトによって割り当て対象のシンクポイントダンプファイルが異なります。

業務サイトの場合

正シンクポイントダンプファイルを割り当て対象とします。副シンクポイントダンプファイルについては割り当てできません。

ログ適用サイトの場合

副シンクポイントダンプファイルを割り当て対象とします。正シンクポイントダンプファイルについては割り当てできません。

(7)　使用例

システム定義で指定したファイルグループに物理ファイルを割り当てます。

ファイルグループ名　spdfgf15

物理ファイル名　/svr01/spdf15

【HiRDB/シングルサーバの場合】

 pdlogadpf -d spd   ..........................1
           -g spdfgf15   .....................2
           -a /svr01/spdf15   ................3

［説明］

ログ関係のファイルの種別　spd（シンクポイントダンプファイル）

ファイルグループ名　spdfgf15

物理ファイル名　/svr01/spdf15

【HiRDB/パラレルサーバの場合】

 pdlogadpf -d spd   ..........................1
           -s bes1   .........................2
           -g spdfgf15   .....................3
           -a /svr01/spdf15   ................4

［説明］

ログ関係のファイルの種別　spd（シンクポイントダンプファイル）

ファイルグループに対応するサーバの名称　bes1

ファイルグループ名　spdfgf15

物理ファイル名　/svr01/spdf15

2.54　pdlogatul（自動ログアンロード機能の制御）

2.54.1　pdlogatulの形式と規則

(1)　機能

自動ログアンロード機能を制御します。次の制御ができます。

HiRDB稼働中に停止した自動ログアンロード機能を再開始します。

実行中の自動ログアンロード機能を中断します。

自動ログアンロード機能の動作状態を表示します。

自動ログアンロード機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdlogatul -d sys 〔-s サーバ名〕 〔｛-i｜-b｜-t〔-w〕｝〕

(b)　HiRDB/パラレルサーバの場合

　pdlogatul -d sys -s サーバ名 〔｛-i｜-b｜-t〔-w〕｝〕

(4)　オプション

(a)　-d sys

システムログファイルに対して操作することを示します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

操作するサーバの名称を指定します。

(c)　-i

自動ログアンロード機能の動作状態を表示する場合に指定します。

(d)　-b

自動ログアンロード機能を再開始する場合に指定します。

再開始直後のアンロードログファイル作成ディレクトリは，前回動作時の情報が引き継がれます。

(e)　-t

自動ログアンロード機能を中断する場合に指定します。

アンロード処理中の場合は，処理が中断されます。

(f)　-w

-tオプションを指定して自動ログアンロード機能を中断する場合に，現在自動アンロード実行中のログ世代に対するアンロード処理が完了するまで，コマンドの終了を遅延させるときに指定します。このオプションは，-tオプションを指定したときだけ有効となります。なお，-tオプションを指定し，-wオプションを省略した場合は，pdlogatulコマンドを実行した時点で自動ログアンロード機能を中断し，実行中のアンロード処理を強制的に終了します。

このオプションを指定すると，アンロード処理完了の待ち時間は約9時間（32768秒）となります。この時間を経過してもアンロード処理が完了しない場合は，その時点で自動ログアンロード機能を中断し，実行中のアンロード処理を強制終了します。

このオプションを指定すると，不完全な状態のアンロードログファイル（通常自動ログアンロード機能を中断した場合に残ることがある）がなくなるため，pdrstrでその時点のアンロードログファイルをすべて入力できます。

(5)　規則

pdlogatulコマンドは，HiRDBが稼働中の場合に実行できます。なお，-i又は-tオプションを指定した場合は，HiRDBの停止処理中（pdstopコマンド実行中）でも実行できます。ただし，pdstart -rコマンドでHiRDBが稼働している場合（HiRDBの開始処理中及び終了処理中を含む）は，-i又は-tオプションの指定に関係なく，pdlogatulコマンドを実行できません。

-b，-t又は-t -wオプションを指定できる，HiRDBの稼働状態と自動ログアンロード機能の動作状態の組み合わせを次に示します。

項番

HiRDBの稼働状態

自動ログアンロード機能の動作状態

オプション

-b

-t

-t -w

1

稼働中

ACTIVE

×

○

○

2

STOP

○

×

×

3

STOP（E）

○

○

○

4

STOPPING

○

○

×

5

−

×

×

×

6

停止処理中

ACTIVE

×

○

○

7

STOP

×

×

×

8

STOP（E）

×

○

○

9

STOPPING

×

○

×

10

−

×

×

×

11

その他

すべての状態

×

×

×

（凡例）

○：指定できます。

×：指定できません。

−：自動ログアンロード機能を使用できない状態です。

pdlogatulコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

現用世代のログファイルグループ情報は，現用ログ世代がある場合に出力されます。

pdlogatul -t -wコマンド実行時にリターンコードが4になった場合は，不完全な状態のアンロードログファイルが残っている可能性があります。この場合，出力されたエラーメッセージからエラー要因を調査し対策した後，再度pdlogatul -bコマンドを実行してください。その後，pdlogatul -t -wコマンドを実行してください。

(6)　注意事項

pdlogatulコマンドのリターンコードを次に示します。

0：正常終了

4：次のどちらかの状態です。

-t及び-wオプションを指定して実行した場合，アンロード処理完了の待ち時間（32768秒）が経過してもアンロード処理が完了しなかったため，アンロード処理を強制終了し，自動ログアンロード機能を中断しました。

-t及び-wオプションを指定して実行した場合，アンロード処理完了監視中に次のどれかの要因で自動ログアンロード機能が中断しました。

・すべてのアンロードログ作成先ディレクトリが使用できません。

・アンロードログファイルの名称が重複しています。

・資源不足です（メモリ，最大起動プロセス数超過など）。

8：コマンドエラー

(7)　出力形式

 HOSTNAME : aa...a(bb...b)
 SERVER_NAME : cc...c
 AUTO_LOG_UNLOAD  NOW_UNLOAD_LOG_GROUP  CREATE_DIR
               d                ee...e  ff...f
 CURRENT LOG GENERATION INFO.
 LOG_GROUP  GEN_NO.  SERVER_RUN_ID  RUN_ID  UNLOAD_FILE_NAME
 gg...g     hh...h   ii...i         jj...j  kk...k

［説明］

aa...a：

ホスト名

bb...b：

pdlogatulを実行した時刻（時：分：秒）

cc...c：

サーバ名

d：

自動ログアンロード機能の動作状態

ACTIVE：動作中

STOP：停止中

STOP（E）：障害停止中

STOPPING：停止時のアンロード処理待ち監視中

−：自動ログアンロード機能を使用できない状態

ee...e：

現在アンロード中のシステムログファイルのファイルグループ名

自動ログアンロード機能が動作中でない場合，****が表示されます。

ff...f：

使用中のアンロードログファイル作成ディレクトリ名

gg...g：

現用世代のシステムログファイルのファイルグループ名

hh...h：

現用世代のシステムログ世代番号

ii...i：

現用世代のサーバのランID

jj...j：

現用世代のシステムログのランID

kk...k：

現用世代を自動ログアンロードしたときの生成ファイル名称

2.55　pdlogchg（ログ関係のファイルのステータス変更）

2.55.1　pdlogchgの形式と規則

(1)　機能

指定したファイルグループのステータスを，強制的にアンロード済み状態，HiRDB Datareplicatorの抽出完了状態，又はオンライン再編成上書き可能状態にします。現用ファイルグループのステータス変更はできません。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdlogchg ｛-d sys 〔-s サーバ名〕 -g ファイルグループ名 〔｛-R｜-G｝〕

　　　　　　　｜-z ログポイント情報ファイル名｝

(b)　HiRDB/パラレルサーバの場合

　pdlogchg ｛-d sys -s サーバ名 〔-u ユニット識別子〕 -g ファイルグループ名 〔｛-R｜-G｝〕

　　　　　　　｜-z ログポイント情報ファイル名 〔-x ホスト名〕｝

(4)　オプション

(a)　-d sys

システムログファイルのステータスを変更します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

ファイルグループに対応するサーバの名称を指定します。

(c)　-u ユニット識別子　〜＜識別子＞((4文字))

影響分散スタンバイレス型系切り替え機能を適用している場合，ステータスを変更するシステムログファイルを作成したディスクがあるホストの，ユニット識別子を指定します。

該当するサーバ，及びシステムマネジャが稼働中の場合，-uオプションの指定は無視されます。

次のどれかに該当する場合に-uオプションを指定すると，エラーとなります。

指定するユニットが，-sオプションで指定したサーバの移動先となるHAグループに属していない。

-sオプションで指定したサーバが，HAグループ内のサーバではない。

影響分散スタンバイレス型系切り替え機能を適用していない。

-uオプションの指定要否を次に示します。

サーバの状態

ファイル作成先のディスクがあるホスト

-uオプションの指定

稼働中

実行系バックエンドサーバがあるホスト

省略できます。

停止中

現用系バックエンドサーバがあるホスト

上記以外のホスト

必ず指定します。

(d)　-g ファイルグループ名　〜＜識別子＞((1〜8))

ステータスを変更するファイルグループの名称を指定します。

(e)　-z　ログポイント情報ファイル名　〜＜パス名＞

ログポイント情報ファイルに記述されているログポイントより古いすべてのファイルグループのステータスを変更します。

このログポイント情報ファイルには，次に示すファイルのどちらかを指定してください。

pdcopyコマンドで-zオプションを指定して作成したファイル

pdrstrコマンドで-zオプションを指定して作成したファイル

ログポイント情報ファイル名は/（ルート）で始まる絶対パス名で指定します。

(f)　-x　ホスト名　〜＜識別子＞((1〜32))

ステータスを変更するログファイルグループが属するサーバが稼働するホスト名を指定します。

省略した場合，コマンドを入力したホストが仮定されます。

(g)　-R

HiRDB Datareplicator連携を実行している場合に，抽出未完了状態のファイルグループを，強制的に抽出完了状態に変更するときに指定します。このオプションを指定すると，抽出状態だけを抽出未完了状態から抽出完了状態に変更します。

(h)　-G

更新可能なオンライン再編成を実行している場合に，オンライン再編成上書き禁止状態のファイルグループを，強制的にオンライン再編成上書き可能状態に変更するときに指定します。

(5)　規則

pdlogchgコマンドの実行条件を次に示します。

システム定義でpd_log_unload_check=Nを指定している場合，HiRDBが稼働中で，かつ操作対象のファイルグループがオープン状態のときは，-Rオプションの指定がないと実行できません。

上記以外の場合，HiRDBの稼働に関係なく実行できます（ただし，HiRDB開始処理中及びHiRDB終了処理中は除きます）。

pdlogchgコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(6)　注意事項

pdlogchgコマンドのリターンコードを次に示します。

0：正常終了

4：異常終了

8：異常終了（オプション指定不正，rsh失敗など）

12：異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）

pdlogchgコマンドは，HiRDB開始処理中に実行しないでください。HiRDB開始処理中とは，KFPS01800-Iメッセージの出力からKFPS05210-Iメッセージの出力までの間のことをいいます。実行した場合，システムログファイルの状態がHiRDBに反映されないことがあります。このような場合には，HiRDB開始処理完了後にpdlogclsコマンドで該当するファイルグループをクローズし，その後pdlogopenコマンドでオープンすると，システムログファイルの状態が反映されます。

pdlogchgコマンドは，HiRDBシステム定義ファイルの内容を参照して，処理をします。そのため，システムログを取得した稼働中のHiRDBのHiRDBシステム定義ファイルと，pdlogchgコマンド実行時のHiRDBシステム定義ファイルの内容が一致していない場合は，ステータスを変更できないことがあります。

pdlogchgコマンドがエラーとなった場合でも，正しく終了することがあります。正しく終了しているかどうかについては，終了コードが0であるか，又はpdloglsコマンドでステータスが変更になっているかを確認することで分かります。

pdlogchgコマンドの結果は，次の方法で確認できます。

HiRDB稼働中の場合

pdloglsコマンド

HiRDB停止中の場合

コマンド実行時のリターンコード，エラーメッセージの有無，又はpdloglsコマンド。

HiRDBが稼働していないときにpdlogchgコマンドを実行し，コマンドが終了する前にHiRDBを開始するとコマンド実行エラーとなります。その場合，HiRDBの稼働状態を確認してから，再度pdlogchgコマンドを実行してください。

システム定義のpd_log_org_no_standby_file_opr=stopを指定して更新可能なオンライン再編成を実行している場合，どれかのサーバが次の条件をすべて満たすと，HiRDBが開始できなくなります。

すべてのシステムログファイルのファイルグループがオンライン再編成上書き禁止状態となったため，HiRDBが強制終了している。

HiRDBの運用上の理由でシステム定義が変更できない，かつシステムログファイルの新規追加ができない。

上記の現象が発生した場合で，かつ更新可能なオンライン再編成を中止し，副系RDエリアだけを使用した業務の続行をするときは，pdlogchg -Gコマンドで強制的にシステムログファイルのファイルグループをオンライン再編成上書き可能状態にすれば，HiRDBを開始できるようになります（該当するサーバのすべてのシステムログファイルに対してpdlogchg -Gコマンドを実行してください）。

なお，このような運用をした場合は，オンライン再編成の追い付き反映でのデータ更新が中途半端な状態となるため，正系RDエリアはDB不整合状態となることがあります。そのため，更新可能なオンライン再編成を再度実行する場合は，事前に副系RDエリアのデータから正系RDエリアの回復をする必要があります。正系RDエリアの回復については，マニュアル「インナレプリカ機能 HiRDB Staticizer Option」を参照してください。

pdstop -sコマンドで個別に終了したサーバでは，そのサーバでpd_log_unload_check=Nを指定している場合，-Rオプションの指定がないとpdlogchgコマンドは実行できません。

-Rオプションは，HiRDB Datareplicator連携で，システム共通定義のpd_log_rpl_no_standby_file_opr=stopを指定している場合に次に示す三つの条件が満たされるような障害が発生して，データ連動をいったん停止するときに，強制的にファイルグループのステータスを変更するために実行します。

すべてのシステムログファイルが抽出未完了状態になったため，HiRDBが強制終了

HiRDBの運用上の理由で定義の変更不可

HiRDB Datareplicatorで障害が発生して，HiRDB Datareplicatorが稼働不可

このような場合には，-Rオプションを指定したpdlogchgコマンドをすべてのシステムログファイルに対して実行し，抽出未完了状態を抽出完了状態に変更してください。このとき，抽出側データべースの更新情報の一部を消失してしまうため，反映側DBに反映できなくなり，抽出側と反映側のデータべースが不整合となる可能性があります。そのため，データ連動の再開始をする前に反映側DBを再作成する必要があります。データべースの再作成の手順については，マニュアル「HiRDBデータ連動機能 HiRDB Datareplicator」を参照してください。

2.56　pdlogcls（ログ関係のファイルのクローズ）

2.56.1　pdlogclsの形式と規則

(1)　機能

指定したファイルグループを構成する，オープン中の物理ファイルをクローズし，稼働中のHiRDBで使用しないようにします。ただし，次のファイルグループを構成する物理ファイルはクローズできません。

現用，及び上書きできない状態のシステムログファイル

書き込み中，及び上書きできない状態のシンクポイントダンプファイル

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdlogcls ｛-d ｛sys｜spd｝ 〔-s サーバ名〕 -g ファイルグループ名 〔-a〕 〔-b〕

(b)　HiRDB/パラレルサーバの場合

　pdlogcls ｛-d ｛sys｜spd｝ -s サーバ名 -g ファイルグループ名 〔-a〕 〔-b〕

(4)　オプション

(a)　-d sys｜spd

クローズするログ関係のファイルを指定します。

sys：

システムログファイル

spd：

シンクポイントダンプファイル

(b)　-s サーバ名　〜＜識別子＞((1〜8))

ファイルグループに対応するサーバの名称を指定します。

(c)　-g ファイルグループ名　〜＜識別子＞((1〜8))

クローズするファイルのファイルグループ名を指定します。

(d)　-a

システムログファイル又はシンクポイントダンプファイルをクローズする場合，A系の物理ファイルをクローズ対象とするときに指定します。

(e)　-b

システムログファイル又はシンクポイントダンプファイルをクローズする場合，B系の物理ファイルをクローズ対象とするときに指定します。二重化していない場合にこのオプションを指定すると，コマンドエラーとなります。

-aオプション及び-bオプションを省略した場合，次のようになります。

二重化していない場合は，-aオプションを指定したときと同様に，A系の物理ファイルをクローズ対象とします。

二重化している場合は，-aオプション及び-bオプションを指定したときと同様に，A系及びB系の物理ファイルをクローズ対象とします。

(5)　規則

pdlogclsコマンドは，HiRDBが稼働中のときだけ実行できます。

pdlogclsコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

クローズ対象となる物理ファイルが，すべてクローズ済みのときは，警告メッセージ（KFPS01283-W又はKFPS02168-W）が出力されます。

(6)　注意事項

pdlogclsコマンドのリターンコードを次に示します。

0：正常終了

4：異常終了

8：異常終了（オプション指定不正，rsh失敗など）

ログ関係のファイルのスワップ処理中，又はほかの運用コマンドの処理中にpdlogclsコマンドを実行すると，エラーになることがあります。

pdlogclsコマンドの結果は，pdloglsコマンドで確認できます。

システム定義のpd_log_remain_space_check=safe指定時，pdlogclsコマンドでシステムログファイルをクローズした場合に容量不足となるときは，KFPS01280-Eメッセージ（理由コード：712）を出力し，エラーとなります。この場合，システムログファイルの空き容量を増やした後，pdlogclsコマンドを再度実行してください。システムログファイルの空き容量監視機能の運用方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，コマンドを実行したサイトによってクローズ対象のファイルが異なります。

業務サイトの場合

システムログファイル，及び正シンクポイントダンプファイルをクローズ対象とします。副シンクポイントダンプファイルについてはクローズできません。

ログ適用サイトの場合

副シンクポイントダンプファイルをクローズ対象とします。システムログファイル，及び正シンクポイントダンプファイルについてはクローズできません。

2.57　pdloginit（ログ関係のファイルの初期設定）

2.57.1　pdloginitの形式と規則

(1)　機能

HiRDBファイルシステムにログ関係の物理ファイルを作成し，稼働中のHiRDBで使用できるように初期設定をします。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdloginit ｛-d sys 〔-s サーバ名〕

　　　　　　　　-f 物理ファイル名 -n HiRDBレコード数 〔-l レコード長〕

　　　　　　 ｜-d spd 〔-s サーバ名〕

　　　　　　　　-f 物理ファイル名 -n HiRDBレコード数｝

(b)　HiRDB/パラレルサーバの場合

　pdloginit ｛-d sys -s サーバ名 〔-u ユニット識別子〕

　　　　　　　　-f 物理ファイル名 -n HiRDBレコード数 〔-l レコード長〕 〔-D〕

　　　　　　 ｜-d spd  -s サーバ名 〔-u ユニット識別子〕

　　　　　　　　-f 物理ファイル名 -n HiRDBレコード数 〔-D〕｝

(4)　オプション

(a)　-d sys｜spd

初期設定をするログ関係のファイルを指定します。

sys：

システムログファイル

spd：

シンクポイントダンプファイル

(b)　-s サーバ名　〜＜識別子＞((1〜8))

ファイルグループに対応するサーバの名称を指定します。

(c)　-f 物理ファイル名　〜＜パス名＞((167文字以内))

初期設定をする物理ファイルの名称を絶対パス名で指定します。物理ファイル名は，HiRDBファイルシステム領域名/HiRDBファイル名で指定してください。HiRDBファイル名は，HiRDBファイルシステム領域内で重複しないようにしてください。既に初期設定されているHiRDBファイル名を指定すると，エラーとなります。また，HiRDBファイル名にplで始まる名称は指定できません。

(d)　-n HiRDBレコード数　〜＜符号なし整数＞((12〜104857600))

初期設定をするHiRDBファイルのレコード数を指定します。なお，ここでいうレコードとは，HiRDBファイルシステム上の次に示すサイズの領域のことです。

-d sysの場合は，-lオプションで指定したレコード長

-d spdの場合は，4,096バイト

＜指定範囲＞

HiRDBレコード数には，次に示す範囲の値を指定してください。

-d sysの場合

上限

107374182400÷-lオプションの指定値

下限

↑(32000＋368＋3×4096)÷-lオプションの指定値↑＋1

-d spdの場合

12〜262144

＜指定値の目安＞

HiRDBレコード数の見積もりについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

-d sysの場合

見積もったレコード数は総容量なので，作成するシステムログファイルの個数で割った値×1.2を目安にしてください。

-d spdの場合

見積もったレコード数×1.2を目安にしてください。

(e)　-l レコード長　〜＜符号なし整数＞((1024〜4096))

システムログファイルとして初期設定するHiRDBファイルのレコード長を指定します。

通常はこのオプションを指定しないでください。

このオプションは，システム定義変更前にシステムログファイルを作っておきたい場合にだけ指定します。

＜規則＞

レコード長は，HiRDBシステム定義のpd_log_rec_lengオペランドと同じ値にしてください。設定される値は次のようになります。

指定値が1,024のときは1,024に設定されます。

指定値が1,025〜2,048のときは2,048に設定されます。

指定値が2,049〜4,096のときは4,096に設定されます。

上記以外の値を指定するとエラーになります。

このオプションを省略すると，HiRDBシステム定義のpd_log_rec_lengオペランドに指定した値で初期設定します。pd_log_rec_lengオペランドと異なるレコード長で初期設定したファイルは，システムログファイルとしてオープンできません。

シンクポイントダンプファイルとして初期設定する場合，このオプションを指定するとエラーになります。また，HiRDBファイルシステムのセクタ長未満のレコード長を指定した場合もエラーになります。

(f)　-u ユニット識別子　〜＜識別子＞((4文字))

影響分散スタンバイレス型系切り替え機能を適用している場合，ファイル作成先のディスクがあるホストの，ユニット識別子を指定します。

該当するサーバが稼働中の場合，-uオプションの指定は無視されます。

次のどれかに該当する場合に-uオプションを指定すると，エラーとなります。

指定するユニットが，-sオプションで指定したサーバの移動先となるHAグループに属していない。

-sオプションで指定したサーバが，HAグループ内のサーバではない。

影響分散スタンバイレス型系切り替え機能を適用していない。

-uオプションの指定要否を次に示します。

サーバの状態

ファイル作成先のディスクがあるホスト

-uオプションの指定

稼働中

実行系バックエンドサーバがあるホスト

省略できます。

停止中

現用系バックエンドサーバがあるホスト

上記以外のホスト

必ず指定します。

(g)　-D

pdchgconfコマンドでユニットの追加，又はサーバの追加をする場合に指定します。

ユニットの追加，又はサーバの追加をする場合に必要となる，システムログファイル又はシンクポイントダンプファイルの初期化をします。このオプションを指定した場合，サーバ名のチェックはしません。

このオプションを指定してpdloginitコマンドを実行する場合，作成するシステムログファイル又はシンクポイントダンプファイルがあるユニットで実行してください。

(5)　規則

pdloginitコマンドは，HiRDBの稼働に関係なく実行できます（ただし，HiRDB開始処理中及びHiRDB終了処理中は除きます）。

pdloginitコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdloginitコマンド実行時，環境変数のPDDIRにHiRDBディレクトリの環境変数と同じものが設定されていないと，コマンドエラーになったときにメッセージが出力されません。

キャラクタ型スペシャルファイル上にHiRDBファイルシステムを作成した場合，ファイルを作成するハードディスクのパーティションは，次のようにしてください。

初期設定するファイルがシステムログファイルの場合(-d sysの場合)，ハードディスクのパーティションのセクタ長の整数倍が-lオプションで指定したレコード長になるようにしてください。

初期設定するファイルがシンクポイントダンプファイルの場合(-d spdの場合)，ハードディスクのパーティションのセクタ長の整数倍が4,096になるようにしてください。

システムログファイルのレコード長は，各サーバのすべてのファイルで，HiRDBシステム定義のpd_log_rec_lengオペランドと同じ値を指定してください。

(6)　注意事項

システムログファイルを二重化する場合，一つのログファイルグループを構成するA系とＢ系の物理ファイルは，レコード長とレコード数が同じになるように初期設定してください。

システムログファイルを二重化する場合，A系とB系の物理ファイルは障害発生に備えて，なるべく別々のハードディスクに作成してください。

pdloginitコマンドの結果は，コマンド実行時のリターンコード，又はエラーメッセージの有無で確認できます。コマンド実行時のリターンコードを次に示します。

0：正常終了

4：異常終了

8：異常終了（オプション指定不正，rsh失敗など）

12：異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）

セクタ長が4,096バイトを超えるHiRDBファイルシステムには，ファイルを初期設定できません。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，コマンドを実行したサイトによって初期設定できるファイルが異なります。

業務サイトの場合

システムログファイル，正シンクポイントダンプファイル，及び副シンクポイントダンプファイルを初期設定対象とします。

ログ適用サイトの場合

副シンクポイントダンプファイルを初期設定対象とします。システムログファイル，及び正シンクポイントダンプファイルについては初期設定できません。

(7)　使用例

例1：

システムログファイルを作成します。

【HiRDB/シングルサーバの場合】

 pdloginit -d sys   ..........................1
           -f /svr01/logf11   ................2
           -n 64   ...........................3
 pdloginit -d sys   ..........................1
           -f /svr01/logf12   ................2
           -n 64   ...........................3

［説明］

初期設定をするログ関係のファイル種別　sys（システムログファイル）

物理ファイル名　/svr01/logf11，/svr01/logf12

物理ファイルのレコード数　64

【HiRDB/パラレルサーバの場合】

 pdloginit -d sys   ..........................1
           -s bes1   .........................2
           -f /svr01/logf11   ................3
           -n 64   ...........................4
 pdloginit -d sys   ..........................1
           -s bes1   .........................2
           -f /svr01/logf12   ................3
           -n 64   ...........................4

［説明］

初期設定をするログ関係のファイル種別　sys（システムログファイル）

ファイルグループに対応するサーバ名　bes1

物理ファイル名　/svr01/logf11，/svr01/logf12

物理ファイルのレコード数　64

例2：

シンクポイントダンプファイルを作成します。

【HiRDB/シングルサーバの場合】

 pdloginit -d spd   ..........................1
           -f /svr01/spdf11   ................2
           -n 64   ...........................3
 pdloginit -d spd   ..........................1
           -f /svr01/spdf12   ................2
           -n 64   ...........................3

［説明］

初期設定をするログ関係のファイル種別　spd（シンクポイントダンプファイル）

物理ファイル名　/svr01/spdf11，/svr01/spdf12

物理ファイルのレコード数　64

【HiRDB/パラレルサーバの場合】

 pdloginit -d spd   ..........................1
           -s bes1   .........................2
           -f /svr01/spdf11   ................3
           -n 64   ...........................4
 pdloginit -d spd   ..........................1
           -s bes1   .........................2
           -f /svr01/spdf12   ................3
           -n 64   ...........................4

［説明］

初期設定をするログ関係のファイル種別　spd（シンクポイントダンプファイル）

ファイルグループに対応するサーバ名　bes1

物理ファイル名　/svr01/spdf11，/svr01/spdf12

物理ファイルのレコード数　64

2.58　pdlogls（ログ関係のファイルの情報表示）

2.58.1　pdloglsの形式と規則

(1)　共通機能

ログ関係のファイルの情報を表示します。

(2)　共通形式

　pdlogls -d表示対象種別 〔表示対象種別ごとのオプション〕

(3)　共通オプション

(a)　-d表示対象種別

情報を表示するログ関係のファイルを指定します。

spd：

シンクポイントダンプファイル

sys：

システムログファイル

(4)　共通注意事項

pdloglsコマンドのリターンコードを次に示します。

0：正常終了

4：異常終了

8：異常終了（オプション指定不正，rsh失敗など）

12：異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）

システム定義のpd_tmp_directoryオペランドを指定しないで，環境変数TMPDIRだけを指定している場合，pdloglsコマンド，又はほかのHiRDBのコマンドを実行中に中断すると，環境変数TMPDIRに設定したディレクトリ下に"pdcmd"で始まる名称のファイルが残ることがあります。pdloglsコマンド，又はほかのHiRDBのコマンドが終了した後も，"pdcmd"で始まる名称のファイルが残っている場合は，OSのrmコマンドなどで削除してください。

2.59　pdlogls【-d spd】（シンクポイントダンプファイルの情報表示）

2.59.1　pdlogls【-d spd】の形式と規則

(1)　機能

シンクポイントダンプファイルの情報を表示します。

(2)　実行者

権限がないユーザでも実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdlogls -d spd 〔-s サーバ名〕 〔-g ファイルグループ名〕 〔-e〕 〔-l〕

(b)　HiRDB/パラレルサーバの場合

　pdlogls -d spd -s サーバ名 〔-g ファイルグループ名〕 〔-e〕 〔-l〕

(4)　オプション

(a)　-s サーバ名　〜＜識別子＞((1〜8))

情報を表示するサーバの名称を指定します。

(b)　-g ファイルグループ名　〜＜識別子＞((1〜8))

特定のファイルグループの情報を表示する場合に，そのファイルグループ名を指定します。省略した場合，指定したサーバの，すべてのファイルグループの情報が表示されます。

(c)　-e

要素ファイルの情報を表示する場合に指定します。省略した場合，要素ファイルの情報は表示されません。

(d)　-l

シンクポイントダンプ有効化のスキップ回数の上限値を表示する場合に指定します。省略した場合，シンクポイントダンプ有効化のスキップ回数の上限値は表示されません。また，シンクポイントダンプ有効化のスキップ回数監視機能を使用していない場合は0が表示されます。

(5)　規則

pdloglsコマンドは，-d spdの場合はHiRDBが稼働中のときだけ実行できます。

ただし，次の場合は実行できません。

HiRDB開始処理中のとき

HiRDB終了処理中のとき

pdstart -rコマンドでHiRDBが稼働中のとき

-sオプションで指定したサーバのユニットが停止中のとき

-sオプションで指定したサーバが停止中，又は停止処理中のとき

pdloglsコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(6)　注意事項

ファイルグループの状態の変更中（スワップ中，又はファイルグループを操作する運用コマンドの処理中など）に，pdloglsコマンドを実行すると，正しい状態が表示されないことがあります。

１レコードは，HiRDBファイルシステム領域上の4,096バイトのことです。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，コマンドを実行したサイトによって表示対象のファイルが異なります。

業務サイトの場合

正シンクポイントダンプファイルを表示対象とします。副シンクポイントダンプファイルについては表示されません。

ログ適用サイトの場合

副シンクポイントダンプファイルを表示対象とします。正シンクポイントダンプファイルについては表示されません。

(7)　出力形式

(a)　pdlogls -d spd -s サーバ名 -e -lを指定した場合

 HOSTNAME: aa...a(bbccdd)
 pd_spd_syncpoint_skip_limit: ee...e
 Server  Group   Generation Status Log     Log
 name            number            group   block
 ff...f  gg...g  hh...h     [i]    jj...j  kk...k
        Status Path
  Sys-A [l]    mm...m
  Sys-B [n]    oo...o

［説明］

aa...a：

ホスト名（32文字以内）

bbccdd：

時分秒（pdloglsコマンド実行時刻）

ee...e：

シンクポイントダンプ有効化のスキップ回数の上限値（10進数）。シンクポイントダンプ有効化のスキップ回数監視機能を使用していない場合は0が表示されます。

ff...f：

サーバ名（8文字以内）

gg...g：

ファイルグループ名（8文字以内）

hh...h：

世代番号（16進数8けた）

i ：

世代状態

a ：上書きできない状態

u ：書き込み中，又は上書きできる状態

r ：予約の状態

jj...j：

HiRDBが再開始するときに読み込むシステムログのファイルグループ名（8文字以内）

kk...k：

HiRDBが再開始するときに読み込むログのブロック番号（16進数8けた）

l ：

A系の物理ファイルの状態

o ：オープン状態

c ：クローズ状態

h ：閉塞状態

mm...m：

A系の物理ファイルのパス名

n ：

B系の物理ファイルの状態

o ：オープン状態

c ：クローズ状態

h ：閉塞状態

oo...o：

B系の物理ファイルのパス名

2.60　pdlogls【-d sys】（システムログファイルの情報表示）

2.60.1　pdlogls【-d sys】の形式と規則

(1)　機能

システムログファイルの情報を表示します。

(2)　実行者

権限がないユーザでも実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdlogls -d sys 〔-s サーバ名〕 〔-g ファイルグループ名〕

               〔-e〕 〔-C 〔-H〕〕 〔-E〕

(b)　HiRDB/パラレルサーバの場合

　pdlogls -d sys -s サーバ名 〔-u ユニット識別子〕 〔-g ファイルグループ名〕

               〔-e〕 〔-C 〔-H〕〕 〔-E〕

(4)　オプション

(a)　-s サーバ名　〜＜識別子＞((1〜8))

情報を表示するサーバの名称を指定します。

(b)　-g ファイルグループ名　〜＜識別子＞((1〜8))

特定のファイルグループの情報を表示したい場合に，そのファイルグループの名称を指定します。省略した場合，指定したサーバのすべてのファイルグループの情報が表示されます。

(c)　-e

要素ファイルの情報を表示したいときに指定します。省略した場合，要素ファイルの情報は表示されません。

(d)　-u ユニット識別子　〜＜識別子＞((4文字))

影響分散スタンバイレス型系切り替え機能を適用している場合，情報を表示するシステムログファイルを作成したディスクがあるホストの，ユニット識別子を指定します。

該当するサーバ，及びシステムマネジャが稼働中の場合，-uオプションの指定は無視されます。

次のどれかに該当する場合に-uオプションを指定すると，エラーとなります。

指定するユニットが，-sオプションで指定したサーバの移動先となるHAグループに属していない。

-sオプションで指定したサーバが，HAグループ内のサーバではない。

影響分散スタンバイレス型系切り替え機能を適用していない。

uオプションの指定要否を次に示します。

サーバの状態

ファイル作成先のディスクがあるホスト

-uオプションの指定

稼働中

実行系バックエンドサーバがあるホスト

省略できます。

停止中

現用系バックエンドサーバがあるホスト

上記以外のホスト

必ず指定します。

(e)　-C

システムログファイルの情報を，DAT形式で出力する場合に指定します。

(f)　-H

-Cオプションを指定した場合に，タイトル行を付けて出力するときに指定します。

(g)　-E

システムログファイルの詳細情報を表示する場合に指定します。

(5)　規則

pdloglsコマンドは，-d sysの場合はHiRDBの稼働に関係なく実行できます。ただし，次の場合は実行できません。

HiRDB開始処理中のとき

HiRDB終了処理中のとき

pdstart -rコマンドでHiRDBが稼働中のとき

-sオプションで指定したサーバのユニットが稼働中で，かつ指定したサーバが停止中，又は停止処理中のとき

pdloglsコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(6)　注意事項

ファイルグループの状態の変更中（スワップ中，又はファイルグループを操作する運用コマンドの処理中など）に，pdloglsコマンドを実行すると，正しい状態が表示されないことがあります。

アンロード（状態変更）しても，アンロード待ち状態と表示される場合は，以前に入力したpdlogunldコマンド，又はpdlogchgコマンドでメモリ中の状態を更新できない障害が発生している可能性があります。ただし，この場合アンロード処理自体は正常に終了しています。このような場合には，該当するファイルグループをpdlogclsコマンドでクローズし，その後pdlogopenコマンドでオープンしてください。

システム定義のpdlogadpf -d sysオペランドの指定上限数を超えた分については，開始時には無視してHiRDBを開始しますが，停止時に実行するpdloglsコマンドの結果には含めて表示されます。

(7)　出力形式

(a)　pdlogls -d sys -s サーバ名 -e -Eを指定した場合

 HOSTNAME : aa...a(bbccdd)
 ***** Off-line Information *****   .......................................1
 Group  Type Server Gen No. Status  Run ID Block No.     Ex-Status
 ee...e fff  gg...g hh...h  ijklmno pp...p qq...q rr...r JKLMNOPQ   .......2
       Element  Status   Record-count   Sys-A  Sys-B※ Record-size
       ss...s   tuvwxy   AA...A BB...B  CDEFGH CDEFGH      IIII   .........3
       AutoExp-A   AutoExp-B※
       R SS...S    R SS...S   .............................................4

注※

システムログファイルを二重化している場合に表示されます。

［説明］

1はオフライン（対応サーバが停止状態）のログファイル情報の場合に表示します※１。2はファイルグループの状態，3は要素ファイルの状態，4は要素ファイルの詳細情報を示します。2〜4は，ファイルグループの数だけ繰り返し表示されます。なお，RとSS...Sは，-Eを指定したときだけ表示されます。

aa...a ：

ホスト名（32文字以内）

bbccdd ：

pdloglsコマンドを実行した時刻（時分秒）

ee...e ：

ファイルグループ名（8文字以内）

fff ：

ファイル種別（3文字）

sys：システムログファイル

gg...g ：

サーバ名（8文字以内）

hh...h ：

世代番号（16進数8けた以内）

ijklmno：

ファイルグループの状態（7文字）

i ：

ファイルグループのオープン状態

o ：オープン中

c ：クローズ中

使用しているファイルグループがクローズ状態の場合は，pdlogopenコマンドでファイルグループをオープンしてください。

j ：

ファイルグループの現在の状態

c ：現用

s ：待機中

n ：予約

使用しているファイルグループが予約の場合は，pdlogopenコマンドで待機中にしてください。

k ：

ファイルグループのアンロード状態

なお，アンロード待ち状態のファイルグループは，過去に現用として使用時，スワップしたため現用でなくなり，アンロードする必要があるログを含んでいます。

●オフライン状態（***** Off-line Information *****が表示されている，又はDAT形式出力時はUU...UにOFFLINEが表示されている）で，HiRDB Datareplicator連携をしていない場合

u：

アンロード待ち状態

-：

アンロード済み状態，又はアンロードできない※10

●オフライン状態（***** Off-line Information *****が表示されている，又はDAT形式出力時はUU...UにOFFLINEが表示されている）で，HiRDB Datareplicator連携をしている場合

a：次のどちらかの状態です※６。

・アンロード待ち，かつHiRDB Datareplicatorによるデータ連動情報の抽出待ち状態※９

・アンロード待ち，かつオフライン時にHiRDB Datareplicatorによるデータ連動情報の抽出が完了した状態

u：

アンロード待ち，かつHiRDB Datareplicatorによるデータ連動情報の抽出済み状態

e：次のどちらかの状態です※６。

・アンロード済み，かつHiRDB Datareplicatorによるデータ連動情報の抽出待ち状態※９

・アンロード済み，かつオフライン時にHiRDB Datareplicatorによるデータ連動情報の抽出が完了した状態

-：次のどちらかの状態です。

・アンロード済み，かつHiRDB Datareplicatorによるデータ連動情報の抽出済み状態

・アンロード又はHiRDB Datareplicatorによるデータ連動情報の抽出ができない※10

●オンライン状態（***** Off-line Information *****が表示されていない，又はDAT形式出力時はUU...UにOFFLINEが表示されていない）※７で，HiRDB Datareplicator連携をしていない場合

u：

アンロード待ち状態※８

-：

アンロード済み状態，又はアンロードできない※10

●オンライン状態（***** Off-line Information *****が表示されていない，又はDAT形式出力時はUU...UにOFFLINEが表示されていない）※７で，HiRDB Datareplicator連携をしている場合

a：

アンロード待ち，かつHiRDB Datareplicatorによるデータ連動情報の抽出待ち状態※８，※９

u：

アンロード待ち，かつHiRDB Datareplicatorによるデータ連動情報の抽出済み状態※８

e：

アンロード済み，かつHiRDB Datareplicatorによるデータ連動情報の抽出待ち状態※８，※９

-：次のどちらかの状態です。

・アンロード済み，かつHiRDB Datareplicatorによるデータ連動情報の抽出済み状態

・アンロード又はHiRDB Datareplicatorによるデータ連動情報の抽出ができない※10

l ：

ファイルグループが上書きできるか，できないかの状態

d ：

上書きできません（HiRDBシステムの回復に必要なログを含んでいます）

サーバ内のすべてのシステムログファイルがこの状態の場合，システムログファイルを新規追加してください。

- ：

上書きできます（HiRDBシステムの回復に必要なログを含んでいません）

m ：

ファイルグループのHiRDBでの状態

b ：

pdlogchg若しくはpdlogunldコマンドで使用中，又は回復処理で使用中の状態です。

- ：

pdlogchg若しくはpdlogunldコマンドで使用していないか，又は回復処理で使用していない状態です。

n ：

ファイルグループの使用履歴

c ：

次のどちらかの状態のファイルグループです。HiRDBが停止中のときだけ表示されます。

現在，現用として使用している

過去にHiRDBに障害が発生したときに現用ログとして使用していて，システムログファイル内の管理情報がそのままとなっている

- ：

過去に現用として使用していて，正しく処理されたファイルグループです。

o ：

システムが使用する内部情報

pp...p ：

ランID（ファイルが使用されたときのログサーバプロセスのランID）（16進数8けた）

qq...q ：

先頭ブロック番号（16進数8けた以内）

rr...r ：

最終ブロック番号（16進数8けた以内）

ss...s ：

要素ファイル名（8文字以内）

tuvwxy ：

要素ファイルの状態（6文字）

t ：

要素ファイルのオープン状態

o ：

オープン状態（該当する要素ファイルを構成する物理ファイルがオープンされています）

c ：

クローズ状態（該当する要素ファイルを構成する物理ファイルがクローズされています）

u ：

要素ファイルが使用できるかどうかの状態

n ：

要素ファイルが，HiRDBの稼働中に使用できる物理ファイルで構成されていません

u ：

要素ファイルが，HiRDBの稼働中で使用できる物理ファイルで構成されています

v ：

要素ファイルのアンロード状態※２

なお，アンロード待ち状態の要素ファイルは，過去に現用として使用時，スワップしたため現用でなくなり，アンロードする必要があるログを含んでいます。

●オフライン状態（***** Off-line Information *****が表示されている，又はDAT形式出力時はUU...UにOFFLINEが表示されている）で，HiRDB Datareplicator連携をしていない場合

u：

アンロード待ち状態

-：

アンロード済み状態，又はアンロードできない※10

●オフライン状態（***** Off-line Information *****が表示されている，又はDAT形式出力時はUU...UにOFFLINEが表示されている）で，HiRDB Datareplicator連携をしている場合

a：次のどちらかの状態です※６。

・アンロード待ち，かつHiRDB Datareplicatorによるデータ連動情報の抽出待ち状態※９

・アンロード待ち，かつオフライン時にHiRDB Datareplicatorによるデータ連動情報の抽出が完了した状態

u：

アンロード待ち，かつHiRDB Datareplicatorによるデータ連動情報の抽出済み状態

e：次のどちらかの状態です※６。

・アンロード済み，かつHiRDB Datareplicatorによるデータ連動情報の抽出待ち状態※９

・アンロード済み，かつオフライン時にHiRDB Datareplicatorによるデータ連動情報の抽出が完了した状態

-：次のどちらかの状態です。

・アンロード済み，かつHiRDB Datareplicatorによるデータ連動情報の抽出済み状態

・アンロード又はHiRDB Datareplicatorによるデータ連動情報の抽出ができない※10

●オンライン状態（***** Off-line Information *****が表示されていない，又はDAT形式出力時はUU...UにOFFLINEが表示されていない）※７で，HiRDB Datareplicator連携をしていない場合

u：

アンロード待ち状態※８

-：

アンロード済み状態，又はアンロードできない※10

●オンライン状態（***** Off-line Information *****が表示されていない，又はDAT形式出力時はUU...UにOFFLINEが表示されていない）※７で，HiRDB Datareplicator連携をしている場合

a：

アンロード待ち，かつHiRDB Datareplicatorによるデータ連動情報の抽出待ち状態※８，※９

u：

アンロード待ち，かつHiRDB Datareplicatorによるデータ連動情報の抽出済み状態※８

e：

アンロード済み，かつHiRDB Datareplicatorによるデータ連動情報の抽出待ち状態※８，※９

-：次のどちらかの状態です。

・アンロード済み，かつHiRDB Datareplicatorによるデータ連動情報の抽出済み状態

・アンロード又はHiRDB Datareplicatorによるデータ連動情報の抽出ができない※10

w ：

システムが使用する内部情報

x ：

要素ファイルの閉塞状態

h ：

閉塞中（該当する要素ファイルを構成する，物理ファイルに対するログの出力，又はログファイルヘッダの入出力で障害が発生し，以後ログを出力していない物理ファイルを含む要素ファイルです）

- ：

閉塞中ではありません（正常な要素ファイルです）。

y ：

要素ファイルが読み込みできるか，できないかの状態

r ：

該当する要素ファイルを構成する，物理ファイルが読み込みできない状態です。

- ：

該当する要素ファイルを構成する，物理ファイルが読み込みできる状態です。

AA...A ：

該当するファイルでの使用済みレコード数（16進数8けた以内）※３※５。

ログを出力したHiRDBファイルシステム領域上のレコード数です。

BB...B ：

該当するファイル内の全レコード数（16進数8けた以内）※４※５。

ログを出力したHiRDBファイルシステム領域上のレコード数です。

CDEFGH ：

物理ファイルの状態（6文字）

C ：

物理ファイルのオープン状態

o ：

オープン中（該当する物理ファイルをオープンしています）

c ：

クローズ中（該当する物理ファイルをクローズしています）

D ：

物理ファイルの状態

c ：

現用

ファイルグループの状態が現用の場合は，実際にログの出力対象になっていることを示します。ファイルグループの状態が現用でない場合は，過去に現用であったときに障害が発生し，回復していないためにログファイルヘッダにステータスが残っている状態です。pdlogunldコマンド又はpdlogchgコマンドで状態を回復するか，又はpdloginitコマンドで初期設定しないと再使用できません。

s ：

待機

E ：

物理ファイルのアンロード状態※２

なお，アンロード待ち状態の物理ファイルは，過去に現用として使用時，スワップしたため現用でなくなり，アンロードする必要があるログを含んでいます。

●オフライン状態（***** Off-line Information *****が表示されている，又はDAT形式出力時はUU...UにOFFLINEが表示されている）で，HiRDB Datareplicator連携をしていない場合

u：

アンロード待ち状態

-：

アンロード済み状態，又はアンロードできない※10

●オフライン状態（***** Off-line Information *****が表示されている，又はDAT形式出力時はUU...UにOFFLINEが表示されている）で，HiRDB Datareplicator連携をしている場合

a：次のどちらかの状態です※６。

・アンロード待ち，かつHiRDB Datareplicatorによるデータ連動情報の抽出待ち状態※９

・アンロード待ち，かつオフライン時にHiRDB Datareplicatorによるデータ連動情報の抽出が完了した状態

u：

アンロード待ち，かつHiRDB Datareplicatorによるデータ連動情報の抽出済み状態

e：次のどちらかの状態です※６。

・アンロード済み，かつHiRDB Datareplicatorによるデータ連動情報の抽出待ち状態※９

・アンロード済み，かつオフライン時にHiRDB Datareplicatorによるデータ連動情報の抽出が完了した状態

-：次のどちらかの状態です。

・アンロード済み，かつHiRDB Datareplicatorによるデータ連動情報の抽出済み状態

・アンロード又はHiRDB Datareplicatorによるデータ連動情報の抽出ができない※10

●オンライン状態（***** Off-line Information *****が表示されていない，又はDAT形式出力時はUU...UにOFFLINEが表示されていない）※７で，HiRDB Datareplicator連携をしていない場合

u：

アンロード待ち状態※８

-：

アンロード済み状態，又はアンロードできない※10

●オンライン状態（***** Off-line Information *****が表示されていない，又はDAT形式出力時はUU...UにOFFLINEが表示されていない）※７で，HiRDB Datareplicator連携をしている場合

a：

アンロード待ち，かつHiRDB Datareplicatorによるデータ連動情報の抽出待ち状態※８，※９

u：

アンロード待ち，かつHiRDB Datareplicatorによるデータ連動情報の抽出済み状態※８

e：

アンロード済み，かつHiRDB Datareplicatorによるデータ連動情報の抽出待ち状態※８，※９

-：次のどちらかの状態です。

・アンロード済み，かつHiRDB Datareplicatorによるデータ連動情報の抽出済み状態

・アンロード又はHiRDB Datareplicatorによるデータ連動情報の抽出ができない※10

F ：

システムが使用する内部情報

G ：

物理ファイルの閉塞状態

h ：

閉塞中です（ログの出力，又はログファイルヘッダの入出力で障害が発生し，以後ログを出力していません）。

- ：

閉塞中ではありません（ログを出力できます）。

H ：

物理ファイルを読み込みできるか，できないかの状態

r ：

読み込みできない状態（全面回復，部分回復しようとしても，ログが消去（初期化）されていて，読み込みできません。システムログファイルに障害が発生し，障害の要因を取り除いた後に物理ファイルを再作成してオープンした場合に，この状態になります）

- ：

読み込みできる状態

IIII：

該当するファイルのレコード長（10進数4けた）※５

ログを出力できるHiRDBファイルシステム上のレコード長です。

JKLMNOPQ：

ファイルグループの拡張状態（8文字）

J ：

ファイルグループのオンライン再編成上書き状態

r ：オンライン再編成上書き禁止状態

- ：オンライン再編成上書き可能状態

更新可能なオンライン再編成を使用していないシステムログファイル，及び更新可能なオンライン再編成を実行していない間のシステムログファイルはこの状態になります。

K ：

ファイルグループの自動拡張状態

●オフライン状態（***** Off-line Information*****が表示されている，又はDAT形式出力時はUU...UにOFFLINEが表示されている）の場合

- ：

システムログファイルの自動拡張機能が動作していません。

●オンライン状態（***** Off-line Information *****が表示されていない，又はDAT形式出力時はUU...UにOFFLINEが表示されていない）の場合

- ：

システムログファイルの自動拡張機能を使用していません。

u ：

システムログファイルの自動拡張機能の拡張対象です。

e ：

システムログファイルの拡張中です。

x ：

システムログファイルの自動拡張機能の拡張対象外です。

なお，システムログファイルの自動拡張機能を使用している場合，現用ファイルは，拡張中のときはe，拡張中以外のときはxが表示されます。

L ：

ファイルグループの自動拡張可否

- ：

システムログファイルの自動拡張機能で拡張できます。

x ：

システムログファイルの自動拡張機能で拡張できません。

M ：

システムが使用する内部情報

N ：

システムが使用する内部情報

O ：

システムが使用する内部情報

P ：

システムが使用する内部情報

Q ：

システムが使用する内部情報

R：

要素ファイルの自動拡張可否

- ：システムログファイルの自動拡張機能で拡張できます。

f ：システムログファイルの容量の上限に達したため，システムログファイルの自動拡張機能で拡張できません。

c ：pd_log_auto_expand_sizeオペランドで指定した拡張上限サイズに達したため，システムログファイルの自動拡張機能で拡張できません。

e ：システムログファイルの自動拡張機能で拡張時にエラーが発生したため，拡張できません。

x ：システムログファイルがpdfmkfsコマンドに-aオプションを指定しないで作成したHiRDBファイルシステム領域に作成されているため，システムログファイルの自動拡張機能で拡張できません。

SS...S：

要素ファイルの使用不可領域のレコード数（16進数8けた以内右詰め）※5

システムログファイルの自動拡張機能で発生した，使用できない領域をレコード数で表示します。

注※1

オフライン（対応サーバが停止状態）での状態表示（ファイルグループ，要素ファイル，物理ファイルのA/B系）は，k，v，及びEで示すアンロード状態だけが有効な情報となります。

注※2

ファイルグループがアンロード済み状態の場合は，要素ファイル及び物理ファイルがアンロード待ち状態であっても，pdlogunldコマンド又はpdlogchgコマンドを実行する必要はありません。これは，pdlogunldコマンド又はpdlogchgコマンド実行時に障害が発生してステータスが書き換えられなかったためです。

注※3

0が表示されている場合は，ログが1件も出力されていない場合です。全面回復完了後，現用以外の状態の場合は，使用済みレコード数の内容が正しくないことがあります。

注※4

ファイル内の全レコード数は，ログブロックを出力できるHiRDBファイルのレコード数であり，pdloginitコマンドの-lオプションで指定したレコード長によって次のようになります。

-l 1024：pdloginitコマンドの-nオプションで指定したレコード数−13

-l 2048：pdloginitコマンドの-nオプションで指定したレコード数−7

-l 4096：pdloginitコマンドの-nオプションで指定したレコード数−4

注※5

1レコードは，ログサーバプロセスで管理するHiRDBファイルシステム上の次に示すサイズの領域のことです。

pdloginitコマンドの-dオプションでsysを指定した場合は，-lオプションで指定したレコード長

pdloginitコマンドの-dオプションでspdを指定した場合は，4,096バイト

注※6

該当するファイルグループでHiRDB Datareplicatorによるデータ連動情報の抽出が完了したかどうかを確認するためには，pdls -d rplコマンドによって出力される抽出側HiRDB Datareplicatorの抽出状況を参照してください。

注※7

HiRDBの起動時にオープンされないファイルグループ（pdlogadfgオペランドにONL指定がないファイルグループ）の状態は，「-」と表示されます。正しい状態を表示するには，pdlogopenコマンドで該当するファイルグループをオープンした後で，再度pdloglsコマンドを実行してください。

注※8

オンライン中にオープンされているファイルグループをクローズした場合，そのファイルグループの状態表示はクローズ前の状態が出力されます。次の場合でも出力される状態は変更されません。

アンロードが完了した

HiRDB Datareplicatorによるデータ連動情報の抽出が完了した

pdlogchgでファイルグループの状態を変更した

正しい状態を表示するには，pdlogopenコマンドで該当するファイルグループをオープンした後で，再度pdloglsコマンドを実行してください。

注※9

HiRDB Datareplicatorと連携していて，HiRDB Datareplicatorが未抽出のシステムログファイルを含んでいます。

注※10

次に示す理由で，アンロード，又はHiRDB Datareplicatorによるデータ連動情報の抽出ができません。

使用できるシステムログファイルがない，又はシステムログファイルが存在しない

入出力エラーが発生した

ほかのサーバで使用したシステムログファイルである

(b)　pdlogls -d sys -s サーバ名 -e -C -H -Eを指定した場合

"EDIT-TIME","HOSTNAME","INFORMATION","GROUP","TYPE","SERVER","GEN NO.","G-STATUS1","G-
STATUS2","G-STATUS3","G-STATUS4","G-STATUS5","G-STATUS6","G-STATUS7","RUN ID","BLOCK N
O.(FIRST)","BLOCK NO.(LAST)","EX-STATUS1","EX-STATUS2","EX-STATUS3","EX-STATUS4","EX-S
TATUS5","EX-STATUS6","EX-STATUS7","EX-STATUS8","ELEMENT","E-STATUS1","E-STATUS2","E-ST
ATUS3","E-STATUS4","E-STATUS5","E-STATUS6","RECORD-COUNT(USED)","RECORD-COUNT(ALL)","A
-STS1","A-STS2","A-STS3","A-STS4","A-STS5","A-STS6","B-STS1","B-STS2","B-STS3","B-STS4
","B-STS5","B-STS6","RECORD-SIZE","A-AUTOEXP-STS","A-UNUSED-SIZE","B-AUTOEXP-STS","B-U
NUSED-SIZE"
"TT...T","aa...a","UU...U","ee...e","fff","gg...g",hh...h,"i","j","k","l","m","n","o",
pp...p,qq...q,rr...r,"J","K","L","M","N","O","P","Q","ss...s","t","u","v","w","x","y",
AA...A,BB...B,"C","D","E","F","G","H"[,"C","D","E","F","G","H"],IIII,"R",SS...S[,"R",S
S...S]

［説明］

[ ]内は，システムログファイルを二重化している場合に表示されます。

aa...a〜SS...Sについては，pdlogls -d sys -s サーバ名 -e -Eを指定した場合の説明を参照してください。

DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

1行には，1ファイルグループの情報を表示します。

TT...T：

pdloglsコマンドを実行した時刻をYYYY/MM/DD hh:mm:ssの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

UU...U：

オフライン（対応サーバが停止状態）のログファイル情報の場合，OFFLINEを表示します。オンラインの場合は空要素を表示します。

2.61　pdlogopen（ログ関係のファイルのオープン）

2.61.1　pdlogopenの形式と規則

(1)　機能

指定したファイルグループを構成するクローズ中の物理ファイルをオープンし，稼働中のHiRDBで使用できるようにします。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdlogopen ｛-d ｛sys｜spd｝ 〔-s サーバ名〕 -g ファイルグループ名 〔-a〕 〔-b〕

(b)　HiRDB/パラレルサーバの場合

　pdlogopen ｛-d ｛sys｜spd｝ -s サーバ名 -g ファイルグループ名 〔-a〕 〔-b〕

(4)　オプション

(a)　-d sys｜spd

オープンするログ関係のファイルを指定します。

sys：

システムログファイル

spd：

シンクポイントダンプファイル

(b)　-s サーバ名　〜＜識別子＞((1〜8))

ファイルグループに対応するサーバの名称を指定します。

(c)　-g ファイルグループ名　〜＜識別子＞((1〜8))

オープンするファイルのファイルグループ名を指定します。

(d)　-a

システムログファイル又はシンクポイントダンプファイルをオープンする場合，A系の物理ファイルをオープン対象とするときに指定します。

(e)　-b

システムログファイル又はシンクポイントダンプファイルをオープンする場合，B系の物理ファイルをオープン対象とするときに指定します。二重化していない場合にこのオプションを指定すると，コマンドエラーとなります。

-aオプション及び-bオプションを省略した場合，次のようになります。

二重化していない場合は，-aオプションを指定したときと同様に，A系の物理ファイルをオープン対象とします。

二重化している場合は，-aオプション及び-bオプションを指定したときと同様に，A系及びB系の物理ファイルをオープン対象とします。

(5)　規則

pdlogopenコマンドは，HiRDBが稼働中のときだけ実行できます。

pdlogopenコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

オープン対象となる物理ファイルが，すべてオープン済みのときは，警告メッセージ（KFPS01283-W又はKFPS02167-W）が出力されます。

(6)　注意事項

pdlogopenコマンドのリターンコードを次に示します。

0：正常終了

4：異常終了

8：異常終了（オプション指定不正，rsh失敗など）

ファイルグループの状態の変更中（スワップ処理中，又はほかの運用コマンドの処理中など）にpdlogopenコマンドを実行すると，エラーとなることがあります。

pdlogopenコマンドの結果は，pdloglsコマンドで確認できます。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，コマンドを実行したサイトによってオープン対象のファイルが異なります。

業務サイトの場合

システムログファイル，及び正シンクポイントダンプファイルをオープン対象とします。副シンクポイントダンプファイルについてはオープンできません。

ログ適用サイトの場合

副シンクポイントダンプファイルをオープン対象とします。システムログファイル，及び正シンクポイントダンプファイルについてはオープンできません。

2.62　pdlogrm（ログ関係のファイルの削除）

2.62.1　pdlogrmの形式と規則

(1)　機能

HiRDBファイルシステム下のログ関係の物理ファイルを削除します。物理ファイルがオープン中の場合は，削除できません。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdlogrm -d sys｜spd 〔-s サーバ名〕 -f 物理ファイル名 〔-u〕

(b)　HiRDB/パラレルサーバの場合

　pdlogrm -d sys｜spd -s サーバ名 〔-X ユニット識別子〕 -f 物理ファイル名 〔-u〕 〔-D〕

(4)　オプション

(a)　-d sys｜spd

削除するログ関係のファイルを指定します。

sys：

システムログファイル

spd：

シンクポイントダンプファイル

(b)　-s サーバ名　〜＜識別子＞((1〜8))

物理ファイルで構成される，ファイルグループに対応するサーバの名称を指定します。

(c)　-f 物理ファイル名　〜＜パス名＞((167文字以内))

削除する物理ファイル名を絶対パス名で指定します。物理ファイル名は，HiRDBファイルシステム領域名/HiRDBファイル名で指定してください。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，コマンドを実行したサイトによって削除対象のファイルが異なります。

業務サイトの場合

システムログファイル，正シンクポイントダンプファイル，及び副シンクポイントダンプファイルを削除対象とします。

ログ適用サイトの場合

副シンクポイントダンプファイルを削除対象とします。システムログファイル，正シンクポイントダンプファイルについては削除できません。

(d)　-u

-fオプションで指定した物理ファイルがシステムログファイルの場合，そのファイルが次の状態であっても強制的にファイルを削除するときに指定します。

アンロード待ち状態

HiRDB Datareplicator連携時の抽出未完了状態

オンライン再編成上書き禁止状態

このオプションを省略した場合，物理ファイルのアンロード状態がチェックされ，ファイルが上記のどれかの状態の場合はコマンドエラーとなります。

シンクポイントダンプファイルの場合は，指定しても無視されます。

このオプションは，何らかの障害によって通常の削除（-u指定なしのpdlogrmコマンド）ができない場合に指定します。さらに，それでも削除できない場合には，pdfrmコマンドで削除します。

(e)　-X ユニット識別子　〜＜識別子＞((4文字))

影響分散スタンバイレス型系切り替え機能を適用している場合，削除ファイルのディスクがあるホストの，ユニット識別子を指定します。

該当するサーバが稼働中の場合，-Xオプションの指定は無視されます。

次のどれかに該当する場合に-Xオプションを指定すると，エラーとなります。

指定するユニットが，-sオプションで指定したサーバの移動先となるHAグループに属していない。

-sオプションで指定したサーバが，HAグループ内のサーバではない。

影響分散スタンバイレス型系切り替え機能を適用していない。

-Xオプションの指定要否を次に示します。

サーバの状態

ファイル作成先のディスクがあるホスト

-Xオプションの指定

稼働中

実行系バックエンドサーバがあるホスト

省略できます。

停止中

現用系バックエンドサーバがあるホスト

上記以外のホスト

必ず指定します。

(f)　-D

このオプションは，pdchgconfコマンドでユニットの削除，又はサーバの削除をする場合に指定します。

ユニットの削除，又はサーバの削除をする場合，そのユニット又はサーバのシステムログファイル，シンクポイントダンプファイルを削除します。このオプションを指定した場合，サーバ名のチェックはしません。

このオプションを指定してpdlogrmコマンドを実行する場合，削除するシステムログファイル又はシンクポイントダンプファイルがあるユニットで実行してください。

(5)　規則

pdlogrmコマンドは，HiRDBの稼働に関係なく実行できます（ただし，HiRDB開始処理中及びHiRDB終了処理中は除きます）。

pdlogrmコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(6)　注意事項

pdlogrmコマンドの結果は，コマンド実行時のリターンコード，又はエラーメッセージの有無で確認できます。コマンド実行時のリターンコードを次に示します。

0：正常終了

4：異常終了

8：異常終了（オプション指定不正，rsh失敗など）

12：異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，業務サイトのシステムログファイルを削除するときに，削除対象のシステムログファイルに対してログ適用処理をしていないと，ログ適用サイトがログの欠損を検知して異常終了します。そのときは，システムログ適用化を実行してログ適用処理を再開始する必要があります。

システムログ適用化については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

2.63　pdlogswap（ログ関係のファイルのスワップ）

2.63.1　pdlogswapの形式と規則

(1)　機能

ログ関係のファイルをスワップします。スワップ先のファイルがない場合は，コマンドエラーとなります。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdlogswap -d sys 〔-s サーバ名〕 〔-w〔-t 有効化待ち監視時間〕〕

(b)　HiRDB/パラレルサーバの場合

　pdlogswap -d sys -s サーバ名 〔-w〔-t 有効化待ち監視時間〕〕

(4)　オプション

(a)　-d sys

システムログファイルをスワップします。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

スワップするファイルグループに対応するサーバの名称を指定します。

(c)　-w

システムログファイルのスワップ後に取得するシンクポイントダンプの有効化完了まで，コマンド実行の終了を遅延させる場合に指定します。

アンロードレスシステムログ運用の場合に，データベースのバックアップ取得直前にこのオプションを指定してシステムログファイルをスワップしておくと，次に示す運用上の利点があります。

データベースのバックアップ取得後にシステムログファイルをアンロード済みにする場合，バックアップ取得直前までに使用していたすべてのシステムログファイルをアンロード済みにできます。

データベースの回復時，データベース回復ユティリティの入力としなければならないシステムログファイルの数を最小限にできます。

(d)　-t 有効化待ち監視時間　〜＜符号なし整数＞((10〜32768))《180》

-wオプションを指定してシンクポイントが有効化されるまでコマンド実行の終了を遅延させる場合に，シンクポイントダンプの有効化を監視する時間を秒単位で指定します。このオプションは，-wオプションを指定したときだけ有効となります。

(5)　規則

pdlogswapコマンドは，HiRDBが稼働中のときだけ実行できます。

ただし，次の場合は実行できません。

HiRDB開始処理中のとき

HiRDB終了処理中のとき

pdstart -rコマンドでHiRDBが稼働中のとき

pdlogswapコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdlogswapコマンド実行中の場合は，再度pdlogswapコマンドを実行できません。ただし，-wオプションを指定したpdlogswapコマンドがシンクポイントダンプの有効化待ちの状態のときには，-wオプションを指定しないpdlogswapコマンドを実行できます。

(6)　注意事項

pdlogswapコマンドの結果は，pdloglsコマンド，エラーメッセージ（KFPS01280-E（理由コードが105又は116））の有無，又はコマンド実行時のリターンコードで確認できます。コマンド実行時のリターンコードは， echo $statusによって求められます。コマンド実行時のリターンコードを次に示します。

0：

正常終了しました。

4：

システムログファイルはスワップしましたが，-tオプションでの有効化待ち監視時間を経過してもシンクポイントダンプが有効化されなかったので，強制的にコマンド処理を終了しました。

8：

異常終了しました。

-wオプションを指定してpdlogswapコマンドを実行し，-tオプションでの有効化待ち監視時間を経過してもシンクポイントダンプが有効化されない場合には，pdlogswapコマンドは強制的に処理を終了します。

pd_log_remain_space_checkオペランドにsafe又はwarnを指定している場合，次のどちらかに該当するときは，システムログファイルの空き容量監視機能によってシステムログファイルの空き容量不足と判定されることがあります。

スワップ先にできる状態，かつ待機の状態のファイルグループの容量が，現用のファイルグループの容量より少ない状態で，pdlogswapコマンドを実行した場合

pdlogswapコマンドを連続して実行した場合

システムログファイルの空き容量監視機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

2.64　pdlogsync（シンクポイントダンプの取得）

2.64.1　pdlogsyncの形式と規則

(1)　機能

シンクポイントダンプを取得します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdlogsync -d sys 〔-s サーバ名〕 〔-w〔-t タイムアウト時間〕〕

(b)　HiRDB/パラレルサーバの場合

　pdlogsync -d sys -s サーバ名 〔-w〔-t タイムアウト時間〕〕

(4)　オプション

(a)　-d sys

シンクポイントダンプを取得します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

シンクポイントダンプを取得するサーバの名称を指定します。

(c)　-w

シンクポイントダンプが有効化されるまで，pdlogsyncコマンドの終了を待ち合わせる場合に指定します。このオプションを指定すると，pdlogsyncコマンド実行時のリターンコードから，シンクポイントダンプが有効化されたかどうかが分かります。リターンコードが０の場合は，シンクポイントダンプが有効化されています。

バックアップ取得シェルを作成する場合，このオプションを指定します。バックアップ取得シェルの作成例については，マニュアル「HiRDB システム運用ガイド」の「シンクポイントダンプの有効化後にバックアップを取得するシェルの例」を参照してください。

(d)　-tタイムアウト時間　〜＜符号なし整数＞((10〜32768))《180》

このオプションは，-wオプションを指定したときだけ有効となります。pdlogsyncコマンドのタイムアウト時間を秒単位で指定します。

ここで指定した時間までにシンクポイントダンプが有効化されない場合は，pdlogsyncコマンドを終了します。ただし，シンクポイントダンプの有効化処理は続いています。

シンクポイントダンプが有効化されると，メッセージKFPS02183-Iが出力されます。ただし，システム定義のpd_spd_assurance_msgオペランドでNを指定すると，メッセージKFPS02183-Iは出力されません。

(5)　規則

pdlogsyncコマンドは，HiRDBが稼働中のときだけ実行できます。

ただし，次の場合は実行できません。

HiRDB開始処理中のとき

HiRDB終了処理中のとき

pdstart -rコマンドでHiRDBが稼働中のとき

pdlogsyncコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(6)　注意事項

pdlogsyncコマンドのリターンコードを次に示します。

0：正常終了

4：異常終了

8：異常終了（オプション指定不正，rsh失敗など）

なお，リターンコードは使用するシェルによって取得方法が異なります。Bourneシェル（sh）を使用する場合はecho $?で，Cシェル（csh）を使用する場合はecho $statusで取得できます。

2.65　pdlogucat（アンロードログファイルの情報表示）

2.65.1　pdlogucatの形式と規則

(1)　機能

アンロードログファイルの情報を表示します。

作成したアンロードログファイルの内容を調べたい場合にpdlogucatコマンドを使用します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdlogucat 〔-k ｛std｜csv｝〕 アンロードログファイル名

(4)　オプション

(a)　-k ｛std｜csv｝

情報の出力形式を指定します。

std：

固定フィールド＋ヘッダ情報の形式で出力します。

csv：

CSV形式で出力します。

(5)　コマンド引数

(a)　アンロードログファイル名　〜＜パス名＞

アンロードログファイルの名称を絶対パス名で指定します。

なお，HiRDBファイルシステム領域に作成したアンロードログファイルを指定する場合，パス名は最大167文字となります。

(6)　規則

pdlogucatコマンドは，HiRDBの稼働に関係なく実行できます。

pdlogucatコマンドは，アンロードログファイルがあるホストのサーバマシンで実行してください。

(7)　注意事項

pdlogunldコマンド，又は自動ログアンロード機能で作成中のアンロードログファイルに対しては，pdlogucatコマンドを実行しないでください。実行した場合，不正な情報が表示されることがあります。

pdlogucatコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

(8)　出力形式

(a)　-k stdの場合（出力情報は固定長）

Hostname: aa....aa(bbccdd)
File_type  Format_ver  System_id  Unit_id  Serv_name  Run_id    User_run_id  Server_name
Group     Svs_start_time       Gen_num   Unload_time          First_block_num  Buff_leng
Status
eee        fffff       gggg       hhhh     ii....ii   jjjjjjjj  kkkkkkkk     ll....ll
mm....mm  nnnn/oo/pp qq:rr:ss  tt....tt  uuuu/vv/ww xx:yy:zz  AA....AA         BB....BB
CC....CC

注

ヘッダの行は1行で表示され，その後にファイル情報が1行で表示されます。

表示できる情報がない項目には*が入ります。

バージョン07-02より前のアンロードログファイルを指定した場合，サーバランID，及びファイルグループ名は*となります。

aa....aa：

ホスト名（32文字以内）

bbccdd：

pdlogucatコマンドを実行した時刻（時分秒）

eee：

ファイル種別

sys：システムログファイル

fffff：

システムが使用する内部情報

gggg：

HiRDB識別子

hhhh：

ユニット識別子

ii....ii：

システムが使用する内部情報

jjjjjjjj：

システムログランID（16進数）

kkkkkkkk：

サーバランID（16進数）

ll....ll：

サーバ名（8文字以内）

mm....mm：

ファイルグループ名（8文字以内）

nnnn/oo/pp qq:rr:ss：

現用のシステムログファイルの割り当て時刻（年/月/日 時:分:秒）

tt....tt：

世代番号（16進数8文字以内）

uuuu/vv/ww xx:yy:zz：

アンロードログファイル作成開始時刻（年/月/日 時:分:秒）

AA....AA：

先頭ログブロック番号（16進数8文字以内）

BB....BB：

システムが使用する内部情報

CC....CC：

システムログのアンロードの完了状態

completed：正しく作成されたアンロードログファイル

failed：作成途中で中断されたアンロードログファイル

(b)　-k csvの場合（出力情報は可変長）

aaa,bbbbb,cccc,dddd,ee....ee,ffffffff,gggggggg,hh....hh,ii....ii,jjjjjjjj,kk....kk,
llllllll,mm....mm,nnnnnn,o

注

表示できる情報がない場合，その項目は空要素として表示されます。例えば，システムログランIDが表示されない場合は「aaa,bbbbb,cccc,dddd,ee....ee,,gggggggg,…」となります。

バージョン07-02より前のアンロードログファイルを指定した場合，サーバランID，及びファイルグループ名は空要素として表示されます。

DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

aaa：

ファイル種別

sys：システムログファイル

bbbbb：

システムが使用する内部情報

cccc：

HiRDB識別子

dddd：

ユニット識別子

ee....ee：

システムが使用する内部情報

ffffffff：

システムログランID（16進数）

gggggggg：

サーバランID（16進数）

hh....hh：

サーバ名（8文字以内）

ii....ii：

ファイルグループ名（8文字以内）

jjjjjjjj：

現用のシステムログファイルの割り当て時刻（16進数通算秒）

kk....kk：

世代番号（16進数8文字以内）

llllllll：

アンロードログファイル作成開始時刻（16進数通算秒）

mm....mm：

先頭ログブロック番号（16進数8文字以内）

nnnnnn：

システムが使用する内部情報

o：

システムログのアンロードの完了状態

0：正しく作成されたアンロードログファイル

1：作成途中で中断されたアンロードログファイル

2.66　pdlogunld（ログ関係のファイルのアンロード）

2.66.1　pdlogunldの形式と規則

(1)　機能

指定したファイルグループを出力先のファイルへアンロードし，ファイルグループをアンロード済み状態にします。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdlogunld -d sys 〔-s サーバ名〕 -g ファイルグループ名

　　　　　　　　　　〔-o 出力先ファイル名〕 〔-n〕 〔-f〕

　　　　　　　　　　〔-k 出力先ファイル種別〕

　　　　　　　　　　〔-i 出力先ファイルの初期容量〔，増分容量〕〕

(b)　HiRDB/パラレルサーバの場合

　pdlogunld -d sys -s サーバ名 〔-u ユニット識別子〕 -g ファイルグループ名

　　　　　　　　　　〔-o 出力先ファイル名〕 〔-n〕 〔-f〕

　　　　　　　　　　〔-k 出力先ファイル種別〕

　　　　　　　　　　〔-i 出力先ファイルの初期容量〔，増分容量〕〕

(4)　オプション

(a)　-d sys

システムログファイルをアンロードします。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

ファイルグループに対応するサーバの名称を指定します。

(c)　-g ファイルグループ名　〜＜識別子＞((1〜8))

アンロードするファイルのファイルグループ名を指定します。

(d)　-o 出力先ファイル名　〜＜パス名＞((-k hirdb指定時は167文字以内))

出力先のアンロードログファイルの名称を指定します。

出力先ファイルは，-sオプションに指定したサーバがあるホストに作成されます。省略した場合，標準出力へ出力します。

-k hirdbを指定した場合，出力先ファイル名は「HiRDBファイルシステム領域名/HiRDBファイル名」の形式で指定してください。

(e)　-n

ファイルグループの状態を変更しないで，アンロード待ちの状態を継続する場合に指定します。このオプションを指定することで，同一世代のファイルを繰り返してアンロードでき，複数のアンロードファイルを作成できます。

(f)　-f

ファイルグループの状態をチェックしないで，アンロードする場合に指定します。このオプションを指定した場合，現用ファイルグループ又はアンロード済みのファイルグループでもアンロードできます。ただし，ファイルグループの状態は変更されません。

(g)　-k 出力先ファイル種別

-oオプション指定時に，出力先のアンロードログファイルの種別を指定します。省略した場合，regularが仮定されます。

regular：

通常ファイルに出力する場合に指定します。

hirdb：

HiRDBファイルに出力する場合に指定します。系切り替え機能を使用する場合に指定してください。

-k regularを指定する場合は，アンロードログファイルを格納するディレクトリを作成しておく必要があります。また，作成するディレクトリには，HiRDB管理者に対して読み込み権限，書き込み権限，及び実行権限を与えてください。

-k hirdbを指定する場合は，pdfmkfsコマンド（-k UTL）でHiRDBファイルシステム領域を作成しておく必要があります。

系切り替え機能を使用している場合，実行系システムと待機系システムの共有ディスク（キャラクタ型スペシャルファイル）上にシステムログファイルをアンロードするようにしてください。この場合，実行系システムで取得したアンロードログファイルを，待機系システムの回復に使用できます。

(h)　-i 出力先ファイルの初期容量〔，増分容量〕

　　　〜＜符号なし整数＞((1〜1048574))

-k hirdbを指定した場合に，出力先ファイルの初期容量と増分容量（初期容量を超えた場合に確保する容量）をメガバイト単位で指定します。

省略した場合は，次の値が仮定されます。

-iの指定値

システムログファイルサイズ

2400MB未満

2400MB以上

出力先ファイルの初期容量

100MB

システムログファイルサイズ÷24

増分容量

100MB

（システムログファイルサイズ−出力ファイルの初期容量）÷23

＜規則＞

アンロードログファイルの最大サイズはシステムログファイルの最大サイズと同じ（100ギガバイト）であるため，通常は-iオプションを指定する必要はありません。ただし，システムログファイルが100メガバイトより小さい場合は，そのシステムログファイルのサイズを-iオプションに指定してください。

ラージファイル使用時は，-iオプションを指定しないでください。

初期容量は，pdfmkfsコマンドでHiRDBファイルシステム領域を作成したときの-nオプションの指定値より小さくしてください。

次の場合には，出力先ファイルの増分はできません。

HiRDBファイルシステム領域の増分回数指定を超えて拡張しようとした場合

HiRDBファイルシステム領域の増分回数指定はpdfmkfsコマンドの-eオプションで指定します。-k hirdbを指定する場合は，マニュアル「HiRDB システム導入・設計ガイド」の「最大増分回数の見積もり」を参照して-eオプションに指定する値を見積もってください。

HiRDBファイルが，個々のHiRDBファイルの増分回数の上限（23回）を超えて増分しようとした場合

(i)　-u ユニット識別子　〜＜識別子＞((4文字))

影響分散スタンバイレス型系切り替え機能を適用している場合，アンロードするシステムログファイルを作成したディスクがあるホストの，ユニット識別子を指定します。

該当するサーバ，及びシステムマネジャが稼働中の場合，-uオプションの指定は無視されます。

次のどれかに該当する場合に-uオプションを指定すると，エラーとなります。

指定するユニットが，-sオプションで指定したサーバの移動先となるHAグループに属していない。

-sオプションで指定したサーバが，HAグループ内のサーバではない。

影響分散スタンバイレス型系切り替え機能を適用していない。

-uオプションの指定要否を次に示します。

サーバの状態

ファイル作成先のディスクがあるホスト

-uオプションの指定

稼働中

実行系バックエンドサーバがあるホスト

省略できます。

停止中

現用系バックエンドサーバがあるホスト

上記以外のホスト

必ず指定します。

(5)　規則

pdlogunldコマンドの実行条件を次に示します。

システム定義でpd_log_unload_check=Nを指定してHiRDBが稼働中の場合で，かつ操作対象のファイルグループがオープン状態のときは，-fオプションの指定がないと実行できません。

上記以外の場合，HiRDBの稼働に関係なく実行できます（ただし，HiRDB開始処理中及びHiRDB終了処理中は除きます）。

pdlogunldコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

現用ファイルグループ，及びアンロード済みのファイルグループは-fオプションを指定しないとアンロードできません。

(6)　注意事項

pdlogunldコマンドのリターンコードを次に示します。

0：正常終了

4：異常終了

8：異常終了（オプション指定不正，rsh失敗など）

12：異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）

スワップ先にできる状態のファイルグループを，-fオプションを指定してアンロードすると，アンロード中に現用ファイルグループとなることがあります。アンロード中に現用ファイルグループとなった場合には，コマンドエラーとなります。そのため，スワップ先にできる状態のファイルグループは，-fオプションを指定してアンロードする場合，アンロード前にpdlogclsコマンドでクローズする必要があります。

pdlogunldコマンドは，HiRDB開始処理中に実行しないでください。HiRDB開始処理中とは，KFPS01800-Iメッセージの出力からKFPS05210-Iメッセージの出力までの間のことをいいます。実行した場合，システムログファイルの状態がHiRDBに反映されないことがあります。このような場合には，HiRDB開始処理完了後にpdlogclsコマンドで該当するファイルグループをクローズし，その後pdlogopenコマンドでオープンすると，システムログファイルの状態が反映されます。

pdlogunldコマンドは，HiRDBシステム定義ファイルの内容を参照して，処理をします。そのため，ログを取得した稼働中のHiRDBのHiRDBシステム定義ファイルと，pdlogunldコマンド実行時のHiRDBシステム定義ファイルの内容が一致していない場合は，アンロードできないことがあります。

pdlogunldコマンドの結果は，次の方法で確認できます。

HiRDB稼働中の場合

pdloglsコマンド

HiRDB停止中の場合

完了メッセージ

HiRDBが稼働していないときにpdlogunldコマンドを実行し，コマンドが終了する前に次に示すどれかの状態になると，コマンド実行エラーとなります。

HiRDB開始中

HiRDBオンライン中

HiRDB停止処理中

このとき作成されたアンロードログファイルはデータベースの回復処理に使用できません。HiRDBの稼働状態を確認してから，再度pdlogunldコマンドを実行してください。

pdstop -sコマンドで個別に終了したサーバでは，そのサーバでpd_log_unload_check=Nを指定している場合，-fオプションの指定がないとpdlogunldコマンドは実行できません。

pdlogunldコマンドでHiRDBファイルシステム領域に作成したアンロードログファイルを，pdfbkupコマンド及びpdfrstrコマンドで別のHiRDBファイルシステム領域に移動する場合，移動するアンロードログファイルのレコード長は，pdfrstrコマンド実行時に使用するHiRDBファイルシステム領域のセクタ長の整数倍でなければなりません。アンロードログファイルのレコード長と，pdfrstrコマンド実行時に使用するHiRDBファイルシステム領域のセクタ長の関係を次に示します（単位：バイト）。

アンロードログファイルのレコード長

pdfrstrコマンド実行時に使用するHiRDBファイルシステム領域のセクタ長

1,024

2,048

4,096

1,024

○

×

×

2,048

○

○

×

4,096

○

○

○

（凡例）

○：pdfrstrコマンドを実行できます。

×：pdfrstrコマンドは実行できません。

アンロードログファイルのレコード長は，pdflsコマンドで確認できます。また，現在のセクタ長はpdfstatfsコマンドで確認できます（HiRDBファイルシステム領域のセクタ長は，pdfmkfsコマンド実行時に-sオプションで指定した値となります）。

2.67　pdls（HiRDBシステムの状態表示）

2.67.1　pdlsの形式と規則

(1)　共通機能

指定した表示対象種別ごとにHiRDBシステムの状態を表示します。

(2)　共通実行者

権限がないユーザでも実行できます。

(3)　共通形式

　pdls 〔-d 表示対象種別 〔表示対象種別ごとのオプション〕〕

注

表示対象種別ごとのオプションは，指定する表示対象種別によって異なります。

(4)　共通オプション

(a)　-d 表示対象種別　〜《svr》

状態を表示する対象種別を指定します。

act：

ユーザの状態を表示します。

aud：

監査証跡ファイルの状態を表示します。

ha：

系切り替え機能を使用しているときの，系の状態を表示します。

lck：

サーバの排他制御の状態を表示します。

mem：

サーバの共用メモリの情報を表示します。

org：

オンライン再編成の追い付き反映の経過情報を表示します。

prc：

サーバのプロセスの状態を表示します。

ris：

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，ログ適用サイトでのログ適用処理の実行状況を表示します。

rpc：

サーバの通信制御情報を表示します。

rpl：

HiRDB Datareplicator連携の状態を表示します。

scd：

サーバのスケジュールの状態を表示します。

stj：

ユニット，及びサーバごとの統計情報出力種別の指定有無を表示します。

sts：

ステータスファイルの状態を表示します。

svr：

ユニット及びサーバの状態を表示します。

trn：

サーバのトランザクションの状態を表示します。

ust：

ユニットの稼働状態を表示します。

(5)　共通規則

-dオプションにaud，ha，rpl，及びustを指定したpdlsコマンドは，HiRDBの稼働に関係なく実行できます。それ以外のオプションを指定したpdlsコマンドは，HiRDBが稼働中のときだけ実行できます。

pdlsコマンドは，-d ha，lck，svr，trn，及びustの場合，任意のサーバマシンから実行できます（ユティリティ専用ユニットのサーバマシンからは実行できません）。それ以外の場合，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。-d risの場合，ログ適用サイトのシングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

表示対象種別ごとのオプションに，ほかの表示対象種別で指定できるオプションを指定した場合は，そのオプションは無視されます。

pdlsコマンドを実行する場合，$PDDIR/bin/pdlsと指定することをお勧めします（pdlsと指定すると，ほかのPPの同名のコマンドが実行されることがあります）。

(6)　共通注意事項

システム定義のpd_tmp_directoryオペランドを指定しないで，環境変数TMPDIRだけを指定している場合，pdlsコマンド，又はほかのHiRDBのコマンドを実行中に中断すると，環境変数TMPDIRに設定したディレクトリ下に"pdcmd"で始まる名称のファイルが残ることがあります。pdlsコマンド，又はほかのHiRDBのコマンドが終了した後も，"pdcmd"で始まる名称のファイルが残っている場合は，OSのrmコマンドなどで削除してください。

影響分散スタンバイレス型系切り替え機能を適用している場合，系切り替えでほかのユニットに移動したサーバは，移動先のユニットのサーバとして扱います。

コマンドを実行するユニットが次の場合，各ユニットの稼働状態を正しく確認できない場合があります。

系切り替え処理中の場合

ユニットの状態を検知するまでの間（システム定義のpd_host_watch_intervalオペランドに指定した時間）

2.68　pdls【-d act】（ユーザの状態表示）

2.68.1　pdls【-d act】の形式と規則

(1)　機能

ユーザの状態を表示します。

(2)　形式

　pdls -d act 〔-s サーバ名〕

             〔｛-x ホスト名〔，ホスト名〕…｜-u ユニット識別子〔，ユニット識別子〕…｝〕

(3)　オプション

(a)　-s サーバ名　〜＜識別子＞((1〜8))

指定したサーバのユーザの状態を表示します。省略した場合，HiRDBシステム内のすべてのサーバに関する，ユーザの状態を表示します。

(b)　-x ホスト名〔，ホスト名〕…

特定のホストについて情報を表示したい場合，そのホスト名を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-xオプションの指定は無視されます。また，複数のホスト名を指定する場合，コンマの前後には空白を含めないでください。

(c)　-u ユニット識別子〔，ユニット識別子〕…

特定のユニットについて情報を表示したい場合，そのユニット識別子を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-uオプションの指定は無視されます。また，複数のユニット識別子を指定する場合，コンマの前後には空白を含めないでください。

(4)　注意事項

pdls -d actコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。8の場合は，その前に出力されているメッセージを参照してエラー要因を取り除いてください。

(5)　出力形式

 HOSTNAME : aa...a(bbccdd)
 SVID    PID    ACTID                 LOCK-STATE
 ee...e  ff...f gg...g-hh...h-ii...i  j

［説明］

SVID「サーバ名」からLOCK-STATE「UNTIL DISCONNECT指定の排他保持状態」までの各項目は，1文字以上の半角空白を空けて表示します。

aa...a ：

ホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

ee...e ：

サーバ名（8文字以内）

ff...f ：

プロセスID（AIX版は10進数10けた以内で右詰め表示，AIX版以外は99999以下の場合，10進数5けた以内で右詰め表示，100000以上の場合は，10進数10けた以内で左詰め表示）

AIX版以外で100000以上の場合，UID（ユーザID）以降の項目の表示位置は右にシフトします。

ユニットの再開始で復元したユーザ情報の場合は，0を表示します。

gg...g-hh...h-ii...i：

ユーザ識別通番（22文字以内）

AIX版では22文字以上の場合，またAIX版以外では，20文字以上の場合，LOCK-STATE（UNTIL DISCONNECT指定の排他保持状態）以降の項目の表示位置が右にシフトします。

j ：

UNTIL DISCONNECT指定の排他保持状態

Y ：排他を保持しています

N ：排他を保持していません

＜出力例＞

AIX版以外でプロセスIDが100000以上の表示を含む場合

HOSTNAME : HOST0001(144031)
SVID      PID     ACTID              LOCK-STATE
SERVER01  38095   16-1-1             N         … プロセスIDが99999以下
SERVER01  108221   16-1-2             N        … プロセスIDが100000以上
SERVER01   8101   16-1-3             N         … プロセスIDが99999以下

2.69　pdls【-d aud】（監査証跡ファイルの状態表示）

2.69.1　pdls【-d aud】の形式と規則

(1)　機能

監査証跡ファイルの状態を表示します。

(2)　形式

　pdls -d aud 〔-u ユニット識別子〕 〔-U 認可識別子〕

(3)　オプション

(a)　-u ユニット識別子　〜＜識別子＞((4文字))

情報を表示するユニットのユニット識別子を指定します。

-uオプションは，HiRDB/パラレルサーバの場合に指定できます。また，-uオプションを省略した場合，すべてのユニットの情報を表示します。

(b)　-U 認可識別子

監査人の認可識別子を指定します。このオプションを指定すると，パスワード入力要求の応答付きメッセージが出力されます。

このオプションは，HiRDBが稼働中の場合のpdls -d audコマンド実行時に有効となります。

＜規則＞

HiRDB管理者がコマンドを実行すると，パスワード入力要求のメッセージが表示されます。このとき，監査人が認可識別子とパスワードを入力してください。なお，HiRDBが停止中の場合，HiRDBにアクセスするときに認証を行いません。

このオプションに指定した認可識別子と，応答付きメッセージに入力したパスワードでHiRDBに接続し，その認可識別子に監査権限があるかをチェックします。

このオプションは，応答付きメッセージに応答できる環境でpdls -d audコマンドを実行する場合に指定できます。

このオプションを省略した場合，pdls -d audコマンド実行時の環境変数PDUSERの設定値が仮定されます。このオプションを省略し，かつ環境変数PDUSERも設定していない場合，pdls -d audコマンドは実行できません。このオプションを省略する場合は，環境変数PDUSERを設定しておく必要があります（指定例を次に示します）。

（例）Cシェルの場合

setenv PDUSER '"認可識別子"/"パスワード"'

(4)　注意事項

pdls -d audコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

pdls -d audコマンドは，ユニットの開始処理途中，終了処理途中，及びpdstart -rでHiRDBを起動したときは実行できません。

システム定義にpd_aud_file_nameオペランドを指定していない場合，又はpd_aud_file_nameオペランドに指定している監査証跡ファイルがない場合に，pdls -d audコマンドを実行するとコマンドエラーになります。

HiRDB/パラレルサーバの場合に，-uオプションを省略してpdls -d audコマンドを実行したときは，コマンド処理中にエラーが発生したユニットについてはエラーメッセージを出力し，エラーが発生していないユニットについては監査証跡ファイルの情報を表示します。

ユニット停止中にユニット用ステータスファイルを初期化してからユニットを開始した場合，障害が発生して閉塞中となっている世代の監査証跡ファイルのデータロード状態の表示は，−となります。

(5)　出力形式

 HOSTNAME     : aa...a(bbccdd)
 UNITID       : eeee
 Audit-Status : ff...f
 File-Name    : gg...g
 Generation-Name    Status
 hh...h             ijk
    :                :

すべてのユニットの情報を表示する場合は，ユニット数分上記の情報が表示されます。

［説明］

aa...a ：

ホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

eeee ：

ユニット識別子（4文字）

ff...f：

監査証跡の取得状態（8文字以内）

ACTIVE：取得中です。

INACTIVE：停止中です。

********：HiRDBが稼働中でないため，監査証跡の取得状態を表示できません。

gg...g：

監査証跡ファイル用のHiRDBファイルシステム領域名（絶対パス名117文字以内）

監査証跡ファイル名が117文字を超える場合は，先頭から117文字を出力します。

hh...h：

監査証跡ファイルの世代ごとのファイル名（16文字）

監査証跡ファイルが1世代未満の場合は表示されません。

ijk：

監査証跡ファイルの世代ごとの状態（3文字）

監査証跡ファイルが1世代未満の場合は表示されません。

i ：監査証跡ファイルの現在の状態

c ：現用。現時点の監査証跡の出力対象世代です。監査証跡の取得が停止している場合は，次回の監査証跡の取得開始時に現用となることを示しています。

s ：待機中。現時点では監査証跡の出力対象世代ではありません。障害が発生して閉塞中となった監査証跡ファイルについては，ユニット停止中はsが表示されます。

j ：監査証跡ファイルのデータロード状態

d ：データロード待ち。該当する世代の監査証跡ファイルは，監査証跡表にデータロードされていません。

- ：データロード済み。該当する世代の監査証跡ファイルは，監査証跡表にデータロード済みです。障害が発生して閉塞中の監査証跡ファイルについては，ユニット停止中は-が表示されます。

k ：監査証跡ファイルの閉塞状態

h ：閉塞中。監査証跡ファイルに障害が発生し，以後監査証跡が出力されていません。

- ：閉塞していません。

2.70　pdls【-d ha】（HiRDBの系の状態表示）

2.70.1　pdls【-d ha】の形式と規則

(1)　機能

IPアドレスを引き継がない系切り替え機能，又はスタンバイレス型系切り替え機能を使用しているときの，HiRDBの系の状態を表示します。

(2)　形式

　pdls -d ha 〔｛-u ユニット識別子｜-s サーバ名｝〕 〔-a〕

(3)　オプション

(a)　-u ユニット識別子　〜＜識別子＞((4文字))

系の状態を表示するユニットのユニット識別子を指定します。省略した場合，すべてのユニットについて系の状態を表示します。

影響分散スタンバイレス型系切り替え機能を適用しているユニットのユニット識別子を指定した場合，そのユニット内のホストBESとゲストBESだけ状態表示の対象となります。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

影響分散スタンバイレス型系切り替え機能を適用している場合，状態表示をするサーバのサーバ名を指定します。影響分散スタンバイレス型系切り替え機能を適用していないユニットのサーバ名を指定するとエラーになります（KFPS05041-Eメッセージ）。

(c)　-a

影響分散スタンバイレス型系切り替え機能を適用している場合，実行状態だけではなく，詳細情報（待機状態，受け入れ可能状態，及び実行系起動待ち状態）も表示するときに指定します。

＜規則＞

影響分散スタンバイレス型系切り替え機能を適用していない場合に-aオプションを指定しても無視されます。

-aオプションと-uオプションを指定した場合，指定したユニット内のホストBESとゲストBESの詳細情報が表示されます。

-aオプションと-sオプションを指定した場合，指定したサーバのHAグループ内の各ユニットでの詳細情報が表示されます。

-aオプションを省略した場合，実行中のサーバの情報が表示されます。

受け入れ可能状態のサーバを確認したい場合は，-aオプションを指定してください。

-a，-u，及び-sオプションの組み合わせによって，表示される情報は次のようになります。

オプション

稼働しているサーバ

停止しているサーバ

-a

-u

-s

実行状態

待機状態及び受け入れ可能状態

実行系起動待ち状態

あり

あり

あり

×

×

×

×

なし

○

○

○

○

なし

あり

○

○

○

○

なし

○

○

○

○

なし

あり

あり

×

×

×

×

なし

○

−

−

−

なし

あり

○

−

−

○※

なし

○

−

−

○※

（凡例）

○：表示されます。

−：表示対象外です。

×：エラーとなります。

注※

HAグループ内の全ユニットの，実行系でないサーバの状態が表示されます。

(4)　注意事項

pdls -d haコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

系切り替え機能を使用していない場合，又はIPアドレスを引き継ぐ系切り替え機能を使用している場合に，このコマンドを実行したときはメッセージを表示してコマンドの処理を終了します。

(5)　出力形式

(a)　影響分散スタンバイレス型系切り替え機能を適用していない場合

 UNITID  INITIAL-HOST [STATUS]  RESERVED-HOST [STATUS]
 aaaa    bb...bb      [ccc]     dd...dd       [eee]
   :       :            :          :             :

［説明］

aaaa：

ユニット識別子（4文字）

bb...b：

現用系のホスト名（32文字以内）

ccc：

現用系のホストの状態（3文字）

モニタモードの場合：

ONL：実行中（オンライン）

SBY：待機中（停止も含みます）

STP：両系とも停止

サーバモードの場合：

ONL：実行中（オンライン）

SBY：待機中※

STP：停止

系切り替え対象外のホストの場合：

ONL：実行中（オンライン）

STP：停止

dd...d：

予備系のホスト名（32文字以内）

該当するユニットが系切り替えの対象でない場合，又はIPアドレスを引き継ぐ系切り替え機能を使用している場合，************************を表示します。

eee：

予備系のホストの状態（3文字）

モニタモードの場合：

ONL：実行中（オンライン）

SBY：待機中（停止も含みます）

STP：両系とも停止

***：系切り替え対象外，又はIPアドレスを引き継ぐ系切り替え機能使用時

サーバモードの場合：

ONL：実行中（オンライン）

SBY：待機中※

STP：停止

***：系切り替え対象外，又はIPアドレスを引き継ぐ系切り替え機能使用時

注※

1:1スタンバイレス型系切り替え機能を使用している場合に代替BESがSBYとなるのは，代替BESが代替準備を完了した状態であり，代替BESユニットが開始した状態ではありません。

出力形式についての補足説明：

系の状態と表示結果を次に示します。

系の状態

表示結果

モニタモード

サーバモード

系切り替え対象外

現用系

予備系

現用系

予備系

現用系

予備系

現用系

予備系

停止

停止

STP

STP

STP

STP

STP

***

停止

待機中※

−

−

STP

SBY

STP

−

稼働中

停止

ONL

SBY

ONL

STP

ONL

***

稼働中

待機中

ONL

SBY

ONL

SBY

ONL

−

停止

稼働中

SBY

ONL

STP

ONL

−

−

待機中

稼働中

SBY

ONL

SBY

ONL

−

−

待機中※

停止

−

−

SBY

STP

−

−

（凡例）−：該当しません。

注※

待機系だけの起動はできませんが，Hitachi HA Toolkit Extension使用時は両系起動中に実行系を正常終了した場合，待機系は自動停止しないため，待機系だけが起動している状態になります。

現用系ホスト名，及び予備系ホスト名の長さが１行に収まらない場合，予備系ホストに関する情報を次の行に表示します。例を次に示します。

 UNITID  INITIAL-HOST [STATUS]  RESERVED-HOST [STATUS]
 aaaa    bb................................................bb      [ccc]
         dd................................................dd      [eee]

モニタモード，サーバモードと，pdls -d haコマンドの表示結果の対応を次の図に示します。

図2‒5　モニタモード，サーバモードと，pdls -d haコマンドの表示結果の対応

1:1スタンバイレス型系切り替え機能を使用している場合，現用系，予備系，実行中，及び待機中のユニットの意味は次のようになります。

現用系：正規BESユニット

予備系：代替BESユニット

実行中：処理を実行しているユニット（非代替中の正規BESユニット又は代替中の代替BESユニット）

待機中：待機しているユニット（非代替中の代替BESユニット又は代替中の正規BESユニット）

(b)　影響分散スタンバイレス型系切り替え機能を適用している場合

 UNITID  INITIAL-HOST [STATUS]  RESERVED-HOST [STATUS]
 aaaa    bb...bb      [ccc]     dd...dd       [eee]
   :       :            :          :             :

 SVID    UNIT  [STATUS] INITIAL-UNIT
 ff...f  gggg  [hhh]    iiii
   :       :     :        :

［説明］

aaaa〜eeeの内容は，影響分散スタンバイレス型系切り替え機能を適用していない場合と同じです。

ff...f〜iiiiは，サーバごとに，サーバがあるユニットのユニット識別子でソートして表示されます。

ff...ｆ：

サーバ名（8文字以内）

影響分散スタンバイレス型系切り替え機能を適用したユニットのサーバです。

gggg：

サーバがあるユニットのユニット識別子（4文字）

ff...fのサーバがあるユニットのユニット識別子です。

-uオプションを指定している場合は，指定したユニット識別子となります。

-aオプションを指定して，-uオプションを省略している場合，ff...fのサーバの，移動先HAグループの全ユニットのうち，表示対象となるユニットのユニット識別子となります。

-aオプションと-uオプションを省略している場合，ff...fのサーバが実行系となっているユニットのユニット識別子となります。

ff...fのサーバがHAグループの全ユニットで実行状態となっていない場合，****が表示されます。

hhh：

サーバのステータス（3文字）

ONL：

実行状態（オンライン）

SBY：

ホストBESの場合は待機状態，ゲストBESの場合は受け入れ可能状態

-aオプションを省略している場合，表示されません。

STP：

-a，-u，及び-sオプションを省略している場合，HAグループ内の全ユニットでの実行状態以外の状態であることを示します。

-aオプションを指定している場合，ggggのユニットで停止していることを示します。

WIT：

実行系起動待ち状態

-aオプションを省略している場合は表示されません。

iiii：

定義先ユニットのユニット識別子（4文字）

ff...fのサーバの，システム定義のpdstart -uで指定したユニット識別子です。

影響分散スタンバイレス型系切り替え機能を適用した場合の表示例：

影響分散スタンバイレス型系切り替え機能を適用した場合の構成例を次に示します。

上記の構成の場合にpdls -d haコマンドを実行すると，次のように情報が表示されます。

pdls -d haの場合

SVID  UNIT  [STATUS]  INITIAL-UNIT
BES11 unt1  [ONL]     unt1
BES12 unt1  [ONL]     unt1
BES31 unt1  [ONL]     unt3
BES21 unt2  [ONL]     unt2
BES22 unt2  [ONL]     unt2
BES32 ****  [STP]     unt3

pdls -d ha -aの場合

SVID  UNIT  [STATUS]  INITIAL-UNIT
BES11 unt1  [ONL]     unt1
BES12 unt1  [ONL]     unt1
BES21 unt1  [SBY]     unt2
BES22 unt1  [SBY]     unt2
BES31 unt1  [ONL]     unt3
BES32 unt1  [STP]     unt3
BES11 unt2  [SBY]     unt1
BES12 unt2  [SBY]     unt1
BES21 unt2  [ONL]     unt2
BES22 unt2  [ONL]     unt2
BES31 unt2  [SBY]     unt3
BES32 unt2  [STP]     unt3
BES11 unt3  [SBY]     unt1
BES12 unt3  [STP]     unt1
BES21 unt3  [SBY]     unt2
BES22 unt3  [SBY]     unt2
BES31 unt3  [SBY]     unt3
BES32 unt3  [STP]     unt3

pdls -d ha -u unt1の場合

SVID  UNIT  [STATUS]  INITIAL-UNIT
BES11 unt1  [ONL]     unt1
BES12 unt1  [ONL]     unt1
BES31 unt1  [ONL]     unt3

pdls -d ha -u unt1 -aの場合

SVID  UNIT  [STATUS]  INITIAL-UNIT
BES11 unt1  [ONL]     unt1
BES12 unt1  [ONL]     unt1
BES21 unt1  [SBY]     unt2
BES22 unt1  [SBY]     unt2
BES31 unt1  [ONL]     unt3
BES32 unt1  [STP]     unt3

pdls -d ha -s BES12の場合

SVID  UNIT  [STATUS]  INITIAL-UNIT
BES12 unt1  [ONL]     unt1

pdls -d ha -s BES12 -aの場合

SVID  UNIT  [STATUS]  INITIAL-UNIT
BES12 unt1  [ONL]     unt1
BES12 unt2  [SBY]     unt1
BES12 unt3  [STP]     unt1

2.71　pdls【-d lck】（サーバの排他制御の状態表示）

2.71.1　pdls【-d lck】の形式と規則

(1)　機能

サーバの排他制御の状態（占有情報及び待ち情報），排他資源管理テーブルの使用率，又は排他制御用プールパーティションの統計情報を表示します。

(2)　形式

　pdls -d lck ｛〔-a〕〔-s サーバ名〕｜〔-p〔-e〕〕｜〔-T〔-R〕〕｝

             〔｛-x ホスト名〔，ホスト名〕…｜-u ユニット識別子〔，ユニット識別子〕…｝〕

(3)　オプション

サーバの排他制御の状態（占有情報及び待ち情報），排他資源管理テーブルの使用率，又は排他制御用プールパーティションの統計情報を表示するかを指定します。オプションを省略した場合，待ち情報だけが表示されます。

(a)　-a

占有情報及び待ち情報を表示したい場合に指定します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

指定したサーバに関する待ち情報だけを表示します。省略した場合，すべてのサーバの情報を表示します。

(c)　-p

各サーバの排他資源管理テーブルの使用率を表示したい場合に指定します。

(d)　-e

各サーバの排他制御用プールパーティションの詳細情報を表示したい場合に指定します。

(e)　-T

排他制御用プールパーティションの統計情報を表示したい場合に指定します。表示された情報は，排他制御用プールパーティションの数をチューニングするときに使用できます。排他制御用プールパーティションのチューニング方法は，マニュアル「HiRDB システム運用ガイド」の「排他制御用プールを分割する方法」を参照してください。

-Tオプションを指定する場合に出力される情報の中で，次に示す情報は，表示できるけた数を超えると0に戻ります。0に戻らないようにするためには，-Rオプションも同時に指定してください。

排他要求回数

排他制御用プールパーティションのスレッド間ロック要求回数

(f)　-R

前回のコマンド実行時から，コマンド実行時点までの統計情報を集計したい場合に指定します。前回との差分の統計情報を取得するため，このコマンドを多重実行しないでください。なお，HiRDBを開始してから最初にこのコマンドを実行する場合，HiRDB開始時からコマンド実行時点までの統計情報を集計します。

省略した場合，HiRDBを開始したときからコマンドを実行した時点までの統計情報を集計します。

(g)　-x ホスト名〔，ホスト名〕…

特定のホストについて情報を表示したい場合，そのホスト名を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-xオプションの指定は無視されます。また，複数のホスト名を指定する場合，コンマの前後には空白を含めないでください。

(h)　-u ユニット識別子〔，ユニット識別子〕…

特定のユニットについて情報を表示したい場合，そのユニット識別子を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-uオプションの指定は無視されます。また，複数のユニット識別子を指定する場合，コンマの前後には空白を含めないでください。

(4)　注意事項

pdls -d lckコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

(5)　出力形式

(a)　オプション省略時，又は-a，-sオプションを指定した場合

 HOSTNAME : aa...a(bbccdd)
 SVID         PID    TID KIND  RESOURCE
  WAIT  MODE  TRNBID              ACTID                LOCK-STATE  DPRIO
 ee...e    ff...f gg...g hhhh  ii...i
 jj...j kk    ll...l              mm...m-nn...n-oo...o p             qqq   ...1
                         :

［説明］

1は，占有及び待ち情報の数だけ繰り返し表示されます。

1で表示する各項目は，1文字以上の半角空白を空けて表示します。

aa...a ：

ホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

ee...e ：

サーバ名（8文字以内）

ff...f ：

プロセスID（99999以下の場合，10進数5けた以内で右詰め表示，100000以上の場合は，10進数10けた以内で左詰め表示）

100000以上の場合，TID（スレッドID）以降の項目の表示位置は右にシフトします。

gg...g ：

スレッドID（10進数5けた）

hhhh ：

資源種別（16進数4けた）

ii...i ：

資源名称（16進数28けた）

jj...j ：

待ち時間（99999以下の場合，10進数5けた以内で右詰め表示，100000以上の場合は，10進数10けた以内で左詰め表示，単位は秒）

100000以上の場合，MODE（排他制御モード）以降の項目の表示位置は右にシフトします。

占有情報の場合は*****を表示

kk ：

排他制御モード（2文字）

ll...l ：

トランザクション識別子（16文字）

p（UNTIL DISCONNECT指定の排他保持状態）にYが表示されている場合，このトランザクションブランチは既に終了していることがあります。そのため，タイミングによってはpdls -d trnコマンドで表示されないときがあります。

mm...m-nn...n-oo...o：

ユーザ識別通番（22文字以内）

19文字以上の場合，LOCK-STATE（UNTIL DISCONNECT指定の排他保持状態）以降の項目の表示位置は右にシフトします。

p ：

UNTIL DISCONNECT指定の排他保持状態

Y ：排他を保持しています

N ：排他を保持していません

qqq ：

デッドロックプライオリティ値（10進数3けた）

HiRDB内部で取得する排他の占有情報及び待ち情報の場合，-1を出力する場合があります。

＜出力例＞

プロセスIDが100000以上の表示を含む場合

HOSTNAME : HOST0001(145717)
SVID       PID     TID  KIND  RESOURCE                       WAIT  MODE
 TRNBID              ACTID               LOCK-STATE  DPRIO
SERVER01   38095   1    0001  0300000000000000000000000000  *****  SR
 PRDBUNT000010003    16-1-2              N              64  … プロセスIDが99999以下
SERVER01   108221   1    0002  0300020000000000000000000000  *****  SR
  PRDBUNT000010003    16-1-2              N              64 … プロセスIDが100000以上
SERVER01    8101   1    0007  000300000e450000030002000000  *****  PR
 PRDBUNT000010003    16-1-2              N              64  … プロセスIDが99999以下

(b)　-pオプションを指定し，かつ-eオプションを指定しない場合

 HOSTNAME : aa...a(bbccdd)
 SVID       TABLE-KIND   TOTAL    USED    RATE
 ee...e       RESOURCE  ff...f  gg...g    hhh%   ...1
                      :

［説明］

1は，サーバの数だけ繰り返し表示されます。

1で表示する各項目は，1文字以上の半角空白を空けて表示します。

aa...a：

ホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

ee...e：

サーバ名（8文字以内）

ff...f：

管理できる排他資源の最大数（32ビットモードの場合10進数8けた，64ビットモードの場合10進数10けた）

gg...g：

現在管理中の排他資源数（32ビットモードの場合10進数8けた，64ビットモードの場合10進数10けた）

hhh：

排他資源管理テーブル使用率（%）

(c)　-pオプション及び-eオプションを指定した場合

 HOSTNAME : aa...a(bbccdd)
 SVID : ee...e   ...1
 TABLE-NAME       TABLE-KIND        TOTAL       USED RATE-C RATE-T   ...1
 ff...f           gg...g           hh...h     ii...i   jjj%   kkk%   ...1，2
   :                 :                :          :       :      :
 SVID : ee...e   ...1
 TABLE-NAME       TABLE-KIND        TOTAL       USED RATE-C RATE-T   ...1
 ff...f           gg...g           hh...h     ii...i   jjj%   kkk%   ...1，2
   :                 :                :          :       :      :

［説明］

HOSTNAMEに表示されるホスト上に存在するユニットごとに表示されます。HiRDBサーバがないユニットは，HOSTNAMEだけ表示されます。HiRDBサーバがないユニットとは，HiRDB/シングルサーバの場合は，ユティリティ専用ユニットが該当します。HiRDB/パラレルサーバの場合は，システムマネジャだけを配置したユニット又は影響分散スタンバイレス型系切り替え機能を適用しているユニットで，バックエンドサーバが稼働していないユニットが該当します。

1はサーバごとに，2は排他制御用プールパーティションごとに表示されます。

2で表示する各項目は，1文字以上の半角空白を空けて表示します。

aa...a：

ホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

ee...e：

サーバ名（8文字以内）

ff...f：

HiRDBが独自に生成した，排他制御用プールパーティション名称（16文字以内）

gg...g：

テーブル種別（8文字以内）

RESOURCE：排他資源を管理する排他資源管理テーブル

hh...h：

管理可能な排他資源の最大数（符号なし整数9けた以内）

ii...i：

現在管理中の排他資源数（符号なし整数9けた以内）

jjj：

現在の使用率（小数点以下は切り捨て）（符号なし整数3けた以内）

kkk：

HiRDB開始時から現在までの使用率の最高値（小数点以下は切り捨て）（符号なし整数3けた以内）

(d)　-Tオプション及び-Rオプションを指定した場合

 HOSTNAME : aa...a(bbccdd)
 SVID : nn...n   ...1
 RANGE : eeee/ff/gg hh:ii:jj - kkkk/ll/mm bb:cc:dd...1
 TABLE-NAME       TABLE-KIND   RATE-T            L-CNT            T-CNT W-RATE Q-LEN W-TIME W-TIME-T...1
 oo...o           pp...p         qqq%           rr...r           ss...s ttt.t%  uuuu vvvv.v   wwww.w...1,2
    :               :             :                :                :      :      :    :        :
 SVID : nn...n   ...1
 RANGE : eeee/ff/gg hh:ii:jj - kkkk/ll/mm bb:cc:dd...1
 TABLE-NAME       TABLE-KIND   RATE-T            L-CNT            T-CNT W-RATE Q-LEN W-TIME W-TIME-T...1
 oo...o           pp...p         qqq%           rr...r           ss...s ttt.t%  uuuu vvvv.v   wwww.w...1,2
    :               :             :                :                :      :      :    :        :

［説明］

HOSTNAMEに表示されるホスト上に存在するユニットごとに表示されます。HiRDBサーバがないユニットは，HOSTNAMEだけ表示されます。HiRDBサーバがないユニットとは，HiRDB/シングルサーバの場合は，ユティリティ専用ユニットが該当します。HiRDB/パラレルサーバの場合は，システムマネジャだけを配置したユニット又は影響分散スタンバイレス型系切り替え機能を適用しているユニットで，バックエンドサーバが稼働していないユニットが該当します。

1はサーバごとに，2は排他制御用プールパーティションごとに表示されます。

2で表示する各項目は，1文字以上の半角空白を空けて表示します。

aa...a：

ホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

eeee/ff/gg hh:ii:jj：

前回pdls -d lck -T -Rコマンドを実行した日付と時刻（年月日時分秒）

HiRDBを開始してから最初にこのコマンドを実行する場合，HiRDBを開始した日付と時刻。

kkkk/ll/mm bb:cc:dd：

pdls -d lck -T -Rコマンドを実行した日付と時刻（年月日時分秒）

nn...n：

サーバ名（8文字以内）

oo...o：

HiRDBが独自に生成した，排他制御用プールパーティション名称（16文字以内）

pp...p：

テーブル種別（8文字以内）

RESOURCE：排他資源を管理する排他資源管理テーブル

qqq：

排他資源使用率の最高値（小数点以下は切り捨て）

rr...r：

排他要求回数（符号なし整数16けた以内）

ss...s：

排他制御用プールパーティションのスレッド間ロック要求回数（符号なし整数16けた以内）

ttt.t：

排他制御用プールパーティションのスレッド間ロック要求回数のうち，スレッド間ロック待ちが発生した回数の割合（小数点2位以下は切り捨て）

uuuu：

排他制御用プールパーティションのスレッド間ロック待ち数の平均値

システムの稼働に関する統計情報の排他制御用プールパーティションのスレッド間ロック待ち数を排他制御用プールパーティションごとに集計した値（小数点以下は切り捨て）。

vvvv.v：

スレッド間ロック待ちが発生したときのスレッド間ロック待ち時間の平均値（単位：ミリ秒）※1※2

wwww.w：

スレッド間ロック待ちが発生したときのスレッド間ロック待ち時間の最大値（単位：ミリ秒）※1※2

注※1

スレッド間ロック待ち時間の統計情報を取得しているかどうかで表示が異なります。

統計情報を取得している場合：

スレッド間ロック待ち時間の平均値が10秒以上のときは，vvvv.v は9999.9と表示されます。

スレッド間ロック待ち時間の最大値が10秒以上のときは，wwww.wは9999.9と表示されます。

平均値及び最大値が10秒未満のときは，取得した時間が表示されます。

統計情報を取得していない場合：

****.*が表示されます。

注※2

表示する値の精度は，使用するOS及びハードウェアに依存します。そのため，表示される値は実際の値より小さい場合があります。

注意事項

-wオプションを指定してpdstbeginコマンドを実行した後，最初に-Tオプション及び-Rオプションを指定する場合，次に示す値は実際の値より小さな値が出力されます。

スレッド間ロック待ちが発生したときのスレッド間ロック待ち時間の平均値

スレッド間ロック待ちが発生したときのスレッド間ロック待ち時間の最大値

そのため，スレッド間ロック待ち時間に関する統計情報を取得する場合は，-wオプションを指定してpdstbeginコマンドを実行した後に，一度-Tオプション及び-Rオプションを指定してpdls -d lckコマンドを実行してください。

(e)　-Tオプションを指定し，かつ-Rオプションを指定しない場合

 HOSTNAME : aa...a(bbccdd)
 SVID : nn...n   ...1
 TABLE-NAME       TABLE-KIND   RATE-T            L-CNT            T-CNT W-RATE Q-LEN...1
 oo...o           pp...p         qqq%           rr...r           ss...s ttt.t%  uuuu...1，2
    :                :           :                 :                :     :       :
 SVID : nn...n   ...1
 TABLE-NAME       TABLE-KIND   RATE-T            L-CNT            T-CNT W-RATE Q-LEN...1
 oo...o           pp...p         qqq%           rr...r           ss...s ttt.t%  uuuu...1，2
    :                :           :                 :                :     :       :

［説明］

HOSTNAMEに表示されるホスト上に存在するユニットごとに表示されます。HiRDBサーバがないユニットは，HOSTNAMEだけ表示されます。HiRDBサーバがないユニットとは，HiRDB/シングルサーバの場合は，ユティリティ専用ユニットが該当します。HiRDB/パラレルサーバの場合は，システムマネジャだけを配置したユニット又は影響分散スタンバイレス型系切り替え機能を適用しているユニットで，バックエンドサーバが稼働していないユニットが該当します。

1はサーバごとに，2は排他制御用プールパーティションごとに表示されます。

2で表示する各項目は，1文字以上の半角空白を空けて表示します。

aa...a：

ホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

nn...n：

サーバ名（8文字以内）

oo...o：

HiRDBが独自に生成した，排他制御用プールパーティション名称（16文字以内）

pp...p：

テーブル種別（8文字以内）

RESOURCE：排他資源を管理する排他資源管理テーブル

qqq：

排他資源使用率の最高値（小数点以下は切り捨て）

rr...r：

排他要求回数（符号なし整数16けた以内）

ss...s：

排他制御用プールパーティションのスレッド間ロック要求回数（符号なし整数16けた以内）

ttt.t：

排他制御用プールパーティションのスレッド間ロック要求回数のうち，スレッド間ロック待ちが発生した回数の割合（小数点2位以下は切り捨て）

uuuu：

排他制御用プールパーティションのスレッド間ロック待ち数の平均値

システムの稼働に関する統計情報の排他制御用プールパーティションのスレッド間ロック待ち数を排他制御用プールパーティションごとに集計した値（小数点以下は切り捨て）。

2.72　pdls【-d mem】（サーバの共用メモリの状態表示）

2.72.1　pdls【-d mem】の形式と規則

(1)　機能

サーバの共用メモリの情報を表示します。ホストに対応するユニットで使用中の共用メモリサイズを，ユニットごとに表示します。

(2)　形式

　pdls -d mem 〔｛-x ホスト名〔，ホスト名〕…｜-u ユニット識別子〔，ユニット識別子〕…｝〕

(3)　オプション

(a)　-x ホスト名〔，ホスト名〕…

特定のホストについて情報を表示したい場合，そのホスト名を指定します。複数のホスト名を指定する場合，コンマの前後には空白を含めないでください。

(b)　-u ユニット識別子〔，ユニット識別子〕…

特定のユニットについて情報を表示したい場合，そのユニット識別子を指定します。複数のユニット識別子を指定する場合，コンマの前後には空白を含めないでください。

(4)　注意事項

pdls -d memコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

(5)　出力形式

(a)　Linuxの場合

 HOSTNAME : aa...a(bbccdd)
 SHM-ID  GET-SIZE  ACT-SIZE SHM-OWNER          POOL-ID
 ee...e    ff...f    gg...g    hh...h           ii...i
   :          :         :         :                :

(b)　AIX（32ビットモード）の場合

 HOSTNAME : aa...a(bbccdd)
     SHM-ID   GET-SIZE   ACT-SIZE SHM-OWNER          POOL-ID
     ee...e     ff...f     gg...g    hh...h           ii...i
       :           :          :         :                :

(c)　AIX（64ビットモード）の場合

 HOSTNAME : aa...a(bbccdd)
     SHM-ID             GET-SIZE             ACT-SIZE SHM-OWNER          POOL-ID
     ee...e               ff...f               gg...g    hh...h           ii...i
       :                   :                     :         :                :

［説明］

aa...a ：

ホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

ee...e ：

共用メモリセグメントの識別子（10進数10けた以内）

AIX版以外の場合，6けたで表示できる値を超えたときは，以降の表示はその分だけ右側にずれます。

ff...f ：

確保サイズ（10進数10けた以内，又はAIX版の64ビットモードの場合は10進数20けた以内）（単位：バイト）

AIX版以外の場合，9けたで表示できる値を超えたときは，以降の表示はその分だけ右側にずれます。

gg...g ：

使用サイズ（10進数10けた以内，又はAIX版の64ビットモードの場合は10進数20けた以内）（単位：バイト）

AIX版以外の場合，9けたで表示できる値を超えたときは，以降の表示はその分だけ右側にずれます。

hh...h ：

共用メモリを使用するプロセスの属性（8文字以内）

共用メモリの種類

hh...hの内容

ユニットコントローラ用共用メモリ

MANAGER

グローバルバッファ用共用メモリ

影響分散スタンバイレス型系切り替え機能を適用するユニットの場合

ユニット名を（）で囲んだ文字列

影響分散スタンバイレス型系切り替え機能を適用しないユニットの場合

この共用メモリを使用するサーバ名

インメモリデータバッファ用共用メモリ

この共用メモリを使用するサーバ名

ユティリティ用共用メモリ

UTILITY

セキュリティ監査情報用バッファ用共用メモリ

AUDDEF

ii...i ：

プール識別子（16文字以内）

共用メモリの種類

ii...iの内容

ユニットコントローラ用共用メモリ

表示されません。

グローバルバッファ用共用メモリ

影響分散スタンバイレス型系切り替え機能を適用するユニットの場合

ユニット内での通番

影響分散スタンバイレス型系切り替え機能を適用しないユニットの場合

この共用メモリを使用するサーバ内での通番

インメモリデータバッファ用共用メモリ

この共用メモリを使用するサーバ内での通番※

ユティリティ用共用メモリ

一意な文字列

セキュリティ監査情報用バッファ用共用メモリ

なし

注

ff...f（確保サイズ）とgg...g（使用サイズ）は，常に一致した値（確保サイズの値）が表示されます。

注※

通番は，次に示す表で説明する通番の最小値から昇順に割り当てられます。

条件

通番の最小値

グローバルバッファの動的変更機能の使用有無

pd_max_add_

dbbuff_noの指定

pd_max_add_dbbuff_

shm_noの指定

使用している

pd_dbbuff_modify = Y

指定あり

指定あり

a＋513

指定なし

a＋1

指定なし

指定あり

a＋513

指定なし

1513

使用していない

pd_dbbuff_modify = N

−

−

513

（凡例）

−：該当しない

a：pd_max_add_dbbuff_shm_noの値

pd_max_add_dbbuff_shm_noオペランドの省略値については，マニュアル「HiRDB システム定義」で確認してください。

2.73　pdls【-d org】（オンライン再編成の追い付き反映の経過情報）

2.73.1　pdls【-d org】の形式と規則

(1)　機能

更新可能なオンライン再編成を実行している場合，追い付き反映処理の経過情報を表示します。

pdls -d orgコマンドは，HiRDB Staticizer Optionを組み込んでいる場合に実行できます。

(2)　形式

　pdls -d org 〔-s サーバ名〕 〔-a〕

             〔｛-x ホスト名〔，ホスト名〕…｜-u ユニット識別子〔，ユニット識別子〕…｝〕

(3)　オプション

(a)　-s サーバ名　〜＜識別子＞((1〜8))

特定のサーバの追い付き反映処理の経過情報を表示したい場合，そのサーバのサーバ名を指定します。

(b)　-a

追い付き反映処理で使用する，システムログ反映ポイントの情報をすべて表示する場合に指定します。

(c)　-x ホスト名〔，ホスト名〕…

特定のホストについて情報を表示したい場合，そのホスト名を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-xオプションの指定は無視されます。また，複数のホスト名を指定する場合，コンマの前後には空白を含めないでください。

(d)　-u ユニット識別子〔，ユニット識別子〕…

特定のユニットについて情報を表示したい場合，そのユニット識別子を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-uオプションの指定は無視されます。また，複数のユニット識別子を指定する場合，コンマの前後には空白を含めないでください。

(4)　注意事項

pdls -d orgコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

追い付き反映処理の実行状況がNONEの場合，-aオプションを指定しても，システムログ反映開始ポイントの情報，システムログ反映済みポイントの情報，及びシステムログ反映終端ポイントの情報は表示されません。

更新可能なオンライン再編成と，更新トランザクションを並行して実行している場合，追い付き反映処理で入力する更新ログレコードの残数は，更新トランザクションが出力する新しい更新ログによって増加することがあります。

追い付き反映処理の実行状況がREADY又はREFLECの場合，システムログ反映終端ポイントは，時間経過によって変化することがあります。

pdorendコマンドでオンライン再編成の追い付き反映が実行されていない場合，システムログ反映済みポイントのシステムログファイルのファイルグループ名には何も表示されません。また，ランID，サーバごとのランID，世代番号，システムログブロック番号，及びシステムログレコード番号には0が表示されます。

系切り替え機能を使用している場合，系切り替え処理中にpdls -d orgコマンドを実行すると，コマンドが異常終了したり，正しい結果が得られない場合があります。

(5)　出力形式

(a)　バックエンドサーバがないユニットに対してpdls -d orgコマンドを実行した場合

 UNITID: aaaa(bbccdd)
 No target server of Online DB Reorganization

(b)　-aオプションを省略した場合

 UNITID: aaaa(bbccdd)
 SERVER  STATUS  REMAIN_LOG_RECORD_COUNT
 ee...e  ff...f  gg...g

(c)　-aオプションを指定した場合

 UNITID: aaaa(bbccdd)
 SERVER  STATUS  REMAIN_LOG_RECORD_COUNT
 ee...e  ff...f  gg...g
   LOG_POINT_KIND LOGGROUP RUNID  SVRRUNID GEN_NO BLOCK_NO RECORD_NO
   START_POINT    hh...h   ii...i jj...j   kk...k ll...l   mm...m   .......1
   REFLEC_POINT   hh...h   ii...i jj...j   kk...k ll...l   mm...m   .......2
   END_POINT      hh...h   ii...i jj...j   kk...k ll...l   mm...m   .......3

［説明］

1はシステムログ反映開始ポイントの情報，2はシステムログ反映済みポイントの情報，3はシステムログ反映終端ポイントの情報です。

aaaa ：

ユニット識別子（4文字）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

ee...e：

サーバ名（8文字以内）

ff...f：

現在の追い付き反映処理の実行状況（6文字以内）

READY：追い付き反映処理の開始待ち

REFLEC：追い付き反映処理の実行中

SYNC：ペアボリューム間の同期合わせ中

NONE：更新可能なオンライン再編成を実行していない

gg...g：

追い付き反映処理で入力する更新ログレコードの残数（10進数20けた以内）。ff...fがNONEの場合，----が表示されます。

hh...h：

システムログファイルのファイルグループ名（8文字以内）

ii...i：

ランID（8文字）

jj...j：

サーバごとのランID（8文字）

kk...k：

世代番号（16進数8文字以内）

ll...l：

システムログのブロック番号（16進数8文字以内）

mm...m：

システムログのレコード番号（16進数16文字以内）

2.74　pdls【-d prc】（サーバのプロセスの状態表示）

2.74.1　pdls【-d prc】の形式と規則

(1)　機能

サーバのプロセスの状態を表示します。

(2)　形式

　pdls -d prc 〔｛-a｜-s サーバ名｝〕 〔-c〕 〔-C 〔-H〕〕

             〔｛-x ホスト名〔，ホスト名〕…｜-u ユニット識別子〔，ユニット識別子〕…｝〕

(3)　オプション

(a)　｛-a｜-s サーバ名｝

プロセスの状態を表示する場合に，HiRDBシステムのすべてのサーバ（HiRDBが使用する内部的なサーバも含まれます）の情報を表示するか，指定したサーバの情報を表示するかを指定します。省略した場合，すべてのサーバ（HiRDBが使用する内部的なサーバは含まれません）の情報が表示されます。

-a

HiRDBシステムのすべてのサーバ（HiRDBが使用する内部的なサーバも含まれます）の，プロセスの状態を表示します。

-s サーバ名　〜＜識別子＞((1〜8))

プロセスの状態を表示するサーバの名称を指定します。

(b)　-c

プロセスの動作状態（プロセスの停止予定の有無）を表示する場合に指定します。

このオプションは，pdpfreshコマンドでプロセスのリフレッシュを開始した後，プロセスの停止状況を確認するために使用します。

(c)　-C

サーバプロセスの状態を，DAT形式で出力する場合に指定します。

(d)　-H

-Cオプションを指定した場合に，タイトル行を付けて出力するときに指定します。

(e)　-x ホスト名〔，ホスト名〕…

特定のホストについて情報を表示したい場合，そのホスト名を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-xオプションの指定は無視されます。また，複数のホスト名を指定する場合，コンマの前後には空白を含めないでください。

(f)　-u ユニット識別子〔，ユニット識別子〕…

特定のユニットについて情報を表示したい場合，そのユニット識別子を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-uオプションの指定は無視されます。また，複数のユニット識別子を指定する場合，コンマの前後には空白を含めないでください。

(4)　注意事項

pdls -d prcコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

(5)　出力形式

(a)　-Cオプションを省略した場合

 HOSTNAME : aa...a(bbccdd)
 STATUS PID    UID    GID    SVID   TIME   PROGRAM C-PID          C-GRP
 e      ff...f gg...g hh...h ii...i jjkkll mm...m  nn...n(oo...o) pp
 :         :      :       :      :       :       :

［説明］

STATUS「サーバの稼働状態」からC-GRP「サーバのプロセスと接続しているクライアントのクライアントグループ名称」までの各項目は，1文字以上の半角空白を空けて表示します。

aa...a ：

ホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

e：

サーバの稼働状態

D ：サーバの開始処理中又は終了処理中

L ：サーバ稼働中

C：プロセス停止処理中，又は停止予定あり（-cオプション指定時に表示）

ff...f ：

プロセスID（AIX版は10進数10けた以内で右詰め表示，AIX版以外は99999以下の場合，10進数5けた以内で右詰め表示，100000以上の場合は，10進数10けた以内で左詰め表示）

AIX版以外で100000以上の場合，UID（ユーザID）以降の項目の表示位置は右にシフトします。

gg...g ：

ユーザID（99999以下の場合，10進数5けた以内で右詰め表示，100000以上の場合は，10進数10けた以内で左詰め表示）

100000以上の場合，GID（グループID）以降の項目の表示位置は右にシフトします。

hh...h ：

グループID（99999以下の場合，10進数5けた以内で右詰め表示，100000以上の場合は，10進数10けた以内で左詰め表示）

100000以上の場合，SVID（サーバ名）以降の項目の表示位置は右にシフトします。

ii...i ：

サーバ名（8文字以内）

jjkkll：

サービス要求受け付け時刻（時分秒）

UAPと接続していないサーバの場合は999999を表示

mm...m ：

UAPの識別情報（30文字以内）

プロセスがユーザサーバの場合は，次に示す値が表示されます。接続していないプロセスの場合は何も表示されません（DAT形式出力時は空要素が表示されます）。また，DAT形式の場合，PDCLTAPNAMEの末尾に半角空白を指定していると，末尾の半角空白は削除された状態で表示されます。

クライアント環境定義PDCLTAPNAMEの指定がある

PDCLTAPNAMEに指定した値を表示

クライアント環境定義PDCLTAPNAMEの指定がない

「Unknown」を表示

また，次のどちらかのプロセスでは，「********」と表示します。

起動・停止途中のプロセス

システムサーバプロセス

nn...n：

サーバのプロセスと接続していたクライアント（UAP又はユティリティ）のプロセスID（10進数10けた以内で左詰め表示）。

クライアントと接続していないサーバプロセスの場合，プロセスIDは表示されません（DAT形式出力時は空要素が表示されます）。

なお，次に示す場合，プロセスIDに0が表示されます。

UAPとリンケージしているクライアントライブラリのバージョンが04-00より前の場合

Type4 JDBCドライバから接続している場合

oo...o：

サーバのプロセスと接続していたクライアント（UAP又はユティリティ）のIPアドレス（15文字以内）。

クライアントと接続していないサーバプロセスの場合，IPアドレスは両端の()を含めて表示されません（DAT形式出力時は空要素が表示されます）。

pp：

サーバのプロセスと接続しているクライアントのクライアントグループ名称（2文字以内）。

クライアントと接続していないサーバプロセスの場合，クライアントグループ名称は表示されません（DAT形式出力時は空要素が表示されます）。

1文字の場合はユーザが任意に設定したクライアントグループ名称を，2文字の場合はHiRDBのクライアント種別ごとのクライアントグループ名称を示します。HiRDBのクライアント種別ごとのクライアントグループ名称を次に示します。

クライアントグループ名称

クライアント種別

XA

X/Open XAインタフェース

PC

PCクライアント

WS

WSクライアント

注

サーバプロセス起動直後には，UAPの識別情報に********が表示されたり，サーバ名に情報が表示されない（DAT形式出力時には空要素を表示する）場合があります。HiRDBのコマンドプロセスの状態を表示する場合，ユーザID及びグループIDには0が表示されます。

＜出力例＞

AIX版以外でプロセスIDが100000以上の表示を含む場合

HOSTNAME : HOST0001(151654)
STATUS  PID   UID   GID    SVID       TIME  PROGRAM C-PID          C-GRP
  L    38095  1108   700   SERVER01 151643  uap0001 7040(10.1.0.1) WS
… プロセスIDが99999以下
  L    108221  1108   700   SERVER01 999999
… プロセスIDが100000以上
  L     8101  1108   700   SERVER01 999999
… プロセスIDが99999以下

(b)　-C -Hオプションを指定した場合

"EDIT-TIME","HOSTNAME","STATUS","PID","UID","GID","SVID","TIME","PROGRAM","C-PID","C-ADDR","C-GRP"
"qq...q","aa...a","e",ff...f,gg...g,hh...h,"ii...i","jjkkll","mm...m",nn...n,"oo...o","pp"

［説明］

aa...a〜ppについては，-Cオプションを省略した場合の説明を参照してください。

DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

1行には，1サーバのプロセス情報を表示します。

qq...q：

pdlsコマンドを実行した時刻をYYYY/MM/DD hh:mm:ssの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

2.75　pdls【-d ris】（ログ適用処理の実行状況の表示）

2.75.1　pdls【-d ris】の形式と規則

(1)　機能

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，ログ適用サイトでのログ適用処理の実行状況を表示します。

(2)　形式

　pdls -d ris 〔｛-u ユニット識別子｜-s サーバ名｝〕 〔-a〕

(3)　オプション

(a)　-u ユニット識別子

　　　〜＜識別子＞((4文字))

指定したユニット（ユニット内のすべてのサーバマシン）のログ適用処理の実行状況を表示する場合に指定します。

(b)　-s サーバ名

　　　〜＜識別子＞((8文字以内))

指定したサーバマシンのログ適用処理の実行状況を表示する場合に指定します。

(c)　-a

ログ適用処理に使用するすべての情報を出力する場合に指定します。

(4)　注意事項

pdls -d risコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

pdls -d risコマンドは，ログ適用サイトで実行できます。業務サイトで実行した場合，KFPS04684-Eメッセージが出力されます。

pdls -d risコマンドは，HiRDBが稼働中のときに実行できます。

pdls -d risコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

-uオプション及び-sオプションを省略した場合は，システム内のすてべのサーバマシンで実行しているログ適用処理の実行状況を表示します。

pdls -d risコマンドの実行結果は，最新の状況と異なる場合があります。

次に示す情報は，システムログファイルの終端までログを読み終えて次世代のシステムログファイルを読み込み始めるとき，又は最新のログまで読み終えて新たなログが書き込まれるのを待っているときに更新されます。

ログ適用終端のポイント情報

未適用ログが含まれているシステムログのファイルグループの残り数

(5)　出力形式

(a)　すべてのオプションを省略した場合

UNITID: aaaa(bbccdd)
SERVER   STATUS       REMAIN_LOG_FILEGROUP_COUNT      ........................1
ee...e   ff...f       gg...g      ............................................1
   :        :            :
UNITID: aaaa(bbccdd)
SERVER   STATUS       REMAIN_LOG_FILEGROUP_COUNT      ........................1
ee...e   ff...f       gg...g      ............................................1
   ：       :            :

(b)　-uオプションだけ指定した場合

UNITID: aaaa(bbccdd)
SERVER   STATUS       REMAIN_LOG_FILEGROUP_COUNT      ........................1
ee...e   ff...f       gg...g      ............................................1
   ：       :            :

(c)　-sオプションだけ指定した場合

UNITID: aaaa(bbccdd)
SERVER   STATUS       REMAIN_LOG_FILEGROUP_COUNT      ........................1
ee...e   ff...f       gg...g      ............................................1

(d)　-a及び-uオプションを指定した場合

UNITID: aaaa(bbccdd)
SERVER   STATUS     REMAIN_LOG_FILEGROUP_COUNT      ..........................1
ee...e   ff...f     gg...g      ..............................................1
  SYSTEM LOG APPLY INFORMATION      ..........................................1
  LOG_POINT LOGGROUP RUNID    SVRRUNID GEN_NO   BLOCK_NO      ................1
  CURRENT   hh...h   ii...i   jj...j   kk...k   mm...m      ..................1
  END       oo...o   pp...p   qq...q   rr...r   ss...s      ..................1
  RDAREA HOLD INFORMATION      ...............................................2
  RDAREANAME                       RDAREAID    STATUS            TYPE      ...3
  uu...u                           vv...v      ww...w            xxxx      ...3
    :                                 :           :                :
  RDAREA(HOLD) NOT FOUND      ................................................4
                  :
SERVER   STATUS     REMAIN_LOG_FILEGROUP_COUNT      ..........................1
ee...e   ff...f     gg...g      ..............................................1
  SYSTEM LOG APPLY INFORMATION      ..........................................1
  LOG_POINT LOGGROUP RUNID    SVRRUNID GEN_NO   BLOCK_NO      ................1
  CURRENT   hh...h   ii...i   jj...j   kk...k   mm...m      ..................1
  END       oo...o   pp...p   qq...q   rr...r   ss...s      ..................1
  RDAREA HOLD INFORMATION      ...............................................2
  RDAREANAME                       RDAREAID    STATUS            TYPE      ...3
  uu...u                           vv...v      ww...w            xxxx      ...3
    :                                 :           :                :
  RDAREA(HOLD) NOT FOUND      ................................................4

(e)　-a及び-sオプションを指定した場合

UNITID: aaaa(bbccdd)
SERVER   STATUS     REMAIN_LOG_FILEGROUP_COUNT      ..........................1
ee...e   ff...f     gg...g      ..............................................1
  SYSTEM LOG APPLY INFORMATION      ..........................................1
  LOG_POINT LOGGROUP RUNID    SVRRUNID GEN_NO   BLOCK_NO      ................1
  CURRENT   hh...h   ii...i   jj...j   kk...k   mm...m      ..................1
  END       oo...o   pp...p   qq...q   rr...r   ss...s      ..................1
  RDAREA HOLD INFORMATION      ...............................................2
  RDAREANAME                       RDAREAID    STATUS            TYPE      ...3
  uu...u                           vv...v      ww...w            xxxx      ...3
    :                                 :           :                :
  RDAREA(HOLD) NOT FOUND      ................................................4

(f)　-aオプションだけ指定した場合

UNITID: aaaa(bbccdd)
SERVER   STATUS     REMAIN_LOG_FILEGROUP_COUNT      ..........................1
ee...e   ff...f     gg...g      ..............................................1
  SYSTEM LOG APPLY INFORMATION      ..........................................1
  LOG_POINT LOGGROUP RUNID    SVRRUNID GEN_NO   BLOCK_NO      ................1
  CURRENT   hh...h   ii...i   jj...j   kk...k   mm...m      ..................1
  END       oo...o   pp...p   qq...q   rr...r   ss...s      ..................1
  RDAREA HOLD INFORMATION      ...............................................2
  RDAREANAME                       RDAREAID    STATUS            TYPE      ...3
  uu...u                           vv...v      ww...w            xxxx      ...3
    :                                 :           :                :
  RDAREA(HOLD) NOT FOUND      ................................................4
                  :
SERVER   STATUS     REMAIN_LOG_FILEGROUP_COUNT      ..........................1
ee...e   ff...f     gg...g      ..............................................1
  SYSTEM LOG APPLY INFORMATION      ..........................................1
  LOG_POINT LOGGROUP RUNID    SVRRUNID GEN_NO   BLOCK_NO      ................1
  CURRENT   hh...h   ii...i   jj...j   kk...k   mm...m      ..................1
  END       oo...o   pp...p   qq...q   rr...r   ss...s      ..................1
  RDAREA HOLD INFORMATION      ...............................................2
  RDAREANAME                       RDAREAID    STATUS            TYPE      ...3
  uu...u                           vv...v      ww...w            XXXX      ...3
    :                                 :           :                :
  RDAREA(HOLD) NOT FOUND      ................................................4
                  :
UNITID: aaaa(bbccdd)
SERVER   STATUS     REMAIN_LOG_FILEGROUP_COUNT      ..........................1
ee...e   ff...f     gg...g      ..............................................1
  SYSTEM LOG APPLY INFORMATION      ..........................................1
  LOG_POINT LOGGROUP RUNID    SVRRUNID GEN_NO   BLOCK_NO      ................1
  CURRENT   hh...h   ii...i   jj...j   kk...k   mm...m      ..................1
  END       oo...o   pp...p   qq...q   rr...r   ss...s      ..................1
  RDAREA HOLD INFORMATION      ...............................................2
  RDAREANAME                       RDAREAID    STATUS            TYPE      ...3
  uu...u                           vv...v      ww...w            xxxx      ...3
    :                                 :           :                :
  RDAREA(HOLD) NOT FOUND      ................................................4
                  :
SERVER   STATUS     REMAIN_LOG_FILEGROUP_COUNT      ..........................1
ee...e   ff...f     gg...g      ..............................................1
  SYSTEM LOG APPLY INFORMATION      ..........................................1
  LOG_POINT LOGGROUP RUNID    SVRRUNID GEN_NO   BLOCK_NO      ................1
  CURRENT   hh...h   ii...i   jj...j   kk...k   mm...m      ..................1
  END       oo...o   pp...p   qq...q   rr...r   ss...s      ..................1
  RDAREA HOLD INFORMATION      ...............................................2
  RDAREANAME                       RDAREAID    STATUS            TYPE      ...3
  uu...u                           vv...v      ww...w            xxxx      ...3
    :                                 :           :                :
  RDAREA(HOLD) NOT FOUND      ................................................4

［説明］

対象サーバがない場合，1〜3の行は表示されません。

対象サーバがフロントエンドサーバの場合，2及び3の行は表示されません。

ログ適用処理を開始する前の場合，又は対象サーバマシンに閉塞状態のRDエリアがない場合は，3は表示されないで，4が表示されます。

aaaa：

ユニット識別子（4文字）

bbccdd：

pdls -d risコマンドを入力した時刻（時分秒）

ee...e：

サーバ名（8文字以内）

ff...f：

現在のログ適用処理の実行状況（10文字以内）

SYNC：ログ適用処理の実行中

TAKEOVER：データベース引き継ぎ中

IDLE：ログ出力待ち合わせ中，又はログ適用処理の開始前

gg...g：

未適用ログが含まれているシステムログのファイルグループの残り数（10進数3けた以内）

ログ適用処理の実行状況がIDLEの場合は0が表示されます。

SYSTEM LOG APPLY INFORMATION：

ログ適用情報

CURRENT：

ログ適用中のポイント情報

ff...fがSYNC又はTAKEOVERの場合は，ログ適用をしているシステムログの情報を表示します。ff...fがIDLEの場合は，データベースに反映済みの最新のシステムログの情報を表示します。

hh...h：

システムログファイルのファイルグループ名（8文字以内）

ログ適用開始前の場合は，「********」が表示されます。

ii...i：

ランID（8文字以内）

ログ適用開始前の場合は，「********」が表示されます。

jj...j：

サーバマシンごとのランID（8文字以内）

ログ適用開始前の場合は，「********」が表示されます。

kk...k：

世代番号（16進数8文字以内）

ログ適用開始前の場合は，「********」が表示されます。

mm...m：

システムログブロック番号（16進数8文字以内）

ログ適用開始前の場合は，「********」が表示されます。

END：

ログ適用終端のポイント情報

oo...o：

システムログファイルのファイルグループ名（8文字以内）

ログ適用開始前の場合は，「********」が表示されます。

pp...p：

ランID（8文字以内）

ログ適用開始前の場合は，「********」が表示されます。

qq...q：

サーバごとのランID（8文字以内）

ログ適用開始前の場合は，「********」が表示されます。

rr...r：

世代番号（16進数8文字以内）

ログ適用開始前の場合は，「********」が表示されます。

ss...s：

システムログブロック番号（16進数8文字以内）

ログ適用開始前の場合は，「********」が表示されます。

RDAREA HOLD INFORMATION：

RDエリアの閉塞情報

ログ運用を停止したRDエリアの閉塞情報を表示します。

uu...u：

RDエリア名（識別子31文字以内）

vv...v：

RDエリアID（10進数11文字以内）

ww...w：

RDエリアの状態（18文字以内）

RDエリアの状態については，「pddbls（RDエリアの状態表示）」の「出力形式」にある，「cc...c」の説明を参照してください。RDエリアの状態を取得できない場合は,「******************」が表示されます。

XXXX：

RDエリアの種別（4文字）

RDエリアの種別については，「pddbls（RDエリアの状態表示）」の「出力形式」にある，「eeee」の説明を参照してください。RDエリアの種別を取得できない場合は,「****」が表示されます。

2.76　pdls【-d rpc】（サーバの通信制御情報の表示）

2.76.1　pdls【-d rpc】の形式と規則

(1)　機能

コネクションが確立しているサーバの通信制御情報を表示します。このコマンドは，UAPの動作中に無応答状態になった場合に，処理の制御がHiRDB側にあるのか，クライアント側にあるのかを知りたい場合に有効です。

(2)　形式

　pdls -d rpc 〔-a〕

(3)　オプション

(a)　-a

HiRDBシステム内のすべてのプロセスの通信制御情報を表示します。より詳細な通信制御情報を知りたい場合に有効です。

(4)　注意事項

pdls -d rpcコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

-aオプションを指定した場合，サーバ種別がF及びSでクライアントが接続しているときに，次の情報が表示されます。

クライアントOS種別

クライアントグループ名称

XAインタフェース使用有無

-aオプションを指定した場合，クライアント種別がCでクライアントが接続しているときに，次の情報が表示されます。

クライアントのプロセスID

クライアントのIPアドレス

クライアントのUAP識別情報

(5)　出力形式

(a)　オプションを省略した場合の表示（UAPが接続されている場合）

 [aaaa]
   Client Information :
     PID      ADDR      NAME     OS   GROUP   XA
     bb...b   cc...c    dd...d   e    ff      g
   Server Information :
     PID     SVID    STATUS  SYS_EVENT USR_EVENT  CRITICAL(MASK)  SERVICE  SYS_CALL
     hh...h  ii...i  jj...j  0xkk...k  0xll...l   m(0xnn...n)     oo...o   0xtt...t
        :       :        :         :        :           :            :         :
 [aaaa]
   Client Information :
   :

(b)　オプションを省略した場合の表示（ユティリティが接続されている場合）

 [aaaa]
   Server Information :
     PID     SVID     STATUS   SYS_EVENT USR_EVENT    CLITICAL(MASK) SERVICE  SYS_CALL
     hh...h  ii...i   jj...j   0xkk...k  0xll...l     m(0xnn...n)    oo...o   0xtt...t
        :       :        :         :        :              :            :         :
 [aaaa]
   Server Information :
   :

(c)　-aオプションを指定した場合の表示

 HOSTNAME : ss...s
 PID     SVID    STATUS   SYS_EVENT USR_EVENT CLITICAL(MASK) SERVICE OS GROUP XA  ..1
 hh...h  ii...i  jj...j   0xkk...k  0xll...l  m(0xnn...n)    oo...o  e  ff    g  ...2
 CLTKIND SVRKIND CLTPID CLTADDR CLTNAME ACTID    SYS_CALL  .........................3
 p       q       bb...b cc...c  dd...d  0xrr...r 0xtt...t  .........................4
 :        :        :       :       :         :       :

［説明］

1〜4は，各々1行で表示されます。2及び4は，プロセスの数だけ繰り返し表示します。

aaaa ：

項番

bb...b：

サーバのプロセスと接続しているクライアントのプロセスID（10進数10けた以内）

なお，次に示す場合，プロセスIDは表示されません。

クライアントと接続していないサーバプロセスの場合

UAPとリンケージしているクライアントライブラリのバージョンが04-00より前の場合

Type4 JDBCドライバから接続している場合

cc...c：

サーバのプロセスと接続しているクライアントのIPアドレス（15文字以内）

なお，UAPとリンケージしているクライアントライブラリのバージョンが04-00より前の場合は，IPアドレスは表示されません。

dd...d：

サーバのプロセスと接続しているクライアントのUAP識別情報（30文字以内）

クライアント環境変数のPDCLTAPNAMEに指定したUAPの識別情報を表示します。PDCLTAPNAMEが指定されていない場合，"Unknown"を表示します。

なお，UAPとリンケージしているクライアントライブラリのバージョンが04-00より前の場合は，UAP識別情報は表示されません。

e：

クライアントOS種別

W：WS系クライアント

P：PC系クライアント

なお，UAPとリンケージしているクライアントライブラリのバージョンが04-00より前の場合は，クライアントOS種別は表示されません。

ff：

サーバのプロセスと接続しているクライアントのクライアントグループ名称（2文字以内）

1文字の場合はユーザが任意に設定したクライアントグループ名称を，2文字の場合はHiRDBのクライアント種別ごとのクライアントグループ名称を示します。

なお，次の場合はクライアントグループ名称が表示されません。

UAPとリンケージしているクライアントライブラリのバージョンが04-00より前の場合

クライアントグループ名称の接続枠保証機能を使用した場合に，自由利用枠で接続したとき

クライアントグループ名称の接続枠保証機能を使用していない場合

HiRDBのクライアント種別ごとのクライアントグループ名称を次に示します。

クライアントグループ名称

クライアント種別

XA

X/Open XAインタフェース

PC

PCクライアント

WS

WSクライアント

g：

X/Open XAインタフェース使用有無

Y：使用しています

N：使用していません

なお，UAPとリンケージしているクライアントライブラリのバージョンが04-00より前の場合は，X/Open XAインタフェース使用有無は表示されません。

hh...h：

サーバのプロセスID（10進数10けた以内）

ii...i：

サーバ名（8文字以内）

jj...j：

プロセス状態表示（12文字以内）

ACTIVE：処理動作中

SUSPEND（QUE）：処理中断中（サービス要求待ち状態：キュー待ち）

SUSPEND（CLT）：処理中断中（次サービス要求待ち状態）

SUSPEND（SVR）：処理中断中（そのほかの受信待ち状態）

kk...k：

プロセス状態詳細表示（26文字）

システム内部コードを表示します。

ll...l：

プロセス状態詳細表示（8文字）

システム内部コードを表示します。

m：

クリティカル状態表示

Y：クリティカル中です。

N：クリティカル中ではありません。

nn...n：

クリティカル情報（16進数8けた）

oo...o：

サービス名称表示（32文字以内）

システム内部情報を表示します。

p：

クライアント種別

C：クライアント

U：ユティリティ

空白：上記以外

q：

サーバ種別（ただし，-aオプション指定時は，クライアント種別がCのときだけ表示します）

F：フロントエンドサーバ（FES）

B：バックエンドサーバ（BES）

D：ディクショナリサーバ（DIC）

S：シングルサーバ（SDS）

rr...r：

アクティビティID（18文字）

ただし，アクティビティIDを保持していないプロセスの場合は表示しません。

ss...s：

ホスト名（32文字以内）

tt...t：

システムが使用する内部情報（8文字）

(6)　情報確認例

SQLが応答されない場合

STATUSがACTIVEとなっていれば，そのサーバは処理中です。

現在の制御がクライアントにあるのかサーバにあるのかを調べる場合

フロントエンドサーバ(シングルサーバ)のSTATUSに表示されている情報で判断できます。フロントエンドサーバ(シングルサーバ)のSTATUSがSUSPEND(CLT)であれば，制御がクライアントにあります。

2.77　pdls【-d rpl】（HiRDB Datareplicator連携の状態表示）

2.77.1　pdls【-d rpl】の形式と規則

(1)　機能

HiRDB Datareplicator連携の状態を表示します。また，システムログファイルでの抽出側HiRDB Datareplicatorのシステムログの抽出状況を表示します。

(2)　形式

　pdls -d rpl 〔-j〕 〔-u ユニット識別子〕 〔-s サーバ名〕

(3)　オプション

(a)　-j

システムログファイルでの抽出側HiRDB Datareplicatorのシステムログの抽出状況を表示する場合に指定します。このオプションを指定した場合，次の情報を表示します。

HiRDB Datareplicator連携機能を使用しているかどうか

抽出側HiRDB Datareplicatorのシステムログファイルからのシステムログの抽出状況

システムが使用する内部情報

省略した場合，HiRDB Datareplicator連携機能を使用しているかどうかだけ表示されます。システムログの抽出状況及び内部情報は表示されません。

(b)　-u ユニット識別子　〜＜識別子＞((4文字))

特定のユニットの，抽出側HiRDB Datareplicatorのシステムログの抽出状況を表示する場合に，そのユニット識別子を指定します。

省略した場合，システム内のすべてのユニットが表示対象となります。-jオプションを省略して，このオプションを指定した場合，システム及び指定したユニットがHiRDB Datareplicator連携機能を使用しているかどうかだけが表示されます。

(c)　-s サーバ名　〜＜識別子＞((1〜8))

特定のサーバの，抽出側HiRDB Datareplicatorのシステムログの抽出状況を表示する場合に，そのサーバ名を指定します。

省略した場合，システム内のすべてのサーバが表示対象となります。-jオプションを省略して，このオプションを指定した場合，システム及び指定したサーバがあるユニットがHiRDB Datareplicator連携機能を使用しているかどうかだけが表示されます。

(4)　注意事項

pdls -d rplコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

-d rplを指定したpdlsコマンドで，-jオプションを指定して，-u及び-sオプションを省略した場合，システム内のすべてのユニットの，すべてのサーバについてHiRDB Datareplicator連携の状態を表示します。

-d rplを指定したpdlsコマンドは，サーバが停止している状態でも実行できます。しかし，システム定義のpd_rpl_hdepathに抽出側HiRDB Datareplicator運用ディレクトリ名が指定されていない場合，又はデータ連動用連絡ファイルがない場合には，エラーとなります。

(5)　出力形式

(a)　-jオプションを省略した場合

 SYSTEMID         :aaaa(bbccdd)   ※1
 Data Replication :e              ※1
 UNITID           :ffff(bbccdd)   ※2
 Data Replication :e              ※2

注※1

HiRDB/パラレルサーバの場合で，かつ-uオプションを指定した場合，指定したユニットがシステムマネジャのサーバマシンのときだけ出力されます。

注※2

HiRDB/パラレルサーバの場合，システム内のユニットの数だけ出力されます。また，-uオプションを指定した場合，指定したユニットについてだけ出力されます。

［説明］

aaaa ：

HiRDB識別子（4文字）

bbccdd：

pdlsコマンドを入力した時刻（時分秒）

e ：

HiRDB Datareplicator連携に関する情報（1文字）

この情報は，HiRDBシステム及びユニットとしてHiRDB Datareplicator連携機能を使用しているかどうかを表示します。そのため，システム内及びユニット内のバックエンドサーバすべてに連動の対象となるデータベースがない場合でも，HiRDB Datareplicator連携機能を使用していれば，「Y（HiRDB Datareplicator連携機能を使用しています）」が表示されます。

Y ：

HiRDB Datareplicator連携機能を使用しています。

N ：

HiRDB Datareplicator連携機能を使用していません。

＊ ：

システムマネジャが停止中のため，システムの連携状態を表示できません。

それぞれのユニットの状態を確認して，HiRDB Datareplicator連携機能を使用していないユニットが一つでもあれば，システムとしてはHiRDB Datareplicator連携機能を使用していないことになります。

- ：

このユニットには，HiRDB Datareplicator連携の対象となるサーバがありません。連携の対象となるサーバは，HiRDB/パラレルサーバの場合はバックエンドサーバ，HiRDB/シングルサーバの場合はシングルサーバです。

ffff ：

ユニット識別子（4文字）

(b)　-jオプションを指定した場合

 SYSTEMID         :aaaa(bbccdd)          ※1
 Data Replication :e                     ※1
 UNITID           :ffff(bbccdd)          ※2
 Data Replication :e                     ※2
 SERVER NAME      :gg...g                ※2※3
 Extract Database :h                     ※2※3
 Extract Status   :I                     ※2※3
 System Log Extract Point  :             ※2※3※4
 Run ID   Group    Gen No.   Block No.   ※2※3※4
 jj...j   kk...k   ll...l    mm...m      ※2※3※4
 System Log Sync info      :             ※2※3※4
 Run ID   Group    Gen No.   Block No.   ※2※3※4
 nn...n   oo...o   pp...p    qq...q      ※2※3※4

注※1

HiRDB/パラレルサーバの場合で，かつ-uオプションを指定した場合，指定したユニットがシステムマネジャのサーバマシンのときだけ出力されます。

注※2

HiRDB/パラレルサーバの場合は，システム内のユニットの数だけ出力されます。

注※3

HiRDB/パラレルサーバの場合は，ユニット内のサーバの数だけ出力されます。-sオプションを指定した場合は，指定したサーバについてだけ出力されます。また，システム定義のpd_rpl_hdepathオペランドを指定していない場合，又は連動連絡ファイルが不正な状態（ファイルがないなど）の場合，出力されません。

注※4

指定したHiRDBサーバに抽出の対象となるデータベースがある場合だけ表示されます。また，-uオプションを指定した場合，指定したユニットについてだけ出力されます。

［説明］

aaaa ：

HiRDB識別子（4文字）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

e ：

HiRDB Datareplicator連携に関する情報（1文字）

この情報は，HiRDBシステム及びユニットとしてHiRDB Datareplicator連携機能を使用しているかどうかを表示します。そのため，システム内及びユニット内のバックエンドサーバすべてに連動の対象となるデータベースがない場合でも，HiRDB Datareplicator連携機能を使用していれば，「Y（HiRDB Datareplicator連携機能を使用しています）」が表示されます。

Y ：

HiRDB Datareplicator連携機能を使用しています。

N ：

HiRDB Datareplicator連携機能を使用していません。

＊ ：

システムマネジャが停止中のため，システムの連携状態を表示できません。

それぞれのユニットの状態を確認して，HiRDB Datareplicator連携機能を使用していないユニットが一つでもあれば，システムとしてはHiRDB Datareplicator連携機能を使用していないことになります。

- ：

このユニットには，HiRDB Datareplicator連携の対象となるサーバがありません。連携の対象となるサーバは，HiRDB/パラレルサーバの場合はバックエンドサーバ，HiRDB/シングルサーバの場合はシングルサーバです。

ffff ：

ユニット識別子（4文字）

gg...g ：

サーバ名（8文字以内）

h ：

抽出の対象となるデータベースの有無

Y ：

gで表示されたHiRDBサーバに抽出の対象となるデータベースがあります。

N ：

gで表示されたHiRDBサーバに抽出の対象となるデータベースがありません。

i ：

システムが使用する内部情報（1文字）

HiRDB Datareplicator連携機能を使用している場合は，次の情報が表示されます。

・抽出側HiRDB Datareplicatorのシステムログの抽出状況

jj...j ：

ランID（ファイルが使用されたときのログサーバプロセスのランID）（16進数8けた）

kk...k ：

現在抽出中のシステムログファイルのグループ名（8文字以内）

ll...l ：

現在抽出中のシステムログファイルの世代番号（16進数8けた）

mm...m ：

現在抽出中のシステムログブロック番号（16進数8けた）

・抽出側HiRDBのシステムログの内部情報

nn...n ：

システムで使用する内部情報（8文字）

oo...o ：

システムで使用する内部情報（8文字以内）

pp...p ：

システムで使用する内部情報（8文字以内）

qq...q ：

システムで使用する内部情報（8文字以内）

注

j〜qの項目は，データ連動用連絡ファイルを初期化した後に，HiRDB Datareplicator連携を開始していない場合，及びHiRDB Datareplicator連携を実行中にデータ連動用連絡ファイルを初期化した場合には，空白，又は「0」が表示されます。

2.78　pdls【-d scd】（サーバのスケジュールの状態表示）

2.78.1　pdls【-d scd】の形式と規則

(1)　機能

サーバのスケジュールの状態を表示します。

(2)　形式

　pdls -d scd 〔｛-a｜-s サーバ名｝〕

             〔｛-x ホスト名〔，ホスト名〕…｜-u ユニット識別子〔，ユニット識別子〕…｝〕

(3)　オプション

(a)　-a

pdlsコマンドを実行した時点で，起動中のすべてのサーバの，サービスのスケジュール状態を表示します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

スケジュールの状態を表示するサーバの名称を指定します。

(c)　-x ホスト名〔，ホスト名〕…

特定のホストについて情報を表示したい場合，そのホスト名を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-xオプションの指定は無視されます。また，複数のホスト名を指定する場合，コンマの前後には空白を含めないでください。

(d)　-u ユニット識別子〔，ユニット識別子〕…

特定のユニットについて情報を表示したい場合，そのユニット識別子を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-uオプションの指定は無視されます。また，複数のユニット識別子を指定する場合，コンマの前後には空白を含めないでください。

(4)　注意事項

pdls -d scdコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

(5)　出力形式

 HOSTNAME : aa...a(bbccdd)
 total server count ee...e   ....................................................1
 SVID   ST QUECNT MAXCNT USED_POL FREE_POL MAX_UPOL MAX_FPOL LAST_RECV_TIME
 ff...f g  hh...h ii...i jj...j   kk...k   ll...l   mm...m   nnooppqqrrss   .....2
    :   :     :        :       :         :        :        :

［説明］

1は，-sオプション指定の場合だけ表示されます。また，-aオプション指定の場合で，スケジューラの下で動作するサーバが複数あるときは，サーバの数だけ2が繰り返し表示されます。スケジューラとは，要求されたサービスのスケジューリングとプロセスの制御をするものです。

aa...a ：

ホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

ee...e ：

スケジューラの下で動作するサーバの数（10進数6けた）

ff...f ：

サーバ名（8文字以内）

g ：

該当するサーバの稼働状態

S ：サーバ準備中

A ：スケジューリングできる状態

E ：サーバ終了処理中

hh...h ：

現在のサービス要求キューイング数（10進数5けた）

ii...i ：

サービス要求の最大キューイング数（10進数5けた）

jj...j ：

転送データ用バッファの現在の使用サイズ（10進数8けた）

kk...k ：

転送データ用バッファの現在の未使用サイズ（10進数8けた）

ll...l ：

転送データ用バッファの最大使用サイズ（10進数8けた）

mm...m ：

転送データ用バッファの現在の最大連続未使用サイズ（10進数8けた）

nnooppqqrrss ：

最後にメッセージキューからメッセージを取り出した日時（年月日時分秒）

1度もメッセージを取り出していない場合は000000000000が表示されます。

注

g（該当するサーバの稼働状態）がEの場合，hh...hからmm...mには0が表示されることがあります。サーバ以外にユティリティの状態も表示されます。

2.79　pdls【-d stj】（ユニット及びサーバごとの統計情報出力種別の指定有無の表示）

2.79.1　pdls【-d stj】の形式と規則

(1)　機能

次に示す情報を表示します。

ユニット及びサーバごとのpdstbeginコマンド及びシステム共通定義pdstbeginによる統計情報出力種別の指定有無

システム共通定義pd_statisticsによるシステムの稼働に関する統計情報出力の指定有無

(2)　形式

　pdls -d stj 〔-s サーバ名〕

             〔｛-x ホスト名〔，ホスト名〕…｜-u ユニット識別子〔，ユニット識別子〕…｝〕

(3)　オプション

(a)　-s サーバ名　〜＜識別子＞((1〜8))

統計情報出力種別の指定有無を表示するサーバ名を指定します。省略した場合，すべてのサーバが表示対象になります。

(b)　-x ホスト名〔，ホスト名〕…

特定のホストについて情報を表示したい場合，そのホスト名を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-xオプションの指定は無視されます。また，複数のホスト名を指定する場合，コンマの前後には空白を含めないでください。

(c)　-u ユニット識別子〔，ユニット識別子〕…

特定のユニットについて情報を表示したい場合，そのユニット識別子を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-uオプションの指定は無視されます。また，複数のユニット識別子を指定する場合，コンマの前後には空白を含めないでください。

(4)　注意事項

pdls -d stjコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

統計情報出力中にファイル障害が発生した場合，pdls -d stjコマンドによる統計情報出力指定有無の表示は，統計情報出力が指定されていない表示になります。

HiRDB/シングルサーバの場合，SQLオブジェクト転送に関する統計情報は表示されません。

スレッド間ロック待ち時間を出力する統計情報種別については，「pdstbegin（統計情報の出力開始） (4)オプション」を参照してください。

(5)　出力形式

 HOSTNAME : aa...a(bbccdd)
 UNITID      sys
 eeee         h
 INTERVAL : ff...f     DIO-INTERVAL : uu...u
  SVID       sys uap sql buf fil dfw idx sop dop pcd sqh obj dio
  gg...g      i   j   k   l   m   n   o   p   q   r   s   t   v
    :                             :

［説明］

aa...a ：

ホスト名（32文字以内）

bbccdd ：

pdls -d stjコマンド実行時刻（時分秒）

eeee ：

ユニット識別子（4文字）

ff...f ：

システムの稼働に関する統計情報出力の時間間隔を分単位で表示します。システムの稼働に関する統計情報出力が指定されていない場合には0を表示します（10進数４けた以内）。

gg...g ：

サーバ名（8文字以内）

ユニット内にサーバがない場合には，"********"を表示します。

次に示すh〜t，及びvで，該当する統計情報の出力が指定されている場合には"*"を表示します。指定されていない場合には空白を表示します。ただし，1:1スタンバイレス型系切り替え機能を使用している代替BESユニットの場合は，hに"-"を表示します。スレッド間ロック待ち時間を取得する場合は，iに"w"を表示します。UAPに関する統計情報やグローバルバッファプールに関する統計情報のスレッド間ロック待ち時間も取得するときは，iに"w"を表示すると共に，j及びlに"*"を表示します。

データベースの入出力に関する統計情報を取得する場合は，システム共通定義のpdstbeginオペランド又はpdstbeginコマンドの-Dオプション指定値によって，vに表示する内容が異なります。vに表示する内容を次に示します。

everyio

everyfile

表示内容

×

×

*

×

○

F

○

×

I

○

○

A

（凡例）

○：指定あり

×：指定なし

h ：

ユニット単位のシステムの稼働に関する統計情報

i ：

サーバ単位のシステムの稼働に関する統計情報

j ：

UAPに関する統計情報

k ：

SQLに関する統計情報

l ：

グローバルバッファプールに関する統計情報

m ：

データベース操作に関するHiRDBファイルの統計情報

n ：

デファードライト処理に関する統計情報

o ：

インデクスに関する統計情報

p ：

SQL静的最適化に関する統計情報

q ：

SQL動的最適化に関する統計情報

r ：

SQLオブジェクト実行に関する統計情報

s ：

SQL文の履歴に関する統計情報

t ：

SQLオブジェクト転送に関する統計情報

uu...u ：

データベースの入出力に関する統計情報出力の時間間隔を秒単位で表示します。データベースの入出力に関する統計情報出力が指定されていない場合には0を表示します（10進数４けた以内）。

v ：

データベースの入出力に関する統計情報

2.80　pdls【-d sts】（ステータスファイルの状態表示）

2.80.1　pdls【-d sts】の形式と規則

(1)　機能

ステータスファイルの状態を表示します。

(2)　形式

(a)　HiRDB/シングルサーバの場合

ユニット用ステータスファイル

　pdls -d sts 〔｛-x ホスト名｜-u ユニット識別子｝〕

　　　　　　　〔｛-n 論理ファイル名｜-f 物理ファイル名｜-a｜-l｜-p｝〕

サーバ用ステータスファイル

　pdls -d sts -s サーバ名

　　　　　　　〔｛-n 論理ファイル名｜-f 物理ファイル名｜-a｜-l｜-p｝〕

(b)　HiRDB/パラレルサーバの場合

ユニット用ステータスファイル

　pdls -d sts ｛-x ホスト名｜-u ユニット識別子｝

　　　　　　　〔｛-n 論理ファイル名｜-f 物理ファイル名｜-a｜-l｜-p｝〕

サーバ用ステータスファイル

　pdls -d sts -s サーバ名

　　　　　　　〔｛-n 論理ファイル名｜-f 物理ファイル名｜-a｜-l｜-p｝〕

(3)　オプション

(a)　｛-x ホスト名｜-u ユニット識別子｝

ユニット用ステータスファイルの状態を表示する場合，ユニット用ステータスファイルに対応するホストのホスト名，又はユニットのユニット識別子を指定します。HiRDB/シングルサーバの場合，自ホスト又は自ユニットに固定されているので省略できます。

-x ホスト名　〜＜識別子＞((1〜32))

ユニット用ステータスファイルに対応するホストのホスト名を指定します。

-u ユニット識別子　〜＜識別子＞((4文字))

ユニット用ステータスファイルに対応するユニットのユニット識別子を指定します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

サーバ用ステータスファイルの状態を表示する場合，サーバ用ステータスファイルに対応するサーバの名称を指定します。

(c)　｛-n 論理ファイル名｜-f 物理ファイル名｜-a｜-l｜-p｝

ステータスファイルの状態をどのように表示するかを指定します。省略した場合，ユニット又はサーバが使用中のすべてのステータスファイルの状態が表示されます。

-n 論理ファイル名　〜＜識別子＞((1〜8))

ステータスファイルの状態を論理ファイルごとに表示したい場合，状態を表示する論理ファイルの名称を指定します。

-f 物理ファイル名　〜＜パス名＞((167文字以内))

ステータスファイルの状態を物理ファイルごとに表示したい場合，状態を表示する物理ファイルの名称を，絶対パス名で指定します。物理ファイル名は，HiRDBファイルシステム領域名/HiRDBファイル名で指定してください。

-a

ユニット又はサーバが使用中の，すべてのステータスファイルの状態を短縮形式で表示します。

-l

ユニット又はサーバが使用中の，すべての論理ファイルごとの状態を表示します。

-p

ユニット又はサーバが使用中の，すべての物理ファイルごとの状態を表示します。

(4)　注意事項

pdls -d stsコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

HiRDBが動作中のときに，論理ファイルの状態がCLOSE，NONE，又はBLOCKADEのステータスファイルに対して，pdstsinitコマンド又はpdstsrmコマンドを実行しても，pdlsコマンドで表示されるステータスファイルの状態は変わりません。この場合，pdlsコマンドを実行する前にpdstsopenコマンドを実行すると，現在のステータスファイルの状態が表示されます。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，コマンドを実行したサイトによって表示対象となるステータスファイルが異なります。

業務サイトの場合

正ステータスファイルが表示対象となります。

ログ適用サイト場合

副ステータスファイルが表示対象となります。

(5)　出力形式

 HOSTNAME : aa...a(bbccdd)
  Logical file L_Status Factor Available Manage   ...........2
  ee...e       ff...f   ggg    hh...h    ii...i   ...........2
 Sy  P_status R_length R_count P_name   .....................1,2
  j  kk...k   ll...l   mm...m  nn...n   .....................1,2
  j  kk...k   ll...l   mm...m  nn...n   .....................1,2

［説明］

1は物理ファイルの状態表示部分，2は論理ファイルの状態表示部分です。

aa...a ：

ホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

ee...e ：

論理ファイル名（8文字以内）

ff...f ：

論理ファイルの状態（8文字以内）

ACTIVE：現用ファイル

BLOCKADE：障害閉塞ファイル

CLOSE：予約ファイル

NONE：論理ファイルに対応する物理ファイルがない状態

STANDBY：予備ファイル

ggg ：

ファイル内のレコード使用率（％）

hh...h ：

ファイル内の連続空きレコード数（10進数8けた）

ii...i ：

ファイル内の管理レコード数（10進数8けた）

j ：

物理ファイルがA系かB系かの表示

A ：A系

B ：B系

kk...k ：

物理ファイルの状態を最大11通りの組み合わせで表示します。11文字以内の場合は右詰めで表示します（11文字以内）。

a ：現用ファイル

b ：障害閉塞ファイル

c ：クローズファイル

i ：初期設定状態

l ：論理エラー

n ：論理ファイルに対応する物理ファイルがない状態

o ：オープンファイル

p ：物理エラー

r ：障害によるファイル回復状態

s ：予備ファイル

u ：使用済みファイル

ll...l ：

レコード長（10進数8けた）

mm...m ：

レコード数（10進数8けた）

nn...n ：

物理ファイル名（63文字以内）

2.81　pdls【-d svr】（ユニット及びサーバの状態表示）

2.81.1　pdls【-d svr】の形式と規則

(1)　機能

ユニット及びサーバの状態を表示します。

(2)　形式

　pdls -d svr 〔-a 〔-b〕〕

             〔｛-x ホスト名〔，ホスト名〕…｜-u ユニット識別子〔，ユニット識別子〕…｝〕

(3)　オプション

(a)　-a

ユニット及びサーバの状態をDAT形式で表示する場合に指定します。

(b)　-b

-aオプション指定時に，タイトル行を付けて表示する場合に指定します。

(c)　-x ホスト名〔，ホスト名〕…

特定のホストについて情報を表示したい場合，そのホスト名を指定します。複数のホスト名を指定する場合，コンマの前後には空白を含めないでください。

(d)　-u ユニット識別子〔，ユニット識別子〕…

特定のユニットについて情報を表示したい場合，そのユニット識別子を指定します。複数のユニット識別子を指定する場合，コンマの前後には空白を含めないでください。

(4)　注意事項

pdls -d svrコマンドのリターンコードは，0の場合は正常終了，4の場合は警告終了，8の場合は異常終了となります。8の場合は，その前に出力されているメッセージを参照してエラー要因を取り除いてください。

HiRDB/パラレルサーバの場合，システムマネジャ以外のユニットが異常終了又は強制終了したとき，終了したユニットをシステムマネジャが検知するまでの間は，そのユニットが終了する前の状態を表示することがあります。

影響分散スタンバイレス型系切り替え機能を適用している場合，系切り替えで他ユニットに移動したサーバは，移動先のユニットに属するサーバとして表示します。

-a 〔-b〕オプションは，-d svr省略時も指定できます（指定例：pdls -a -b）。

影響分散スタンバイレス型系切り替え機能を適用している場合，ユニットがサーバの系切り替えを検知するまでの間は，系切り替え実行サーバが系切り替え元と系切り替え先の，両方のユニットで表示されることがあります。

ホスト，及びユニットの状態によっては，ユニット，及びサーバの情報が表示されないことがあります（すべてのホスト，及びユニットが障害状態の場合，-bオプション指定時はタイトル行だけ表示します）。

エラーメッセージが表示された場合でも，リターンコードにエラー値が設定されないことがあります。したがって，pdls -d svr -a 〔-b〕コマンドの実行結果は，エラーメッセージの出力有無と，リターンコードに正常値以外が返されているかどうかの両方を確認する必要があります。

pdstart -rコマンドでHiRDBを開始した状態でpdls -d svrコマンドを実行した場合，リターンコード4で終了します。

HiRDB開始後に，pdstop -sコマンドですべてのフロントエンドサーバを終了した状態でpdls -d svrコマンドを実行した場合，リターンコード0で終了します。

(5)　出力形式

(a)　-aオプション省略時

HOSTNAME(aabbcc) UNITID SVID   STATUS  STARTTIME
dd...d           eeee   ff...f gg...g  hhiijj
   :                :       :      :       :

(b)　-aオプション指定時

"dd...d","eeee","ff...f","gg...g","hhiijj"
   :        :       :        :        :

(c)　-a及び-bオプション指定時

"HOSTNAME","UNITID","SVID","STATUS","STARTTIME"
"dd...d","eeee","ff...f","gg...g","hhiijj"

［説明］

DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

aabbcc：

pdlsコマンドを実行した時刻（時分秒）

dd...d ：

ホスト名（32文字以内）

eeee ：

ユニット識別子（4文字）

ff...f ：

サーバ名（8文字以内）

ユニットの状態を表示している場合は＊＊＊＊＊＊＊＊を表示

gg...g ：

ユニット又はサーバのステータス情報（8文字以内）

ACTIVE：

稼働中

STOP：

停止状態

STOP(N)：

停止状態

HiRDBシステム起動時，又はシステムマネジャユニットの系切り替え時に起動していないユニットについても表示されることがあります。

STOP(F)：

pdstopコマンド（-fオプション指定）で強制停止

STOP(A)：

次のどれかの状態です。

システム稼働中に異常終了を検出した

ユニットbbbbへの通信，又はユニットbbbbからの受信ができない

ユニットbbbbへのクライアント接続ができない

ユニットbbbbでpsコマンドを実行して，HiRDBプロセスが起動中かどうかを確認してください。

HiRDBプロセスが起動中の場合：

通信障害，又はユニットbbbbでサービスのスローダウンが発生していることが考えられます。この場合，KFPS05289-Eメッセージが出力される前に出力されたメッセージから原因を調査して，pdstop -zコマンドでユニットを停止した後，再度起動してください。

HiRDBプロセスが停止中の場合：

異常終了している可能性があります。異常終了時のメッセージに従って対策してください。再度起動する場合は，pdstart -xコマンドを実行してください。

START(I)：

データベース初期設定ユティリティ実行待ちの状態（ディクショナリ未初期化）

SUSPEND：

フロントエンドサーバがデータディクショナリ用RDエリアの回復待ちやディクショナリサーバの起動待ちなどでウェイトしている状態（ウェイトしている原因を取り除いた後，pdstart -aコマンドで起動してください）。

又は，ログ同期方式のリアルタイムSANレプリケーションを使用していて，ログ適用サイトとして稼働中。

STARTING：

開始準備中

STOPPING：

停止準備中

TRNPAUSE：

新規トランザクションのスケジューリング抑止中。

該当するサーバで新規トランザクションのスケジューリングを抑止しています。KFPS01160-Eメッセージが出力されている場合は，システムログの空き容量が不足した原因を取り除いてください。システムログの空き容量が不足した原因の調査方法及び対処方法については，マニュアル「HiRDB システム運用ガイド」の「空き率が警告値未満になったときのHiRDB管理者の処置」を参照してください。

hhiijj：

起動時刻（時分秒）

2.82　pdls【-d trn】（サーバのトランザクションの状態表示）

2.82.1　pdls【-d trn】の形式と規則

(1)　機能

サーバのトランザクションの状態を表示します。

(2)　形式

　pdls -d trn 〔-t トランザクション識別子〕 〔-｛a｜c｝〕 〔-s サーバ名〕 〔-C 〔-H〕〕

             〔｛-x ホスト名〔，ホスト名〕…｜-u ユニット識別子〔，ユニット識別子〕…｝〕

(3)　オプション

(a)　-t トランザクション識別子　〜＜英数字＞((16文字))

指定したトランザクション識別子のトランザクションに関する情報を表示します。省略した場合，すべてのトランザクションに関する情報を表示します。

(b)　-｛a｜c｝

-a：

トランザクションに関するすべての情報を表示します。

-c：

トランザクションブランチ数を表示します。

省略した場合，トランザクションに関するすべての情報（一部表示されない情報があります）が表示されます。

(c)　-s サーバ名　〜＜識別子＞((1〜8))

フロントエンドサーバ名又はバックエンドサーバ名を指定します。

省略した場合，該当するユニットで管理しているすべてのトランザクションに関する情報が表示されます。

フロントエンドサーバのサーバ名を指定した場合，指定したフロントエンドサーバが管理しているすべてのグローバルトランザクションに関する情報が表示されます。バックエンドサーバのサーバ名を指定した場合，指定したバックエンドサーバが管理している，グローバルトランザクションから分岐したすべてのトランザクションに関する情報が表示されます。

(d)　-C

サーバのトランザクションの状態を，DAT形式で出力する場合に指定します。

(e)　-H

-Cオプションを指定した場合に，タイトル行を付けて出力するときに指定します。

(f)　-x ホスト名〔，ホスト名〕…

特定のホストについて情報を表示したい場合，そのホスト名を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-xオプションの指定は無視されます。また，複数のホスト名を指定する場合は，コンマの前後に空白を含めないでください。

(g)　-u ユニット識別子〔，ユニット識別子〕…

特定のユニットについて情報を表示したい場合，そのユニット識別子を指定します。

-sオプションと同時に指定した場合は，-sオプションの指定が有効となり，-uオプションの指定は無視されます。また，複数のユニット識別子を指定する場合は，コンマの前後に空白を含めないでください。

(4)　注意事項

pdls -d trnコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

(5)　出力形式

(a)　-aオプションを指定した場合

 HOSTNAME : aa...a(bbccdd)
 TRNGID          TRNBID          STATUS                PID  SVID    B-SVID
 eeeeffffgg...g  eeeeffffhh...h  jj...j(k,l)       mm...mm  ii...i  nn...n
                 PROGRAM                      TIME   SYSINF
                 oo...o                       ppqqrr ss...s
                 S-PID=tt...t C-PID=uu...u(vv...v)
                 TMID=wwww XID=xx...x,yy...y ENVGRP=zzzz
                 XDS=BB...B NODE-ID=CCCC
                 READING-BLOCK-NO=DD...D

［説明］

トランザクションが複数ある場合，トランザクションの数だけ繰り返し表示されます。-a省略時は，PROGRAM，TIME，SYSINF，及びS-PID〜ENVGRPの情報が表示されません。

TRNGID「トランザクション識別子」からB-SVID「分岐元サーバ名」まで，及びPROGRAM「UAPの識別子情報」からSYSINF「システムが使用する内部情報」までの各項目は，1文字以上の半角空白を空けて表示します。

aa...a ：

ホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

eeeeffffgg...g及びeeeeffffhh...h：

トランザクション識別子（16文字）

eeee ：

HiRDB識別子（4文字）

ffff ：

ユニット識別子（4文字）

gg...g：

グローバルトランザクション番号（10進数8けた）

hh...h：

トランザクションブランチ番号（10進数8けた）

ii...i ：

サーバ名（8文字以内）

jj...j ：

トランザクション第１状態（16文字以内）

BEGINNING：

トランザクション開始処理中

ACTIVE：

トランザクション実行中

SUSPEND：

トランザクション中断中

IDLE：

同期点処理へ移行中

PREPARE：

コミット（1相目）処理中

READY：

コミット（2相目）処理中

H_COMMIT：

システムが独自に決定したコミットの処理中

H_ROLLBACK：

システムが独自に決定したロールバックの処理中

COMMIT：

コミット処理中

ROLLBACK_ACTIVE：

ロールバック処理待ち状態

ROLLBACK：

ロールバック処理中

H_FORGETTING：

システムが独自に決定したトランザクションの終了処理中

FORGETTING：

トランザクション終了処理中

注　H_COMMIT，H_ROLLBACK，及びH_FORGETTINGについては，障害時にユーザからの決着指示を待たないで，HiRDBが独自に決着方法を決定します。

k ：

トランザクション第２状態

u ：

データベースアクセス処理をするプロセスで，データアクセス実行中

r ：

トランザクション回復プロセスで，トランザクションの回復処理実行中

p ：

トランザクション回復プロセスで，トランザクションの回復処理待ち状態

l ：

トランザクション第3状態

s ：

通信中（サーバ間でのトランザクション決着指示の通信中）

r ：

通信待ち中（サーバ間でのトランザクション決着指示の通信待ち中）

w ：

同期合わせ中（トランザクションマネジャとサーバ間でのトランザクション同期合わせ中）

n ：

通信中でない（s，rの状態でない）

mm...m：

プロセスID（AIX版は10進数10けた以内で右詰め表示，AIX版以外は99999以下の場合，10進数5けた以内で右詰め表示，100000以上の場合は，10進数10けた以内で左詰め表示）

AIX版以外で100000以上の場合，SVID（サーバ名）とB-SVID（分岐元サーバ名）の表示位置は右にシフトします。

ただし，トランザクションの回復処理待ち状態のトランザクションなど，トランザクションを実行しているプロセスがない場合は，0を表示します。

nn...n：

分岐元サーバ名（8文字以内）

ただし，自サーバが要求元の場合は********を表示

oo...o：

UAPの識別情報（30文字以内）

クライアント環境定義のPDCLTAPNAMEに指定したUAPの識別名称を表示します。PDCLTAPNAMEが設定されていない場合はUnknownを表示します。

ユティリティの場合は，ユティリティのコマンド名を表示します。ただし，ユティリティサーバプロセス上で動作していた場合や，障害発生によってUAP識別情報が取得できなかった場合など，情報を表示しない（DAT形式出力時は空要素を表示する）ことがあります。また，DAT形式の場合，PDCLTAPNAMEの末尾に半角空白を指定していると，末尾の半角空白は削除された状態で表示されます。

ppqqrr：

サービス要求受け付け時刻（時分秒）

ss...s ：

システムが使用する内部情報（32文字以内）

tt...t：

UAP又はユティリティの処理の延長で，トランザクション処理を受け付けたサーバのプロセスID（AIX版は10進数10けた以内で右詰め表示，AIX版以外は99999以下の場合，10進数5けた以内で右詰め表示，100000以上の場合は，10進数10けた以内で左詰め表示）

AIX版以外で100000以上の場合，C-PID（サーバのプロセスと接続していたクライアント（UAP又はユティリティ）のプロセスIDとIPアドレス）の表示位置は右にシフトします。

ユティリティサーバプロセス上で動作していた場合や，障害発生によってプロセスIDが取得できなかった場合など，0を表示することがあります。

uu...u：

サーバのプロセスと接続していたクライアント（UAP又はユティリティ）のプロセスID（10進数10けた以内で左詰め表示）

なお，次に示す場合は0が表示されます。

クライアントと接続していないサーバプロセスの場合

UAPとリンケージしているクライアントライブラリのバージョンが04-00より前の場合

Type4 JDBCドライバから接続しているサーバプロセスの場合

vv...v：

サーバのプロセスと接続していたクライアント（UAP又はユティリティ）のIPアドレス（15文字以内）

クライアントと接続していたサーバプロセスだけ有効です。クライアントと接続していないサーバプロセスの場合は0.0.0.0と表示します。

wwww：

接続しているOLTPのOLTP識別子（4文字以内）

クライアント環境変数PDTMIDを省略した場合は，"****"を表示します。

接続元がXDSクライアントの場合は，"HRDB"と表示します。

xx...x,yy...y：

OLTP又はXDSから与えられたトランザクション識別子（33文字以内）

zzzz：

OLTPシステムから与えられた環境変数グループ識別子（4文字）

複数接続機能を使用している場合に表示されます。複数接続機能を使用していない場合は，"****"を表示します。

BB...B：

XDSサーバ名（8文字以内）

接続元がXDSの場合にかぎり表示します。

CCCC：

ノード識別子（4文字固定）

接続元がXDSの場合にかぎり表示します。

接続元XDSのXDSサーバ定義のpdq_node_idオペランドに指定したノード識別子を表示します。

DD...D：

入力中のシステムログのブロック番号（8文字以内）

ロールバック処理でシステムログの入力処理を実行中の場合だけ表示（DAT形式出力時は空要素を表示）します。ロールバック処理が進行中であることを確認する方法は，マニュアル「HiRDB システム運用ガイド」を参照してください。

＜出力例＞

AIX版以外でプロセスIDが100000以上の表示を含む場合

HOSTNAME : HOST0001(152813)
TRNGID           TRNBID           STATUS         PID  SVID     B-SVID
PRDBUNT001000005 PRDBUNT000010004 ACTIVE(u,n)   38095 SERVER01 ********
                 PROGRAM                 TIME   SYSINF
                 uap001                  152659 p_f_sqa_csetup
                 S-PID= 6888 C-PID=7063(10.1.0.1)
… プロセスIDが99999以下
PRDBUNT001000006 PRDBUNT000010005 ACTIVE(u,n)   108221 SERVER01 ********
                 PROGRAM                 TIME   SYSINF
                 uap002                  152755 p_f_sqa_csetup
                 S-PID= 7022 C-PID=7068(10.1.0.1)
… プロセスIDが100000以上
PRDBUNT001000007 PRDBUNT000010006 ACTIVE(u,n)    8101 SERVER01 ********
                 PROGRAM                 TIME   SYSINF
                 uap003                  152810 p_f_sqa_csetup
                 S-PID= 6887 C-PID=7069(10.1.0.1)
… プロセスIDが99999以下

(b)　-a -C -Hオプションを指定した場合

"EDIT-TIME","HOSTNAME","TRNGID","TRNBID","STATUS1","STATUS2","STATUS3","PID","SVID","B
-SVID","PROGRAM","TIME","SYSINF","S-PID","C-PID","C-ADDR","TMID","XID","ENVGRP","XDS",
"NODE-ID","READING-BLOCK-NO"
"AA...A","aa...a","eeeeffffgg...g","eeeeffffhh...h","jj...j","k","l",mm...m,"ii...i","
nn...n","oo...o","ppqqrr","ss...s",tt...t,uu...u,"vv...v","wwww","xx...x,yy...y","zzzz",
"BB...B","CCCC","DD...D"

［説明］

aa...a〜DD...Dについては，-aオプションを指定した場合の説明を参照してください。

DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

1行には，1トランザクションの情報を表示します。

AA...A：

pdlsコマンドを実行した時刻をYYYY/MM/DD hh:mm:ssの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

(c)　-cオプションを指定した場合

 HOSTNAME : aa...a(bbccdd)
 TRNGID          SVID   B-SVNUM
 eeeeffffgg...g  hh...h ii...i

［説明］

トランザクションが複数ある場合，トランザクションの数だけ繰り返し表示されます。

TRNGID「トランザクション識別子」からB-SVNUM「トランザクションブランチ数」までの各項目は，1文字以上の半角空白を空けて表示します。

aa...a ：

ホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

eeeeffffgg...g：

トランザクション識別子（16文字）

eeee ：

HiRDB識別子（4文字）

ffff ：

ユニット識別子（4文字）

gg...g：

グローバルトランザクション番号（10進数8けた）

hh...h ：

サーバ名（8文字以内）

-sオプションを省略した場合は，"********"を表示します。

ii...i ：

トランザクションブランチ数（10進数5けた）

-sオプションを指定した場合は，該当するサーバが管理している，トランザクション識別子が同一のトランザクションブランチ数となります。-sオプションを省略した場合は，該当するユニットが管理している，トランザクション識別子が同一のトランザクションブランチ数となります。

(d)　-c -C -Hオプションを指定した場合

 "EDIT-TIME","HOSTNAME","TRNGID","SVID","B-SVNUM"
 "jj...j","aa...a","eeeeffffgg...g","hh...h",ii...i

［説明］

aa...a〜ii...iについては，-cオプションを指定した場合の説明を参照してください。

DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

1行には，1トランザクションの情報を表示します。

jj...j：

pdlsコマンドを実行した時刻をYYYY/MM/DD hh:mm:ssの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

2.83　pdls【-d ust】（ユニットの稼働状態の表示）

2.83.1　pdls【-d ust】の形式と規則

(1)　機能

自ユニットの稼働状態を表示します。

このコマンドを実行したユニットの稼働状態が表示されます。

(2)　形式

　pdls -d ust 〔-C 〔-H〕〕 〔-a〕

(3)　オプション

(a)　-C

ユニットの稼働状態を，DAT形式で出力する場合に指定します。

(b)　-H

-Cオプションを指定した場合に，タイトル行を付けて出力するときに指定します。

(c)　-a

ユニットの開始状態を表示する場合に指定します。

(4)　注意事項

pdls -d ustコマンドのリターンコードを次に示します。バージョン09-50以降のHiRDBでは，リターンコードに1を追加しています。

0：

ユニット稼働中（コマンド実行ユニットにフロントエンドサーバがある場合は，フロントエンドサーバに接続できます）

1：

エラー終了（HiRDBの稼働状態を判別できないため，コマンドがエラー終了したことを示しています。コマンドエラー時に出力されているメッセージを基に対処してください）

4：

ユニット開始途中（コマンド実行ユニットにフロントエンドサーバがありますが，フロントエンドサーバに接続できません），又はユニット停止途中

8：

プロセスサーバプロセスの再起動中断状態

12：

ユニットの停止状態（pdsetup -dコマンドを実行できる状態）

16：

OSからの登録が削除された状態

ユニットの状態が"PAUSE"の場合，フロントエンドサーバの状態が"SUSPEND"のままで"ONLINE"にならない場合，又はセットアップ状態が"UNSETUP"の場合は，次のどれかの対処をしてください。

ユニットの状態が"PAUSE"の場合は障害が発生しています。KFPS00715-Iメッセージ，及びそれ以前にsyslogfileに出力されたメッセージを参照して，障害要因を取り除いた後，pdrpauseコマンドを実行してください。

フロントエンドサーバの状態が"SUSPEND"のままで"ONLINE"にならない場合は，障害が発生している可能性があります。syslogfileに出力されたメッセージを参照して，障害要因を取り除いた後，pdstart -aコマンドでフロントエンドサーバのSUSPEND状態を解除してください。

セットアップ状態が"UNSETUP"の場合は，HiRDBがOSに登録されていません。HiRDBを開始する前にpdsetupコマンドを実行し，HiRDBをOSへ登録してください。

(5)　出力形式

(a)　-Cオプションを省略した場合

 HOSTNAME  : aa...a(bbccdd)
 SYSTEMID  : eeee
 UNITID    : ffff
 ENTRYHOST : gg...g
 PAIRHOST  : hh...h
 UNIT-STAT FES-STAT  SETUP-STAT
 iiiiiiii  jjjjjjjj  kkkkkkk
 START-OPT : llllllll

［説明］

aa...a：

現用系のホスト名（32文字以内）

bbccdd：

pdlsコマンドを実行した時刻（時分秒）

eeee：

HiRDB識別子（4文字）

ffff：

ユニット識別子（4文字）

gg...g：

pdlsコマンドを実行したユニットのホスト名（32文字以内）

hh...h：

IPアドレス引き継ぎなしのスタンバイ型系切り替え機能，又は1:1スタンバイレス型系切り替え機能を適用している場合，相手系ホスト名（32文字以内）。

上記以外の場合，情報は表示されません（DAT形式出力時は空要素が表示されます）。

iiiiiiii：

ユニットの状態（8文字）

PAUSE△△△：プロセスサーバプロセスの再起動中断状態

STOP△△△△：停止状態

STARTING：開始途中，ログ適用処理中，データベース引き継ぎ中，又は系切り替え機能を使用している場合でユニットが待機中

ONLINE△△：稼働状態

STOPPING：停止途中

△は，半角の空白文字を表します。なお，DAT形式出力時は△は表示されません。

jjjjjjjj：

フロントエンドサーバの状態（8文字）

STOP△△△△：停止状態，又は系切り替え機能を使用している場合で，ユニットが待機中

STARTING：開始途中

SUSPEND△：サスペンド状態，又はログ適用処理中

ONLINE△△：稼働状態

STOPPING：停止途中

********：ユニットにフロントエンドサーバなし

△は，半角の空白文字を表します。なお，DAT形式出力時は△は表示されません。

HiRDB/シングルサーバの場合は，常に********となります。

kkkkkkk：

セットアップ状態（7文字）

SETUP△△：pdsetup実行済み

UNSETUP：pdsetupコマンド実行前，又はpdsetup -dコマンド実行済み（インストールディレクトリを運用ディレクトリとする場合も，上書きインストールができる状態です）

△は，半角の空白文字を表します。なお，DAT形式出力時は△は表示されません。

llllllll：

ユニットの開始状態（8文字）

-aオプションを指定したときだけ表示されます。

RECOVERY：pdstart -rコマンドでユニットを開始しています。

LOGAPPLY：pdstart -lコマンドでユニットを開始しています。

NORMAL△△：上記以外の方法で開始しています。

△は，半角の空白文字を表します。なお，DAT形式出力時は△は表示されません。また，UNIT-STATがPAUSE及びSTOPの場合は，********が表示されます。

(b)　-C -Hオプションを指定した場合

"EDIT-TIME","HOSTNAME","SYSTEMID","UNITID","ENTRYHOST","PAIRHOST","UNIT-STAT","FES-ST
AT","SETUP-STAT","START-OPT"
"mm...m","aa...aa","eeee","ffff","gg...g","hh...h","iiiiiiii","jjjjjjjj","kkkkkkk","ll
llllll"

［説明］

aa...a〜llllllllについては，-Cオプションを省略した場合の説明を参照してください。

DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

1行には，自ユニットの稼働状態を表示します。

mm...m：

pdlsコマンドを実行した時刻をYYYY/MM/DD hh:mm:ssの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

2.84　pdmemdb（インメモリデータ処理に関するコマンド）

2.84.1　pdmemdbの形式と規則

(1)　機能

pdmemdbコマンドで次に示すことができます。

RDエリアのインメモリ化

インメモリ化の解除

インメモリデータバッファへのデータの再読み込み

インメモリデータバッファ上のデータの破棄

なお，pdmemdbコマンドの実行結果は，pddbls -Mコマンドで確認できます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdmemdb -k 処理種別 ｛-r RDエリア名〔，RDエリア名〕…｜-r ALL｝
　　　　　　　　　　　 〔-p ページ指定種別〕〔-d〕〔-W 実行監視時間〕

(4)　オプション

(a)　-k 処理種別

pdmemdbコマンドで実行する処理を指定します。

stay：

-rオプションで指定したRDエリアをインメモリ化する場合に指定します。

rels：

-rオプションで指定したインメモリRDエリアのインメモリ化を解除します。

reload：

-rオプションで指定したインメモリRDエリア内のデータをインメモリデータバッファに再読み込みします。

cancel：

-rオプションで指定したインメモリRDエリアに割り当てられているインメモリデータバッファ上の更新情報を破棄します。

各オプションの指定によって，pdmemdbコマンド実行後のインメモリデータバッファ及びRDエリアの状態が異なります。詳細については，表「pdmemdbコマンド実行時の前提条件（インメモリデータバッファと対象RDエリアの状態）」を参照してください。

(b)　-r RDエリア名〔，RDエリア名〕…　〜＜識別子＞((1〜30))

処理対象のRDエリアの名称を指定します。

次に示すRDエリアを指定した場合，pdmemdbコマンドがエラーになります。

ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリア以外のRDエリアを指定した場合

RDエリア名の一括指定時，ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリア以外のRDエリアが対象になった場合

オープン属性がSCHEDULEのRDエリアを指定した場合

共用RDエリアを指定した場合

グローバルバッファを割り当てていないRDエリアを指定した場合

レプリカRDエリアを指定した場合（インナレプリカ機能使用時）

追い付き状態管理表を格納しているRDエリアを指定した場合（インナレプリカ機能使用時）

＜規則＞

RDエリアを指定する場合の規則については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

(c)　-r ALL

このオプションを指定した場合，-kオプションで指定した処理を実行できるすべてのRDエリアを処理対象にします。

全インメモリRDエリアのインメモリ化を一度に解除するときなどに，このオプションを指定します。

なお，RDエリアをインメモリ化するときにこのオプションを指定すると，必要のないRDエリアをインメモリ化するおそれがあるため，インメモリ化するときはこのオプションを指定しないことをお勧めします。

注意事項

監査証跡表及び改竄防止表に定義したインデクスがある場合，-r ALL指定をしないでください。-r ALL指定をすると，監査証跡表又は改竄防止表を格納しているRDエリアもインメモリ化されます。監査証跡表又は改竄防止表を格納しているRDエリアをインメモリ化してはいけない理由については，注意事項を参照してください。

次に示すRDエリアは，-r ALL指定時に処理対象となりません。

ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリア以外のRDエリア

オープン属性がSCHEDULEのRDエリア

共用RDエリア

グローバルバッファを割り当てていないRDエリア

インメモリデータバッファ及びRDエリアの状態が正しくないRDエリア（正しい状態については，表「pdmemdbコマンド実行時の前提条件（インメモリデータバッファと対象RDエリアの状態）」を参照）

レプリカRDエリア

追い付き状態管理表を格納しているRDエリア

(d)　-p ページ指定種別《free》

このオプションは-kオプションにstayを指定した場合に指定できます。

インメモリデータバッファが使用する共用メモリを実メモリ上にページ固定するかどうかを指定します。

free：

インメモリデータバッファが使用する共用メモリを実メモリ上にページ固定しません。

fixed：

インメモリデータバッファが使用する共用メモリを実メモリ上にページ固定します。

hugepage：

この指定値はLinux版限定の指定値です。

LinuxのHugepage機能を用いてインメモリデータバッファが使用する共用メモリを実メモリ上にページ固定します。

インメモリデータバッファが使用する共用メモリを実メモリ上にページ固定（fixed又はhugepage指定）すると，共用メモリのページングを防止できるため，共用メモリに対するアクセス性能が向上します。

インメモリデータバッファが使用する共用メモリサイズとサーバマシンの実メモリから，メモリを固定するかどうかを決定してください。実メモリに比べて大きなメモリをページ固定すると，ページングの多発や仮想メモリ不足の原因になります。したがって，実メモリや全仮想メモリに対する共用メモリプールの占める割合を検討する必要があります。インメモリデータバッファが使用する共用メモリの計算式については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

ページ固定は，実メモリサイズからページ固定する共用メモリサイズを減算したサイズが，スワップ領域サイズからページ固定する共用メモリサイズを減算したサイズの1/2以上にならないことを目安にしてください。

AIX版でfixedを指定する場合の注意事項を次に示します。

OSのオペレーティングシステムパラメタの設定をしてください。OSのオペレーティングシステムパラメタの設定をしないと，このオペランドの指定は無効になります。設定するOSのオペレーティングシステムパラメタの詳細については，マニュアル「HiRDB システム導入・設計ガイド」の「AIX固有のパラメタ指定」を参照してください。

64ビットモードのHiRDBサーバと32ビットモードのクライアントプロセスとの間でプロセス間メモリ通信機能を使用する場合，次に示す制限があるため，このオペランドにfixedを指定しても無効になります。

OSのオペレーティングシステムパラメタの設定ができない

システム共通定義への環境変数putenv EXTSHM ONの設定が必要

OSのオペレーティングシステムパラメタ，環境変数EXTSHMの詳細については，マニュアル「HiRDB システム導入・設計ガイド」の「AIX固有のパラメタ指定」を参照してください。

次に示す計算式を満たすように，サーバマシンのメモリ，及びVMMパラメタのmaxpinを設定してください。

（マシンのメモリサイズ）×（maxpinの設定値）÷100≧a＋b＋c

a：ユニットコントローラ用の共用メモリセグメントのサイズ

b：インメモリデータバッファ用の各共用メモリセグメントのサイズの総和

c：共用メモリを固定するOS，又は付加PPが使用する各共用メモリセグメントのサイズの総和

共用メモリがメモリ上に固定されているかどうかは，AIXのコマンドで確認できます。詳細については，AIXのマニュアルを参照してください。

LinuxのHugepage機能を用いてインメモリデータバッファが使用する共用メモリを実メモリ上にページ固定（hugepage指定）すると，共用メモリのページサイズが通常のページサイズ（4KB）からhugepagesのページサイズ（2MB）に拡大されます。ページサイズが拡大すると，仮想アドレスを実アドレスに変換するための管理領域（PTE：Page Table Entry）を通常よりも小さくできるため，メモリ不足を防止できます。また，仮想アドレスと物理アドレスの変換回数が少なくなり，ページフォルトの発生を抑えることができます。これによって，トランザクション性能が向上することがあります。

Linux版でhugepageを指定する場合，LinuxのHugepage機能を有効にする必要があります。Hugepage機能については，OSのマニュアルを参照してください。Hugepage機能を有効にするときに設定するOSのオペレーティングシステムパラメタの詳細については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

(e)　-d

このオプションは-kオプションにrelsを指定した場合に指定できます。

インメモリ化を強制解除する場合にこのオプションを指定します。インメモリ化を強制解除すると，インメモリデータバッファ上の更新データはインメモリRDエリアに反映されません。

(f)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pdmemdbコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　リターンコード

pdmemdbコマンドのリターンコードを次に示します。

0：正常終了

4：警告

-rオプションで複数のRDエリアを指定した場合，一部のRDエリアの処理が正常に終了しなかったときのリターンコードです。

8：異常終了

12：異常終了

エラーメッセージを表示できない場合にリターンコード12が表示されます。この場合，syslogfileのエラーメッセージを参照してください。HiRDB/パラレルサーバの場合はディクショナリサーバを定義したサーバマシンのsyslogfileを参照してください。エラーの要因を取り除いた後に，再度pdmemdbコマンドを実行してください。syslogfileにエラーメッセージが出力されていない場合は，保守員に連絡してください。

(6)　規則

HiRDBが稼働中のときにpdmemdbコマンドを実行できます。

HiRDB/パラレルサーバの場合，システムマネジャを定義したサーバマシンでpdmemdbコマンドを実行してください。

データディクショナリ用RDエリアが次に示すどちらかの状態のときに，pdmemdbコマンドを実行できます。

オープン状態，かつ閉塞解除状態

オープン状態，かつコマンド閉塞状態

pdmemdbコマンドは，HiRDB Acceleratorが正しくセットアップされていて，かつpd_max_resident_rdarea_noオペランドに1以上が指定されている場合に実行できます。

pdmemdbコマンドを実行する前に，インメモリデータバッファと対象RDエリアの状態を確認してください。正しい状態になっていないとpdmemdbコマンドを実行できません。pdmemdbコマンド実行時の前提条件（インメモリデータバッファと対象RDエリアの状態）を次の表に示します。

表2‒13　pdmemdbコマンド実行時の前提条件（インメモリデータバッファと対象RDエリアの状態）

pdmemdbコマンドの-kオプションの指定

コマンド実行時の前提条件

コマンド実行後の状態

インメモリデータバッファの状態

RDエリアの状態

インメモリデータバッファの状態

RDエリアの状態

stay

未使用状態

コマンド閉塞かつクローズ状態※

DB同期状態

コマンド閉塞かつクローズ状態

reload

バッファ障害状態

障害閉塞かつクローズ状態

rels

-dオプション指定なし

DB同期状態

コマンド閉塞かつクローズ状態

未使用状態（インメモリ化の解除）

コマンド閉塞かつクローズ状態

-dオプション指定あり

DB非同期状態

コマンド閉塞かつオープン状態

障害閉塞かつクローズ状態

バッファ障害状態

障害閉塞かつクローズ状態

RDエリア障害状態

コマンド閉塞かつオープン状態

バッファ障害状態かつRDエリア障害状態

障害閉塞かつクローズ状態

cancel

DB非同期状態

コマンド閉塞かつオープン状態

バッファ障害状態

障害閉塞かつオープン状態

注※

オンライン再編成閉塞中からコマンド閉塞かつクローズ状態に遷移した場合は，pdmemdb -k stayコマンドを実行できません。

(7)　注意事項

RDエリアの容量に比例してpdmemdbコマンドの処理時間が長くなります。その間，シンクポイントが有効化されないため，注意してください。

-kオプションにstay，reload，relsのどれかを指定してコマンドを実行したときにコマンドプロセスをkillすると，HiRDB（HiRDB/パラレルサーバの場合はユニット）が異常終了することがあるため，コマンドプロセスをkillしないでください。

インメモリRDエリアがある場合にHiRDBが強制終了又は異常終了すると，インメモリデータバッファ上の更新情報はインメモリRDエリアに反映されません。このとき，インメモリRDエリアが障害閉塞することがあります。

ユーザ用RDエリア，及びユーザLOB用RDエリアの場合

DB同期状態以外のときは，ユーザ用RDエリア，及びユーザLOB用RDエリアが障害閉塞します。

リスト用RDエリアの場合

RDエリア障害状態又は両系障害状態（バッファ障害状態かつRDエリア障害状態）のときは，リスト用RDエリアが障害閉塞します。

このため，インメモリ化を行った場合は，必ずバックアップを取得してください。バックアップは，次の場合に必要となります。

両系障害状態（バッファ障害状態かつRDエリア障害状態）となった場合

最新の状態に回復する場合

関連するRDエリアをインメモリ化していない場合（インメモリRDエリアに対して定義系SQLを実行する場合を含む）

バックアップ取得の運用については，マニュアル「HiRDB バッチ高速化機能」を参照してください。

インメモリRDエリアがあるディスクのペアボリューム操作を行わないことをお勧めします。インメモリデータバッファとインメモリRDエリアの同期状態（DB同期状態なのかDB非同期状態なのか）を正しく認識しないでペアボリューム操作を行うと，データの不整合が発生するおそれがあります。

インメモリ化の処理中（pdmemdbコマンドの実行からインメモリ化を完了するまでの間）は，pdstop，pdchgconf，又はpdprgrenewコマンドを実行しないでください。実行して両方のコマンドが正常終了した場合，インメモリデータバッファを割り当てた共用メモリセグメントが解放されない可能性があります。この場合は，OSの機能を使って共用メモリセグメントの使用状況を調べて，必要に応じて共用メモリセグメントの解放を行ってください。

HiRDBが強制終了又は異常終了すると，インメモリデータバッファ上の更新情報がインメモリRDエリアに反映されません。このため，監査証跡表又は改竄防止表を格納しているRDエリアをインメモリRDエリアにしないでください。

監査証跡表又は改竄防止表も，ほかの表と同様にデータベース回復ユティリティを使用すれば，更新情報を反映してインメモリRDエリアを最新の状態に回復できますが，セキュリティ上の観点から，インメモリデータ処理の適用はお勧めしません。

また，監査証跡表の自動データロード機能は更新前ログ取得モードで動作するため，自動データロード機能を使用している場合は，監査証跡表に更新情報を反映できなくなるおそれがあります。

pdmemdbコマンドは，指定したRDエリアに対してEXモードで排他制御をします。そのため，指定したRDエリアにほかのトランザクションがアクセス中の場合は，そのトランザクションの終了までpdmemdbコマンドは待ち状態になります。

-rオプションで複数のRDエリアを指定した場合（複数のRDエリアに対して一度に処理を行う場合），一部のRDエリアに対する処理でエラーが発生すると，すべてのRDエリアの処理を無効化します。

なお，HiRDB/パラレルサーバの場合は，バックエンドサーバごとにこの仕組みが適用されます。HiRDB/パラレルサーバのときの例を次に示します。

（例）

pdmemdb -k stay -r RD01,RD02,RD03,RD04

RD01とRD02はバックエンドサーバ1で，RD03とRD04はバックエンドサーバ2で管理されています。RD02のインメモリ化に失敗した場合，RD01もインメモリ化されません。RD03とRD04はインメモリ化されます。

なお，このとき，pdmemdbコマンドのリターンコードに4が返されます。

参考

この規則は，一括指定の場合や，ALL指定の場合も適用されます。

直接指定及び一括指定の場合と，ALL指定の場合の，エラー処理の差異を次に示します。

pdmemdbコマンド実行時の条件又はエラー発生時の条件

直接指定及び一括指定の場合

ALL指定の場合

指定したRDエリアに，共用RDエリアなどのインメモリデータ処理の適用外となるRDエリアがある場合

pdmemdbコマンドがエラーになります。指定したRDエリアは一つもインメモリ化されません。

インメモリデータ処理の適用外となるRDエリアはインメモリ化されません。残りのRDエリアはすべてインメモリ化されます。

指定したRDエリアのうち，共用メモリ不足などで一部のRDエリアに対する処理でエラーが発生した場合

注意事項8で説明した処理が行われます。

2.85　pdmemsv（メモリの削減）

2.85.1　pdmemsvの形式と規則

(1)　機能

マルチHiRDBの場合に，インストールディレクトリ下のライブラリの一部を共用化することでHiRDBが使用するメモリを削減します。

(2)　実行者

スーパユーザが実行できます。

(3)　形式

　pdmemsv 〔-｛d｜s｝〕

(4)　オプション

(a)　-｛d｜s｝

マルチHiRDBで，メモリを削減するかどうかを指定します。省略した場合，メモリの削減を指定しているかどうかを表示します。

-d：

マルチHiRDBで，メモリ削減の指定を解除したいときに指定します。

-s：

マルチHiRDBで，メモリを削減したいときに指定します。

(5)　規則

pdmemsvコマンドは，HiRDBが停止中のときだけ実行できます。

pdmemsvコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdsetupコマンドで，HiRDBの実行環境をインストールディレクトリ以外に構築してからこのコマンドを実行すると，インストールディレクトリ下のライブラリを共有し，メモリを削減します。この場合，既存のライブラリは$PDDIR/lib/save/に保存されます。

インストールディレクトリは次のとおりです。

HiRDB/シングルサーバのとき：/opt/HiRDB_Ｓ/

HiRDB/パラレルサーバのとき：/opt/HiRDB_P/

pdmemsvコマンドでHiRDBが使用するメモリの削減又は削減の解除をする場合，pdsetupコマンド（-d指定）でOSへの登録を解除してから実行してください。ただし，このとき実行に必要なファイルは削除しないでください。

インストールディレクトリのあるディスクがハード障害などで参照できない場合には，メモリ削減の指定の解除（-dオプション）を指定すると，その障害の影響を受けないようにできます。

メモリの削減を指定する場合，そのサーバマシン内のHiRDBシステムは，すべて同じバージョンでなければなりません。

HiRDBシステムを再度インストールする場合には，必ずメモリ削減の指定を解除してください。

(6)　注意事項

pdmemsvコマンドの実行結果は，コマンド実行時のリターンコード，又はpdmemsvコマンド（オプション指定なし）で確認できます。コマンド実行時のリターンコードが0の場合は正常終了，2の場合は異常終了（オプション指定不正など）です。

(7)　出力形式

 Memory saving level: level10

［説明］

メモリ削減の状態を示します。

hazard：

メモリの削減に失敗しています。この場合，-dオプションでメモリの削減を解除してください。そして，その後必要があれば，-sオプションでメモリの削減を指定してください。

level10：

メモリが削減されています。

none：

メモリが削減されていません。

2.86　pdmstchk（マスタディレクトリ用RDエリアの整合性チェック）

2.86.1　pdmstchkの形式と規則

(1)　機能

マスタディレクトリ用RDエリア，データディクショナリ用RDエリア，及びデータディレクトリ用RDエリアの整合性を確認します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdmstchk 〔-k チェック対象〕 〔-u 認可識別子〕

(4)　オプション

(a)　-k チェック対象

コマンド実行時にチェック対象となる資源を指定します。

all：

以下のすべての資源をチェックします。

rdarea：

RDエリアの情報をチェックします。

table：

表の情報をチェックします。

index：

インデクスの情報をチェックします。

view：

ビュー表の情報をチェックします。

plugin：

プラグインの情報をチェックします。

replica：

レプリカRDエリアの情報をチェックします。

(b)　-u 認可識別子

ディクショナリ表を検索するユーザの認可識別子を指定します。

CONNECT権限もしくはDBA権限を持つユーザを指定してください。

このオプションを指定すると，パスワード入力要求の応答付きメッセージが出力されますので，応答付きメッセージが出力されたらパスワードを入力してください。

認可識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

パスワードを引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。

このオプションを省略した場合，環境変数PDUSERの設定値を仮定します。このオプションを省略し，かつ環境変数PDUSERも設定していない場合は，このコマンドは実行できません。

(5)　規則

pdmstchkコマンドは，HiRDB稼働中のときだけ実行できます。

pdmstchkコマンドは，シングルサーバ又はディクショナリサーバを定義しているユニットで実行してください。

pdmstchkコマンド実行時は，環境変数PDHOST，PDNAMEPORTを設定してください。

(6)　リターンコード

pdmstchkコマンドのリターンコードを次に示します。

リターンコード

内容

0

正常終了（整合性に問題なし）

4

正常終了（整合性に問題あり）

8

異常終了（コマンド実行中にエラーが発生）

(7)　整合性に問題あるときの対処

pdmstchkコマンドを実行し，不整合を検知した場合，次のどちらかの対処をしてください。

不整合になる操作をする前のバックアップから回復する

HiRDBを再構築する

(8)　注意事項

次のどれかを更新する操作と，pdmstchkコマンドを同時に実行すると，不整合を検知することがあります。このため，同時に実行しないでください。

マスタディレクトリ用RDエリア

データディレクトリ用RDエリア

ディクショナリ表

pdchpathfを実行した場合，pdchpathnを実行してから，このコマンドを実行してください。pdchpathnコマンドを実行する前にpdmstchkコマンドを実行すると，不整合を検知します。

(9)　出力形式

MASTER DIRECTORY RDAREA CHECK(aa....aa)    YYYY/MM/DD hh:mm:ss
[bb....bb]                   ...1
ID=cc....cc, dd....dd        ...1，2
   :                         ...1，2
All Data matched             ...3

［説明］

1は，不整合を検知したデータ種別ごとに表示します。同一のデータ種別が複数回表示されることがあります。

2は，1のデータ種別の中で不整合になったデータをデータのIDごとに繰り返し出力します。

3は，不整合のデータがない場合に出力します。

aa....aa：

チェック対象。-kオプションの指定値を表示します。省略時はallを表示します。

YYYY/MM/DD hh:mm:ss：

コマンド実行日時（年月日時分秒）

bb....bb：

データ種別

表示内容

データ種別

rdarea

RDエリア

table

表

index

インデクス

view

ビュー表

replica

レプリカRDエリア

plugin

プラグイン

cc....cc：

不一致になったデータのID

dd....dd：

不一致になった理由を表示します。

理由

説明

Data exists only in MASTER DIRECTORY

この資源はマスタディレクトリ用RDエリアにだけあります。

Data exists only in DICTIONARY TABLE

この資源はディクショナリ表にだけあります。

Data unmatch between MASTER DIRECTORY and DICTIONARY TABLE

マスタディレクトリとディクショナリ表の情報が異なります。

Data unmatch between MASTER DIRECTORY and DATA DIRECTORY

マスタディレクトリとデータディレクトリの情報が異なります。

2.87　pdobils（SQLオブジェクト用バッファの統計情報表示）

2.87.1　pdobilsの形式と規則

(1)　機能

SQLオブジェクト用バッファに格納されているSQLオブジェクトの統計情報を表示します。この情報から，処理時間の掛かるSQLや入出力の多いSQLを特定できたり，SQLオブジェクトの再利用状況を把握できたりします。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdobils 〔-s サーバ名〕 〔-R｜-r〕 〔-C 〔区切り文字〕 〔-H〕〕 〔-e〕
　　　　　 〔-U〕 〔-A 〔ACTID〔,ACTID〕…〕〕 〔-NR〕
　　　　　 〔-N SQLオブジェクト番号〔,SQLオブジェクト番号〕…〕
　　　　　 〔-O 出力ファイル名〕

(4)　オペランド

(a)　-s サーバ名　〜＜識別子＞((1〜8))

特定サーバの情報を表示する場合，又は特定サーバの統計情報のカウンタを初期化する場合，そのサーバ名（シングルサーバ又はフロントエンドサーバ）を指定します。

(b)　-R｜-r

統計情報のカウンタを初期化する場合に指定します。例えば，統計情報のカウンタがオーバフローした場合※など，このオプションを指定します。

-R：

SQLオブジェクトバッファ統計情報を出力した後に，カウンタを初期化する場合に指定します。一定間隔で統計情報を繰り返し取得する場合は，このオプションを指定することをお勧めします。

-r：

SQLオブジェクトバッファ統計情報のカウンタの初期化だけを行う場合に指定します。カウンタが初期化される項目については，出力形式を参照してください。

注※

SQLオブジェクト用バッファに格納されている各SQLオブジェクトのカウンタは，SQLオブジェクトを再利用し続けると，オーバフローすることがあります。カウンタがオーバフローした場合，統計情報の表示項目に*が表示されます。

(c)　-C 〔区切り文字〕　〜＜文字列＞((1〜10))

統計情報をDAT形式で出力する場合に指定します。

要素を区切って出力したい場合は，区切り文字を指定します。省略した場合，タブ記号が区切り文字になります。なお，区切り文字の先頭にハイフン（-）は指定できません。

(d)　-H

-Cオプション指定時に，1行目にタイトル行を出力する場合に指定します。

(e)　-e

実行回数（出力形式のEXECUTE COUNTの項目）が1以上の統計情報だけを出力する場合に指定します。

(f)　-U

pdobilsコマンド実行時に，実行中のSQLのSQLオブジェクト情報と，そのSQLを実行しているUAPの情報を出力する場合に指定します。

pdobilsコマンド実行時の実行タイミングと出力される統計情報の関係を次の図に示します。

図2‒6　-Uオプションを指定したpdobilsコマンド実行と，実行中のSQLとの関係による統計情報の出力有無

〔説明〕

pdobilsコマンドの実行タイミングによって，統計情報の出力有無が変わります。各実行時点での統計情報の出力有無は次のようになります。

pdobilsコマンド実行時点

実行しているSQLの統計情報出力有無

備考

1

×

SQL文の前処理が完了し，UAPに結果が返るまでの間にコマンドを実行すると，統計情報が出力される場合があります。

2

×

なし。

3

○

SQL文実行中に前処理結果が無効※になると，統計情報が出力されない場合があります。

（凡例）

○：実行しているSQLの統計情報を出力します。

×：実行しているSQLの統計情報を出力しません。

注※

トランザクション決着で無効になります。

(g)　-A 〔ACTID〔,ACTID〕…〕

ユーザ識別子ごとに使用している次の表に示す状態のSQLオブジェクト情報と，そのSQLを実行しているUAPの情報を出力する場合に指定します。

状態

出力有無

ACTIVE

○

LRU

△

TEMPORARY

×

COMPILE/TRANSFER

×

PROCESS

×

RELEASE

×

（凡例）

〇：出力あり

△：出力あり（コマンド実行中にステータスがACTIVEからLRUに遷移した場合）

×：出力なし（クライアント環境定義PDVWOPTMODE又はPDUAPREPLVLで，SQLオブジェクトの作成を行う指定をした場合など，SQLオブジェクト情報が出力されないステータスがあります。ステータスの詳細については，「一般出力形式」の［説明］の「ステータス」の項目を参照してください。）

ACTIDは，特定のユーザ識別子の情報を出力する場合に指定します。-sオプションを指定し，かつマルチフロントエンドサーバを利用している場合は，ACTIDに指定したユーザ識別子の存在するフロントエンドサーバのサーバ名を-sオプションに指定してください。なお，指定できるユーザ識別子の数は最大64個です。

(h)　-NR

SQL文中の改行コード（0x0A），及び復帰コード（0x0D）を，空白コード（0x20）に置き換える場合に指定します。

(i)　-N SQLオブジェクト番号〔,SQLオブジェクト番号〕…

SQLオブジェクトに関する保守情報を出力する場合，出力するSQLオブジェクトのSQLオブジェクト番号を指定します※。

SQLオブジェクト番号は，「出力形式」の「6. SQLオブジェクトの番号」の項目に表示される値を指定してください。

ただし，コマンド実行時に指定されたSQLオブジェクト番号のSQLオブジェクトがバッファに存在しない場合，そのSQLオブジェクトに関する保守情報は出力されません。

注※

マルチフロントエンドサーバを利用している場合は，出力したいSQLオブジェクトが存在するフロントエンドサーバのサーバ名を-sオプションで指定してください。マルチフロントエンドサーバを利用している場合にサーバ名を省略すると，KFPN91001-Iメッセージが表示されます。

(j)　-O 出力ファイル名

標準出力，及び標準エラー出力をファイルに出力する場合に指定します。指定した出力ファイルが既に存在している場合は，その出力ファイルに追加書きします。

(5)　規則

pdobilsコマンドは，HiRDBが稼働中のときだけ実行できます。

pdobilsコマンドは，任意のサーバマシンで実行してください。

(6)　注意事項

pdobilsコマンドの結果は，コマンド実行時のリターンコードで確認できます。リターンコードが0の場合は正常終了，4の場合は異常終了です。

pdobilsコマンドは，SQLオブジェクト用バッファを操作するため，操作のオーバヘッドによってHiRDBに負荷が掛かることがあります。

pdobilsコマンドを強制終了した場合，SQLオブジェクト用バッファを操作するSQLの処理，及びプロセス後の処理が最大1分待たされます。pdobilsコマンドは強制終了しないでください。

統計情報を取得するタイミングは，システム定義のpd_sqlobject_stat_timingオペランドの指定値によって異なります。

SQLオブジェクトの実行時間は，トランザクション決着，又はSQLオブジェクトの解放時に，SQLオブジェクト用バッファに反映されます。pdobilsコマンド実行時に表示されるSQLオブジェクトの実行時間を次の図に示します。

図2‒7　pdobilsコマンド実行時に表示されるSQLオブジェクトの実行時間

〔説明〕

pdobilsコマンドの実行タイミングによって，表示されるSQLオブジェクトの実行時間は変わります。各実行時点で表示される時間は次のようになります。

pdobilsコマンド実行時点

SQL1

SQL2

SQL3

SQL4

1

×

×

×

×

2

○

○

×

×

3

○

○

○

○

（凡例）

○：表示される実行時間に，該当するSQLの時間が反映されます。

×：表示される実行時間に，該当するSQLの時間は反映されません。

注1

カーソルを使用した場合の実行時間は，カーソルのオープンからクローズまでにサーバが行った処理時間の合計となります。

注2

pdobilsコマンドの実行中でも，SQLオブジェクト用バッファはほかのUAPなどから利用されます。そのため，pdobilsコマンド実行中にトランザクションが決着したSQLオブジェクトがある場合，その情報が残っていれば出力情報に反映されます。

注3

実行時間は，推奨モード又は互換モードによって次のとおり変更となります。

動作モード

実行時間

推奨モード

マイクロ秒単位

v09-04互換モード

秒単位（秒未満切り捨て）

(7)　出力形式

pdobilsコマンドの出力形式は，指定されたオプションの組み合わせによって，次に示す形式で出力されます。

オプションの指定

-Cオプションの指定

-U

-A

-N

なし

あり

なし

なし

なし

一般出力形式

一般出力DAT形式

あり

なし

なし

実行中情報出力形式

実行中情報出力DAT形式

なし

あり

なし

使用中情報出力形式

使用中情報出力DAT形式

なし

なし

あり

保守情報出力形式

−

（凡例）

−：組み合わせはありません。

(a)　一般出力形式

pdobils VV-RR-ZZ [70]
<< SQL OBJECT CACHE INFORMATION >> DATE: 2004/01/01 TIME: 00:00:00 [1]
HOST NAME                   : node01 [2]
SERVER NAME                 : fes01 [3]
CACHE SIZE(KB)              : 2048 [4]
SQL OBJECT TOTAL SIZE(B)    : 1932556 [5]

<< SQL OBJECT LIST >>
*SQL OBJECT NO              : 1 [6]
 STATUS                     : ACTIVE [7]
 TYPE                       : STATIC SQL [8]
 SIZE                       : 7792 [9]
 EXECUTE COUNT              : 10 [10]
 # EXECUTE TIME AVG(s)      : 1.234567 [11]
 # EXECUTE TIME MAX(s)      : 9.000000 [12]
 # SERVICE NAME             : [13]
 # UAP NAME                 : Unknown [14]
 # CONNECT NO               : 123 [15]
 # SQL NO                   : 456 [16]
 # RECORD DATE/TIME         : 2004/01/01 00:00:00 [17]
 DB REFERENCE GET COUNT     : 55500 [28] AVG 5550 [29] MAX 5600 [30]
 DB UPDATE GET COUNT        : 0 [31] AVG 0 [32] MAX 0 [33]
 DB READ COUNT              : 800 [34] AVG 80 [35] MAX 85 [36]
 DB WRITE COUNT             : 0 [37] AVG 0 [38] MAX 0 [39]
 LOB REFERENCE GET COUNT    : 0 [40] AVG 0 [41] MAX 0 [42]
 LOB UPDATE GET COUNT       : 0 [43] AVG 0 [44] MAX 0 [45]
 LOB READ COUNT             : 0 [46] AVG 0 [47] MAX 0 [48]
 LOB WRITE COUNT            : 0 [49] AVG 0 [50] MAX 0 [51]
 LIST REFERENCE GET COUNT   : 0 [52] AVG 0 [53] MAX 0 [54]
 LIST UPDATE GET COUNT      : 0 [55] AVG 0 [56] MAX 0 [57]
 LIST READ COUNT            : 0 [58] AVG 0 [59] MAX 0 [60]
 LIST WRITE COUNT           : 0 [61] AVG 0 [62] MAX 0 [63]
 WKFILE READ COUNT          : 0 [64] AVG 0 [65] MAX 0 [66]
 WKFILE WRITE COUNT         : 0 [67] AVG 0 [68] MAX 0 [69]
 PREPROCESSOR USER          : user1 [18]
 PREPROCESSOR SOURCE        : abc.ec [19]
 SECTION NO                 : 123 [20]
 ISOLATION LEVEL            : 2 [21]
 OPTIMIZE LEVEL             : 10 [22]
 ADDITIONAL OPTIMIZE LEVEL  : 0 [23]
 DEFAULT SCHEMA             : [24]
 ROUTINE ID                 : 123 [25]
 ACCESS TYPE SSCT# n        : user1.ZAIKO (T:0x0002007b) INDEX SCAN (I:0x00030005)[71]
 SQL                        : SELECT GNO,GNAME,KIKAKU,TANKA,SURYO,GENKA FROM ZAIKO [26]

<< SQL OBJECT STATUS COUNT >> [27]
STATUS     | TYPE      STATIC SQL        DYNAMIC SQL       ROUTINE           TOTAL
ACTIVE              :  0                 0                 0                 0
LRU                 :  0                 0                 0                 0
TEMPORARY           :  0                 0                 0                 0
COMPILE/TRANSFER    :  0                 0                 0                 0
PROCESS             :  -                 -                 -                 0
RELEASE             :  -                 -                 -                 0
TOTAL               :  0                 0                 0                 0

注1

出力される情報は，サーバの種別，及びステータスによって異なります。

注2

6〜26，及び28〜69，及び71の項目は，SQLオブジェクトの数分繰り返されます。また，タイプ，及びステータスによって，出力される情報が変わります。詳細については，〔注意事項〕を参照してください。

注3

-sオプションを指定しなかった場合，1〜69，及び71の情報がシングルサーバ又はフロントエンドサーバの数分繰り返されます。

注4

-Rオプション，又は-rオプションを指定した場合に初期化される項目は，10〜17，及び28〜69です。

〔説明〕

統計情報の表示時刻

統計情報を表示した時刻が表示されます。

ホスト名

統計情報を取得したホスト名が表示されます。

サーバ名

統計情報を取得したサーバ名が表示されます。

SQLオブジェクト用バッファのサイズ

SQLオブジェクト用バッファのサイズが表示されます（単位：キロバイト）。

SQLオブジェクトの合計サイズ

SQLオブジェクト用バッファに格納しているSQLオブジェクトの合計サイズが表示されます（単位：バイト）。なお，pdobilsコマンド実行中に，SQLオブジェクト用バッファがほかのUAPなどから利用された場合，各SQLオブジェクトのサイズの合計と，SQLオブジェクトの合計サイズが一致しないことがあります。

SQLオブジェクトの番号

SQLオブジェクト用バッファ中の管理番号が表示されます。

ステータス

SQLオブジェクトの状態が表示されます。SQLオブジェクトの状態を次に示します。

状態

説明

ACTIVE

SQLオブジェクトを利用しているUAPがあることを示します。

LRU

SQLオブジェクト用バッファにSQLオブジェクトが格納されているが，それを使用しているUAPがないことを示します。

TEMPORARY

プロセス間で共有しないSQLオブジェクトを示します。次のどちらかに該当する場合，SQLオブジェクトはプロセス間で共有しません。

クライアント環境定義PDVWOPTMODE又はPDUAPREPLVLで，SQLオブジェクトの作成を行う指定をした場合

動的SQLのSQLオブジェクトを，SQLオブジェクト用バッファに格納中である場合

COMPILE/TRANSFER

静的SQLのSQLオブジェクトを作成中，又はフロントエンドサーバからバックエンドサーバ又はディクショナリサーバにSQLオブジェクトを転送中であることを示します。

PROCESS

SQLオブジェクトをプロセスメモリで管理していることを示します。

RELEASE

SQLオブジェクトを解放中，又は無効になったことを示します。

タイプ

SQLオブジェクトのタイプを表示します。

STATIC SQL：静的SQLのSQLオブジェクトです。

DYNAMIC SQL：動的SQLのSQLオブジェクトです。

ROUTINE：ルーチンのSQLオブジェクトです。

サイズ

SQLオブジェクトのサイズが表示されます（単位：バイト）。

実行回数※４

SQLオブジェクトを実行した回数が表示されます。

平均実行時間

SQLオブジェクトの平均実行時間が表示されます（単位：秒）。

最大実行時間

SQLオブジェクトの最大実行時間が表示されます（単位：秒）。

サービス名

OLTP環境下でUAPを実行した場合，最大実行時間を記録したサービス名が表示されます。

UAP名

最大実行時間を記録したUAP名が表示されます。UAP名が特定できない場合は表示されません。

CONNECT通番※４

最大実行時間を記録したUAPのCONNECT通番が表示されます。

SQL番号※４

最大実行時間を記録したSQL番号が表示されます。

記録した時刻

最大実行時間を記録した時刻が表示されます。

プリプロセスしたユーザの認可識別子

UAPのソースプログラムのプリプロセスを実行したユーザの認可識別子が表示されます。なお，この項目は，静的SQLのSQLオブジェクトの場合に表示されます。

プリプロセスしたソースプログラム名

プリプロセスをしたソースプログラム名が表示されます。なお，この項目は，静的SQLのSQLオブジェクトの場合に表示されます。

セクション番号

セクション番号が表示されます。なお，この項目は，静的SQLのSQLオブジェクトの場合に表示されます。

データ保証レベル

データ保証レベルが表示されます。なお，この項目は，静的SQL，又は動的SQLのSQLオブジェクトの場合に表示されます。

SQL最適化オプション

SQL最適化オプションが表示されます。なお，この項目は，静的SQL，又は動的SQLのSQLオブジェクトの場合に表示されます。

SQL拡張最適化オプション

SQL拡張最適化オプションが表示されます。なお，この項目は，静的SQL，又は動的SQLのSQLオブジェクトの場合に表示されます。

デフォルトスキーマ名

SQL文で認可識別子を省略した場合，仮定される認可識別子が表示されます。SQL文で認可識別子を指定している場合は表示されません。なお，この項目は，動的SQLのSQLオブジェクトの場合に表示されます。

ルーチンのオブジェクトID

ルーチンのオブジェクトIDが表示されます。なお，この項目は，ルーチンのSQLオブジェクトの場合に表示されます。

SQL文

SQL文が表示されます。なお，この項目は，静的SQL，又は動的SQLのSQLオブジェクトの場合に表示されます。

タイプとステータスごとのSQLオブジェクト数

SQLオブジェクト用バッファで管理しているSQLオブジェクトの，タイプとステータスごとの数を表示します。-eオプション指定時は，EXECUTE COUNTが1以上のSQLオブジェクトだけを集計対象とします。

データページ，インデクスページ，及びディレクトリページの参照回数（合計）※２※４

SQLオブジェクトの利用によって，グローバルバッファに対して参照のためのバッファ取得を要求した合計回数です。

データページ,インデクスページ,及びディレクトリページの参照回数（平均）※１※２※４

SQLオブジェクトの利用によって，グローバルバッファに対して参照のためのバッファ取得を要求した，SQLの1回当たりの平均回数です。

データページ,インデクスページ,及びディレクトリページの参照回数（最大）※２※４

SQLオブジェクトの利用によって，グローバルバッファに対して参照のためのバッファ取得を要求した，SQLの1回当たりの最大回数です。

データページ,インデクスページ,及びディレクトリページの更新回数（合計）※２※４

SQLオブジェクトの利用によって，グローバルバッファに対して更新のためのバッファ取得を要求した合計回数です。

データページ,インデクスページ,及びディレクトリページの更新回数（平均）※１※２※４

SQLオブジェクトの利用によって，グローバルバッファに対して更新のためのバッファ取得を要求した，SQLの1回当たりの平均回数です。

データページ,インデクスページ,及びディレクトリページの更新回数（最大）※２※４

SQLオブジェクトの利用によって，グローバルバッファに対して更新のためのバッファ取得を要求した，SQLの1回当たりの最大回数です。

データページ,インデクスページ,及びディレクトリページの実READ回数（合計）※２※３※４

SQLオブジェクトの利用によって，データページ,インデクスページ,及びディレクトリページに対して入力した回数の合計です。この回数には，プリフェッチ機能で入力した回数は含まれますが，非同期READ機能で入力した回数は含まれません。

データページ,インデクスページ,及びディレクトリページの実READ回数（平均）※１※２※３※４

SQLオブジェクトの利用によって，データページ,インデクスページ,及びディレクトリページに対して入力した回数の，SQLの1回当たりの平均回数です。この回数には，プリフェッチ機能で入力した回数は含まれますが，非同期READ機能で入力した回数は含まれません。

データページ,インデクスページ,及びディレクトリページの実READ回数（最大）※２※３※４

SQLオブジェクトの利用によって，データページ,インデクスページ,及びディレクトリページに対して入力した回数の，SQLの1回当たりの最大回数です。この回数には，プリフェッチ機能で入力した回数は含まれますが，非同期READ機能で入力した回数は含まれません。

データページ,インデクスページ,及びディレクトリページの実WRITE回数（合計）※２※３※４

SQLオブジェクトの利用によって，データページ,インデクスページ,及びディレクトリページに対して出力した回数の合計です。この回数には，デファードライト処理で出力した回数は含まれません。

データページ,インデクスページ,及びディレクトリページの実WRITE回数(平均)※１※２※３※４

SQLオブジェクトの利用によって，データページ,インデクスページ,及びディレクトリページに対して出力した回数の，SQLの1回当たりの平均回数です。この回数には，デファードライト処理で出力した回数は含まれません。

データページ,インデクスページ,及びディレクトリページの実WRITE回数（最大）※２※３※４

SQLオブジェクトの利用によって，データページ,インデクスページ,及びディレクトリページに対して出力した回数の，SQLの1回当たりの最大回数です。この回数には，デファードライト処理で出力した回数は含まれません。

LOB列のデータページの参照回数（合計）※４

SQLオブジェクトの利用によって，LOB列のデータページを参照するためにバッファ取得を要求した回数の合計です。

LOB列のデータページの参照回数（平均）※１※４

SQLオブジェクトの利用によって，LOB列のデータページを参照するためにバッファ取得を要求した，SQLの1回当たりの平均回数です。

LOB列のデータページの参照回数（最大）※４

SQLオブジェクトの利用によって，LOB列のデータページを参照するためにバッファ取得を要求した，SQLの1回当たりの最大回数です。

LOB列のデータページの更新回数（合計）※４

SQLオブジェクトの利用によって，LOB列のデータページを更新するためにバッファ取得を要求した回数の合計です。

LOB列のデータページの更新回数（平均）※１※４

SQLオブジェクトの利用によって，LOB列のデータページを更新するためにバッファ取得を要求した，SQLの1回当たりの平均回数です。

LOB列のデータページの更新回数（最大）※４

SQLオブジェクトの利用によって，LOB列のデータページを更新するためにバッファ取得を要求した，SQLの1回当たりの最大回数です。

LOB列のデータページの実READ回数（合計）※４

SQLオブジェクトの利用によって，LOB列のデータページに対して発生した実READ回数の合計です。

LOB列のデータページの実READ回数（平均）※１※４

SQLオブジェクトの利用によって，LOB列のデータページに対して発生した実READ回数の，SQLの1回当たりの平均値です。

LOB列のデータページの実READ回数（最大）※４

SQLオブジェクトの利用によって，LOB列のデータページに対して発生した実READ回数の，SQLの1回当たりの最大値です。

LOB列のデータページの実WRITE回数（合計）※４

SQLオブジェクトの利用によって，LOB列のデータページに対して発生した実WRITE回数の合計です。

LOB列のデータページの実WRITE回数（平均）※１※４

SQLオブジェクトの利用によって，LOB列のデータページに対して発生した実WRITE回数の，SQLの1回当たりの平均値です。

LOB列のデータページの実WRITE回数（最大）※４

SQLオブジェクトの利用によって，LOB列のデータページに対して発生した実WRITE回数の，SQLの1回当たりの最大値です。

リストページの参照回数（合計）※４

SQLオブジェクトの利用によって，グローバルバッファに対してリストページ参照のためのバッファ取得を要求した合計回数です。

リストページの参照回数（平均）※１※４

SQLオブジェクトの利用によって，グローバルバッファに対してリストページ参照のためのバッファ取得を要求した，SQLの1回当たりの平均回数です。

リストページの参照回数（最大）※４

SQLオブジェクトの利用によって，グローバルバッファに対してリストページ参照のためのバッファ取得を要求した，SQLの1回当たりの最大回数です。

リストページの更新回数（合計）※４

SQLオブジェクトの利用によって，グローバルバッファに対してリストページ更新のためのバッファ取得を要求した合計回数です。

リストページの更新回数（平均）※１※４

SQLオブジェクトの利用によって，グローバルバッファに対してリストページ更新のためのバッファ取得を要求した，SQLの1回当たりの平均回数です。

リストページの更新回数（最大）※４

SQLオブジェクトの利用によって，グローバルバッファに対してリストページ更新のためのバッファ取得を要求した，SQLの1回当たりの最大回数です。

リストページの実READ回数（合計）※４

SQLオブジェクトの利用によって，リストページに対して発生した実READ回数の合計です。

リストページの実READ回数（平均）※１※４

SQLオブジェクトの利用によって，リストページに対して発生した実READ回数の，SQLの1回当たりの平均値です。

リストページの実READ回数（最大）※４

SQLオブジェクトの利用によって，リストページに対して発生した実READ回数の，SQLの1回当たりの最大値です。

リストページの実WRITE回数（合計）※４

SQLオブジェクトの利用によって，リストページに対して発生した実WRITE回数の合計です。

リストページの実WRITE回数（平均）※１※４

SQLオブジェクトの利用によって，リストページに対して発生した実WRITE回数の，SQLの1回当たりの平均値です。

リストページの実WRITE回数（最大）※４

SQLオブジェクトの利用によって，リストページに対して発生した実WRITE回数の，SQLの1回当たりの最大値です。

作業表用ファイルのREAD回数（合計）※４

SQLオブジェクトの利用によって，作業表用ファイルに対して発生したREAD回数の合計です。

作業表用ファイルのREAD回数（平均）※１※４

SQLオブジェクトの利用によって，作業表用ファイルに対して発生したREAD回数の，SQLの1回当たりの平均値です。

作業表用ファイルのREAD回数（最大）※４

SQLオブジェクトの利用によって，作業表用ファイルに対して発生したREAD回数の，SQLの1回当たりの最大値です。

作業表用ファイルのWRITE回数（合計）※４

SQLオブジェクトの利用によって，作業表用ファイルに対して発生したWRITE回数の合計です。

作業表用ファイルのWRITE回数（平均）※１※４

SQLオブジェクトの利用によって，作業表用ファイルに対して発生したWRITE回数の，SQLの1回当たりの平均値です。

作業表用ファイルのWRITE回数（最大）※４

SQLオブジェクトの利用によって，作業表用ファイルに対して発生したWRITE回数の，SQLの1回当たりの最大値です。

HiRDBのバージョン

ZZがない場合はVV-RRだけを表示します。

アクセス表と検索方法

ACCESS TYPE SSCT# n : aa...a (T:bb...b) cc...c (I:dd...d)

n：システム固有情報を表示します。

aa...a：アクセスする表の表名を表示します。ただし，ビュー表の基表の場合は「*.*」を表示します。

bb...b：アクセスする表のIDを表示します。

cc...c：アクセスする表の検索方法を表示します。検索方法については「検索方法の種類」を参照してください。

dd...d：インデクスのIDを表示します。ただし，cc...cが「TABLE SCAN」の場合は(I:dd...d)を表示しません。

注※1

平均値の小数点以下は切り捨てられます。ただし，合計がオーバフローした場合，平均値の箇所に「****」を表示します。

注※2

表やインデクスなどの定義情報が格納されているディクショナリ表へのアクセス回数は含まれません。

注※3

デファードライト処理とは，グローバルバッファ上で更新されたページをCOMMIT文が発行されてもディスクに書き込まないで，更新ページ数がある一定の値に達した時点でディスクに書き込む処理のことです。デファードライト処理によって，DB処理プロセスと非同期にHiRDBファイルへ出力されます。

プリフェッチ機能とは，DB処理プロセスがディスクボリューム上の表データのページを，複数ページ一括して読み込む機能です。

非同期READ機能とは，DB処理プロセスと非同期にディスクボリューム上の表データのページを，複数ページ一括して読み込む機能です。

注※4

カウンタがオーバフローすることがあります。オーバフローしたカウンタには，先頭に「*」が表示されます。オーバフローした場合でも，カウンタはカウントし続けます。

〔注意事項〕

タイプとステータスの組み合わせによって，6〜26の項目は表示される場合と表示されない場合とがあります。タイプとステータスの組み合わせによる各項目の表示有無を次の表に示します。なお，番号は出力形式の番号と対応しています。

表2‒14　タイプとステータスの組み合わせによる各項目の表示有無（静的SQLの場合）

番号

タイプ

STATIC SQL

DYNAMIC SQL

ROUTINE

ステータス

ステータス

ステータス

A

L

T

C

P

R

A

L

T

C

P

R

A

L

T

C

P

R

6

○

○

○

○

○

○

○

○

○

○

○

○

○

○

○

○

○

○

7

○

○

○

○

○

○

○

○

○

○

○

○

○

○

○

○

○

○

8

○

○

−

−

−

−

○

○

−

−

−

−

○

○

−

−

−

−

9

○

○

−

−

−

−

○

○

−

−

−

−

○

○

−

−

−

−

10

○

○

−

−

−

−

○

○

−

−

−

−

○

○

−

−

−

−

11

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

12

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

13

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

14

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

15

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

16

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

17

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

18

○

○

−

−

−

−

−

−

−

−

−

−

−

−

−

−

−

−

19

○

○

−

−

−

−

−

−

−

−

−

−

−

−

−

−

−

−

20

○

○

−

−

−

−

−

−

−

−

−

−

−

−

−

−

−

−

21

○

○

−

−

−

−

○

○

−

−

−

−

×

×

−

−

−

−

22

○

○

−

−

−

−

○

○

−

−

−

−

×

×

−

−

−

−

23

○

○

−

−

−

−

○

○

−

−

−

−

×

×

−

−

−

−

24

×

×

−

−

−

−

○

○

−

−

−

−

−

−

−

−

−

−

25

−

−

−

−

−

−

−

−

−

−

−

−

○

○

−

−

−

−

26

○

○

−

−

−

−

○

○

−

−

−

−

−

−

−

−

−

−

28

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

29

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

30

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

31

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

32

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

33

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

34

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

35

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

36

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

37

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

38

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

39

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

40

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

41

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

42

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

43

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

44

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

45

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

46

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

47

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

48

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

49

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

50

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

51

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

52

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

53

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

54

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

55

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

56

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

57

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

58

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

59

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

60

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

61

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

62

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

63

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

64

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

65

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

66

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

67

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

68

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

69

△

△

−

−

−

−

△

△

−

−

−

−

△

△

−

−

−

−

71

○

○

−

−

−

−

○

○

−

−

−

−

−

−

−

−

−

−

（凡例）

○：表示されます。

△：番号10の項目が1以上の場合に表示されます。0の場合，該当する情報は表示されません。

×：表示されません。

−：該当しません。

A：ACTIVE

L：LRU

T：TEMPORARY

C：COMPILE/TRANSFER

P：PROCESS

R：RELEASE

(b)　実行中情報出力形式

pdobils VV-RR-ZZ [70]
<< SQL OBJECT CACHE INFORMATION >> DATE: 2004/01/01 TIME: 00:00:00 [1]
HOST NAME                   : node01 [2]
SERVER NAME                 : fes01 [3]
CACHE SIZE(KB)              : 2048 [4]
SQL OBJECT TOTAL SIZE(B)    : 1932556 [5]

<< UAP INFORMATION >> [72]
 PROCESS ID                 : 12345678 [73]
 TRANSACTION ID(GID/BID)    : aa...a/bb...b [74]
 SERVICE NAME               : [75]
 UAP NAME                   : pdsql [76]
 CONNECT NO                 : 234 [77]

<< CURRENT SQL OBJECT >>
*SQL OBJECT NO              : 1 [6]
 STATUS                     : ACTIVE [7]
 TYPE                       : STATIC SQL [8]
 SIZE                       : 7792 [9]
 EXECUTE COUNT              : 10 [10]
 # EXECUTE TIME AVG(s)      : 1.234567 [11]
 # EXECUTE TIME MAX(s)      : 9.000000 [12]
 # SERVICE NAME             : [13]
 # UAP NAME                 : Unknown [14]
 # CONNECT NO               : 123 [15]
 # SQL NO                   : 456 [16]
 # RECORD DATE/TIME         : 2004/01/01 00:00:00 [17]
 DB REFERENCE GET COUNT     : 55500 [28] AVG 5550 [29] MAX 5600 [30]
 DB UPDATE GET COUNT        : 0 [31] AVG 0 [32] MAX 0 [33]
 DB READ COUNT              : 800 [34] AVG 80 [35] MAX 85 [36]
 DB WRITE COUNT             : 0 [37] AVG 0 [38] MAX 0 [39]
 LOB REFERENCE GET COUNT    : 0 [40] AVG 0 [41] MAX 0 [42]
 LOB UPDATE GET COUNT       : 0 [43] AVG 0 [44] MAX 0 [45]
 LOB READ COUNT             : 0 [46] AVG 0 [47] MAX 0 [48]
 LOB WRITE COUNT            : 0 [49] AVG 0 [50] MAX 0 [51]
 LIST REFERENCE GET COUNT   : 0 [52] AVG 0 [53] MAX 0 [54]
 LIST UPDATE GET COUNT      : 0 [55] AVG 0 [56] MAX 0 [57]
 LIST READ COUNT            : 0 [58] AVG 0 [59] MAX 0 [60]
 LIST WRITE COUNT           : 0 [61] AVG 0 [62] MAX 0 [63]
 WKFILE READ COUNT          : 0 [64] AVG 0 [65] MAX 0 [66]
 WKFILE WRITE COUNT         : 0 [67] AVG 0 [68] MAX 0 [69]
 PREPROCESSOR USER          : user1 [18]
 PREPROCESSOR SOURCE        : abc.ec [19]
 SECTION NO                 : 123 [20]
 ISOLATION LEVEL            : 2 [21]
 OPTIMIZE LEVEL             : 10 [22]
 ADDITIONAL OPTIMIZE LEVEL  : 0 [23]
 DEFAULT SCHEMA             : [24]
 ROUTINE ID                 : 123 [25]
 ACCESS TYPE SSCT# n        : user1.ZAIKO (T:0x0002007b) INDEX SCAN (I:0x00030005)[71]
 SQL                        : SELECT GNO,GNAME,KIKAKU,TANKA,SURYO,GENKA FROM ZAIKO [26]

<< SQL OBJECT STATUS COUNT >> [27]
STATUS     | TYPE      STATIC SQL        DYNAMIC SQL       ROUTINE           TOTAL
ACTIVE              :  0                 0                 0                 0
LRU                 :  0                 0                 0                 0
TEMPORARY           :  0                 0                 0                 0
COMPILE/TRANSFER    :  0                 0                 0                 0
PROCESS             :  -                 -                 -                 0
RELEASE             :  -                 -                 -                 0
TOTAL               :  0                 0                 0                 0

〔説明〕

1〜71の項目は一般出力形式と同じです。

72. SQLを実行しているUAP情報

SQLを実行しているUAPの情報を表示します。複数のUAPがSQLを実行している場合は，UAPとSQLオブジェクトの情報（6〜26，及び71〜77の項目）を繰り返し表示します。

73. SQLを実行しているUAPが接続しているサーバのプロセスID

SQLを実行しているUAPが接続しているフロントエンドサーバ又はシングルサーバのプロセスIDを表示します。

74. SQLを実行しているUAPのトランザクションID

TRANSACTION ID(GID/BID) : aa...a/bb...b

SQLを実行しているUAPのトランザクションIDを表示します。

aa...a：トランザクションのグローバル識別子

bb...b：トランザクションのブランチ識別子

75. SQLを実行しているUAPのサービス名

SQLがOLTP環境下で実行されている場合にUAPのサービス名を表示します。

76. SQLを実行しているUAP名

SQLを実行しているUAP名を表示します。

UAP名が特定できない場合，UAP名を表示しません。

77. SQLを実行しているUAPのコネクト通番

SQLを実行しているUAPのコネクト通番を表示します。

(c)　使用中情報出力形式

pdobils VV-RR-ZZ [70]
<< SQL OBJECT CACHE INFORMATION >> DATE: 2004/01/01 TIME: 00:00:00 [1]
HOST NAME                   : node01 [2]
SERVER NAME                 : fes01 [3]
CACHE SIZE(KB)              : 2048 [4]
SQL OBJECT TOTAL SIZE(B)    : 1932556 [5]

<< UAP INFORMATION >> [72]
 PROCESS ID                 : 12345678 [73]
 TRANSACTION ID(GID/BID)    : aa...a/bb...b [74]
 SERVICE NAME               : [75]
 UAP NAME                   : pdsql [76]
 CONNECT NO                 : 234 [77]
 ACTID                      : 1-1-4 [79]

<< USING SQL OBJECT LIST >>
*SQL OBJECT NO              : 1 [6]
 STATUS                     : ACTIVE [7]
 TYPE                       : STATIC SQL [8]
 SIZE                       : 7792 [9]
 EXECUTE COUNT              : 10 [10]
 # EXECUTE TIME AVG(s)      : 1.234567 [11]
 # EXECUTE TIME MAX(s)      : 9.000000 [12]
 # SERVICE NAME             : [13]
 # UAP NAME                 : Unknown [14]
 # CONNECT NO               : 123 [15]
 # SQL NO                   : 456 [16]
 # RECORD DATE/TIME         : 2004/01/01 00:00:00 [17]
 DB REFERENCE GET COUNT     : 55500 [28] AVG 5550 [29] MAX 5600 [30]
 DB UPDATE GET COUNT        : 0 [31] AVG 0 [32] MAX 0 [33]
 DB READ COUNT              : 800 [34] AVG 80 [35] MAX 85 [36]
 DB WRITE COUNT             : 0 [37] AVG 0 [38] MAX 0 [39]
 LOB REFERENCE GET COUNT    : 0 [40] AVG 0 [41] MAX 0 [42]
 LOB UPDATE GET COUNT       : 0 [43] AVG 0 [44] MAX 0 [45]
 LOB READ COUNT             : 0 [46] AVG 0 [47] MAX 0 [48]
 LOB WRITE COUNT            : 0 [49] AVG 0 [50] MAX 0 [51]
 LIST REFERENCE GET COUNT   : 0 [52] AVG 0 [53] MAX 0 [54]
 LIST UPDATE GET COUNT      : 0 [55] AVG 0 [56] MAX 0 [57]
 LIST READ COUNT            : 0 [58] AVG 0 [59] MAX 0 [60]
 LIST WRITE COUNT           : 0 [61] AVG 0 [62] MAX 0 [63]
 WKFILE READ COUNT          : 0 [64] AVG 0 [65] MAX 0 [66]
 WKFILE WRITE COUNT         : 0 [67] AVG 0 [68] MAX 0 [69]
 PREPROCESSOR USER          : user1 [18]
 PREPROCESSOR SOURCE        : abc.ec [19]
 SECTION NO                 : 123 [20]
 ISOLATION LEVEL            : 2 [21]
 OPTIMIZE LEVEL             : 10 [22]
 ADDITIONAL OPTIMIZE LEVEL  : 0 [23]
 DEFAULT SCHEMA             : [24]
 ROUTINE ID                 : 123 [25]
 ACCESS TYPE SSCT# n        : user1.ZAIKO (T:0x0002007b) INDEX SCAN (I:0x00030005)[71]
 SQL                        : SELECT GNO,GNAME,KIKAKU,TANKA,SURYO,GENKA FROM ZAIKO [26]

<< SQL OBJECT STATUS COUNT >> [27]
STATUS     | TYPE      STATIC SQL        DYNAMIC SQL       ROUTINE           TOTAL
ACTIVE              :  0                 0                 0                 0
LRU                 :  0                 0                 0                 0
TEMPORARY           :  0                 0                 0                 0
COMPILE/TRANSFER    :  0                 0                 0                 0
PROCESS             :  -                 -                 -                 0
RELEASE             :  -                 -                 -                 0
TOTAL               :  0                 0                 0                 0

〔説明〕

1〜71の項目は一般出力形式と同じです。

72. SQLオブジェクトを使用しているUAP情報

SQLオブジェクトを使用しているUAPの情報を表示します。複数のUAPがSQLオブジェクトを使用している場合は，UAPとSQLオブジェクトの情報（6〜26，71〜77，及び79の項目）を繰り返し表示します。

73. SQLオブジェクトを使用しているUAPが接続しているサーバのプロセスID

SQLオブジェクトを使用しているUAPが接続しているフロントエンドサーバ，又はシングルサーバのプロセスIDを表示します。

74. SQLオブジェクトを使用しているUAPのトランザクションID

TRANSACTION ID(GID/BID) : aa...a/bb...b

SQLオブジェクトを使用しているUAPのトランザクションIDを表示します。

aa...a：トランザクションのグローバル識別子

bb...b：トランザクションのブランチ識別子

75. SQLオブジェクトを使用しているUAPのサービス名

SQLオブジェクトがOLTP環境下で使用されている場合にUAPのサービス名を表示します。

76. SQLオブジェクトを使用しているUAP名

SQLオブジェクトを使用しているUAP名を表示します。

77. SQLオブジェクトを使用しているUAPのコネクト通番

SQLオブジェクトを使用しているUAPのコネクト通番を表示します。

79. SQLオブジェクトを使用しているユーザ識別子

SQLオブジェクトを使用しているユーザ識別子を表示します。

(d)　保守情報出力形式

pdobils VV-RR-ZZ [70]
<< SQL OBJECT CACHE INFORMATION >> DATE: 2004/01/01 TIME: 00:00:00 [1]
HOST NAME                   : node01 [2]
SERVER NAME                 : fes01 [3]
CACHE SIZE(KB)              : 2048 [4]
SQL OBJECT TOTAL SIZE(B)    : 1932556 [5]

<< SQL OBJECT #N 12345/67890 >> [78]※
0001: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789xx
0002: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789xx

注※

指定されたSQLオブジェクト番号の数分，繰り返し出力します。

指定されたSQLオブジェクト番号のSQLオブジェクトが存在しない場合は，表示されません。

〔説明〕

4〜5，及び70の項目は，一般出力形式と同じです。

1. SQLオブジェクトバッファ統計情報表示時間

保守情報を表示した時間を表示します。

2. ホスト名

保守情報を取得したホスト名を表示します。

3. サーバ名

保守情報を取得したサーバ名を表示します。

78. SQLオブジェクトの番号とサイズ

SQL OBJECT #N aa...a/bb...b

N：SQLオブジェクト用バッファ中の管理番号を表示します。

aa...a：保守情報のサイズをバイト単位で表示します。

bb...b：SQLオブジェクトのサイズをバイト単位で表示します。

(e)　一般出力DAT形式

一般出力DAT形式で出力する項目を，先頭から区切り文字列で区切って標準出力に出力します。

出力形式のSQLには，SQL文に含まれているTAB（X'09'），NL（X'0a'），CR（X'0d'）などを，そのまま出力します。また，行末には改行文字（0x0a）が入ります。

一般出力DAT形式で出力する項目を次の表に示します。

表2‒15　一般出力DAT形式で出力する項目

出力する項目名

内容

DATE

[1]のDATE部分

TIME

[1]のTIME部分

HOST NAME

[2]

SERVER NAME

[3]

CACHE SIZE(KB)

[4]

SQL OBJECT TOTAL SIZE(B)

[5]

SQL OBJECT NO

[6]

STATUS

[7]

TYPE

[8]

SIZE

[9]

EXECUTE COUNT

[10]

EXECUTE TIME AVG(s)

[11]

EXECUTE TIME MAX(s)

[12]

SERVICE NAME

[13]

UAP NAME

[14]

CONNECT NO

[15]

SQL NO

[16]

RECORD DATE

[17]のDATE部分

RECORD TIME

[17]のTIME部分

DB REFERENCE GET COUNT

[28]

DB REFERENCE GET COUNT(AVG)

[29]

DB REFERENCE GET COUNT(MAX)

[30]

DB UPDATE GET COUNT

[31]

DB UPDATE GET COUNT(AVG)

[32]

DB UPDATE GET COUNT(MAX)

[33]

DB READ COUNT

[34]

DB READ COUNT(AVG)

[35]

DB READ COUNT(MAX)

[36]

DB WRITE COUNT

[37]

DB WRITE COUNT(AVG)

[38]

DB WRITE COUNT(MAX)

[39]

LOB REFERENCE GET COUNT

[40]

LOB REFERENCE GET COUNT(AVG)

[41]

LOB REFERENCE GET COUNT(MAX)

[42]

LOB UPDATE GET COUNT

[43]

LOB UPDATE GET COUNT(AVG)

[44]

LOB UPDATE GET COUNT(MAX)

[45]

LOB READ COUNT

[46]

LOB READ COUNT(AVG)

[47]

LOB READ COUNT(MAX)

[48]

LOB WRITE COUNT

[49]

LOB WRITE COUNT(AVG)

[50]

LOB WRITE COUNT(MAX)

[51]

LIST REFERENCE GET COUNT

[52]

LIST REFERENCE GET COUNT(AVG)

[53]

LIST REFERENCE GET COUNT(MAX)

[54]

LIST UPDATE GET COUNT

[55]

LIST UPDATE GET COUNT(AVG)

[56]

LIST UPDATE GET COUNT(MAX)

[57]

LIST READ COUNT

[58]

LIST READ COUNT(AVG)

[59]

LIST READ COUNT(MAX)

[60]

LIST WRITE COUNT

[61]

LIST WRITE COUNT(AVG)

[62]

LIST WRITE COUNT(MAX)

[63]

WKFILE READ COUNT

[64]

WKFILE READ COUNT(AVG)

[65]

WKFILE READ COUNT(MAX)

[66]

WKFILE WRITE COUNT

[67]

WKFILE WRITE COUNT(AVG)

[68]

WKFILE WRITE COUNT(MAX)

[69]

PREPROCESSOR USER

[18]

PREPROCESSOR SOURCE

[19]

SECTION NO

[20]

ISOLATION LEVEL

[21]

OPTIMIZE LEVEL

[22]

ADDITIONAL OPTIMIZE LEVEL

[23]

DEFAULT SCHEMA

[24]

ROUTINE ID

[25]

ACCESS TYPE

[71]

SQL

[26]

(f)　実行中情報出力DAT形式

実行中情報出力DAT形式で出力する項目を，先頭から区切り文字列で区切って標準出力に出力します。

出力形式のSQLには，SQL文に含まれているTAB（X'09'），NL（X'0a'），CR（X'0d'）などを，そのまま出力します。また，行末には改行文字（0x0a）が入ります。

実行中情報出力DAT形式で出力する項目を次の表に示します。

表2‒16　実行中情報出力DAT形式で出力する項目

出力する項目名

内容

DATE

[1]のDATE部分

TIME

[1]のTIME部分

HOST NAME

[2]

SERVER NAME

[3]

CACHE SIZE(KB)

[4]

SQL OBJECT TOTAL SIZE(B)

[5]

PROCESS ID

[73]

TRANSACTION ID(GID/BID)

[74]

SERVICE NAME

[75]

UAP NAME

[76]

CONNECT NO

[77]

SQL OBJECT NO

[6]

STATUS

[7]

TYPE

[8]

SIZE

[9]

EXECUTE COUNT

[10]

EXECUTE TIME AVG(s)

[11]

EXECUTE TIME MAX(s)

[12]

SERVICE NAME

[13]

UAP NAME

[14]

CONNECT NO

[15]

SQL NO

[16]

RECORD DATE

[17]のDATE部分

RECORD TIME

[17]のTIME部分

DB REFERENCE GET COUNT

[28]

DB REFERENCE GET COUNT(AVG)

[29]

DB REFERENCE GET COUNT(MAX)

[30]

DB UPDATE GET COUNT

[31]

DB UPDATE GET COUNT(AVG)

[32]

DB UPDATE GET COUNT(MAX)

[33]

DB READ COUNT

[34]

DB READ COUNT(AVG)

[35]

DB READ COUNT(MAX)

[36]

DB WRITE COUNT

[37]

DB WRITE COUNT(AVG)

[38]

DB WRITE COUNT(MAX)

[39]

LOB REFERENCE GET COUNT

[40]

LOB REFERENCE GET COUNT(AVG)

[41]

LOB REFERENCE GET COUNT(MAX)

[42]

LOB UPDATE GET COUNT

[43]

LOB UPDATE GET COUNT(AVG)

[44]

LOB UPDATE GET COUNT(MAX)

[45]

LOB READ COUNT

[46]

LOB READ COUNT(AVG)

[47]

LOB READ COUNT(MAX)

[48]

LOB WRITE COUNT

[49]

LOB WRITE COUNT(AVG)

[50]

LOB WRITE COUNT(MAX)

[51]

LIST REFERENCE GET COUNT

[52]

LIST REFERENCE GET COUNT(AVG)

[53]

LIST REFERENCE GET COUNT(MAX)

[54]

LIST UPDATE GET COUNT

[55]

LIST UPDATE GET COUNT(AVG)

[56]

LIST UPDATE GET COUNT(MAX)

[57]

LIST READ COUNT

[58]

LIST READ COUNT(AVG)

[59]

LIST READ COUNT(MAX)

[60]

LIST WRITE COUNT

[61]

LIST WRITE COUNT(AVG)

[62]

LIST WRITE COUNT(MAX)

[63]

WKFILE READ COUNT

[64]

WKFILE READ COUNT(AVG)

[65]

WKFILE READ COUNT(MAX)

[66]

WKFILE WRITE COUNT

[67]

WKFILE WRITE COUNT(AVG)

[68]

WKFILE WRITE COUNT(MAX)

[69]

PREPROCESSOR USER

[18]

PREPROCESSOR SOURCE

[19]

SECTION NO

[20]

ISOLATION LEVEL

[21]

OPTIMIZE LEVEL

[22]

ADDITIONAL OPTIMIZE LEVEL

[23]

DEFAULT SCHEMA

[24]

ROUTINE ID

[25]

ACCESS TYPE

[71]

SQL

[26]

(g)　使用中情報出力DAT形式

使用中情報出力DAT形式で出力する項目を，先頭から区切り文字列で区切って標準出力に出力します。

出力形式のSQLには，SQL文に含まれているTAB（X'09'），NL（X'0a'），CR（X'0d'）などを，そのまま出力します。また，行末には改行文字（0x0a）が入ります。

使用中情報出力DAT形式で出力する項目を次の表に示します。

表2‒17　使用中情報出力DAT形式で出力する項目

出力する項目名

内容

DATE

[1]のDATE部分

TIME

[1]のTIME部分

HOST NAME

[2]

SERVER NAME

[3]

CACHE SIZE(KB)

[4]

SQL OBJECT TOTAL SIZE(B)

[5]

PROCESS ID

[73]

TRANSACTION ID(GID/BID)

[74]

SERVICE NAME

[75]

UAP NAME

[76]

CONNECT NO

[77]

ACTID

[79]

SQL OBJECT NO

[6]

STATUS

[7]

TYPE

[8]

SIZE

[9]

EXECUTE COUNT

[10]

EXECUTE TIME AVG(s)

[11]

EXECUTE TIME MAX(s)

[12]

SERVICE NAME

[13]

UAP NAME

[14]

CONNECT NO

[15]

SQL NO

[16]

RECORD DATE

[17]のDATE部分

RECORD TIME

[17]のTIME部分

DB REFERENCE GET COUNT

[28]

DB REFERENCE GET COUNT(AVG)

[29]

DB REFERENCE GET COUNT(MAX)

[30]

DB UPDATE GET COUNT

[31]

DB UPDATE GET COUNT(AVG)

[32]

DB UPDATE GET COUNT(MAX)

[33]

DB READ COUNT

[34]

DB READ COUNT(AVG)

[35]

DB READ COUNT(MAX)

[36]

DB WRITE COUNT

[37]

DB WRITE COUNT(AVG)

[38]

DB WRITE COUNT(MAX)

[39]

LOB REFERENCE GET COUNT

[40]

LOB REFERENCE GET COUNT(AVG)

[41]

LOB REFERENCE GET COUNT(MAX)

[42]

LOB UPDATE GET COUNT

[43]

LOB UPDATE GET COUNT(AVG)

[44]

LOB UPDATE GET COUNT(MAX)

[45]

LOB READ COUNT

[46]

LOB READ COUNT(AVG)

[47]

LOB READ COUNT(MAX)

[48]

LOB WRITE COUNT

[49]

LOB WRITE COUNT(AVG)

[50]

LOB WRITE COUNT(MAX)

[51]

LIST REFERENCE GET COUNT

[52]

LIST REFERENCE GET COUNT(AVG)

[53]

LIST REFERENCE GET COUNT(MAX)

[54]

LIST UPDATE GET COUNT

[55]

LIST UPDATE GET COUNT(AVG)

[56]

LIST UPDATE GET COUNT(MAX)

[57]

LIST READ COUNT

[58]

LIST READ COUNT(AVG)

[59]

LIST READ COUNT(MAX)

[60]

LIST WRITE COUNT

[61]

LIST WRITE COUNT(AVG)

[62]

LIST WRITE COUNT(MAX)

[63]

WKFILE READ COUNT

[64]

WKFILE READ COUNT(AVG)

[65]

WKFILE READ COUNT(MAX)

[66]

WKFILE WRITE COUNT

[67]

WKFILE WRITE COUNT(AVG)

[68]

WKFILE WRITE COUNT(MAX)

[69]

PREPROCESSOR USER

[18]

PREPROCESSOR SOURCE

[19]

SECTION NO

[20]

ISOLATION LEVEL

[21]

OPTIMIZE LEVEL

[22]

ADDITIONAL OPTIMIZE LEVEL

[23]

DEFAULT SCHEMA

[24]

ROUTINE ID

[25]

ACCESS TYPE

[71]

SQL

[26]

(8)　統計情報の見方

統計情報の見方について説明します。

番号27のPROCESSについて

STATUSがPROCESSのTOTAL数がカウントされている場合，SQLオブジェクト用バッファにSQLオブジェクトが格納できないため，プロセスごとにSQLオブジェクトを管理していることを示します。

常にカウントされている場合は，SQLオブジェクト用バッファを再度見積もり直すことをお勧めします。

番号27のDYNAMICについて

その1

STATUSがTEMPORARYのSTATIC SQL数がカウントされている場合，クライント環境定義PDUAPREPLVLが設定されているUAPを実行していることを示します。

PDUAPREPLVLが不要なUAPの場合，PDUAPREPLVLの指定を削除してUAPを実行することをお勧めします。

その2

STATUSがTEMPORARYのDYNAMIC SQL数が常にカウントされている場合，クライント環境定義PDUAPREPLVL，及びPDVWOPTMODEが設定されているUAPを実行していることを示します。

PDUAPREPLVL，及びPDVWOPTMODEが不要なUAPの場合，PDUAPREPLVL，及びPDVWOPTMODEの指定を削除してUAPを実行することをお勧めします。

実行中SQL文の特定について

-Uオプションを指定することで，<<CURRENT SQL OBJECT>>の「SQL」から，実行しているSQLを特定できます。-Uオプションを指定しない場合でも，SQLオブジェクト用バッファが十分にある場合，次の手順で統計情報を参照すると，実行中のSQL文を特定できます。なお，実行中のSQL文を特定する場合，PDUAPREPLVL及びPDVWOPTMODEを指定しないで，再利用ありを指定する必要があります。

STATUSがACTIVEのSQLオブジェクトを特定します。

1.のSQLオブジェクトのSQLを参照します。なお，静的SQLの場合は，更にSQLを実行しているUAPも特定できます。SQLオブジェクトのPREPROCESSOR USE，及びPREPROCESSOR SOURCEを参照し，そのプリプロセスをしたソースを使用しているUAPが，SQL文を実行しているUAPとなります。

チューニングの対象となるSQLについて

次の項目の値を参照し，値が大きいSQL文がチューニング対象となります。

SQLオブジェクトの実行回数

SQLオブジェクトの平均実行時間

SQLオブジェクトの最大実行時間

データページ，インデクスページ，及びディレクトリページの参照回数

データページ，インデクスページ，及びディレクトリページの更新回数

データページ，インデクスページ，及びディレクトリページの実READ回数

データページ，インデクスページ，及びディレクトリページの実WRITE回数

作業表用ファイルのREAD回数

作業表用ファイルのWRITE回数

アクセス表と検索方法を確認し，意図した検索方法で検索されていない場合は，SQLチューニングを行うことを検討してください。

チューニングの詳細については，マニュアル「HiRDB システム運用ガイド」の実行時間が長いSQLのチューニングを参照してください。

ユーザ識別子ごとのSQL文の特定方法について

-Aオプションを指定することで，<<USING SQL OBJECT LIST>>の「SQL」から使用しているSQLを特定できます。

また，定期的に-Aオプションを指定して使用中SQLオブジェクトの情報を取得しておくことで，デッドロック発生時に出力されるデッドロック情報のユーザ識別子と突き合わせて，SQL文を特定できる場合があります。

2.88　pdobjconv（64ビットモードのHiRDBへのSQLオブジェクトの移行）

2.88.1　pdobjconvの形式と規則

(1)　機能

HiRDBを32ビットモードから64ビットモードへ移行するときに，pdobjconvコマンドを実行します。このコマンドを実行すると，ディクショナリ中の次に示す情報が64ビットモード対応になります。このコマンドを実行しないと，64ビットモードに移行後，ビュー表，手続き，及び関数が使用できなくなります。

ビュー解析情報

手続きのSQLオブジェクト

関数のSQLオブジェクト

トリガのSQLオブジェクト

このコマンドは，32ビットモードのHiRDBから64ビットモードのHiRDBへバージョンアップするときに（pdvrupコマンド実行後に）HiRDBが自動的に起動します。したがって，通常時は実行することはほとんどありません。

(2)　実行者

DBA権限を持っているユーザが実行できます。

(3)　形式

　pdobjconv

(4)　オプション

なし。

(5)　規則

pdobjconvコマンドは，HiRDBが稼働中のときに実行できます。

pdobjconvコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdobjconvコマンドを実行するには，システム用RDエリアがオープン状態であり，かつ閉塞解除状態である必要があります。

(6)　注意事項

ユーザがpdobjconvコマンドを実行した場合は，カレントディレクトリ下にSQLオブジェクト移行情報が作成されます。したがって，pdobjconvコマンドの実行者にファイルの作成権限が必要になります。

pdobjconvコマンドは，同時に複数実行しないでください。

次の条件をどちらも満たす場合，pdobjconvコマンド実行前後で，ユーザが定義したビュー表の検索結果が異なることがあります。

移行前に，ビュー表を次の順序で定義している。

1.ユーザが関数を定義する。

2.1.で定義した関数を指定してビュー表を定義する。

3.1.と同一のユーザが，同一名称で，かつ引数の数が一致する関数を定義する。

上記の条件を満たすビュー表を定義した後，pdobjconvコマンドを実行している。

pdobjconvコマンドの結果は，次のコマンド実行時のリターンコードで確認できます。

0：

pdobjconvコマンドが正常終了しました。

4：

警告レベルのエラーはありますが，pdobjconvコマンドを正常終了します。

8：

一部のSQLオブジェクトの移行に失敗しました。メッセージ又はSQLオブジェクト移行情報を参照して，エラーとなった要因を調査して取り除いてください。

又は，pdobjconvコマンド実行上のエラーが発生しました。

12：

pdobjconvコマンドが異常終了しました。メッセージ又はSQLオブジェクト移行情報を参照して，エラーとなった要因を調査して取り除いてください。

pdcancelコマンドでpdobjconvコマンドをキャンセルしたり，又はpdobjconvコマンドのプロセスで異常が発生したりすると，リターンコードが12になります。

(7)　出力形式

pdobjconvコマンドを実行すると，実行結果（SQLオブジェクト移行情報）が次に示すファイルに出力されます。

HiRDBが自動的にpdobjconvコマンドを起動したとき

$PDDIR/spool/pdobjconv.log

ユーザがpdobjconvコマンドを起動したとき

カレントディレクトリ下のpdobjconv.log

SQLオブジェクト移行情報の出力例を次に示します。

   << SQL OBJECT Converter >>                  [15]START TIME : YYYY/MM/DD HH:MM:SS

[1]VIEW DEF COUNT               : 1
[2]PROCEDURE COUNT              : 12
[3]FUNCTION COUNT               : 1
[4]TRIGGER COUNT                : 1
 [5]             [6]      [7]      [8]
*VIEW*         INVALID : USER01.USER_VIEW01
KFPX21103-I...

 [5]             [6]      [7]      [8]
*PROCEDURE*    VALID   : MASTER.REGISTRY_DELETE_CONTEXT  (REGISTRY_DELETE_CONTEXT)
KFPX21102-I...

*PROCEDURE*    VALID   : MASTER.REGISTRY_DELETE_KEY  (REGISTRY_DELETE_KEY)
KFPX21102-I...

*PROCEDURE*    VALID   : MASTER.REGISTRY_GET_CONTEXT  (REGISTRY_GET_CONTEXT)
KFPX21102-I...

*PROCEDURE*    VALID   : MASTER.REGISTRY_GET_LVALUE  (REGISTRY_GET_LVALUE)
KFPX21102-I...

*PROCEDURE*    VALID   : MASTER.REGISTRY_GET_SVALUE  (REGISTRY_GET_SVALUE)
KFPX21102-I...

*PROCEDURE*    VALID   : MASTER.REGISTRY_GET_VALUE_SIZE  (REGISTRY_GET_VALUE_SIZE)
KFPX21102-I...

*PROCEDURE*    VALID   : MASTER.REGISTRY_NEW_CONTEXT  (REGISTRY_NEW_CONTEXT)
KFPX21102-I...

*PROCEDURE*    VALID   : MASTER.REGISTRY_RESET_LVALUE  (REGISTRY_RESET_LVALUE)
KFPX21102-I...

*PROCEDURE*    VALID   : MASTER.REGISTRY_RESET_SVALUE  (REGISTRY_RESET_SVALUE)
KFPX21102-I...

*PROCEDURE*    VALID   : MASTER.REGISTRY_SET_LVALUE  (REGISTRY_SET_LVALUE)
KFPX21102-I...

*PROCEDURE*    VALID   : MASTER.REGISTRY_SET_SVALUE  (REGISTRY_SET_SVALUE)
KFPX21102-I...

*PROCEDURE*    INVALID : USER01.USER_PROC01  (USER_PROC01)
KFPX21103-I...
   [5]           [6]      [7]      [8]                  [9]
*FUNCTION*     INVALID : USER01.USER_FUNC01  (FUSER_FUNC010000000028)
KFPX21103-I...

   [5]           [6]      [7]      [8]
*TRIGGER*      INVALID : USER01.(TRIG2002080112300000) ((TRIG2002080112300000))
KFPX21103-I...

   << RESULT REPORT >>                       [16]ENDED TIME : 1999/08/13 10:46:17
      [10]          [11]          [12]         [13]          [14]
  = RESOURCE == = SUCCESS === = FAILURE === = PASS ====== = TOTAL =====
  *VIEW*                    1             0             0             1
  *PROCEDURE*               1             0            11            12
  *FUNCTION*                1             0             0             1
  *TOTAL*                   3             0            11            14

〔説明〕

ビュー表の数

手続きの数

関数の数

トリガの数

SQLオブジェクトの識別文字列

VIEW：ビュー表

PROCEDURE：手続き

FUNCTION：関数

TRIGGER：トリガ

SQLオブジェクトの状態

INVALID：無効

VALID：有効

認可識別子

ビュー表名，手続き名，又は関数名

特定名

SQLオブジェクトの識別文字列

VIEW：ビュー表

PROCEDURE：手続き

FUNCTION：関数

TRIGGER：トリガ

正常に再登録されたSQLオブジェクトの数

再登録に失敗したSQLオブジェクトの数

再登録をしなかったSQLオブジェクトの数

SQLオブジェクトの合計

pdobjconvコマンド開始時間

pdobjconvコマンド終了時間

2.89　pdopen（RDエリアのオープン）

2.89.1　pdopenの形式と規則

(1)　機能

指定したRDエリアをオープンします。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdopen -r ｛RDエリア名〔，RDエリア名〕…｜ALL｝ 〔-q 世代番号〕〔-W 実行監視時間〕

(4)　オプション

(a)　-r ｛RDエリア名〔，RDエリア名〕…｜ALL｝

RDエリア名　〜＜識別子＞((1〜30))

オープンするRDエリア名を指定します。

ALL

マスタディレクトリ用RDエリアを除くすべてのRDエリアをオープンします。ただし，-qオプション指定時は，同じ世代のRDエリアを対象とします。

＜規則＞

RDエリアを指定する場合の規則については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

既にオープンしているRDエリアについては，再度オープンできません。

ユーザ用RDエリア又はユーザLOB用RDエリアを指定する場合は，データディクショナリ用RDエリアが次のどちらかの状態でなければなりません。

オープン状態，かつ閉塞解除状態

オープン状態，かつpdholdコマンドによる閉塞状態

データディクショナリ用RDエリア，ユーザ用RDエリア，及びユーザLOB用RDエリアを同時に指定する場合は，データディクショナリ用RDエリア名を最後に指定してください。

インナレプリカ機能を使用している場合，オリジナルRDエリア名及びレプリカRDエリア名も指定できます。ただし，この場合，指定できるのはユーザ用RDエリア及びユーザLOB用RDエリアだけです。

(b)　-q 世代番号　〜＜符号なし整数＞((0〜10))

レプリカRDエリアの世代番号を指定します。

このオプションを指定した場合，-rオプションにはオリジナルRDエリア名を指定してください。この場合，レプリカがすべて削除されたオリジナルRDエリア，又は通常のRDエリア（レプリカRDエリアがないRDエリア）を指定したときはエラーとなります。

(c)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pdopenコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

pdopenコマンドは，HiRDBが稼働中のときだけ実行できます。

pdopenコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdopenコマンドは，RDエリアに対してモードEXで排他制御をします。そのため，指定したRDエリアにほかのトランザクションがアクセスしている場合は，そのトランザクションの終了までpdopenコマンドは待ち状態となります。

共用RDエリアに対してpdopenコマンドを実行した場合，全バックエンドサーバに排他を掛けます。このため，該当するRDエリアへのアクセスを複数同時に実行している場合，グローバルデッドロックが発生し，タイムアウトする可能性があります。グローバルデッドロックが発生した場合，再度pdopenコマンドを実行してください。

(6)　注意事項

pdopenコマンドの結果は，pddblsコマンドで確認できます。

pdopenコマンドのリターンコードと基本的な対処方法を次に示します。

0以外の場合，一部のRDエリアがオープンしていないことがあります。その状態では業務を継続できないおそれがあるため，再度pdopenコマンドでオープンしてください。

0：正常終了

4：警告終了

一部のRDエリアの処理がエラー終了しました。

8：異常終了

一部のRDエリアの処理がエラー終了していることがあります。

12：異常終了

エラーメッセージを表示できない事象が発生しました。

一部のRDエリアの処理がエラー終了していることがあります。シングルサーバ又はディクショナリサーバがあるホストのsyslogfile中のエラーメッセージを参照して，エラーの要因を取り除いた後，再度コマンドを実行してください。syslogfile中にエラーメッセージが出力されていない場合は保守員に連絡してください。

2.90　pdopsetup（付加PPのセットアップ）

2.90.1　pdopsetupの形式と規則

(1)　機能

HiRDBの付加PPの組み込み又は取り外しをします。

(2)　実行者

スーパユーザが実行できます。

(3)　形式

　pdopsetup 〔-d〕-k 付加PP HiRDB運用ディレクトリ

(4)　オプション

(a)　-d

付加PPを取り外す場合に指定します。省略した場合は付加PPを組み込みます。

(b)　-k 付加PP　〜＜文字列＞

付加PPの略称を指定します。

sti：HiRDB Staticizer Option

aha：HiRDB Advanced High Availability

drl：HiRDB Disaster Recovery Light Edition※1

nrf：HiRDB Non Recover FES※2

acl：HiRDB Accelerator

esd：HiRDB Structured Data Access Facility Extension for XDM/SD type※3

注※1

HiRDB Disaster Recovery Light Editionを組み込む場合，業務サイト及びログ適用サイトのすべてのサーバマシンでpdopsetupコマンドを実行してください。

注※2

HiRDB/パラレルサーバの場合に指定できます。

注※3

HiRDB Structured Data Access Facilityの場合に指定できます。

(5)　コマンド引数

(a)　HiRDB運用ディレクトリ　〜＜パス名＞

付加PPの組み込み又は取り外しをするHiRDBの運用ディレクトリを指定します。

(6)　規則

pdopsetupコマンドは，HiRDBが停止中のときだけ実行できます。ただし，強制終了又は異常終了の場合は実行できません。

HiRDB/パラレルサーバの場合は全ユニットに同じ付加PPを登録する必要があるため，各サーバマシンでpdopsetupコマンドを実行してください。

系切り替え構成の現用系で付加PPを登録した場合，同じ付加PPを予備系でも登録してください（予備系でもpdopsetupコマンドを実行してください）。

相互系切り替え構成などで一つのサーバマシンに二つ以上のHiRDBをOSに登録している場合，HiRDB（HiRDB/パラレルサーバの場合はユニット）ごとにpdopsetupコマンドを実行してください。例えば，相互系切り替え構成で，一つのサーバマシンに二つのHiRDB（現用系と予備系）がある場合，そのサーバマシンではpdopsetupコマンドを2回実行する必要があります（現用系のHiRDBと予備系のHiRDBにそれぞれ実行する必要があります）。

ディザスタリカバリ構成のメインサイトで付加PPを登録した場合，同じ付加PPをリモートサイトでも登録してください（リモートサイトでもpdopsetupコマンドを実行してください）。

pdopsetupコマンドを実行する場合，環境変数PATHに$PDDIR/binを追加し，SHLIB_PATH※に$PDDIR/libを追加する必要があります。

注※

Linux版の場合はLD_LIBRARY_PATHに，AIX版の場合はLIBPATHになります。

(7)　注意事項

pdopsetupコマンドの実行結果は，エラーメッセージの有無，及びコマンド実行時のリターンコードで確認できます。

コマンド実行時のリターンコードを次に示します。

0：正常終了。

8：異常終了（権限エラー，HiRDB稼働中，ディスク容量不足，未インストール，又はインストール済み）。

メッセージに従って対処した後，再度コマンドを実行してください。

12：異常終了（パラメタ不正，又はパス不正など）。

メッセージに従って対処した後，再度コマンドを実行してください。

HiRDBのリビジョンをアップグレードする場合，バージョンアップ前に登録した付加PPはそのまま引き継がれるため，再度このコマンドを実行する必要はありません。

2.91　pdorbegin（オンライン再編成のデータベース静止化）

2.91.1　pdorbeginの形式と規則

(1)　機能

指定したオリジナルRDエリアと，レプリカグループ内の指定した世代のレプリカRDエリアをオンライン再編成閉塞にします。

表を指定した場合，その表の関連するRDエリアを処理対象とし，各オリジナルRDエリアと，レプリカグループ内の指定した世代のレプリカRDエリアをオンライン再編成閉塞にします。関連するRDエリアについては，pdrdreflsコマンドを参照してください。また，制約定義での関連エリアも対象にする場合は，-cオプションを指定します。詳細は-cオプションの説明を参照してください。

pdorbeginコマンドを実行してからpdorchgコマンドを実行するまでの間は，指定したオリジナルRDエリアがあるレプリカグループ内のRDエリアにアクセスする，トランザクションは待ち状態となります。

オンライン再編成閉塞を解除したい場合は-uオプションを指定します。

pdorbeginコマンドは，HiRDB Staticizer Optionが組み込まれていて，かつシステム定義のpd_max_reflect_process_countオペランド及びpd_inner_replica_controlオペランドを指定している場合に実行できます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　形式1（オンライン再編成閉塞にする場合，及びオンライン再編成閉塞を解除する場合）

　pdorbegin ｛-r オリジナルRDエリア名〔，オリジナルRDエリア名〕…

　　　　　　 ｜-t 〔認可識別子.〕表識別子 〔-s サーバ名〔，サーバ名〕…〕 〔-c 制約種別〕｝

　　　　　 〔-q 世代番号〕 〔-w 排他待ち時間〕 〔-e〕 〔-u〕 〔-W 実行監視時間〕
　　　　　　〔-I｛put｜noput｝〕

(b)　形式2（共用RDエリア，又は共用表のオンライン再編成閉塞を解除する場合（HiRDB/パラレルサーバ限定））

　pdorbegin ｛-r オリジナルRDエリア名〔，オリジナルRDエリア名〕…

　　　　　　 ｜-t 〔認可識別子.〕表識別子 〔-c 制約種別〕｝

　　　　　 〔-s サーバ名〔，サーバ名〕…〕

　　　　　 〔-q 世代番号〕 〔-w 排他待ち時間〕 -u 〔-W 実行監視時間〕
　　　　　　〔-I｛put｜noput｝〕

(4)　オプション

(a)　-r オリジナルRDエリア名〔，オリジナルRDエリア名〕…　〜＜識別子＞((1〜30))

オンライン再編成閉塞にするオリジナルRDエリアの名称を指定します。

＜規則＞

RDエリアを指定する場合の規則については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

レプリカ定義ができるRDエリアを指定してください。レプリカ定義ができないRDエリアを指定した場合はエラーとなります。レプリカ定義ができるRDエリアについては，マニュアル「インナレプリカ機能 HiRDB Staticizer Option」を参照してください。

レプリカRDエリアがすべて削除されたオリジナルRDエリア，又はレプリカRDエリアがないRDエリアを指定した場合はエラーとなります。ただし，一括指定でレプリカRDエリアがすべて削除されたオリジナルRDエリア，又はレプリカRDエリアがないRDエリアを指定した場合，一括指定の処理は無効となり，処理を続行します。

一括指定を指定する場合，レプリカRDエリアがすべて削除されたオリジナルRDエリア，又はレプリカRDエリアを持たないRDエリアに対する処理は無効とし，処理を続行します。

(b)　-t 〔認可識別子.〕表識別子

　　　〜＜識別子＞((認可識別子：1〜30，表識別子：1〜30))

オンライン再編成閉塞にする表の名称を指定します。

指定した表に関連するRDエリアを処理対象とし，各オリジナルRDエリアと，レプリカグループ内の指定した世代のレプリカRDエリアをオンライン再編成閉塞にします。

＜規則＞

-tオプションを指定する場合，その表と，その表に関連するすべてのRDエリアの総数が，4,096個以下でなければなりません。最大RDエリア数を超えたときは，KFPH27051-Eメッセージが出力されます。RDエリアの総数が4,097個以上になる場合は，-rオプションを指定してRDエリア単位で実行してください。

認可識別子を省略した場合，pdorbeginコマンド実行時の環境変数PDUSERの認可識別子が仮定されます。環境変数PDUSERを設定していない場合，及び環境変数PDUSERの認可識別子とパスワードの両方に簡易認証キーワードを指定している※場合，ログインウィンドウのユーザ名が仮定されます。-tオプションの指定と環境変数PDUSERの設定によって有効となる認可識別子について次に示します。

-tオプションの認可識別子

環境変数PDUSERの設定内容

有効な認可識別子

指定あり

−

-tオプションに指定された認可識別子

省略

認可識別子[/パスワード]

環境変数PDUSERに指定された認可識別子

設定なし

ログインウィンドウのユーザ名

認可識別子とパスワードの両方に簡易認証キーワードを指定

注※

OSログインユーザの簡易認証機能の有効，無効（システム共通定義のpd_os_authenticateオペランドの指定値）にかかわらず，環境変数PDUSERの設定内容で判断します。簡易認証キーワードについては，マニュアル「HiRDB システム運用ガイド」の「OSログインユーザの簡易認証機能」を参照してください。

認可識別子，表識別子を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符（"）で囲まない場合はすべて大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

次の表を指定すると，エラーになります。

ビュー表

ディクショナリ表

一時表

(c)　-s サーバ名〔，サーバ名〕…　〜＜識別子＞((1〜8))

次のどちらかの条件で，サーバ単位に処理する場合，このオプションを指定します。

オンライン再編成閉塞の対象がサーバ間横分割表の場合，対象となるサーバを限定するとき，そのサーバ名を指定します。

共用RDエリア，共用表のオンライン再編成閉塞状態を解除する場合に，対象となるサーバを限定するとき，そのサーバ名を指定します。

＜規則＞

このオプションを省略した場合，処理対象のRDエリアがあるすべてのサーバが対象となります。

共用RDエリアをオンライン再編成閉塞にする場合，全バックエンドサーバで一括で処理する必要があるため，-uオプションを指定しているときに-sオプションを指定してください。-uオプションを指定していない場合に-sオプションを指定するとエラーになります。

サーバ名は最大128個指定できます。129個以上指定するとエラーになります。

(d)　-q 世代番号　〜＜符号なし整数＞((1〜10))《1》

オンライン再編成閉塞にするレプリカRDエリアのレプリカグループ内の世代番号を指定します。

オリジナルRDエリアの世代番号である0は指定できません。

(e)　-w 排他待ち時間　〜＜符号なし整数＞((0〜3600))

オンライン再編成閉塞にする場合の，排他待ちの時間を秒単位で指定します。

このオプションを省略した場合，システム定義のpd_lck_wait_timeoutオペランドの指定値が仮定されます。システム定義のpd_lck_wait_timeoutオペランドの指定値が0の場合は，3,600が仮定されます。

(f)　-u

オンライン再編成閉塞状態を解除する場合に指定します。このオプションを指定する場合，-rオプション，又は-tオプションを同時に指定する必要があります。

処理対象に共用RDエリアがある場合，全バックエンドサーバで一括処理されるため，処理対象RDエリアのすべてのオンライン再編成閉塞状態を解除できないときはエラーとなります。ただし，特定のバックエンドサーバが停止中などの理由によって，サーバ単位で共用RDエリアのオンライン再編成閉塞状態を解除する必要がある場合は，-sオプションを指定して解除できます。

オンライン再編成閉塞状態を解除する場合，オンライン再編成閉塞にしたときと同じ資源を指定する必要があります（同じでないとエラーとなります）。オンライン再編成閉塞にしたときのオプションと，解除時のオプションの関係を次に示します。

解除時のpdorbeginコマンドのオプション

オンライン再編成閉塞にしたときのpdorbeginコマンドのオプション

-r RDエリア

-t 表

-t 表 -c ref

-r RDエリア -u

○※

×

×

-t 表 -u

×

○

×

-t 表 -c ref -u

×

×

○

（凡例）

○：実行できます。

×：実行できません（エラーとなります）。

注※

複数個のRDエリアをオンライン再編成閉塞にした場合，解除時はオンライン再編成閉塞に指定したRDエリアをすべて指定してください。

ただし，障害などのエラーを検知し，コマンドエラーでオンライン再編成閉塞状態を解除できない場合は，障害の影響がないRDエリアだけを指定して-uオプションを実行してオンライン再編成閉塞状態を解除してください。解除できないRDエリアは，障害を回復してから-uオプションを実行するRDエリアに指定し，解除してください。

(g)　-c 制約種別

制約定義での関連RDエリアもオンライン再編成閉塞にする場合に指定します。このオプションを指定する場合，-tオプションを同時に指定する必要があります。-tオプションを指定していない場合にこのオプションを指定すると，エラーになります。

ref：

参照制約での関連RDエリアもオンライン再編成閉塞にします。参照制約での関連RDエリアとは，参照表又は被参照表を格納しているRDエリアに対して，世代番号を合わせて運用する必要のあるRDエリアのことです。参照制約の運用方法については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

(h)　-e

pdorendコマンド実行時のオンライン再編成の追い付き反映処理で，更新された列だけを反映する場合に指定します。なお，-eオプション指定時の注意については，マニュアル「インナレプリカ機能　HiRDB Staticizer Option」を参照してください。

(i)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pdorbeginコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(j)　-I｛put｜noput｝

排他待ちによってタイムアウトした際に，タイムアウト情報を出力するかどうかを指定します。タイムアウト情報はタイムアウトの要因特定に使用できます。タイムアウト情報については，マニュアル「HiRDB システム運用ガイド」を参照してください。

タイムアウト情報を出力する指定（-I put）は，このコマンドと同時間帯に動いている処理（UAP・コマンドなど）を把握していない場合に使用してください。

put：

$PDDIR/spool/pdlckinfにタイムアウト情報が出力されます。

タイムアウト情報を出力する場合は，ディスク容量の確保が必要です。タイムアウト情報を含む単調増加ファイルのファイルサイズについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

noput：

タイムアウト情報は出力されません。

(5)　規則

pdorbeginコマンドは，HiRDBが稼働中のときだけ実行できます。

pdorbeginコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdorbeginコマンドを実行する場合，データディクショナリ用RDエリアが次のどちらかの状態でなければなりません。

オープン状態，かつ閉塞解除状態

オープン状態，かつコマンド閉塞状態

pdorbeginコマンドは，オプションの指定によって次のように処理をします。

-rオプション指定時

指定したオリジナルRDエリアのサーバごとに処理をします。指定したオリジナルRDエリアと，レプリカグループ内の指定した世代番号のレプリカRDエリアを，すべてオンライン再編成閉塞にできなかった場合は，そのサーバの処理はエラーとなり，次のサーバの処理をします。

-tオプション指定時

指定した表の関連するRDエリアを処理対象とし，各オリジナルRDエリアと，レプリカグループ内の指定した世代のレプリカRDエリアをオンライン再編成閉塞にします。該当するサーバを一括して処理するため，すべてのサーバの状態が同一となります。

指定したオリジナルRDエリアがあるサーバ内に，既にオンライン再編成閉塞となっているRDエリアがある場合，pdorbeginコマンドはエラーとなります。

オリジナルRDエリアの状態によってpdorbeginコマンドの実行可否が変わります。詳細については，「RDエリアの状態遷移」を参照してください。なお，レプリカRDエリアについては，コマンド閉塞かつクローズ状態である必要があります。

pdorcreateコマンドで追い付き状態管理表が作成されていない場合，又は-rオプションで指定したオリジナルRDエリアに追い付き状態管理表が作成されている場合は，pdorbeginコマンドはエラーとなります。

表定義時の列回復制約にALL以外を指定していて，その表（LOB列）を格納しているユーザLOB用RDエリアを-rオプションに指定した場合，そのユーザLOB用RDエリアがあるサーバに対するコマンドはエラーとなります。

処理対象RDエリアに共用RDエリアがある場合，全バックエンドサーバで一括処理をします。そのため，指定したオリジナルRDエリア，及びレプリカグループ内の指定した世代のレプリカRDエリアをすべてオンライン再編成閉塞にできない場合，エラーとなります。

pdorbeginコマンドを実行した場合，参照及び更新トランザクションとの間でデッドロックになることがあります。システム定義にpd_deadlock_priority_use=Yを指定し，更にpd_command_deadlock_priorityに運用コマンドのデッドロックプライオリティ値を指定することで，デッドロック発生時に参照及び更新トランザクションと運用コマンドのどちらを優先させるかを選択できます。pdorbeginコマンドをエラーにする場合は，運用コマンドのデッドロックプライオリティ値を大きくします。この場合，pdorbeginコマンドがコマンド実行時に掛けた排他をすべて解除してからエラーになるため，一定時間後にpdorbeginコマンドを再度実行してください。pdorbeginコマンドを優先し，参照及び更新トランザクションをエラーにする場合は，運用コマンドのデッドロックプライオリティ値を小さくしてください。

サーバ内にオンライン再編成閉塞の共用RDエリアと非共用RDエリアが混在する場合，-sオプションを指定してオンライン再編成閉塞を解除するときは，共用RDエリアと非共用RDエリアを別々に実行する必要があります。同時に実行するとエラーになります。

処理対象（表又はRDエリア）と，オプション（-t，-r，-s，-u，及び-c）の組み合わせによって，コマンドの実行可否，及び実行範囲が変わります。pdorbeginコマンドの実行可否と実行範囲を次に示します。

処理対象

オプション

実行可否

実行範囲

コマンドの実行形式

-t

-r

-s

-u

-c

表

非分割表（HiRDB/シングルサーバの共用表を含む）

●

−

−

−

−

○

すべての関連するRDエリア※2

形式1

●

−

−

●

−

○

●

−

●

−

−

○※1

指定したバックエンドサーバの関連するRDエリア※2

●

−

●

●

−

○※1

●

−

−

−

●

○

すべての関連するRDエリア※3

●

−

−

●

●

○

●

−

●

−

●

○※1

指定したバックエンドサーバに関連するすべてのRDエリア※3

●

−

●

●

●

○※1

横分割表

●

−

−

−

−

○

すべての関連するRDエリア※2

●

−

−

●

−

○

●

−

●

−

−

○※1

指定したバックエンドサーバの関連するRDエリア※2

●

−

●

●

−

○※1

●

−

−

−

●

○

すべての関連するRDエリア※3

●

−

−

●

●

○

●

−

●

−

●

○※1

指定したバックエンドサーバに関連するすべてのRDエリア※3

●

−

●

●

●

○※1

共用表（HiRDB/パラレルサーバ限定）

●

−

−

−

−

○

すべてのバックエンドサーバの関連するRDエリア※2

●

−

−

●

−

○

形式2

●

−

●

−

−

×

該当しません。

形式1

●

−

●

●

−

○

指定したバックエンドサーバの関連するRDエリア※2

形式2

●

−

−

−

●

○

すべてのバックエンドサーバの関連するRDエリア※3

形式1

●

−

−

●

●

○

形式2

●

−

●

−

●

×

該当しません。

形式1

●

−

●

●

●

○

指定したバックエンドサーバの関連するRDエリア※3

形式2

RDエリア

非共用RDエリアだけ

−

●

−

−

−

○

指定したRDエリアだけ

形式1

−

●

−

●

−

○

−

●

●

−

−

×

該当しません。

−

●

●

●

−

×

−

●

−

−

●

×

共用RDエリアだけ

−

●

−

−

−

○

すべてのバックエンドサーバ

−

●

−

●

−

○

形式2

−

●

●

−

−

×

該当しません。

形式1

−

●

●

●

−

○

指定したバックエンドサーバ

形式2

−

●

−

−

●

×

該当しません。

形式1

非共用RDエリアと共用RDエリアが混在

−

●

−

−

−

○

すべてのバックエンドサーバ

−

●

−

●

−

○

形式2

−

●

●

−

−

×

該当しません。

形式1

−

●

●

●

−

×

形式2

−

●

−

−

●

×

形式1

（凡例）

●：オプション指定あり

−：オプション指定なし

○：実行できます。

×：実行できません。

注※1

指定したバックエンドサーバと，関連するRDエリアがあるバックエンドサーバが一致しない場合，エラーとなります。

注※2

制約定義の関連を含めません。

注※3

制約定義の関連を含めます。

(6)　注意事項

pdorbeginコマンドの結果は，pdls -d orgコマンド，又はリターンコードで確認できます。リターンコードを次に示します。

0：正常終了

4：警告終了（一部のサーバで処理が成功）

8：異常終了

12：異常終了（コマンドがエラーメッセージを表示できない事象が発生）

リターンコードが12の場合，シングルサーバ又はディクショナリサーバがあるホストのsyslogfileのエラーメッセージを参照し，エラーの要因を取り除いた後，再度コマンドを実行してください。syslogfileにエラーメッセージが出力されていない場合は，保守員に連絡してください。

オンライン再編成閉塞は，HiRDBを再開始した場合でも引き継がれます。

pdorbeginコマンドは，RDエリアに対して排他制御モードEXで排他を掛けます。そのため，指定したRDエリアにほかのトランザクションがアクセスしている場合は，そのトランザクションが終了するまでpdorbeginコマンドは待ち状態となります。また，pdorbeginコマンドの実行からpdorchgコマンドの完了までの間，指定したRDエリアに対するトランザクションは，レプリカグループ構成の排他で待ち状態となります。

-tオプションを指定した場合，内部でpdrdreflsコマンドを実行します。そのため，-tオプション指定時は，pdrdreflsコマンドのメッセージが出力されることがあります。

リアルタイムSANレプリケーションの処理方式にハイブリッドを選択している場合，pdorbeginコマンドを実行すると，リモートサイトへのデータベース同期待ち合わせをします。このため，-rオプションで指定したRDエリア一つにつき，2秒以上のオーバヘッドが掛かることがあります。リモートサイトへのデータベース同期待ち合わせに失敗した場合，リモートサイトのデータベースを回復する必要があります。リアルタイムSANレプリケーションを使用した場合の障害発生時の運用については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

2.92　pdorcheck（オンライン再編成の適用条件チェック）

2.92.1　pdorcheckの形式と規則

(1)　機能

指定したRDエリア内のすべての実表が，次の適用条件を満たすかどうかをチェックします。

次のどれかの条件を満たすインデクスが，一つ以上定義されている。

定義長が256バイト以上のVARCHAR若しくはMVARCHAR，又は定義長が128文字以上のNVARCHARの列を，インデクス構成列に含まない主キーインデクス

定義長が256バイト以上のVARCHAR若しくはMVARCHAR，又は定義長が128文字以上のNVARCHARの列を，インデクス構成列に含まないPRIMARY指定のクラスタキーインデクス

定義長が256バイト以上のVARCHAR若しくはMVARCHAR，又は定義長が128文字以上のNVARCHARの列を，インデクス構成列に含まないUNIQUE指定のクラスタキーインデクス

インデクス構成列がすべて非ナル値制約の列で，定義長が256バイト以上のVARCHAR若しくはMVARCHAR，又は定義長が128文字以上のNVARCHARの列を，インデクス構成列に含まないUNIQUE指定のインデクス

表の列が，次のデータ型だけで構成されている。

INTEGER，SMALLINT，〔LARGE〕DECIMAL，FLOAT，SMALLFLT，CHAR，VARCHAR，NCHAR，NVARCHAR，MCHAR，MVARCHAR，DATE，INTERVAL YEAR TO DAY，TIME，INTERVAL HOUR TO SECOND，TIMESTAMP，BINARY，BLOB，SGMLTEXT，XML，FREEWORD

表にLOB列が定義されている場合，LOB列格納用RDエリアのデータベースの更新ログ取得方式が，ログ取得モード（RECOVERY ALL）で定義されている。

監査証跡表ではない。

なお，適用条件を満たさない表については，メッセージを出力します。

pdorcheckコマンドは，HiRDB Staticizer Optionが組み込まれていて，かつシステム定義のpd_max_reflect_process_countオペランド及びpd_inner_replica_controlオペランドを指定している場合に実行できます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdorcheck ｛-rオリジナルRDエリア名〔，オリジナルRDエリア名〕…｜ -r ALL｝

(4)　オプション

(a)　-r オリジナルRDエリア名〔，オリジナルRDエリア名〕…　〜＜識別子＞((1〜30))

適用条件のチェックをするオリジナルRDエリア名を指定します。

＜規則＞

RDエリアを指定する場合の規則については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

ユーザ用RDエリア，及びユーザLOB用RDエリアを指定してください。ただし，一時表用RDエリアを指定すると，エラーになります。

RDエリアには，レプリカRDエリアが定義されているオリジナルRDエリアを指定してください。

(b)　-r ALL

すべてのオリジナルRDエリアに対して適用条件のチェックをする場合に指定します。

(5)　規則

pdorcheckコマンドは，HiRDBが稼働中のときだけ実行できます。

pdorcheckコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(6)　注意事項

pdorcheckコマンドのリターンコードを次に示します。

0：適用条件を満たしています。

4：適用条件を満たさない資源がありました。

8：異常終了しました。

pdorcheckコマンド実行中に，指定したRDエリアに対して表，インデクスの追加，削除，及び定義変更はしないでください。追加，削除，及び定義変更をした場合は，結果不正や異常終了となることがあります。

pdorcheckコマンドの-rオプションに指定したRDエリア数，及び表の総数に応じて，コマンド実行時間が長くなることがあります。実行時間が長くなる場合，-rオプションに指定するRDエリア数を減らしてください。

RDエリアの一括指定やALL指定をしている場合は，直接指定にするなど，該当するRDエリア数が少なくなるようにしてください。

2.93　pdorchg（オンライン再編成のカレントRDエリアの切り替え）

2.93.1　pdorchgの形式と規則

(1)　機能

カレントRDエリアを，オンライン再編成閉塞（一時的にコマンド閉塞となっているRDエリアも含む）のオリジナルRDエリアからオンライン再編成閉塞のレプリカRDエリアに切り替えます。

pdorchgコマンドの完了後，オンライン再編成閉塞のオリジナルRDエリアにアクセスしていたトランザクションの待ち状態は解除され，オンライン再編成閉塞のレプリカRDエリアにアクセスします。

pdorchgコマンドは，HiRDB Staticizer Optionが組み込まれていて，かつシステム定義のpd_max_reflect_process_countオペランド及びpd_inner_replica_controlオペランドを指定している場合に実行できます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdorchg 〔-s サーバ名〔，サーバ名〕…〕〔-W 実行監視時間〕

(4)　オプション

(a)　-s サーバ名〔，サーバ名〕…　〜＜識別子＞((1〜8))

レプリカRDエリアに対する更新処理をオリジナルRDエリアに反映する，レプリカグループのあるサーバの名称を指定します。

＜規則＞

-sオプションを省略した場合，オンライン再編成閉塞のRDエリアがあるすべてのサーバに対してカレントRDエリアの切り替えをします。

サーバ名を重複して指定した場合，重複排除されます。

指定できるサーバの数は最大128個です。129個以上指定した場合，129個目以降のサーバ名は無視されます。

pdorbeginコマンドで-tオプションにサーバ間横分割表を指定してオンライン再編成閉塞にした場合，サーバ間で一括して処理をするため，カレント切り替え処理をするサーバを限定したいときだけ，-sオプションを指定してください。

処理対象RDエリアに共用RDエリアがある場合，全バックエンドサーバで一括して処理をします。そのため，-sオプションを指定するとエラーになります。

次の条件を二つとも満たす場合，-sオプションを指定してpdorchgコマンドを実行してください。-sオプションを省略して実行するとエラーになります。

-tオプション指定のpdorbeginコマンドを実行している（共用表を指定している場合を除く）。

HiRDBの一部のユニット若しくはサーバが停止している，又は停止処理中である。

(b)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

pdorchgコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

pdorchgコマンドは，HiRDBが稼働中のときだけ実行できます。

pdorchgコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdorchgコマンドを実行する場合，データディクショナリ用RDエリアが次のどちらかの状態でなければなりません。

オープン状態，かつ閉塞解除状態

オープン状態，かつコマンド閉塞状態

pdorchgコマンドは，pdorbeginコマンドでRDエリアを指定したか，又は表を指定したかによって，処理単位が変わります。

RDエリアを指定した場合：

サーバごとに処理をします。そのため，同一サーバ内のすべてのオンライン再編成閉塞のオリジナルRDエリアからレプリカRDエリアにカレントRDエリアを切り替えられない場合，そのサーバに対する処理はエラーとなり，次のサーバの処理をします。

表を指定した場合：

指定した表に関連するすべてのRDエリアを，一括して処理します。したがって，処理対象となるすべてのオンライン再編成閉塞のオリジナルRDエリアからレプリカRDエリアにカレントRDエリアを切り替えられない場合，エラーとなります。

RDエリアの状態によってpdorchgコマンドの実行可否が変わります。詳細については，「RDエリアの状態遷移」を参照してください。

処理対象RDエリアに共用RDエリアがある場合，全バックエンドサーバが処理対象となります。処理対象となるすべてのオンライン再編成閉塞のオリジナルRDエリアからレプリカRDエリアにカレントRDエリアを切り替えられない場合，エラーとなります。

(6)　注意事項

pdorchgコマンドの結果は，pdls -d orgコマンド，又はリターンコードで確認できます。リターンコードを次に示します。

0：正常終了

4：警告終了（一部のサーバで処理が成功）

8：異常終了

12：異常終了（コマンドがエラーメッセージを表示できない事象が発生）

リターンコードが12の場合，シングルサーバ又はディクショナリサーバがあるホストのsyslogfileのエラーメッセージを参照し，エラーの要因を取り除いた後，再度コマンドを実行してください。syslogfileにエラーメッセージが出力されていない場合は，保守員に連絡してください。

pdorchgコマンドは，ペアボリュームの解除後に実行してください。

2.94　pdorcreate（オンライン再編成の追い付き反映環境の作成）

2.94.1　pdorcreateの形式と規則

(1)　機能

オンライン再編成の追い付き反映環境を作成します。

pdorcreateコマンドは，pdorbeginコマンド実行前までに実行しておく必要があります。

pdorcreateコマンドでは，次の環境作成又は環境削除をします。

指定したRDエリアに，追い付き状態管理表を作成します。

指定したRDエリアに，追い付き状態管理表のインデクス（主キーインデクス）を作成します。

追い付き状態管理表を削除します。

追い付き状態管理表のインデクスを削除します。

pdorcreateコマンドは，HiRDB Staticizer Optionが組み込まれていて，かつシステム定義のpd_max_reflect_process_countオペランド及びpd_inner_replica_controlオペランドを指定している場合に実行できます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdorcreate ｛〔-r RDエリア名〔，RDエリア名〕…〕

　　　　　　　　　 -o RDエリア名

　　　　　　　｜-d｝

(4)　オプション

(a)　-r RDエリア名〔，RDエリア名〕…　〜＜識別子＞((1〜30))

追い付き状態管理表を格納するRDエリアの名称を指定します。ここで指定したRDエリアには，そのRDエリアがあるサーバの追い付き状態の情報だけを格納します。

＜規則＞

RDエリアを指定する場合の規則については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

RDエリア名を複数個指定した場合は，追い付き状態管理表を横分割表で作成します。

RDエリアを複数個指定した場合，それぞれのRDエリアがあるサーバが重複しないようにしてください。

-rオプションを省略した場合，-oオプションで指定したRDエリアに追い付き状態管理表（非分割表）を作成します。

指定したRDエリアには，追い付き状態管理表のインデクスも作成されます。

指定するRDエリアは，更新可能なオンライン再編成の対象となるRDエリアがないHiRDBファイルシステム領域に，公用のユーザ用RDエリアとして作成しておく必要があります。ディスク要量の見積もりについては，マニュアル「インナレプリカ機能 HiRDB Staticizer Option」の「リソースの見積もり」に記載されている「更新可能なオンライン再編成に必要な領域（追い付き状態管理表を格納するユーザ用RDエリア）」を参照してください。

共用RDエリア，及び一時表用RDエリアを指定すると，エラーになります。

レプリカRDエリアが定義されているRDエリアに追い付き状態管理表を作成する場合は，オリジナルRDエリア名称を指定してください。

このオプションにはインメモリRDエリアを指定しないでください。指定すると，追い付き反映処理が正しく実行されないことがあります。

(b)　-o RDエリア名　〜＜識別子＞((1〜30))

-rオプションで指定したRDエリアに対応するサーバ以外の，サーバの追い付き状態管理表を格納するRDエリアを指定します。

＜規則＞

-rオプションで指定しているRDエリアと，-oオプションで指定するRDエリアは重複しないようにしてください。

指定するRDエリアは，更新可能なオンライン再編成の対象となるRDエリアがないHiRDBファイルシステム領域に，公用のユーザ用RDエリアとして作成しておく必要があります。ディスク所要量の見積もりについては，-rオプションの説明を参照してください。

RDエリア名を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符（"）で囲まない場合はすべて大文字として扱われます。また，RDエリア名に空白を含む場合は，引用符（"）で囲んでください。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

共用RDエリア，及び一時表用RDエリアを指定すると，エラーになります

レプリカRDエリアが定義されているRDエリアに追い付き状態管理表を作成する場合は，オリジナルRDエリア名称を指定してください。

このオプションにはインメモリRDエリアを指定しないでください。指定すると，追い付き反映処理が正しく実行されないことがあります。

(c)　-d

追い付き反映環境を削除する場合に指定します。

＜規則＞

-dオプションを指定する場合，HiRDBのすべての追い付き反映処理が終了してから（中断状態も含む）実行してください。

-dオプションを指定する場合，HiRDBが内部で管理する追い付き処理実行情報をチェックします。更新可能なオンライン再編成を実行しているサーバがある場合には，対話入力のメッセージを出力して確認します。この場合，KFPT02023-Eメッセージに出力されたサーバがある，すべてのRDエリアがオンライン再編成閉塞かどうかを確認し，すべてのRDエリアがオンライン再編成閉塞でないときは'y'を，そうでないときは'n'を入力してください。オンライン再編成閉塞のRDエリアがある場合に'y'を指定すると，DB破壊を引き起こす可能性があるため，注意してください。

-dオプションを指定した場合，pdorcreateコマンドのバックグラウンド実行はできません。

RDエリアの状態については，pddblsコマンドで確認できます。

(5)　規則

pdorcreateコマンドは，HiRDBが稼働中のときだけ実行できます。

pdorcreateコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

追い付き状態管理表は，サーバ単位の横分割表として作成することをお勧めします（障害発生時の影響がサーバ単位に局所化できるため）。

追い付き状態管理表の作成が完了した場合，KFPT02020-Iメッセージが出力されます。

追い付き状態管理表を，レプリカRDエリアが定義されているRDエリアに作成する場合，その操作（作成，及び削除）については，マニュアル「インナレプリカ機能 HiRDB Staticizer Option」を参照してください。

共用RDエリア及び一時表用RDエリアに追い付き状態管理表は作成できません。

(6)　注意事項

pdorcreateコマンドのリターンコードを次に示します。

0：正常終了

4：警告終了

8：異常終了

追い付き状態管理表を格納するRDエリアの構成や，追い付き状態管理表の作成有無については，pddbstの表単位の状態解析で確認できます。このとき，表名に"ORG_USER"."PDORRFST"を指定してください。

(7)　使用例

BES1，BES2，及びBES3に追い付き状態管理表を作成する例を次の図に示します。作成方法は3通りありますが，推奨する作成方法は1です。

図2‒8　BES1，BES2，及びBES3に追い付き状態管理表を作成する例

〔説明〕

更新可能なオンライン再編成の対象となるサーバ：追い付き状態管理表を格納するRDエリア数＝1：1の場合のコマンド形式

pdorcreate -r RD01,RD02 -o RD03

一部が，更新可能なオンライン再編成の対象となるサーバ：追い付き状態管理表を格納するRDエリア数＝1：nの場合のコマンド形式

pdorcreate -r RD01 -o RD02

追い付き状態管理表を一つのRDエリアに格納する場合のコマンド形式

pdorcreate -o RD01

2.95　pdorend（オンライン再編成の追い付き反映）

2.95.1　pdorendの形式と規則

(1)　機能

更新可能なオンライン再編成を実行している場合に，オンライン再編成閉塞となっていたRDエリアに更新処理を反映します。

オンライン再編成の追い付き反映では，次の処理をします。

pdorendコマンド実行後に，サーバごとにpdorend反映プロセスを起動します。そして，システムログからオンライン再編成閉塞のレプリカRDエリアに対する更新ログ情報を読み出し，オリジナルRDエリアに対して更新をします。

反映完了後，カレントRDエリアをレプリカRDエリアからオリジナルRDエリアに切り替え，オンライン再編成閉塞のオリジナルRDエリアを閉塞解除状態にします。また，レプリカRDエリアをコマンド閉塞状態，かつクローズ状態にします。

pdorend実行中は，オリジナルRDエリアとレプリカRDエリアの状態の最終的な同期を取るため，一時的に該当するRDエリアのレプリカグループ構成に排他を掛けます。このとき，レプリカRDエリアに対する処理は排他待ちになります。詳細については，-tオプションの説明を参照してください。

排他を掛けてから，カレントRDエリアの切り替え処理が完了するまで，処理中のレプリカグループ内のRDエリアにアクセスするトランザクションは待ち状態になります。カレントRDエリアの切り替え後，トランザクションはオリジナルRDエリアにアクセスします。

-uオプションを指定した場合は，追い付き反映処理を停止し，オリジナルRDエリアとレプリカRDエリアのオンライン再編成閉塞を解除します。ただし，カレントRDエリアは，レプリカRDエリアのまま切り替わりません。

オンライン再編成対象のRDエリアに，被参照表，参照表，及び検査制約表がある場合，参照表及び検査制約表を検査保留状態にします。なお，-pオプションを指定した場合は，参照表及び検査制約表を検査保留状態にしません。

pdorendコマンドは，HiRDB Staticizer Optionが組み込まれていて，かつシステム定義のpd_max_reflect_process_countオペランド及びpd_inner_replica_controlオペランドを指定している場合に実行できます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdorend 〔-s サーバ名〔，サーバ名〕…〕

　　　　　｛〔-n 最大リトライ回数〕 〔-w 追い付き反映処理の最大待ち時間〕

　　　　　　〔-t トランザクション処理の最大待ち時間〕

　　　　　　〔-m pdorend反映プロセスの多重度〕 〔-z〕

　　　　　　〔-f 追い付き反映制御ファイル名〕〔-p〕〔-I｛put｜noput｝〕

　　　　　　｜〔-u〕｝

(4)　オプション

(a)　-s サーバ名〔，サーバ名〕…　〜＜識別子＞((1〜8))

レプリカRDエリアに対する更新処理をオリジナルRDエリアに反映する，レプリカグループのあるサーバの名称を指定します。

＜規則＞

-sオプションを省略した場合，オンライン再編成閉塞のRDエリアがあるすべてのサーバに対して追い付き反映処理をします。

HiRDBシングルサーバの場合は，-sオプションを省略してください。

サーバ名を重複して指定した場合，重複排除されます。

指定できるサーバの数は最大128個です。129個以上指定した場合，129個目以降のサーバ名は無視されます。

pdorbeginコマンドでサーバ間横分割表を指定した場合，サーバ間で一括して処理をします。したがって，追い付き反映処理をするサーバを限定するときだけ，-sオプションを指定してください。

処理対象RDエリアに共用RDエリアがある場合に-sオプションを指定するときは，同時に-uオプションも指定してください。-uオプションを指定していない場合に-sオプションを指定するとエラーになります。

次の条件を二つとも満たす場合，-sオプションを指定してpdorendコマンドを実行してください。-sオプションを省略して実行すると，エラーとなります。

-tオプション指定のpdorbeginコマンドを実行している（共用表を指定している場合を除く）。

HiRDBの一部のユニット若しくはサーバが停止している，又は停止処理中である。

(b)　-n 最大リトライ回数　〜＜符号なし整数＞((0〜10))《3》

オリジナルRDエリアとレプリカRDエリアの同期を取るため，オンライン再編成閉塞のRDエリアがあるレプリカグループ構成に排他を掛けます。排他を掛けるとき，又は排他を掛けた後の，追い付き反映処理時にタイムアウトが発生した場合に，リトライするサーバごとの最大リトライ回数を指定します。

指定した最大リトライ回数を超えた場合，該当するサーバの処理はエラー終了します。リトライが発生する条件については，規則を参照してください。

(c)　-w 追い付き反映処理の最大待ち時間　〜＜符号なし整数＞((60〜3600))《600》

レプリカRDエリアに対する更新処理をオリジナルRDエリアに反映するまでの，最大待ち時間を秒単位で指定します。

指定した追い付き反映処理の最大待ち時間を超えた場合，処理が終了していないサーバはエラー終了となります。エラーとなった場合は，-wオプションの指定値を大きくするか，又はpdorend実行中のオンライン業務のトランザクション量を抑えるかしてください。

(d)　-t トランザクション処理の最大待ち時間　〜＜符号なし整数＞((1〜3600))

オリジナルRDエリアとレプリカRDエリアの同期を取るための，オンライン再編成閉塞のRDエリアがあるレプリカグループ構成の排他を掛けるとき，又は排他を掛けた後の追い付き反映処理の完了までの，サーバごとの最大待ち時間を秒単位で指定します。

-tオプションを省略した場合，システム定義のpd_lck_wait_timeoutオペランドの指定値が仮定されます。トランザクション処理の最大待ち時間については，規則を参照してください。

(e)　-m pdorend反映プロセスの多重度　〜＜符号なし整数＞((1〜8))《2》

レプリカRDエリアに対する更新処理をオリジナルRDエリアに反映する，pdorend反映プロセスのバックエンドサーバごとの多重度を指定します。

＜規則＞

pdorendコマンドを実行すると，次の計算式の数のpdorend反映プロセスが起動されます。

pdorend反映プロセス起動数＝M×S（単位：プロセス数）

M：-mオプションの指定値
S：-sオプションの指定値（-sオプションを省略した場合，オンライン再編成閉塞のRDエリアがあるすべてのバックエンドサーバ数）

なお，HiRDB全体で保証されるpdorend反映プロセス数は，あらかじめシステム定義のpd_max_reflect_process_countオペランドで指定しておく必要があります。

＜指定値の目安＞

指定値は次の計算式から求めてください。なお，ログ読み込みなどのボトルネックでの最大有効多重度は8程度を仮定します。

pdorend反映プロセスの多重度＝
MIN（8，↑（NLine×PLine/100）×Ntrn×（m＋n）/n×TSql↑）

NLine：SDS又はBESにあるRDエリアの更新での，1トランザクション当たりの平均更新行数
PLine：SDS又はBESにあるRDエリアの更新のうち，対象となるRDエリアの更新が占める割合（単位：％）
Ntrn：SDS又はBESにあるRDエリアの更新での，1秒当たりのトランザクション量（単位：件数）
m：表の再編成の実行時間（単位はnと同じにしてください）
n：追い付き反映処理時間（単位はmと同じにしてください）
TSql：対象となるRDエリアの1行当たりの平均SQL実行時間（単位：秒）

例えば，NLine=10，PLine=20，Ntrn=50，TSql=0.003，及び追い付き反映処理時間が表の再編成の実行時間の1/5程度の場合，pdorend反映プロセスの多重度は2となります。

なお，次の場合は，反映処理の間で処理の競合が発生するため，多重度は1にすることをお勧めします。

追い付き反映処理の対象表の，ngramインデクスを頻繁に更新する場合

追い付き反映処理の対象表の，UNIQUE指定のインデクスを頻繁に更新する場合

(f)　-z

障害発生時に，システムログ反映開始ポイントから再度追い付き反映処理を実行する場合に指定します。

-zオプションは，サーバで障害が発生したとき以外は指定しないでください。サーバでエラーが発生した後，再度pdorendコマンドを実行するときには指定しないでください。

＜適用基準＞

pdorendコマンド実行中に，オリジナルRDエリアがある正系ボリュームで障害が発生した場合，正系ボリュームを回復した後に，再度pdorbeginコマンドで設定したシステムログ反映開始ポイントから追い付き反映処理をするときに指定します。

(g)　-f 追い付き反映制御ファイル名　〜＜パス名＞((255文字以内))

追い付き反映処理の制御文を記述したファイル（追い付き反映制御ファイル）を，絶対パス名で指定します。-fオプションを省略した場合，追い付き反映制御ファイルに記述できる制御文の省略時仮定値が仮定されます。なお，追い付き反映制御ファイル中にコメントは記述できません。

追い付き反映制御ファイルに記述できる制御文を次に示します。

制御文

内容

指定できる個数

reflection

追い付き反映処理の動作内容を指定します。

1

report

追い付き反映処理の実行結果を出力するファイルを指定します。

1

reflection文とreport文は必ず両方とも指定してください。また，reflection文のsql_traceオペランドとreport文のsqltrc_dirオペランドは必ず両方とも指定してください。

reflection文

形式：

　reflection 〔sql_error=｛stop｜skip｝〕

　　　　　 〔mvcelmwarn=｛stop｜ignore｝〕

　　　　　 〔sql_trace=｛none｜err｜all｝〕

説明：

sql_error=｛stop｜skip｝

追い付き反映処理中にSQLエラーが発生した場合の動作を指定します。

stop：

SQLエラーが発生した場合，エラー終了します。このとき，処理はロールバックされ，前回のコミット時点の状態で終了します。

skip：

SQLエラーが発生した場合，特定のSQLエラー※1は無視して追い付き反映処理を続行します。

skipを指定すると，更新可能なオンライン再編成後のオリジナルとレプリカのDBの整合性が保証できなくなります。このため，skipは，十分に運用を検討した上で指定してください。

スキップしたSQLの情報は，report文のskip_infoオペランドに指定したファイルに出力されます。このとき，スキップしたSQLを特定するため，スキップ情報中にマッピングキー※2情報を出力します。SQLをスキップした後に同じ行に対してマッピングキー更新をすると，マッピングキー情報からはスキップした行が特定できなくなります。

注※1

無視する特定のSQLエラーを次に示します。

キー重複エラー（SQLCODE=-803，SQLWARN6=空白）

対象行なしエラー（SQLCODE=100，SQLWARN6=空白）

UPDATE文のADD句で追加した列の要素数が最大要素数を超えているエラー（SQLCODE=-806，SQLWARN6=空白）

注※2

レプリカRDエリアの更新行に対応するオリジナルRDエリアの反映対象行の特定には，表に定義されているユニークキー（CREATE UNIQUE INDEXで指定された列，CREATE TABLE PRIMARY KEYで指定された列，CREATE TABLE PRIMARY CLUSTER KEY，又はCREATE TABLE UNIQUE CLUSTER KEYで指定された列）のうち，その構成列すべてが非ナル値制約であるものを使用します。このキーをマッピングキーといいます。該当するユニークキーが複数ある場合は，クラスタキー，プライマリキー，インデクスIDの小さいインデクスの順番でどれか一つをマッピングキーとして使用します。

mvcelmwarn=｛stop｜ignore｝

追い付き反映処理中に，SET句又はDELETE句で繰返し列にない要素番号を指定したUPDATE文を実行した場合，警告エラーとなります。この警告エラーとなったときの動作内容を指定します。

stop：

追い付き反映処理をエラー終了します。このとき，処理はロールバックされ，前回のコミット時点の状態で終了します。

ignore：

繰返し列にない要素に対する更新を無視し，繰返し列にある要素及び列に対する更新だけをして，追い付き反映処理を続行します。

ignoreを指定すると，更新可能なオンライン再編成後のオリジナルとレプリカのDBの整合性が保証できなくなります。このため，ignoreは，十分に運用を検討した上で指定してください。

更新が無視されたSQLの情報は，report文のskip_infoオペランドに指定したファイルに出力されます。このとき，更新の一部が無視されたSQLを特定するため，スキップ情報出力ファイル中にマッピングキー情報を出力します。該当するSQLを実行した後に，同じ行に対してマッピングキー更新をすると，マッピングキー情報から該当する行が特定できなくなります。

sql_trace=｛none｜err｜all｝

追い付き反映処理中にマスタのDBに対して発行したSQLのトレース情報を出力するかどうかを指定します。

none：

追い付き反映処理中にマスタのDBに対して発行したSQLのトレース情報を出力しません。

err：

追い付き反映処理中にマスタのDBに対して発行したSQLがエラーの場合，SQLのトレース情報及びスキップ情報をファイルに出力します。

all：

追い付き反映処理中にマスタのDBに対して発行したSQLのトレース情報及びスキップ情報をファイルに出力します。allを指定した場合，実行したSQLの終了状態（正常終了又は異常終了）に関係なく出力します。

＜規則＞

このオペランドを指定する場合，report文のsqltrc_dirオペランドの指定は必須です。

report文

形式：

　report 〔skip_info=スキップ情報出力ファイル名〕

　　　　〔sqltrc_dir=SQLトレース情報ファイル出力ディレクトリ名
　　　　　　　　　　，SQLトレース情報ファイルサイズ〕

説明：

skip_info=スキップ情報出力ファイル名　〜＜パス名＞((235文字以内))

reflection文にsql_error=skip，又はmvcelmwarn=ignoreを指定した場合，スキップしたSQL，又は繰返し列にない要素の更新を無視したSQLの情報を出力するファイルを，絶対パス名で指定します。なお，実際に作成されるファイル名は，"指定したファイル名_サーバ名_プロセスID"※となります。

注※

サーバ名：最大8文字で，スキップ対象のSQLエラーが発生したサーバ名

プロセスID：最大10文字で，スキップ対象のSQLエラーが発生したプロセスID

＜規則＞

スキップ情報出力ファイルを出力するディレクトリは，すべてのサーバマシンで同じにしておく必要があります。出力するディレクトリがない場合は，制御文エラーとなります。

このオペランドを省略した場合，次の名称でファイルが作成されます。

skip_infoオペランドの指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIR※の指定

あり

なし

あり

skip_infoオペランドに指定したディレクトリ/指定したファイル名_サーバ名_プロセスID

なし

pd_tmp_directoryに指定したディレクトリ/pdskipsql_サーバ名_プロセスID

TMPDIRに指定したディレクトリ/pdskipsql_サーバ名_プロセスID

/tmp/pdskipsql_サーバ名_プロセスID

注※　init（OSのプロセス）から起動されたプロセスサーバプロセス（pdprcd）に設定される環境変数

指定したスキップ情報出力ファイルがない場合は，スキップ情報出力ファイルを作成した後，スキップ情報を出力します。指定したスキップ情報出力ファイルがある場合は，そのファイルにスキップ情報を追加出力します。

スキップ情報出力中にエラーが発生した場合，処理を中断して，ロールバックした後エラー終了します。

スキップ情報出力ファイルの見積もり式：

スキップ情報出力ファイルの見積もり式を次に示します（単位：バイト）。

n
Σ( 270 ＋ (563 × (A ＋ B)) ＋ C )
1

n：スキップしたSQL数

見積もり式で使用する変数について説明します。

変数

説明

A

更新後マッピングキー構成列数です。

SQL種別が，INSERT又はUPDATEのときだけ加算してください。加算する内容は，pdorbeginコマンドに-eオプションを指定（更新された列だけを反映）するかどうかによって異なります。

pdorbeginコマンドに-eオプションを指定しない場合

マッピングキー構成列数を加算

pdorbeginコマンドに-eオプションを指定する場合

更新したマッピングキー列数を加算

B

更新前マッピングキー構成列数です。SQL種別が，UPDATE又はDELETEのときだけ加算してください。

C

mvcelmwarnオプションにignoreを指定し，かつ，繰返し列が存在するときだけ加算してください。

        m
50 ＋ ( Σ(51 ＋ ↑(D ÷ 9)↑ × 81))
        1

m：1SQL文での繰り返し列数

D

更新要素数です。SQL種別によって，次のとおり加算してください。

UPDATE SET（要素指定）：更新対象の要素数

UPDATE ADD：1

UPDATE DELETE：削除対象の要素数

スキップ情報出力ファイルの出力PDATE DELETE：削除対象の情報：

スキップ情報出力ファイルに出力される情報を次に示します。

YYYY/MM/DD HH:MM:SS  SVR(サーバ名) PID(プロセスID) [1]
**** SKIP SQL INFORMATION **** [2]
  TABLE NAME : "認可識別子"."表識別子" [3]
  SQL KIND : SQL種別 [4]
  SQLCODE : SQLコード [5]
  SQLWARN : 警告情報 [6]
  **** AFTER KEY INFORMATION **** [7]
    COLUMN NAME : "列名" [8]
      DATA LENGTH : 実データ長 [9]
      DATA : データ値 [10]
  **** BEFORE KEY INFORMATION **** [11]
    COLUMN NAME : "列名" [12]
      DATA LENGTH : 実データ長 [13]
      DATA : データ値 [14]
  **** UPDATE MULTI-VALUE COLUMN INFORMATION **** [15]
    COLUMN NAME : "列名" [16]
      UPDATE ELEMENT NO : 要素番号[,要素番号]... [17]

［説明］

スキップしたSQL数分，1〜14が出力されます。

SQL種別がINSERT，及びUPDATEの場合，7〜10が出力されます。また，マッピングキー列数分，8〜10が出力されます。

SQL種別がUPDATE，及びDELETEの場合，11〜14が出力されます。また，マッピングキー列数分，12〜14が出力されます。

mvcelmwarnオプションにignoreを指定し，かつSQL種別がUPDATE SET（要素指定），UPDATE ADD，又はUPDATE DELETEの場合，15〜17が出力されます。また，更新対象の繰返し列数分，16及び17が出力されます。

SQLエラー発生の日時，サーバ名，及びプロセスIDです。

スキップ情報のヘッダ

認可識別子，及び表識別子

スキップしたSQL種別

INSERT：挿入

UPDATE SET，UPDATE ADD，及びUPDATE DELETE：更新

DELETE：削除

スキップしたSQLのSQLCODE

警告情報

発生した警告情報が出力されます。警告情報が複数ある場合は，各項目の間に空白が入ります。警告情報がない場合は，「SQLWARN:」だけ出力されます。

更新後のキー情報のヘッダ

列名

実データ長（10進数）

データの内容（ダンプ形式（16進数＋文字列表示））※１

更新前のキー情報のヘッダ

列名

実データ長（10進数）

データの内容（ダンプ形式（16進数＋文字列表示））※１

繰返し列の更新情報のヘッダ

繰返し列の列名

更新対象の要素番号

SQL種別が次のどれかの場合，更新対象の要素番号が出力されます。

UPDATE SET（要素指定）：更新対象の要素番号※２

UPDATE ADD：追加する要素の先頭の要素番号※３

UPDATE DELETE：削除対象の要素番号※２

更新対象の要素が複数ある場合，コンマで区切られます。要素番号が10個以上ある場合は，9個の要素ごとに改行されます。

注※1

該当する列に文字集合が定義されている場合，定義された文字コードで出力されます。

注※2

*指定のSQLを実行した場合は，実際に更新した要素番号が出力されます。

注※3

*指定のSQLを実行した場合は，更新対象の要素番号に*が出力されます。

sqltrc_dir=SQLトレース情報ファイル出力ディレクトリ名，SQLトレース情報ファイルサイズ

reflection文のsql_traceオペランドにerr，又はallを指定して出力するSQLトレース情報の出力ディレクトリ，及びSQLトレース情報ファイルサイズを指定します。

SQLトレース情報ファイル出力ディレクトリ名　〜＜パス名＞((223文字以内))

SQLトレース情報を出力するディレクトリ名を絶対パス名で指定します。ここで指定したディレクトリに，次の二つのファイルを作成します。

pdorsqltrc1_サーバ名称_プロセスID

pdorsqltrc2_サーバ名称_プロセスID

サーバ名称（最大8文字）：SQLトレース情報の出力元の追い付き反映対象サーバ名

プロセスID（最大10文字）：SQLトレース情報の出力元の追い付き反映SQL実行プロセスのプロセスID

＜規則＞

このオペランドを指定する場合，reflection文のsql_traceオペランドの指定は必須です。

pdorendを実行する前に，追い付き反映対象サーバが存在するすべてのサーバマシンで，このオペランドに指定したディレクトリを作成しておく必要があります。ディレクトリが作成されていない場合，pdorendはエラーになります。

SQLトレース情報ファイルの初回作成時に，作成対象ファイルと同名のファイルが存在した場合，そのファイルを上書きします。必要に応じて，別ディレクトリ又は別ファイル名にコピーしておく必要があります。

SQLトレース情報を出力するファイルのスワップが発生した場合，切り替え先のファイルは上書きされるため，必要に応じて，切り替わる前に別ディレクトリ又は別ファイル名にコピーしておく必要があります。なお，ファイルのスワップが発生すると，syslogfile及びメッセージログファイルにKFPT01020-Iメッセージが出力されます。

SQLトレース情報ファイルのアクセス処理でエラーが発生した場合，pdorendは処理を中断し，ロールバックしてからエラー終了します。

更新情報のダンプ出力時は1行出力するたびに入出力が発生します。更新情報の出力数は，SQLトレース情報ファイルサイズの＜指定値の目安＞の変数D（更新データ長）の説明を参照してください。

SQLトレース情報ファイルサイズ　〜((0，4096〜2144337920))

SQLトレース情報ファイルのサイズをバイト単位で指定します。sqltrc_dirオペランドを指定する場合，SQLトレース情報ファイルサイズは必ず指定してください。

0を指定すると，HiRDBファイルシステムの最大サイズが仮定されます。この場合，出力するSQLトレース情報サイズがHiRDBファイルシステムの最大サイズを超えるとpdorendはエラーになります。

4,096〜2,144,337,920を指定した場合，SQLトレース情報ファイルが指定したファイルサイズを超えると，もう一つのファイルにスワップしてSQLトレース情報の出力を切り替えます。出力先を切り替えた時点で，切り替え元のファイルサイズは，ここで指定したファイルサイズよりも最大で3メガバイト程度大きくなる可能性があります。

＜指定値の目安＞

SQLトレース情報の出力量に対して過小なサイズを指定すると，SQLトレース情報ファイルのスワップが多発して性能が劣化します。次の見積もり式で求めた値を目安としてください。なお，予備列がある表の場合，見積もり式で求めた値は，予備列の情報を含めた値です。

 n
 Σ表単位のSQLトレースサイズ
 i=1

n：更新可能なオンライン再編成中にレプリカのデータベースに対して更新した表の数

表単位のSQLトレースサイズ（単位：バイト）：

（E＋A）×B＋200×B÷100

見積もり式で使用する変数について説明します。

変数

説明

A

SQLトレース情報サイズです。

行更新※4の場合

400＋100×（1＋マッピングキー列数）＋C＋D

列更新の場合

400＋100×（更新表の構成列数※１＋マッピングキー列数）＋C＋D

B

更新SQL数です。

更新SQL数は，reflection文の指定内容によって，次の値になります。

sql_trace=errの場合

sql_error=stop又はsql_errorオペランド省略，mvcelmwarn=stop又はmvcelmwarnオペランド省略のとき

1

sql_error及びmvcelmwarnの指定が上記以外※２のとき

更新可能なオンライン再編成中にレプリカのデータベースの該当表の更新SQLのうち，SQLエラーになると思われる更新SQL数

sql_trace=allの場合

sql_error=stop又はsql_errorオペランド省略，mvcelmwarn=stop又はmvcelmwarnオペランド省略のとき

更新可能なオンライン再編成中にレプリカのデータベースの該当表の更新SQL数＋100

sql_error及びmvcelmwarnの指定が上記以外※２のとき

更新可能なオンライン再編成中にレプリカのデータベースの該当表の更新SQL数×（更新SQLのうち，SQLエラーになると思われる割合÷100＋1）+100

C

更新データ長です。

行更新※4の場合

（表の行長÷16）×100

列更新の場合

更新列だけ反映する

｛（更新列の固定長データ型の列定義長の合計※１＋更新列の可変長データ型の列定義長の合計※１＋更新列の圧縮列の定義長の合計※5）÷16｝×100

更新列以外の列も反映する

｛（更新表の構成列中で固定長データ型の列定義長の合計※１＋更新表の構成列で可変長データ型の列定義長の合計※１，※３＋更新列の圧縮列の定義長の合計※5）÷16｝×100

D

SQLCSNA情報サイズです。SQLCSNA情報サイズは文字集合が定義された表の場合だけ加算してください。

4400＋（↑（更新表の構成列数※１＋マッピングキー列数）÷ 8↑×100）

E

スキップ情報出力ファイルサイズです。

skip_infoオペランドの説明を参照してください。

注※1

繰返し列の場合，定義長×更新する要素数を加算してください。

注※2

次に示す組み合わせのときです。

・sql_error=skip，mvcelmwarn=ignore

・sql_error=skip，mvcelmwarn=stop又はmvcelmwarnオペランド省略

・sql_error=stop又はsql_errorオペランド省略，mvcelmwarn=ignore

注※3

BLOB又はBINARY型の場合，更新するときだけ更新データ長を加算してください。

注※4

既定義型以外の文字集合の列がないFIX表で，次のSQLを実行した場合，行更新をします。

・INSERT文

・UPDATE文（更新列以外の列も反映するとき）

注※5

次の条件をすべて満たす場合に加算されます。

・圧縮列のデータ型がBINARY型である。

・BINARY型の圧縮列がある表を追い付き反映処理する場合に，データが伸張される圧縮列がある。

追い付き反映処理時に伸張される圧縮列については，マニュアル「HiRDB Staticizer Option」の「圧縮表の追い付き反映処理をする場合」を参照してください。

SQLトレース情報ファイルの出力情報：

SQLトレース情報ファイルに出力される情報を次に示します。

YYYY/MM/DD HH:MM:SS  SVR(サーバ名) PID(プロセスID) [1]
**** SQL TRACE INFORMATION **** [2]
  ** EXECUTION SQL ** [3]
    UPDATE "repjobp"."ANA_0001" SET "C01"=?,"C02"=? WHERE "C01"=? [4]
  ** SQL EXECUTION RESULT ** [5]
    SQLCODE : SQLコード [6]
    SQLWARN : 警告情報 [7]
  ** SQLDA ** [8]
    Address  Loc      +0+1+2+3 +4+5+6+7 +8+9+a+b +c+d+e+f 0123456789abcdef [9]
    400b3010 00000000 53514c44 41202020 00000000 00030003 SQLDA   ........
  ** SQLVAR ** [10]
    Address  Loc      +0+1+2+3 +4+5+6+7 +8+9+a+b +c+d+e+f 0123456789abcdef
    400b3020 00000000 00f40001 00020000 400c07b8 400c07b0 ........@...@...
    400b3030 00000010 00f40001 00020000 400c07c8 400c07c0 ........@...@...
    400b3040 00000020 00f40001 00020000 400c07a8 400c07a0 ........@...@...
                                    :
  ** SQLCSNA ** [11]
    Address  Loc      +0+1+2+3 +4+5+6+7 +8+9+a+b +c+d+e+f 0123456789abcdef
    400b4040 00000000 53514c43 534e4120 00000000 00000000 SQLCSNA ........
    400b4050 00000010 00050005 000a0001 00000000 00000000 ................
                                    :
  ** UPDATE INFORMATION **
    Address  Loc      +0+1+2+3 +4+5+6+7 +8+9+a+b +c+d+e+f 0123456789abcdef [12]
    400c0700 00000000 2a2a5442 4c552a2a 0002007a 03000000 **TBLU**...z....
    400c0710 00000010 00000000 00000000 00000001 00000044 ...............D
    400c0720 00000020 00000002 00000058 4540236c 45402383 .......XE@#lE@#.
    400c0730 00000030 00000001 0000013f 00000000 0000026e .......?.......n
    400c0740 00000040 00000000 4d430001 00000000 000000a0 ....MC..........
    400c0750 00000050 000000a8 00000002 55430001 00000100 ........UC......
    400c0760 00000060 00000000 00000000 00000000 00000000 ................
    400c0770 00000070 000000b0 000000b8 00000002 55430002 ............UC..
    400c0780 00000080 00000000 00000000 00000000 00000000 ................
    400c0790 00000090 00000000 000000c0 000000c8 00000002 ................
    400c07a0 000000a0 00000000 00000000 00010000 00000000 ................
    400c07b0 000000b0 00000000 00000000 00030000 00000000 ................
    400c07c0 000000c0 00000000 00000000 0001              ..........
YYYY/MM/DD HH:MM:SS  SVR(サーバ名) PID(プロセスID) [13]
**** SKIP SQL INFORMATION ****
  TABLE NAME : "認可識別子"."表識別子"
             ：
             ：
YYYY/MM/DD HH:MM:SS  SVR(サーバ名) PID(プロセスID) [4]
**** SQL TRACE INFORMATION ****
  ** EXECUTION SQL **
    COMMIT

［説明］

SQLを実行した日時，サーバ名，及びプロセスIDです。

SQLトレース情報のヘッダ

実行したSQLの情報を示すヘッダ

SQL文

実行したSQL文及びCOMMIT文です。

SQL文の場合は[1]〜[12]の情報を出力します。COMMIT文の場合は[1]〜[4]の情報を出力します。

ただし，レプリカのデータベースを更新したSQLとは異なるSQL文が出力される場合があります。例を示します。

・追い付き反映時，更新列だけ反映する指定をしなかった場合

・更新列数＋マッピングキー列数が30000（？パラメタの最大数）を超える場合

・ロールバックのSQLの場合

・行更新の場合（行更新については，SQLトレース情報ファイルサイズの＜指定値の目安＞の注を参照してください）

実行したSQLの結果を示すヘッダ

実行したSQLのSQLCODE

実行したSQLの警告情報（SQLWARNn　n：0〜F）

発生した警告情報が出力されます。警告情報が複数ある場合は，各項目の間に空白が入ります。警告情報がない場合は，「SQLWARN:」だけ出力されます。

SQL記述領域情報（SQLDA）

SQL記述領域については，マニュアル「HiRDB UAPを参照してください。

ダンプ出力ヘッダ

ヘッダと出力される内容を次に示します。

ヘッダ

出力内容

Address

アドレス（16進数）※１

Loc

先頭からのオフセット（16進数）※１

+0+1+2+3 +4+5+6+7 +8+9+a+b +c+d+e+f

メモリの内容（16進表示）※２

0123456789abcdef

メモリの内容（キャラクタ表示）※２

注※1

32ビットモードのHiRDBの場合は4バイト（8けた），64ビットモードのHiRDBの場合は8バイト（16けた）で出力されます。

注※2

該当する列に文字集合が定義されている場合，定義された文字コードで出力されます。

SQL記述領域情報（SQLVAR）

SQL記述領域については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

文字集合名記述領域（SQLCSNA）

表に文字集合が定義されている列が存在する場合だけ出力されます。

文字集合名記述領域については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

更新情報

SQL実行時の更新情報。データ型ごとの更新データのフォーマットについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

ただし，次のデータ型の列に圧縮指定（COMPRESSED）がある場合，更新情報には圧縮されたデータ又は伸張されたデータが出力されます。圧縮後のデータ長が定義長よりも大きい列があるかどうかで出力されるデータが異なります。

圧縮指定があるデータ型

圧縮後のデータ長が定義長よりも大きい列

ない

ある

BINARY型

圧縮データ

伸張データ

XML型

圧縮データ

圧縮データ

スキップ情報

SQLトレース情報とともに出力されます。出力される情報については，「スキップ情報出力ファイルの出力情報」を参照してください。

(h)　-p

追い付き反映処理終了後に，オンライン再編成対象のRDエリアにある被参照表に対して制約定義をしている参照表，オンライン再編成対象のRDエリアにある参照表，及びオンライン再編成対象のRDエリアにある検査制約表を検査保留状態にしない場合に指定します。このオプションは，システム定義のpd_check_pendingオペランドの値がUSEの場合にだけ有効です。

＜規則＞

このオプションは，オンライン再編成後にデータ不整合が発生しない場合に指定してください。参照制約及び検査制約で不整合が発生する条件については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

このオプションを指定しない場合，次に示す表のオリジナルRDエリアの世代を検査保留状態にします。

オンライン再編成の対象RDエリアにある被参照表に対して，制約定義をしている参照表

オンライン再編成の対象RDエリアにある参照表

オンライン再編成の対象RDエリアにある検査制約表

表を検査保留状態にした後，pdorendコマンドがエラーとなった場合，検査保留状態のまま処理を終了します。

検査保留状態の設定ができなかった場合は，KFPT01018-Wメッセージを出力し，該当する表の検査保留状態の設定処理を無視して処理を続行します。KFPT01018メッセージが出力された場合は，該当メッセージの管理者の処置に従って，該当する表の整合性をチェックしてください。

追い付き反映処理が終了した後に検査保留状態の表がある場合，pdconstckで整合性を確認してください。検査保留状態が解除されるまで，該当表に対してはアクセスできません。整合性の確認手順については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

システム定義のpd_check_pendingオペランドの値がNOUSEの場合は，このオプションの指定に関係なく，表の検査保留状態を変更しません。また，pd_check_pendingオペランドの値がNOUSEの場合，pdorendコマンドの実行でデータ不整合が発生することがあります。

＜検査保留状態の遷移＞

検査保留状態の遷移について次に説明します。

被参照表の場合

被参照表がオンライン再編成の対象RDエリアにある場合の，被参照表に関連のある参照表の検査保留状態の遷移を次の表に示します。なお，被参照表に対して，複数の関連のある参照表がある場合でも，参照表の検査保留状態は次の表に従って遷移します。

表2‒18　被参照表がある場合の検査保留状態の遷移

pd_check_pendingオペランドの指定値

-pオプションの指定

参照表の種別

被参照表に関連のある参照表の表格納RDエリアの状態

参照表の検査保留状態

USE

なし

非分割表

オンライン再編成の対象になっている。

○

オンライン再編成の対象になっていない。

○

分割表

すべての表格納用RDエリアがオンライン再編成の対象になっている。

○

一部の表格納用RDエリアがオンライン再編成の対象になっている。

○

すべての表格納用RDエリアがオンライン再編成の対象になっていない。

○

あり

該当しない

該当しない。

−

NOUSE

該当しない

該当しない

該当しない。

−

(凡例)

○：参照表を構成するすべてのRDエリアの表情報を検査保留状態にします。

−：状態を変更しません。

＜例＞

pd_check_pendingオペランドにUSEを指定し，pdorendコマンドに-pオプションを指定しないで，かつ被参照表T0と参照表T1〜T5が次の図で示す構成で1対1の参照関係にある場合，オンライン再編成の対象RDエリアがRD1及びRD2のとき，検査保留状態にする対象を表「被参照表の検査保留状態の遷移例（被参照表と参照表が1対1の場合）」に示します。

図2‒9　被参照表と参照表の構成例

表2‒19　被参照表の検査保留状態の遷移例（被参照表と参照表が1対1の場合）

参照表の表名

RDエリア名

検査保留状態の設定

T1

RD1

○

T2

RD1

○

RD2

○

T3

RD1

○

RD2

○

RD3

○

T4

RD3

○

T5

RD3

○

RD4

○

(凡例)

○：検査保留状態にします。

参照表の場合

参照表がオンライン再編成の対象RDエリアにある場合の検査保留状態の遷移を次の表に示します。なお，参照表と関連のある被参照表が，オンライン再編成対象のRDエリアにない場合でも，参照表の検査保留状態は次の表に従って遷移します。

表2‒20　参照表の検査保留状態の遷移

pd_check_pendingオペランドの指定値

-pオプションの指定

参照表の種別

参照表の表格納用RDエリアの状態

参照表の検査保留状態

USE

なし

非分割表

オンライン再編成の対象になっている。

○

オンライン再編成の対象になっていない。

−

分割表

すべての表格納用RDエリアがオンライン再編成の対象になっている。

○

一部の表格納用RDエリアがオンライン再編成の対象になっている。

△

すべての表格納用RDエリアがオンライン再編成の対象になっていない。

−

あり

該当しない

該当しない。

−

NOUSE

該当しない

該当しない

該当しない。

−

(凡例)

○：参照表を構成するすべてのRDエリアの表情報を検査保留状態にします。

△：オンライン再編成対象のRDエリアにある，参照表を構成するRDエリアの表情報だけを検査保留状態にします。

−：状態を変更しません。

＜例＞

pd_check_pendingオペランドにUSEを指定し，pdorendコマンドに-pオプションを指定しないで，かつ参照表T1〜T5が次の図に示す構成の場合，オンライン再編成の対象となるRDエリアがRD1及びRD2のとき，検査保留状態にする対象を表「参照表の検査保留状態の遷移例」に示します。

図2‒10　参照表の構成例

表2‒21　参照表の検査保留状態の遷移例

参照表の表名

RDエリア名

検査保留状態の設定

T1

RD1

○

T2

RD1

○

RD2

○

T3

RD1

○

RD2

○

RD3

−

T4

RD3

−

T5

RD3

−

RD4

−

(凡例)

○：検査保留状態にします。

−：検査保留状態にしません。

検査制約表の場合

検査制約表がオンライン再編成の対象RDエリアにある場合の検査保留状態の遷移を次の表に示します。

表2‒22　検査制約表の検査保留状態の遷移

pd_check_pendingオペランドの指定値

-pオプションの指定

検査制約表の種別

検査制約表の表格納用RDエリアの状態

参照表の検査保留状態

USE

なし

非分割表

オンライン再編成の対象になっている。

○

オンライン再編成の対象になっていない。

−

分割表

すべての表格納用RDエリアがオンライン再編成の対象になっている。

○

一部の表格納用RDエリアがオンライン再編成の対象になっている。

△

すべての表格納用RDエリアがオンライン再編成の対象になっていない。

−

あり

該当しない

該当しない。

−

NOUSE

該当しない

該当しない

該当しない。

−

(凡例)

○：検査制約表を構成するすべてのRDエリアの表情報を検査保留状態にします。

△：オンライン再編成の対象RDエリアにある，検査制約表を構成するRDエリアの表情報だけを検査保留状態にします。

−：状態を変更しません。

＜例＞

pd_check_pendingオペランドにUSEを指定し，pdorendコマンドに-pオプションを指定しないで，かつ検査制約表T1〜T5が次の図で示す構成の場合，オンライン再編成の対象RDエリアがRD1及びRD2のとき，検査保留状態にする対象を表「検査制約表の検査保留状態の遷移例」に示します。

図2‒11　検査制約表の構成例

表2‒23　検査制約表の検査保留状態の遷移例

参照表の表名

RDエリア名

検査保留状態の設定

T1

RD1

○

T2

RD1

○

RD2

○

T3

RD1

○

RD2

○

RD3

−

T4

RD3

−

T5

RD3

−

RD4

−

(凡例)

○：検査保留状態にします。

−：検査保留状態にしません。

(i)　-u

オンライン再編成の追い付き反映処理を中止する場合に指定します。

＜規則＞

-uオプションを指定すると，障害時の運用となるため，注意が必要です。

pdorend実行時の排他が掛けられない場合，システム定義のpd_lck_wait_timeoutオペランドの指定値まで待ちます。

処理対象RDエリアに共用RDエリアがある場合，全バックエンドサーバで一括して処理をします。そのため，処理対象のすべてのRDエリアのオンライン再編成閉塞を解除できない場合はエラーとなります。なお，特定のバックエンドサーバが停止中などの理由で，サーバ単位にオンライン再編成閉塞を解除する場合は，-sオプション指定でオンライン再編成閉塞を解除できます。

＜適用基準＞

-uオプションは，該当するサーバに障害が発生した場合に指定してください。それ以外の場合に指定すると，追い付き反映処理ができなくなり，オリジナルRDエリアにトランザクションのアクセスを切り替えられなくなります。この場合，副系ボリュームのレプリカRDエリアでオンライン業務を続行します。オンライン業務をオリジナルRDエリアにアクセスさせたい場合は，HiRDBをいったん終了する必要があります。

(j)　-I｛put｜noput｝

排他待ちによってタイムアウトした際に，タイムアウト情報を出力するかどうかを指定します。タイムアウト情報はタイムアウト要因の特定に使用できます。タイムアウト情報については，マニュアル「HiRDB システム運用ガイド」を参照してください。

タイムアウト情報を出力する指定（-I put）は，このコマンドと同時間帯に動いている処理（UAP・コマンドなど）を把握していない場合に使用してください。

put：

$PDDIR/spool/pdlckinfにタイムアウト情報が出力されます。

タイムアウト情報を出力する場合は，ディスク容量の確保が必要です。タイムアウト情報を含む単調増加ファイルのファイルサイズについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

noput：

タイムアウト情報は出力されません。

タイムアウト情報を出力する指定（-Iput）時に，タイムアウトによってリトライが発生した場合は，タイムアウトが発生した回数分のタイムアウト情報が出力されます。リトライの詳細については，pdorendコマンドの-nオプションを参照してください。

(5)　規則

pdorendコマンドは，HiRDBが稼働中のときだけ実行できます。

pdorendコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdorendコマンドを実行する場合，データディクショナリ用RDエリアは次の状態でなければなりません。

オープン状態，かつ閉塞解除状態

RDエリアの状態によってpdorendコマンドの実行可否が変わります。詳細については，「RDエリアの状態遷移」を参照してください。

追い付き反映処理の最大待ち時間，及びトランザクション処理の最大待ち時間の関係を次の図に示します。

図2‒12　追い付き反映処理の最大待ち時間，及びトランザクション処理の最大待ち時間の関係

〔説明〕

追い付き反映処理の最後に，オリジナルRDエリアとレプリカRDエリアの同期を取ります。同期処理でタイムアウトとなった場合は，-nオプションで指定した回数だけリトライします。

-n，-w，及び-oオプションの指定値は，サーバごとに監視されます。

KFPH27040-Iメッセージが出力されている場合は，該当するサーバの追い付き反映処理，及びカレントRDエリアの切り替え処理が完了しています。

-wオプションの指定値の残り時間が-tオプションの指定値より小さくなった場合，-wオプションの指定値の残り時間は，-tオプションの指定値に変わります。

処理対象RDエリアに共用RDエリアがある場合，全バックエンドサーバが処理対象となります。このため，次のどちらかに該当する場合，エラーとなります。

処理対象の更新可能バックエンドサーバのレプリカRDエリアから，オリジナルRDエリアへの追い付き反映処理が完了できない

全バックエンドサーバの処理対象のレプリカRDエリアから，オリジナルRDエリアへのカレントRDエリアの変更ができない

pdorendコマンドを実行した場合，参照及び更新トランザクションとの間でデッドロックになることがあります。システム定義にpd_deadlock_priority_use=Yを指定し，更にpd_command_deadlock_priorityに運用コマンドのデッドロックプライオリティ値を指定することで，デッドロック発生時に参照及び更新トランザクションと運用コマンドのどちらを優先させるか選択できます。pdorendコマンドをエラーにする場合は，運用コマンドのデッドロックプライオリティ値を大きくします。この場合，pdorendコマンドがコマンド実行時に掛けた排他をすべて解除してからエラーになるため，一定時間後にpdorendコマンドを再度実行してください。pdorendコマンドを優先し，参照及び更新トランザクションをエラーにする場合は，運用コマンドのデッドロックプライオリティ値を小さくしてください。

(6)　注意事項

pdorendコマンドの結果は，pdls -d orgコマンド，又はリターンコードで確認できます。リターンコードを次に示します。

0：正常終了

4：警告終了※１

8：異常終了

12：異常終了（コマンドがエラーメッセージを表示できない事象が発生）※2

注※1

次の現象のどれかが発生しています。

・一部のサーバで処理が成功したか，又はスキップ対象のSQLエラーが発生したため，該当するSQLをスキップしました。

・SET句又はDELETE句で繰返し列にない要素番号を指定したUPDATE文を実行し，警告エラーが発生しましたが，処理を続行しました。警告エラーとなった場合の動作については，-fオプションのreflection文のmvcelmwarnオペランドを参照してください。

・検査保留状態に変更できない表がありましたが，該当する処理を無視して処理を続行しました。

注※2

シングルサーバ又はディクショナリサーバがあるホストのsyslogfileのエラーメッセージを参照し，エラーの要因を取り除いた後，再度コマンドを実行してください。syslogfileにエラーメッセージが出力されていない場合は，保守員に連絡してください。

pdorendコマンドは，オリジナルRDエリアとレプリカRDエリアの同期を取るため，オンライン再編成閉塞のRDエリアに対して，インナレプリカ構成，及びレプリカグループ構成の排他を掛けます。そのため，レプリカグループ内のRDエリアをほかのトランザクションがアクセスしている場合は，そのトランザクションが終了するまでpdorendコマンドは待ち状態となります。反映処理が完了し，カレントRDエリアがオリジナルRDエリアに切り替わった後に，インナレプリカ構成，及びレプリカグループ構成の排他で待ちとなっていたトランザクションのアクセスができるようになります。

pdorendコマンドがタイムアウトする場合は，-w，-t，及び-nオプションの指定値を大きくしてください。指定値を大きくしてpdorendコマンドを実行してもタイムアウトとなる場合は，レプリカRDエリアにアクセスするトランザクション量を抑えてから，再度実行してください。

pdorend -uコマンド実行時にエラーが発生した場合，処理対象サーバのすべてのRDエリアのオンライン再編成閉塞が解除されていれば，pdorendコマンドの再実行は不要です。処理対象サーバのRDエリアの状態については，pddblsコマンドで確認できます。

被参照表がオンライン再編成の対象RDエリアにある場合，被参照表に関連する参照表の表格納用RDエリアがオンライン再編成の対象外のときは，pdorendコマンドの延長で，被参照表に関連のある参照表も検査保留状態にします。そのため，検査保留状態にする参照表に対してほかのUAPなどがアクセスしていると，デッドロックが発生する可能性があります。被参照表がオンライン再編成の対象RDエリアにある場合は，被参照表に関連のある参照表のRDエリアもオンライン再編成の対象としてください。なお，被参照表に関連のある参照表のRDエリアは，pdrdrefls -cコマンドで確認できます。被参照表の参照表があるかどうかを確認する手順については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdorendの追い付き反映制御ファイルには，BOMを持つファイルを使用できます。なお，pdorendの追い付き反映制御ファイルとしてBOMを持つファイルを使用しても，BOMは読み飛ばされます。また，pdorendで出力されるファイルにはBOMは付きません。

(7)　SQLトレース情報ファイルの参照手順

32ビットモードのHiRDBで，次に示す表定義及び実行したSQLの場合を例に，SQLトレース情報ファイルの参照手順について説明します。

表定義

CREATE TABLE ANA_0001 (
    C01        SMALLINT NOT NULL,
    C02        SMALLINT NOT NULL);

実行したSQL

UPDATE ANA_0001 SET C01=3,C02=1 WHERE C01=1;

出力されたSQLトレース情報ファイルを次の図に示します。

図2‒13　出力されたSQLトレース情報ファイル（例）

〔説明〕

SQL記述領域（SQLDA）中にある?パラメタ数を確認します。

この例では，0x0003となっていて，?パラメタの数が3個であることが分かります。

データコードを確認します。

データコードの種類によって，更新情報中の更新データのフォーマットが異なるため，確認します。この例では，0xf4であり，SMALLINT型ということが分かります。

変数の領域の構造を確認します。

この例では，0x0001であり，単純構造であることが分かります。

更新情報中のインジケータのアドレスを確認します。

32ビットモードの場合のインジケータの値を次に示します。

NULL：0xffff（-1）

NULL以外：0x0000（0）

この例では，0x400c07b0がインジケータのアドレスと分かります。SMALLINT型のインジケータのサイズは2バイトであり，この例では0x0000となっているため，ナル値でないことが分かります。データコードによってインジケータのサイズは異なります。詳細については，マニュアル「HiRDB UAP開発ガイド」の「SQLのデータ型とC言語のデータ記述」を参照してください。

4.でNULL以外の場合は，更新したデータのデータ長を確認します。

データ長は，データ型によって格納先が異なります。データ型ごとにデータ長参照先を次に示します。

データ型

データ長の参照先

可変長文字列

可変長各国文字列

可変長混在文字列

BINARY

BLOB

SGMLTEXT

XML

FREEWORD

図「出力されたSQLトレース情報ファイル（例）」の6.

上記以外

図「出力されたSQLトレース情報ファイル（例）」の5.

詳細については，マニュアル「HiRDB UAP開発ガイド」の「SQL記述領域に設定するデータコードとデータの長さ」，及び「SQLのデータ型とC言語のデータ記述」を参照してください。

この例では，固定長データ（SMALLINT）のため，5.にデータ長が格納されています。データ長は0x0002であり，更新情報中の更新データの長さが2バイトであることが分かります。

更新情報中のデータのアドレスを確認します。

この例では，0x400c07b8からデータが格納されていると分かります。5.で更新情報中の更新したデータの長さは2バイトと分かっているため，SQLトレース情報に出力されいているSQL文の最初の?パラメタに対応する更新データは,データアドレスから2バイト分の0x0003であることが分かります。

データのフォーマットはデータ型によって異なります。詳細については，マニュアル「HiRDB UAP開発ガイド」の「SQL記述領域に設定するデータコードとデータの長さ」，及び「SQLのデータ型とC言語のデータ記述」を参照してください。

リアルタイムSANレプリケーションの処理方式にハイブリッドを選択している場合，pdorendコマンドを実行すると，リモートサイトへのデータベース同期待ち合わせをします。このため，-sオプションで指定したサーバにあるRDエリア一つにつき，2秒以上のオーバヘッドが掛かることがあります。リモートサイトへのデータベース同期待ち合わせに失敗した場合，リモートサイトのデータベースを回復する必要があります。リアルタイムSANレプリケーションを使用した場合の障害発生時の運用については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

2.96　pdparaload（パラレルローディング）

2.96.1　pdparaloadの形式と規則

(1)　機能

一つの入力データファイルから横分割表を構成する複数のRDエリアに対して，データロード（pdloadコマンド）を並列実行します（パラレルローディング機能）。

(2)　実行者

pdloadコマンドと同じ実行権限を持つユーザが実行できます。

(3)　形式

　pdparaload 〔pdloadコマンドオプション〕 〔-I 実行間隔〕 〔認可識別子.〕表識別子

　　　　　　 pdparaload制御文ファイル名

(4)　オプション

(a)　pdloadコマンドオプション

pdloadコマンドのオプションを指定します。指定されたコマンドのオプションは，pdparaloadコマンドがpdloadコマンドを実行するときに使用します。

pdloadコマンドのオプションの中でpdparaloadコマンドに指定できないオプションがあります。pdparaloadコマンドでのpdloadコマンドオプションの指定可否を次に示します。

なお，指定できないオプションを指定すると，データロード実行中にエラー終了します。

表2‒24　pdloadコマンドオプションの指定可否

項番

オプション

pdparaloadへの指定可否

説明

1

-d

○

pdloadコマンドを作成モードで実行する場合に指定します。

なお，表に非横分割インデクスが定義されているときは，表の既存データ削除時に非横分割インデクスの排他を取得します。表の分割数や既存データ量によっては削除処理に時間が掛かり，排他待ちでpdloadがエラー終了するおそれがあるため，以下の対処を推奨します。

-Iオプションを指定して，RDエリアごとのpdloadの実行間隔を空けて実行する

事前にPURGE TABLE文で該当表のデータを削除した後に，-dオプションを指定しないでpdparaloadを実行する

2

-a｜-b｜-U

○

（-w allは×）

入力データファイルの形式を指定します。

なお，-w all（表移行用アンロードファイルを使用し，表，及びインデクス定義を伴うデータロード指定）は指定できません。

3

-i

○

インデクス作成方法を指定します。

4

-l

○

pdloadコマンド実行時のデータベースの更新ログの取得方法を指定します。

5

-k

○

LOBデータをLOB列に格納する場合，及び抽象データ型列に格納する値を生成するコンストラクタ関数の引数がLOBパラメタのときに，そのデータの入力方法を指定します。

pdparaloadコマンドでは，-k fオプションでのファイルの作成方法を推奨します。

このオプションを指定すると，一つのLOBデータごとにファイルを作成するため，並列実行時にLOBデータを重複して読み込むことがありません。そのため，入出力処理を削減できます。ただし，このオプションを指定すると，各RDエリア単位でのデータロード中に，LOB中間ファイルが作成されます。作成されたLOB中間ファイルは，pdparaloadコマンド終了後も削除されないため，pdparaloadコマンド終了後にユーザが削除する必要があります。

6

-c

○

列構成情報ファイルの名称を指定します。

7

-v

○

ナル値・関数情報ファイルの名称を指定します。

8

-n

○

ローカルバッファを使用するときにバッファ面数を指定します。

9

-u

×

pdloadコマンドを実行するユーザの認可識別子は指定できません。

10

-x

○

入力データがクラスタキーの昇順又は降順になっているかどうかをチェックしない場合に指定します。

11

-f

×

入力データファイル，又はLOB入力ファイルにEasyMTを指定できません。

12

-s

○

入力データファイルがDAT形式の場合，各データ間のセパレータ文字を変更するときに指定します。

13

-e

○

入力データの不正を検出した場合に，処理を中断するときに指定します。

14

-r

○

入力データファイルの1行目からデータを入力しないで，指定した行からデータを入力する場合に指定します。

15

-z

○

可変長文字列，可変長各国文字列，及び可変長混在文字列に対して，長さ0のデータを格納する場合に指定します。

16

-y

○

データロード時，未使用ページを使い切った場合に，使用中ページの未使用領域へデータを格納したいときに指定します。

17

-o

×

インデクス一括作成が正常終了した後，index文に指定したインデクス情報ファイルを自動的に削除できません。

18

-m

○

処理の実行状況を出力するメッセージの出力間隔を指定します。

19

-X

○

障害を検知するために，コマンドで実施されるディクショナリ操作についての通信の応答時間を指定します。

20

-q

○

インナレプリカ機能を使用している場合，データロード対象となるRDエリアの世代番号を指定します。

21

-K

○

XML型のパラメタに対する入力データ値の形式を指定します。

22

-G

○

入力データファイルとして指定したXMLデータのデータ種別（XML文書又はESIS-B形式）を指定します。

23

-F

○

FLOAT型及びSMALLFLT型の入力データ値がOSの制限値に満たない場合，又はOSの制限値を超えている場合に，入力データ値をOSの制限値内に補正するときに指定します。

（凡例）

○：pdparaloadコマンドに指定できます。

×：pdparaloadコマンドに指定できません。

(b)　-I 実行間隔　〜＜符号なし整数＞((10〜600000))《1000》（単位：ミリ秒）

pdparaloadコマンドは，RDエリア単位でデータロードを行います。このオプションでは，各データロードの実行間隔を指定します。

実行間隔を空けることで，複数のpdloadコマンドが同時に実行されないため，ディクショナリ表にアクセスが集中し，実行待ちになることを防止できます。

＜指定値の目安＞

通常は，デフォルト値で運用します。

pdloadの前処理時間が指定値を超える場合は，1000ずつ加算してpdparaloadコマンドを再実行してください。

(c)　〔認可識別子.〕表識別子　〜＜識別子＞((1〜30バイト))

pdparaloadコマンドを使用して，データロードする表の表識別子を指定します。指定時の規則は，pdloadコマンドと同じです。pdloadコマンドの〔認可識別子.〕表識別子については，「〔認可識別子.〕表識別子」を参照してください。

(d)　pdparaload制御文ファイル名　〜＜パス名＞((1〜1023バイト))

pdparaload制御文ファイルのパスを指定します。pdparaload制御文ファイルとは，pdparaloadコマンドによって実行される，pdloadコマンドの制御文を記述したファイルです。pdloadコマンドの制御文については，「コマンドの形式」を参照してください。ただし，pdloadコマンドの制御文の中でpdparaload制御文ファイルに指定できない制御文があります。pdparaload制御文ファイルでのpdloadコマンドの制御文の指定可否を次に示します。

なお，指定できない制御文を指定すると，pdparaloadは制御文をチェックしないため，データロード実行時に制御文エラーとなります。

表2‒25　pdloadコマンド制御文の指定可否

項番

制御文

オプション

pdparaloadでの指定可否

説明

1

mtguide

−

×

テープ装置は使用できません。

2

emtdef

−

×

3

source

RDエリア名

×

RDエリア名は，pdparaloadコマンドが指定するため，ユーザは指定できません。

4

サーバ名｜ホスト名

HiRDB/パラレルサーバの場合：◎

HiRDB/シングルサーバの場合：△

HiRDB/パラレルサーバの場合，必ず指定してください。指定しないでデータロードを実行すると，各RDエリアが存在するサーバ上のファイルを入力データファイルとして処理してしまいます。

5

入力データファイル名

◎

入力データが入っている入力データファイルの名称を絶対パス名で指定します。

6

（uoc）

△

UOCを使用する場合，入力デ−タファイルの入出力をUOC側でするときに指定します。

7

error

△

エラー情報を出力するファイルの名称を絶対パス名で指定します。

なお，データロードの実行時にpdparaloadコマンドがファイル名にRDエリア名，""を付加します。そのため，指定するパス名の長さに注意してください。詳細については，注意事項の4.を参照してください。

8

errdata

△

入力データがエラーとなった場合，そのエラーとなった行データを出力するときに指定します。

なお，データロードの実行時にpdparaloadコマンドがファイル名にRDエリア名，""を付加します。そのため，指定するパス名の長さに注意してください。詳細については，注意事項の4.を参照してください。

9

errwork

△

errdataオペランド指定時に，エラーデータファイル作成用のバッファサイズをキロバイト単位で指定します。

10

maxreclen

△

入力データファイルがDAT形式，拡張DAT形式，バイナリ形式，及びpdrorg出力バイナリ形式の場合に入力データ長を指定します。

11

EasyMT情報

×

EasyMTはサポートしていないため，指定できません。

12

validate 符号

×

13

index

−

×

インデクス情報ファイルの情報は指定できません。

14

idxwork

サーバ名

△

インデクス情報ファイルを作成するサーバの名称を指定します。

15

ディレクトリ名

○

インデクス情報ファイルを作成するディレクトリの名称を絶対パス名で指定します。

16

sort

サーバ名

△

ソート用ワークファイルを作成するサーバの名称を指定します。

17

ディレクトリ名

○

ソート用ワークファイルを作成するディレクトリの名称を，絶対パス名で指定します。

18

lobdata

LOB入力ファイル名

×※

LOB列がある表へデータロードする場合，又はコンストラクタ関数への入力パラメタとしてLOBデータを入力する場合に，LOBの情報を指定します。

対象表にBLOB列，又はBLOBパラメタがある抽象データ型列を定義し，-kオプションにf，又はvを指定する場合は，必ずlobdata文を指定してください。指定しないと，基表だけがデータロードされ，BLOBデータはデータロードされません。

19

LOB入力ファイルのディレクトリ名

△※

20

EasyMT情報

×※

21

lobcolumn

−

×

列単位LOB入力ファイルは使用できません。

22

lobmid

−

×

LOB中間ファイルは指定できません。

LOB中間ファイルは，次のファイル名で作業用ディレクトリ下に作成します。

/作業用ディレクトリ/LOBMID-xxxxxxxxx

xxxxxxxxxは，各実行プロセスの実行時間，及びプロセスIDを含む名称です。各RDエリア単位にファイルを作成します。

23

srcuoc

−

△

UOCを利用して，データを編集してからデータべースに格納する場合，UOCの情報を指定します。

24

array

−

△

繰返し列を含む表の場合，入力データファイルに記述する配列データ形式とナル値の扱いを指定します。

25

extdat

−

△

DAT形式の入力データファイルで，拡張機能を使用する場合に指定します。

26

src_work

−

×

分割入力データファイルは作成できません。

27

constraint

−

△

検査保留状態に関する設定をします。

28

option

spacelvl

△

入力データに対して，空白変換をするかどうかを指定します。

29

tblfree

△

データロード時に，CREATE TABLEで指定した空き領域比率（PCTFREEの指定値）を変更してデータを格納したい場合に指定します。

30

idxfree

△

インデクス一括作成モードでインデクスを作成する場合に，CREATE INDEXで指定した空き領域比率（PCTFREEの指定値）を変更してインデクスを作成したいときに指定します。

31

job

×

同期点指定のデータロードはできません。

32

cutdtmsg

△

DAT形式の入力データファイルのデータロード時に切り捨てが発生した場合，エラー情報ファイルに警告メッセージを出力するかどうかを指定します。

33

nowait

×

NOWAIT検索はできません。

34

bloblimit

△

pdrorg出力バイナリ形式の入力データファイルでデータ変換をしてデータロードする場合に，データを保持する領域の大きさを指定します。

35

exectime

△

pdloadの実行時間を監視する場合に，その監視時間を分単位で指定します。

36

null_string

△

DEFAULT句を指定している表に対してデータロードする場合，入力データがナル値（"*"又は記述しない場合）のときに，DEFAULT句の既定値を格納するか，又はナル値を格納するかを指定します。

37

dataerr

△

入力データエラー（論理エラー）を検知した場合，データ格納処理を無効（ロールバック）にするときに指定します。

RDエリア単位でデータロードを行うため，非分割キーインデクスがあり，-i sオプション（インデクス更新モード）以外の指定がある場合は，各データロード実行時に制御文エラーとなります。

38

lengover

△

DAT形式（拡張DAT形式を含む）の入力データファイルの，データ型がCHAR，VARCHAR，NCHAR，NVARCHAR，MCHAR，MVARCHAR，又はBINARYの列に格納する入力データ長が列定義長より長い場合，入力データエラーとして扱うときに指定します。

39

divermsg

×

divermsgは，pdparaloadコマンドが指定するため，ユーザは指定できません。

40

srcendian

△

エンディアンが異なるプラットフォーム間でpdrorg出力バイナリ形式ファイルを使用してデータを移行する場合に指定します。

41

allspace

△

固定長データ形式の入力データファイルを使用してデータロードする場合，数値データ型（INTEGER，SMALLINT，DECIMAL，FLOAT，SMALLFLT）の列に格納する文字データを「0」と変換して格納するときに指定します。

42

whitespace

△

XML型の列に対してXML文書をデータロードする場合に，XML文書に含まれる空白類の取り扱い方法を指定します。

43

seq_range

△

自動採番機能を使用してデータロードする場合，順序番号の取得方式を指定します。

44

file_buff_size

△

入力バッファに入力データファイルのデータを読み込む場合に，使用する入力バッファ用のメモリサイズを指定します。

45

charset

△

UTF-8の環境で定義した表に対して，UTF-16の入力データファイルでデータロードする場合，入力データファイルのエンディアンを指定します。

（凡例）

◎：必ず指定してください。

○：制御文を指定した場合は，指定してください。

△：指定は任意です。

×：指定できません。

−：該当しません。

注※

対象表にBLOB列，又はBLOBパラメタがある抽象データ型列を定義し，-kオプションにf，又はvを指定する場合は，lobdata文を指定する必要があります。詳細を次の表に示します。

項番

-kオプション指定

BLOB列

BLOB型の入力パラメタを持つ抽象データ型の列

1

d

×

×

2

f

○

○

3

v

○

×

（凡例）

○：lobdata文が必要です。

×：lobdata文は必要ありません。

(5)　規則

pdparaloadコマンドは，HiRDBが稼働中のときだけ実行できます。

pdparaloadコマンドでデータロードできる表は，横分割表だけです。

ただし，フレキシブルハッシュ分割を定義した表は対象外とします（マトリクス分割にフレキシブルハッシュ分割を定義している場合も含む）。フレキシブルハッシュ分割を定義した表を指定した場合，pdparaloadコマンドはエラー終了します。

横分割表を構成するRDエリアが，データベース作成ユティリティ（pdload）を実行できる状態である必要があります。RDエリアの状態については，「RDエリアの状態によるユティリティ及びUAPの実行可否」を参照してください。

pdparaloadコマンドを起動するには，RDエリア単位でデータロードを実行するために使用される排他資源数を合計した数分の排他資源が必要です。RDエリア単位データロードが必要とする排他資源数については，「注意事項」を参照してください。

同じ表には，pdparaloadコマンドを同時に実行できません。異なる表であれば，pdparaloadコマンドを同時に実行することができます。ただし，各表を構成するRDエリアに同じRDエリアがないことが前提となります。pdparaloadコマンドは，内部でRDエリア単位にデータロードを実行するため，RDエリア単位に排他を掛けています。同じRDエリアに格納した表に同時にpdparaloadコマンドを実行した場合，データロードが排他エラーで終了します。

RDエリア単位のデータロードの排他制御モードについては，「ユティリティの排他制御モード」を参照してください。

(6)　注意事項

pdparaloadコマンドのリターンコードを次に示します。

0：正常終了

4：正常終了（一部の入力データに論理エラーが発生したため，データベースへの格納処理をスキップしました）

8：異常終了

pdparaloadコマンドは，次の規則でpdload制御文ファイル名を生成します。

LOD_CTL_認可識別子_表識別子_RDエリア名

上記と同じ名称のファイルが既に存在している場合は，エラー終了します。

次の制御文からpdparaloadコマンドが生成するファイル名と同じ名称のファイルが既に存在している場合は，既存のファイルを上書きします。

source文のerrorで指定したエラー情報ファイル名

source文のerrdataで指定したエラーデータファイル名

pdparaloadコマンドは，source文で指定するファイル名にRDエリア名，""を付加します。そのため，指定するパス名，及びファイル名の長さは，次のように指定してください。

source文の場合

source文のerror，及びerrdataオペランドに指定するパス名，及びファイル名の長さは，次の計算式の値以下にしてください。

＜errorオペランドの場合＞

・パス名の長さ（単位：バイト）

　OS上のパス名の上限値−（RDエリア名称長＋1）

・ファイル名の長さ（単位：バイト）

　OS上のファイル名の上限値−（RDエリア名称長＋1）

＜errdataオペランドの場合＞

・パス名の長さ（単位：バイト）

　（OS上のパス名の上限値−8）−（RDエリア名称長＋1）

・ファイル名の長さ（単位：バイト）

　（OS上のファイル名の上限値−8）−（RDエリア名称長＋1）

また，1行のsource文の長さが1023バイトに収まるように指定する必要があります。1023バイトを超えた場合はエラー終了します。

source文で付加されるRDエリア名と""の規則を次に示します。

pdparaloadコマンドで分割キー構成列に対して順序数生成子を指定した実行はできません。実行した場合は処理を続行します。その結果，入力データファイルのデータがデータベースに格納できない場合があります。

2.97　pdpfresh（サーバプロセスのリフレッシュ）

2.97.1　pdpfreshの形式と規則

(1)　機能

サーバプロセスをリフレッシュします。リフレッシュとは，稼働中のプロセスを終了させ，代わりに新しいプロセスを起動することをいいます。

リフレッシュ対象となるのは，シングルサーバ，バックエンドサーバ，及びディクショナリサーバです。

更新可能なオンライン再編成を使用する場合，pdpfreshコマンドを実行することで，RDエリアのオープン属性がINITIAL又はDEFERのときでも，ユーザのサーバプロセスが該当サーバのRDエリアにアクセスしていない状態（RDエリアの切り離しができる状態）を作り出すことができます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdpfresh 〔-s サーバ名〕 〔｛-f｜-c｝〕

(4)　オプション

(a)　-s サーバ名　〜＜識別子＞((1〜8))

リフレッシュをするサーバの名称を指定します。

HiRDB/パラレルサーバの場合は，バックエンドサーバ又はディクショナリサーバ（フロントエンドサーバは指定できません）を指定できます。省略した場合，すべてのサーバ（フロントエンドサーバを除く）を対象とします。

HiRDB/シングルサーバの場合は，-sオプションの指定にかかわらず，シングルサーバを対象とします。

(b)　-f

強制的にリフレッシュする場合に指定します。

-fオプションの指定有無によるプロセス終了契機，及びエラー発生有無の違いを次の表に示します。

表2‒26　-fオプションの指定有無によるプロセス終了契機，及びエラー発生有無の違い（pdpfreshコマンド）

プロセス

-fオプションの指定

なし

あり

運用コマンド又はユティリティの内部処理中のシングルサーバ，バックエンドサーバ，及びディクショナリサーバのプロセス

運用コマンド又はユティリティの実行中にpdpfreshコマンドを実行した場合，サーバプロセスのリフレッシュはされないで，エラー終了（リターンコード=6）します。この場合，運用コマンド又はユティリティの動作に影響はありません。

トランザクション終了時点で強制終了します。この場合，運用コマンド又はユティリティが異常終了することがあります。

次のサーバプロセス

AP単位のローカルバッファを使用しているバックエンドサーバのプロセス

SQLセッション固有一時表を使用しているバックエンドサーバ

サーバプロセスは強制終了しません。これらのプロセスは，左記の条件を満たさなくなった場合，又は次回のDISCONNECT時に終了します。シングルサーバの場合は，HiRDBクライアントとHiRDBサーバとの間で接続エラーになることがあります。バックエンドサーバの場合はエラーは発生しません。

左記のプロセスがあるかぎり，サーバプロセスのリフレッシュは完了しないため，注意してください。

トランザクション終了時点で強制終了します。以降，SQLを実行すると，新たにプロセスに接続して処理を実行します。

次のサーバプロセス

UNTIL DISCONNECTの排他が掛かっているシングルサーバ

ホールダブルカーソルを使用しているシングルサーバ，又はバックエンドサーバ

SQLセッション固有一時表を使用したシングルサーバ

トランザクション終了時点で強制終了します。以降，SQLを実行すると接続エラーになります。

バックエンドサーバ接続保持機能を使用しているバックエンドサーバのプロセス

トランザクション実行中の場合，トランザクション終了後にプロセスがリフレッシュされます。トランザクション中でない場合は，次回のトランザクション終了後にプロセスがリフレッシュされます。

トランザクション終了時点で強制終了します。以降，SQLを実行すると，新たにプロセスに接続して処理を実行します。

(c)　-c

pdpfreshコマンドでプロセス終了要求を受けたプロセスが，すべて終了しているかどうかを調べる場合に指定します。シェルを使用してプロセスのリフレッシュ状態を監視したい場合に指定してください。

結果は，pdpfreshコマンドのリターンコードで分かります（KFPS00730-Iメッセージにも表示されます）。

プロセスごとのリフレッシュ状態を調べたい場合は，pdls -d prc -cコマンドを実行してください。

(5)　規則

pdpfreshコマンドは，HiRDBが稼働中のときだけ実行できます。

pdpfreshコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdpfreshコマンドは，サーバプロセスのリフレッシュの完了を待たないで終了します。そのため，リフレッシュ中にエラーが発生した場合，pdpfreshコマンドがリターンコード0で終了した後に，エラーメッセージが出力されることがあります。

pdpfreshコマンド実行後，プロセスのリフレッシュ完了前に再度pdpfreshコマンドを実行した場合，再実行時の稼働中プロセスがリフレッシュ対象となります。

HiRDB/パラレルサーバでフロントエンドサーバの名称を指定した場合，リフレッシュをしないで処理を正常終了します。

トランザクション実行中のサーバプロセスは，すぐには終了しないで，トランザクションが完了した時点で終了します。

HiRDB/シングルサーバの場合，リフレッシュ実行中にHiRDBクライアントとHiRDBサーバとの間で接続エラーが発生することがあります。これを回避したい場合は，UAPに，接続エラー発生時に接続処理を再実行する処理を追加してください。また，自動再接続機能を使用すると，このエラーがUAPに返却されないで，自動的に再接続がされます。自動再接続機能については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(6)　注意事項

pdpfreshコマンドの実行結果は，pdls -d prcコマンド，及びコマンド実行時のリターンコードで確認できます。コマンド実行時のリターンコードを次に示します。

リターンコード

実行結果

備考

0

-cオプションあり

リフレッシュするプロセスはありません。

−

-cオプションなし

リフレッシュ処理を開始しました。

1

-cオプションあり

リフレッシュ中のプロセスがあります。

-cオプション指定時にだけ出力されます。

-cオプションなし

−

4

警告終了しました（一つ以上のサーバでエラーが発生）。※

HiRDB/パラレルサーバの場合にだけ出力されます。

6

運用コマンド又はユティリティが実行中のため，リフレッシュ処理をしないで終了しました。

-fオプションを指定していない場合にだけ出力されます。

8

異常終了

−

（凡例）−：該当しません。

注※

何らかの要因で一つ以上のサーバから応答がなかった場合，ほかのサーバに対して処理を続行し，リターンコード4で終了します。この場合，エラーが発生したサーバの状態を確認してください。

エラーが発生したサーバが稼働中の場合，そのサーバプロセスがRDエリアにアクセス中のままとなっている（ペアボリュームの再同期化を妨げる）可能性があります。エラーが発生したサーバが稼働中の場合は，-sオプションにそのサーバ名を指定して，再度pdpfreshコマンドを実行してください。

pdpfreshコマンドは，サーバプロセスのリフレッシュ完了を待たないで終了します。

-cオプション指定なしのpdpfreshコマンドがリターンコード0となった後，-cオプション指定ありのpdpfreshコマンドがリターンコード0になれば，リフレッシュ完了です。

-cオプション指定ありのpdpfreshコマンドのリターンコード0は，コマンド実行時点でリフレッシュ中のプロセスがないことを意味します（リフレッシュ処理が実行され，それが完了したことを意味するものではありません）。したがって，-cオプション指定なしのpdpfreshコマンドを実行しないで-cオプションありのpdpfreshコマンドを実行すると，リターンコード0となりますが，リフレッシュ処理はされていないので注意してください。

pdpfreshコマンドでサーバプロセスをリフレッシュした場合，KFPS01820-E，KFPS04620-I，及びKFPS01819-Iメッセージは出力されません。

リフレッシュ中は，常駐プロセス数を一時的に0にします。したがって，リフレッシュ中のサーバに対して，pdchprcコマンドは実行しないでください。実行した場合，リフレッシュが完了しないことがあります。この場合，再度pdpfreshコマンドを実行して，リフレッシュが完了したら，pdchprcコマンドを実行してください。

リフレッシュ対象のサーバプロセスの数が多い場合，すべてのプロセスのリフレッシュが完了するまでに時間が掛かることがあります。

pdpfreshコマンド（-f及び-cオプション指定なし）と運用コマンド又はユティリティの実行順序によって，実行結果が異なります。

pdpfreshコマンドと運用コマンド又はユティリティの実行順序

運用コマンド又はユティリティ実行によって割り当てられるプロセス

pdpfreshコマンドの実行結果

運用コマンド又はユティリティ実行後にpdpfreshコマンドを実行

−

エラー終了します（リターンコード=6）。

pdpfreshコマンド実行後に運用コマンド又はユティリティを実行

リフレッシュ対象のプロセス※1

正常終了します（リターンコード=0）。

リフレッシュされたプロセス※2

（凡例）−：該当しません。

注※1

運用コマンド又はユティリティが終了した後にリフレッシュします。リフレッシュが完了するまで，pdpfresh -cコマンドはリターンコード1で終了します。

注※2

運用コマンド又はユティリティはリフレッシュされたプロセスを割り当てて実行するため，pdpfresh -cコマンドはリフレッシュが完了しているプロセスとして扱います。

また，pdpfreshコマンド（-f及び-cオプション指定なし）と運用コマンド又はユティリティを同時に実行，又は連続して実行すると，実行結果が不定となります。この現象を回避したい場合は，次に示すどちらかの方法を実行してください。

pdpfreshコマンド（-f及び-cオプション指定なし）実行した後，pdpfresh -cコマンドでプロセスのリフレッシュが完了するのを確認してから運用コマンド又はユティリティを実行する

運用コマンド又はユティリティが終了するのを待って，pdpfreshコマンド（-f及び-cオプション指定なし）を実行する

2.98　pdplgrgst（プラグインの登録・削除）

2.98.1　pdplgrgstの形式と規則

(1)　機能

●プラグインをHiRDBに登録します。

登録するプラグインのプラグイン定義ファイル，及びPICファイルを指定します。

pdplgrgstコマンドを実行すると，プラグインに関する定義情報がディクショナリに登録されます。抽象データ型定義，又はインデクス型定義も同時に登録されます。

一回のpdplgrgstコマンドの実行で，一つのプラグインが登録できます。

●プラグインをHiRDBから削除します。

次に示すものを削除します。

データディクショナリに登録されているプラグインの定義情報

プラグインが提供している関数，抽象データ型，及びインデクス型

●プラグインをバージョンアップします。

既に登録されているプラグインの，定義情報，関数，抽象データ型定義，及びインデクス型定義を更新します。

(2)　実行者

DBA権限を持っているユーザが実行できます。

(3)　形式

　pdplgrgst 〔-｛d｜a｝〕〔-u〕

　　　　　　プラグイン定義ファイル名 PICファイル名

(4)　オプション

(a)　-｛d｜a｝

プラグインを削除又はバージョンアップする場合に指定します。省略した場合はプラグインをHiRDBに登録します。

-d：

プラグインを削除する場合に指定します。

-a：

プラグインをバージョンアップする場合に指定します。

(b)　-u

プラグインの所有者をMASTERではなく，pdplgrgstコマンドの実行者（クライアント環境定義のPDUSERに指定した認可識別子）にする場合に指定します。

プラグインの所有者をMASTER以外にする場合，次に示すことを注意してください。

pdplgrgstコマンド実行者のスキーマが既に定義されている必要があります。

プラグインが抽象データ型及びインデクス型の両方を提供している場合は，必ず同じ所有者にしてください。

プラグインの削除又はバージョンアップは，プラグインの所有者しかできません。また，pdplgrgstコマンドに-uオプションを指定してプラグインを削除又はバージョンアップしてください。

プラグイン所有者のスキーマを削除すると，プラグインも同時に削除されます。このとき，次に示す作業が必要です。

システム共通定義からpdpluginオペランドを削除します。

すべてのサーバマシンでpdplgset -dコマンドを実行してプラグインをアンセットアップします。

(5)　コマンド引数

(a)　プラグイン定義ファイル名

プラグイン定義ファイルのファイル名を指定します。

コマンドを入力するときのカレントディレクトリにあるファイル名，又は絶対パスを含めたファイル名を指定します。

(b)　PICファイル名

PICファイルのファイル名を指定します。

コマンドを入力するときのカレントディレクトリにあるファイル名，又は絶対パスを含めたファイル名を指定します。

(6)　規則

pdplgrgstコマンドは，HiRDBが稼働中のときだけ実行できます。

pdplgrgstコマンドは，任意のサーバマシンで実行してください。

pdplgrgstコマンドを実行する場合，事前にクライアント環境定義PDHOST，PDNAMEPORT，及びPDUSERを設定しておく必要があります。なお，PDUSERにはDBA権限のあるユーザの認可識別子及びパスワードを設定してください。

通信情報ファイルディレクトリ変更機能を使用している場合，クライアント環境定義PDIPCFILEDIRに値を設定する必要があります。指定値については，マニュアル「HiRDB UAP開発ガイド」の「クライアント環境定義の設定内容」を参照してください。

(7)　注意事項

pdplgrgstコマンドの実行結果は，コマンド実行時のリターンコードで確認できます。コマンド実行時のリターンコードが0の場合は正常終了，8の場合は異常終了です。

pdplgrgstコマンドを実行する場合，必ずHiRDBの利用環境すべてでpdplgsetコマンドを実行してプラグインのセットアップを終了しておいてください。

pdplgrgstコマンドでHiRDBに登録したプラグインを使用するには，システム共通定義に使用するプラグインの名称を記述した後，HiRDBを再起動してください。

プラグインの登録中は，そのスキーマに対してほかの処理はできません。

プラグイン登録時にpdplgrgstコマンドが異常終了した場合，型定義が残ることがあります。このときは，pdplgrgstコマンドを-dオプション指定で実行してプラグインを削除し，再度登録してください。

プラグインを削除する場合，pdplgrgstコマンド実行前に次のものを削除しておいてください。

削除するプラグインを使用した表，インデクス，及びビュー表

削除するプラグインが提供している抽象データ型，インデクス型，及び関数を利用した，関数，手続き，及び抽象データ型

データ型プラグインを削除する場合，そのデータ型のインデクス機能を提供するインデクス型プラグインも登録されているときは，インデクス型プラグインを先に削除してください。詳細は各プラグインのマニュアルを参照してください。

プラグインを削除した場合，次の処理をしてください。

システム共通定義pdpluginの記述の削除

プラグインを構成するファイルを削除する場合は，プラグインのアンセットアップ（pdplgset -d）

プラグインをバージョンアップする場合，pdplgrgstコマンドの実行前に次の作業をしてください。

マスタディレクトリ用RDエリア，データディクショナリ用RDエリア，データディレクトリ用RDエリア，及びデータディクショナリLOB用RDエリアのバックアップ

新しいプラグインのセットアップ

登録されているプラグインよりもバージョンの古いプラグインに戻すことはできません。

データ型プラグインと，そのデータ型のインデクス機能を提供するインデクス型プラグインの両方をバージョンアップする場合は，データ型プラグインを先にバージョンアップしてください。

データ型プラグインとインデクス型プラグインのバージョンを合わせてください。

プラグインをバージョンアップした場合，データディクショナリ表のSQL_PLUGIN_ROUTINES表及びSQL_PLUGIN_ROUTINE_PARAMS表のSPECIFIC_NAME列は更新されます。

データベース構成変更ユティリティ（pdmod）でHiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成に移行した場合，登録しているプラグインによってはプラグイン提供の関数が無効になることがあります。その場合は，-aオプションを指定して再度pdplgrgstコマンドを実行してください。

複数のプラグインで関数名とパラメタの数が同じ関数を提供している場合，次の条件を満たすときは，プラグインの登録がエラーとなります。

一方のプラグイン登録後にそのプラグイン関数を呼び出す関数をユーザが定義し，もう一方のプラグイン登録時にユーザが定義した関数のパラメタ又は戻り値のデータ型に抽象データ型を使用し，かつその関数をビュー定義に使用している。

2.99　pdplgset（プラグインのセットアップ）

2.99.1　pdplgsetの形式と規則

(1)　機能

プラグインをHiRDB環境にセットアップします。

インストールディレクトリに格納されているファイルを，HiRDB環境（$PDDIR/plugin/）にコピーします。

1回のpdplgsetコマンドの実行で，一つのプラグインがセットアップできます。

また，セットアップ済みのプラグインのHiRDB環境からのアンセットアップもできます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdplgset ｛プラグイン名 インストールディレクトリ｜

　　　　　　 -d プラグイン名｝

(4)　オプション

(a)　-d プラグイン名

セットアップ済みのプラグインをアンセットアップします。

HiRDB環境からプラグインに関するファイルが削除されます。ただし，プラグイン運用ディレクトリ下のconfディレクトリ以下は削除されません。インストールディレクトリを指定しても無視されます。

HiRDB Datareplicator対応のライブラリ（libプラグイン名_rpl.sl，libプラグイン名_rpl64.sl）がある場合は，同時に削除されます。

(5)　コマンド引数

(a)　プラグイン名

セットアップするプラグインの名称を指定します。

(b)　インストールディレクトリ

サーバマシンにインストールされたHiRDBのロード種別（POSIXライブラリ版，又は非POSIXライブラリ版）に対応する，プラグインがあるディレクトリを指定します。

プラグインのプラットフォームがAIXの場合，指定したインストールディレクトリは，HiRDBのロード種別とプラグインの種別の組み合わせによって，次のように自動補正されることがあります。

プラグインのディレクトリ構成

pdplgsetで指定したインストールディレクトリ

HiRDBのロード種別

非POSIXライブラリ版の場合に自動補正される値

POSIXライブラリ版の場合に自動補正される値

./_pluginだけ

./_plugin

./_plugin

エラー

./_plugin/posix

./_plugin

エラー

./_plugin/posixだけ

./_plugin

エラー

./_plugin/posix

./_plugin/posix

エラー

./_plugin/posix

./_pluginと./_plugin/posix

./_plugin

./_plugin

./_plugin/posix

./_plugin/posix

./_plugin

./_plugin/posix

(6)　規則

pdplgsetコマンドは，HiRDBが停止中のときだけ実行できます。

pdplgsetコマンドは，各サーバマシンで実行してください。

(7)　注意事項

pdplgsetコマンドの実行結果は，コマンド実行時のリターンコードで確認できます。コマンド実行時のリターンコードが0の場合は正常終了，8の場合は異常終了です。

$PDDIR/pluginディレクトリがない場合は，ディレクトリは自動的に作成されます。

一つのHiRDB環境に対して，同じプラグインを複数セットアップできません。

プラグインが稼働するすべてのユニットでpdplgsetコマンドを実行して，利用したいプラグインをセットアップしてください。

コマンド引数に指定したプラグインがセットアップされていない状態で，セットアップに失敗，又はセットアップに失敗したプラグインに対してセットアップを実行してKFPY01204-Eメッセージが出力された場合は，アンセットアップ後に再度セットアップをしてください。

プラグインをアンセットアップすると，$PDDIR/plugin/プラグイン名の下のすべてのファイルが削除されます。必要なファイルがある場合，事前に退避する必要があります。

プラグイン運用ディレクトリ下のconfディレクトリが既にセットアップされている場合，pdsetupコマンドの実行でconfディレクトリ以下のファイルが更新又は削除されることはありません。

HiRDB接続時のパスワード秘匿化機能を使用している場合，必要に応じて，クライアント環境変数PDAUTHTYPEを設定し，HiRDBへ接続するときの認証方式を指定してから実行してください。指定値についてはマニュアル「HiRDB システム運用ガイド」の「HiRDB接続時のパスワード秘匿化機能の設定方法」を参照してください。

2.100　pdprfed（PRFトレース情報の編集出力）

2.100.1　pdprfedの形式と規則

(1)　機能

PRFトレース情報ファイル（バイナリ形式）をCSV形式に変換して標準出力に出力します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdprfed 〔-T 開始時刻，終了時刻〕
　　　　　〔-p プロセスID〔，プロセスID〕…〕 〔-e イベントID〔，イベントID〕…〕
　　　　　〔-H〕
　　　　　 PRFトレース情報ファイル名

(4)　オプション

(a)　-T 開始時刻，終了時刻

指定された時刻内に取得されたトレース情報だけをCSV出力します。時刻は，YYYYMMDDHHMMSS形式で指定します。

(b)　-p プロセスID〔，プロセスID〕…

指定されたプロセスIDの情報だけをCSV出力します。複数のプロセスIDを指定した場合は，すべてに当てはまるトレース情報だけ出力します。

(c)　-e イベントID〔，イベントID〕…

指定されたイベントIDの情報だけをCSV出力します。複数のイベントIDを指定した場合は，すべてに当てはまるトレース情報だけ出力します。

(d)　-H

PRFトレース情報を，ヘッダを付けないでCSV出力します。

(5)　コマンド引数

(a)　PRFトレース情報ファイル名

PRFトレース情報が格納されているファイル名を指定します。

(6)　規則

pdprfedコマンドは，HiRDBの稼働に関係なく実行できます。

pdprfedコマンドは，任意のサーバマシンで実行できます。

(7)　注意事項

pdprfedコマンドのリターンコードを次に示します。

0：正常終了

8：異常終了

12：異常終了（内部矛盾）

このコマンドを指定すると，時刻順ではなく，PRFトレース情報ファイル（バイナリ形式）に格納された順番にPRFトレースがCSV出力されます。PRFトレースファイルの内容を時刻順にソートしたり，複数ファイルの内容をマージしたりする必要がある場合は，このコマンドで出力したCSVデータを編集してください。

PRFトレース情報ファイル（バイナリ形式）内の情報が一部出力されていなかったり，不正な情報だったりした場合も，そのままCSV出力されます。その場合，リターンコードは正常終了（0）となります。

PRFトレース情報ファイル（バイナリ形式）の一部の項目だけが破損していた場合は，「出力形式」とは異なる形式で結果が出力されることがあります。

PRFトレース情報ファイルには，同じプラットフォームで取得したファイルを指定してください。異なるプラットフォームで取得したファイルを指定した場合，不当な結果が出力されます。

(8)　出力形式

出力例を次に示します。

time,svname,pid,tid,eid,no,ip,len,c_ip,c_pid,c_port,c_conn,c_no,r_id,r_user,binary,text
2012/12/04 12:13:06.902202,f001,9974,1,0x10022002,13,10.197.12.141,104,10.197.12.141,12862,,2,,unt100000002,,02004F50 4E320000,..OPN2..
2012/12/04 12:13:06.902684,f001,9974,1,0x13012503,14,10.197.12.141,124,10.197.12.141,12862,,2,,unt100000002,,64000000 62303131 00202020 00000000 E42E0000 01000000 00000000,d...b011.   ................
2012/12/04 12:13:06.902769,f001,9974,1,0x11019101,15,10.197.12.141,92,,,,,,unt100000002,,0AC50C8D 0200E42E 00000000 AA2A0000,.............*..
2012/12/04 12:13:06.902797,f001,9974,1,0x11019100,16,10.197.12.141,72,,,,,,unt100000002,,,
2012/12/04 12:13:06.903019,b011,10064,1,0x11029101,1,10.197.12.141,60,,,,,,,,,
2012/12/04 12:13:06.903476,b011,10064,1,0x11009600,2,10.197.12.141,168,,,,,,unt100000002,,2F350E00 20000000 30000000 05000000 F6260000 48524442 756E7431 02010100 00000000 00000000 02000000 03000000 05000000 04000000 90000000 48524442 756E7431 66303031 00000000 00000000 F6260000 02000000 05000000,/5.. ...0........&..HRDBunt1................................HRDBunt1f001.........&..........
2012/12/04 12:13:06.903503,b011,10064,1,0x13022003,3,10.197.12.141,112,0.0.0.0,0,,2,,unt100000002,,64000000 0000A03A 00000000 01000000,d......:........
2012/12/04 12:13:06.904324,f001,9974,1,0x10012002,17,10.197.12.141,108,10.197.12.141,12862,,2,,unt100000002,,02004F50 4E320000 00000000,..OPN2......

〔説明〕

出力される情報について次の表に示します。

ヘッダ

内容

出力形式との対応

time

トレース取得時刻

2010/02/10 13:40:36.201194

svname

サーバ名，プロセス名※

fes1

pid

プロセスID

30089

tid

スレッドID

1

eid

イベントID

0x10012002

no

PRFトレース通番

125

ip

IPアドレス

10.208.175.34

len

保守情報

100

c_ip

クライアントのIPアドレス

10.208.175.35

c_pid

クライアントのプロセスID

31884

c_port

クライアントのポート番号

30142

c_conn

クライアントのコネクト通番

3

c_no

保守情報

r_id

PRFくくり付けID※

unt10000043E

r_user

Cosminexusと連携した場合：

ルートアプリケーション情報

上記以外：

保守情報

41424300 4AE40000 012E0000

binary

保守情報

02004155 49320000 00000000

text

保守情報

..AUI2......

（凡例）

空欄：出力されません。

注※

PRFトレース情報ファイル（バイナリ形式）の欠損によって，文字データが不正なバイトは「.」で表示されます。

2.101　pdprflevel（PRFトレース取得レベルの表示，変更）

2.101.1　pdprflevelの形式と規則

(1)　機能

PRFトレース取得レベル（pd_prf_levelオペランドの指定値）を表示又は変更します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdprflevel 〔-l PRFトレース取得レベル〕

(4)　オプション

(a)　-l PRFトレース取得レベル

PRFトレース取得レベルを表示又は変更します。

PRFトレース取得レベル：

変更するPRFトレース取得レベルを指定します。PRFトレース取得レベルは，00000007（最小レベル），0000001f（標準レベル），0000007f（詳細レベル），000001ff（保守レベル），00000000（抑止レベル）で指定します。詳細は，マニュアル「HiRDB システム定義」のpd_prf_levelオペランドを参照してください。

省略時：

PRFトレース取得レベルを16進数で表示します。

(5)　規則

pdprflevelコマンドは，HiRDBが稼働中のときだけ実行できます。

pdprflevelコマンドは，各サーバマシンで実行してください。

(6)　注意事項

pdprflevelコマンドのリターンコードを次に示します。

0：正常終了

8：異常終了

このコマンドは，システム定義のpd_prf_traceにYを指定又は省略し，トラブルシュート情報取得プロセス（pdprfdプロセス）の起動中に実行してください。pdprfdプロセスが起動していないときにコマンドを実行すると，コマンドがエラー終了します。pdprfdプロセスは，OSのpsコマンドなどで，起動状態を確認できます。

このコマンドでPRFトレース取得レベルを変更した場合，次のPRFトレース取得ポイントから変更が有効になります。PRFトレース取得ポイントについては，マニュアル「HiRDB システム運用ガイド」を参照してください。

このコマンドでPRFトレース取得レベルを変更した後，HiRDBを終了後，再度HiRDBを開始すると，PRFトレース取得レベルはpd_prf_levelオペランドの指定値に戻ります。

このコマンドでPRFトレース取得レベルを変更した後に系切り替えが発生した場合，変更後のPRFトレース取得レベルは待機系HiRDBへは引き継がれません。サーバモードで系切り替えを運用している場合は，待機系でも同じPRFトレース取得レベルを指定し，pdprflevelコマンドを実行してください。モニタモードで系切り替えを運用している場合は，系切り替え後にPRFトレース取得レベルを変更してください。

2.102　pdprgcopy（修正版HiRDBのコピー）

2.102.1　pdprgcopyの形式と規則

(1)　機能

pdprgrenewコマンドを実行する前に，HiRDBのプログラムを修正版HiRDBのインストールディレクトリから入れ替え用ディレクトリ（$PDDIR/renew）にコピーします。修正版HiRDBへの入れ替えについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

入れ替え用ディレクトリにコピーするファイルを次に示します。

修正版HiRDBのインストールディレクトリ（コピー元）

入れ替え用ディレクトリ

（コピー先）

内容

インストールディレクトリ/bin

$PDDIR/renew/bin

HiRDBの運用コマンド及びユティリティ

インストールディレクトリ/lib

$PDDIR/renew/lib

HiRDBのライブラリ，メッセージテキストファイル，及びシステム定義の定義解析用ファイル

インストールディレクトリ/client

$PDDIR/renew/client

HiRDBクライアントのライブラリ，運用コマンド，及びユティリティ

インストールディレクトリ/include

$PDDIR/renew/include

UAP作成時に使用するヘッダ情報

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　修正版HiRDBのインストールディレクトリ/bin/pdprgcopy HiRDB運用ディレクトリ

(4)　コマンド引数

(a)　HiRDB運用ディレクトリ

　　　〜＜パス名＞((Linux版：1〜118，Linux版以外：1〜128))

修正版HiRDBに入れ替えるHiRDBの，HiRDB運用ディレクトリを指定します。

(5)　規則

pdprgcopyコマンドは，HiRDBの稼働に関係なく実行できます。

pdprgcopyコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

入れ替え前のHiRDBと修正版HiRDBとで，次の項目が一致していないとpdprgcopyコマンドは実行できません。

HiRDBの種別（HiRDB/シングルサーバ，又はHiRDB/パラレルサーバ）

バージョン，リビジョン

アドレッシングモード（32ビットモード，又は64ビットモード）

(6)　注意事項

pdprgcopyコマンドは，入れ替え用ディレクトリ（$PDDIR/renew）を作成するため，同一名称のディレクトリがある場合は，あらかじめ別のディレクトリ名に変更しておいてください。

pdprgcopyコマンドを実行する前に，HiRDB運用ディレクトリに空き容量があるか確認してください。

pdprgcopyコマンドを実行する前に，あらかじめ修正版HiRDBをすべてのユニットにインストールしておく必要があります。

入れ替え前のHiRDBと修正版HiRDBでは，文字コード種別とロード種別（POSIXライブラリ版，又は非POSIXライブラリ版）は同じになります。

pdprgcopyコマンドの結果は，コマンド実行時のリターンコードで確認できます。コマンド実行時のリターンコードが0の場合は正常終了，8の場合は異常終了です。8の場合は，その前に出力されているメッセージを参照してエラー要因を取り除いてください。

2.103　pdprgrenew（修正版HiRDBの入れ替え）

2.103.1　pdprgrenewの形式と規則

(1)　機能

稼働中のHiRDBを，修正版HiRDB（あらかじめpdprgcopyコマンドでコピーしておいた入れ替え用ディレクトリ（$PDDIR/renew）のHiRDB）に入れ替えます。修正版HiRDBへの入れ替えについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

稼働中のHiRDBの，次のHiRDB運用ディレクトリのファイルを入れ替えます。

ディレクトリ

内容

$PDDIR/renew/bin

HiRDBの運用コマンド及びユティリティ

$PDDIR/renew/lib

HiRDBのライブラリ，メッセージテキストファイル，及びシステム定義の定義解析用ファイル

$PDDIR/renew/client

HiRDBクライアントのライブラリ，運用コマンド，及びユティリティ

$PDDIR/renew/include

UAP作成時に使用するヘッダ情報

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　修正版HiRDBのインストールディレクトリ/bin/pdprgrenew

　　　　　　〔-b〕 HiRDB運用ディレクトリ

(4)　オプション

(a)　-b

pdprgrenewコマンドがKFPS04646-I（リターンコード=12）で異常終了した場合など，pdprgrenewコマンド実行前の状態にHiRDBを戻すときに指定します。

(5)　コマンド引数

(a)　HiRDB運用ディレクトリ　〜＜パス名＞

　　　〜＜パス名＞((Linux版：1〜118，Linux版以外：1〜128))

修正版HiRDBに入れ替えるHiRDBの，HiRDB運用ディレクトリを指定します。

(6)　規則

pdprgrenewコマンドは，HiRDBが稼働中のときだけ実行できます。

pdprgrenewコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdprgrenewを実行する場合，あらかじめpdprgcopyコマンドで入れ替え用ディレクトリ（$PDDIR/renew）を作成しておく必要があります。作成していない場合は実行できません。なお，入れ替え用ディレクトリ（$PDDIR/renew）は，pdprgrenewコマンドが正常終了したときに削除されます。

(7)　注意事項

pdprgrenewコマンドは，バックアップ用ディレクトリ（$PDDIR/renew_bak）を作成するため，同一名称のディレクトリがある場合は，あらかじめ別のディレクトリ名に変更しておいてください。

pdprgrenewコマンドを実行すると，システムログファイルが切り替わります。そのため，pdprgrenewコマンドを実行する前に，入れ替え後のHiRDBで稼働するための容量が，システムログファイルにあるかどうかを確認してから実行してください。スワップ先にできるシステムログファイルがない状態でpdprgrenewコマンドを実行すると，KFPS01256-Eメッセージを出力し，HiRDBは停止します（アボートコードPsjnf07又はPsjn381を出力）。HiRDBが停止した場合，スワップ先にできるシステムログファイルを準備してから，HiRDBを開始してください。スワップ先にできるシステムログファイルがない場合，システムログファイルを追加する必要があります。スワップ先にできるファイルがない場合の対処方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

pdprgrenewコマンドを実行すると，メッセージログファイルが切り替わります。ただし，メッセージログファイルの切り替えを示すメッセージは出力されません。そのため，メッセージログファイルのメッセージログが必要な場合は，pdprgrenewコマンドを実行する前にメッセージログファイルのバックアップを取得してください。

稼働中のHiRDBが次の状態の場合，HiRDBの入れ替えができないことがあります。

HiRDB/パラレルサーバの場合，一部のサーバ又はユニットが停止しているとき（縮退起動によって開始していないユニットも含む）

HiRDB/パラレルサーバの場合，ユニット間のネットワークに通信障害が発生しているとき

pdprgrenewコマンド実行後，15分間以上トランザクション，又はユティリティが動作している場合

更新可能なオンライン再編成を実行中の場合

拡張ユニットを使用する場合（pd_system_expand_unitオペランドを指定している場合）

インメモリRDエリアがある場合

pdrplstopコマンドを実行中の場合

HiRDB Datareplicatorのデータ抽出機能を使用している場合に，pd_rpl_init_startオペランドの指定と実際のデータ抽出モードが次のように異なっているとき

(i)pd_rpl_init_start=Yを指定している場合に，pdrplstopコマンドを実行してデータ抽出機能を停止している場合

(ii)pd_rpl_init_start=Nを指定している場合に，pdrplstartコマンドを実行してデータ抽出機能を開始している場合

pdprgrenewコマンド実行中は，次の運用に制限が生じます。

UAPのレスポンスが，pdprgrenewコマンドの実行時間だけ遅くなります。

運用コマンド，及びユティリティを実行した場合，pdprgrenewコマンドの実行が失敗したり，HiRDBが停止している旨のエラーメッセージを表示したりすることがあります。

系切り替え機能を使用しているHiRDBの入れ替えをする場合，実行系，及び待機系をそれぞれ入れ替える必要があります。

HiRDB運用ディレクトリ下のファイルは，HiRDB運用ディレクトリと同じHiRDBファイルシステム領域になければなりません。

HiRDBサーバに接続しているUAPが使用するクライアントライブラリは，バージョン07-00以降のものを使用してください。バージョン07-00より前のライブラリを使用していると，接続中のHiRDBクライアントが切断されます。

pdprgrenewコマンドの結果は，コマンド実行時のリターンコードで確認できます。

pdprgrenewコマンドのリターンコードを次に示します。

0：正常終了

8：異常終了（入れ替え前のHiRDBの状態）

標準エラー出力やsyslogfileに出力されたエラーメッセージを参照してエラーの原因を取り除いてください。その後，コマンドを再実行してください。

12：異常終了（HiRDBが停止状態）

マニュアル「HiRDB システム導入・設計ガイド」の「修正版HiRDBへの入れ替え」を参照して対処してください。

pdprgrenewコマンド実行中，HiRDBの開始，終了に伴うエラーメッセージ及びアボートコードが出力されることがあります。この場合，入れ替え後のHiRDBを開始するために必要とするリソース不足など，環境に問題があることがあります。エラーメッセージ，及びアボートコードの対処方法に従って対処してください。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，業務サイトでpdprgrenewコマンドを実行してHiRDBを入れ替えたときは，ログ適用サイトのHiRDBも入れ換えた上で，システムログ適用化を実行してください。システムログ適用化の詳細については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

2.104　pdrbk（トランザクションのロールバック）

2.104.1　pdrbkの形式と規則

(1)　機能

pdrbkコマンドは，グローバルトランザクションを構成している各トランザクションブランチが，何らかの要因（通信障害など）でトランザクションを決着できない場合に，強制的にトランザクションをロールバックするときに使用します。この場合，ほかのトランザクションとの不整合を発生させないために，グローバルトランザクション内のほかのトランザクションもロールバックしなければなりません。

pdrbkコマンドは，「pdls -d trn」コマンドを実行して表示された情報中のトランザクション第１状態がREADYでトランザクション第２状態がｐのトランザクションを，強制的にロールバックします。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdrbk 〔｛-x ホスト名｜-u ユニット識別子｝〕 〔-s サーバ名〕

　　　　　｛-A｜-t トランザクション識別子｝

(b)　HiRDB/パラレルサーバの場合

　pdrbk ｛-x ホスト名｜-u ユニット識別子｝ 〔-s サーバ名〕

　　　　　｛-A｜-t トランザクション識別子｝

(4)　オプション

(a)　｛-x ホスト名｜-u ユニット識別子｝

該当するトランザクションがあるホストのホスト名，又はユニットのユニット識別子を指定します。

-x ホスト名　〜＜識別子＞((1〜32))

該当するトランザクションがあるホストのホスト名を指定します。

-u ユニット識別子　〜＜識別子＞((4文字))

該当するトランザクションがあるユニットのユニット識別子を指定します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

ユニットに複数のサーバがある場合，サーバを特定するときにサーバ名を指定します。省略した場合，対象となるホスト内のすべてのサーバを対象とします。

(c)　-A

-sオプションで指定したサーバ内のトランザクションで，READY状態で回復処理待ち状態のすべてのトランザクションをロールバックする場合に指定します。

(d)　-t トランザクション識別子　〜＜英数字＞((16文字))

READY状態で回復処理待ち状態のトランザクションをロールバックする場合に，トランザクション識別子を指定します。

(5)　規則

pdrbkコマンドは，HiRDBが稼働中のときだけ実行できます。

pdrbkコマンドは，各サーバマシンで実行してください。ただし，ユティリティ専用ユニットのサーバマシンでは実行できません。

(6)　注意事項

pdrbkコマンドの結果は，pdlsコマンド（-d trn指定），コマンド実行時のリターンコード，又はエラーメッセージの有無で確認できます。

コマンド実行時のリターンコードを次に示します。

0：正常終了

1：異常終了（オプション指定不正，rsh失敗など）

ロールバックできていないトランザクションが残っていることがあります。

メッセージに従って対処した後，再度コマンドを実行してください。

回復不要FESに接続して実行したトランザクションは，トランザクション第1状態がREADY，トランザクション第2状態がpの場合でも，強制的にロールバックできないことがあります。この場合，トランザクションを自動決着してください。未決着状態のトランザクションを決着する方法の詳細については，マニュアル「HiRDB システム運用ガイド」の「未決着状態のトランザクションを決着する方法」を参照してください。

現在は停止しているクライアント製品からの要求で発生した未決着状態のトランザクションを強制的にロールバックすると，この後でクライアント製品を開始したときに，HiRDBとクライアント製品との間でこのトランザクションの同期が取れないことがあります。

2.105　pdrdconstck（インナレプリカグループ内のRDエリアの整合性チェック）

2.105.1　pdrdconstckの形式と規則

(1)　機能

インナレプリカグループ内のRDエリアの構成情報の整合性をチェックし，差異を検出します。また，RDエリアの構成情報を出力します。このコマンドは，ディクショナリ表からRDエリアの構成情報を検索し，オリジナルRDエリアとレプリカRDエリアの差異を確認することで，整合性のチェックを行います。このコマンドでチェック対象とするディクショナリ表及び列名を次に示します。

ディクショナリ表

列名

データ型

内容

SQL_RDAREAS

SQL_RDAREAS

INTEGER

ページ長（単位：バイト）。

SEGMENT_SIZE

INTEGER

セグメントサイズ（単位：ページ）。

FILE_COUNT

INTEGER

HiRDBファイル数。

EXTENSION

CHAR(1)

RDエリアの増分指定有無。

U：指定あり

N：指定なし

EXTENSION_SEGMENT_SIZE

INTEGER

増分セグメント数。

RDエリアの増分指定がない場合はナル値となります。

SQL_PHYSICAL_FILES

PHYSICAL_FILE_NAME

VARCHAR(167)

HiRDBファイル名。

INITIAL_SIZE

INTEGER

HiRDBファイルのセグメント数。

PHYSICAL_FILE_ID

INTEGER

物理ファイルID。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　インナレプリカグループ内のRDエリアを指定する場合

　pdrdconstck ｛-r ALL｜-r RDエリア名｝ 〔-u 認可識別子〕 〔-o ファイル名〔-x 〔-y〕〕〕

(b)　インナレプリカグループに含まれないRDエリアを指定する場合

　pdrdconstck ｛-r ALL -n｜-r RDエリア名｝ 〔-u 認可識別子〕 -o ファイル名 〔-x 〔-y〕〕

(4)　オプション

(a)　-r ALL（-n指定なし）

すべてのインナレプリカグループ内のRDエリアの整合性チェックを実施し，更にRDエリアの構成情報を出力します。

(b)　-r ALL（-n指定あり）

インナレプリカグループに含まれないすべてのユーザRDエリア，ユーザLOB用RDエリアの構成情報を出力します。RDエリアの構成情報出力だけを行い，RDエリアの構成情報の整合性チェックは実施しません。

(c)　-r RDエリア名

インナレプリカグループ内のRDエリアを指定した場合

指定したRDエリアを含むインナレプリカグループ内のRDエリアの整合性チェックを実施し，更にRD エリアの構成情報を出力します。

インナレプリカグループに含まれないRDエリアを指定した場合

指定したユーザRDエリア，ユーザLOB用RDエリアを対象に，RDエリアの構成情報出力を実施します。RDエリアの構成情報の整合性チェックは実施しません。

(d)　-u 認可識別子

ディクショナリ表を検索するユーザの認可識別子を指定します。DBA権限を持つユーザを指定する必要があります。

このオプションを指定すると，パスワード入力要求の応答付きメッセージが出力されます。認可識別子，パスワードを引用符（"）で囲んだ場合は，英字の大文字と小文字を区別しますが，引用符（"）で囲まない場合はすべて大文字として扱います。

このオプションを省略した場合，環境変数PDUSERの設定値が仮定されます。このオプションを省略し，かつ環境変数PDUSERも設定していない場合，このコマンドは実行できません。

(e)　-o ファイル名

RDエリアの構成情報を出力するファイル名を絶対パス名で指定します。

-r ALL（-n指定なし），又は-r RDエリア名でインナレプリカグループ内のRDエリアを指定した場合

このオプションを省略した場合，RDエリアの構成情報出力は行わず，整合性チェックの結果を標準出力にだけ出力します。

-r ALL（-n指定あり），又は-r RDエリア名でインナレプリカグループに含まれないRDエリアを指定した場合

このオプションを省略した場合，オプション指定エラーとなります。

(f)　-x

CSV形式で情報を出力する場合に指定します。指定しない場合，テキスト形式で情報を出力します。このオプションは，-oオプションを指定した場合だけ有効となります。

(g)　-y

-xオプション指定時にヘッダ（項目名）を付ける場合に指定します。

(5)　規則

pdrdconstckコマンドは，HiRDB稼働中のときだけ実行できます。

pdrdconstckコマンドは，シングルサーバ又はディクショナリサーバを定義しているユニットで実行してください。

pdrdconstckコマンド実行時は，環境変数PDHOST，PDNAMEPORTを設定してください。

(6)　出力形式

(a)　-xオプション省略時

pdrdconstck VV-RR    *** RDAREA INFORMATION *** YYYY-MM-DD hh:mm:ss     ...1
-----                                                                   ...2
[RDAREA_NAME=aa....aa, RDAREA_ID=bb....bb, GENERATION_NUMBER=cc....cc]  ...3
SQL_RDAREAS                                                             ...3
 PAGE_SIZE=dd....dd                                                     ...3
 SEGMENT_SIZE=ee....ee                                                  ...3
 FILE_COUNT=ff....ff                                                    ...3
 EXTENSION=gg....gg                                                     ...3
 EXTENSION_SEGMENT_SIZE=hh....hh                                        ...3
SQL_PHYSICAL_FILES                                                      ...3，4
 PHYSICAL_FILE_NAME=ii....ii                                            ...3，4
  INITIAL_SIZE=jj....jj                                                 ...3，4
  PHYSICAL_FILE_ID=kk....kk                                             ...3，4
  :                                                                     ...3，4
  :                                                                     ...3，4
                                                                        ...3
-----                                                                   ...2

[RDAREA ll....ll, mm....mm CHECK RESULT]                                ...5
nn....nn                                                                ...5
                                                                        ...5

［説明］

ヘッダ情報です。

区切り記号です。RDエリアの整合性チェック及び構成情報のファイル出力をする場合，インナレプリカグループごとに表示します。構成情報のファイル出力だけをする場合，表示しません。

ディクショナリ表中のRDエリア構成情報です。コマンドの実行対象となるRDエリアをすべて表示します。インナレプリカグループ内のRDエリアの整合性チェックをする場合，オリジナルRDエリア，レプリカRDエリアの順に出力を行います。レプリカRDエリアが複数存在する場合，すべてのレプリカRDエリアを表示します。

HiRDBファイルに関するRDエリア構成情報です。RDエリア内に複数のHiRDBファイルが存在する場合，すべてのHiRDBファイルを表示します。

整合性チェックの結果です。RDエリアの整合性チェック及び構成情報のファイル出力をする場合，表示します。レプリカRDエリアが複数存在する場合，すべてのレプリカRDエリアを表示します。構成情報のファイル出力だけをする場合，表示しません。

VV-RR：

HiRDBのバージョン情報

YYYY-MM-DD hh:mm:ss：

コマンド実行日時（年月日時分秒）

aa....aa：

RDエリア名

bb....bb：

RDエリアID

cc....cc：

世代番号

インナレプリカグループに含まれないRDエリアを指定した場合，世代番号はナル値となるため，「, GENERATION_NUMBER=cc....cc」は出力しません。

dd....dd：

ページ長（単位：バイト）

ee....ee：

セグメントサイズ（単位：ページ）

ff....ff：

HiRDBファイル数

gg...gg：

RDエリアの増分指定有無

U：指定あり

N：指定なし

hh...hh：

増分セグメント数

RDエリアの増分指定がない場合はナル値となるため，空文字を出力します。

ii...ii：

HiRDBファイル名

jj...jj：

HiRDBファイルのセグメント数

kk...kk：

物理ファイルID

ll...ll：

オリジナルRDエリア名

mm...mm：

レプリカRDエリア名

nn...nn：

チェック結果

表示内容

チェック結果

Configuration information matched.

構成情報一致

*Configuration information unmatched.

構成情報不一致

インナレプリカRDエリアで，ディクショナリ表中のRDエリアの構成情報に差分が発生した箇所では，列名の直前の半角空白を「*」に置き換えて表示します。HiRDBファイル名については，ファイル名が異なる場合だけ「*」を表示します。ファイル名以外の箇所が異なる場合，「*」には置き換えません。オリジナルRDエリアにだけ存在する物理ファイルが存在した場合，「*Some physical files not created, PHYSICAL_FILE_NAME={ファイル名}」行を出力します。

＜出力例＞

「-r RDエリア名」オプションを使用し，整合性に問題が無かった場合

pdrdconstck 10-06    *** RDAREA INFORMATION *** 2022-09-01 10:00:00
-----
[RDAREA_NAME=USER1, RDAREA_ID=10, GENERATION_NUMBER=0]
SQL_RDAREAS
 PAGE_SIZE=4096
 SEGMENT_SIZE=80
 FILE_COUNT=2
 EXTENSION=U
 EXTENSION_SEGMENT_SIZE=10
SQL_PHYSICAL_FILES
 PHYSICAL_FILE_NAME=/users/HiRDB/db/DB1/rdusr101
  INITIAL_SIZE=10
  PHYSICAL_FILE_ID=0
 PHYSICAL_FILE_NAME=/users/HiRDB/db/DB2/rdusr201
  INITIAL_SIZE=15
  PHYSICAL_FILE_ID=1

[RDAREA_NAME=USER1GN1, RDAREA_ID=21, GENERATION_NUMBER=1]
SQL_RDAREAS
 PAGE_SIZE=4096
 SEGMENT_SIZE=80
 FILE_COUNT=2
 EXTENSION=U
 EXTENSION_SEGMENT_SIZE=10
SQL_PHYSICAL_FILES
 PHYSICAL_FILE_NAME=/users/HiRDB/db/DB1GN1/rdusr101
  INITIAL_SIZE=10
  PHYSICAL_FILE_ID=0
 PHYSICAL_FILE_NAME=/users/HiRDB/db/DB2GN1/rdusr201
  INITIAL_SIZE=15
  PHYSICAL_FILE_ID=1

-----

[RDAREA USER1, USER1GN1 CHECK RESULT]
 Configuration information matched.

「-r RDエリア名」オプションを使用し，整合性に問題があった場合

pdrdconstck 10-06    *** RDAREA INFORMATION *** 2022-09-01 11:00:00
-----
[RDAREA_NAME=USER1, RDAREA_ID=10, GENERATION_NUMBER=0]
SQL_RDAREAS
 PAGE_SIZE=4096
 SEGMENT_SIZE=80
 FILE_COUNT=3
 EXTENSION=U
 EXTENSION_SEGMENT_SIZE=10
SQL_PHYSICAL_FILES
 PHYSICAL_FILE_NAME=/users/HiRDB/db/DB1/rdusr101
  INITIAL_SIZE=10
  PHYSICAL_FILE_ID=0
 PHYSICAL_FILE_NAME=/users/HiRDB/db/DB2/rdusr202
  INITIAL_SIZE=15
  PHYSICAL_FILE_ID=1
 PHYSICAL_FILE_NAME=/users/HiRDB/db/DB2/rdusr302
  INITIAL_SIZE=15
  PHYSICAL_FILE_ID=2

[RDAREA_NAME=USER1GN1, RDAREA_ID=21, GENERATION_NUMBER=1]
SQL_RDAREAS
 PAGE_SIZE=4096
 SEGMENT_SIZE=80
*FILE_COUNT=2
 EXTENSION=U
*EXTENSION_SEGMENT_SIZE=20
SQL_PHYSICAL_FILES
 PHYSICAL_FILE_NAME=/users/HiRDB/db/DB1GN1/rdusr101
  INITIAL_SIZE=10
  PHYSICAL_FILE_ID=0
*PHYSICAL_FILE_NAME=/users/HiRDB/db/DB2GN1/rdusr201
 *INITIAL_SIZE=15
 *PHYSICAL_FILE_ID=1
*Some physical files not created, PHYSICAL_FILE_NAME=rdusr202
*Some physical files not created, PHYSICAL_FILE_NAME=rdusr302

-----

[RDAREA USER1, USER1GN1 CHECK RESULT]
*Configuration information unmatched.

(b)　CSV形式での出力形式（-x及び-yオプション指定時）

"CHECK_RESULT","RDAREA_NAME","RDAREA_ID","GENERATION_NUMBER","ORIGINAL_RDAREA_NAME","PAGE_SIZE","SEGMENT_SIZE","FILE_COUNT","EXTENSION","EXTENSION_SEGMENT_SIZE","PHYSICAL_FILE_NAME_1","INITIAL_SIZE_1","PHYSICAL_FILE_ID_1",…[CR]...1，2
"oo....oo","aa....aa",bb....bb,cc....cc,"pp....pp",dd....dd,ee....ee,ff....ff,"gg....gg",hh....hh,"ii....ii",jj....jj,kk....kk,…[CR]...1，3
  :
  :

［説明］

[CR]は，改行を表します。HiRDBファイル（2個目）〜HiRDBファイル（16個目）の記載は「…」で省略しています。

ディクショナリ表中のRDエリア構成情報の項目名です。-yオプション指定時だけ出力します。

ディクショナリ表中のRDエリア構成情報です。表示する内容を次に示します。

項目名

内容

CHECK_RESULT

oo....oo : チェック結果

レプリカRDエリアのチェック結果で，整合性に問題が無かった場合「Matched」，整合性に問題があった場合「*Unmatched」を表示します。

オリジナルRDエリアか，又はインナレプリカグループ外のRDエリアである場合，空要素を表示します。

RDAREA_NAME

aa....aa : RDエリア名

RDAREA_ID

bb....bb : RDエリアID

GENERATION_NUMBER

cc....cc : 世代番号

インナレプリカグループに含まれないRDエリアを指定した場合，空要素を表示します。

ORIGINAL_RDAREA_NAME

pp....pp : オリジナルRDエリア名

オリジナルRDエリア及びレプリカRDエリアを指定した場合，オリジナルRDエリアを表示します。

インナレプリカグループに含まれないRDエリアを指定した場合，空要素を表示します。

PAGE_SIZE

dd....dd ： ページ長（単位：バイト）

SEGMENT_SIZE

ee....ee ： セグメントサイズ（単位：ページ）。

FILE_COUNT

ff....ff ： HiRDBファイル数

EXTENSION

gg....gg ： RDエリアVMの増分指定有無

U：指定あり

N：指定なし

EXTENSION_SEGMENT_SIZE

hh....hh ： 増分セグメント数

RDエリアの増分指定がない場合はナル値となるため，空文字を出力します。

PHYSICAL_FILE_NAME_1

ii....ii ： HiRDBファイル（1個目）のHiRDBファイル名

INITIAL_SIZE_1

jj....jj ： HiRDBファイル（1個目）のセグメント数

PHYSICAL_FILE_ID_1

kk....kk ： HiRDBファイル（1個目）の物理ファイルID

PHYSICAL_FILE_NAME_2

ii....ii ： HiRDBファイル（2個目）のHiRDBファイル名

INITIAL_SIZE_2

jj....jj ： HiRDBファイル（2個目）のセグメント数

PHYSICAL_FILE_ID_2

kk....kk ： HiRDBファイル（2個目）の物理ファイルID

PHYSICAL_FILE_NAME_3

ii....ii ： HiRDBファイル（3個目）のHiRDBファイル名

INITIAL_SIZE_3

jj....jj ： HiRDBファイル（3個目）のセグメント数

PHYSICAL_FILE_ID_3

kk....kk ： HiRDBファイル（3個目）の物理ファイルID

PHYSICAL_FILE_NAME_4

ii....ii ： HiRDBファイル（4個目）のHiRDBファイル名

INITIAL_SIZE_4

jj....jj ： HiRDBファイル（4個目）のセグメント数

PHYSICAL_FILE_ID_4

kk....kk ： HiRDBファイル（4個目）の物理ファイルID

PHYSICAL_FILE_NAME_5

ii....ii ： HiRDBファイル（5個目）のHiRDBファイル名

INITIAL_SIZE_5

jj....jj ： HiRDBファイル（5個目）のセグメント数

PHYSICAL_FILE_ID_5

kk....kk ： HiRDBファイル（5個目）の物理ファイルID

PHYSICAL_FILE_NAME_6

ii....ii ： HiRDBファイル（6個目）のHiRDBファイル名

INITIAL_SIZE_6

jj....jj ： HiRDBファイル（6個目）のセグメント数

PHYSICAL_FILE_ID_6

kk....kk ： HiRDBファイル（6個目）の物理ファイルID

PHYSICAL_FILE_NAME_7

ii....ii ： HiRDBファイル（7個目）のHiRDBファイル名

INITIAL_SIZE_7

jj....jj ： HiRDBファイル（7個目）のセグメント数

PHYSICAL_FILE_ID_7

kk....kk ： HiRDBファイル（7個目）の物理ファイルID

PHYSICAL_FILE_NAME_8

ii....ii ： HiRDBファイル（8個目）のHiRDBファイル名

INITIAL_SIZE_8

jj....jj ： HiRDBファイル（8個目）のセグメント数

PHYSICAL_FILE_ID_8

kk....kk ： HiRDBファイル（8個目）の物理ファイルID

PHYSICAL_FILE_NAME_9

ii....ii ： HiRDBファイル（9個目）のHiRDBファイル名

INITIAL_SIZE_9

jj....jj ： HiRDBファイル（9個目）のセグメント数

PHYSICAL_FILE_ID_9

kk....kk ： HiRDBファイル（9個目）の物理ファイルID

PHYSICAL_FILE_NAME_10

ii....ii ： HiRDBファイル（10個目）のHiRDBファイル名

INITIAL_SIZE_10

jj....jj ： HiRDBファイル（10個目）のセグメント数

PHYSICAL_FILE_ID_10

kk....kk ： HiRDBファイル（10個目）の物理ファイルID

PHYSICAL_FILE_NAME_11

ii....ii ： HiRDBファイル（11個目）のHiRDBファイル名

INITIAL_SIZE_11

jj....jj ： HiRDBファイル（11個目）のセグメント数

PHYSICAL_FILE_ID_11

kk....kk ： HiRDBファイル（11個目）の物理ファイルID

PHYSICAL_FILE_NAME_12

ii....ii ： HiRDBファイル（12個目）のHiRDBファイル名

INITIAL_SIZE_12

jj....jj ： HiRDBファイル（12個目）のセグメント数

PHYSICAL_FILE_ID_12

kk....kk ： HiRDBファイル（12個目）の物理ファイルID

PHYSICAL_FILE_NAME_13

ii....ii ： HiRDBファイル（13個目）のHiRDBファイル名

INITIAL_SIZE_13

jj....jj ： HiRDBファイル（13個目）のセグメント数

PHYSICAL_FILE_ID_13

kk....kk ： HiRDBファイル（13個目）の物理ファイルID

PHYSICAL_FILE_NAME_14

ii....ii ： HiRDBファイル（14個目）のHiRDBファイル名

INITIAL_SIZE_14

jj....jj ： HiRDBファイル（14個目）のセグメント数

PHYSICAL_FILE_ID_14

kk....kk ： HiRDBファイル（14個目）の物理ファイルID

PHYSICAL_FILE_NAME_15

ii....ii ： HiRDBファイル（15個目）のHiRDBファイル名

INITIAL_SIZE_15

jj....jj ： HiRDBファイル（15個目）のセグメント数

PHYSICAL_FILE_ID_15

kk....kk ： HiRDBファイル（15個目）の物理ファイルID

PHYSICAL_FILE_NAME_16

ii....ii ： HiRDBファイル（16個目）のHiRDBファイル名

INITIAL_SIZE_16

jj....jj ： HiRDBファイル（16個目）のセグメント数

PHYSICAL_FILE_ID_16

kk....kk ： HiRDBファイル（16個目）の物理ファイルID

［CSV形式での出力規則］

CSV形式での共通出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

該当するHiRDBファイルが存在しない場合，空要素として表示します。

CSV形式では，テキスト形式で表示しているヘッダ情報は表示しません。また，列ごとの構成情報差分を示す情報（「*」及び「*Some physical files not created, PHYSICAL_FILE_NAME={ファイル名}」）も表示しません。

＜出力例＞

「-r RDエリア名」オプションを使用し，整合性に問題が無かった場合

"CHECK_RESULT","RDAREA_NAME","RDAREA_ID","GENERATION_NUMBER","ORIGINAL_RDAREA_NAME","PAGE_SIZE","SEGMENT_SIZE","FILE_COUNT","EXTENSION","EXTENSION_SEGMENT_SIZE","PHYSICAL_FILE_NAME_1","INITIAL_SIZE_1","PHYSICAL_FILE_ID_1","PHYSICAL_FILE_NAME_2","INITIAL_SIZE_2","PHYSICAL_FILE_ID_2", …[CR]...1
"","USER1",10,0,"USER1",4096,80,2,"U",10,"/users/HiRDB/db/DB1/rdusr101",10,0,"/users/HiRDB/db/DB2/rdusr201",15,1, …[CR]...1
"Matched","USER1GN1",21,1,"USER1",4096,80,2,"U",10,"/users/HiRDB/db/DB1GN1/rdusr101",10,0,"/users/HiRDB/db/DB2GN1/rdusr201",15,1,…[CR]...1

［説明］

[CR]は，改行を表します。HiRDBファイル（3個目）〜HiRDBファイル（16個目）の記載は「…」で省略しています。

「-r RDエリア名」オプションを使用し，整合性に問題があった場合

"CHECK_RESULT","RDAREA_NAME","RDAREA_ID","GENERATION_NUMBER","ORIGINAL_RDAREA_NAME","PAGE_SIZE","SEGMENT_SIZE","FILE_COUNT","EXTENSION","EXTENSION_SEGMENT_SIZE","PHYSICAL_FILE_NAME_1","INITIAL_SIZE_1","PHYSICAL_FILE_ID_1","PHYSICAL_FILE_NAME_2","INITIAL_SIZE_2","PHYSICAL_FILE_ID_2","PHYSICAL_FILE_NAME_3","INITIAL_SIZE_3","PHYSICAL_FILE_ID_3", …[CR]...1
"","USER1",10,0,"USER1",4096,80,3,"U",10,"/users/HiRDB/db/DB1/rdusr101",10,0,"/users/HiRDB/db/DB2/rdusr202",15,1,"/users/HiRDB/db/DB2/rdusr301",15,2, …[CR]...1
"*Unmatched","USER1GN1",21,1,"USER1",4096,80,2,"U",20,"/users/HiRDB/db/DB1GN1/rdusr101",10,0,"/users/HiRDB/db/DB2GN1/rdusr201",15,1,"",,, …[CR]...1

［説明］

[CR]は，改行を表します。HiRDBファイル（4個目）〜HiRDBファイル（16個目）の記載は「…」で省略しています。

(7)　整合性に問題があるときの対処

整合性に問題があるときは，pdmodコマンドのdefine copy rdarea文を実行する必要があります。対処方法については，マニュアル「インナレプリカ機能 HiRDB Staticizer Option」の「インナレプリカグループ内のRDエリアの構成変更と構成情報の複写」を参照してください。

(8)　注意事項

pdrdconstckコマンドのリターンコードを次に示します。

0：正常終了（整合性に問題なし）

4：正常終了（整合性に問題あり）

8：異常終了（コマンド実行中にエラーが発生）

インナレプリカグループ内のRDエリア，又はディクショナリ表のどちらかを更新する操作とpdrdconstckコマンドを同時に実行すると，pdrdconstckコマンドで更新前の値を参照し，整合性が正常に判定されないことがあります。このため，同時に実行しないでください。

pdchpathfコマンドを実行した場合，pdchpathnコマンドを実行してディクショナリ表を更新してから，このコマンドを実行してください。

HiRDB接続時のパスワード秘匿化機能を使用している場合，クライアント環境定義PDAUTHTYPEを設定する必要があります。指定値については，マニュアル「HiRDB システム運用ガイド」の「HiRDB接続時のパスワード秘匿化機能の設定方法」を参照してください。

通信情報ファイルディレクトリ変更機能を使用している場合，クライアント環境定義 PDIPCFILEDIRに値を設定する必要があります。指定値については，マニュアル「HiRDB UAP開発ガイド」の「クライアント環境定義の設定内容」を参照してください。

pdrdconstckコマンド実行時には，データディクショナリ表のSQL_RDAREAS表， SQL_PHYSICAL_FILES表の検索を行います。検索時の排他オプションにはWITHOUT LOCK NOWAITを指定しているため，排他による待ちは発生しません。ただし，RDエリアが多数存在するHiRDB環境で「-r ALL」オプションを指定した場合，データディクショナリ表の検索に時間が掛かり，オンライン中の業務に影響を与える可能性があります。このようなHiRDB環境では，pdrdconstckコマンド実行による業務への影響を事前に確認してください。

2.106　pdrdrefls（関連するRDエリアの情報の表示）

2.106.1　pdrdreflsの形式と規則

(1)　機能

関連するRDエリアの情報を表示します。

pdrdreflsコマンドには，次の二つの機能があります。

関連するRDエリアの情報の表示

RDエリアの関連性のチェック

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　関連するRDエリアの情報の表示

　pdrdrefls 〔-k dsp〕 -e org

　　　　　｛-r RDエリア名〔，RDエリア名〕…｜-r ALL

　　　　　　｜-t 〔認可識別子.〕表識別子｝

　　　　　〔-s サーバ名〔，サーバ名〕…〕 〔-l 〔-d 区切り文字〕〕 〔-a〕 〔-c 制約種別〕

(b)　RDエリアの関連性のチェック

　pdrdrefls -k chk -e org ｛-r RDエリア名〔，RDエリア名〕…｜-r ALL｝

　　　　　〔-s サーバ名〔，サーバ名〕…〕 〔-c 制約種別〕

(4)　オプション

(a)　-k ｛dsp｜chk｝

実行するpdrdreflsコマンドの機能を指定します。

dsp：

表を格納するすべてのRDエリア，及びRDエリア内にある資源（表，インデクス，及びLOB列）について，関連のあるRDエリアの情報を表示します。

chk：

RDエリアの関連性をチェックします。関連するRDエリアが不足している場合，不足しているRDエリアの情報をメッセージで出力します。

(b)　-e org

固定のオプションです。

(c)　-r RDエリア名〔，RDエリア名〕…　〜＜識別子＞((1〜30))

処理対象のRDエリアの名称を指定します。また，更新可能なオンライン再編成を使用している場合は，オリジナルRDエリア名を指定してください。ただし，指定できるのはユーザ用RDエリア（一時表用RDエリアを除く）及びユーザLOB用RDエリアです。

RDエリアを指定する場合の規則については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

(d)　-r ALL

すべてのユーザ用RDエリア（一時表用RDエリアを除く），及びユーザLOB用RDエリアを処理対象とする場合に指定します。

(e)　-t 〔認可識別子.〕表識別子　〜＜識別子＞((認可識別子：1〜30，表識別子：1〜30))

処理対象の表の名称を指定します。

認可識別子を省略した場合，pdrdreflsコマンド実行時の環境変数PDUSERの認可識別子が仮定されます。環境変数PDUSERを設定していない場合，及び環境変数PDUSERの認可識別子とパスワードの両方に簡易認証キーワードを指定している※場合，ログインウィンドウのユーザ名が仮定されます。-tオプションの指定と環境変数PDUSERの設定によって有効となる認可識別子について次に示します。

-tオプションの認可識別子

環境変数PDUSERの設定内容

有効な認可識別子

指定あり

−

-tオプションに指定された認可識別子

省略

認可識別子[/パスワード]

環境変数PDUSERに指定された認可識別子

設定なし

ログインウィンドウのユーザ名

認可識別子とパスワードの両方に簡易認証キーワードを指定

注※

OSログインユーザの簡易認証機能の有効，無効（システム共通定義のpd_os_authenticateオペランドの指定値）にかかわらず，環境変数PDUSERの設定内容で判断します。簡易認証キーワードについては，マニュアル「HiRDB システム運用ガイド」の「OSログインユーザの簡易認証機能」を参照してください。

認可識別子及び表識別子を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符（"）で囲まない場合はすべて大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

(f)　-s サーバ名〔，サーバ名〕…　〜＜識別子＞((1〜8))

処理対象のサーバの名称を指定します。指定できるサーバの数は，最大128個です。

-k dspの場合，関連するRDエリアのうち，指定したサーバに定義されている情報だけを表示します。

-k chkの場合，-rオプションに指定したすべてのRDエリアが，指定したサーバに定義されているかどうかをチェックします。-rオプションに指定したすべてのRDエリアがその条件を満たしていない場合，そのRDエリア名をメッセージで出力し，エラー終了します。

指定するサーバ名は，pddbstのRDエリア単位の状態解析（論理的解析），又は表単位の状態解析で確認できます。

(g)　-l

出力情報の各情報を改行しないで表示する場合に指定します。

(h)　-d 区切り文字

-lオプション指定時の各情報の区切り文字を，半角1文字で指定します。

省略した場合は空白が仮定されます。

区切り文字としてアポストロフィ（'）や引用符（"）などの特殊文字を指定する場合，「¥'」，「¥"」と指定してください。エスケープ文字を区切り文字として指定する場合は，「¥¥」と指定してください。

(i)　-a

すべての関連情報（サーバ名，RDエリア名，RDエリア種別，及び資源情報）を表示する場合に指定します。省略した場合，RDエリア名だけが表示されます。

(j)　-c 制約種別

制約定義の「関連するRDエリアの情報」を表示又はチェックする場合に指定します。

ref：

参照制約の「関連するRDエリアの情報」を表示又はチェックします。参照制約の関連するRDエリアとは，参照表又は被参照表を格納しているRDエリアに対して，世代番号を合わせて運用する必要のあるRDエリアのことです。参照制約の運用方法については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

(5)　規則

pdrdreflsコマンドは，HiRDBが稼働中のときだけ実行できます。

pdrdreflsコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(6)　注意事項

pdrdreflsコマンドの結果は，コマンド実行時のリターンコードで確認できます。リターンコードが0の場合は正常終了，4の場合は警告終了（解析対象の資源がありません），8の場合は異常終了です。

pdrdreflsコマンドの処理対象となるRDエリアに対して，表，インデクスの追加，削除，及び定義変更はしないでください。追加，削除，及び定義変更をした場合は，結果不正や異常終了となることがあります。

更新可能なオンライン再編成を使用している場合，pdrdreflsコマンドで関連するRDエリアの情報を取得し，取得した情報をコマンド又はユティリティの入力に使用するとき，関連するRDエリアの情報を取得してからコマンド又はユティリティを実行するまでの間に，RDエリアの名称を変更しないでください。名称を変更してしまうと，指定されたRDエリアが見つからないとして，エラーになる場合があります。エラーとなった場合は，コマンド又はユティリティに指定したRDエリア名称を変更後のRDエリア名称に修正した後で，再度コマンド又はユティリティを実行してください。

pdrdreflsコマンドの-rオプションに指定したRDエリア数，及び関連するRDエリア数に応じて，コマンド実行時間が長くなることがあります。実行時間が長くなる場合，-rオプションに指定するRDエリア数を減らしてください。

RDエリアの一括指定やALL指定をしている場合は，直接指定にするなど，該当するRDエリア数が少なくなるようにしてください。

(7)　出力形式

〔説明〕

サーバ名（最大8バイト）：

関連するRDエリアがあるサーバの名称です。

RDエリア名（最大32バイト）：

関連するRDエリアの名称です。RDエリア名は引用符（"）で囲んで表示されます。

RDエリア種別（最大8バイト）：

RDエリアの種別です。

USER：ユーザ用RDエリア

USER_LOB：ユーザLOB用RDエリア

資源種別（3バイト）：

資源の種別です。

TBL：表

IDX：インデクス

LOB：LOB列

資源名（最大65バイト）：

該当するRDエリアに格納されている資源の名称です。資源名は引用符で囲んで表示されます。

資源種別がTBLの場合：認可識別子.表識別子

資源種別がIDXの場合：認可識別子.インデクス識別子

資源種別がLOBの場合：LOB列名，又はLOB属性の抽象データ型列名

関連資源名（最大67バイト）：

資源種別がIDX又はLOBの資源の関連資源名です。関連資源名は（認可識別子.表識別子）の形式で表示され，引用符で囲まれます。

制約による関連資源名（最大69バイト）：

資源種別がTBLの資源に対して，制約定義によって関連する資源の名称です。この情報は，-cオプションを指定した場合だけ表示されます。-c refを指定した場合は，披参照表名称が表示されます。制約による関連資源名は，引用符（"）で囲んで表示されます。

(8)　使用例

更新可能なオンライン再編成を使用している場合に，関連するRDエリアの情報を表示します。なお，-dオプションを省略しています。また，実行結果の△は1バイトの空白を表します。

RDエリアの構成

実行結果

pdrdrefls -e org -r RD01 -aの場合

SERVER NAME : BES1
  RDAREA NAME : "RD01"
  AREA TYPE : USER
    RESOURCE  : TBL : "user1"."TBL1"
                      "user2"."TBL2"
                      "user1"."TBL3"
                IDX : "user1"."IDX1"
                      ("user1"."TBL1")
                      "user1"."IDX3"
                      ("user1"."TBL3")
  RDAREA NAME : "RD02"
    AREA TYPE : USER
    RESOURCE  : TBL : "user2"."TBL2"
                      "user1"."TBL3"
                IDX : "user2"."IDX2"
                      ("user2"."TBL2")
                      "user1"."IDX3"
                      ("user1"."TBL3")
  RDAREA NAME : "RD04"                   ┐
    AREA TYPE : USER                     │
    RESOURCE  : TBL : "user1"."TBL4"     ├　※
                      -><"user1"."TBL1"> │
                IDX : "user1"."IDX4"     │
                     ("user1"."TBL4")    ┘
  RDAREA NAME : "LOB01"
    AREA TYPE : USER_LOB
    RESOURCE  : LOB : "COL1"
                      ("user1"."TBL1")

注※　-c refを指定した場合だけ表示されます。

pdrdrefls -e org -r RD01の場合

  RDAREA NAME : "RD01"
  RDAREA NAME : "RD02"
  RDAREA NAME : "RD04" ※
  RDAREA NAME : "LOB01"

注※　-c refを指定した場合だけ表示されます。

pdrdrefls -e org -r RD01 -l -aの場合

BES1△"RD01"△USER△TBL△"user1"."TBL1"
BES1△"RD01"△USER△TBL△"user2"."TBL2"
BES1△"RD01"△USER△TBL△"user1"."TBL3"
BES1△"RD01"△USER△IDX△"user1"."IDX1"△"user1"."TBL1"
BES1△"RD01"△USER△IDX△"user1"."IDX3"△"user1"."TBL3"
BES1△"LOB01"△USER_LOB△LOB△"COL1"△"user1"."TBL1"
BES1△"RD02"△USER△TBL△"user2"."TBL2"
BES1△"RD02"△USER△TBL△"user1"."TBL3"
BES1△"RD02"△USER△IDX△"user2"."IDX2"△"user2"."TBL2"
BES1△"RD02"△USER△IDX△"user1"."IDX3"△"user1"."TBL3"
BES1△"RD04"△USER△TBL△"user1"."TBL4"△
"user1"."TBL1" ※
BES1△"RD04"△USER△IDX△"user1"."IDX4"△
"user1"."TBL4" ※

注※　-c refを指定した場合だけ表示されます。

pdrdrefls -e org -r RD01 -lの場合

"RD01"△"RD02"△"LOB01"△"RD04" ※

注※　-c refを指定した場合だけ表示されます。

pdrdrefls -e org -r RD02 -aの場合

SERVER NAME : BES1
  RDAREA NAME : "RD02"
    AREA TYPE : USER
    RESOURCE  : TBL : "user2"."TBL2"
                      "user1"."TBL3"
                IDX : "user2"."IDX2"
                      ("user2"."TBL2")
                      "user1"."IDX3"
                      ("user1"."TBL3")
  RDAREA NAME : "RD01"
    AREA TYPE : USER
    RESOURCE  : TBL : "user1"."TBL1"
                      "user2"."TBL2"
                      "user1"."TBL3"
                IDX : "user1"."IDX1"
                      ("user1"."TBL1")
                      "user1"."IDX3"
                      ("user1"."TBL3")
  RDAREA NAME : "RD04"                   ┐
    AREA TYPE : USER                     │
    RESOURCE  : TBL : "user1"."TBL4"     ├　※
                      -><"user1"."TBL1"> │
                IDX : "user1"."IDX4"     │
                     ("user1"."TBL4")    ┘
  RDAREA NAME : "LOB01"
    AREA TYPE : USER_LOB
    RESOURCE  : LOB : "COL1"
                      ("user1"."TBL1")

注※　-c refを指定した場合だけ表示されます。

pdrdrefls -e org -r RD03 -aの場合

SERVER NAME : BES2
  RDAREA NAME : "RD03"
    AREA TYPE : USER
    RESOURCE  : TBL : "user1"."TBL3
                IDX : "user1"."IDX3"
                      ("user1"."TBL3")

pdrdrefls -e org -r RD04 -aの場合

SERVER NAME : BES1
  RDAREA NAME : "RD04"
    AREA TYPE : USER
    RESOURCE  : TBL : "user1"."TBL4"
                      -><"user1"."TBL1"> ※
                IDX : "user1"."IDX4"
                      ("user1"."TBL4")
  RDAREA NAME : "RD01"                 ┐
    AREA TYPE : USER                   │
    RESOURCE  : TBL : "user1"."TBL1"   │
                      "user2"."TBL2"   │
                      "user1"."TBL3"   │
                IDX : "user1"."IDX1"   │
                      ("user1"."TBL1") │
                      "user1"."IDX3"   │
                      ("user1"."TBL3") │
  RDAREA NAME : "RD02"                 ├　※
    AREA TYPE : USER                   │
    RESOURCE  : TBL : "user2"."TBL2"   │
                      "user1"."TBL3"   │
                IDX : "user2"."IDX2"   │
                      ("user2"."TBL2") │
                      "user1"."IDX3"   │
                      ("user1"."TBL3") │
  RDAREA NAME : "LOB01"                │
    AREA TYPE : USER_LOB               │
    RESOURCE  : LOB  : "COL1"          │
                ("user1"."TBL1")       ┘

注※　-c refを指定した場合だけ表示されます。

2.107　pdrels（RDエリアの閉塞解除）

2.107.1　pdrelsの形式と規則

(1)　機能

指定したRDエリアの閉塞状態を解除します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdrels -r ｛RDエリア名〔，RDエリア名〕…｜ALL｝ 〔-q 世代番号〕 〔-o〕〔-W 実行監視時間〕

(4)　オプション

(a)　-r ｛RDエリア名〔，RDエリア名〕…｜ALL｝

RDエリア名　〜＜識別子＞((1〜30))

閉塞状態を解除するRDエリア名を指定します。

ALL

マスタディレクトリ用RDエリアを除くすべてのRDエリアの閉塞解除をします。ただし，-qオプション指定時は，同じ世代のRDエリアを対象とします。

＜規則＞

バックアップ閉塞中でないマスタディレクトリ用RDエリアは指定できません。

ユーザ用RDエリア又はユーザLOB用RDエリアを指定する場合は，データディクショナリ用RDエリアが次のどちらかの状態でなければなりません。

オープン状態，かつ閉塞解除状態

オープン状態，かつpdholdコマンドによる閉塞状態

インナレプリカ機能を使用している場合，オリジナルRDエリア名及びレプリカRDエリア名も指定できます。ただし，この場合，指定できるのはユーザ用RDエリア及びユーザLOB用RDエリアだけです。

(b)　-q 世代番号　〜＜符号なし整数＞((0〜10))

レプリカRDエリアの世代番号を指定します。

このオプションを指定した場合，-rオプションにはオリジナルRDエリア名を指定してください。この場合，レプリカがすべて削除されたオリジナルRDエリア，又は通常のRDエリア（レプリカRDエリアがないRDエリア）を指定したときはエラーとなります。

(c)　-o

閉塞状態を解除した後，RDエリアをオープンします。省略した場合，RDエリアの閉塞解除だけをします。

(d)　-W実行監視時間　〜＜符号なし整数＞((0〜3600))

pdrelsコマンドの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(5)　規則

pdrelsコマンドは，HiRDBが稼働中のときだけ実行できます。

pdrelsコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdrelsコマンドは，RDエリアに対してモードPRで排他制御をします（更新可能バックアップ閉塞の解除時を除く）。そのため，指定したRDエリアにほかの更新系トランザクションがアクセスしている場合は，そのトランザクションの終了までpdrelsコマンドは待ち状態となります。

同期化閉塞したRDエリアのデータは，更新バッファが破棄されるため，RDエリアの内容は不整合となり，RDエリアには不整合情報が書き込まれます。同期化閉塞後は，整合性のあるほかのレプリカRDエリアのデータを，同期化閉塞したRDエリアへ複写する必要があります。不整合情報が書き込まれているRDエリアは，閉塞解除できません。

共用RDエリアに対してpdrelsコマンドを実行した場合，全バックエンドサーバに排他を掛けます。このため，該当するRDエリアへのアクセスを複数同時に実行している場合，グローバルデッドロックが発生し，タイムアウトする可能性があります。グローバルデッドロックが発生した場合，再度pdrelsコマンドを実行してください。

(6)　注意事項

pdrelsコマンドの結果は，pddblsコマンドで確認できます。

更新可能バックアップ閉塞（WAITモード）中に，更新バッファの内容がRDエリアに反映された場合，閉塞解除するときに警告メッセージ（KFPH00157-W）が出力されます。

pdrelsコマンドのリターンコードと基本的な対処方法を次に示します。

0，1以外の場合，一部のRDエリアが閉塞解除していないことがあります。その状態では業務を継続できないおそれがあるため，再度pdrelsコマンドで閉塞解除してください。

0：正常終了

1：警告終了

更新可能バックアップ閉塞（WAITモード）時に，更新バッファの内容がRDエリアに反映されました。閉塞解除処理は正常終了しています。

4：警告終了

一部のRDエリアの処理がエラー終了しました。

8：異常終了

一部のRDエリアの処理がエラー終了していることがあります。

12：異常終了

エラーメッセージを表示できない事象が発生しました。

一部のRDエリアの処理がエラー終了していることがあります。シングルサーバ又はディクショナリサーバがあるホストのsyslogfile中のエラーメッセージを参照して，エラーの要因を取り除いた後，再度コマンドを実行してください。syslogfile中にエラーメッセージが出力されていない場合は保守員に連絡してください。

障害閉塞したRDエリアを回復していない場合，又は同期化閉塞したRDエリアのデータが置き換えられていない場合，閉塞解除はできません。ただし，書き込み時の入出力エラー，ログレスモードのUAP，及びログレスモードのユティリティによる障害閉塞は解除できます。

データ未完状態の改竄防止表が格納されているRDエリアがコマンド閉塞している場合，そのRDエリアの閉塞解除はできません。この場合，データ未完状態の改竄防止表に対してpdrorgの表へのリロードを実行すると，データ未完状態は解除されます。解除された後に，閉塞解除をしてください。

pdrelsコマンドでは，RDエリアのオンライン再編成閉塞の解除はできません。

リアルタイムSANレプリケーションの処理方式にハイブリッドを選択している場合，pdrelsコマンドを実行して障害閉塞しているRDエリアの閉塞解除を行うと，リモートサイトへのデータベース同期待ち合わせをします。このため，-rオプションで指定したRDエリア一つにつき，2秒以上のオーバヘッドが掛かることがあります。リモートサイトへのデータベース同期待ち合わせに失敗した場合，リモートサイトのデータベースを回復する必要があります。リアルタイムSANレプリケーションを使用した場合の障害発生時の運用については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

2.108　pdrisechk（リアルタイムSANレプリケーションの構成確認）

2.108.1　pdrisechkの形式と規則

(1)　機能

リアルタイムSANレプリケーションを適用するために必要なシステム定義の内容と，HiRDBファイルに対応したペア論理ボリュームグループのペア属性，ペアステータス，及びフェンスレベルの整合性をチェックします。

なお，このコマンドを実行する前に，RAID Managerが稼働中であるかどうかを確認してください。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdrisechk 〔-d ｛all｜db｜sys｝〕 〔｛-u ユニット識別子｜-s サーバ名｝〕 〔-l〔-n〕〕 〔-r〕

(4)　オプション

(a)　-d ｛all｜db｜sys｝

チェックするファイルの区分を指定します。

all：RDエリア及びシステムファイル

db：RDエリア

sys：システムファイル

(b)　-u ユニット識別子　〜＜識別子＞((4文字))

チェックするユニットのユニット識別子を指定します。-u，及び-sオプションを共に省略した場合，HiRDB全体をチェック対象とします。

(c)　-s サーバ名　〜＜識別子＞((1〜8))

チェックするサーバのサーバ名を指定します。

(d)　-l

ログ同期方式の場合に，ログ適用サイトのシステム構成が正しいかどうかをチェックします。

(e)　-n

副ステータスファイルの状態をチェックしない場合に指定します。-nオプションは，-lオプションを指定している場合に指定できます。

(f)　-r

ログ同期方式の場合に，ペア論理ボリュームグループに対してシステムログ適用化を実行できるシステム構成かどうかをチェックします。

(5)　規則

pdrisechkコマンドは，HiRDBの稼働に関係なく実行できます。

pdrisechkコマンドは，$PDCONFPATH/pdsysのHORCMINSTオペランドに指定したRAID Managerのインスタンスが，pdrisechkコマンドを実行したサイトですべて稼働中の場合に実行できます。

pdrisechkコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdrisechkコマンドは，$PDCONFPATH下のシステム定義ファイルの内容をチェックします。

なお，$PDCONFPATHは，ユニット制御情報定義ファイルのPDCONFPATHオペランドに指定した値です（指定がない場合は$PDDIR/conf）。

pdrisechkコマンドは，システム共通定義のHORCMINSTに指定したRAID Managerのインスタンスに問い合わせます。システム共通定義にHORCMINSTオペランドを指定しないでpdrisechkコマンドを実行した場合，環境変数HORCMINSTの値をRAID Managerのインスタンス番号と仮定して動作します。

全同期方式，ハイブリッド方式，及びログ同期方式の場合の，チェック対象となるファイル区分と-dオプションの関係について次の表に示します。なお，全非同期方式の場合は，-dオプションの指定値に関係なくすべてのファイル区分について構成を確認します。

表2‒27　チェック対象となるファイル区分と-dオプションの関係

ファイル区分

対象となるペア論理ボリュームグループ名

-dオプションの指定値

all又は省略

sys

db

DB

aaaa_bb....bb_DB

○

×

○

LOG

aaaa_bb....bb_LOG

○

○

×

SPD

aaaa_bb....bb_SPD

○

○

×

USTS

aaaa_cccc_USTS

○

○

×

SSTS

aaaa_bb....bb_SSTS

○

○

×

（凡例）

aaaa：HiRDB識別子

bb....bb：サーバ名

cccc：ユニット識別子

○：チェックします。

×：チェックしません。

pdrisechkコマンドのチェック項目とリアルタイムSANレプリケーションの処理方式との関係を次の表に示します。

表2‒28　pdrisechkコマンドのチェック項目とリアルタイムSANレプリケーションの処理方式との関係

項番

チェック項目

リアルタイムSANレプリケーションの処理方式

全同期方式

全非同期方式

ハイブリッド方式

ログ同期方式

1

リアルタイムSANレプリケーションを使用する場合に必要なオペランドを指定しているか

○

○

2

付加PPについて，リアルタイムSANレプリケーションを使用するときにセットアップが必要な付加PPをセットアップしているか

×

○

3

サイト状態が次に示す状態であるか

-lオプション指定時：

「ログ適用」又は「準備」

-lオプション省略時：

「業務」又は「準備」

×

○※1

4

更新コピーが必要なペア論理ボリュームグループがすべてそろっているか

○

○

5

項番4のペア論理ボリュームグループのボリューム属性について，pdrisechkコマンドを実行したサイト側が，表「pdrisechkコマンドがチェックするボリューム属性一覧（-lオプションあり）」，及び表「pdrisechkコマンドがチェックするボリューム属性一覧（-lオプションなし）」に示すボリューム属性か

○

○

6

項番4のペア論理ボリュームグループのペアステータスについて，pdrisechkコマンドを実行したサイト側が，表「pdrisechkコマンドがチェックするペアステータス一覧」に示すペアステータスか

○

○

7

項番4のペア論理ボリュームグループのフェンスレベルについて，表「pdrisechkコマンドがチェックするフェンスレベル一覧」に示すフェンスレベルか

○

○

8

すべての副ステータスファイルが初期状態になっていないか

×

○※2

（凡例）

○：チェックします。

×：チェックしません。

注※1

系切り替え機能を適用したHiRDBで，予備系でpdrisechkコマンドを実行した場合，サイト状態を特定できないため，サイト状態はチェックされません。KFPS04692-Wメッセージが表示され，処理が続行されます。

注※2

チェック対象となるペア論理ボリュームグループは，-d，-u，-sオプションの指定によって決まります。

表2‒29　pdrisechkコマンドがチェックするボリューム属性一覧（-lオプションあり）

ペア論理ボリュームグループ名

リアルタイムSANレプリケーションの処理方式

全同期方式，又はハイブリッド方式

全非同期方式

ログ同期方式

-rオプションあり

-rオプションなし

aaaa_bb....bb_DB

S-VOL

−

S-VOL

SMPL

aaaa_bb....bb_LOG

S-VOL

aaaa_bb....bb_SPD

aaaa_cccc_USTS

aaaa_bb....bb_SSTS

aaaa_ALL

−

S-VOL

−

−

（凡例）

aaaa：HiRDB識別子

bb....bb：サーバ名

cccc：ユニット識別子

−：該当しません。

表2‒30　pdrisechkコマンドがチェックするボリューム属性一覧（-lオプションなし）

ペア論理ボリュームグループ名

リアルタイムSANレプリケーションの処理方式

全同期方式，又はハイブリッド方式

全非同期方式

ログ同期方式

-rオプションあり

-rオプションなし

aaaa_bb....bb_DB

P-VOL

−

P-VOL

SMPL

aaaa_bb....bb_LOG

P-VOL

aaaa_bb....bb_SPD

aaaa_cccc_USTS

aaaa_bb....bb_SSTS

aaaa_ALL

−

P-VOL

−

−

（凡例）

aaaa：HiRDB識別子

bb....bb：サーバ名

cccc：ユニット識別子

−：該当しません。

表2‒31　pdrisechkコマンドがチェックするペアステータス一覧

ペア論理ボリュームグループ名

リアルタイムSANレプリケーションの処理方式

全同期方式，又はハイブリッド方式

全非同期方式

ログ同期方式

-rオプションあり

-rオプションなし

aaaa_bb....bb_DB

PAIR

−

PAIR

−

aaaa_bb....bb_LOG

PAIR

aaaa_bb....bb_SPD

aaaa_cccc_USTS

aaaa_bb....bb_SSTS

aaaa_ALL

−

PAIR

−

−

（凡例）

aaaa：HiRDB識別子

bb....bb：サーバ名

cccc：ユニット識別子

−：該当しません。

表2‒32　pdrisechkコマンドがチェックするフェンスレベル一覧

ペア論理ボリュームグループ名

リアルタイムSANレプリケーションの処理方式※

全同期方式

ハイブリッド方式

ログ同期方式

保護モード＝data

保護モード＝never

保護モード＝data

保護モード＝never

保護モード＝data

保護モード＝never

-rオプションあり

-rオプションなし

-rオプションあり

-rオプションなし

aaaa_bb....bb_DB

data

never

async

async

data

−

never

−

aaaa_bb....bb_LOG

data

data

data

never

aaaa_bb....bb_SPD

aaaa_cccc_USTS

aaaa_bb....bb_SSTS

（凡例）

aaaa：HiRDB識別子

bb....bb：サーバ名

cccc：ユニット識別子

−：該当しません。

注※

全非同期方式の場合は，aaaa_ALLに対して，asncとなります。

副ステータスファイルは初期状態かどうかチェックされます。チェックの有無は，リアルタイムSANレプリケーションの処理方式，及びオプションの指定の有無によって異なります。副ステータスファイルの初期状態をチェックする条件を次の表に示します。

表2‒33　副ステータスファイルの初期状態をチェックする条件

リアルタイムSANレプリケーションの処理方式

オプションの指定

副ステータスファイルのチェック

-d

-l

-r又は-n

-s

ユニット用副ステータスファイル

サーバ用副ステータスファイル

ログ同期方式

ALL，SYS，又は指定なし

指定あり

指定あり

−

×

×

指定なし

指定なし

○

○

指定あり

×

○

指定なし

−

−

×

×

DB

−

−

−

ログ同期方式以外

−

−

−

−

（凡例）

○：チェックしません。

×：チェックします。

−：該当しません。

(6)　注意事項

pdrisechkコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了となります。8の場合は，その前に出力されているメッセージを参照してエラー要因を取り除いてください。

pdrisechkコマンドの結果は，KFPS05815-Iメッセージで表示されます。

pdrisechkコマンドは，KFPS05815-Iメッセージで表示されるコマンド終了コード（end code）がOKになるまで，出力されたエラーメッセージに従って対策し，再実行してください。

検知したエラーによっては，検知時点でチェックを中止します。出力されたエラーメッセージに対して適切な対策をして，再度コマンドを実行した場合でも，新たなエラーメッセージを出力することがあります。

系切り替え機能を適用したHiRDBの場合，pdrisechkコマンドは，常に現用系のシステム定義を基にリアルタイムSANレプリケーションの構成確認をします。したがって，ユニット及びサーバが現用系以外で稼働している状態で，pdrisechkコマンドを実行したときの実行結果は保証できません。HiRDBが稼働中の場合は，すべてのユニット及びサーバが，現用系で稼働しているときにpdrisechkコマンドを実行してください。

チェック対象にフロータブルサーバが含まれる場合，KFPS01896-E及びKFPS04680-Eを出力することがありますが，無視してください。フロータブルサーバに対応するペア論理ボリュームグループについてだけチェックをしたい場合は，-dオプションにsysを指定してください。

ログ同期方式以外で-rオプションを指定した場合，及びログ同期方式でログ適用状態以外で-rオプションを指定した場合はエラーになります。システムログ適用化については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

2.109　pdrisedbto（リアルタイムSANレプリケーションのデータベース引き継ぎ）

2.109.1　pdrisedbtoの形式と規則

(1)　機能

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，ログ適用サイトを終了して業務サイトからデータベースを引き継ぎます。

なお，このコマンドはログ同期方式のリアルタイムSANレプリケーションを適用している環境で実行できます。リアルタイムSANレプリケーションの詳細については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdrisedbto 〔-f〕

(4)　オプション

(a)　-f

HiRDB/パラレルサーバで，一部のユニットが停止している場合でも，残りのユニットだけでデータベース引き継ぎをするときに指定します。

このオプションを省略した場合，すべてのユニットが稼働しているときは，データベース引き継ぎをします。一部のユニットが停止しているときは，データベース引き継ぎをしません。

(5)　規則

pdrisedbtoコマンドは，HiRDBが稼働中のときだけ実行できます。

pdrisedbtoコマンドは，ログ適用サイトのシングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

データベース引き継ぎが完了するまで，pdrisedbtoコマンドは終了しません。データベースの引き継ぎの状態は，pdls -d risコマンドで確認してください。

pdrisedbtoコマンドが終了すると，HiRDBが終了します。

(6)　注意事項

データベース引き継ぎの途中に，何らかの原因（マシンダウンなど）でシステムマネジャ以外の一部のユニットが異常終了した場合，pdstart -lコマンドで再開始した後にpdrisedbtoコマンドを実行すると，異常終了したユニットのデータベース引き継ぎを継続できます。

-fオプションを指定して，一部のユニットが停止している状態でデータベース引き継ぎをした場合，停止していたユニットについては，データベース引き継ぎがされていない状態となります。

この状態のまま業務サイトとしてHiRDBを再開始すると，データベース引き継ぎがされていないユニットのRDエリアを再作成する必要があります。停止していたユニットのデータベース引き継ぎをする場合は，ログ適用サイトとしてHiRDBを再開始してください。

データベースの引き継ぎ中は，pdstop -lコマンドを使用してもログ適用サイトは停止できません。

pdrisedbtoコマンドによってデータベース引き継ぎが完了した後に，HiRDBを開始するときの開始モードは，pdrisedbtoコマンド実行前に業務サイトとして稼働していたサイトのHiRDBの終了モードに従って，HiRDBが決定します。

pdrisedbtoコマンドを実行すると，ユニットがアボートコードPolkcrtで異常終了することがあります。この場合，サイト切り替え方式ごとの運用手順に従って対策してください。対策の詳細については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

(7)　出力結果

各ユニットでデータベース引き継ぎの処理が正常に終了すると，ユニットごとにKFPS04686-Iメッセージが出力されます。また，コマンドの実行結果は，KFPS04691-Iメッセージに表示されます。

2.110　pdriseset（リアルタイムSANレプリケーションのサイト状態の設定）

2.110.1　pdrisesetの形式と規則

(1)　機能

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，コマンド実行側のサイト状態の設定，解除，又は表示をします。

なお，このコマンドはログ同期方式のリアルタイムSANレプリケーションを適用している環境で実行できます。詳細については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdriseset 〔｛-P｜-S｜-D｝〕 〔-f〕

(4)　オプション

(a)　-P

サイト状態を「業務」にします。

(b)　-S

サイト状態を「ログ適用」にします。

(c)　-D

サイト状態を「初期」にします。

(d)　-f

HiRDB管理者への問い合わせメッセージを出力しないで，サイト状態を変更します。

(5)　規則

pdrisesetコマンドは，オプションを指定する場合，HiRDBが停止中のときだけ実行できます。オプションを指定しない場合は，HiRDBの稼働，停止に関係なく実行できます。

pdrisesetコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

オプション指定を省略した場合，サイト状態がKFPS04687-Iメッセージに表示されます。

-fオプションを指定した場合，状態の変更を確認するKFPS04690-Qメッセージが出力されないで，-Pオプション，-Sオプション，又は-Dオプションに従いサイト状態が変更されます。

(6)　注意事項

通常業務用と災害対策用のHiRDB環境は独立して稼働しているため，誤って両方のサイトを業務サイト又はログ適用サイトに設定した場合，リアルタイムSANレプリケーションは正しく動作しません。誤って設定した状態でHiRDBを開始すると，環境設定が破壊され，再構築が必要となるおそれがあります。

ユニット制御情報定義のpd_hostnameオペランドに標準ホスト名（系切り替えを適用した環境では，現用ホストの標準ホスト名）を指定していない場合，pdrisesetコマンドは正しく動作しないおそれがあります。

系切り替え機能使用時，予備系ホストでは-Pオプション又は-Sオプションを指定できません。指定した場合，KFPS05813-Eメッセージが出力されます。

2.111　pdrpause（プロセスサーバプロセスの再起動）

2.111.1　pdrpauseの形式と規則

(1)　機能

KFPS00715-Eメッセージが出力されて，システムの開始処理又は再開始処理が中断されていた場合に，中断されていたプロセスサーバプロセスを再起動します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdrpause

(4)　オプション

なし。

(5)　規則

pdrpauseコマンドは，HiRDBが停止している場合で，かつKFPS00715-Eメッセージで出力された要因コードに対する障害を取り除いた状態で実行してください。

pdrpauseコマンドは，各サーバマシンで実行してください（KFPS00715-Eメッセージの付加情報にあるユニットで実行してください）。

pdrpauseコマンドは，前回使用していたOSのリソースを再利用します。

システム定義のpd_mode_confオペランドにAUTOを指定している場合にpdrpauseコマンドを実行すると，HiRDBが自動的に開始されます。

(6)　注意事項

pdrpauseコマンド実行時のリターンコードは，0の場合は正常終了，8の場合は異常終了（オプション指定不正，rsh失敗など）となります。

2.112　pdrplstart（HiRDB Datareplicator連携の開始）

2.112.1　pdrplstartの形式と規則

(1)　機能

HiRDB Datareplicator連携を開始します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdrplstart

(4)　オプション

なし。

(5)　規則

pdrplstartコマンドは，HiRDBシステム内のすべてのユニット，及びすべてのサーバが稼働中のときだけ実行できます。例えば，HiRDB/パラレルサーバの場合で，一部のユニット又はサーバが停止しているときや，停止処理中のときは実行できません。ただし，停止中のユニットが縮退起動によって開始していないユニットだけの場合は，pdrplstartコマンドは実行できます。

pdrplstartコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdrplstartコマンドを実行する場合は，環境変数PDDIRにHiRDB運用ディレクトリ名が設定されている必要があります。設定されていない場合は，コマンドエラーになったときに原因を示すメッセージが出力されません。

HiRDB Datareplicator連携を実行しているときに，再度pdrplstartコマンドを入力するとエラーになります。

pdrplstartコマンドを実行した後，コマンド処理中の間はpdrplstartコマンド，pdrplstopコマンド，及びpdstopコマンド（-f，-zオプションは除く）は実行しないでください。

データベース更新中にpdrplstartコマンドを実行すると，意図したタイミングでの更新データの反映ができないことがあります。pdrplstartコマンドは，すべてのトランザクションが終了してから実行してください。また，pdrplstartコマンドが終了するまでの間，新しいトランザクションは実行しないでください。

(6)　注意事項

pdrplstartコマンドの結果は，コマンド実行時のリターンコード，又はエラーメッセージの有無で確認できます。コマンド実行時のリターンコードが0の場合は正常終了，8の場合は異常終了です。

pdrplstartコマンドを実行しているときに通信障害が発生すると，一部のユニットがHiRDB Datareplicator連携を開始したままの状態となり，コマンド実行時のリターンコードが8で異常終了することがあります。このような場合には，pdrplstop -fコマンドを実行して，すべてのユニットのHiRDB Datareplicator連携の停止を確認してから，再度pdrplstartコマンドを実行してください。

pdrplstartコマンドを実行するときには，抽出側と反映側のデータべースの整合性が保たれていなければなりません。整合性が保たれていない状態でHiRDB Datareplicator連携を開始した場合，反映側のデータべースの内容は保証できません。

pdrplstartコマンドを入力してから，コマンドの処理が終了するまでは，pdrplstartコマンド及びpdrplstopコマンドを入力しないでください。

HiRDB Datareplicatorとの連動ができない状態でpdrplstartコマンドを実行すると，データ連動を開始できないユニットが，アボートコードPsjiz09で異常終了することがあります。そのため，HiRDB Datareplicatorとの連動ができない状態では，pdrplstartコマンドを実行しないでください。

2.113　pdrplstop（HiRDB Datareplicator連携の終了）

2.113.1　pdrplstopの形式と規則

(1)　機能

HiRDB Datareplicator連携を終了します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdrplstop 〔-f〕

(4)　オプション

(a)　-f

HiRDB Datareplicatorのシステムログの抽出状況に関係なく，HiRDB Datareplicator連携を強制終了する場合に指定します。停止中のユニットがある場合でも，HiRDB Datareplicator連携を終了します。

(5)　規則

pdrplstopコマンドは，HiRDBが稼働中のときだけ実行できます。

pdrplstopコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdrplstopコマンドを実行する場合には，環境変数PDDIRにHiRDB運用ディレクトリ名が設定されている必要があります。設定されていない場合は，コマンドエラーになったときに原因を示すメッセージが出力されません。

オプションなしのpdrplstopコマンドを実行する場合，HiRDB Datareplicatorでシステムログの抽出が完了しているときにHiRDB Datareplicator連携を終了します。停止中のユニットがある場合はエラーとなります。ただし，停止中のユニットが，縮退起動によって開始されていないユニットだけの場合は，稼働中のユニットのHiRDB Datareplicator連携を終了します。縮退起動によって開始されていないユニットは，次回ユニットを開始したときにシステムログの抽出が完了するのを待って，HiRDB Datareplicator連携を終了します。

抽出側HiRDBがHiRDB/パラレルサーバの場合にpdrplstop -fコマンドを実行するときは，システムマネジャがあるユニットが稼働中であれば，ほかのユニットが停止中でも実行できます。この場合，pdrplstop -fコマンドの実行時に停止していたユニットは，次回ユニットを開始したときにHiRDB Datareplicator連携を中止した状態になります。

HiRDB Datareplicator連携を実行していないときに，pdrplstopコマンドを入力するとエラーになります。

pdrplstopコマンドを実行してHiRDB Datareplicatorとの連携を終了すると，抽出未完了状態のシステムログファイルは抽出完了状態に変わります。

(6)　注意事項

pdrplstopコマンドの結果は，コマンド実行時のリターンコード，又はエラーメッセージの有無で確認できます。コマンド実行時のリターンコードを次に示します。

リターンコード

終了状態

内容

0

正常終了

-fオプションなしの場合

HiRDB Datareplicator連携を終了しました。

-fオプションありの場合

HiRDB Datareplicator連携の終了を指示しました。

4

異常終了

次のどちらかの理由でHiRDB Datareplicator連携を終了できませんでした。

一部のユニットが停止中です（縮退起動によって開始されていないユニットは除く）。

HiRDB Datareplicator連携で未抽出ログがあります。

8

異常終了

何らかの障害が発生したために，HiRDB Datareplicator連携を終了できませんでした。又は，pdrplstopコマンドを実行できない状態のときにpdrplstopコマンドを実行しました。

pdrplstopコマンドでは，HiRDB Datareplicator連携対象のHiRDBサーバにトランザクションがあるかどうかを確認しません。そのため，トランザクションがないことを確認してからpdrplstopコマンドを実行してください。

pdrplstopコマンドの実行処理中，又は終了後に，抽出側DBで更新をした場合，抽出側DBと反映側DBとの間に不整合が発生します。また，pdrplstop -fコマンドを実行した場合，すべてのトランザクションが終了していないとき，又は抽出側DBで未抽出ログがあるときには，抽出側DBと反映側DBとの間に不整合が発生します。

抽出側DBと反映側DBとの間に不整合が発生した場合，pdrplstopコマンドを実行し，HiRDB Datareplicator連携を終了してください。pdls -d rplコマンドですべてのユニットのHiRDB Datareplicator連携が終了したことを確認してから，HiRDB Datareplicator連携を再開始する前に，反映側DBを再作成してください。反映側DBを再作成する運用手順については，マニュアル「HiRDBデータ連動機能 HiRDB Datareplicator」を参照してください。

pdrplstopコマンドを入力してから，コマンドの処理が終了するまでは，pdrplstartコマンド，pdrplstopコマンド，及びpdstopコマンドを入力しないでください。

複数のユニットで構成されているHiRDB/パラレルサーバでは，pdrplstop -fコマンドが正常終了していても，すべてのユニットのHiRDB Datareplicator連携が停止しているとは限りません。そのため，pdrplstopコマンドが正常終了した後は，pdlsコマンド（-d rpl）ですべてのユニットのHiRDB Datareplicator連携が停止したことを確認してください。

HiRDBシステム定義の誤りなどの理由で，HiRDB Datareplicator連携を実行しているのにデータ連動の対象となるデータべースがないという場合でも，いったん開始したHiRDB Datareplicator連携を中止するときには，必ずpdrplstopコマンドを実行してください。

HiRDB Datareplicator連携を再開することを前提にpdrplstopコマンドを実行する場合，HiRDB Datareplicator連携停止中に抽出側DBの更新はしないでください。更新すると，DB間の不整合が発生します。ただし，DBに論理的な更新を伴わないデータベースの再編成は，HiRDB Datareplicator連携停止中に実行してもDB間の不整合にはなりません。

pdrplstopコマンド実行時の条件と実行可否を次に示します。DB間に不整合が発生した場合は，反映側DBを再作成する必要があります。

pdrplstopコマンド実行時の条件

実行可否

シングルサーバ又はシステムマネジャがあるユニットの状態

稼働中のバックエンドサーバに未抽出ログがあるか

停止中のバックエンドサーバがあるか

停止中のバックエンドサーバがすべて縮退起動によって開始されていないユニットにあるか

-fなし

-fあり

稼働中

ない

ない

−

○※3

○※3

ある

ある

○※1※3

△※2

ない

×

△※2

ある

−

−

×

△

停止中

−

−

−

×

×

（凡例）

−：該当しません（条件がHiRDBの処理に影響を与えません）。

○：不整合を発生させないで実行できます。

△：実行できますが，未抽出システムログがあると不整合が発生します。

×：実行できません（不整合も発生しません）。

注※１

縮退起動によって開始していないユニットは，次回開始時に未抽出システムログの抽出を待ってからHiRDB Datareplicator連携を終了します。

注※２

開始していないユニットは，次回開始時に未抽出システムログの抽出を待たないでHiRDB Datareplicator連携を終了します。

注※３

pdrplstopコマンドの実行処理中，又は終了後に，抽出側DBで更新をした場合，不整合が発生します。

2.114　pdsetenv（HiRDBユニットの環境設定）

2.114.1　pdsetenvの形式と規則

(1)　機能

HiRDBユニットの環境を設定します。

(2)　実行者

スーパユーザが実行できます。

(3)　形式

　pdsetenv -v ｛recom｜v0904｝

(4)　オプション

(a)　-v ｛recom｜v0904｝

HiRDBではバージョンごとにシステム定義オペランドの省略値を変更しています。このオプションにオペランド省略時動作を指定します。

recom：推奨モード

v0904：0904互換モード

HiRDBシステム内のすべてのユニットで，同じ値を指定してユニットごとに実行してください。

(5)　規則

pdsetenvコマンドは，HiRDBが停止中のときだけ実行できます。

pdsetenvコマンドは，各サーバマシンで実行してください。

HiRDB運用コマンドの実行に必要な環境変数PDDIR，PDCONFPATH，LD_LIBRARY_PATH（AIXではLIBPATH），PATHに，pdsetenvコマンドの設定対象とするHiRDB運用ディレクトリのものを指定してから，pdsetenvコマンドを実行してください。

(6)　注意事項

pdsetenvコマンドのリターンコードを次に示します。

0：正常終了

8：異常終了

pdsetenvコマンドは，HiRDBをセットアップした直後，又はHiRDBを正常終了した後のオフライン状態で実行してください。正常終了していない場合，HiRDBの起動に失敗することがあります。

pdsetenvコマンドとHiRDBのコマンドを同時に実行しないでください。

pdsetenvコマンドは，pdsetupコマンドのオプションで指定するHiRDBユニットの環境設定をコマンドで変更するためのものです。通常はpdsetupコマンドにオプションを指定して，HiRDBユニットの環境を設定してください。

2.115　pdsetup（HiRDBシステムのOSへの登録・削除）

2.115.1　pdsetupの形式と規則

(1)　機能

HiRDBシステムの一部がOSとともに開始又は終了するように，HiRDB運用ディレクトリ下のHiRDBシステムをOSに登録します。また，インストールされたHiRDBのロードモジュールを，指定したHiRDB運用ディレクトリに複写します。

(2)　実行者

スーパユーザが実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　/opt/HiRDB_S/bin/pdsetup

　　　〔｛ -d 〔-f〕｜〔-c 文字コード種別〕〔-v ｛recom｜v0904｝〕〔-S〕〔-I〕｝〕

　　　HiRDB運用ディレクトリ

(b)　HiRDB/パラレルサーバの場合

　/opt/HiRDB_P/bin/pdsetup

　　　〔｛ -d 〔-f〕｜〔-c 文字コード種別〕〔-v ｛recom｜v0904｝〕〔-S〕〔-I〕｝〕

　　　HiRDB運用ディレクトリ

(4)　オプション

(a)　-d

HiRDB運用ディレクトリ下のHiRDBシステムをOSから削除する場合に指定します。登録する場合は，このオプションを省略してください。

-dオプションを指定した場合，次のメッセージが表示され，HiRDBの実行に必要なファイルを削除するかどうかを問い合わせます。

KFPS00036-Q Specify whether to delete files necessary for execution from specified HiRDB home directory ?
[y:Yes , n:No]

yを応答した場合，HiRDBの実行に必要なファイル及びディレクトリを削除します。その場合，次回pdsetupコマンドを実行したときに，実行に必要なファイルをインストールディレクトリからコピーします。

nを応答した場合は，ファイル及びディレクトリは削除しません。

次のような場合にはyを応答してください。

現在運用しているHiRDBを，インストールしたHiRDBに入れ替える場合（HiRDBをバージョンアップする場合はpdstopコマンドで正常停止する必要があります）

HiRDB管理者のIDを変更する場合

HiRDB運用ディレクトリ下のファイル，ディレクトリのオーナー，又はファイルモードを誤って変更したり，削除してしまった場合

＜規則＞

-dオプション指定時，テキストビジーなどの原因でOSからのHiRDB運用ディレクトリの削除に失敗することがあります。その場合は，削除に失敗したファイル及びディレクトリを，OSのrmコマンドで削除してください。

-dオプションを指定してyを応答した場合，HiRDB運用ディレクトリ下にHiRDBが作成したファイルが大量にあると，コマンドの実行に時間が掛かることがあります。その場合，あらかじめOSのrmコマンドか，pdcspool -d 0で不要なファイルを削除しておいてください。

HiRDB運用ディレクトリを削除する場合，Java仮想マシンを使用しているUAPを停止してください。停止しないでHiRDB運用ディレクトリを削除した場合，HiRDB運用ディレクトリが完全に削除されないことがあります。この場合，OSのrmコマンドで削除してください。

HiRDBシステムをOSから削除すると，HiRDBシステム内にあるすべての共用メモリが解放されます。

ほかのHiRDBが使用していない場合，必要に応じて，/dev下のHiRDB/pthディレクトリを削除してください。Linuxの場合，/etc/udev/devices下，又は/lib/udev/devices下にHiRDB/pthディレクトリがあるときは削除してください。

(b)　-f

-dオプションを指定したときだけ組み合わせて指定できます。HiRDB稼働中又は異常終了途中でも，強制的にHiRDBをOSから登録，削除します。このオプションを指定した場合，処理中のHiRDBは即時中断されます。また，HiRDBディレクトリ下のロードモジュールは削除しません。

なお，このオプションは，pdstop -fコマンドが受け付けられないときだけ指定してください。通常は，pdstopコマンドでHiRDBを停止した後，pdsetup -dコマンドを実行してください。-fオプションを指定した場合，HiRDBのプロセスの幾つかが残ることがあります。その場合は，OSのpsコマンドで残ったプロセスを調査し，killコマンドで消してください。そうしないと，次回のpdsetup実行時，HiRDBを起動できなくなることがあります。

(c)　-c　文字コード種別

　　　〜《Linux以外の場合：sjis》

　　　〜《Linuxの場合：ujis》

HiRDBシステムで使用する各国文字データの文字コード種別を指定します。

sjis：シフトJIS漢字コード

chinese：EUC中国語漢字コード

chinese-gb18030：中国語漢字コード（GB18030）

ujis：EUC日本語漢字コード

utf-8：Unicode（UTF-8）

ISO/IEC 10646の規格では，1文字当たり1〜4バイトの範囲に文字が割り当てられ，5，6バイトの範囲は将来の規格のために予約されています。HiRDBでは1文字当たり1〜6バイトの範囲まで使用できますが，文字が割り当てられていない5，6バイトの範囲を使用する場合，将来発生するおそれのある問題については保証できません。

utf-8_ivs：Unicode（IVS対応UTF-8）

ISO/IEC 10646では，文字が割り当てられているのは1文字1〜4，7及び8バイトの範囲です。5，6，9及び10バイトの範囲は将来の規格のために予約されており，文字が割り当てられていません。したがって，文字が割り当てられていない1文字5，6，9及び10バイトの範囲を使用した場合は，将来発生するかもしれない問題について保証できません。

lang-c：単一バイト文字コード

＜規則＞

次のすべての条件を満たす場合は，このオプションの指定に関係なく前回の文字コードが引き継がれます。

HiRDB運用ディレクトリとインストールディレクトリが異なる

前回のpdsetup -d コマンド実行時のKFPS00036-Qメッセージにnを応答した

文字コードの設定を変更したい場合，pdsetup -dで一度OSからHiRDB運用ディレクトリを削除してから，再度pdsetup -cを実行してください。なお，-cオプションと-dオプションは同時に指定できません。指定した場合には，-cオプションが無視されます。

HiRDB/パラレルサーバの場合，すべてのサーバで同一の文字コード種別を指定してください。

(d)　-v ｛recom｜v0904｝

HiRDBではバージョンごとにシステム定義オペランドの省略値を変更しています。このオプションにオペランド省略時動作を指定します。

recom：推奨モード

v0904：0904互換モード

＜規則＞

このオプションを省略した場合は，KFPS00073-Qメッセージが表示されます。メッセージに従ってオペランド省略時動作を選択してください。

次のすべての条件を満たす場合は，前回のオペランド省略時動作が引き継がれ，KFPS00073-Qメッセージは表示されません。

このオプションを省略している

HiRDB運用ディレクトリとインストールディレクトリが異なる

前回のpdsetup -d コマンド実行時のKFPS00036-Qメッセージにn応答した

オペランド省略時の動作は，HiRDBシステム内のすべてのユニットで同じ値を指定してください。

(e)　-S

コマンド実行権限変更機能を有効する場合に指定します。コマンド実行権限変更機能についてはマニュアル「HiRDB システム運用ガイド」を参照してください。

＜規則＞

次のすべての条件を満たす場合は，このオプションの指定有無に関係なく前回のコマンド実行権限変更機能の適用有無及びコマンドアクセスリストが引き継がれます。

・HiRDB運用ディレクトリとインストールディレクトリが異なる

・前回のpdsetup -d コマンド実行時のKFPS00036-Qメッセージにnを応答した

1.に示す条件以外の場合は，コマンドアクセスリストを削除します。HiRDBをバージョンアップする場合など，コマンドアクセスリストを引き継ぎたいときは，事前にコマンドアクセスリストのバックアップを取得し，バージョンアップ後にバックアップファイルからコマンドアクセスリストを回復してください。

(f)　-I

通信情報ファイルディレクトリ変更機能を有効にする場合に指定します。通信情報ファイルディレクトリ変更機能については，マニュアル「HiRDB システム運用ガイド」の「通信情報ファイルディレクトリの変更方法」を参照してください。

＜規則＞

前回のpdsetup -dコマンド実行時のKFPS00036-Qメッセージにnを応答した場合でも，前回の通信情報ファイルディレクトリ変更機能の適用有無に関わらず，通信情報ファイルディレクトリ変更機能を有効にする場合には-Iオプションを指定してください。

系切り替え構成の場合，現用系と予備系で通信情報ファイルディレクトリ変更機能の適用有無の指定を同一にしてください。

HiRDB/パラレルサーバでは，各ユニットの通信情報ファイルディレクトリ変更機能の適用有無の指定をすべて同一にしてください。

(5)　コマンド引数

(a)　HiRDB運用ディレクトリ　〜＜パス名＞

HiRDBを組み込むHiRDB運用ディレクトリを指定します。マルチHiRDBシステム作成時には，HiRDBシステムごとにこのコマンドを実行し，そこでHiRDB運用ディレクトリを指定します。

なお，シンボリックリンクしたHiRDB運用ディレクトリは指定しないでください。

(6)　規則

pdsetupコマンドは，HiRDBが停止中のときだけ実行できます。

pdsetupコマンドは，各サーバマシンで実行してください。

(7)　注意事項

pdsetupコマンドのリターンコードを次に示します。

0以外の場合，OSへの登録または削除処理が失敗しています。出力されたエラーメッセージを対処の上，再度pdsetupコマンドを実行してください。

0：正常終了

1：権限エラー，ファイル作成失敗，排他確保失敗など。

/etc/inittabに関する注意事項を次に示します。

プラットフォーム

注意事項

AIX

pdsetupコマンドを実行すると，pdsetupコマンドで指定したHiRDB運用ディレクトリを含む文字列を，登録時は/etc/inittabの最終行に追加し，削除時は/etc/inittabから削除します。そのため，OSから削除した後に再登録すると，登録順序が変わるおそれがあります。登録順序が変わった場合は，OS起動時のプロセス起動順序も変わるため，注意してください。

pdsetupコマンドの実行中は，エディタなどで/etc/inittabを編集しないでください。また，同じマシン内で複数のHiRDBに対するpdsetupコマンドやOpenTP1のdcsetupコマンドを同時に実行しないでください。これらを実行すると，/etc/inittabの内容が破壊されることがあります。内容が破壊された場合，$PDDIR/conf/Inittab下にinittabX（Xは1〜3の通番）という名称のバックアップ用のファイルが退避されているので，次の手順で回復してください。

スーパユーザでログインします。

$PDDIR/conf/Inittab下から復旧したいファイルを/etc/inittabにコピーします。

/etc/init qを実行します。

Linux（Linux 6）

pdsetupコマンドの結果は，/etc/init/以下にHiRDB運用ディレクトリ名/bin/pddの文字列を含むファイルがあるかどうかで確認できます。

Linux（Linux 7以降）

pdsetupコマンドの結果は，/usr/lib/systemd/system/以下にHiRDB運用ディレクトリ名/bin/pddの文字列を含むファイルがあるかどうかで確認できます。

バージョン07-03以降のHiRDBの場合，Java実行環境（JRE）が同梱されないため，pdsetupコマンド実行時にHiRDB運用ディレクトリ下にjreディレクトリが作成されません。そのため，Javaストアドルーチンを使用する場合は，JREを入手する必要があります。

HiRDBの文字コードを変更する場合，変更後にデータベース初期設定ユティリティを実行してデータベースを作り直す必要があります。ただし，次のケースについては作り直しの必要はありません。

IVS非対応UTF-8からIVS対応UTF-8へ変更

IVS対応UTF-8からIVS非対応UTF-8へ変更

なお，上記変更時は，ALTER ROUTINE ALLを実行し，関数，手続き，及びトリガのSQLオブジェクトを再作成してください。引数がすべて定数のスカラ関数を指定している関数，手続き，及びトリガの場合，SQLオブジェクトの再作成を行わないと，期待している結果を得られないことがあります。

また，システム共通定義のpd_substr_lengthオペランドの値も見直してください。pd_substr_lengthオペランドについては，マニュアル「HiRDB システム定義」を参照してください。

2.116　pdstart（HiRDBシステム・ユニット・サーバの開始）

2.116.1　pdstartの形式と規則

(1)　機能

HiRDBシステム，ユニット，又はサーバを開始します。また，再開始する場合もこのコマンドを実行します。

(2)　実行者

HiRDB管理者が実行できます。　

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdstart 〔｛-i｜-r〔 -t〕｜-l｜dbdestroy｝〕

(b)　HiRDB/パラレルサーバの場合

HiRDBシステムの開始

　pdstart 〔｛-i｜-r〔 -t〕｜-l｜dbdestroy｝〕

ユニットの開始

　pdstart ｛-x ホスト名｜-u ユニット識別子｝ 〔｛-r〔 -t〕｜-l｜dbdestroy｝〕

サーバの開始

　pdstart -s サーバ名

フロントエンドサーバのSUSPEND状態を解除する場合の開始

　pdstart -a〔-sフロントエンドサーバ名〕

各ユニットからのユニットの開始

　pdstart -q 〔｛-r〔 -t〕｜-l｝〕

1:1スタンバイレス型系切り替え機能使用時の代替部の開始（代替部を待機状態にする）

　pdstart -q -c

影響分散スタンバイレス型系切り替え機能使用時の起動先ユニットを指定したサーバの開始

　pdstart 〔｛-x ホスト名｜-u ユニット識別子｝〕 -s サーバ名

pdstart -rコマンドでHiRDB/パラレルサーバを開始した後，異常終了したシステムマネジャのユニットの強制的な開始

　pdstart -R 〔-t〕

(4)　オプション

(a)　｛-i｜-r〔 -t〕｜-l｜dbdestroy｝

HiRDBシステムの開始モードを指定します。省略した場合，前回の終了モードが正常終了であれば正常開始，前回の終了モードが強制終了，又は異常終了であれば再開始となります。再開始時には，データベースの回復処理をします。

-i：

データベース初期設定ユティリティ（pdinit）でデータベースの初期設定が終了している場合に，再度データベースを初期設定したいときに指定します。

-r：

データベース複写ユティリティ（pdcopy）でマスタディレクトリ用RDエリアのバックアップを取得する場合（-M x指定）に，指定します。また，マスタディレクトリ用RDエリアの障害などでHiRDBを開始できない場合，データベース回復ユティリティ（pdrstr）を実行するときに指定します。

-t：

データベース複写ユティリティ（pdcopy）又はデータベース回復ユティリティ（pdrstr）実行時に，系切り替え対象の共有リソースをあらかじめ活性化させる場合に指定します。HAモニタをクラスタソフトウェアとして使用し，サーバモードの系切り替え機能を適用している場合に指定できます。

なお，このオプションを指定する場合は，-rオプション，又は-Rオプションを同時に指定する必要があります。

-l：

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，ログ適用サイトのHiRDBを開始するときに指定します。

ログ適用サイトでは，業務サイトから送られてくるシステムログを入力して，ログ適用サイトのデータベースの内容を常に最新にするための動作だけをしています。そのため，ログ適用サイトでは，データベースへのアクセスができません。

＜規則＞

-lオプションは，ログ同期方式のリアルタイムSANレプリケーションを適用している場合に，ログ適用サイトから実行できます。業務サイトから実行した場合はエラーとなります。

-lオプションを指定してログ適用処理を実行している場合，系切り替え機能は使用できません。ログ適用処理中に障害が発生してHiRDBが異常終了した場合でも系切り替えをしません。

また，予備系では，-lオプションを指定してpdstartコマンドを実行できません。実行した場合はKFPS05813-Eメッセージが出力されます。

-lオプションを指定してログ適用処理を実行する場合，縮退起動，及び回復不要FESは使用できません。これは，一部のユニットが開始されない状態では，ログ適用サイトのHiRDBを開始できないためです。

ログ同期方式のリアルタイムSANレプリケーションを適用している複数ユニット構成のHiRDB/パラレルサーバの場合，システムマネジャのユニットにだけサイト状態を記憶するファイルが配置されます。システムマネジャ以外のユニットでは，システムマネジャのユニットからの指示によってサイト状態を決めています。

このため，ログ同期方式のリアルタイムSANレプリケーションを適用したHiRDB/パラレルサーバの場合で，システムマネジャ以外のユニットを業務サイトとして単独で開始する際には，-lオプションは指定しないでください。

なお，ログ適用サイトとして単独で開始する際には，必ず-lオプションを指定してください。

システムマネジャ以外のユニットを単独で開始する場合の，サイトの状態とpdstartコマンドのオプションの組み合わせを次に示します。

サイト状態

開始するユニット

pdstartコマンドのオプション

オプションの組み合わせ

-u又は-x

-q

-l

業務

システムマネジャ

○

×

×

組み合わせできる

○

×

○

組み合わせできない

システムマネジャ以外

×

○

×

組み合わせできる

×

○

○

組み合わせできない

ログ適用

システムマネジャ

○

×

×

組み合わせできない

○

×

○

組み合わせできる

システムマネジャ以外

×

○

×

組み合わせできない

×

○

○

組み合わせできる

（凡例）

○：指定あり。

×：指定なし。

dbdestroy：

再開始(pdstartオプション指定なし）でHiRDBが再開始できない場合に，強制開始するときに指定します。このオプション指定時は，すべてのRDエリア（システム用RDエリアも含まれます）を破壊しますので，注意してください。

(b)　｛-x ホスト名｜-u ユニット識別子｝ 〔-r〔 -t〕｜-l｜dbdestroy〕

ユニットを開始したい場合に指定します。

-x ホスト名　〜＜識別子＞((1〜32))

ユニットを開始する場合，開始するユニットがあるホストの名称を指定します。-iオプションとは同時に指定できません。

影響分散スタンバイレス型系切り替え機能を適用している場合，指定したホストのユニットにあるホストBESとゲストBESを開始します。クラスタソフトウェアで実行系と指示されたサーバは実行系として開始し，待機系と指示されたサーバは受け入れ可能状態として開始します。実行系として開始したサーバは，HAグループ内のほかのユニットから見ると，受け入れ可能状態となります。

-u ユニット識別子　〜＜識別子＞((4文字))

ユニットを開始する場合，開始するユニットのユニット識別子を指定します。ただし，システムマネジャがあるユニットのユニット識別子は指定できません。また，-iオプションとは同時に指定できません。

影響分散スタンバイレス型系切り替え機能を適用している場合，指定したユニットにあるホストBESとゲストBESを開始します。クラスタソフトウェアで実行系と指示されたサーバは実行系として開始し，待機系と指示されたサーバは受け入れ可能状態として開始します。実行系として開始したサーバは，HAグループ内のほかのユニットから見ると，受け入れ可能状態となります。

-r〔 -t〕，-l，及びdbdestroyについては，｛-i｜-r〔 -t〕｜-l｜dbdestroy｝の説明を参照してください。

(c)　-s サーバ名　〜＜識別子＞((1〜8))

サーバを開始する場合，開始するサーバの名称を指定します。

影響分散スタンバイレス型系切り替え機能を適用している場合の注意事項：

-uオプションを指定していない場合，HAグループ内の稼働中の全ユニットで，指定したサーバを開始します。ただし，実行系として開始するのは，クラスタソフトウェアで指示された1サーバだけであり，残りのサーバは受け入れ可能状態として開始します。

-uオプションを指定している場合，そのユニットの指定したサーバを開始します。クラスタソフトウェアで実行系と指示されたサーバは実行系として開始し，待機系と指示されたサーバは受け入れ可能状態として開始します。開始したサーバが実行系の場合，HAグループ内のほかのユニットから見ると，そのサーバは受け入れ可能状態となります。

影響分散スタンバイレス型系切り替え機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(d)　-a〔-sフロントエンドサーバ名〕

フロントエンドサーバのSUSPEND状態（データディクショナリ用RDエリアの回復待ちや，ディクショナリサーバの起動待ちなどの状態）の原因を取り除いた後に，フロントエンドサーバを起動するときに指定します。-sの指定の有無に関係なく，障害が発生したすべてのフロントエンドサーバが起動されます。

(e)　-q 〔｛-r〔 -t〕｜-l｝〕

HiRDB/パラレルサーバでユニットを開始する場合に指定します。また，スタンバイ型系切り替え機能を適用している場合で，待機ユニットを開始する場合に指定します。

-qオプションを指定する場合，開始したいユニットに対応するホスト（システム共通定義のpdunitの-x又は-cオペランドに指定したホスト）に直接ログインして実行します。

-qオプションを指定した場合，システム定義のpd_reduced_check_timeオペランドの値（省略時は20分）までに，すべてのユニットを開始する必要があります。ユニットが開始できない場合，HiRDBの開始処理は中止されます。

-r〔 -t〕，及び-lについては，｛-i｜-r〔 -t〕｜-l｜dbdestroy｝の説明を参照してください。

(f)　-q -c

1:1スタンバイレス型系切り替え機能を使用する場合，代替部を待機状態にするときに指定します。次の場合に指定してください。

クラスタソフトのコマンドで計画系切り替えを実行した場合，代替部は停止状態になります。この場合，障害発生に備えるために，pdstart -q -cコマンドで代替部を待機状態にします。

正規BESユニットをpdstop -uコマンドなどで停止して，対応する代替BESユニットの代替部が連動停止した後，再度正規BESユニットをpdstart -qコマンドで開始した場合，代替部は停止状態になります。この場合，障害発生に備えるために，pdstart -q -cコマンドで代替部を待機状態にします。

pdstart -q -cコマンドを実行する場合，待機状態にする代替部のホスト（システム定義のpdunitオペランドの-xに指定したホスト）に，直接ログインして実行してください。

(g)　-R 〔-t〕

pdstart -rコマンドでHiRDB/パラレルサーバを開始した後，システムマネジャのユニットに障害が発生して異常終了した場合に使用します。このオプションを使用してHiRDB/パラレルサーバを回復する場合の対処については，マニュアル「HiRDB システム運用ガイド」の「pdstart -rコマンドで開始した場合に障害が発生したときの対処」を参照してください。

-tについては｛-i｜-r〔 -t〕｜-l｜dbdestroy｝の説明を参照してください。

pdstart -Rコマンドを実行すると，HiRDBはシステムマネジャのユニットをいったん強制的に開始し，コマンド実行時に稼働していたすべてのユニットを強制終了します。pdstart -Rコマンドを実行した場合，システム構成と各ユニットの状態によってHiRDBの動作が異なります。システム構成と各ユニットの状態ごとのHiRDBの動作とリターンコードを次に示します。

システム構成

ユニットの状態

HiRDBの動作

pdstartのリターンコード

種別

ユニット数

システムマネジャ

システムマネジャ以外

HiRDB/シングルサーバ

−

−

−

pdstartコマンドはエラー終了します（KFPS05005-Iメッセージを出力します）。

8

HiRDB/パラレルサーバ

1

−

−

pdstartコマンドはエラー終了します（KFPS05813-EメッセージのONE_UNITを出力します）。

8

2以上

停止中

pdstart -rで稼働中

すべてのユニットが強制終了します。

0

pdstart -r以外で稼働中

システムマネジャ以外のユニットは稼働中のまま，KFPS05237-Eメッセージを出力します。

システムマネジャのユニットは強制終了します。

8

停止中

システムマネジャ以外のユニットは停止中のままです。

システムマネジャのユニットは強制終了します。

0

稼働中

−

pdstartコマンドは終了します（KFPS01853-WメッセージのNOT OFFLINEを出力します）。

8

（凡例）

−：関係しません。

(5)　規則

pdstartコマンドは，HiRDBシステムの開始の場合はHiRDBが停止中のときだけ実行でき，ユニット又はサーバの開始の場合はシステムマネジャが稼働中のときだけ実行できます。

pdstartコマンドは，シングルサーバ及びユティリティ専用ユニットがあるサーバマシン，又はシステムマネジャがあるサーバマシンで実行してください。

HiRDB/パラレルサーバでシステムマネジャが異常終了した場合，pdstartコマンド（オプション指定なし）で再開始してください。

-iオプションを指定した場合，データベース初期設定ユティリティ以外のユティリティ及び運用コマンドは，データベース初期設定ユティリティが正常終了しHiRDBシステムが開始処理完了の状態になった後に実行してください。HiRDBシステムは，データベース初期設定ユティリティの処理が終了する前に実行される，ほかのユティリティ及び運用コマンドのチェックはしません。実行した場合は，その後のHiRDBシステムの動作は保証されません。

-iオプションを実行する場合，全ユニットが停止していることを確認してください。pdstart -iコマンドを実行した際に，全ユニットが停止していないと，一部のユニットの起動を認識しないことがあります。pdls -d ustコマンドで各ユニットの稼働状態を確認し，ユニットが稼働している場合は，pdstop -zコマンドで停止してください。

1:1スタンバイレス型系切り替え機能を使用していて，代替部を待機状態にするpdstartコマンドの場合，-iオプションは指定できません。

-rオプションを指定した場合，データベース複写ユティリティ又はデータベース回復ユティリティを実行するだけのために，HiRDBシステム又はユニットを開始します。このため，-rオプション指定で開始した場合は，データベース複写ユティリティ，データベース回復ユティリティ，pdlsコマンド，及びpdstopコマンド以外は実行しないでください。実行した場合は，その後のHiRDBシステムの動作は保証されません。

dbdestroyオプションを指定する場合，前回のHiRDBの開始後又はpdcloseコマンド入力以降に更新したRDエリア（システム用RDエリアも含まれます）はすべて破壊されます。このオプションでHiRDBを強制開始する時には，データベース回復ユティリティで破壊されたRDエリアをすべて回復するか，又はすべてのデータベースを再作成する必要があります。dbdestroyオプションを指定して強制開始，及びRDエリアの回復する場合の手順については，マニュアル「HiRDB システム運用ガイド」を参照してください。

dbdestroyオプションを実行する場合，全ユニットが停止していることを確認してください。pdstart dbdestroyコマンドを実行した際に，全ユニットが停止していないと，一部のユニットの起動を認識しないことがあります。pdls -d ustコマンドで各ユニットの稼働状態を確認し，ユニットが稼働している場合は，pdstop -zコマンドで停止してください。

系切り替え機能を適用している場合に-rオプションを指定するときは，pdstartコマンド実行前に影響分散スタンバイレス型系切り替え機能を適用したユニット以外のユニットで，ディスクの活性化及びIPアドレスの起動をする必要があります。このとき，pdstartコマンドの-qオプションの指定によって，対処が異なります。

-qオプションを指定しない場合

ディスクの接続状態及びIPアドレスの稼働状態を確認し，現用系でディスクの活性化及びIPアドレスの起動をしてください。

-qオプションを指定する場合

ディスクの接続状態及びIPアドレスの稼働状態を確認し，pdstartコマンドを実行する系でディスクの活性化及びIPアドレスの起動をしてください。

HiRDB/パラレルサーバで，IPアドレスを引き継がない系切り替え機能を適用したユニットをpdstart -uコマンドで開始した場合，現用系ユニットが実行系として起動します。

予備系のユニットを実行系として開始する場合は，予備系ユニットで，pdstart -qコマンドを実行してください。

なお，HAモニタをクラスタソフトウェアとして使用する，サーバモードの系切り替え機能を適用しているユニットの場合，pdstart -qコマンドで予備系ユニットを開始したときは，実行サーバの起動待ち状態※になります。予備系ユニットを実行系として開始する場合は，HAモニタのmonactコマンドを実行してください。

注※

HAモニタのmonshowコマンドを実行して，*SBY*と表示される状態のことです。

系切り替え機能を適用している場合にpdstart -rコマンドを実行するときは，系切り替え対象のユニット（影響分散スタンバイレス型系切り替え機能を適用したユニットは除く）に対して，あらかじめディスクの活性化及びIPアドレスの起動をしてください。

なお，HAモニタをクラスタソフトウェアとして使用し，サーバモードの系切り替え機能を適用している場合にpdstart -r -tオプションを指定したときは，ここで説明する操作は必要ありません。

HiRDB/パラレルサーバの場合，全ユニットを現用系で開始するかどうかで，次のようにHiRDBの開始方法が変わります。なお，サーバマシン障害などで現用系が開始できない場合は，「一部又はすべてのユニットを予備系で開始する場合」でユニットごとに開始してください。

全ユニットを現用系で開始する場合

ディスクの接続状態を確認し，ディスクが現用系で活性化していない場合は，現用系でディスクの活性化をしてください。IPアドレスを引き継ぐ系切り替え機能を適用したユニットの場合は，現用系でIPアドレスが起動しているか確認し，IPアドレスが起動していないときは，現用系でIPアドレスを起動してください。すべての現用系でディスクの活性化及びIPアドレスの起動を確認した後，システムマネジャのあるユニットでpdstart -rコマンドを実行してください。

一部又はすべてのユニットを予備系で開始する場合

ディスクの接続状態を確認し，開始する系のディスクが活性化していない場合は，開始する系でディスクの活性化をしてください。IPアドレスを引き継ぐ系切り替え機能を適用したユニットの場合は，開始する系でIPアドレスが起動しているか確認し，IPアドレスが起動していないときは，開始する系でIPアドレスを起動してください。すべてのユニットでディスクの活性化及びIPアドレスの起動を確認した後，それぞれのユニットに対してpdstart -q -rコマンドを実行してください。

(6)　注意事項

pdstartコマンドのリターンコードを次に示します。

0：正常終了。

4：異常終了（タイムアウト）。

8：異常終了（オプション指定不正，又はHiRDB起動処理失敗）。

HiRDB開始処理の完了有無を確認する方法については，マニュアル「HiRDB システム運用ガイド」の「開始処理完了の確認」を参照してください。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，業務サイトでpdstartコマンドに-iオプション，rオプション，又はdbdestroyオプションのどれかを指定して実行したときは，システムログ適用化を実行してください。

pdstartコマンド実行時にKFPS01801-Eメッセージ(reason code=SETUP)が出力される場合の原因と対策を次に示します。

原因：

次に示す原因が考えられます。

・環境変数PDDIRに設定したHiRDB運用ディレクトリをpdsetupコマンドでOSに登録していません。

・カーネルのセマフォ不足によってプロセスサーバプロセスが起動できません。

対策：

次に示す対策をしてください。

・HiRDB運用ディレクトリをpdsetupコマンドで，OSに登録してください。

・システムで定義するセマフォの使用数を大きくしてください。OSをリブートしないとその値は有効にならないため注意してください。

参考：

この現象は，OSブート直後やinittabに登録されているほかのプログラムが応答待ちになっている場合にも発生することがあります。

2.117　pdstbegin（統計情報の出力開始）

2.117.1　pdstbeginの形式と規則

(1)　機能

ホスト名で指定したサーバマシンにあるユニットの統計情報を，統計ログファイルに出力します。統計情報の出力を停止したい場合は，pdstendコマンドを実行します。

統計情報は，各ホストのpdstj1，又はpdstj2という名称の統計ログファイルに出力されます。

出力した統計情報は，統計解析ユティリティの入力となります。統計解析ユティリティについては，「統計解析ユティリティ（pdstedit）」を参照してください。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdstbegin 〔-k 統計情報種別〔，統計情報種別〕…〕 〔-m システム稼働統計情報出力時間間隔〕

　　　　　　〔-I データベースの入出力統計情報出力時間間隔〕

　　　　　　〔-D 〔データベースの入出力統計情報オプション

　　　　　　　〔，データベースの入出力統計情報オプション〕〕〕

　　　　　　〔｛-a｜-s サーバ名〔，サーバ名〕…｝〕

　　　　　　〔-w〕

(b)　HiRDB/パラレルサーバの場合

　pdstbegin 〔-k 統計情報種別〔，統計情報種別〕…〕 〔-m システム稼働統計情報出力時間間隔〕

　　　　　　〔-I データベースの入出力統計情報出力時間間隔〕

　　　　　　〔-D 〔データベースの入出力統計情報オプション

　　　　　　　〔，データベースの入出力統計情報オプション〕〕〕

　　　　　　〔｛-x ホスト名｜-u ユニット識別子｝〕

　　　　　　〔｛-a｜-s サーバ名〔，サーバ名〕…｝〕

　　　　　　〔-w〕

(4)　オプション

(a)　-k 統計情報種別　〜《sys》

出力する統計情報の種別を指定します。

sys：

システムの稼働に関する統計情報

uap：

UAPに関する統計情報

sql：

SQLに関する統計情報

sqh：

SQL文の履歴に関する統計情報（発行された操作系SQL，定義系SQL，及びLOCK文とSQLに関する統計情報）

この統計情報は，SQLに関する統計情報出力が指定されている場合に出力されます。

buf：

グローバルバッファプールに関する統計情報

fil：

データベース操作に関するHiRDBファイルの統計情報

dfw：

デファードライト処理に関する統計情報

idx：

インデクスに関する統計情報

sop：

SQL静的最適化に関する統計情報

dop：

SQL動的最適化に関する統計情報

pcd：

SQLオブジェクト実行に関する統計情報

obj：

SQLオブジェクト転送に関する統計情報（HiRDB/パラレルサーバの場合だけ有効）

dio：

データベースの入出力に関する統計情報

all：

sqh，pcd，及びobjを除く上記すべての統計情報

(b)　-m システム稼働統計情報出力時間間隔　〜＜符号なし整数＞((1〜1440))《10》（単位：分）

システムの稼働に関する統計情報（-k sys指定）を統計ログファイルに出力する場合，情報を出力する時間間隔を分単位で指定します。

(c)　-I データベースの入出力統計情報出力時間間隔　〜＜符号なし整数＞((10〜3600))《60》（単位：秒）

データベースの入出力に関する統計情報（-k dio指定）を統計ログファイルに出力する場合，情報を出力する時間間隔を秒単位で指定します。

指定時間間隔でデータベースの入出力が1回も発生しなかった場合は，統計ログファイルを出力しません。

-k dioの指定がない場合は，このオプションを無視します。

データベースの入出力統計情報出力中にpdstbegin -Iコマンドを実行すると，コマンド実行時点を新たな時間間隔の開始時刻として設定します。情報を出力する時間間隔を次の図に示します。

図2‒14　-Iオプションで指定する時間間隔

統計情報出力時間間隔が短くなるに従って統計ログ出力量は増え，統計ログバッファのスワップ頻度が増すため，システム負荷が高くなります。このため，詳細な調査が必要な場合にだけ省略値より短い出力時間間隔へ変更し，情報取得後は変更前の値に戻してください。

(d)　-D 〔データベースの入出力統計情報オプション〔,データベースの入出力統計情報オプション〕〕

データベースの入出力に関する統計情報の計測動作を制御するオプションです。-k dioの指定がない場合は，このオプションを無視します。

このオプションでは，次の項目を制御できます。

入出力時間の計測頻度

統計情報の出力量

各項目に対応するオプション値指定有無による動作差異を次の表に示します。

表2‒34　入出力時間の計測頻度

指定値

動作

メリット

デメリット

指定なし

RDエリアを構成する各HiRDBファイルに発生した入力と出力に対して，それぞれ発生順に秒間100回の入出力時間を計測します。

性能影響を最小限に抑えられます。

RDエリアを構成する各HiRDBファイルに発生した入力と出力に対して，それぞれ秒間101回目以降については入出力時間を計測しません。

everyio

RDエリアを構成するHiRDBファイルに発生した入出力に対して，すべての入出力時間を計測します。

入出力情報を漏れなく取得できます。

入出力時間計測のオーバヘッドによって，トランザクション性能が劣化します。

everyio指定時は，トランザクション実行中のRDエリアに発生するすべての入出力の時間を計測するため，オーバヘッドが増加します。事前にテストをして，本番業務に性能上問題がないと判断した場合だけ指定してください。

表2‒35　統計情報の出力量

指定値

動作

メリット

デメリット

指定なし

出力時間間隔内にアクセスのあったRDエリアを構成するHiRDBファイルの入出力情報のうち，統計情報として取得する次の項目ごとに，それぞれのユニットで上位10ファイルの情報を統計ログに出力します。

・read最大回数

・read最大時間

・read合計時間

・write最大回数

・write最大時間

・write合計時間

同じファイルが複数の項目で出力対象となった場合，重複排除しないで出力します。

同順となるレコードが複数存在して10件を超える場合は，次の順序が早いものを優先します。

1.RDエリア定義順

2.HiRDBファイル指定順

1回の出力契機の統計ログサイズが固定であるため，ディスク消費量が少なく，統計ログバッファのスワップ処理多発による性能影響が少なくなります。

それぞれのユニットで上位10ファイルの情報しか出力しないため，RDエリアを構成するHiRDBファイルすべての入出力の情報は取得できません。

everyfile

出力時間間隔内にアクセスのあったRDエリアを構成するHiRDBファイルの入出力情報をすべて出力します。

すべてのRDエリア構成ファイルの入出力傾向を漏れなく出力できます。

1回の出力契機の統計ログサイズが固定でないため，ディスク消費量が多く，バッファのスワップ処理多発による性能への影響が大きくなります。

everyfile指定時は，1回の出力契機での統計ログの出力量が固定ではありません。システム共通定義のpd_stj_file_sizeオペランドには，マニュアル「HiRDB システム定義」の「統計ログファイル（pd_stj_file_size）の見積もり式」で見積もった値を指定してください。

システム共通定義のpd_stj_buff_sizeオペランドには，マニュアル「HiRDB システム定義」の「pd_stj_buff_sizeオペランド」で示す見積もり式で見積もった値を指定してください。

データベースの入出力に関する統計情報出力中に計測動作を変更する場合は，「pdstbegin -k dio」コマンドを-Dオプション指定で実行します。このとき，-Dオプションの各項目のうち，指定しない項目は省略時の動作になります。

なお，-Dオプションを省略した場合は，それまでの動作を引き継ぎます。

-Dオプション指定によって計測動作を変更する例を次の図に示します。

図2‒15　-Dオプションで指定する入出力統計情報の計測動作

〔説明〕

各区間の計測動作を次の表に示します。

表2‒36　各区間の計測動作

区間

各項目の動作

入出力時間の計測頻度

統計情報の出力量

A

指定なし

指定なし

B

everyio

指定なし

C

指定なし

everyfile

D

everyio

everyfile

E

everyio

everyfile

F

指定なし

指定なし

(e)　｛-x ホスト名｜-u ユニット識別子｝

統計情報を出力するホストのホスト名，又はユニットのユニット識別子を指定します。省略した場合，HiRDBシステム全体の統計情報を統計ログファイルに出力します。

-x ホスト名　〜＜識別子＞((1〜32))

統計情報を出力するホストのホスト名を指定します。なお，1:1スタンバイレス型系切り替え機能を使用している場合に代替中のときは，正規BESのホスト名，又は代替BESのホスト名のどちらを指定しても，両方のホストの統計情報出力を開始します。

-u ユニット識別子　〜＜識別子＞((4文字))

統計情報を出力するユニットのユニット識別子を指定します。なお，1:1スタンバイレス型系切り替え機能を使用している場合に代替中のときは，正規BESのユニット識別子，又は代替BESのユニット識別子のどちらを指定しても，両方のユニットの統計情報出力を開始します。

(f)　｛-a｜-s 〔サーバ名〔，サーバ名〕…〕｝　〜《-a》

どのサーバから統計情報を出力するかを指定します。省略した場合，サーバの種別によって出力する統計情報が異なります。出力する統計情報については，表「出力される統計情報と-sオプションとの関係（HiRDB/シングルサーバの場合）」又は表「出力される統計情報と-sオプションとの関係（HiRDB/パラレルサーバの場合）」を参照してください。

-a

システム全体及び全サーバの統計情報を出力します。-sオプションと同時に指定できません。

-s 〔サーバ名〔，サーバ名〕…〕　〜＜識別子＞((1〜8))

統計情報を出力するサーバの名称を指定します。-aオプションと同時に指定できません。なお，1:1スタンバイレス型系切り替え機能を使用している場合に代替中のときは，正規BES，又は代替BESのどちらを指定しても，両方のサーバの統計情報出力を開始します。

(g)　-w

統計情報にスレッド間ロック待ち時間の情報を取得する場合に指定します。スレッド間ロック待ち時間は，スレッド間ロック要求が待ち状態になってから，スレッド間ロックを取得するまでの時間です。

スレッド間ロック待ち時間の情報は，次の統計情報で取得できます。

システムの稼働に関する統計情報（sys）

UAPに関する統計情報（uap）

グローバルバッファプールに関する統計情報（buf）

スレッド間ロック待ち時間の情報を取得する場合は，システムの稼働に関する統計情報の取得が前提条件となります。そのため，システムの稼働に関する統計情報を取得していない場合は，システムの稼働に関する統計情報を取得してください。

より正確な情報を取得するために，このコマンドを実行する直前又は直後に，pdstjsyncコマンドを実行してください。詳細は，「pdstjsync（統計ログファイルへの統計ログバッファの反映）」を参照してください。

なお，スレッド間ロック待ち時間の統計情報の取得状況は，pdls -d stjコマンドを実行して確認してください。詳細は，「pdls【-d stj】（ユニット及びサーバごとの統計情報出力種別の指定有無の表示）」を参照してください。

統計情報種別ごとに，スレッド間ロック待ち時間の統計情報を取得できる条件を次に示します。

システムの稼働に関する統計情報（sys）

システムの稼働に関する統計情報とスレッド間ロック待ち時間の統計情報を取得できる区間を次の図に示します。

図2‒16　スレッド間ロック待ち時間の統計情報を取得できる区間（sys）

スレッド間ロック待ち時間の統計情報を正確に取得できるのは，t3〜t4の区間です。

UAPに関する統計情報（uap）

UAPに関する統計情報とスレッド間ロック待ち時間の統計情報を取得できる区間を次の図に示します。

図2‒17　スレッド間ロック待ち時間の統計情報を取得できる区間（uap）

pdstbegin -wコマンド実行後から，pdstend -wコマンドが実行されるまでの間に開始されたUAPのスレッド間ロック待ち時間の統計情報を取得できます。

グローバルバッファプールに関する統計情報（buf）

グローバルバッファプールに関する統計情報とスレッド間ロック待ち時間の統計情報を取得できる区間を次の図に示します。

図2‒18　スレッド間ロック待ち時間の統計情報を取得できる区間（buf）

pdstbegin -wコマンドを実行後，スレッド間ロック待ち時間の統計情報を正確に取得できるのは，直後のシンクポイントのS2から，pdstend -wコマンド実行直後のシンクポイントのS4までの区間です。また，トランザクションDの途中でpdstend -wコマンドが実行されていますが，トランザクションが決着するまでスレッド間ロックの待ち時間の統計情報を取得します。

ユニット内にスレッド間ロック待ち時間の統計情報を取得していないサーバがあると，システムの稼働に関する統計情報のユニットごとの編集結果は実際よりも小さい値が出力されます。そのため，システムの稼働に関する統計情報を取得するサーバを限定した場合は，サーバごとの編集結果から統計情報を評価してください。

(5)　規則

pdstbeginコマンドは，HiRDBが稼働中のときだけ実行できます。

pdstbeginコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

統計情報を出力している場合は，pdstendコマンドを実行しないと，HiRDBが停止するまで統計情報を出力し続けます。

出力される統計情報と-sオプションとの組み合わせによって，出力される統計情報が異なります。出力される統計情報と-sオプションとの関係（HiRDB/シングルサーバの場合）を表「出力される統計情報と-sオプションとの関係（HiRDB/シングルサーバの場合）」，（HiRDB/パラレルサーバの場合）を表「出力される統計情報と-sオプションとの関係（HiRDB/パラレルサーバの場合）」に示します。

表2‒37　出力される統計情報と-sオプションとの関係（HiRDB/シングルサーバの場合）

統計情報種別

-sオプションで指定したサーバ（シングルサーバ）

sys

○

uap

○

sql

○

sqh

○

buf

○

fil

○

dfw

○

idx

○

sop

○

dop

○

pcd

○

obj

×

dio

○

（凡例）

　○：統計情報を出力します。

　×：統計情報を出力しません。

表2‒38　出力される統計情報と-sオプションとの関係（HiRDB/パラレルサーバの場合）

統計情報種別

-sオプションで指定したサーバ

フロントエンドサーバ

ディクショナリサーバ

バックエンドサーバ

sys

○

○

○

uap

○

×

×

sql

○

×

×

sqh

○

×

×

buf

×

○

○

fil

×

○

○

dfw

×

○

○

idx

×

○

○

sop

○

×

×

dop

○

×

×

pcd

○

○

○

obj

×

○

○

dio

×

○

○

（凡例）

　○：統計情報を出力します。

　×：統計情報を出力しません。

次の場合，すべてのサーバのスレッド間ロックの待ち時間の統計情報の取得を開始します。

-aオプションを指定した場合

-sオプション及び-aオプションの指定を省略して，-wオプションを指定した場合

(6)　注意事項

pdstbeginコマンドの結果は，pdls -d stjコマンド，エラーメッセージの有無，及びコマンド実行時のリターンコードで確認できます。

コマンド実行時のリターンコードを次に示します。

0：正常終了

4：異常終了（一部ユニットの統計情報取得開始に失敗している）

一部のユニットで統計情報の出力を開始できていません。

その状態で業務を継続すると一部のユニットで統計情報が取得されません。

メッセージに従って対処した後，再度コマンドを実行してください。

8：異常終了（オプション指定不正，rsh失敗など）

統計情報の出力を開始できていません。

その状態で業務を継続すると統計情報が取得されません。

メッセージに従って対処した後，再度コマンドを実行してください。

pdstbeginコマンドは，コマンド名pdststartでも実行できます。

ユニット内のサーバがすべて停止している場合，ユニットの統計情報は取得されません。

HiRDB/パラレルサーバでシステムマネジャだけのユニット（同じユニットにフロントエンドサーバ，バックエンドサーバ，又はディクショナリサーバがない）の場合，このユニットの統計情報は取得されません。

影響分散スタンバイレス型系切り替え機能を適用したユニットで，ユニット内に実行系として稼働しているサーバが存在しない場合，このユニットの統計情報は取得されません。

サーバのsys（システムの稼働に関する統計情報）の取得を開始すると，ユニットのsysの取得も開始します。

HiRDBを終了し，再度開始した場合，統計情報の出力は引き継がれません。したがって，HiRDB開始後に統計情報を出力したい場合は，再度pdstbeginコマンドを実行してください。

サーバを一度終了すると，サーバの正常開始時には統計情報の出力は引き継がれません。一度終了したサーバの統計情報を出力したい場合は，サーバの正常開始後にpdstbeginコマンドを実行してください。

統計情報が出力中かどうかについては，pdls -d stjコマンドを実行してください。

UAPに関する統計情報は，pdstbeginコマンドの入力からpdstendコマンドの入力までに実行していたUAPについてだけ出力します。また，OLTP環境下で実行しているUAPでは，pdstbeginコマンドの実行からpdstendコマンドの実行までに実行したトランザクションについてだけ，UAPに関する統計情報を出力します。

SQLに関する統計情報は，pdstbeginコマンドの入力からpdstendコマンドの入力までに実行したSQLについてだけ出力されます。

UAPに関する統計情報とSQLに関する統計情報は，pdstbegin及びpdstendコマンドを入力するタイミングによっては情報が一致しない場合があります。出力される統計情報と，pdstbegin，pdstendコマンドの入力との関係を次の図に示します。

図2‒19　出力される統計情報と，pdstbegin，pdstendコマンドの入力との関係

各統計情報の出力契機を次に示します。

sys：

-mオプションに指定した時間間隔ごとに情報を出力します。

uap：

HiRDBへの接続時及びHiRDBからの切離し時に情報を出力します。

sql：

SQLの実行開始時及びSQLの実行終了時に情報を出力します。

sqh：

PREPARE時及び埋込み型SQL文の実行時に情報を出力します。

buf，fil，idx：

シンクポイント時に情報を出力します。

dfw：

シンクポイント時，及びデファードライトトリガ時に情報を出力します。

sop：

動的SQLの前処理時，及び静的SQLの前処理時に，SQLオブジェクトがSQLオブジェクト用バッファにヒットしなかった場合に情報を出力します。

dop：

FETCH文及びCLOSE文以外のSQL文を実行したときに情報を出力します。

pcd：

SQLオブジェクトの実行時に情報を出力します。

obj：

ディクショナリサーバ，及びバックエンドサーバでSQLオブジェクトの実行要求時に情報を出力します。

dio：

-Iオプションに指定した時間間隔（秒）ごとにデータベースへの入出力が発生した場合に情報を出力します。

次に示す統計情報は，シンクポイント時に取得され，シンクポイント間の情報が編集されます。このため，シンクポイントが2回以上発生しないと統計情報が取得されません。

グローバルバッファプールに関する統計情報

データベース操作に関するHiRDBファイルの統計情報

インデクスに関する統計情報

これらの統計情報を取得するためには，pdstbeginコマンド実行直後と，pdstendコマンド実行直前に，pdlogswapコマンドを実行してシンクポイントを発生させる必要があります。

SQL文の履歴に関する統計情報は，SQLに関する統計情報出力が指定されている場合に出力されます。

影響分散スタンバイレス型系切り替え機能を適用している場合，pdstbeginコマンド実行後で，かつpdstend実行前に再開始が発生すると，再開始後も再開始前と同じ統計情報が出力されます。また，pdstbeginコマンド実行後で，かつpdstend実行前に系切り替えが発生すると，障害が発生したユニットで実行系として稼働していたサーバについては，切り替え先の受け入れユニットでも切り替え前と同じ統計情報が出力されます。統計情報の出力を停止する場合は，pdstendコマンドを実行してください。

影響分散スタンバイレス型系切り替え機能を適用している場合，-x，又は-uオプションを指定するときは，系切り替えの前後でpdstbeginコマンドの実行対象が異なります。pdstbeginコマンドの実行対象は次のようになります。

サーバの種別

サーバの状態

実行対象

ホストBES

実行中

○

待機中

×

ゲストBES

実行中

○

受け入れ可能状態

×

（凡例）

○：実行できます。

×：実行できません。KFPS01882-Eメッセージを表示します。

影響分散スタンバイレス型系切り替え機能を適用している場合，-x，又は-uオプションと，-sオプションを同時に指定したときの注意事項を次に示します。

pdstbeginコマンド実行時点で，-x，又は-uオプションに指定したユニットの，-sオプションで指定したバックエンドサーバが稼働中の場合，統計情報の取得を開始します。

-sオプションで指定したバックエンドサーバが-x，又は-uオプションで指定したユニットで稼働していない場合，KFPS01882-Eメッセージを表示して，エラー終了します。

バックエンドサーバが稼働しているユニットをpdls -d svrコマンドで確認した後，pdstbeginコマンドを再実行してください。

pdstbegin -wコマンドで，スレッド間ロックの待ち時間の統計情報を取得すると，システム全体の性能に影響を与えるおそれがあります。そのため，通常は指定しないでください。

2.118　pdstend（統計情報の出力停止）

2.118.1　pdstendの形式と規則

(1)　機能

ホスト名（又はユニット識別子）で指定したサーバマシンにあるユニットの，指定した統計情報の出力を停止します。pdstendコマンドを実行しないと，HiRDBが停止するまで統計情報を出力し続けます。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdstend 〔-k 統計情報種別 〔,統計情報種別〕…〕

　　　　　　〔-a｜-s サーバ名 〔サーバ名〕…〕

　　　　　　〔-w〕

(b)　HiRDB/パラレルサーバの場合

　pdstend 〔-k 統計情報種別 〔,統計情報種別〕…〕

　　　　　　〔｛-x ホスト名｜-u ユニット識別子｝〕

　　　　　　〔-a｜-s サーバ名 〔サーバ名〕…〕

　　　　　　〔-w〕

(4)　オプション

(a)　-k 統計情報種別

出力を停止する統計情報の種別を指定します。このオプションを省略すると，すべての統計情報の出力を終了します。ただし，-wオプションを指定している場合は，スレッド間ロック待ち時間の統計情報だけ取得を停止します。

sys：

システムの稼働に関する統計情報

スレッド間ロック待ち時間を取得している場合は，スレッド間ロック待ち時間の統計情報の取得も停止します。

uap：

UAPに関する統計情報

sql：

SQLに関する統計情報

sqh：

SQL文の履歴に関する統計情報（発行された操作系SQL，定義系SQL，及びLOCK文とSQLに関する統計情報）

この統計情報は，SQLに関する統計情報出力が指定されている場合に出力されます。

buf：

グローバルバッファプールに関する統計情報

fil：

データベース操作に関するHiRDBファイルの統計情報

dfw：

デファードライト処理に関する統計情報

idx：

インデクスに関する統計情報

sop：

SQL静的最適化に関する統計情報

dop：

SQL動的最適化に関する統計情報

pcd：

SQLオブジェクト実行に関する統計情報

obj：

SQLオブジェクト転送に関する統計情報（HiRDB/パラレルサーバの場合だけ有効）

dio：

データベースの入出力に関する統計情報

all：

sqh，pcd，及びobjを除く上記すべての統計情報

(b)　｛-x ホスト名｜-u ユニット識別子｝

統計情報を出力するホストのホスト名，又はユニットのユニット識別子を指定します。省略した場合，HiRDBシステム全体の統計情報の出力を停止します。

-x ホスト名　〜＜識別子＞((1〜32))

統計情報を出力するホストのホスト名を指定します。なお，1:1スタンバイレス型系切り替え機能を使用している場合に代替中のときは，正規BESのホスト名，又は代替BESのホスト名のどちらを指定しても，両方のホストの統計情報出力を停止します。

-u ユニット識別子　〜＜識別子＞((4文字))

統計情報を出力するユニットのユニット識別子を指定します。なお，1:1スタンバイレス型系切り替え機能を使用している場合に代替中のときは，正規BESのユニット識別子，又は代替BESのユニット識別子のどちらを指定しても，両方のユニットの統計情報出力を停止します。

(c)　｛-a｜-s 〔サーバ名〔，サーバ名〕…〕｝〜《-a》

統計情報の出力を停止するサーバを指定します。省略した場合，-aが仮定されます。

-a

HiRDBシステム及び全サーバの統計情報の出力を停止します。-sオプションと同時に指定できません。

-s 〔サーバ名〔，サーバ名〕…〕　〜＜識別子＞((1〜8))

統計情報の出力を停止するサーバの名称を指定します。-aオプションと同時に指定できません。なお，1:1スタンバイレス型系切り替え機能を使用している場合に代替中のときは，正規BES，又は代替BESのどちらを指定しても，両方のサーバの統計情報出力を停止します。

(d)　-w

スレッド間ロック待ち時間の統計情報取得を停止します。-kオプションを省略し，-wオプションを指定した場合，スレッド間ロック待ち時間の統計情報の取得は停止しますが，システムの稼働に関する統計情報は取得され続けます。また，-kオプションにsys，若しくはallを指定するか，又は-kオプションを省略した場合，-wオプションの指定有無に関係なく，システムの稼働に関する統計情報の取得を停止し，スレッド間ロック待ち時間の統計情報の取得も停止します。

スレッド間ロック待ち時間の統計情報の取得状況は，pdls -d stjコマンドを実行して確認してください。システムの稼働に関する統計情報とスレッド間ロック待ち時間の統計情報を取得できる区間は，「pdstbegin（統計情報の出力開始） (4)オプション」を参照してください。

より正確な情報を取得するために，このコマンドを実行する直前又は直後に，pdstjsyncコマンドを実行してください。詳細は，「pdstjsync（統計ログファイルへの統計ログバッファの反映）」を参照してください。

(5)　規則

pdstendコマンドは，HiRDBが稼働中のときだけ実行できます。

pdstendコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

統計情報を出力している場合は，pdstendコマンドを実行しないと，HiRDBが停止するまで統計情報を出力し続けます。

スレッド間ロック待ち時間の統計情報の取得を停止する前に，統計情報の取得を停止する場合は，統計情報の取得停止に合わせてスレッド間ロック待ち時間の統計情報の取得を停止してください。

次に示す場合には，すべてのサーバのスレッド間ロック待ち時間の統計情報の取得を停止します。

-aオプションを指定した場合

-sオプション又は-aオプションを指定しないで，-wオプションを指定した場合

(6)　注意事項

pdstendコマンドの結果は，pdls -d stjコマンド，エラーメッセージの有無，及びコマンド実行時のリターンコードで確認できます。

コマンド実行時のリターンコードを次に示します。

0：正常終了

4：異常終了（一部ユニットの統計情報の出力停止に失敗している）

一部のユニットで統計情報の停止に失敗しており，統計情報の取得が継続していることがあります。

メッセージに従って対処したあと再度コマンドを実行してください。

8：異常終了（オプション指定不正，rsh失敗など）

統計情報の停止に失敗しています。

メッセージに従って対処した後，再度コマンドを実行してください。

サーバのsys（システムの稼働に関する統計情報）の取得をすべて停止すると，ユニットのsysの取得も停止します。

SQL文の履歴に関する統計情報は，SQLに関する統計情報出力が指定されている場合に出力されます。

影響分散スタンバイレス型系切り替え機能を適用している場合，pdstend実行後に再開始が発生すると，再開始後は統計情報が出力されません。また，pdstend実行後に系切り替えが発生すると，障害が発生したユニットで実行系として稼働していたサーバについては，切り替え先の受け入れユニットで統計情報は出力されません。統計情報の出力を再開する場合は，pdstbeginコマンドを実行してください。

影響分散スタンバイレス型系切り替え機能を適用している場合，-x，又は-uオプションを指定するときは，系切り替えの前後でpdstendコマンドの実行対象が異なります。pdstendコマンドの実行対象は次のようになります。

サーバの種別

サーバの状態

実行対象

ホストBES

実行中

○

待機中

×

ゲストBES

実行中

○

受け入れ可能状態

×

（凡例）

○：実行できます。

×：実行できません。KFPS01882-Eメッセージを表示します。

影響分散スタンバイレス型系切り替え機能を適用している場合，-x，又は-uオプションと，-sオプションを同時に指定したときの注意事項を次に示します。

pdstendコマンド実行時点で，-x，又は-uオプションに指定したユニットの，-sオプションで指定したバックエンドサーバが稼働中の場合，統計情報の出力を停止します。

-sオプションで指定したバックエンドサーバが-x，又は-uオプションで指定したユニットで稼働していない場合，KFPS01882-Eメッセージを表示して，エラー終了します。

バックエンドサーバが稼働しているユニットをpdls -d svrコマンドで確認した後，pdstendコマンドを再実行してください。

2.119　pdstjswap（統計ログファイルの切り替え）

2.119.1　pdstjswapの形式と規則

(1)　機能

統計ログファイルをスワップし，障害が発生した統計ログファイルの管理情報を回復します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

　pdstjswap 〔｛-x ホスト名｜-u ユニット識別子｝〕

(b)　HiRDB/パラレルサーバの場合

　pdstjswap ｛-x ホスト名｜-u ユニット識別子｝

(4)　オプション

(a)　-x ホスト名　〜＜識別子＞((1〜32))

統計ログファイルがあるユニットのホスト名を指定します。

(b)　-u ユニット識別子　〜＜識別子＞((4文字))

統計ログファイルがあるユニットのユニット識別子を指定します。

(5)　規則

pdstjswapコマンドは，HiRDBが稼働中のときだけ実行できます。

pdstjswapコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(6)　注意事項

pdstjswapコマンドのリターンコードを次に示します。

0：正常終了

8：異常終了（オプション指定不正，rsh失敗など）

pdstjswapコマンドを実行すると，1世代前の統計ログファイルが上書きされます。1世代前の統計ログファイルの情報が必要な場合は，pdstjswapコマンドを実行する前に統計ログファイルのバックアップを取得してください。

2.120　pdstjsync（統計ログファイルへの統計ログバッファの反映）

2.120.1　pdstjsyncの形式と規則

(1)　機能

統計ログバッファに保存されている統計情報（統計ログレコード）を統計ログファイルに出力します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdstjsync 〔-m〕

(4)　オプション

(a)　なし

統計ログバッファに保存されている統計情報を統計ログファイルに出力します。

また，現在取得中のシステムの稼働に関する統計情報，及びデータベースの入出力に関する統計情報を統計ログバッファに出力し，その延長で統計ログファイルに出力します。

(b)　-m

統計ログバッファに保存されている統計情報を統計ログファイルに出力します。

なお，現在取得中のシステムの稼働に関する統計情報，及びデータベースの入出力に関する統計情報は，統計ログバッファに出力されません。統計ログファイルにも出力されません。

オプション指定なしの場合と，-mオプションを指定した場合の処理の違いを次に示します。

統計情報の条件

HiRDBの処理

オプション指定なしの場合

-mオプションを指定した場合

統計ログバッファに保存されている統計情報の扱い

統計ログバッファに保存されている統計情報を統計ログファイルに出力します。

現在取得中のシステムの稼働に関する統計情報，及びデータベースの入出力に関する統計情報の扱い

現在取得中のシステムの稼働に関する統計情報，及びデータベースの入出力に関する統計情報を統計ログバッファに出力し，その延長で統計ログファイルに出力します。

現在取得中のシステムの稼働に関する統計情報，及びデータベースの入出力に関する統計情報は，統計ログバッファに出力されません。統計ログファイルにも出力されません。

通常，システムの稼働に関する統計情報は，pdstbeginコマンドの-mオプションに指定した間隔で統計ログバッファに出力されます。例えば，pdstbeginコマンドの-mオプションに60分を指定した場合，60分ごとにシステムの稼働に関する統計情報が統計ログバッファに出力されます。

オプション指定なしのpdstjsyncコマンドを実行すると，この間隔とは別にシステムの稼働に関する統計情報を統計ログバッファに出力し，その延長で統計ログファイルに出力します。

-mオプションを指定してpdstjsyncコマンドを実行すると，システムの稼働に関する統計情報は統計ログバッファに出力されないため，統計ログファイルにも出力されません。この場合，pdstbeginコマンドの-mオプションに指定した間隔で統計ログバッファに出力されます。

システムの稼働に関する統計情報の統計ログファイルへの出力の仕組みを次の図に示します。なお，この図では，pdstbeginコマンドの-mオプションに60分を指定したとしています。

図2‒20　システムの稼働に関する統計情報の統計ログファイルへの出力の仕組み

(5)　規則

pdstjsyncコマンドは，HiRDBが稼働中で，かつ統計情報取得中のときだけ実行できます。

pdstjsyncコマンドは，任意のサーバマシン（統計ログバッファの情報を統計ログファイルに出力したいユニットのサーバマシン）で実行してください。

システムの稼働に関する統計情報，又はデータベースの入出力に関する統計情報を取得中の場合，pdstjsyncコマンド実行時点のこれらの統計情報についても統計ログファイルに出力します。統計レコード出力タイミング，及び統計ログファイルへの出力タイミングを次の図に示します。

図2‒21　統計レコード出力タイミング，及び統計ログファイルへの出力タイミング

（凡例）

sys：システムの稼働に関する統計情報

dio：データベースの入出力に関する統計情報

uap：UAPに関する統計情報

obj：SQLオブジェクト転送に関する統計情報

［説明］

1.pdstbegin -mコマンドで指定した時間間隔ごとに，統計ログバッファに統計ログレコードを出力します。

2.pdstjsyncコマンド実行時に，統計ログバッファに統計ログレコードを出力します。ただし，-mオプションを指定した場合はこの処理を行いません。

3.pdstbegin -Iコマンドで指定した時間間隔ごとに，統計ログバッファに統計ログレコードを出力します。

4.pdstjsyncコマンド実行時に，統計ログバッファに統計ログレコードを出力します。ただし，-mオプションを指定した場合はこの処理を行いません。

5.HiRDBへの接続時，及びHiRDBからの切り離し時に，統計ログバッファに統計ログレコードを出力します。

6.SQLオブジェクトの実行要求時に，統計ログバッファに統計ログレコードを出力します。

7.統計ログバッファ満杯時に，統計ログバッファの情報を統計ログファイルに出力します。

8.統計情報取得の停止時（pdstendコマンド実行時）に，統計ログバッファの情報を統計ログファイルに出力します。

9.pdstopコマンド実行時（正常停止，及び計画停止）に，統計ログバッファの情報を統計ログファイルに出力します。

10.pdstjsyncコマンド実行時に，統計ログバッファの情報を統計ログファイルに出力します。

(6)　注意事項

システムの稼働に関する統計情報，及びデータベースの入出力に関する統計情報の取得中にpdstjsyncコマンド（オプション指定なし）を実行すると，統計ログファイルに出力する統計ログの量が増えます。そのため，システム定義のpd_stj_file_sizeオペランドの指定値を見積もる場合には，pdstjsyncコマンドの実行回数も考慮する必要があります。なお，システムの稼働に関する統計情報，及びデータベースの入出力に関する統計情報以外の統計情報については，統計ログの量が増えることはありません。

pdstjsyncコマンドを実行しても，pdsteditの統計情報の編集には影響ありません。

pdstjsyncコマンドのリターンコードは，0の場合は正常終了，8の場合は異常終了（オプション指定不正，又は統計情報未取得）となります。

2.121　pdstop（HiRDBシステム・ユニット・サーバの終了）

2.121.1　pdstopの形式と規則

(1)　機能

HiRDBシステム，ユニット，又はサーバを終了します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　正常終了

HiRDB/シングルサーバの場合

　pdstop 〔-d〕

HiRDB/パラレルサーバの場合

　pdstop 〔｛-x ホスト名｜-u ユニット識別子｜-s サーバ名

　　　　　　 ｜-u ユニット識別子 -s サーバ名｝〕 〔-d〕

(b)　計画停止

　pdstop -P 〔-d〕

(c)　強制終了

HiRDB/シングルサーバの場合

　pdstop -f 〔｛-d｜-q｝〕

HiRDB/パラレルサーバの場合

　pdstop ｛-f 〔｛-x ホスト名｜-u ユニット識別子｜-s サーバ名

　　　　　　　　 ｜-u ユニット識別子 -s サーバ名｝〔-d〕〕

　　　　　 ｜-z〔｛-d｜-q｜-c｜-s サーバ名｝〕｝

(d)　ログ適用サイトのHiRDBの終了

　pdstop -l 〔-d〕

(4)　オプション

(a)　-P

計画停止の場合に指定します。

計画停止と正常終了の違いを次に示します。

HiRDBへのCONNECT

トランザクション

正常終了

計画停止

なし

なし

○

○

あり

×

×

あり

なし

×

○

あり

×

×

（凡例）

○：実行できます。

×：実行できません。

(b)　-f

強制終了する場合に指定します。ただし，-sオプションと同時に指定している場合は，影響分散スタンバイレス型系切り替え機能を適用しているユニットに配置したバックエンドサーバ以外のサーバ名を指定すると，正常終了となります。

(c)　｛-x ホスト名｜-u ユニット識別子｜-s サーバ名｝

ユニット又はサーバを終了する場合に指定します。省略した場合，HiRDBシステムを終了します。

-x ホスト名　〜＜識別子＞((1〜32))

ユニットを終了する場合，終了するユニットがあるホストの名称を指定します。ただし，システムマネジャがあるユニットのホスト名は指定できません。

影響分散スタンバイレス型系切り替え機能を適用している場合，指定したホストのユニットにあるホストBESとゲストBESを終了します。終了したサーバが実行系の場合，HAグループ内のほかのユニットからの受け入れ可能状態が解除されます。

-u ユニット識別子　〜＜識別子＞((4文字))

ユニットを終了する場合，終了するユニットのユニット識別子を指定します。ただし，システムマネジャがあるユニットのユニット識別子は指定できません。

影響分散スタンバイレス型系切り替え機能を適用している場合，指定したユニットにあるホストBESとゲストBESを終了します。終了したサーバが実行系の場合，HAグループ内のほかのユニットからの受け入れ可能状態が解除されます。

-s サーバ名　〜＜識別子＞((1〜8))

サーバを終了する場合，終了するサーバの名称を指定します。

影響分散スタンバイレス型系切り替え機能を適用している場合：

-uオプションを指定していない場合，HAグループ内の稼働中の全ユニットで，指定したサーバを終了します。

-uオプションを指定している場合，そのユニットの指定したサーバを終了します。終了したサーバが実行系の場合，HAグループ内のほかのユニットからの受け入れ可能状態が解除されます。

影響分散スタンバイレス型系切り替え機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(d)　-ｚ

HiRDB/パラレルサーバで，システムマネジャが異常終了して再開始できないときに，システムマネジャ以外のユニットに直接ログインし，そのユニットを強制終了する場合に指定します。

HiRDBシステム開始中，又は正常終了中に，誤って-zオプションを指定したpdstopコマンドを実行した場合は，ユニットが異常終了したり，コマンドが実行されなかったりします。

影響分散スタンバイレス型系切り替え機能を適用している場合，-sオプションを指定すると，該当するユニットの指定したサーバを強制終了できます。

(e)　-d

終了と同時に共用メモリダンプを出力する場合に指定します。ただし，同時に-sオプションを指定した場合，このオプションの指定は無視されます。共用メモリダンプは，$PDDIR/spool/pdshmdump/shmdumpに出力します。

(f)　-q

系切り替え機能を使用している場合に強制終了するときに指定します。このオプションは，システム定義のpd_haオペランドにuseを指定していて，かつpd_ha_unitオペランドを省略している場合に指定してください。

(g)　-c

1:1スタンバイレス型系切り替え機能を使用している場合に，代替部を強制終了するときに指定します。次の場合に指定してください。

Hitachi HA Toolkit Extensionを使用している場合，代替中に系を戻すときに指定します（Hitachi HA Toolkit Extensionのtermcommandオペランドにpdstop -q -cコマンドを指定します）。

代替BESユニットを停止しないで，代替部だけを強制終了する場合に指定します。なお，代替中の場合は，システムマネジャがあるユニットから「pdstop -f -u 正規BESユニットのユニット識別子」又は「pdstop -f -x 正規BESユニットのホスト名」を実行しても，代替部を強制終了できます。

pdstop -q -cコマンドを実行する場合，強制終了する代替部のホスト（システム定義のpdunitオペランドの-xに指定したホスト）に，直接ログインして実行してください。

(h)　-l

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，ログ適用サイトのHiRDBを終了します。

＜規則＞

pdstop -lコマンドは，ログ適用サイトで実行できます。業務サイトで実行した場合はエラーとなります。

pdstop -lコマンドは，一部のユニットが停止している状態で実行するとエラーになります。

(5)　規則

pdstopコマンドは，HiRDBが稼働中のときだけ実行できます。

pdstopコマンドは，シングルサーバ，ユティリティ専用ユニットがあるサーバマシン，又はシステムマネジャがあるサーバマシンで実行してください。

pdstartコマンドに-rオプションを指定して開始した場合は，-xオプションでユニット単位に終了できません。この場合は，オプションを指定しないか，又は-fオプションを指定してHiRDBシステムを終了してください。

pdstartコマンドに-iオプションを指定して開始した場合，データベース初期設定ユティリティの処理の終了後であれば，-xオプションでユニット単位に終了できます。ただし，データベース初期設定ユティリティの処理の終了前の場合は，-xオプションでユニット単位に終了できません。この場合は，-fオプションを指定してHiRDBシステムを終了してください。

-zオプション指定時は，該当するユニットの強制停止だけをして，そのほかのオプションは無視されます。

pdstopコマンド，又はpdstop -PコマンドでHiRDBを停止している場合，pdstop -f -xホスト名，又はpdstop -f -uユニット識別子による強制終了はできません。

pdrplstart，及びpdrplstopコマンド実行中は，pdstopコマンド（-f，及び-zオプション指定は除く）は実行しないでください。

運用コマンド，又はユティリティを実行している場合，pdstopコマンドは正常終了できないことがあります。なお，pdstopコマンドでの計画停止及び強制終了はできます。

(6)　注意事項

pdstopコマンドのリターンコードを次に示します。

0：正常終了

4：異常終了（計画停止の通信タイムアウト）

ユティリティ，又はトランザクションが実行中のため，pdstopコマンドが異常終了しました。pdstopコマンドは異常終了しましたが，計画停止処理は継続しています。

ユティリティ，又はトランザクションの終了を待ち合わせるか，キャンセルしてください。

8：異常終了（オプション指定不正）

HiRDB停止処理の完了有無を確認する方法については，マニュアル「HiRDB システム運用ガイド」の「停止処理完了の確認」を参照してください。

HiRDB開始処理中，HiRDB終了処理中，又はトランザクション処理中にpdstopコマンド（-f指定）を実行すると，ユニットが異常終了することがあります。

システムマネジャの正常動作中に，システムマネジャ以外のユニットに-zオプション指定のpdstopコマンドが入力された場合，そのユニットが異常終了したことになります。

HiRDBがOLTPシステムと連携して動作している場合は，先にOLTP側を終了させてからHiRDBを終了してください。先にOLTP側を終了しないと，OLTP側のトランザクションが処理できないで，OLTPの正常終了又は計画停止とならない場合があります。

pdstop -Pコマンド実行後，ユティリティ実行中やトランザクション実行中のために15分経過しても計画停止処理が終了しない場合，計画停止処理に時間が掛かっていることを示すKFPS05072-Wメッセージが表示されます。その後，計画停止処理は続行されます。

システム定義のpd_log_auto_unload_pathオペランドを指定していて，かつ自動ログアンロード機能動作中にpdstopコマンドを実行した場合，すべてのシステムログファイルのアンロードが完了するまでHiRDBは停止できません。すぐにHiRDBを停止したい場合は，pdstopコマンド実行前にpdlogatul -tコマンドで自動ログアンロード機能を停止させてください。

pdstart -rコマンドでHiRDB/パラレルサーバを開始した後，システムマネジャのユニットに障害が発生して異常終了した場合，次のどちらかの方法で，一度すべてのシステムマネジャ以外のユニットを終了してください。

システムマネジャのユニットで，pdstart -Rコマンドを実行します。

すべての稼働中のシステムマネジャ以外のユニットでpdstop -zコマンドを実行します。

対処については，マニュアル「HiRDB システム運用ガイド」の「pdstart -rコマンドで開始した場合に障害が発生したときの対処」を参照してください。

システムの正常停止又は計画停止時に監査証跡表の自動データロード実行中だった場合，KFPS05719-Wメッセージを表示して，自動データロードが完了するのを待ちます※。

監査証跡表の自動データロード処理が完了すると，KFPS05720-Iメッセージを表示して，停止処理を継続します。早急にHiRDBを停止したい場合は，pdstopの前にpdaudatld -tコマンドを実行して，監査証跡表の自動データロード機能を停止してください。既に自動データロードが実行中の場合は，pdcancelコマンドでキャンセルしてください。

監査証跡表の自動データロード完了を待っている間に自動データロードがエラー終了した場合，KFPS05721-Wメッセージを表示してから，停止処理を継続します。

ユニットの正常停止時に監査証跡表の自動データロードが実行中だった場合，コマンドエラーになることがあります。監査証跡表を配置したBESがあるユニット，又は自動データロード中の監査証跡ファイルがあるユニットを正常停止しようとすると，KFPS05070-E又はKFPS05234-Eメッセージを表示します。確実にユニットを正常停止したい場合は，pdaudatld -tコマンドを実行して，監査証跡表の自動データロード機能を停止してからpdstopコマンドを実行してください。

サーバの正常停止時に監査証跡表の自動データロードが実行中だった場合，コマンドエラーになることがあります。監査証跡表を配置したBESを正常停止しようとすると，KFPS05071-E又はKFPS05235-Eメッセージを表示します。確実にBESを正常停止したい場合は，pdaudatld -tコマンドを実行して，監査証跡表の自動データロード機能を停止してからpdstopコマンドを実行してください。

インメモリRDエリアがある場合，HiRDBを正常終了又は計画停止できません。そのため，インメモリ化を解除した後に，HiRDBを正常終了又は計画停止してください。

なお，インメモリRDエリアがある場合でも強制終了はできますが，このとき，インメモリデータバッファ上の更新データはインメモリRDエリアに反映されません。

更新可能なオンライン再編成実行中は，pdstopコマンド（正常終了）は実行できません。実行してもコマンドエラーとなります。更新可能なオンライン再編成実行中にHiRDBを終了したい場合は，計画停止又は強制終了のpdstopコマンドを実行してください（pdstop -P又はpdstop -f）。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，ログ適用サイトのHiRDBは，pdstop -l又はpdstop -fコマンドで終了できます。

pdstopコマンドが強制終了した場合には，OSのsyslogfileにKFPS04671-Iメッセージが出力されているか確認してください。KFPS04671-Iメッセージが出力されている場合は，強制終了処理で異常が発生した後に，HiRDBが自動で後処理を行っていますので強制終了処理は完了しています。

注※

pdstopコマンドはシステム正常停止（オプションなし）のとき，UAP又はユティリティが15分以上動作し続けると停止処理を打ち切ります。また，システム計画停止（-Pオプション）のとき，トランザクション又はユティリティが15分以上動作し続けるとKFPS05072-Wメッセージを表示して警告終了します。しかし，監査証跡表の自動データロード完了を待つ場合の待ち時間はこの15分には含みません。

2.122　pdstscls（ステータスファイルのクローズ）

2.122.1　pdstsclsの形式と規則

(1)　機能

オープン状態のステータスファイルをクローズします。このコマンドでクローズできるファイルは，HiRDBシステム定義で定義したステータスファイルだけで，HiRDBが稼働中のときに有効です。現用のファイルはクローズできません。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

ユニット用ステータスファイル

　pdstscls 〔｛-x ホスト名｜-u ユニット識別子｝〕

　　　　　　｛-n 論理ファイル名｜-f 物理ファイル名｝

サーバ用ステータスファイル

　pdstscls -s サーバ名

　　　　　｛-n 論理ファイル名｜-f 物理ファイル名｝

(b)　HiRDB/パラレルサーバの場合

ユニット用ステータスファイル

　pdstscls ｛-x ホスト名｜-u ユニット識別子｝

　　　　　　｛-n 論理ファイル名｜-f 物理ファイル名｝

サーバ用ステータスファイル

　pdstscls -s サーバ名

　　　　　｛-n 論理ファイル名｜-f 物理ファイル名｝

(4)　オプション

(a)　｛-x ホスト名｜-u ユニット識別子｝

ユニット用ステータスファイルをクローズする場合，ユニット用ステータスファイルに対応するホストのホスト名，又はユニットのユニット識別子を指定します。HiRDB/シングルサーバの場合，自ホスト又は自ユニットに固定されているので省略できます。

-x ホスト名　〜＜識別子＞((1〜32))

ユニット用ステータスファイルに対応するホストのホスト名を指定します。

-u ユニット識別子　〜＜識別子＞((4文字))

ユニット用ステータスファイルに対応するユニットのユニット識別子を指定します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

サーバ用ステータスファイルをクローズする場合，サーバ用ステータスファイルに対応するサーバの名称を指定します。

(c)　-n 論理ファイル名　〜＜識別子＞((1〜8))

論理ファイルごとにステータスファイルをクローズする場合，クローズする論理ファイルの名称を指定します。指定した論理ファイルを構成するA系とB系のファイルを両方同時にクローズします。ただし，A系及びB系のファイルが，次の状態でないとクローズできません。

A系ファイル，B系ファイルのどちらかがBLOCKADE又はSTANDBY

A系ファイル，B系ファイルの両方ともBLOCKADE又はSTANDBY

(d)　-f 物理ファイル名　〜＜パス名＞((167文字以内))

物理ファイルごとにステータスファイルをクローズする場合，クローズする物理ファイルの名称を絶対パス名で指定します。物理ファイル名は，HiRDBファイルシステム領域名/HiRDBファイル名で指定してください。ステータスファイルに障害が発生した場合に，閉塞状態になった系のファイルではなく，STANDBY状態の系のファイルをクローズするときに指定します。

(5)　規則

pdstsclsコマンドは，HiRDBが稼働中のときだけ実行できます。

pdstsclsコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(6)　注意事項

pdstsclsコマンドのリターンコードを次に示します。

0：正常終了

8：異常終了（オプション指定不正，rsh失敗など）

pdstsclsコマンドの結果は，pdlsコマンド（-d sts指定）で確認できます。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，コマンドを実行したサイトによってクローズ対象のステータスファイルが異なります。

業務サイトの場合

正ステータスファイルをクローズ対象とします。副ステータスファイルに対してはクローズできません。

ログ適用サイトの場合

副ステータスファイルをクローズ対象とします。正ステータスファイルに対してはクローズできません。

2.123　pdstsinit（ステータスファイルの初期設定）

2.123.1　pdstsinitの形式と規則

(1)　機能

HiRDBファイルシステムにステータスファイル（論理ファイル）を構成する物理ファイルを作成し，稼働中のHiRDBで使用できるように初期設定をします。稼働中のHiRDBで使用している（現用又は予備の状態）ステータスファイルの初期設定はできません。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

ユニット用ステータスファイル

　pdstsinit 〔｛-x ホスト名｜-u ユニット識別子｝〕

　　　　　　　-f 物理ファイル名 〔-l レコード長〕 〔-c レコード数〕

サーバ用ステータスファイル

　pdstsinit -s サーバ名

　　　　　　-f 物理ファイル名 〔-l レコード長〕 〔-c レコード数〕

(b)　HiRDB/パラレルサーバの場合

ユニット用ステータスファイル

　pdstsinit ｛-x ホスト名｜-u ユニット識別子｝

　　　　　　　-f 物理ファイル名 〔-l レコード長〕 〔-c レコード数〕 〔-D〕

サーバ用ステータスファイル

　pdstsinit -s サーバ名 〔｛-x ホスト名｜-u ユニット識別子｝〕

　　　　　　-f 物理ファイル名 〔-l レコード長〕 〔-c レコード数〕 〔-D〕

(4)　オプション

(a)　｛-x ホスト名｜-u ユニット識別子｝

ユニット用ステータスファイルの初期設定をする場合，ユニット用ステータスファイルに対応するホストのホスト名，又はユニットのユニット識別子を指定します。HiRDB/シングルサーバの場合，自ホスト又は自ユニットに固定されているので省略できます。

-x ホスト名　〜＜識別子＞((1〜32))

ユニット用ステータスファイルの場合

ユニット用ステータスファイルに対応するホストのホスト名を指定します。

サーバ用ステータスファイルの場合

影響分散スタンバイレス型系切り替え機能を適用している場合，ファイル作成先となるディスクがあるホストのホスト名を指定します。このホストには，-sオプションで指定したサーバの移動先となる，HAグループにあるユニットがなければなりません。

-sオプションで指定したサーバ，及びシステムマネジャが稼働中の場合は，このオプションを指定しても無視されます。

影響分散スタンバイレス型系切り替え機能を適用していない場合，このオプションと-sオプションを同時に指定すると，このオプションに指定したホストと-sオプションに指定したサーバの現用系のホストが一致しているか，チェックをします。ホスト名が一致しない場合，エラーとなります。

-u ユニット識別子　〜＜識別子＞((4文字))

ユニット用ステータスファイルの場合

ユニット用ステータスファイルに対応するユニットのユニット識別子を指定します。

サーバ用ステータスファイルの場合

影響分散スタンバイレス型系切り替え機能を適用している場合，ファイル作成先となるディスクがあるホストのユニット識別子を指定します。このユニットは，-sオプションで指定したサーバの移動先となる，HAグループにあるユニットでなければなりません。

-sオプションで指定したサーバ，及びシステムマネジャが稼働中の場合は，このオプションを指定しても無視されます。

影響分散スタンバイレス型系切り替え機能を適用していない場合，このオプションと-sオプションを同時に指定すると，このオプションに指定したユニットの現用系のホストと，-sオプションに指定したサーバの現用系のホストが一致しているか，チェックをします。ホスト名が一致しない場合，エラーとなります。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

サーバ用ステータスファイルの初期設定をする場合，サーバ用ステータスファイルに対応するサーバの名称を指定します。

(c)　-f 物理ファイル名　〜＜パス名＞((167文字以内))

初期設定をする物理ファイルの名称を絶対パス名で指定します。物理ファイル名は，HiRDBファイルシステム領域名/HiRDBファイル名で指定してください。また，HiRDBファイル名にplで始まる名称は指定できません。既に初期設定している物理ファイル名を指定した場合は，再度初期設定されます。

(d)　-l レコード長　〜＜符号なし整数＞((1024〜32768))《4096》

ステータスファイルのレコード長をバイト単位で指定します。レコード長は，短いとステータスファイルの入出力回数は増加しますが，使用効率が良くなります。逆に，長いとステータスファイルの入出力回数は減少しますが，使用効率が悪くなります。これらの点を考慮して，レコード長を指定してください。

(e)　-c レコード数　〜＜符号なし整数＞((32〜2096107))《256》

ステータスファイルのレコード数を指定します。

レコード数の見積もりについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。なお，見積もったレコード数×1.2を目安にしてください。

(f)　-D

pdchgconfコマンドでユニットの追加，又はサーバの追加をする場合に指定します。

ユニットの追加，又はサーバの追加をする場合に必要となる，ステータスファイルの初期化をします。このオプションを指定した場合，ユニット識別子及びサーバ名のチェックはしません。

このオプションを指定してpdstsinitコマンドを実行する場合，作成するステータスファイルがあるユニットで実行してください。

(5)　規則

pdstsinitコマンドは，HiRDBの稼働に関係なく実行できます（ただし，HiRDB開始処理中及びHiRDB終了処理中は除きます）。

pdstsinitコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

一つの論理ファイルを構成するA系とB系の物理ファイルは，レコード長とレコード数が同じになるように初期設定をしてください。論理ファイルごとであれば，レコード数は同じでなくてもかまいません。ただし，レコード長はすべて同じにする必要があります。

ステータスファイルのレコード数はHiRDBシステムの構成に依存します。ステータスファイルのレコード数は，pdlsコマンド（-d sts指定）で確認できます。そのときにレコード使用率も表示されるので，レコード使用率を参考にしてレコード数を変更してください。例えば，レコード使用率が高くなった場合，現用のファイルよりレコード数の多いステータスファイルを予備のファイルとして初期設定をしておく方法などがあります。

(6)　注意事項

pdstsinitコマンドの結果は，コマンド実行時のリターンコード，又はエラーメッセージの有無で確認できます。コマンド実行時のリターンコードが0の場合は正常終了，8の場合は異常終了（オプション指定不正，rsh失敗など），12の場合は異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）です。

影響分散スタンバイレス型系切り替え機能を適用している場合の，-u，及び-sオプションの指定方法を次に示します。

初期設定対象

ユニット又はサーバの状態

ファイル作成先のディスクがあるホスト

-u，及び-sオプションの指定方法

ユニット用ステータスファイル

稼働中

ユニットがあるホスト

どちらか一方を指定します。

停止中

サーバ用ステータスファイル

稼働中

実行系バックエンドサーバがあるホスト

省略できます。

停止中

現用系バックエンドサーバがあるホスト

上記以外のホスト

どちらか一方を指定します。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，正ステータスファイル及び副ステータスファイルのどちらも指定できます。ただし，ステータスファイルを作成するボリュームを書き込み可能にしておく必要があります。

また，ログ適用サイトのHiRDBを初期構築する場合，pdstsinitコマンドで副ステータスファイルを作成する必要はありません。システムログ適用化によって初期設定をします。

(7)　使用例

ユニット用ステータスファイル及びサーバ用ステータスファイルを作成します。

【HiRDB/シングルサーバの場合】

 pdstsinit -f /svr01/systs01a   ................1
           -c 512   ............................2
 pdstsinit -f /svr01/systs01b   ................1
           -c 512   ............................2
 pdstsinit -s sds1   ...........................3
           -f /svr02/stsf01a   .................4
           -c 512   ............................5
 pdstsinit -s sds1   ...........................3
           -f /svr02/stsf01b   .................4
           -c 512   ............................5

［説明］

ユニット用ステータスファイルを構成する物理ファイルの名称

/svr01/systs01a,/svr01/systs01b

物理ファイルのレコード数　512

サーバ用ステータスファイルに対応するサーバの名称　sds1

サーバ用ステータスファイルを構成する物理ファイルの名称

/svr02/stsf01a,/svr02/stsf01b

物理ファイルのレコード数　512

【HiRDB/パラレルサーバの場合】

 pdstsinit -x host1   ..........................1
           -f /svr01/systs11a   ................2
           -c 512   ............................3
 pdstsinit -x host1   ..........................1
           -f /svr01/systs11b   ................2
           -c 512   ............................3
 pdstsinit -x host2   ..........................1
           -f /svr02/systs21a   ................2
           -c 512   ............................3
 pdstsinit -x host2   ..........................1
           -f /svr02/systs21b   ................2
           -c 512   ............................3
 pdstsinit -x host3   ..........................1
           -f /svr03/systs31a   ................2
           -c 512   ............................3
 pdstsinit -x host3   ..........................1
           -f /svr03/systs31b   ................2
           -c 512   ............................3
 pdstsinit -s fes1   ...........................4
           -f /svr01/stsf11a   .................5
           -c 512   ............................6
 pdstsinit -s fes1   ...........................4
           -f /svr01/stsf11b   .................5
           -c 512   ............................6
 pdstsinit -s ds1   ............................4
           -f /svr02/stsd21a   .................5
           -c 512   ............................6
 pdstsinit -s ds1   ............................4
           -f /svr02/stsd21b   .................5
           -c 512   ............................6
 pdstsinit -s bes1   ...........................4
           -f /svr03/stsb31a   .................5
           -c 512   ............................6
 pdstsinit -x bes1   ...........................4
           -f /svr03/stsb31b   .................5
           -c 512   ............................6

［説明］

ユニット用ステータスファイルに対応するホスト名　host1,host2,host3

ユニット用ステータスファイルを構成する物理ファイルの名称

/svr01/systs11a,/svr01/systs11b

/svr02/systs21a,/svr02/systs21b

/svr03/systs31a,/svr03/systs31b

物理ファイルのレコード数　512

サーバ用ステータスファイルに対応するサーバ名　fes1,ds1,bes1

サーバ用ステータスファイルを構成する物理ファイルの名称

/svr01/stsf11a,/svr01/stsf11b

/svr02/stsd21a,/svr02/stsd21b

/svr03/stsb31a,/svr03/stsb31b

物理ファイルのレコード数　512

2.124　pdstsopen（ステータスファイルのオープン）

2.124.1　pdstsopenの形式と規則

(1)　機能

pdstsinitコマンドで初期設定したステータスファイル，又はpdstsclsコマンドでクローズしたステータスファイルをオープンします。オープンできるステータスファイルは，HiRDBシステム定義で定義したステータスファイルだけで，HiRDBが稼働中のときだけ有効です。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

ユニット用ステータスファイル

　pdstsopen 〔｛-x ホスト名｜-u ユニット識別子｝〕

　　　　　　　｛-n 論理ファイル名｜-f 物理ファイル名｝

サーバ用ステータスファイル

　pdstsopen -s サーバ名

　　　　　　｛-n 論理ファイル名｜-f 物理ファイル名｝

(b)　HiRDB/パラレルサーバの場合

ユニット用ステータスファイル

　pdstsopen ｛-x ホスト名｜-u ユニット識別子｝

　　　　　　　｛-n 論理ファイル名｜-f 物理ファイル名｝

サーバ用ステータスファイル

　pdstsopen -s サーバ名

　　　　　　｛-n 論理ファイル名｜-f 物理ファイル名｝

(4)　オプション

(a)　｛-x ホスト名｜-u ユニット識別子｝

ユニット用ステータスファイルをオープンする場合，ユニット用ステータスファイルに対応するホストのホスト名，又はユニットのユニット識別子を指定します。HiRDB/シングルサーバの場合，自ホスト又は自ユニットに固定されているので省略できます。

-x ホスト名　〜＜識別子＞((1〜32))

ユニット用ステータスファイルに対応するホストのホスト名を指定します。

-u ユニット識別子　〜＜識別子＞((4文字))

ユニット用ステータスファイルに対応するユニットのユニット識別子を指定します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

サーバ用ステータスファイルをオープンする場合，サーバ用ステータスファイルに対応するサーバの名称を指定します。

(c)　-n 論理ファイル名　〜＜識別子＞((1〜8))

論理ファイルごとにステータスファイルをオープンする場合，オープンする論理ファイルの名称を指定します。指定した論理ファイルを構成するA系及びB系のファイルを両方同時にオープンします。ただし，A系及びB系のファイルが，次の状態でないとオープンできません。

A系ファイル，B系ファイルのどちらかがCLOSE，NONE，又はBLOCKADE

A系ファイル，B系ファイルの両方ともCLOSE，NONE，又はBLOCKADE

(d)　-f 物理ファイル名　〜＜パス名＞((167文字以内))

物理ファイルごとにステータスファイルをオープンする場合，オープンする物理ファイルの名称を絶対パス名で指定します。物理ファイル名は，HiRDBファイルシステム領域名/HiRDBファイル名で指定してください。ステータスファイルに障害が発生して閉塞状態になったステータスファイル，及び容量を拡張するためにpdstsinitコマンドで初期設定した物理ファイルをオープンする場合に指定します。

ログ適用サイトでコマンドを実行する場合，物理ファイル名に正ステータスファイルは指定できません。また，業務サイトでコマンドを実行する場合，物理ファイル名に副ステータスファイルは指定できません。

(5)　規則

pdstsopenコマンドは，HiRDBが稼働中のときだけ実行できます。

pdstsopenコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

現用のステータスファイルが片系運転の場合，閉塞状態の系の物理ファイルをpdstsinitコマンドで初期設定した後，pdstsopenコマンドを実行すると，現用のステータスファイルとして使用できます。

(6)　注意事項

pdstsopenコマンドのリターンコードを次に示します。

0：正常終了

8：異常終了（オプション指定不正，rsh失敗など）

pdstsopenコマンドの結果は，pdlsコマンド（-d sts指定）で確認できます。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，コマンドを実行したサイトによってオープン対象のステータスファイルが異なります。

業務サイトの場合

正ステータスファイルをオープン対象とします。副ステータスファイルに対してはオープンできません。

ログ適用サイトの場合

副ステータスファイルをオープン対象とします。正ステータスファイルに対してはオープンできません。

2.125　pdstsrm（ステータスファイルの削除）

2.125.1　pdstsrmの形式と規則

(1)　機能

HiRDBファイルシステム下のステータスファイルを構成する物理ファイルを削除します。稼働中のHiRDBで使用している（現用又は予備の状態）の物理ファイルは削除できません。このコマンドは，障害が発生して閉塞状態になった物理ファイルを削除する場合に実行します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

ユニット用ステータスファイル

　pdstsrm 〔｛-x ホスト名｜-u ユニット識別子｝〕 -f 物理ファイル名

サーバ用ステータスファイル

　pdstsrm -s サーバ名 -f 物理ファイル名

(b)　HiRDB/パラレルサーバの場合

ユニット用ステータスファイル

　pdstsrm ｛-x ホスト名｜-u ユニット識別子｝ -f 物理ファイル名 〔-D〕

サーバ用ステータスファイル

　pdstsrm -s サーバ名 〔｛-x ホスト名｜-u ユニット識別子｝〕 -f 物理ファイル名 〔-D〕

(4)　オプション

(a)　｛-x ホスト名｜-u ユニット識別子｝

ユニット用ステータスファイルを削除する場合，ユニット用ステータスファイルに対応するホストのホスト名，又はユニットのユニット識別子を指定します。HiRDB/シングルサーバの場合，自ホスト又は自ユニットに固定されているので省略できます。

-x ホスト名　〜＜識別子＞((1〜32))

ユニット用ステータスファイルの場合

ユニット用ステータスファイルに対応するホストのホスト名を指定します。

サーバ用ステータスファイルの場合

影響分散スタンバイレス型系切り替え機能を適用している場合，削除するステータスファイルを作成したディスクがあるホストの，ホスト名を指定します。このホストには，-sオプションで指定したサーバの移動先となる，HAグループにあるユニットがなければなりません。

-sオプションで指定したサーバ，及びシステムマネジャが稼働中の場合は，このオプションを指定しても無視されます。

影響分散スタンバイレス型系切り替え機能を適用していない場合，このオプションと-sオプションを同時に指定すると，このオプションに指定したホストと-sオプションに指定したサーバの現用系のホストが一致しているか，チェックをします。ホスト名が一致しない場合，エラーとなります。

-u ユニット識別子　〜＜識別子＞((4文字))

ユニット用ステータスファイルの場合

ユニット用ステータスファイルに対応するユニットのユニット識別子を指定します。

サーバ用ステータスファイルの場合

影響分散スタンバイレス型系切り替え機能を適用している場合，削除するステータスファイルを作成したディスクがあるホストの，ユニット識別子を指定します。このユニットは，-sオプションで指定したサーバの移動先となる，HAグループにあるユニットでなければなりません。

-sオプションで指定したサーバ，及びシステムマネジャが稼働中の場合は，このオプションを指定しても無視されます。

影響分散スタンバイレス型系切り替え機能を適用していない場合，このオプションと-sオプションを同時に指定すると，このオプションに指定したユニットの現用系のホストと，-sオプションに指定したサーバの現用系のホストが一致しているか，チェックをします。ホスト名が一致しない場合，エラーとなります。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

サーバ用ステータスファイルを削除する場合，サーバ用ステータスファイルに対応するサーバの名称を指定します。

(c)　-f 物理ファイル名　〜＜パス名＞((167文字以内))

削除する物理ファイルの名称を絶対パス名で指定します。物理ファイル名は，HiRDBファイルシステム領域名/HiRDBファイル名で指定してください。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，正ステータスファイル及び副ステータスファイルのどちらも指定できます。ただし，ステータスファイルがあるボリュームは書き込み可能である必要があります。

(d)　-D

pdchgconfコマンドでユニットの削除，又はサーバの削除をする場合に指定します。

ユニットの削除，又はサーバの削除する場合，そのユニット又はサーバのステータスファイルを削除します。このオプションを指定した場合，ユニット識別子及びサーバ名のチェックはしません。

このオプションを指定してpdstsrmコマンドを実行する場合，作成するステータスファイルがあるユニットで実行してください。

(5)　規則

pdstsrmコマンドは，HiRDBの稼働に関係なく実行できます（ただし，HiRDB開始処理中及びHiRDB終了処理中は除きます）。

pdstsrmコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

HiRDB稼働中に使用していた現用のステータスファイルは削除しないでください。

(6)　注意事項

pdstsrmコマンドの結果は，コマンド実行時のリターンコード，又はエラーメッセージの有無で確認できます。コマンド実行時のリターンコードが0の場合は正常終了，8の場合は異常終了（オプション指定不正，rsh失敗など），12の場合は異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）です。

影響分散スタンバイレス型系切り替え機能を適用している場合の，-u，及び-sオプションの指定方法を次に示します。

初期設定対象

ユニット又はサーバの状態

ファイル格納先ディスクがあるホスト

-u，及び-sオプションの指定方法

ユニット用ステータスファイル

稼働中

ユニットがあるホスト

どちらか一方を指定します。

停止中

サーバ用ステータスファイル

稼働中

実行系バックエンドサーバがあるホスト

省略できます。

停止中

現用系バックエンドサーバがあるホスト

上記以外のホスト

どちらか一方を指定します。

2.126　pdstsswap（ステータスファイルのスワップ）

2.126.1　pdstsswapの形式と規則

(1)　機能

ステータスファイルをスワップします。現用のステータスファイルを予備にして，予備のステータスファイルを現用にします。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

(a)　HiRDB/シングルサーバの場合

ユニット用ステータスファイル

　pdstsswap 〔｛-x ホスト名｜-u ユニット識別子｝〕

サーバ用ステータスファイル

　pdstsswap -s サーバ名

(b)　HiRDB/パラレルサーバの場合

ユニット用ステータスファイル

　pdstsswap ｛-x ホスト名｜-u ユニット識別子｝

サーバ用ステータスファイル

　pdstsswap -s サーバ名

(4)　オプション

(a)　｛-x ホスト名｜-u ユニット識別子｝

ユニット用ステータスファイルをスワップする場合，ユニット用ステータスファイルに対応するホストのホスト名，又はユニットのユニット識別子を指定します。HiRDB/シングルサーバの場合，自ホスト又は自ユニットに固定されているので省略できます。

-x ホスト名　〜＜識別子＞((1〜32))

ユニット用ステータスファイルに対応するホストのホスト名を指定します。

-u ユニット識別子　〜＜識別子＞((4文字))

ユニット用ステータスファイルに対応するユニットのユニット識別子を指定します。

(b)　-s サーバ名　〜＜識別子＞((1〜8))

サーバ用ステータスファイルをスワップする場合，サーバ用ステータスファイルに対応するサーバの名称を指定します。

(5)　規則

pdstsswapコマンドは，HiRDBが稼働中のときだけ実行できます。

pdstsswapコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

(6)　注意事項

pdstsswapコマンドのリターンコードを次に示します。

0：正常終了

8：異常終了（オプション指定不正，rsh失敗など）

pdstsswapコマンドの結果は，pdlsコマンド（-d sts指定）で確認できます。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，コマンドを実行したサイトによってスワップ対象のステータスファイルが異なります。

業務サイトの場合

正ステータスファイルをスワップ対象とします。副ステータスファイルに対してはスワップできません。

ログ適用サイトの場合

副ステータスファイルをスワップ対象とします。正ステータスファイルに対してはスワップできません。

2.127　pdsvhostname（サーバのホスト名表示）

2.127.1　pdsvhostnameの形式と規則

(1)　機能

指定したサーバのホスト名をDAT形式で表示します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdsvhostname -s サーバ名 〔-b〕

(4)　オプション

(a)　-s サーバ名　〜＜識別子＞((1〜8))

ホスト名を表示するサーバの名称を指定します。

＜規則＞

HiRDBで定義されていないサーバ名を指定した場合，KFPS05041-Eメッセージを出力して終了します。

指定したサーバが停止中の場合（ユニットの停止も含む），ホスト名を表示しません。

指定できるサーバは，シングルサーバ，フロントエンドサーバ，ディクショナリサーバ，及びバックエンドサーバです。

(b)　-b

タイトル行を表示する場合に指定します。

省略した場合，タイトル行は表示しないで，ホスト名だけ表示します。

(5)　出力形式

-b省略時

"aa...a"

-b指定時

"HOSTNAME"
"aa...a"

［説明］

aa...a：

-sオプションで指定したサーバが現在稼働しているホスト名（32文字以内）。

次のどれかのホスト名を表示します。

システム定義のpdunitオペランドの-x，又は-cオペランドに指定したホスト名

IPアドレス引き継ぎなしの系切り替え機能を使用している場合，現用系で稼働しているときは-xオペランドに指定したホスト名，予備系で稼働しているときは-cオペランドに指定したホスト名

影響分散スタンバイレス型系切り替え機能を使用している場合，指定したサーバが稼働中のホスト名

1:1スタンバイレス型系切り替え機能を使用している場合，指定したサーバが代替部で稼働中のときは，代替部の稼働中のホスト名

(6)　規則

pdsvhostnameコマンドは，HiRDBが稼働中のときだけ実行できます。停止中に実行した場合は，KFPS01853-Wメッセージを出力して終了します。

pdsvhostnameコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。システムマネジャ以外のサーバマシンから実行した場合，KFPS05037-Eを出力して終了します。

DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

(7)　注意事項

pdsvhostnameコマンドの実行タイミングによっては，HiRDBが停止中であっても正常終了することがあります。次のどちらかの場合に発生します。

システムマネジャの共用メモリが残っている。

サーバが停止したとき，停止したことをユニットが検知していない。

pdsvhostnameコマンドのリターンコードを次に示します。

0：正常終了です。

1：指定したサーバが停止中です。

4：HiRDBが停止中です。

8：エラー終了（メモリ不足も含む）※，又は指定したサーバがHiRDBにありません。

注※

syslogfile，又は標準エラー出力に出力されているメッセージを参照して，エラー原因を取り除いた後，再度pdsvhostnameコマンドを実行してください。

2.128　pdtrndec（未決着トランザクションの強制自動決着）

2.128.1　pdtrndecの形式と規則

(1)　機能

障害発生後のHiRDBの再開始時，又はHiRDBの正常終了時に，未決着状態のトランザクションがある場合（KFPS00992-Eメッセージが出力されます），このトランザクションを強制的に決着します。

未決着状態のトランザクションがあるときの対処方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdtrndec -i 入力ファイル名〔，入力ファイル名〕…

　　　　　〔-r ロールバックスクリプトファイル名〕 〔-o 出力先ディレクトリ名〕

(4)　オプション

(a)　-i 入力ファイル名〔，入力ファイル名〕…　〜＜パス名＞((1〜4096))

syslogfileのKFPS00990-Iメッセージを抽出して作成したファイルを，絶対パス名で指定します。

＜規則＞

ファイルを複数指定する場合は，コンマを含めて4,096文字以内で指定してください。

KFPS00990-Iメッセージを抽出したファイル以外のファイルを指定した場合，コマンドの実行結果は保証されません。

入力ファイル名には空白を含んでいてはいけません。

入力ファイル中の該当するトランザクションの情報が欠落している場合（不当な入力ファイルを指定した場合も含む），トランザクションは決着しないで決着保留となります。

(b)　-r ロールバックスクリプトファイル名　〜＜パス名＞((1〜4107))

事前に実行したpdtrndecコマンドの出力ファイル（pdtrnrbk.bat）を指定します。

このオプションを指定した場合は，ロールバックスクリプトファイル中で決着対象としているトランザクションだけを強制的に決着します。pdtrndecコマンドの出力ファイル以外のファイルを指定した場合，コマンドの実行結果は保証されません。

(c)　-o 出力先ディレクトリ名　〜＜パス名＞((1〜4096))

pdtrndecコマンドを実行した場合に出力される実行履歴（pdtrndecout），及びシェルスクリプト（pdtrnrbk.bat）の出力先ディレクトリ名を，絶対パス名で指定します。

＜規則＞

このオプションを省略した場合は，カレントディレクトリが出力先となります。

指定した出力先ディレクトリに既に実行履歴，及びシェルスクリプトがある場合，実行履歴は追加書きされ，シェルスクリプトは上書きされます。

同時に-rオプションを指定した場合，シェルスクリプトは出力されません。

出力先ディレクトリ名には空白を含んでいてはいけません。

(5)　規則

pdtrndecコマンドは，HiRDBが稼働中のときだけ実行できます。

pdtrndecコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdtrndecコマンドは，障害発生後のHiRDBの再開始時，又はHiRDBの正常終了時に未決着状態のトランザクションがある場合に実行するものです。したがって，未決着状態のトランザクションがあるかどうか分からない状態で実行すると，不当にトランザクションを決着してしまう可能性があります。

pdtrndecコマンドは，複数同時実行しないでください。同時実行した場合，実行結果は保証されません。

(6)　注意事項

pdtrndecコマンドを実行する場合，回復不要FESを除くHiRDBの全サーバが稼働中であることを確認してください。稼働していないサーバがある場合，決められた手順でサーバを開始してください。

pdtrndecコマンドを実行する場合，HiRDBのクライアント製品（OLTPシステム，HiRDB Datareplicatorなど）が正常に稼働していることを確認してください。稼働していない場合は，各製品で決められた手順で開始してください。ただし，開始していないクライアント製品がある状態で強制的に決着する場合は，次の点に注意してください。

コマンド実行後に出力されたシェルスクリプト（pdtrnrbk.bat）を実行すると，コマンド実行後に決着保留としたトランザクションを強制的にロールバックします。したがって，この後に，開始していないクライアント製品を開始すると，HiRDBとクライアント製品の間で同期が取れなくなる可能性があります。

入力ファイルを指定してpdtrndecコマンドを実行しても未決着状態のトランザクションが残っている場合は，シェルスクリプト（pdtrnrbk.bat）を指定して実行し，未決着状態のトランザクションを決着してください。

pdtrndecコマンドは，トランザクションのコミットコマンド，ロールバックコマンドなどの処理完了と同期するため，時間が掛かることがあります。

pdtrndecコマンド実行後，pdtrndecコマンドで指定した出力先ディレクトリ下のファイルは削除してください。

pdtrndecコマンドの結果は，pdlsコマンド（-d trn指定），コマンド実行時のリターンコード，又はエラーメッセージの有無で確認できます。

コマンド実行時のリターンコードを次に示します。

0：正常終了

4：警告終了（一つ以上の未決着状態のトランザクションがあります）

メッセージに従って対処した後，再度コマンドを実行してください。

8：異常終了

メッセージに従って対処した後，再度コマンドを実行してください。

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdtrndecの入力ファイルには，BOMを持つファイルを使用できます。なお，pdtrndecの入力ファイルとしてBOMを持つファイルを使用しても，BOMは読み飛ばされます。また，pdtrndecで出力されるファイルにはBOMは付きません。

(7)　出力形式

実行履歴（pdtrndecout）

pdtrndec result                     [1]START TIME:2002/09/05 17:20:08
[2]HOSTNAME [3]TRNGID        [4]TRNBID        [5]SVID   [6]DECISION [7]TIME
host1       HRD1unt100020b4d HRD1unt100020034 bes1      COMMIT      17:20:08
host1       HRD1unt100020b22 HRD1unt100020035 bes1      ********    --:--:--
host1       HRD1unt100020b51 HRD1unt100020038 bes1      FORGET      17:20:09
pdtrndec result                     [1]START TIME:2002/09/05 17:36:47
[2]HOSTNAME [3]TRNGID        [4]TRNBID        [5]SVID   [6]DECISION [7]TIME
host1       HRD1unt100020b22 HRD1unt100020035 bes1      ********    --:--:--

〔説明〕

コマンド開始日時（年/月/日 時:分:秒）

未決着トランザクションがあったホスト名（32文字以内）

未決着トランザクションがあったグローバルトランザクションID（16文字）

未決着トランザクションがあったブランチトランザクションID（16文字）

未決着トランザクションがあったサーバ名（8文字以内）

未決着トランザクションが決着した種別（8文字以内）

種別を次に示します。

種別

意味

処置

COMMIT

強制コミット決着

なし。

ROLLBACK

強制ロールバック決着

なし。

FORGET

強制終了

なし。

FAIL

強制コミット決着，強制ロールバック決着，又は強制終了がエラー

エラー原因を取り除いた後，再度pdtrndecコマンドを実行してください。

********

決着保留

HiRDB/シングルサーバの場合，及びHiRDB/パラレルサーバのシステムマネジャユニットの入力ファイルでpdtrndecコマンドを実行した場合

入力ファイルを変更して，再度pdtrndecコマンドを実行してください。

HiRDB/パラレルサーバのシステムマネジャがないユニットの入力ファイルでpdtrndecコマンドを実行した場合

シェルスクリプト（pdtrnrbk.bat）を指定して，再度pdtrndecコマンドを実行してください。

強制決着を実行した時刻（時:分:秒）

シェルスクリプト（pdtrnrbk.bat）

[1]/HiRDB/bin/pdrbk -x host1 -s bes1 -t HRD1unt100020b22

〔説明〕

トランザクションをロールバック決着するためのコマンドフォーマット

2.129　pdtrnqing（トランザクションキューイング機能の開始，解除）

pdtrnqingコマンドは次に示す実行環境で使用できます。

HiRDB/シングルサーバの場合，又はHiRDB/パラレルサーバでFESユニットがある場合

影響分散スタンバイレス型系切り替え機能を使用している場合

実行環境によってpdtrnqingコマンドの仕様が異なるため，実行環境ごとにコマンドの説明を行います。

2.129.1　HiRDB/シングルサーバ又はFESユニットにpdtrnqingコマンドを実行する場合

(1)　機能

トランザクションキューイングを開始又は解除します。

なお，HiRDB/パラレルサーバの場合は，次に示す条件を満たすユニットに対してだけトランザクションキューイングを適用できます（pdtrnqingコマンドを実行できます）。

フロントエンドサーバだけで構成されているユニット

システムマネジャとフロントエンドサーバだけで構成されているユニット

この条件を満たしていないユニットにはトランザクションキューイングを適用できません（pdtrnqingコマンドを実行できません）。

なお，これらの条件を満たすユニットをここではFESユニットと表記します。

(2)　このコマンドの目的

pdtrnqingコマンドは，スタンバイ型系切り替え機能の計画系切り替えを行う前に，新規トランザクションをキューイングしておくために使います。pdtrnqingコマンドを実行したときのHiRDBの処理をシステム構成ごとに説明します。

HiRDB/シングルサーバの場合

pdtrnqingコマンドを実行すると，新規トランザクションのキューイングが開始されて，新規トランザクションは待ち状態になります（実行中のトランザクションは処理されます）。新規トランザクションがキューイングされるため，計画系切り替えを行うときに，トランザクションエラーが発生しません。

HiRDB/パラレルサーバの場合

pdtrnqingコマンドを実行すると，コマンド実行対象ユニット（FESユニット）の新規トランザクションのキューイングが開始されて，新規トランザクションは待ち状態になります（実行中のトランザクションは処理されます）。FESユニットの新規トランザクションがキューイングされるため，FESユニットの計画系切り替えを行うときに，トランザクションエラーが発生しません。

注意事項

計画系切り替えを実行する場合は，クライアント環境定義のPDAUTORECONNECTオペランドにYESを指定して，自動再接続機能を適用しておく必要があります。自動再接続機能を適用しないと，計画系切り替え中にHiRDBに接続しようとしたUAPがCONNECTエラーになることがあります。

(3)　実行者

HiRDB管理者が実行できます。

(4)　形式

　pdtrnqing 〔-d｜-t 待ち合わせ時間〕

(5)　オプション

(a)　-d

トランザクションキューイングを解除する場合にこのオプションを指定します。

(b)　-t 待ち合わせ時間　〜＜符号なし整数＞((1〜3600))《180》（単位：秒）

pdtrnqingコマンドは，実行中のトランザクション（HiRDB/パラレルサーバの場合はFESユニットで実行中のトランザクション）が終了するまで処理を待ち合わせます。この待ち合わせ時間を秒単位で指定します。実行中のトランザクションがここで指定した時間を経過しても終了しない場合，トランザクションキューイングを中止してpdtrnqingコマンドをエラー終了します。

(6)　規則

HiRDB/パラレルサーバの場合，トランザクションキューイングを適用（開始又は解除）するユニットでpdtrnqingコマンドを実行します。pdtrnqingコマンドを実行したユニットだけにトランザクションキューイングが適用されます。

停止中のユニットでpdtrnqingコマンドを実行できません。

次に示す場合，pdtrnqingコマンドは正常終了します。この場合，トランザクションキューイングの適用状態は変わりません。

トランザクションキューイングの適用中に，pdtrnqingコマンドを実行して再度トランザクションキューイングを開始しようとした場合

トランザクションキューイング中でないときに，pdtrnqing -dコマンドを実行してトランザクションキューイングを解除しようとした場合

(7)　注意事項

ほかのコマンドの実行中にpdtrnqingコマンドを実行しないでください。実行すると，ほかのコマンドがエラー終了することがあります。

次に示す場合にpdtrnqingコマンドを実行すると，pdtrnqingコマンドがエラー終了します。

修正版HiRDBの入れ替え（pdprgrenewコマンド）を実行している場合

システム構成変更コマンド（pdchgconfコマンド）を実行している場合

次に示す場合にpdtrnqingコマンドでトランザクションキューイングを開始しようとすると，pdtrnqingコマンドがエラー終了します。

ユティリティを実行している場合

更新可能なオンライン再編成を実行している場合

トランザクションキューイングの開始処理中の場合

実行中のトランザクションの終了をpdtrnqingコマンドが待ち合わせている間に，次の操作を行った場合，次のコマンドの処理を優先します。このとき，pdtrnqingコマンドはキャンセルされてエラー終了します。

HiRDBの正常終了又は計画停止（pdstopコマンド）

HiRDBの強制終了（pdstopコマンド）※

修正版HiRDBの入れ替え（pdprgrenewコマンド）

システム構成変更コマンドの実行（pdchgconfコマンド）

トランザクションキューイングの解除（pdtrnqing -dコマンド）

注※　HiRDBを強制終了する場合，pdtrnqingコマンドは強制停止（kill）されます。

次に示す操作をした場合，トランザクションキューイングは自動的に解除されます。

トランザクションキューイングを行っているユニットを再開始した場合（ユニットを系切り替えした場合も含む）

システム，ユニット，サーバを終了した場合（pdstopコマンド）※1※2

修正版HiRDBの入れ替え（pdprgrenewコマンド）

システム構成変更コマンドの実行（pdchgconfコマンド）

注※1

トランザクションキューイング中のユニット，又はユニット内のサーバを終了した場合にトランザクションキューイングが解除されます。

注※2

pdstopコマンドがエラー終了した場合でも，トランザクションキューイングが解除されることがあります。

UAPのトランザクションがキューイングの対象になりますが，次に示すトランザクションはキューイングの対象になりません。

定義系SQLを実行するトランザクション

ホールダブルカーソルを使用しているトランザクション

ASSIGN LIST文を実行するトランザクション

UNTIL DISCONNECT指定のLOCK文を実行するトランザクション

X/Open XAインタフェースを使用したトランザクション

コマンド又はユティリティのトランザクション

(8)　リターンコード

pdtrnqingコマンドのリターンコードを次に示します。

0：正常終了

4：警告

8：エラー終了

12：エラー終了

リターンコードの8及び12は，トランザクションキューイングの開始又は解除が実行できなかったときに返されるリターンコードです。このとき，syslogfile又は標準エラー出力にメッセージが出力されます。

実行環境の不正や，操作誤りなどの場合はリターンコード8で終了し，それ以外の場合はリターンコード12で終了します。

2.129.2　影響分散スタンバイレス型系切り替え機能使用時にpdtrnqingコマンドを実行する場合

(1)　機能

影響分散スタンバイレス型系切り替え機能のバックエンドサーバでトランザクションキューイングを開始又は解除します。

(2)　このコマンドの目的

pdtrnqingコマンドは，影響分散スタンバイレス型系切り替え機能の計画系切り替えを行う前に，新規トランザクションをキューイングしておくために使います。

pdtrnqingコマンドを実行すると，コマンド実行対象のバックエンドサーバに対する新規トランザクションのキューイングが開始されて，新規トランザクションは待ち状態になります（実行中のトランザクションは処理されます）。

(3)　前提条件

pdtrnqingコマンドを実行する場合は，pd_ha_transactionオペランドにqueuingを指定しておく必要があります。

pd_ha_transactionオペランドにerror（省略値）を指定している場合は，トランザクションキューイングの開始又は解除をしないでpdtrnqingコマンドを終了します。この場合のリターンコードは4になります。

(4)　実行者

HiRDB管理者が実行できます。

(5)　形式

　pdtrnqing 〔-d 〔-f〕〕〔-t 待ち合わせ時間〕-s バックエンドサーバ名

(6)　オプション

(a)　-d

トランザクションキューイングを解除する場合にこのオプションを指定します。

(b)　-f

-dオプションを指定して，トランザクションキューイングを解除する場合にこのオプションを指定できます。次に示す場合にこのオプションを指定してください。

pdtrnqingコマンドの実行対象となるバックエンドサーバがあるユニットが停止中の場合にこのオプションを指定してください。ユニットが停止中の場合でもpdtrnqingコマンドが実行できます。

停止中のユニット（例えば，システムマネジャがあるユニットなど）からpdtrnqingコマンドを実行できます。

(c)　-t 待ち合わせ時間　〜＜符号なし整数＞((1〜3600))（単位：秒）

トランザクションキューイングを開始するときに指定する場合

pdtrnqingコマンドは，実行中のトランザクション（pdtrnqingコマンドの実行対象となるバックエンドサーバで実行中のトランザクション）が終了するまで処理を待ち合わせます。この待ち合わせ時間を秒単位で指定します。実行中のトランザクションがここで指定した時間を経過しても終了しない場合，トランザクションキューイングを中止してpdtrnqingコマンドをエラー終了します。

トランザクションキューイングを解除するときに指定する場合

pdtrnqingコマンドの実行対象となるバックエンドサーバが待機中又は開始中の場合，バックエンドサーバの起動完了を待ち合わせる時間を秒単位で指定します。バックエンドサーバの起動処理が，ここで指定した時間を経過しても完了しない場合，トランザクションキューイングを解除しないでpdtrnqingコマンドをエラー終了します。

なお，ここで指定する待ち合わせ時間は，pd_ha_trn_queuing_wait_timeオペランドの指定値（デフォルト180秒）以下にしてください。pd_ha_trn_queuing_wait_timeオペランドの指定値以上の時間を指定しても無効になり，pd_ha_trn_queuing_wait_timeオペランドの値が有効になります。

(d)　-s バックエンドサーバ名　〜＜識別子＞((1〜8))

pdtrnqingコマンドの実行対象となるバックエンドサーバを指定します。影響分散スタンバイレス型系切り替え機能を適用しているバックエンドサーバを指定できます。

(7)　規則

pdtrnqingコマンドは，-sオプションに指定するバックエンドサーバがあるユニットで実行できます。

次に示す場合，pdtrnqingコマンドは正常終了します。この場合，トランザクションキューイングの適用状態は変わりません。

トランザクションキューイングの適用中に，pdtrnqingコマンドを実行して再度トランザクションキューイングを開始しようとした場合

トランザクションキューイング中でないときに，pdtrnqing -dコマンドを実行してトランザクションキューイングを解除しようとした場合

pdtrnqingコマンドを実行する場合，コマンドの実行対象となるユニットが起動している必要があります。また，コマンドの実行対象となるバックエンドサーバが次に示す状態である必要があります。

pdtrnqingコマンドに

指定するオプション

pdtrnqingコマンドの実行対象となるバックエンドサーバの状態

停止

待機中

開始中

稼働中

停止中

なし

×

×

×

○※1

×

-d

×

△※2※3

○※2

○

×

-d -f

○

○

○

○

○

（凡例）

○：pdtrnqingコマンドが実行できます。

×：pdtrnqingコマンドが実行できません。

△：バックエンドサーバの開始処理の完了を待ち合わせます。pd_ha_trn_queuing_wait_timeオペランドで指定した時間内に，バックエンドサーバの開始処理が完了した場合，トランザクションキューイングが解除されます。開始処理が完了しない場合は，pdtrnqingコマンドがエラーになります。

注※1

-sオプションに指定したバックエンドサーバで処理中のトランザクションが終了するまで，pdtrnqingコマンドを待ち合わせます。pd_ha_trn_queuing_wait_timeオペランドで指定した待ち合わせ時間を超えてもトランザクションが終了しない場合は，pdtrnqingコマンドがエラーになります。

注※2

-sオプションに指定したバックエンドサーバが待機中又は開始中の場合，バックエンドサーバの開始処理の完了を待ち合わせます。pd_ha_trn_queuing_wait_timeオペランドで指定した待ち合わせ時間を経過してもバックエンドサーバの開始処理が完了しない場合は，pdtrnqingコマンドがエラーになります。

注※3

クラスタソフトウェアのコマンドでバックエンドサーバを実行系に切り替えた直後から，HiRDBが管理するサーバステータスを「開始中」にするまでの間にpdtrnqing -dコマンド実行するとエラーになります。このため，バックエンドサーバが待機中のときに，バックエンドサーバの開始処理を待ち合わせます。

(8)　注意事項

トランザクションキューイングの解除時，バックエンドサーバが待機中の場合はバックエンドサーバの開始処理の完了を待ち合わせます。そのため，対象とするバックエンドサーバを間違った場合（待機中のままのバックエンドサーバを対象とした場合），pdtrnqingコマンドはすぐにエラーにはなりません。この場合，-tオプションで指定した待ち合わせ時間が経過したらpdtrnqingコマンドがエラー終了します。

次に示す操作をした場合，トランザクションキューイングは自動的に解除されます。

トランザクションキューイングを行っているバックエンドサーバを再開始した場合（バックエンドサーバが系切り替えした場合も含む）

システム，ユニット，サーバを終了した場合（pdstopコマンド）※1※2

修正版HiRDBの入れ替え（pdprgrenewコマンド）

システム構成変更コマンドの実行（pdchgconfコマンド）

注※1

トランザクションキューイング中のユニット，又はユニット内のサーバを終了した場合にトランザクションキューイングが解除されます。

注※2

pdstopコマンドがエラー終了した場合でも，トランザクションキューイングが解除されることがあります。

(9)　リターンコード

pdtrnqingコマンドのリターンコードを次に示します。

0：正常終了

4：警告終了

pd_ha_transactionオペランドにqueuingが指定されていないため，トランザクションキューイングができないときに返されるリターンコードです。

8：エラー終了

12：エラー終了

リターンコードの8及び12は，トランザクションキューイングの開始又は解除が実行できなかったときに返されるリターンコードです。このとき，syslogfile又は標準エラー出力にメッセージが出力されます。

実行環境の不正や，操作誤りなどの場合はリターンコード8で終了し，それ以外の場合はリターンコード12で終了します。

2.130　pdvrup（HiRDBバージョンアップ）

2.130.1　pdvrupの形式と規則

(1)　機能

HiRDBをバージョンアップした場合，データベースの整合性を新規バージョンに合わせるために，マスタディレクトリ用RDエリア及びデータディクショナリ用RDエリアを保守します。

なお，このコマンドは，システム定義でpd_auto_vrup=Nを指定しているときだけ実行できます。pd_auto_vrup=Yの場合は，HiRDBが自動的にpdvrupコマンドを実行します。

(2)　実行者

HiRDB管理者が実行できます。

(3)　形式

　pdvrup

(4)　オプション

なし。

(5)　規則

pdvrupコマンドを実行する契機は，新しいバージョンのHiRDBをインストール（pdsetupコマンドを実行）した後にHiRDBを開始したときです。このとき，システム定義にpd_auto_vrup=Nを指定している場合に，pdvrupコマンドの入力を要求するメッセージが出力されます。それ以外のときに実行すると，エラーとなります。バージョンアップの手順については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

pdvrupコマンドは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdvrupコマンド実行中は，UAP及びユティリティは実行できません。

pdvrupコマンド実行時に，ディクショナリ表に対して空き領域の再利用機能を適用します。

(6)　注意事項

pdvrupコマンドの実行結果は，コマンド実行時のリターンコード，又はエラーメッセージの有無で確認できます。コマンド実行時のリターンコードが0の場合は正常終了，4の場合はバージョンアップは正常終了（この場合HiRDBを再起動してください），12の場合は異常終了です。

3　データベース初期設定ユティリティ（pdinit）

この章では，各ファイルをHiRDBのデータベースとして使用するための物理構成を設定するデータベース初期設定ユティリティ（pdinit）について説明します。

3.1　概要

実行者　HiRDB管理者が実行できます

3.1.1　機能

データベース初期設定ユティリティは，各ファイルをHiRDBのデータベースとして使用するために，物理構成の設定をするユティリティです。HiRDBのデータベースは，各種のRDエリアの集合で構成されています。また，RDエリアは一つ又は複数のHiRDBファイルで構成されています。

データベース初期設定ユティリティを実行する場合は，あらかじめHiRDBファイルを作成するためのHiRDBファイルシステム領域を初期設定しておく必要があります。HiRDBファイルシステムの初期設定については，pdfmkfsコマンドを参照してください。

データベース初期設定ユティリティには，次の二つの機能があります。

各RDエリアを初期化し，同時にマスタディレクトリ及びデータディレクトリを生成します。さらに，データディクショナリ用RDエリアにHiRDB固有の資源，及び各種権限を管理するためのディクショナリ表も作成します。

データベースのシステム定義をします。

データベース初期設定ユティリティ（pdinit）の概要を次の図に示します。

図3‒1　データベース初期設定ユティリティ（pdinit）の概要

3.2　コマンドの形式

3.2.1　形式

　pdinit -d 制御文ファイル名 〔-u 認可識別子〔-p パスワード〕〕

　〔-W 実行監視時間〕

3.2.2　オプション

●　-d 制御文ファイル名　〜＜パス名＞((255文字以内))

【HiRDB/シングルサーバの場合】

データベース初期設定ユティリティの制御文があるファイルの名称を絶対パス名で指定します。

【HiRDB/パラレルサーバの場合】

データベース初期設定ユティリティの制御文があるファイルの名称を絶対パス名で指定します。制御文ファイルは，ディクショナリサーバがあるサーバマシンに作成してください。

●-u 認可識別子　〜＜先頭が英字記号で始まる英数字記号＞((30文字以内))

ここで指定した認可識別子に対してDBA権限を与えてHiRDBに登録します。

このオプションを省略した場合

このオプションを省略した場合，pdinitコマンドを実行したユーザのOSアカウントのユーザ名が，このオプションに指定されたと仮定します。また，そのOSアカウントにroot権限がある場合，rootがこのオプションに指定されたと仮定します。

オプション指定時の規則

指定する認可識別子に小文字がある場合は，引用符（"）で囲んでください。引用符（"）で囲まないと大文字として扱われます。また，sh（Bourneシェル），csh（Cシェル），及びksh（Kシェル）の場合は，引用符を更にアポストロフィ（'）で囲む必要があります。

備考

HiRDBを使用するオープンミドルウェアの延長で，HiRDBがインストールされる場合にもこのオプションは指定できます。

●-p パスワード　〜＜識別子＞((30文字以内))

-uオプションに指定した認可識別子に対応するパスワードを指定します。

指定するパスワードに小文字がある場合は，引用符（"）で囲んでください。引用符（"）で囲まないと大文字として扱われます。また，sh（Bourneシェル），csh（Cシェル），及びksh（Kシェル）の場合は，引用符を更にアポストロフィ（'）で囲む必要があります。

なお，このオプションを省略した場合，-uオプションに指定した認可識別子と同じ文字列がパスワードとして登録されます。

-uオプションと-pオプションの指定値と，HiRDBに登録される認可識別子とパスワードの関係を次に示します。

-uオプション

の指定

-pオプション

の指定

HiRDBに登録される

認可識別子

HiRDBに登録される

パスワード

HIR001

sytg0421

HIR001

sytg0421

HIR001

なし

HIR001

HIR001

なし

なし

OSアカウントのユーザ名（root権限がある場合はroot）

OSアカウントのユーザ名（root権限がある場合はroot）

●-W 実行監視時間　〜＜符号なし整数＞((0〜3600)) ≪0≫

データベース初期設定ユティリティの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，システム共通定義のpd_cmd_exec_timeオペランドに指定した実行監視時間は適用されません。このオプションを省略した場合は，0を仮定します。

3.3　制御文

3.3.1　define system文

define system 〔dicinf ｛unlimited｜limited｝〕
　　　　　　　〔dictionary datatype mchar ｛use｜nouse｝〕
　;

(1)　dicinf ｛unlimited｜limited｝

ディクショナリ表をアクセスする場合に，ユーザが持っている権限によって検索できる情報を限定するかどうかを指定します。

unlimited

ディクショナリ表をアクセスする場合に，すべての情報を検索できます。

limited

ディクショナリ表をアクセスする場合に，ユーザが持っている権限によって検索できる情報を限定します。DBA権限を持っているユーザは，すべての情報を検索できます。DBA権限を持っていないユーザは，利用できる情報だけ検索できます。

limitedを指定した場合，ディクショナリ表を検索するUAPのアクセス表数が増大するので，同時アクセス可能実表数（pd_max_access_tablesの値）を大きくする必要があります。一つのディクショナリ表につき，同時アクセス可能実表数は５必要です。

ディクショナリ表の参照権限の設定については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(2)　dictionary datatype mchar ｛use｜nouse｝

ディクショナリ表のデータに混在文字データを使用するかどうかを指定します。

use：

ディクショナリ表の列のデータ型がMVARCHARになります。

nouse：

ディクショナリ表の列のデータ型がVARCHARになります。

MVARCHARにするか，又はVARCHARにするかの選択基準を次に示します。

表名又は列名にマルチバイト文字を使用している場合は，MVARCHARを選択してください。

DABrokerを使用していて，表名又は列名に漢字を使用している場合は，MVARCHARを選択してください。

上記以外の場合は，VARCHARを選択してください。

3.3.2　create rdarea文

create 〔shared〕
　　　　　　rdarea RDエリア名
　　　　　　for ｛masterdirectory｜datadirectory｜datadictionary 〔of routines〕｜user used by ｛PUBLIC｜認可識別子〔，認可識別子〕…｝｜LOB used by ｛HiRDB（ディクショナリ表の名称）｜PUBLIC ｜認可識別子〔，認可識別子〕…｝｜list｝
　　　　　　〔server name サーバ名〕
　　　　　　〔open attribute ｛INITIAL｜DEFER｜SCHEDULE｝〕
　　　　　　〔page ページ長 characters〕
　　　　　　〔storage control segment セグメントサイズ pages〕
　　　　　　〔max entries 最大リスト登録数〕
　　　　　　〔extension ｛use 増分セグメント数 segments｜nouse｝〕
　　　　　　〔temporary table ｛use ｛shared｜occupied｝｜nouse｝〕
　　　　　　file name "HiRDBファイルシステム領域名/HiRDBファイル名"
　　　　　　　　initial HiRDBファイル内セグメント数 segments
　　　　　　〔file name "HiRDBファイルシステム領域名/HiRDBファイル名"
　　　　　　　　　initial HiRDBファイル内セグメント数 segments〕…
　;

注

file nameオペランド，initialオペランドは，必ずcreate rdarea文の最後に指定してください。

(1)　shared

このオペランドは，HiRDB/パラレルサーバの場合に指定できます。

RDエリアを共用RDエリアとして作成する場合に指定します。

＜規則＞

sharedを指定する場合，システム定義のpd_shared_rdarea_useオペランドにYを指定する必要があります。指定していない場合はエラーになります。

HiRDB/シングルサーバの場合，sharedを指定するとエラーになります。

共用RDエリアとして作成できるのはユーザ用RDエリアだけです。

共用RDエリアは，キャラクタ型スペシャルファイルの使用目的がSDBのHiRDBファイルシステム領域に作成してください。

共用RDエリアとして作成したRDエリアは，server nameオペランドで指定したサーバ以外のサーバからも参照できます（すべてのバックエンドサーバから参照できます）。

(2)　RDエリア名

　　　〜＜識別子＞((1〜30))

HiRDBで使用するRDエリアの名称を指定します。

RDエリア名にALLは指定できません。RDエリア名を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。

（例）

create rdarea "pdbuser01" for …

この場合，RDエリア名はpdbuser01で扱われます。

create rdarea pdbuser01 for …

この場合，RDエリア名はPDBUSER01で扱われます。

(3)　for ｛masterdirectory｜datadirectory｜datadictionary 〔of routines〕｜user used by ｛PUBLIC｜認可識別子〔，認可識別子〕…｝｜LOB used by ｛HiRDB（ディクショナリ表の名称）｜PUBLIC｜認可識別子〔，認可識別子〕…｝｜list｝

RDエリアの種類を指定します。

masterdirectory

RDエリアがマスタディレクトリ用RDエリアの場合に指定します。

datadirectory

RDエリアがデータディレクトリ用RDエリアの場合に指定します。

datadictionary

RDエリアがデータディクショナリ用RDエリアの場合に指定します。

of routines

ストアドプロシジャ，ストアドファンクション，及びトリガに関するディクショナリ表を，ほかのディクショナリ表と別のRDエリアに格納する場合に指定します。

このオペランドは，一つのデータディクショナリ用RDエリアにだけ指定できます。また，このオペランドを指定した場合，データディクショナリLOB用RDエリアを必ず指定してください。

user used by ｛PUBLIC｜認可識別子〔，認可識別子〕…｝

RDエリアがユーザ用RDエリアの場合に指定します。

PUBLIC

ユーザ用RDエリアを公用RDエリアとする場合に指定します。

認可識別子〔，認可識別子〕…　〜＜先頭が英字記号で始まる英数字記号＞((1〜30))

ユーザ用RDエリアを私用RDエリアにする場合，ユーザ用RDエリアを利用できるユーザの認可識別子を指定します。

＜規則＞

認可識別子を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字としてHiRDBシステムに登録されます。

認可識別子を指定すると，その私用RDエリアに対してRDエリア利用権限を持つことができます。

認可識別子は，最大255個指定できます。

認可識別子にPUBLIC，MASTER，HiRDB，及びALLは指定できません。

LOB used by ｛HiRDB（ディクショナリ表の名称）｜PUBLIC｜認可識別子〔，認可識別子〕…｝

RDエリアがデータディクショナリLOB用RDエリア又はユーザLOB用RDエリアの場合に指定します。

HiRDB（ディクショナリ表の名称）

RDエリアがデータディクショナリLOB用RDエリアの場合に指定します。ディクショナリ表の名称には，SQL_ROUTINESを指定してください。

＜規則＞

ストアドプロシジャ，又はストアドファンクションを使用する場合には，必ずこのRDエリアを定義してください。

このRDエリアには，ストアドプロシジャ及びストアドファンクションの定義ソース文を格納するRDエリアと，ストアドプロシジャ及びストアドファンクションのオブジェクトを格納するRDエリアがあるため，指定する場合は二つする必要があります（このRDエリアを指定したcreate rdarea文を2個指定します）。一つ目のRDエリアにはストアドプロシジャ及びストアドファンクションの定義ソース文が格納され，二つ目のRDエリアにはストアドプロシジャ及びストアドファンクションのオブジェクトが格納されます。

データベース初期設定ユティリティ実行時にこのRDエリアを定義していない場合に，ストアドプロシジャ及びストアドファンクションを使用するときには，データベース構成変更ユティリティでこのRDエリアを追加してください。

PUBLIC

ユーザLOB用RDエリアを公用RDエリアとする場合に指定します。

認可識別子〔，認可識別子〕…　〜＜先頭が英字記号で始まる英数字記号＞((1〜30))

ユーザLOB用RDエリアを私用RDエリアにする場合，ユーザLOB用RDエリアを利用できるユーザの認可識別子を指定します。

＜規則＞

認可識別子を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字としてHiRDBシステムに登録されます。

認可識別子を指定すると，その私用RDエリアに対してRDエリア利用権限を持つことができます。

認可識別子は，最大255個指定できます。

認可識別子にPUBLIC，MASTER，HiRDB，及びALLは指定できません。

list

RDエリアがリスト用RDエリアの場合に指定します。

(4)　server name サーバ名

　　　〜＜識別子＞((1〜8))

【HiRDB/シングルサーバの場合】

HiRDB/シングルサーバの場合はserver nameオペランドを指定しないでください。

【HiRDB/パラレルサーバの場合】

RDエリアを管理するサーバの名称を指定します。

マスタディレクトリ用RDエリア，データディレクトリ用RDエリア，データディクショナリ用RDエリア，及びデータディクショナリLOB用RDエリアの場合，ディクショナリサーバのサーバ名を指定してください。ディクショナリサーバ以外のサーバ名を指定した場合でも，ディクショナリサーバのサーバ名が仮定されます。

ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリアの場合，バックエンドサーバのサーバ名を指定してください。バックエンドサーバ以外のサーバ名を指定した場合は，エラーとなります。

共用RDエリアを作成する場合，このオペランドで指定したサーバが更新可能バックエンドサーバとなります。

一つのサーバで複数のRDエリアを管理する場合，同一サーバ名のcreate rdarea文は続けて指定する必要があります。例を次に示します。

＜例1＞

　create rdarea A … server name BES1 …；
　create rdarea B … server name BES1 …；
　create rdarea C … server name BES2 …；

同一サーバ名（BES1）のcreate rdarea文を続けて指定しているので，エラーにはなりません。

＜例２＞

　create rdarea A … server name BES1 …；
　create rdarea B … server name BES2 …；
　create rdarea C … server name BES1 …；

同一サーバ名（BES1）のcreate rdarea文を続けて指定していないので，エラーになります。

(5)　open attribute ｛INITIAL｜DEFER｜SCHEDULE｝

RDエリアのオープン契機を指定します。

＜適用基準＞

特殊な運用形態でない場合は，通常INITIALを指定してください。

RDエリア数が多いためにHiRDBの開始に時間が掛かるなどの不都合を回避したい場合は，DEFERを指定してください。

＜規則＞

このオペランドは，pd_rdarea_open_attribute_useオペランドにYを指定しているときだけ有効となります。

このオペランドはユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリアの場合に指定できます。ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリア以外のRDエリアに対してこのオペランドを指定しても，無視されます（ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリア以外のRDエリアは，INITIAL固定です）。

このオペランドを省略した場合，pd_rdarea_open_attributeオペランドの指定値が仮定されます。

該当するRDエリアに割り当てたHiRDBファイルシステム領域が，ほかのRDエリアに共有される場合，共有するRDエリアのオープン契機はすべて同じにする必要があります。同じでない場合，HiRDBファイルシステム領域を共有するRDエリアは，期待通りの効果が得られないことがあります。

INITIAL：

HiRDB開始時にHiRDBファイルシステム領域をオープンして，RDエリア情報をメモリ上に常駐させるので，最初のSQLから高速な運用ができます。

＜注意事項＞

HiRDB開始時のRDエリアの初期状態はオープンで，それ以降は障害閉塞への遷移を除いて，運用コマンドを実行しないかぎりRDエリアの状態は遷移しません。

INITIALの場合，クローズ状態のRDエリアはアクセスできません。

DEFER：

HiRDB開始時にHiRDBファイルシステム領域をオープンしないで，RDエリアを最初にアクセスするときにHiRDBファイルシステム領域をオープンします。そのときにRDエリア情報をメモリ上に常駐させるので，2回目以降のアクセスから高速な運用ができます。

＜注意事項＞

HiRDB開始時のRDエリアの初期状態はクローズで，各RDエリアに対して最初にアクセスするときに，該当するRDエリアをオープンします。以降は障害閉塞への遷移を除いて，運用コマンドを実行しないかぎりRDエリアの状態は遷移しません。

DEFERの場合，クローズ状態のRDエリアでもアクセスできます。

SCHEDULE：

HiRDB開始時にHiRDBファイルシステム領域をオープンしないで，HiRDB開始後，各トランザクション内でRDエリアに対して最初にアクセスするときに，HiRDBファイルシステム領域をオープンします。そのときにRDエリア情報をメモリ上に常駐させます。ただし，トランザクション終了時にそのトランザクション内でオープンしたHiRDBファイルシステム領域をクローズするため，2回目以降のアクセス時でもオープン以降の処理をして，トランザクションに掛かる負荷は増加します。

＜注意事項＞

HiRDB開始時のＲＤエリアの初期状態はクローズで，アクセスしたRDエリアをトランザクション内でだけオープンし，トランザクション終了時にトランザクション内でオープンしたすべてのRDエリアをクローズします。また，pdopenコマンドを実行することで，閉塞クローズ状態になるまでの間はオープン状態にできます。そのほかの運用コマンドを使用すれば，RDエリアの状態を任意に遷移させることもできます。なお，障害事象を検知した場合には，障害閉塞となります。

SCHEDULEの場合，クローズ状態のRDエリアでもアクセスできます。

(6)　page ページ長 characters

　　　〜＜符号なし整数＞((4096〜30720))《4096又は8192》

RDエリアを構成するHiRDBファイルのページ長を，2,048の倍数のバイト単位で指定します。HiRDBファイルシステム領域作成時にセクタ長を指定した場合，2,048の倍数かつセクタ長の倍数を指定してください。

＜マスタディレクトリ用RDエリア，データディレクトリ用RDエリアの場合＞

4,096を指定してください。4,096以外の値を指定した場合でも，4,096が仮定されます。

＜データディクショナリLOB用RDエリア，ユーザLOB用RDエリアの場合＞

8,192を指定してください。8,192以外の値を指定した場合でも，8,192が仮定されます。

そのほかのRDエリアのページ長については，マニュアル「HiRDB システム導入・設計ガイド」を参照して適切な値を指定してください。

ここで指定したページ長は，HiRDBがRDエリアに対して入出力する最小の単位となります。

(7)　storage control segment セグメントサイズ pages

　　　〜＜符号なし整数＞((1〜16000))《1又は50》

1セグメントの大きさを，ページ数で指定します。

＜マスタディレクトリ用RDエリア，データディレクトリ用RDエリアの場合＞

50を指定してください。50以外の値を指定した場合でも，50が仮定されます。

＜データディクショナリLOB用RDエリア，ユーザLOB用RDエリアの場合＞

1を指定してください。1以外の値を指定した場合でも，1が仮定されます。

そのほかのRDエリアのセグメントサイズについては，マニュアル「HiRDB システム導入・設計ガイド」を参照して適切な値を指定してください。

(8)　max entries 最大リスト登録数

　　　〜＜符号なし整数＞((500〜50000，かつ500の倍数))≪500≫

リスト用RDエリアに作成できるリストの最大数を，500の倍数で指定します。500の倍数でない値を指定した場合，500の倍数に切り上げた値が仮定されます。

このオペランドをリスト用RDエリア以外のRDエリアに指定した場合，エラーとなります。

(9)　extension ｛use 増分セグメント数 segments｜nouse｝

RDエリアに自動増分を適用するかどうかを指定します。

RDエリアの自動増分については，マニュアル「HiRDB システム運用ガイド」を参照してください。

＜前提条件＞

RDエリアがあるHiRDBファイルシステム領域に-eオプション又は-aオプションが指定されている必要があります。

use 増分セグメント数 segments：

RDエリアの自動増分を適用します。

RDエリアの自動増分は，データディクショナリ用RDエリア，データディクショナリLOB用RDエリア，ユーザ用RDエリア，及びユーザLOB用RDエリアの場合に有効となります。ほかのRDエリアにuseを指定しても，nouseが仮定されます。

自動増分の契機はRDエリア内の空きセグメント数が自動増分契機に達したときです。pd_rdarea_extension_timingオペランドで指定できます。

増分セグメント数　〜＜符号なし整数＞((1〜64000))

増分セグメント数を指定します。

pdfmkfs -eを指定したHiRDBファイルシステム領域の場合

HiRDBファイルのエクステント数は最大24で，これを超えるとエラーとなります。また，HiRDBファイルシステム領域の空きが不足したり，使用する領域がHiRDBファイルサイズの上限を超えたりすると，エラーとなります。

HiRDBファイルシステム領域当たりの最大増分回数は，HiRDBファイルシステム領域作成時の指定値で決まるため，HiRDBファイルシステム領域内のファイル数，増分頻度を考慮し最大増分回数を定義しておく必要があります。

pdfmkfs -aを指定したHiRDBファイルシステム領域の場合

HiRDBファイルを格納しているディスクに，必要なHiRDBファイルシステム領域を確保する容量が不足していたり，使用する領域がHiRDBファイルサイズの上限を超えたりすると，エラーとなります。

nouse：

RDエリアの自動増分機能を適用しません。

＜注意事項＞

新たに追加される未使用セグメントは，RDエリアを構成するHiRDBファイルの最終ファイルに追加されます。

HiRDBファイルシステム領域の容量不足によって，未使用セグメントを確保できない場合，RDエリアの拡張又は再初期化をするか，データベース再編成ユティリティで表の再編成をしてください。

エクステントの数が上限値を超えた場合は，RDエリアがあるHiRDBファイルシステム領域のエクステントを統合するか，又はRDエリアに別のHiRDBファイルシステム領域のHiRDBファイルを追加してください。エクステントを統合するには，pdfbkupでバックアップを取得し，pdfmkfsでHiRDBファイルシステム領域の初期設定をし，pdfrstrでバックアップから回復します。

RDエリア自動増分処理の開始から終了までの間，最終ファイルに対して排他が掛かります。

(10)　temporary table ｛use ｛shared｜occupied｝｜nouse｝

ユーザ用RDエリアを一時表用RDエリアとして使用するかどうかを指定します。一時表用RDエリアについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

＜前提条件＞

作成するRDエリアが公用RDエリア（user used by PUBLIC指定）である必要があります。それ以外の場合にtemporary tableオペランドを指定すると，エラーになります。また，sharedオペランドと同時に指定したときも，エラーになります。なお，この前提条件は，nouseを指定したときには該当しません。

use shared：

ユーザ用RDエリアを，SQLセッション間共有属性の一時表用RDエリアとして使用します。

use occupied：

ユーザ用RDエリアを，特定SQLセッション占有属性の一時表用RDエリアとして使用します。

nouse：

ユーザ用RDエリアを一時表用RDエリアとして使用しません。

＜注意事項＞

RDエリア作成後に一時表用RDエリアの使用有無，及び一時表用RDエリアの属性（SQLセッション間共有属性又は特定SQLセッション占有属性）を変更する場合，データベース構成変更ユティリティのremove rdarea文で該当するRDエリアを削除し，create rdarea文で属性を変更して再作成してください。

(11)　file name "HiRDBファイルシステム領域名/HiRDBファイル名"

　　　〜((167文字以内))

RDエリアに対して割り当てる，HiRDBファイルシステム領域の名称とHiRDBファイルの名称を指定します。

HiRDBファイルシステム領域名/HiRDBファイル名は引用符（"）で囲んで指定してください。

＜規則＞

引用符内には改行文字を含まないようにしてください。

一つのRDエリアに対して，最大16個のHiRDBファイルを割り当てられます。

HiRDBファイルシステム領域名/HiRDBファイル名は，HiRDBシステム内で重複しないようにしてください。

リスト用RDエリアの場合は，使用目的がWORKのHiRDBファイルシステム領域を使用してください。

マスタディレクトリ用RDエリアを複数のHiRDBファイルで構成する場合，先頭のHiRDBファイル名はシステム定義のpd_master_file_nameオペランドに指定してある名称と同じにしてください。

HiRDBファイルシステム領域名　〜＜パス名＞

HiRDBファイルシステム領域の名称を指定します。

HiRDBファイル名　〜＜HiRDBファイル名＞((1〜30文字))

HiRDBファイルの名称を指定します。plで始まる名称は指定できません。

(12)　initial HiRDBファイル内セグメント数 segments

HiRDBファイルのセグメント数を指定します。

ただし，HiRDBファイルの大きさが64ギガバイトを超えるようなセグメント数は指定できません。各RDエリアを構成するHiRDBファイルの総セグメント数は次の計算式より大きい値を指定してください。

RDエリアの種別

最小セグメント数

マスタディレクトリ用RDエリア

4＋↑すべてのRDエリア数÷800↑

（HiRDB Staticizer Optionが組み込まれている場合は＋1）

データディレクトリ用RDエリア

1

データディクショナリ用RDエリア※１

216※３

データディクショナリLOB用RDエリア※２

1

ユーザ用RDエリア

1

ユーザLOB用RDエリア

1

リスト用RDエリア

1

注※1

データディクショナリ用RDエリアが複数ある場合，次に示す表の順に，セグメント数の多いRDエリアから1RDエリアに１ディクショナリ表ずつ格納されます。ディクショナリ表のインデクスは，対応するディクショナリ表と同じRDエリアに格納されます。したがって，データディクショナリ用RDエリアが複数ある場合は，格納されるディクショナリ表及びそのディクショナリ表のインデクスの数が最小セグメント数となります。

格納順序

ディクショナリ表の名称

インデクス数

1

SQL_PHYSICAL_FILES

2

2

SQL_RDAREAS

4

3

SQL_TABLES

2

4

SQL_COLUMNS

3

5

SQL_INDEXES

3

6

SQL_USERS

2

7

SQL_RDAREA_PRIVILEGES

2

8

SQL_TABLE_PRIVILEGES

2

9

SQL_DIV_TABLE

3

10

システムが使用する表

2

11

SQL_INDEX_COLINF

2

12

SQL_TABLE_STATISTICS

1

13

SQL_COLUMN_STATISTICS

1

14

SQL_INDEX_STATISTICS

2

15

SQL_VIEW_TABLE_USAGE

3

16

SQL_VIEWS

2

17

システムが使用する表

2

18

SQL_DIV_INDEX

2

19

SQL_DIV_COLUMN

2

20

SQL_REFERENTIAL_CONSTRAINTS

3

21

SQL_ALIASES

1

22

SQL_DATATYPES

3

23

SQL_DATATYPE_RESOURCES

2

24

SQL_TABLE_RESOURCES

3

25

SQL_PLUGINS

3

26

SQL_PLUGIN_ROUTINES

4

27

SQL_PLUGIN_ROUTINE_PARAMS

3

28

SQL_INDEX_TYPES

2

29

SQL_INDEX_RESOURCES

2

30

SQL_INDEX_DATATYPE

2

31

SQL_INDEX_FUNCTION

2

32

SQL_TYPE_RESOURCES

3

33

SQL_INDEX_TYPE_FUNCTION

1

34

SQL_EXCEPT

3

35

システムが使用する表

0

36

SQL_IOS_GENERATIONS

0

37

SQL_TRIGGERS

4

38

システムが使用する表

2

39

SQL_TRIGGER_COLUMNS

2

40

SQL_TRIGGER_DEF_SOURCE

2

41

SQL_TRIGGER_USAGE

4

42

SQL_PARTKEY

1

43

SQL_PARTKEY_DIVISION

1

44

SQL_AUDITS

3

45

システムが使用する表

2

46

SQL_KEYCOLUMN_USAGE

2

47

SQL_TABLE_CONSTRAINTS

2

48

SQL_CHECKS

2

49

SQL_CHECK_COLUMNS

2

50

SQL_DIV_TYPE

1

51

SQL_SYSPARAMS

1

52

システムが使用する表

1

53

SQL_INDEX_XMLINF

2

54

SQL_SEQUENCES

2

55

システムが使用する表

1

56

システムが使用する表

3

57

システムが使用する表

4

58

システムが使用する表

5

59

システムが使用する表

4

60

システムが使用する表

3

61

SQL_ACCESS_SECURITY

3

62

SQL_ROUTINES

4

63

SQL_ROUTINE_RESOURCES

4

64

SQL_ROUTINE_PARAMS

3

注※2

データディクショナリLOB用RDエリアを指定していない場合，SQL_ROUTINES，SQL_ROUTINE_RESOURCES，及びSQL_ROUTINE_PARAMSは作成されません。また，ストアドプロシジャ及びストアドファンクションに関するディクショナリ表を格納するデータディクショナリ用RDエリア（of routinesを指定したRDエリア）がある場合，SQL_ROUTINES，SQL_ROUTINE_RESOURCES，及びSQL_ROUTINE_PARAMSはそのデータディクショナリ用RDエリアに格納されます。

注※3

HiRDBが作成するディクショナリ表数及びディクショナリ表のインデクス数の合計を示します。

セグメント数は，データページ部分の総ページ数÷セグメントサイズで求めてください。データページ部分の総ページ数の見積もり式については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

3.3.3　注意事項

制御文に注釈を付けたい場合は，スラント，アスタリスク（/＊）とアスタリスク，スラント（＊/）で囲んで指定してください。

define system文とcreate rdarea文を同時に指定する場合は，define system文を先に指定してください。

create rdarea文の指定順序と指定できる数を次に示します。

指定順序

RDエリアの種類

指定できる数

1

マスタディレクトリ用RDエリア

1

2

データディレクトリ用RDエリア

1

3

データディクショナリ用RDエリア

1〜ディクショナリ表の数※

4

データディクショナリLOB用RDエリア

0又は2

5

ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリア

任意

注1

RDエリアの数は，システム共通定義のRDエリアの最大数（pd_max_rdarea_noの値）を超えないようにしてください。また，RDエリアを構成するHiRDBファイルの数も，RDエリアを構成するHiRDBファイルの最大数（pd_max_file_noの値）を超えないようにしてください。

注2

共用RDエリアを作成する場合，そのRDエリアはすべてのバックエンドサーバに作成したものとしてカウントされます。したがって，どれかのバックエンドサーバがRDエリアの最大数，又はRDエリアを構成するHiRDBファイルの最大数を超える場合，共用RDエリアは作成できません。

注3

0904互換モードを適用している場合で，一時表用RDエリアを作成するときは，システム共通定義の一時表用RDエリアの最大数（pd_max_tmp_table_rdarea_noの値）を超えないようにしてください。一時表用RDエリアの最大数を超える場合は，HiRDBを終了してからシステム共通定義を変更する必要があります。

注※

of routinesを指定したデータディクショナリ用RDエリアがある場合は，指定できるデータディクショナリ用RDエリアの数は（ディクショナリ表の数−2）になります。

3.4　規則及び注意事項

3.4.1　規則

データベース初期設定ユティリティは，HiRDBが初期設定終了待ち状態（KFPS05201-Qメッセージを出力し，待っている状態）のときだけ実行できます。初期設定終了待ち状態とは，マスタディレクトリ用RDエリアが初期化されていない状態，又はpdstartコマンドで-iオプションを指定してHiRDBを開始した状態をいいます。

データベース初期設定ユティリティは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

データベース初期設定ユティリティ実行時にエラーが発生した場合，エラーが発生した時点で処理を打ち切ります。この場合，標準エラー出力，及びメッセージログファイルに出力されたエラーの原因を取り除き，再度データベース初期設定ユティリティを実行する必要があります。

データベース初期設定ユティリティが異常終了（アボート，及びプロセスダウン）した場合，$PDDIR/spoolに初期設定ステータスファイル（pdinit）が残ることがあります。データベース初期設定ユティリティを再度実行する場合には，このファイルを削除する必要があります。

1:1スタンバイレス型系切り替え機能を使用していて代替BESを待機状態にしている場合，pdinitは実行できません。1:1スタンバイレス型系切り替え機能を使用している場合にpdinitを実行するときは，すべての正規BESを実行系として開始してください。

データベース初期設定ユティリティ実行時に，ディクショナリ表に対して空き領域の再利用機能を適用します。

3.4.2　注意事項

pdinitのリターンコードを次に示します。

0：正常終了

4：正常終了（警告レベルのエラーがありましたが，処理は正常に終了しました）

8：正常終了（初期化は正常に終了しましたが，初期化終了の通信がエラーになりました）

12：異常終了

pdinitの結果は，次の方法で確認できます。

pddblsコマンド（-r ALL -a指定）

ディクショナリ表の検索

データベース状態解析ユティリティ

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，制御文ファイル中にBOMが存在しても問題ありません。ただし，制御文ファイル中のコメントには，ASCIIコード以外の文字コードを使用できません。ASCIIコード以外の文字コードを使用した場合，pdinitが誤動作するおそれがあるため，使用しないでください。

拡張ユニットを使用する場合（pd_system_expand_unitオペランドを指定している場合）は，pdinitで拡張ユニットにRDエリアを作成できません。拡張ユニットにRDエリアを作成する場合は，pdmod（データベース構成変更ユティリティ）を使用してください。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，業務サイトでpdinitを実行したときは，システムログ適用化を実施してください。

3.5　使用例

データベース初期設定ユティリティの使用例を，例1に示します。

例1

次に示すRDエリアを作成します。
　・PDBMAST（マスタディレクトリ用RDエリア）
　・PDBDDIR（データディレクトリ用RDエリア）
　・PDBDDIC（データディクショナリ用RDエリア）
　・PDBDICL1（データディクショナリLOB用RDエリア）
　・PDBDICL2（データディクショナリLOB用RDエリア）
　・PDBUSER01（ユーザ用RDエリア）
　・PDBULOB01（ユーザLOB用RDエリア）
　・PDBUSER02（ユーザ用RDエリア）
なお，既に次のHiRDBファイルシステム領域が作成されているものとします。
　・/svr01（キャラクタ型スペシャルファイル）
　・/svr02（キャラクタ型スペシャルファイル）
　・/dbarea/area1（通常ファイル）

【HiRDB/シングルサーバの場合】

［概要］

［コマンド実行例］

 pdinit -d /usr/seifile/infl01

制御文ファイル（/usr/seifile/infl01）の内容

 /* マスタディレクトリ用RDエリアの定義 */
 create rdarea PDBMAST   ...............................1
               for masterdirectory   ...................2
               page 4096 characters   ..................3
               storage control segment 50 pages   ......4
               file name "/svr01/rdmaster"
                   initial 10 segments ;   .............5

/* データディレクトリ用RDエリアの定義 */
 create rdarea PDBDDIR   ...............................6
               for datadirectory   .....................7
               page 4096 characters   ..................8
               storage control segment 50 pages   ......9
               file name "/svr01/rdddir"
                   initial 5 segments ;   ..............10

/* データディクショナリ用RDエリアの定義 */
 create rdarea PDBDDIC   ...............................11
               for datadictionary   ....................12
               page 4096 characters   ..................13
               storage control segment 30 pages   ......14
               file name "/svr01/rdddic"
                   initial 150 segments ;   ............15

/* データディクショナリLOB用RDエリアの定義 */
 create rdarea PDBDICL1   ..............................16
               for LOB used by HiRDB(SQL_ROUTINES)   ...17
               page 8192 characters   ..................18
               storage control segment 1 pages   .......19
               file name "/svr01/rddicl1"
                   initial 200 segments ;   ............20

/* データディクショナリLOB用RDエリアの定義 */
 create rdarea PDBDICL2   ..............................21
               for LOB used by HiRDB(SQL_ROUTINES)   ...22
               page 8192 characters   ..................23
               storage control segment 1 pages   .......24
               file name "/svr01/rddicl2"
                   initial 2000 segments ;   ...........25

/* ユーザ用RDエリアの定義 */
 create rdarea PDBUSER01   .............................26
               for user used by PUBLIC   ...............27
               page 4096 characters   ..................28
               storage control segment 150 pages   .....29
               file name "/svr02/rduser01"
                   initial 50 segments ;   .............30

/* ユーザLOB用RDエリアの定義 */
 create rdarea PDBULOB01   .............................31
               for LOB used by PUBLIC   ................32
               page 8192 characters   ..................33
               storage control segment 1 pages   .......34
               file name "/svr02/rdulob01"
                   initial 50 segments ;   .............35

/* ユーザ用RDエリアの定義 */
 create rdarea PDBUSER02   .............................36
               for user used by USERID   ...............37
               page 4096 characters   ..................38
               storage control segment 50 pages   ......39
               file name "/dbarea/area1/rduser02"
                   initial 100 segments ;   ............40

［説明］

RDエリアの名称　PDBMAST

RDエリアの種類　マスタディレクトリ用RDエリア

ページ長　4096バイト

セグメントサイズ　50ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr01/rdmaster

セグメント数　10

RDエリアの名称　PDBDDIR

RDエリアの種類　データディレクトリ用RDエリア

ページ長　4096バイト

セグメントサイズ　50ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr01/rdddir

セグメント数　5

RDエリアの名称　PDBDDIC

RDエリアの種類　データディクショナリ用RDエリア

ページ長　4096バイト

セグメントサイズ　30ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr01/rdddic

セグメント数　150

RDエリアの名称　PDBDICL1

RDエリアの種類　データディクショナリLOB用RDエリア（ストアドプロシジャの定義ソース文を格納）

ページ長　8192バイト

セグメントサイズ　1ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr01/rddicl1

セグメント数　200

RDエリアの名称　PDBDICL2

RDエリアの種類　データディクショナリLOB用RDエリア（ストアドプロシジャのオブジェクトを格納）

ページ長　8192バイト

セグメントサイズ　1ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr01/rddicl2

セグメント数　2000

RDエリアの名称　PDBUSER01

RDエリアの種類　ユーザ用RDエリア（公用）

ページ長　4096バイト

セグメントサイズ　150ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr02/rduser01

セグメント数　50

RDエリアの名称　PDBULOB01

RDエリアの種類　ユーザLOB用RDエリア（公用）

ページ長　8192バイト

セグメントサイズ　1ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr02/rdulob01

セグメント数　50

RDエリアの名称　PDBUSER02

RDエリアの種類　ユーザ用RDエリア（私用）

認可識別子　USERID

ページ長　4096バイト

セグメントサイズ　50ページ

RDエリアを構成するHiRDBファイルの指定

名称　/dbarea/area1/rduser02

セグメント数　100

【HiRDB/パラレルサーバの場合】

［概要］

［コマンド実行例］

 pdinit -d /usr/seifile/infl01

制御文ファイル（/usr/seifile/infl01）の内容

 /* マスタディレクトリ用RDエリアの定義 */
 create rdarea PDBMAST   ..........................................1
               for masterdirectory   ..............................2
               server name dics   .................................3
               page 4096 characters   .............................4
               storage control segment 50 pages   .................5
               file name "/svr01/rdmaster"
                   initial 10 segments ;   ........................6

/* データディレクトリ用RDエリアの定義 */
 create rdarea PDBDDIR   ..........................................7
               for datadirectory   ................................8
               server name dics   .................................9
               page 4096 characters   .............................10
               storage control segment 50 pages   .................11
               file name "/svr01/rdddir"
                   initial 5 segments ;   .........................12

/* データディクショナリ用RDエリアの定義 */
 create rdarea PDBDDIC   ..........................................13
               for datadictionary   ...............................14
               server name dics   .................................15
               page 4096 characters   .............................16
               storage control segment 30 pages   .................17
               file name "/svr01/rdddic"
                   initial 150 segments ;   .......................18

/* データディクショナリLOB用RDエリアの定義 */
 create rdarea PDBDICL1   .........................................19
               for LOB used by HiRDB(SQL_ROUTINES)   ..............20
               server name dics   .................................21
               page 8192 characters   .............................22
               storage control segment 1 pages   ..................23
               file name "/svr01/rddicl1"
                   initial 200 segments ;   .......................24

/* データディクショナリLOB用RDエリアの定義 */
 create rdarea PDBDICL2   .........................................25
               for LOB used by HiRDB(SQL_ROUTINES)   ..............26
               server name dics   .................................27
               page 8192 characters   .............................28
               storage control segment 1 pages   ..................29
               file name "/svr01/rddicl2"
                   initial 2000 segments ;   ......................30

/* ユーザ用RDエリアの定義 */
 create rdarea PDBUSER01   ........................................31
               for user used by PUBLIC   ..........................32
               server name bes1   .................................33
               page 4096 characters   .............................34
               storage control segment 150 pages   ................35
               file name "/svr02/rduser01"
                   initial 50 segments ;   ........................36

/* ユーザLOB用RDエリアの定義 */
 create rdarea PDBULOB01   ........................................37
               for LOB used by PUBLIC   ...........................38
               server name bes1   .................................39
               page 8192 characters   .............................40
               storage control segment 1 pages   ..................41
               file name "/svr02/rdulob01"
                   initial 50 segments ;   ........................42

/* ユーザ用RDエリアの定義 */
 create rdarea PDBUSER02   ........................................43
               for user used by USERID   ..........................44
               server name bes2   .................................45
               page 4096 characters   .............................46
               storage control segment 50 pages   .................47
               file name "/dbarea/area1/rduser02"
                   initial 100 segments ;   .......................48

［説明］

RDエリアの名称　PDBMAST

RDエリアの種類　マスタディレクトリ用RDエリア

RDエリアを管理するサーバの名称　dics

ページ長　4096バイト

セグメントサイズ　50ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr01/rdmaster

セグメント数　10

RDエリアの名称　PDBDDIR

RDエリアの種類　データディレクトリ用RDエリア

RDエリアを管理するサーバの名称　dics

ページ長　4096バイト

セグメントサイズ　50ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr01/rdddir

セグメント数　5

RDエリアの名称　PDBDDIC

RDエリアの種類　データディクショナリ用RDエリア

RDエリアを管理するサーバの名称　dics

ページ長　4096バイト

セグメントサイズ　30ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr01/rdddic

セグメント数　150

RDエリアの名称　PDBDICL1

RDエリアの種類　データディクショナリLOB用RDエリア（ストアドプロシジャの定義ソース文を格納）

RDエリアを管理するサーバの名称　dics

ページ長　8192バイト

セグメントサイズ　1ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr01/rddicl1

セグメント数　200

RDエリアの名称　PDBDICL2

RDエリアの種類　データディクショナリLOB用RDエリア（ストアドプロシジャのオブジェクトを格納）

RDエリアを管理するサーバの名称　dics

ページ長　8192バイト

セグメントサイズ　1ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr01/rddicl2

セグメント数　2000

RDエリアの名称　PDBUSER01

RDエリアの種類　ユーザ用RDエリア（公用）

RDエリアを管理するサーバの名称　bes1

ページ長　4096バイト

セグメントサイズ　150ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr02/rduser01

セグメント数　50

RDエリアの名称　PDBULOB01

RDエリアの種類　ユーザLOB用RDエリア（公用）

RDエリアを管理するサーバの名称　bes1

ページ長　8192バイト

セグメントサイズ　1ページ

RDエリアを構成するHiRDBファイルの指定

名称　/svr02/rdulob01

セグメント数　50

RDエリアの名称　PDBUSER02

RDエリアの種類　ユーザ用RDエリア（私用）

認可識別子　USERID

RDエリアを管理するサーバの名称　bes2

ページ長　4096バイト

セグメントサイズ　50ページ

RDエリアを構成するHiRDBファイルの指定

名称　/dbarea/area1/rduser02

セグメント数　100

4　データベース定義ユティリティ（pddef）

この章では，スキーマの定義や内容の変更などをするデータベース定義ユティリティ（pddef）について説明します。

4.1　概要

4.1.1　機能

データベース定義ユティリティ（pddef）は，スキーマの定義や内容の変更などをするユティリティです。

標準入力から入力した定義系SQLを実行し，スキーマの定義や内容の変更などをしてから，その実行結果を標準出力に出力します。また，定義情報はディクショナリ表に格納されます。

なお，データベース定義ユティリティを実行する前に，クライアント環境定義を設定しておく必要があります。最低限，PDHOST，PDNAMEPORT，及びPDUSERは指定してください。指定例を次に示します。

% setenv PDHOST=host1
% setenv PDNAMEPORT=20001
% setenv PDUSER='"k916321"/"k916321"'
        :

クライアント環境定義については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

データベース定義ユティリティ（pddef）の概要を次の図に示します。

図4‒1　データベース定義ユティリティ（pddef）の概要

4.1.2　実行者

CONNECT権限を持っているユーザが実行できます。ただし，実行するSQLによって必要な権限が異なります。SQL実行時の権限については，マニュアル「HiRDB SQLリファレンス」を参照してください。

4.2　コマンドの形式

4.2.1　形式

　pddef 〔-e〕 〔-s〕 〔-R〕 ｛定義系SQL｜入力ファイル｝

4.2.2　オプション

-e

SQL文の終了指定として，END_FUNC;（CREATE FUNCTIONの場合），END_TYPE;（CREATE TYPEの場合），又はEND_TRIG（CREATE TRIGGERの場合）を追加する場合に指定します。

CREATE FUNCTIONの場合：

1行の最後にEND_PROC;又はEND_FUNC;があれば，そこまでをSQL文とみなします。

CREATE TYPEの場合：

1行の最後にEND_PROC;又はEND_TYPE;があれば，そこまでをSQL文とみなします。

CREATE TRIGGERの場合：

1行の最後にEND_PROC;又はEND_TRIG;があれば，そこまでをSQL文とみなします。

SQL文の継続行の扱いについては，「継続行の扱い」を参照してください。

-s

定義系SQLを直接入力する場合，入力待ちのプロンプトを表示するときに指定します。

プロンプトは，入力状況に応じて次の二つが表示されます。

COMMAND ?：通常の入力待ちを示します。

NEXT ?：SQL文の継続行の入力待ちを示します。

表示例を次に示します。

pddef -s
COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+

CREATE TABLE T1 (
NEXT ?    +----2----+----3----+----4----+----5----+----6----+----7----+

C1 INT,
NEXT ?    +----2----+----3----+----4----+----5----+----6----+----7----+

C2 CHAR(64)
NEXT ?    +----2----+----3----+----4----+----5----+----6----+----7----+

);
KFPA12000-I Processing of SQL completed
COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+

｛定義系SQL｜入力ファイル｝

定義系SQLを記述します。

定義系SQLを直接入力する方法と，定義系SQLを記述した入力ファイルを指定する方法があります。定義系SQLについては，マニュアル「HiRDB SQLリファレンス」を参照してください。

定義系SQLを直接入力する場合：

pddefを実行するとSQL文の入力待ちになります。そのときに，定義系SQLを入力してください。pddefの後に続けてSQL文を入力できません。それぞれのSQL文の最後にはセミコロン（；）を指定してください。

pddefを終了する場合，＜コントロール＞＋＜Ｄ＞を押してください。

入力ファイルを指定する場合：

あらかじめ定義系SQLを記述した入力ファイルを作成します。リダイレクションによって標準入力の入力元を，その入力ファイルに変更します。

（例）pddef <infile

-R

実行したSQLの一部又はすべてでSQLCODEが負の場合（HiRDB接続時の異常終了も含む），pddefのリターンコードを4にするときに指定します。このオプションは，pddef実行時のSQL中のエラーを検知したい場合に指定します。

4.3　継続行の扱い

4.3.1　CREATE PROCEDURE，CREATE FUNCTION，CREATE TYPE，及びCREATE TRIGGER以外のSQLの場合

1行の最後にセミコロン（；）があれば，そこまでをSQL文とみなして処理します（セミコロンの後ろの空白及び制御文字は無視されます）。セミコロンがない場合は，その行は次の行に継続しているものとして扱われます。

（例）

  CREATE TABLE T1(C1 INT,     （継続）
               C2 CHAR(10),   （継続）
               C3 CHAR(10));  （SQL文の終了）

SQL文中に引用符（"）で囲まれたセミコロンが行の最後に記述してある場合は，SQL文の終了とみなされます。

4.3.2　CREATE PROCEDURE，CREATE FUNCTION，CREATE TYPE，及びCREATE TRIGGERの場合

CREATE PROCEDURE，CREATE FUNCTION，CREATE TYPE，及びCREATE TRIGGERでのSQL文の終了指定を次の表に示します。1行の最後に次の表に示す文字列があれば，そこまでをSQL文とみなします（セミコロンの後ろの空白及び制御文字は無視されます）。

表4‒1　CREATE PROCEDURE，CREATE FUNCTION，CREATE TYPE，及びCREATE TRIGGERでのSQL文の終了指定

SQL文

-eオプション

指定なし

指定あり

CREATE PROCEDURE

END_PROC;

END_PROC;

CREATE FUNCTION

END_PROC;

END_PROC;又はEND_FUNC;

CREATE TYPE

END_PROC;

END_PROC;又はEND_TYPE;

CREATE TRIGGER

END_PROC;

END_PROC;又はEND_TRIG;

CREATE PROCEDURE，CREATE FUNCTION，CREATE TYPE，及びCREATE TRIGGERの場合は，1行の最後にセミコロンがあっても次の行に継続しているものとして扱われます。

（例）

  CREATE PROCEDURE P1()                  （継続）
  BEGIN                                  （継続）
    INSERT INTO T1(C1) VALUES(10);       （継続）
    UPDATE T1 SET C1 = 0 WHERE C1 < 0;   （継続）
  END                                    （継続）
  END_PROC;                              （SQL文の終了）

SQL文中に引用符（"）で囲まれたEND_PROC；が行の最後に記述してある場合は，SQL文の終了とみなされます。

4.3.3　SQL文の途中でEOFを検知した場合

SQL文の途中（セミコロンがない状態）でEOFを検知した場合，コマンドの終了とみなされ，それまでに入力したSQL文が実行されます。

（例）

CREATE TABLE T1(C1 INT,             （継続）
                C2 CHAR(10)         （継続）
EOF                                 （コマンドの終了）

4.4　規則及び注意事項

4.4.1　規則

データベース定義ユティリティは，HiRDBが稼働中のときだけ実行できます。

データベース定義ユティリティは，任意のサーバマシンから実行できます。

定義系SQLを実行すると，1SQLごとにコミット処理を実行します。

実行できるSQL文の長さは，最大2,000,000バイトです。

1行に複数の定義系SQLは記述できません。

データベース定義ユティリティでCREATE INDEXを実行する場合，インデクスを作成する表に行データが格納されていると，CREATE INDEXを実行するときにインデクスを一括作成します。このとき，クライアント環境定義にPDDBLOG=NOを指定していると，データベースの更新ログ取得しないでインデクスを一括作成します。したがって，この場合HiRDB管理者はログレスモードで運用する必要があります。ログレスモードの運用方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

データ連動の対象となる抽出側データべースに対して，ALTER TABLE又はDROP TABLEは実行しないでください。実行した場合，整合性が保証されません。ただし，対象となるデータべース中の表又は列が更新中でなく，かつ既に更新情報がすべて反映側に転送されている場合には，HiRDB側の定義を変更してください。そして，それに合わせてHiRDB Datareplicator側での抽出となる表又は列の抽出定義をhdeprepコマンドで再度解析してからHiRDB Datareplicatorを再起動すると，整合性が保証されます。これらの手順については，マニュアル「HiRDBデータ連動機能 HiRDB Datareplicator」を参照してください。

システム定義のpd_sql_simple_comment_useオペランドがYの場合，Nの場合と制御文字の扱いが異なるため，制御文字を含むSQLの動作が次のように変わります。

改行コードを含め，2,000,000バイトを超えるSQLがエラーになります。

字句中に制御文字を含むSQLがエラーになります。又はオペランドの値によって結果が異なります。

pddefを実行する場合，文字コードは定義を登録するHiRDBサーバと同じになるように設定し，設定した文字コードで入力してください。

pddef実行時のLANG環境変数，クライアント環境定義PDLANG，PDCLTCNVMODEの設定方法を次の表に示します。

表4‒2　pddef実行時のLANG，PDLANG，及びPDCLTCNVMODEの設定方法

入力文字コード

定義を登録するHiRDBサーバの文字コード※１

pddef実行環境の文字コード

LANG※２

PDLANG※３

PDCLTCNVMODE※３

SJIS（シフトJIS漢字コード）

SJIS

SJIS

Linux版の場合：SJIS

上記以外の場合：省略

省略

UJIS（EUC日本語漢字コード）

UJIS

UJIS

省略

C（単一バイト文字コード）

C

C

省略

chinese（EUC中国語漢字コード）

chinese

任意

CHINESE

GB18030（中国語漢字コード）

chinese-gb18030

任意

CHINESE-GB18030

Unicode（UTF-8）

utf-8

任意（推奨値はC）

UTF-8

Unicode（IVS対応UTF-8）

utf-8_ivs

任意（推奨値はC）

UTF-8_IVS，又はUTF-8

注※1

pdsetupコマンドの-cオプションで設定した値です。

注※2

LANG環境変数の指定値はOSごとに異なります。LANGに指定する文字コードについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

注※3

PDLANG，及びPDCLTCNVMODEについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

4.4.2　注意事項

データベース定義ユティリティの結果は，ユティリティ実行時のリターンコード，又はディクショナリ表を検索することで確認できます。リターンコードの意味を次に示します。

-Rオプションを省略した場合

リターンコード

意味

対策方法

HiRDBの動作

0

正常終了（SQLがエラーとなった場合も含む）

該当しません。

該当しません。

8

メモリ不足

ほかのプロセスが終了してから再度実行するか，又はメモリを増やしてください。

処理を中断して，pddefを終了します。

オプション指定エラー

オプションを正しく指定してください。

内部通信（オペレーションコードSINF）エラー

出力されるメッセージに従って対処してください。

-Rオプションを指定した場合

リターンコード

意味

対策方法

HiRDBの動作

0

正常終了

該当しません。

該当しません。

4

HiRDB接続時のエラー

設定している環境変数を見直してください。

処理を中断して，pddefを終了します。

SQLエラー

実行したSQLを見直してください。

処理を続行します。

8

メモリ不足

ほかのプロセスが終了してから再度実行するか，又はメモリを増やしてください。

処理を中断して，pddefを終了します。

オプション指定エラー

オプションを正しく指定してください。

内部通信（オペレーションコードSINF）エラー

出力されるメッセージに従って対処してください。

注

リターンコード4が発生し，その後にリターンコード8が発生した場合，処理を中断し，最終リターンコード8で終了します。

HiRDB接続時のパスワード秘匿化機能を使用している場合，必要に応じて，クライアント環境変数PDAUTHTYPEを設定し，HiRDBへ接続するときの認証方式を指定してから実行してください。指定値についてはマニュアル「HiRDB システム運用ガイド」の「HiRDB接続時のパスワード秘匿化機能の設定方法」を参照してください。

通信情報ファイルディレクトリ変更機能を使用している場合，クライアント環境定義PDIPCFILEDIRに値を設定する必要があります。指定値については，マニュアル「HiRDB UAP開発ガイド」の「クライアント環境定義の設定内容」を参照してください。

4.4.3　SQLエラー時に出力される情報

次のSQL文でエラーが発生した場合，GET DIAGNOSTICS文が実行され，エラー情報が出力されます。ただし，SQL文中に注釈がある場合，ERROR_POSITIONには注釈を除いた値が表示されます。

CREATE PROCEDURE

CREATE FUNCTION

CREATE TYPE

ALTER PROCEDURE

ALTER ROUTINE

CREATE TRIGGER

エラー情報の形式を次の図に示します。

図4‒2　エラー情報の形式

4.4.4　注釈（コメント）の扱い

SQL文の最初に現れた「/*」以降を注釈とみなします。それ以降，指定したすべての文字（セミコロンを含む）を注釈として扱います。また，注釈の開始を示す「/*」以降，最初に現れた「*/」を注釈の終了とみなします。この注釈を囲み注釈といいます。ただし，システム定義のpd_sql_simple_comment_useオペランドがYの場合は，SQL文中の「--」から，それ以降の最初の改行コードまでのすべての文字（セミコロンを含む）を注釈とみなします。この注釈を単純注釈といいます。

例を次に示します。なお，下線部が注釈とみなされます。

（例1）
CREATE TABLE T1 (C1 INT) ; /* CU ADDRESS TABLE */   …注釈の開始・終了

（例2）
CREATE TABLE T1 /* CU ADDRESS TABLE */ (C1 INT) ;   …注釈の開始・終了

（例3）
CREATE TABLE T1 /* CU ADDRESS   …注釈の開始・継続
TABLE */ (C1 INT) ;   ………………注釈の終了

（例4）
CREATE TABLE T1 /* CU ADDRESS TABLE * (C1 INT) ;   …注釈の開始・継続

（例5）
CREATE TABLE T1 /* CU /* ADDRESS */ TABLE */ (C1 INT) ;  …注釈の開始・終了

（例6）
CREATE TABLE T1 -- CU ADDRESS  …注釈の開始・終了
(C1 INT) ;

引用符（"）やアポストロフィ（'）で囲まれた「/* 〜 */」及び「-- 〜 改行コード」は注釈とみなされません。注釈の記述方法については，マニュアル「HiRDB SQLリファレンス」のSQLの記述形式を参照してください。また，注釈の扱いは会話型SQL実行ユティリティ（pdsql）とは異なるので注意してください。

4.4.5　CONNECT後の動作

CONNECT後にサーバと内部通信します（オペレーションコードSINF）。この内部通信がエラーになると，SQLエラーが出力され，処理を終了します。

4.4.6　SQL文中の制御文字の扱い

データベース定義ユティリティを実行した場合，条件によってSQL文中の制御文字の扱いが異なります。条件ごとの制御文字の扱いを次に示します。

表4‒3　SQL文中の制御文字の扱い

項番

システム定義のpd_sql_simple_comment_useオペランドの値

改行コードの削除

改行コード以外の制御文字の空白変換

1

N

○

○

2

Y

×

×

（凡例）

○：削除又は変換します。

×：削除又は変換しません。

4.4.7　BOMを持つファイルの使用

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pddefの入力ファイルには，BOMを持つファイルを使用できます。なお，pddefの入力ファイルとしてBOMを持つファイルを使用しても，BOMは読み飛ばされます。

4.5　使用例

データベース定義ユティリティの使用例を，例1に示します。

例1

次に示す表及びインデクスを定義します。
　・表　ZAIKO
　・インデクス　I1
なお，次に示すRDエリアが作成されているものとします。
　・PDBUSER01
　・PDBUSER02
　・PDBUSER03
　・PDBUSER04

［概要］

［コマンド実行例］

・定義系SQLを直接入力する場合

 pddef
   CREATE SCHEMA;   ......................................1
   CREATE TABLE ZAIKO(SCODE CHAR(4),SNAME NCHAR(8),
                      COL NCHAR(1),TANKA INTEGER,
                      ZSURYO INTEGER)
                IN((PDBUSER01) SCODE<'302S',
                   (PDBUSER02) SCODE>='302S');   .........2
   CREATE INDEX I1 ON ZAIKO(SCODE)
                IN ((PDBUSER03),(PDBUSER04));   ..........3
 <＜コントロール＞＋＜Ｄ＞で終了>

［説明］

スキーマの定義

表（ZAIKO）の定義

インデクス（I1）の定義

・入力ファイルを指定する場合

 pddef < /usr/crfile

［説明］

入力ファイルの指定　/usr/crfile

入力ファイル（/usr/crfile）の内容

   CREATE SCHEMA;   ...........................................1
   CREATE TABLE ZAIKO(SCODE CHAR(4),SNAME NCHAR(8),
                      COL NCHAR(1),TANKA INTEGER,
                      ZSURYO INTEGER)
                IN((PDBUSER01) SCODE<'302S',
                   (PDBUSER02) SCODE>='302S');   ..............2
   CREATE INDEX I1 ON ZAIKO(SCODE)
                IN ((PDBUSER03),(PDBUSER04));   ...............3

［説明］

スキーマの定義

表（ZAIKO）の定義

インデクス（I1）の定義

5　データベース作成ユティリティ（pdload）

この章では，ユーザが用意したデータを表に格納するデータベース作成ユティリティ（pdload）について説明します。

なお，IVS対応UTF-8文字コード及びIVS対応UTF-16文字集合を使用する場合は，この章の記載を次のように読み替えてください。

UTF-8 -> IVS対応UTF-8

utf-8 -> utf-8_ivs

UTF-16 -> IVS対応UTF-16

utf-16be -> utf-16ibe

utf-16le -> utf-16ile

5.1　機能

データベース作成ユティリティ（pdload）は，ユーザが用意したデータを表へデータロードするユティリティです。

5.1.1　データロードとは

ユーザが用意したデータを入力し，表へデータを格納します。これをデータロードといいます。

データロードの概要を次の図に示します。

図5‒1　データロードの概要

(1)　入力データファイル

入力データファイルとは，ユーザが用意したデータを格納したファイルのことです。

使用できる形式としては，全部で4種類あります。基本的には次の2種類のうち，どちらかの形式を使用します。

DAT形式：

列データを文字で記述する形式です。一般的には，CSV形式と呼ばれている形式です。

pdloadが列データをHiRDB内部形式に変換して格納するため，HiRDB以外のシステムのデータを基に表を作成する場合に適しています。

DAT形式の記述例：

中村,36,1958-10-15,yokohama
　　　　　　：

また，DAT形式には，更に拡張機能が使用できる拡張DAT形式もあります。形式はDAT形式と基本的に同じですが，囲み文字の変更などの拡張機能を使用できます。

バイナリ形式：

列データをHiRDB内部形式で記述する形式です。

HiRDB内部形式への変換処理が不要となるため，性能面で優れています。大容量のデータを格納する場合，性能を要求される場合に適しています。

バイナリ形式の記述例：

928691ba814081408140000000243f8000000008796f6b6f68616d61
<------------------><------><------><------------------>
        中村          36       1         yokohama
　　　　　　：

注　上段は実際のデータを，下段はそのデータの内容を示しています。

また，次のように，1行固定で記述する形式，及びpdrorgが出力する形式も使用できます。

固定長データ形式：

1行の長さ，及び各列データの開始位置（行の先頭からのオフセット）を，すべての行が同じになるように記述します。記述する形式としては，DAT形式，又はバイナリ形式のどちらかで記述します。

セパレータ文字で区切られていないテキストデータや，データ格納順序などを変更したいバイナリ形式のデータを基に表を作成する場合に適しています。

pdrorg出力バイナリ形式：

pdrorgを使用してバイナリ形式で出力したアンロードデータファイルです。

他HiRDBシステムからデータを移行するときなどに使用します。

(2)　制御情報ファイル

制御情報ファイルには，pdloadの制御文を記述します。

制御文には，入力データファイルの指定，インデクス情報の指定，LOB列の情報の指定，ファイル出力先ディレクトリの指定などを記述します。なお，制御文にファイル出力先ディレクトリを指定しない場合，「制御文で指定しない場合のファイル出力先ディレクトリ」に示すディレクトリにファイルを出力します。

(3)　表

表は，あらかじめ定義されている必要があります。

(4)　表の属性によるデータロード方法

(a)　表にインデクスが定義されている場合

同時にインデクスも作成できます。

また，データロード時にはインデクス情報だけ出力しておいて，後からpdrorgでインデクスを作成することもできます。

(b)　横分割表の場合

表単位，又はRDエリア単位にデータロードできます。

(c)　監査証跡表の場合

セキュリティ監査機能を使用する場合，監査証跡ファイルに出力された監査証跡を監査証跡表にデータロードできます。

通常の表（ユーザが定義する表）に対するデータロードか，監査証跡表に対するデータロードかは，制御情報ファイルのsrcuoc文で指定します。srcuoc文については，「srcuoc文（UOC格納ライブラリの情報の記述）」を参照してください。

5.1.2　LOB列がある表へのデータロード

(1)　データロード方法

LOB列がある表の場合，LOB列構成基表とLOB列へ同時にデータロードできます。また，別々にデータロードすることもできます。LOB列構成基表とは，LOB列がある表のLOB列を除いた部分のことをいいます。また，LOB列とは，データ型がBLOBの列のことをいいます。

LOB列だけを後からデータロードするのは，表に複数のLOB列がある場合に，LOB列へのデータロードを，列単位に分けて複数同時実行するための機能です。ただし，LOB列構成基表のデータロードだけ完了した状態では，LOB列へのデータロードが未完というデータベースとしては不安定な状態なので，該当する表の更新はPURGE TABLE文を含めて絶対にしないでください。別々にデータロードする場合は，他ユーザからの更新を抑止するために，RDエリアをコマンド閉塞にしておくことをお勧めします。

LOB列がある表へのデータロード方法を次の図に示します。

図5‒2　LOB列がある表へのデータロード方法

LOB入力ファイルとは，1列1行ごとに用意するファイルです。したがって，LOB列数×行数分のファイルが必要となります。

列単位LOB入力ファイルとは，1列ごとに用意するファイルです。したがって，LOB列数分のファイルが必要となります。

(2)　入力データ

LOB列がある表へデータロードする場合，入力データは次のどちらかのパターンで用意します。

入力データファイル

LOB入力ファイル

LOB列以外のデータ，LOB入力ファイル名を記述

格納データ数分のLOB入力ファイルを用意

LOB列以外のデータ，LOBデータを記述

不要

5.1.3　プラグインが提供する抽象データ型列（LOB属性）がある表へのデータロード

(1)　データロード方法

プラグインが提供する抽象データ型列（LOB属性）がある表へデータロードする場合，LOB列構成基表とLOB列へ同時にデータロードします。

(2)　入力データ

プラグインが提供する抽象データ型列（LOB属性）がある表へデータロードする場合，入力データは次のどちらかのパターンで用意します。

入力データファイル

LOBパラメタのファイル

LOB属性の抽象データ型列以外のデータ，LOBパラメタのファイル名を記述

格納データ数分のLOBパラメタのファイルを用意

LOB属性の抽象データ型列以外のデータ，LOBパラメタを記述

不要

LOBパラメタとは，抽象データ型列に格納する値を生成する，コンストラクタ関数の入力パラメタとなるLOBデータのことをいいます。

5.1.4　文字集合を定義した表へのデータロード

文字集合の列がある表にデータロードする場合，入力データ中の文字コードを列の文字集合に指定した文字コードに変更します。入力データファイルの形式とデータロードする表の組み合わせによって，文字コード変換の有無は異なります。文字コード変換の有無を次の表に示します。

表5‒1　文字コード変換の有無

入力データファイルの形式

データロード対象表の文字集合定義列の有無

あり

なし

DAT形式

○

×

バイナリ形式

×※１

固定長データ形式

○

pdrorgが出力したファイル

DAT形式

○

バイナリ形式

pdload用アンロードファイル※３

○

pdrorg用アンロードファイル※３

○※２

表移行用アンロードファイル※３

○

（凡例）

○：文字コード変換をします。

×：文字コード変換をしません。

注※1

データベースには文字コ−ド変換しないで格納するため，格納データは保証しません。

注※2

pdrorg実行時は-k unld指定でアンロードを行い，既定義型の文字コードで出力したアンロードデータファイルを使用してください。-k rorg指定で再編成を行い，文字集合が定義された列のコードで出力したアンロードデータファイルを使用するとKFPL15047-Eメッセージを出力して処理を打ち切ります。

注※3

詳細については，「pdrorg出力バイナリ形式ファイル」を参照してください。

文字集合の列がある表にユーザが作成したバイナリ形式の入力データファイルでデータロードする場合，pdloadは文字コード変換をしないため，入力データファイルのデータを文字集合定義列の文字コードにしておく必要があります。入力データファイルを作成するときに使用する文字コードを次の表に示します。

表5‒2　入力データファイルを作成するときに使用する文字コード

入力データファイルの形式

データロード対象表の文字集合定義列の有無

あり

なし

DAT形式

既定文字集合

既定文字集合

バイナリ形式

列に指定した文字コード

固定長データ形式

既定文字集合

(1)　注意事項

pdrorgで-Wオプションを指定してFIX表のデータをアンロードした場合，出力されたアンロードデータファイルの形式はユーザが作成したバイナリ形式ファイルと同じです。このため，文字集合の列がない表へはpdload実行時に-Wオプションを省略しても正しくデータロードできます。しかし，文字集合の列がある表にデータロードするとき，アンロードデータファイルは既定文字集合の文字コードで作られているため，-Wオプションを省略すると文字コード変換をしないで文字集合定義列にデータロードしてしまいます。必ず-Wを指定してください。

文字集合の列を分割キーとした場合は，文字コード変換後の値で分割条件の判定を行います。

5.1.5　自動採番機能を使用したデータロード

自動採番機能を使用してデータロードすると，表の列に，順序数生成子が生成する順序番号を格納できます。

自動採番機能を使用したデータロードを次の図に示します。

図5‒3　自動採番機能を使用したデータロード

［説明］

入力データファイルから，入力バッファにデータを読み込みます（ここでは，順序番号の取得方式としてバッファ単位取得方式を使用していると仮定します）。

読み込んだ行数分の順序番号を確保するため，順序数生成子をコールします。

順序数生成子では，確保した順序番号を返し，次に割り当てる値を現在値に設定します。

pdloadは，入力バッファからデータを読み込みながら，取得した順序番号を含めて行データを組み立てます。

組み立てた行データをデータロードします。

自動採番機能を使用してデータロードする場合，入力データファイルは次のどれかの形式でなければなりません。

DAT形式

拡張DAT形式

固定長データ形式

バイナリ形式

pdrorg出力バイナリ形式（pdload用アンロードファイル）

(1)　順序番号の格納方式

自動採番機能を使用してデータロードする場合，入力データファイル内の，順序番号を格納する列の扱いを選択できます。順序番号の格納方式には次の3種類があります。

列データ全置換：

順序番号を格納する列に対して，入力データファイル中の該当する列データをすべて順序番号に置き換えます。

列データ一部置換：

順序番号を格納する列に対して，入力データファイル中の該当する列データのうち，指定した置換条件に一致するデータだけ順序番号に置き換えます。

列データ追加：

順序番号を格納する列に対応するデータが入力データファイル中にない場合，順序番号を入力データとして追加します。なお，入力データファイルがバイナリ形式の場合，この方式は指定できません。

順序番号の格納方式は，列構成情報ファイル又はナル値・関数情報ファイルで指定します。

(2)　順序番号の取得方式

自動採番機能を使用してデータロードする場合，順序数生成子からの順序番号の取得タイミングと取得単位を選択できます。順序番号の取得方式には次の3種類があります。

全数一括取得方式：

データロード完了後に一括して順序数生成子の値を使用した順序番号にします。

指定単位取得方式：

指定した単位ごとに順序番号を取得しながらデータロードします。

バッファ単位取得方式：

入力データファイルの形式が固定長データ形式，バイナリ形式，又はpdload用アンロードファイルの場合，入力バッファに読み込める行数分の順序番号を取得しながらデータロードします。入力データファイルの形式がDAT形式，又は拡張DAT形式の場合，1行ごとに順序番号を取得しながらデータロードします。

(3)　順序番号を格納できるデータ型

順序番号は次のデータ型の列に格納できます。

INTEGER

SMALLINT

DECIMAL

FLOAT

SMALLFLT

CHAR

VARCHAR

MCHAR

MVARCHAR

これらのデータ型と順序数生成子のデータ型が異なる場合，pdloadがデータ変換してデータロードします。変換後のデータが列のデータ型として格納できない場合，データロードはエラーとなります。

(4)　エラー時の処理

(a)　論理エラー発生時

入力データで論理エラーが発生した場合，エラーが発生する前に割り当てられた順序番号は欠番となります。

(b)　データ変換エラー発生時

「順序番号を格納できるデータ型」に示すデータ変換エラーが発生した場合，pdloadは-eオプションの指定有無に関係なく，エラー終了します。この場合，option文のdataerrオペランドの指定によって，それまでデータロードしたデータをコミットするか，又はロールバックするかを決定します。ロールバック指定の場合は，データロード中に使用した順序番号は欠番となります。

(5)　注意事項

自動採番機能を使用したデータロード実行時の注意事項を次に示します。

1表の複数列に順序番号を格納する場合，各列に異なる順序数生成子を指定したときは，それぞれ指定した順序数生成子が生成した順序番号を格納します。また，各列に同じ順序数生成子を指定した場合は，同じ行の各列に同じ値の順序番号を格納します。

UOCを利用して，ユティリティが入力デ−タファイルを入力してデータロードする場合，該当する列に対する順序番号を置換又は追加する前のデータをUOCに渡します。pdloadは，UOCが編集したデータを受け取った後，該当する列に対して順序番号の置換又は追加をします。

繰返し列に対しては，自動採番機能を使用したデータロードはできません（エラーとなります）。繰返し列に順序番号を格納する場合は，次のどちらかの方法で対処してください。

HiRDB SQL ExecuterやUAPなどを使用して，入力データに順序番号を含めてINSERT文を実行する。

自動採番機能を使用しないでデータロードし，HiRDB SQL ExecuterやUAPなどを使用して，順序番号を格納する繰返し列に対してUPDATE文を実行する。

自動採番機能を使用したデータロードでは，順序数生成子に対して排他を掛けます。特に，順序番号の取得方式が全数一括取得方式の場合はデータロード処理が終了するまで排他を掛けるため，ほかのユティリティやUAPが排他待ちとなることがあります。

順序番号を割り当てた後で論理エラーが発生した場合，入力データの形式がDAT形式，拡張DAT形式，又は固定長データ形式のときは，エラーデータファイルに入力データの値が出力されます。

入力データの形式がバイナリ形式のときは，エラーデータファイルに順序番号が出力されます。

5.1.6　ユティリティ専用ユニットを利用したデータロード

HiRDB/シングルサーバでデータロードをする場合，ユティリティ専用ユニットを利用できます。ユティリティ専用ユニットには，入力データファイルを設置できます。

ユティリティ専用ユニットを利用した場合のデータロードを次の図に示します。

図5‒4　ユティリティ専用ユニットを利用した場合のデータロード

5.1.7　同期点指定のデータロード

通常，データロードをするときは，すべてのデータを格納した後にトランザクションを決着します。ユティリティが途中で異常終了した場合は，最初の時点までロールバックしてしまいます。このため，再実行時は最初からし直すことになります。

同期点指定のデータロードの場合，任意のデータ件数を格納するごとにトランザクションを決着できます。これによって，ユティリティが異常終了した場合でもロールバック時間及びデータロード再実行時間を短縮できるので，大量のデータロードをするときに適しています。

なお，インデクスの作成処理（インデクス一括作成モード），及びLOB列へのデータロード処理の場合は，同期点指定のデータロードは適用されません。この場合は，すべての処理が完了してからトランザクションが決着します。

同期点指定のデータロードをする場合，option文（jobオペランド）を指定します。同期点指定のデータロードの概要を次の図に示します。

図5‒5　同期点指定のデータロードの概要

［説明］

最初の実行では，障害発生後にロールバックします。200万件の時点でトランザクションが決着しているため，ロールバックするのは200万件の時点までです。

再実行では，200万件までのデータ格納処理をスキップし，それ以降のデータ格納処理をします。

5.1.8　エンディアンが異なるプラットフォーム間のデータ移行

既存のHiRDBシステムを別のHiRDBシステムに移行する場合，既存システムのデータを別システムに移行する必要があります。データ移行時，移行元システムと移行先システムでエンディアンが異なる場合，pdloadが入力データファイルのエンディアンを変換して移行先システムにデータロードできます。このとき，入力データファイルには，pdrorgを使用してバイナリ形式でアンロードしたファイル（pdrorg出力バイナリ形式ファイル）を指定します。エンディアンが異なるプラットフォーム間のデータ移行の概要を次の図に示します。

図5‒6　エンディアンが異なるプラットフォーム間のデータ移行の概要

［説明］

移行元システムでpdrorgを使用してデータをアンロードします。アンロードデータファイルを移行先システムに転送し，pdloadでエンディアンを変換してデータロードします。

pdrorg出力バイナリ形式ファイルについては，「pdrorg出力バイナリ形式ファイル」を参照してください。

(1)　エンディアン変換の有無

入力データの制御情報中の数値データと数値型データをエンディアン変換します。FIX表と非FIX表の入力データの変換有無をそれぞれ次の表に示します。

表5‒3　エンディアン変換の有無（FIX表）

データ型

エンディアン変換の有無

INTEGER

○

SMALLINT

○

DECIMAL

×

FLOAT※１

○

SMALLFLT※１

○

CHAR

×※２

NCHAR

×※２

MCHAR

×※２

DATE

×

TIME

×

TIMESTAMP

×

INTERVAL YEAR TO DAY

×

INTERVAL HOUR TO SECOND

×

（凡例）

○：エンディアン変換します。

×：エンディアン変換しません。

注※1

浮動小数点数はハードウェア表現によって精度が異なり，プラットフォーム間移行によってけた落ちが発生するおそれがありますが，これに関しては保証しません。

注※2

データ中に数値が入っていても，データ中のエンディアン変換はしません。

表5‒4　エンディアン変換の有無（非FIX表）

箇所

データ型

エンディアン変換の有無

基本行データの長さ及びオフセット部

−

○

既定義型の列データ値

INTEGER

○

SMALLINT

○

DECIMAL

×

FLOAT※１

○

SMALLFLT※１

○

CHAR

×※２

VARCHAR

△※２

NCHAR

×※２

NVARCHAR

△※２

MCHAR

×※２

MVARCHAR

△※２

DATE

×

TIME

×

TIMESTAMP

×

INTERVAL YEAR TO DAY

×

INTERVAL HOUR TO SECOND

×

BINARY

△※２

BLOB

△※２

コンストラクタ関数の引数のデータ値

INTEGER

○

SMALLINT

○

FLOAT※１

○

SMALLFLT※１

○

CHAR

×※２

VARCHAR

△※２

NCHAR

×※２

NVARCHAR

△※２

MCHAR

×※２

MVARCHAR

△※２

BINARY

△※２

BLOB

△※２

繰返し列の要素数

−

○

繰返し列のナル値フラグ

−

×

繰返し要素値

−

※3

BINARY引数のデータ値

−

×

BINARY列のデータ値

−

×

BLOB引数のデータ値

−

×※２

BLOB列のデータ値

−

×※２

（凡例）

○：エンディアン変換します。

△：実データ長部分だけをエンディアン変換します。

×：エンディアン変換しません。

−：該当しません。

注※1

浮動小数点数はハードウェア表現によって精度が異なり，プラットフォーム間移行によってけた落ちが発生するおそれがありますが，これに関しては保証しません。

注※2

データ中に数値が入っていても，データ中のエンディアン変換はしません。

注※3

繰返し列の要素値は既定義型の列データ値で該当するデータ型を参照してください。

5.1.9　データロードする表が格納されているRDエリア

データロードする表をUAPがアクセスして不当に待ち状態にならないように，データロードの対象となる表が格納されているRDエリア（インデクスが定義されている場合はインデクスが格納されているRDエリアも含む）は，pdholdコマンドで閉塞しておくことをお勧めします。

なお，横分割表にRDエリア単位にデータロードを並列実行すると，表の占有時間は短くなります（データロードの処理時間は短縮されます）。この場合，RDエリア単位の入力データファイルが用意できていない（表単位の入力データファイルしかない）ときは，src_work文を指定してください。src_work文を指定すると，横分割表にRDエリア単位にデータロードを並列実行するときに必要となる，RDエリア単位の入力データファイルが作成されます。この作成されるファイルを分割入力データファイルといいます。分割入力データファイルを作成する場合のオプション，及び制御文の指定可否については，「特定機能使用時のオプション，及び制御文の指定可否」を参照してください。

5.1.10　pdload実行時のログ取得方式

pdloadを実行する場合，ログ取得方式は更新前ログ取得モード（-l p）にすることをお勧めします。

更新前ログ取得モードの場合，更新後のデータベース更新ログを取得しないため，その分の処理時間が短縮されます。したがって，ログ取得モードを適用したときに比べてユティリティの実行時間を短縮できます。

5.1.11　実行者

(1)　コネクト権限

pdloadを実行するユーザ（-uオプション，又はPDUSER環境変数に設定した認可識別子）は，HiRDBに対するコネクト権限が必要です（pdloadはデータロード対象となる表の定義情報をディクショナリから検索するとき，HiRDBに接続するため）。

(2)　アクセス権限

基本的には，データロードする表の所有者が実行します。ほかのユーザが実行する場合は，データロードを実行するモードによって，次の権限が必要となります。ただし，監査証跡表へデータロードする場合，HiRDB管理者がコマンドを実行すると，パスワード入力要求のメッセージが表示されます。このとき，監査人がパスワードを入力してください。

追加モード（-dオプション指定なし）の場合：

INSERT権限を持っているユーザが実行できます。

作成モード（-dオプション指定あり）の場合：

INSERT権限，及びDELETE権限を持っているユーザが実行できます。

(a)　注意事項

表移行用アンロードファイルを使用する場合（-b -W -w指定時）は，データロードする表を所有するユーザで実行する必要があります。

表をインポートする場合（-b -W -w all指定時）は，スキーマを所有するユーザで実行する必要があります。

5.2　代表的なデータロードの例

ここでは，代表的なデータロードの例として次の三つについて説明します。

インデクスが定義されている表へのデータロード

LOB列がある表へのデータロード

プラグインが提供する抽象データ型列がある表へのデータロード

5.2.1　インデクスが定義されている表へのデータロード

インデクスが定義されている表へのデータロードを次の図に示します。

図5‒7　インデクスが定義されている表へのデータロード

(1)　実行するコマンド

pdloadで指定しているオプションについて説明します。

商品表：

データロードする表の，表識別子です。

control_file：

制御情報ファイルのファイル名です。

その他，省略しているオプションには次の仮定値が適用されます。

-d省略：追加モード

｛-a｜-b｝省略：入力データファイルがDAT形式

-i省略：インデクス一括作成モード

-l省略：更新前ログ取得モード

(2)　制御情報ファイル

(a)　source文

/usr/inputfileという名称の入力データファイルを指定しています。

(b)　index文

/usr/idxfileという名称のインデクス情報ファイルを指定しています。

(3)　入力データファイル

この例では，入力データファイルはDAT形式で記述しています。

(4)　入力データと表の列との並び順が異なる場合

入力データファイルのデータの並びと，表の列の並びが異なる場合，列構成情報ファイルを指定して入力データと表の列の並びを対応させることができます。

列構成情報ファイルは，入力データファイルがDAT形式，固定長データ形式，又はpdrorg出力バイナリ形式（非FIXのときだけ）の場合に使用できます。

例を次に示します。

5.2.2　LOB列がある表へのデータロード

LOB列がある表へのデータロードを次の図に示します。

図5‒8　LOB列がある表へのデータロード

(1)　実行するコマンド

pdloadで指定しているオプションについて説明します。

商品イメージ表：

データロードする表の，表識別子です。

control_file：

制御情報ファイルのファイル名です。

その他，省略しているオプションには次の仮定値が適用されます。

-d省略：追加モード

｛-a｜-b｝省略：入力データファイルがDAT形式

-i省略：インデクス一括作成モード

-l省略：更新前ログ取得モード

-k省略：f（LOB入力ファイルをLOB列×行数分用意し，入力データファイル中にそのLOB入力ファイルのファイル名を記述）

(2)　制御情報ファイル

(a)　source文

/usr/inputfileという名称の入力データファイルを指定しています。

(b)　index文

/usr/idxfileという名称のインデクス情報ファイルを指定しています。

(c)　lobdata文

/usr/lobdataという名称のLOB入力ファイルのディレクトリを指定しています。ここで指定したディレクトリ名と，入力データファイル中のLOB入力ファイル名を合わせて，絶対パス名となるようにします。

(d)　lobmid文

/usr/lobmid_fileという名称のLOB中間ファイルを指定しています。

(3)　入力データファイル

この例では，入力データファイルはDAT形式で記述しています。

また，LOB入力ファイルは別に用意し，入力データファイル中にLOB入力ファイルのファイル名を記述しています。

5.2.3　プラグインが提供する抽象データ型列がある表へのデータロード

プラグインが提供する抽象データ型がある表へのデータロードを次の図に示します。なお，ここではHiRDB Text Search Plug-inを例にして説明します。

図5‒9　プラグインが提供する抽象データ型がある表へのデータロード

(1)　実行するコマンド

pdloadで指定しているオプションについて説明します。

-c column_file：

列構成情報ファイルのファイル名です。

薬品管理表：

データロードする表の，表識別子です。

control_file：

制御情報ファイルのファイル名です。

その他，省略しているオプションには次の仮定値が適用されます。

-d省略：追加モード

｛-a｜-b｝省略：入力データファイルがDAT形式

-i省略：インデクス一括作成モード

-l省略：更新前ログ取得モード

-k省略：f（LOBパラメタのファイルを用意し，入力データファイル中にそのLOBパラメタのファイルのファイル名を記述）

(2)　制御情報ファイル

(a)　source文

/usr/inputfileという名称の入力データファイルを指定しています。

(b)　index文

/usr/idxfileという名称のインデクス情報ファイルを指定しています。

(c)　lobdata文

/usr/lobdataという名称のLOBパラメタのファイルのディレクトリを指定しています。ここで指定したディレクトリ名と，入力データファイル中のLOBパラメタのファイル名を合わせて，絶対パス名となるようにします。

(3)　入力データファイル

この例では，入力データファイルはDAT形式で記述しています。

また，LOBパラメタのファイルは別に用意し，入力データファイル中にLOBパラメタのファイルの名称を記述しています。

(4)　列構成情報ファイル

column_fileという名称の列構成情報ファイルを指定しています。

薬品ID：

入力データファイルの1番目にあるデータの列名

取り扱い説明書：

入力データファイルの2番目にあるデータの列名

func=(SGMLTEXT,param=blob)：

抽象データ型列へ格納する値を生成する，コンストラクタ関数の情報を指定します。

SGMLTEXT：コンストラクタ関数の名称

blob：コンストラクタ関数に渡す引数の型

5.3　目的ごとの参照先一覧

データロードの形態（どのような表にどのようなデータロードをするか）によって，指定するオプション，制御文，及び各ファイルが異なります。

指定するオプション，制御文，及び各ファイルの関連を次の図に示します。

図5‒10　オプション，制御文，及び各ファイルの関連

5.3.1　必ず指定する項目

pdloadを実行する場合には，次の項目を必ず指定するので，該当する参照先を参照してください。

項目

参照先

オプション

制御文，又はファイル

データロードする表の名称

〔認可識別子.〕表識別子

source文

制御文を記述したファイル

制御情報ファイル名

入力データファイルの形式

DAT形式

省略

入力データファイル

バイナリ形式

-b

入力データファイル

バイナリ形式（監査証跡ファイル）

-b

入力データファイル

-W

pdrorg出力バイナリ形式

-b

入力データファイル

-W

-w

-U

固定長データ形式

-a

入力データファイル

−

列名文

（凡例）−：該当しません。

5.3.2　データロードする表の属性によって指定する項目

次の項目が該当する場合，その参照先を参照してください。

項目

参照先

オプション

制御文，又はファイル

インデクスが定義されている場合

-i

index文

-x

idxwork文

-o

sort文

LOB列がある場合

LOB入力ファイルを使用するとき

-k

lobdata文

lobmid文

列単位LOB入力ファイルを使用するとき

-k

lobcolumn文

lobmid文

列単位LOB入力ファイル

プラグインが提供する抽象データ型列（LOB属性）がある場合

-k

lobdata文

XML型の列が定義されている場合

-K

option文

-G

繰返し列がある場合

−

array文

入力データファイル

可変長文字列があり，その列に対する入力データがない場合に，長さ0のデータを格納するとき※

-z

−

インナレプリカ機能を使用している場合

-q

−

制約定義がある場合

−

constraint文

分割格納条件を変更した場合

−

option文

監査証跡表の場合

−

source文

srcuoc文

（凡例）−：該当しません。

注※

表定義時にWITH DEFAULTを指定した場合は，1バイト，又は1文字の空白を格納します。指定していない場合は，ナル値を格納します。

5.3.3　入力データファイルの形態によって指定する項目

(1)　DAT形式の場合

次の項目が該当する場合，その参照先を参照してください。

項目

参照先

オプション

制御文

入力データと表の並びが対応していない場合

-c

列名文

入力データ中に表へ格納しないデータがある場合

-c

スキップデータ文

抽象データ型列に格納する値を生成するコンストラクタ関数の情報を記述する場合

-c

列名文

入力データ中のセパレータ文字がコンマ（，）以外の場合

-s

−

入力データ中の各国文字列型，及び混在文字列型のデータの，空白の文字コードを変換する場合

−

option文

文字列型，及びBINARY型の列に格納する入力データ長が列定義長より長い場合に，入力データエラーとして扱うとき

−

option文

DAT形式の入力データファイルが次のどちらかの条件を満たす場合

格納するデータ中に，改行記号又はNULL文字がある。

文字データを囲む文字が，引用符（"）以外である。

−

extdat文

INTEGER及びSMALLINTの列に，小数点があるデータを格納する場合

−

extdat文

（凡例）−：該当しません。

(2)　バイナリ形式の場合

次の項目が該当する場合，その参照先を参照してください。

項目

参照先

オプション

制御文

入力データと表の並びが対応していない場合※

-c

列名文

入力データ中に表へ格納しないデータがある場合※

-c

スキップデータ文

入力データをナル値とみなす値に変換する場合，又は抽象データ型列に格納する値を生成するコンストラクタ関数の情報を記述する場合

-v

列番号文

入力データ中の各国文字列型，及び混在文字列型のデータの，空白の文字コードを変換する場合

−

option文

（凡例）−：該当しません。

注※

pdrorgが出力した入力データファイルで，かつ非FIX表にデータロードする場合に指定できます。

(3)　固定長データ形式の場合

次の項目が該当する場合，その参照先を参照してください。

項目

参照先

オプション

制御文

入力データと表の並びが対応していない場合

-c

列名文

入力データ中に表へ格納しないデータがある場合

-c

スキップデータ文

入力データをナル値とみなす値に変換する場合，又は抽象データ型列に格納する値を生成するコンストラクタ関数の情報を記述する場合

-c

列名文

引用符（"）を入力データとして格納する場合

−

列名文

入力データ中の各国文字列型，及び混在文字列型のデータの，空白の文字コードを変換する場合

−

option文

（凡例）−：該当しません。

5.3.4　データロードの方法によって指定する項目

次の項目が該当する場合，その参照先を参照してください。

項目

参照先

オプション

制御文，又はファイル

データベース更新ログを取得する場合，又は取得しない場合

-l

−

大量のデータロードをする場合に，同期点を指定するとき

−

option文

pdloadの実行時間を監視する場合

−

option文

DEFAULT句を指定している表に対して，DEFAULT句の既定値を格納する場合

−

option文

EasyMTを使用する場合

-f

mtguide文

emtdef文

UOCを使用する場合

−

srcuoc文

入力データの不正を検知したときに，処理を途中で中断する場合※１

-e

エラー情報ファイル

-r

option文

入力データの不正を検知したとき，データロード処理を無効にする場合

−

option文

自動採番機能を使用してデータロードする場合

−

option文

UTF-8の環境で定義した表に対して，UTF-16の入力データファイルでデータロードする場合

−

option文

表の空き領域比率を変えてデータロードする場合※２

未使用領域へデータを格納するとき

-y

−

空き領域比率を指定して未使用領域へデータを格納するとき

−

option文

データロード実行状態のメッセージの出力間隔を，10万行単位以外にする場合

-m

−

インフォメーションメッセージの出力を抑止する場合

サーバ間通信の応答時間を監視する場合

-X

−

グローバルバッファを使用しないで，ローカルバッファを使って一括出力のデータロードをする場合※３

-n

−

データロードを実行するユーザの認可識別子を，環境変数PDUSER設定値以外に変更する場合※４

-u

−

表単位の入力データファイルを，RDエリア単位にデータロードできる入力データファイルに分割する場合

−

src_work文

FLOAT型及びSMALLFLT型の入力データ値をOSの制限値内に補正してデータロードする場合

-F

−

（凡例）−：該当しません。

注※1

例えば，DAT形式の入力データファイルを使用して繰返し列がある表にデータロードする場合，入力データはVV形式で作成しているのに，elmtypeオペランドを省略するとFF形式と扱われるために，すべての入力データがエラーとなり，無駄なエラー情報ファイルやエラーデータファイルが作成されてしまいます。このような場合に，エラーを検知した時点で処理を途中で中断できれば，無駄なファイルは作成されなくなり，また，無駄な動作もなくなります。

注※2

通常，追加データロードをする場合，表の空き領域比率に従って未使用ページにデータを格納します。このとき，格納できる未使用ページがなくなった場合，エラーとなり処理がロールバックされます。未使用ページがなくなった場合は，データベース再編成ユティリティでの表の再編成，又はデータベース構成変更ユティリティでRDエリアの追加，若しくは拡張をしてから，再度データロードしなければなりません。このような場合，これらの作業をしなくても，データロード時に表の空き領域比率を変えれば，データロードの処理を完了できることがあります。

注※3

一括出力ページ数を指定すると，指定したページ数単位で一括出力をするので，入出力回数を削減できます。

注※4

何も指定しない場合は，環境変数PDUSERの設定値が仮定されます。環境変数PDUSERを設定していない場合は，ログインウィンドウのユーザ名が仮定されます。

5.4　コマンドの形式

5.4.1　形式

　pdload 〔-d〕
　　　　 〔｛-a｜-b〔-W 〔-w {all｜data} 〔,rdaomit〕〔,csetnck〕〕〕｜-U｝〕
　　　　 〔-i インデクス作成方法〕
　　　　 〔-l ログ取得方式〕
　　　　 〔-k LOB作成種別〕
　　　　 〔｛-c 列構成情報ファイル名
　　　　 　　｜-v ナル値・関数情報ファイル名｝〕
　　　　 〔-n ｛一括出力用ローカルバッファ面数〔,div〕| 一括出力用ローカルバッファ面数,〔div〕,ランダムアクセス用ローカルバッファ面数 | ,,ランダムアクセス用ローカルバッファ面数｝〕
　　　　 〔-u 認可識別子〕
　　　　 〔-x〕
　　　　 〔-f 入力データファイル・LOB入力ファイルの種別〕
　　　　 〔-s セパレータ文字〕
　　　　 〔-e〕
　　　　 〔-r 入力開始行〕
　　　　 〔-z〕
　　　　 〔-y〕
　　　　 〔-o〕
　　　　 〔-m〔 経過メッセージ出力間隔〕〔,インフォメーションメッセージ出力抑止レベル〕〕
　　　　 〔-X サーバ間通信の応答監視時間〕
　　　　 〔-q 世代番号〕
　　　　 〔-K{ i｜f }〕
　　　　 〔-G{ xml｜esisb }〕
　　　　 〔-F〕
　　　　 〔認可識別子.〕表識別子
　　　　 制御情報ファイル名

注

背景色付き太字表示のオプションは，重要な項目，又は必ず指定する項目を表しています。また，〔認可識別子．〕表識別子，及び制御情報ファイル名は，必ずオプションの最後に指定してください。

5.4.2　オプション

(1)　-d

　　　〜《追加モード》

データベース作成ユティリティを作成モードで実行する場合に指定します。省略した場合は，追加モードが仮定されます。

作成モードとは，表の既存のデータをすべて削除してから，入力データを格納するモードのことをいいます。

追加モードとは，表の既存のデータを残して，入力データを追加するモードのことをいいます。

(a)　規則

追加モードでデータロードした場合，追加データは既存のデータの最終格納ページ以降のページに格納されます。このため，クラスタキーを定義した表に対して追加モードでデータロードすると，追加データはクラスタキー順に格納されません。

追加モードでデータロードをするときは，必ず未使用ページにデータを格納します。未使用ページを確保できなかった場合にはエラーとなります。既存のデータが格納されている使用中ページに空きがあっても利用しません。ただし，-yオプション指定時には，既存データが格納されている使用中ページを利用します。

RDエリア単位のデータロードを作成モードで実行した場合，削除される既存の表データは，指定したRDエリア部分だけです。

データ削除中は，option文にnowait=yesを指定していてもNOWAIT検索はできません。

同期点指定のデータロードで異常終了した後の再実行の場合，作成モードを指定しても無視されます。

更新凍結状態のRDエリアに格納されているLOB列，又はLOB属性の抽象データ型列がある表に対してデータロードする場合，作成モードを指定するとデータを削除できないためエラーとなります。なお，LOB列構成基表にだけデータロードする場合でも，作成モードを指定するとエラーになります。

改竄防止表の場合，作成モードのデータロードはできません。

(2)　｛-a｜-b〔-W 〔-w {all｜data} 〔,rdaomit〕〔,csetnck〕〕〕｜-U｝

　　　〜《DAT形式》

入力データファイルの形式を指定します。入力データファイルについては，「入力データファイル」を参照してください。

省略：DAT形式

-a：固定長データ形式

-b：バイナリ形式

監査証跡ファイルはバイナリ形式なので，監査証跡表にデータロードする場合は-bオプションを指定する必要があります。

-Ｗオプションと同時に指定することで，pdload用アンロードファイルとして扱います。

-W：pdload用アンロードファイル

このオプションを指定する場合は，同時に-bオプションも指定してください。アンロードした表とデータロードする表の間で，列データ型などの表定義が異なる場合はデータロードできません。ただし，非FIX表に限り，列構成情報ファイルを指定することで，列定義順序と列数を変更したデータロードができます。なお，UAPやUOCで入力データファイルの内容を変更する場合，行長，列データオフセット，及び行データの間は，間隔を空けないで詰めた形式で編集する必要があります。

監査証跡表にデータロードする場合はこのオプションを指定する必要があります。

-w：表移行用アンロードファイル

このオプションを指定する場合は，同時に-b -Wオプションも指定してください。

｛all｜data｝

all：表，インデクス定義，及び表データを格納します。

data：表データだけを格納します。

rdaomit

このオプションは，移行元と移行先の格納RDエリア名が一致していない場合に指定します。ただし，次の条件を満たしている表に限ります。

インポートする表にBLOB列がない

非分割表である

csetnck

表移行用アンロードファイル中の文字コードと，インポート先のHiRDBで使用する文字コードが同じかどうかのチェックを省略します。

-U：pdrorg用アンロードファイル

このオプションを指定してデータロードする場合，アンロードした表の列定義とデータロードする表の列定義を合わせる必要があります。SUPPRESS指定の列を持つ表をアンロードするときに-Sオプションを指定（空白データを圧縮）して作成したアンロードデータファイル，及びスキーマ単位のアンロードデータファイルは使用できません。また，使用できるアンロードデータファイルの媒体は通常ファイルだけです（テープやHiRDBファイルは不可）。アンロードしたデータが複数ファイルに出力された場合は，pdrorg実行時にデータ出力があったアンロードデータファイル名だけを，unload文に指定した順にpdloadのsource文に記述してください。指定順を誤ると，正しくデータロードできないことがあります。

なお，データロード対象表が次のどれかの条件に該当する場合にこのオプションを指定すると，制御文エラーになります。

抽象データ型の列を持つ表

BINARY型の列を持つ表

繰返し列を持つ表

FIX表

これらの表にデータロードするときは，pdload用アンロードファイルを使用してください。

(3)　-i インデクス作成方法

　　　〜《c》

インデクスの作成方法を指定します。インデクスの作成方法には次の四つがあります。

c ：

インデクス一括作成モードを示します。このモードを指定した場合，表の作成処理に引き続き，インデクスを一括作成します。

行データの格納中はインデクスを作成しないで，インデクス作成情報をインデクス情報ファイルに出力します。行データの格納処理が完了した後，引き続きインデクスを作成します。

＜適用基準＞

大量のデータロードをする場合に，高速にインデクスが作成できます。

＜注意事項＞

追加モードのデータロードする場合，インデクス情報ファイルには，既存データと追加データを合わせたすべてのインデクス情報が出力されるため，全件再作成となります。なお，プラグインインデクスの追加データロードの場合は，追加データのインデクス情報だけが出力されます。そのため，プラグインインデクスは，追加した件数だけ作成します。

インデクス一括作成モードで同期点指定のデータロードをすると，次の理由によって処理性能が悪くなります。

・B-treeインデクスの場合，すべてのデータを格納した後，再度データページを検索してインデクス情報ファイルの作成をしてしまう。

・プラグインインデクスの場合，トランザクションが決着するごとにインデクス作成処理を開始するため，データロード処理とインデクス作成処理を交互に実行することになる。

n ：

インデクス情報出力モードを示します。このモードを指定した場合，インデクス情報だけをインデクス情報ファイルに出力します。

行データの格納中はインデクスを作成しないで，インデクス作成情報をインデクス情報ファイルに出力します。

＜適用基準＞

出力されたインデクス情報ファイルを使用して，データベース再編成ユティリティでインデクスの一括作成を複数同時に実行することで，高速にインデクスを作成できます。特に，HiRDB/パラレルサーバで複数のサーバに分割格納されている表の場合に効果があります。

＜注意事項＞

RDエリア単位のデータロードで，サーバ内で複数のRDエリアに対して表を分割格納している場合に，分割表の一部を作成したとき，サーバ内横分割をしていない非分割キーインデクスはインデクス情報出力モードとして処理されます。

プラグインインデクスが定義されている表の場合，インデクス情報出力モードは指定できません。

インデクス情報出力モードを指定した場合，データロード完了後にデータベース再編成ユティリティでインデクスの一括作成をする必要があります。

s ：

インデクス更新モードを示します。このモードを指定した場合，行を格納するたびにインデクスを更新します。

＜適用基準＞

既存データが大量にある表に対して，少量の追加モードのデータロードをする場合や，ユニークキーインデクス又は主キーインデクスが定義されていて，かつ格納するデータのキー値が重複している可能性がある場合に指定してください。

x ：

インデクス情報出力抑止モードを示します。このモードを指定した場合，インデクスは更新しません。また，インデクス情報をインデクス情報ファイルに出力しません。

＜適用基準＞

データロードを数回に分けて実行する場合に指定します。

例えば，MTがn巻あるため，n回データロードを実行する場合にこのモードを指定します。

＜注意事項＞

-i xでデータロードする場合は，最後の実行で-i c（インデクス一括作成モード）を指定するか，又は-i n（インデクス情報出力モード）を指定してください。-i nを指定した場合は，後でデータベース再編成ユティリティでインデクスの一括作成（-k ixmk）をする必要があります。

また，すべて-i xでデータロードした場合は，後でデータベース再編成ユティリティでインデクスの再作成（-k ixrc）をする必要があります。

プラグインインデクスが定義されている表の場合，インデクス情報出力抑止モードは指定できません。

-i xでデータロードするとインデクスを更新しないため，インデクスは未作成状態となります。

(a)　インデクス作成上の注意事項

インデクス更新モード（-i s）以外でpdloadを実行すると，行データをすべて表へ格納した後に一括してインデクスを作成することになります。このとき，インデクス作成時にキー重複エラーやキー重複の上限数を超えるエラーが発生すると，表とインデクスが不整合な状態となります。このため，次に示す場合は，ログ取得モードに関係なく，ユティリティ実行前にバックアップを取得してください。

ユニークキーインデクス又は主キーインデクスを定義している表の場合

繰返し列にインデクスを定義している表の場合

横分割インデクスと非横分割インデクスでのインデクス作成方法を次の図に示します。

1サーバ内の複数RDエリアに表を分割格納している場合，表格納用RDエリアと同じ数のインデクス格納用RDエリアに格納する横分割インデクスと，表格納用RDエリアの数とは関係なく一つのインデクス格納用RDエリアに格納する非横分割インデクスがあります。

横分割インデクスは，サーバ内で分割されている表に対して，同じように分割格納します（図中のRDエリアINDEX1_1，INDEX1_2）。

非横分割インデクスは，表格納用RDエリアの数に関係なく，サーバ内の1RDエリアに格納します（図中のRDエリアINDEX1_3，INDEX2_1，INDEX2_2）。

図5‒11　分割キーインデクスと非分割キーインデクスでのインデクス作成方法

［説明］

データロード完了後は，-iオプションの指定によってインデクスが作成されます。

例えば，RDエリア単位にTABLE1_1にデータロードをした場合，横分割インデクスINDEX1_1が作成されます（INDEX1_2は影響を受けません）。しかし，非横分割インデクスINDEX2_1は，TABLE1_1及びTABLE1_2の両方の情報がないと作成できないため，インデクスは作成されません（TABLE1_1のインデクス情報ファイルだけ作成されます）。

非横分割インデクスを作成するためには，TABLE1_2に対してもデータロードをして，TABLE1_2のインデクス情報ファイルを作成します。そして，作成済みのTABLE1_1のインデクス情報ファイルとTABLE1_2のインデクス情報ファイルを使用して，pdrorgのインデクスの一括作成をします。

表データの格納が終了してから，インデクスの一括作成が終了するまでの間は，該当するインデクスは未完状態となり，使用できません。

-i c又は-i nを指定して，入力データファイルにデータがなかった場合，インデクス情報ファイルには既存データのインデクス情報だけ出力されます。これをpdrorgの入力とすることで，インデクスの再作成ができます。この場合，pdloadは必ず追加モード（-dオプション省略）で実行してください。作成モード（-dオプション指定）で実行した場合，pdloadは先に表データを削除してしまうので，インデクス情報もなくなってしまいます。

-i nでデータロードをした後に，pdrorgのインデクスの一括作成（-k ixmk）を実行していない状態で，ALTER TABLEでRDエリアを追加すると，-i nで出力されたインデクス情報ファイルは使用できなくなります。ALTER TABLEでRDエリアを追加する場合は，先にpdrorgのインデクスの一括作成を終了させてください。なお，先にALTER TABLEでRDエリアを追加してしまった場合は，pdrorgのインデクスの再作成（-k ixrc）をする必要があります。

-i c，又は-i nを指定すると，「インデクス数×表格納用RDエリア数」のインデクス情報ファイルを作成します。このファイルは，データロード時に同時にオープンするため，ファイル数が多いと1プロセスで使用できるファイル数の上限を超えることがあります。上限を超えると，性能が劣化するおそれがあります。そのため，RDエリアごとにデータロードすることを推奨します。

なお，1プロセスで使用できるファイルディスクリプタ数の上限値は，物理限界値又は7872のうちの小さい方の値です。

インデクス情報出力モード（-i n）を指定した場合，インデクスの一括作成（-k ixmk）が完了するまではALTER INDEXでインデクスの名称を変更しないでください。インデクスの名称を変更すると，インデクスの一括作成ができなくなります。なお，インデクスの一括作成が完了する前にインデクスの名称を変更してしまった場合は，ALTER INDEXで元のインデクス名称に戻してからインデクスの一括作成をし，その後でインデクスの名称を変更してください。

インデクス情報出力モード（-i n）を指定した場合，インデクスの一括作成（-k ixmk）が完了するまでは，インデクスを格納したRDエリアの名称を変更しないでください。インデクスを格納したRDエリアの名称を変更すると，インデクスの一括作成ができなくなります。なお，インデクスの一括作成が完了する前にインデクスを格納したRDエリアの名称を変更してしまった場合は，pdmodで元のRDエリア名称に戻してからインデクスの一括作成をし，その後でRDエリアの名称を変更してください。

インデクス一括出力モード（-i c）又はインデクス情報出力モード（-i n）を指定して，分割数の多い分割表のインデクスを作成した場合は，RDエリアごとにデータロードを実行してください。

(b)　プラグインインデクス作成上の注意事項

プラグインインデクスが定義されている場合は，インデクス情報出力モード，及びインデクス情報出力抑止モードは指定できません。したがって，インデクス一括作成モード，又はインデクス更新モードを指定してください。

B-tree構造のインデクスの場合はインデクス一括作成モードでデータロードを実行するとすべてのインデクスを作成しますが，プラグインインデクスの場合は追加分のデータしかインデクスを作成しません。このため，0件のデータロードを実行した場合，B-tree構造のインデクスはインデクスを再作成しますが，プラグインインデクスは再作成しません。しかし，プラグインインデクスの場合も，インデクス格納RDエリアの再初期化後に0件のデータロードを実行すると，インデクスを再作成します。これは，インデクス作成時の異常終了やディスク障害などでインデクスが破壊された状態になった場合に，インデクスを復旧するために利用します。

(c)　-i c又は-i n指定時の注意事項

-i c又は-i n指定時にindex文，及びidxwork文を省略すると，既定の出力先ディレクトリにインデクス情報ファイルを出力します。pdloadが異常終了すると，このインデクス情報ファイルが不完全な状態で残ります。このため，pdloadの異常終了を何度も繰り返すと不完全なインデクス情報ファイルが増加し，ディスク容量などOSの資源を圧迫することになります。したがって，既定の出力先ディレクトリに出力した必要のないインデクス情報ファイルについては削除するようにしてください。

index文を省略してidxwork文だけを指定した場合に，idxwork文に指定したディレクトリ下に出力するインデクス情報ファイルについても同様です。

既定の出力先ディレクトリについては「規則及び注意事項」の「制御文で指定しない場合のファイル出力先ディレクトリ」を参照してください。

また，インデクス情報ファイルは，次の名称規則で出力します。

INDEX-インデクス名-インデクス格納用RDエリア名-一意となる文字列

(4)　-l ログ取得方式

　　　〜《p》

pdload実行時のデータベースの更新ログの取得方法を指定します。

なお，pdload実行中に異常終了した場合，更新ログを取得していても，データベースはpdload実行前の状態には戻りません。pdloadが異常終了した場合の対処方法については，「エラー時のデータベースの状態とその回復方法」を参照してください。

a ：

ログ取得モードを示します。ロールバック及びロールフォワードに必要なデータベースの更新ログを取得します。

＜適用基準＞

このモードは，少量のデータをデータロードする場合に適しています。

ログ取得モードで実行した場合，pdloadの実行前及び実行後にバックアップを取得する必要はありませんが，処理性能はほかのモードに比べて劣ります。

p ：

更新前ログ取得モードを示します。ロールバックに必要なデータベースの更新ログは取得しますが，ロールフォワードに必要なデータベースの更新ログは取得しません。

＜適用基準＞

このモードは，大量のデータをデータロードする場合に適しています。

更新前ログ取得モードで実行した場合，ログ取得モードに比べると実行時間は短縮できます。ただし，以後の媒体障害などに備えて，pdloadの実行後に，表及びインデクスを格納したRDエリアのバックアップを取得する必要があります。

pdload実行中に障害が発生した場合，pdloadが障害発生直前に同期を取った時点まで回復します。そのため，RDエリアがログレス閉塞になることは防げますが，処理対象表はpdload実行前の状態には回復されません。

＜注意事項＞

プラグインが出力するログについて，プラグインが提供する抽象データ型を定義した表にデータロードをする場合，p（更新前ログ取得モード）の指定が有効かどうかは，各種プラグインの実装によって決まります。pの指定が有効にならないプラグインの場合は，a（ログ取得モード）が仮定されます。

n ：

ログレスモードを示します。データベースの更新ログを取得しません。

＜適用基準＞

このモードは，処理対象となるRDエリアにデータロード対象表とその表のインデクスだけ定義している場合に，大量のデータをデータロードするときに適しています。

ログレスモードで実行した場合，ほかのモードに比べると実行時間は短縮できます。ただし，ユティリティ実行中の障害でバックアップから回復する場合や，以後の媒体障害などの発生によって，データベースのバックアップ及びログから回復する場合に備えて，ユティリティの実行前及び実行後に，表及びインデクスを格納したRDエリアのバックアップを取得する必要があります。

障害発生時には，バックアップ取得時点までしか回復できません。

＜注意事項＞

pdloadをログレスモードで実行していた場合にエラーが発生したときは，エラーによって閉塞したRDエリアはバックアップから回復するか，又は再初期化をする必要があります。

(a)　注意事項

nの場合，障害発生時に以前取得したバックアップとログ，又は入力データ（データロードする表にデータが格納されていない場合で，かつ該当するRDエリアにその表だけ格納する場合）から回復できるときは，pdload実行前のバックアップ取得は不要です。

p，及びnの場合の運用方法（データベースの更新ログを取得しないときの運用）については，マニュアル「HiRDB システム運用ガイド」を参照してください。

-lオプションの指定に関係なく，pdloadが生成するトランザクション（T）によってトランザクションログは必ず取得されます。1サーバ当たり，次のトランザクションログを生成するため，pdload実行時のログ量の計算式は次のようになります。

ログ量＝（1328＋176×3）×T＋A　（単位：バイト）

T＝（x×2）＋（y×2）＋（z×2）
　x：表の数※
　y：LOB列（LOB属性）格納用RDエリアの数
　z：インデクス数×インデクス格納用RDエリアの数（-i sの場合は不要）

注※

同期点指定のデータロードの場合は同期点の数，それ以外の場合は1となります。

A＝データベース操作に応じて出力されるシステムログ量（データベースの更新ログ量）。この値は-lオプションの指定値で変わります。システムログ量の求め方については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

また，p又はnを指定した場合，排他制御によってENQログを取得します。1サーバ当たり次のENQログを取得します。

ENQログ＝（p＋q＋r）×T

　p：表格納用RDエリアの数
　q：LOB列（LOB属性）格納用RDエリアの数
　r：インデクス格納用RDエリアの数

したがって，「システムログファイルのレコード長×ENQログ」の分だけシステムログが出力されます。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，業務サイトで-l p又は-l n指定のpdloadを実行したときは，システムログ適用化を実施してください。

(5)　-k LOB作成種別

　　　〜《f又はd》

LOBデータをLOB列に格納する場合，及び抽象データ型列に格納する値を生成するコンストラクタ関数の引数がLOBパラメタの場合に，そのデータの入力方法を指定します。このオプションを省略した場合はfが仮定されますが，option制御文にjobオペランドの指定がなく，-Wオプションを指定している場合はdが省略時仮定値となります。

f ：

LOBデータごとにファイルを用意する場合に指定します。これらのファイルをLOB入力ファイルと呼びます。

c ：

一つのLOB列にある複数のLOBデータを，一つのファイルに用意する場合に指定します。このファイルを列単位LOB入力ファイルと呼びます。

列単位LOB入力ファイルは，何らかのプログラムを使用して他データベースからデータを移行するときなどに作成したりします。

抽象データ型の列に格納するデータを生成する関数の入力パラメタとして指定するLOBデータの場合は，このオプションは指定できません。したがって，LOBを入力パラメタとする抽象データ型の列がある表の場合は，抽象データ型の列でないLOB列があるときに，その列に対しても列単位LOBファイルは使用できません。

v ：

LOB列への格納データは格納するLOBデータごとにLOB入力ファイルを用意し，抽象データ型列に格納する値を生成するコンストラクタ関数の入力パラメタとなるデータ（LOBパラメタ）は入力データファイルに格納する場合に指定します。

この指定は，入力データファイルがバイナリ形式の場合だけできます。

d ：

LOBデータ，及び抽象データ型列のLOBパラメタデータを，入力データファイルに直接記述する場合に指定します。

この指定は，入力データファイルがバイナリ形式の場合だけ指定できます。

-k dを指定した場合，UOCを利用したデータロードはできません。

(a)　適用基準

-kオプションは，次に示すLOB列，抽象データ型列のLOBパラメタの有無，及び入力データファイルの形式によって指定値を決めてください。

LOB列

入力データファイルの形式

抽象データ型列

なし

あり

LOBパラメタなし

LOBパラメタあり

なし

DAT形式

−

−

-k f

バイナリ形式

-k v又は-k d

固定長データ形式

-k f

pdrorg出力バイナリ形式

−

−

-k d

あり

DAT形式

-k f又は-k c

-k f又は-k c

-k f

バイナリ形式

-k f，-k c，又は-k d

-k f，-k c，又は-k d

-k v又は-k d

固定長データ形式

-k f又は-k c

-k f又は-k c

-k f

pdrorg出力バイナリ形式

-k d

-k d

-k d

（凡例）

−：-kオプションは指定する必要がありません。

(b)　規則

LOB列構成基表とLOB列を別々に作成する場合，LOB列作成時はLOB列構成基表作成時と同じオプションを指定してください。

-kオプションの指定値によって，入力データファイル，及びLOB入力ファイルの内容は次のようになります。

-kオプション

入力データファイル

LOB入力ファイル

LOB列格納データ

抽象データ型LOBパラメタ

LOB列格納データ

抽象データ型LOBパラメタ

f

LOB入力ファイルのファイル名を記述

LOB入力ファイルのファイル名を記述

格納データ数分のファイルを用意

格納データ数分のファイルを用意

c

ダミーデータを記述

−

列数分のファイルを用意

−

v

LOB入力ファイルのファイル名を記述

LOBパラメタの内容を記述

格納データ数分のファイルを用意

不要

d

LOBデータの内容を記述

LOBパラメタの内容を記述

不要

不要

（凡例）−：該当しません。

同期点指定のデータロードの場合，-kオプションにはdを指定してください。f，c，及びvは指定できません。

(6)　-c 列構成情報ファイル名

列構成情報ファイルの名称を指定します。

列構成情報ファイルについては，「列構成情報ファイル」を参照してください。

(a)　規則

列構成情報ファイルは，入力データファイルが固定長データ形式の場合は必ず指定してください。

DAT形式，又はpdrorg出力バイナリ形式の場合は任意に指定できます。ただし，pdrorg出力バイナリ形式の場合は，非FIX表に対してデータロードするときに指定できます。FIX表に対してデータロードした場合にはエラーとなります。FIX表の場合に列構成情報ファイルを指定して列構成を変更したいときは，該当するファイルを固定長データ形式の入力データファイルとして扱うと，同様の処理ができます。

DAT形式の入力データファイルの場合，次の条件をすべて満たすときは，列構成情報ファイルの指定は不要です。

入力データの列の並び順と表の列定義の順序が同じとき

入力データの列数と表の列数が同じとき

抽象データ型に格納するデータを生成するコンストラクタ関数の名称が，列データ型の名称と同じで，かつ該当する関数が一つだけのとき

繰返し列に格納する入力データの要素数が，表定義時に指定した最大要素数と同じとき

列構成情報ファイルは，データベース作成ユティリティを実行する（pdloadコマンドを入力する）ホストに用意してください。

列構成情報ファイルは，ナル値・関数情報ファイルと同時に指定できません。

(7)　-v ナル値・関数情報ファイル名

ナル値・関数情報ファイルの名称を指定します。

ナル値・関数情報ファイルは，入力データをナル値とみなす値に変更するとき，又は抽象データ型列に格納する値を生成するコンストラクタ関数の情報を記述するときに使用します。

ナル値・関数情報ファイルについては，「ナル値・関数情報ファイル」を参照してください。

(a)　規則

ナル値・関数情報ファイルは，入力データファイルがバイナリ形式の場合に指定できます。DAT形式，及び固定長データ形式の場合には指定できません。

ナル値・関数情報ファイルは，列構成情報ファイルと同時に指定できません。

(8)　-n ｛一括出力用ローカルバッファ面数〔,div〕| 一括出力用ローカルバッファ面数,〔div〕,ランダムアクセス用ローカルバッファ面数 | ,,ランダムアクセス用ローカルバッファ面数｝

表へデータロードする場合に，データベースに対して書き込みを行うときに使用するローカルバッファの面数を指定します。このオプションを指定した際に，一括出力用ローカルバッファ面数，又はランダムアクセス用ローカルバッファ面数を指定していない場合は，該当ローカルバッファは使用しません。なお，このオプション自体を省略した場合はローカルバッファを使用しません。この場合，グローバルバッファを使用して1ページ単位に出力します。

一括出力用ローカルバッファ面数　〜＜符号なし整数＞((2〜4096))

一括出力用ローカルバッファの面数を指定します。一括出力用ローカルバッファは，データページに対して使用します。

一括出力用ローカルバッファ面数には，16〜32面を指定することをお勧めします。184キロバイト÷ページ長を上限に指定値を決めてください。

div

次の条件をすべて満たす場合にdivを指定してください。次の条件をすべて満たす場合にdivを指定しないと，入出力回数が増加し，性能が劣化することがあります。

横分割表に対して，表単位にデータロードをする

ハッシュ関数（HASH0〜HASH6，HASHZ）を使用した横分割表に対してデータロードをする，又はキーレンジ分割の表に格納する入力データのキー値の順序がランダムになっている

表を格納するRDエリアが1サーバ内に複数ある

なお，divを指定すると，サーバ内表分割数分のバッファを確保するため，メモリ消費量が増えます。

ランダムアクセス用ローカルバッファ面数　〜＜符号なし整数＞((4〜125000))

ランダムアクセス用ローカルバッファの面数を指定します。ランダムアクセス用ローカルバッファは，インデクスページに対して使用します。このオペランドは，インデクス更新モードでインデクスを作成する場合に指定します。インデクス更新モードでは，行を格納するたびにB-tree構造のインデクスページを参照しますが，ランダムアクセス用ローカルバッファを使用すれば，これらのインデクスページを該当するバッファに読み込むため，グローバルバッファ競合によるオンライン処理の性能劣化を軽減できます。

推奨する-nオプションの指定を次の表に示します。

表5‒5　推奨する-nオプションの指定（pdload）

表種別

列定義

サーバ内での表の分割

あり

なし

FIX表

−

-n x，div

-n x

非FIX表

列長が256バイトを超える可変長文字列，又はBINARY列を定義している場合

-nの指定を省略

上記以外

-n x，div

-n x

（凡例）

x：一括出力用ローカルバッファ面数

−：該当なし

(a)　pdloadが使用するバッファについて

-nオプションを省略した場合，グローバルバッファを使用します。この場合，データロード時に大量のグローバルバッファを使用するため，そのグローバルバッファを使用するUAPのトランザクション性能が劣化します。-nオプションを指定すると，このようなバッファ競合はなくなります。pdloadとバッファの関係を次の図に示します。

図5‒12　pdloadとバッファの関係

〔説明〕

グローバルバッファだけを使用する場合（-nオプションを省略した場合），pdloadとUAPとでバッファの競合が発生します。

ローカルバッファとグローバルバッファを使用する場合（-nオプションを指定した場合），pdloadとUAPとのバッファの競合は発生しません。ただし，LOB列のデータロードの場合は，-nオプションを指定してもグローバルバッファを使用します。

-nオプションに一括出力用ローカルバッファ面数だけを指定した場合，一つのRDエリアに対して一つの一括出力用ローカルバッファを使用します。RDエリアがn個ある場合でも，一つの一括出力用ローカルバッファを使用するため，バッファ競合が発生します。バッファ競合が発生すると，逆に入出力回数が増加して性能劣化を引き起こします。このような場合にはdivを指定してください。divを指定すると，RDエリア数分の一括出力用ローカルバッファを確保するため（一つのRDエリアに対して一つの一括出力用ローカルバッファを確保する），バッファの競合はなくなります。

一括出力用ローカルバッファを指定しても，条件によってはグローバルバッファを使用することがあります。各条件と使用されるバッファとの関係を次の表に示します。

表5‒6　各条件と使用されるバッファとの関係（pdload）

条件

ランダムアクセス用ローカルバッファの指定

なし

あり

グローバルバッファ

一括出力用ローカルバッファ

グローバルバッファ

一括出力用ローカルバッファ

ランダムアクセス用ローカルバッファ

データページ

ユーザ用RDエリア

FIX表

クラスタリング指定の表で，行が所定のセグメントに格納できなくなった場合

○

−

○

−

−

上記以外

−

○

−

○

−

非FIX表

列長が256バイトを超える可変長文字列，又はBINARY列を定義している場合

○

−

○

−

−

抽象データ型列又は繰返し列を定義していて，かつ1行のデータが1ページに入らない場合

○

−

○

−

−

クラスタリング指定の表で，行が所定のセグメントに格納できなくなった場合

○

−

○

−

−

上記以外

−

○

−

○

−

ユーザLOB用RDエリア

LOB列格納用RDエリア

○

−

○

−

−

LOB属性格納用RDエリア

○

−

○

−

−

インデクスページ

表からキー値検索する場合（-i c又はn指定時）

−

○

−

○

−

インデクスの同時作成をする場合（-i s指定時）

○

−

−

−

○

インデクスの一括作成をする場合（-i c指定時）

○

−

−

−

○

ディレクトリページ

○

−

○

−

−

（凡例）

○：使用します。

−：使用しません。

(b)　規則

リバランス表の場合，グローバルバッファが十分に割り当てられていないと，極端に性能が劣化することがあります。したがって，定義長が256バイトを超える列がないときは一括出力ページ数を指定するようにしてください。

定義長が256バイト以上の列があるなどの理由で，ローカルバッファ指定が有効にならない場合は，次の面数以上のグローバルバッファを割り当ててください。

1RDエリアに必要なバッファ面数

＝1024÷(表格納用RDエリア数)×2＋3

FIXハッシュ分割のリバランス表の場合，ハッシュグループごとに指定したページ数のバッファを確保するため，横分割していない表やほかの条件で分割している表よりも，メモリを多量に消費します。

(9)　-u 認可識別子

データベース作成ユティリティを実行するユーザの認可識別子を指定します。

省略時仮定値については，「省略時仮定値」を参照してください。

このオプションを指定した場合，パスワード入力要求の応答付きメッセージが表示されます。パスワードが不要な場合は，応答付きメッセージに対して空送信してください。そこで応答した認可識別子/パスワードでHiRDBシステムに接続し，その認可識別子について表へのアクセス権限があるかどうかがチェックされます。

(a)　適用基準

環境変数PDUSERに設定されている認可識別子ではない，別の認可識別子で実行したい場合に指定します。

(b)　省略時仮定値

省略した場合，次のように認可識別子/パスワードが仮定されます。

データベース作成ユティリティ実行時の環境変数PDUSERの設定値が仮定されます。シェルで&を付けてバックグラウンドで実行する場合や，リモートシェル環境で実行する場合など，パスワードの応答ができない環境で実行するときは，PDUSERを必ず設定してください。環境変数PDUSERの指定例を次に示します。

（例）Cシェルの場合

パスワードありの場合　setenv PDUSER '"認可識別子"/"パスワード"'

パスワードなしの場合　setenv PDUSER '"認可識別子"'

環境変数PDUSERが設定されていない場合，ログインウィンドウのユーザ名が仮定されます。パスワードについては，入力要求の応答付きメッセージが表示されるので，そこで応答してください。パスワードが不要な場合は，応答付きメッセージに対して空送信してください。

(c)　規則

このオプションは，シェルで&を付けてバックグラウンドで実行する場合や，リモートシェルなど，パスワードが応答できない環境では指定しないでください。

認可識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

(10)　-x

表にクラスタキーが定義してある場合，入力データがクラスタキーの昇順又は降順になっているかどうかをチェックしないで，入力順にデータロードする場合に指定します。

このオプションを省略した場合は，クラスタキー順のチェックをして，クラスタキー順でない入力データはエラーとなります。

(a)　適用基準

入力データの順序がクラスタキー順であることが分かっている場合，このオプションを指定することでクラスタキーチェックのためのオーバヘッドを削減できます。

(b)　注意事項

UNIQUE指定のクラスタキーが定義されている表の場合，重複キーのチェックができなくなるため，重複キーのデータを格納しようとするとエラー（ロールバック）となります。

クラスタキーが定義されている表に対して，クラスタキー順でない入力データを格納できますが，クラスタリングの効果はなくなります。

(11)　-f 入力データファイル・LOB入力ファイルの種別

入力データファイル，又はLOB入力ファイルがEasyMTの場合に，easymtと指定します。

(a)　規則

LOB列構成基表とLOB列を同時に作成する場合は，EasyMTを使用するためマウント操作用にMtguideが必要です。

入力データファイルがEasyMTでLOB入力ファイルが通常ファイルの場合（また，その逆の場合も），LOB列構成基表とLOB列は別々にデータロードする必要があります。

抽象データ型の列を持つ表に対してデータロードをする場合，抽象データ型の列へ格納するデータを生成するコンストラクタ関数のパラメタとしてLOBデータがあるときは，LOB入力ファイルをEasyMTに割り当てることはできないため，このオプションは指定できません。

(12)　-s セパレータ文字

　　　〜＜文字列＞

入力データファイルがDAT形式の場合，各データ間のセパレータ文字を変更する場合に指定します。省略した場合，コンマ（，）が仮定されます。

バイナリ形式，及び固定長データ形式の場合は，指定しても無視されます。

(a)　適用基準

入力データ中の各データ間のセパレータ文字が，コンマ以外の場合に指定します。

(b)　規則

入力データ中にない文字コードであれば，セパレータ文字としてタブやパイプ記号（｜）を指定できます。ただし，これらの特殊な文字はコマンドラインの入力を受け付けるシェルが認識できるように，セパレータ文字を引用符（"）で囲むなどして指定する必要があります。

次に示す文字は，セパレータ文字として指定できません。

英大文字（A〜Z），英小文字（a〜z）

数字（0〜9）

さらに，次に示す文字もユティリティが特別な意味で使用する予約文字なので，セパレータ文字として指定できません。

アスタリスク（＊），引用符（"），下線（_）

次に示す文字は，入力データのコードと重なる可能性があるのでセパレータ文字に適していません。なお，セパレータ文字は１バイトのため，２バイトコードは指定できません。

数値データ入力時の符号（＋，−）

日本語入力時に文字コードが重なる文字（｜，￥，［，］，（，），｛，｝，￣）

日付データ入力時のハイフン（−）

時刻データ入力時のコロン（：）

日間隔，時間隔データ入力時のピリオド（．）

(13)　-e

入力データの不正を検出した場合に，処理を中断するときに指定します。

処理を中断した後，それまでの格納処理を無効にしたい（ロールバックしたい）場合は，option文のdataerrオペランドを指定します。

-eオプション，及びoption文のdataerrオペランドの両方を省略した場合，入力データの不正を検出しても処理を続行して，正常なデータだけをDBに格納します。

-eオプションを指定した場合，最初にエラーとなったデータの要因だけをエラー情報ファイルに出力します。-eオプションを指定しなかった場合，エラーとなったすべてのデータの要因をエラー情報ファイルに出力します。

(a)　適用基準

入力データに不正があった場合に，最初のエラーの時点で処理を中断させることができます。

例えば，DAT形式の入力データファイルで繰返し列に対してデータロードする場合，入力データはVV形式で作成しているのにarray文のelmtypeオペランドを省略するとFF形式と扱われるために，すべての入力データがエラーとなります。そして，無駄なエラー情報ファイル，及びエラーデータファイルが作成されてしまいます。このような場合に，-eオプションを指定しておくと，最初にエラーを検知した時点で処理を中断するので，無駄にファイルを作成したりすることはなくなります。

(b)　規則

次の条件の場合は，このオプションの指定に関係なく，処理を中断してロールバックします。

条件

理由

バイナリ形式の入力データファイルで，可変長データの長さ部の領域が負の値の場合

行の区切りがないバイナリ形式では，列長でデータの切り出しをするため，行データを認識する必要があります。しかし，負の値では，データの切り出しができないため，処理を続行できません。

option文にdataerrオペランドを指定した場合

dataerrオペランドを指定した場合，処理をロールバックするため，処理を継続しても意味がありません。

エラー情報ファイルの名称は，制御情報ファイル中で指定しますが，指定がなければデータベース作成ユティリティが入力データファイルと同じホストのディレクトリ下にファイルを作成します。ファイルの名称はデータベース作成ユティリティが決定し，そのファイル名称はメッセージに出力されます。エラー情報ファイル名については，「error＝エラー情報ファイル名」を参照してください。

HiRDB/パラレルサーバで，入力データファイルを用意したサーバ（source文に指定したサーバ）とデータロード対象表があるサーバが異なる場合，又はHiRDB/シングルサーバでユティリティ専用ユニットに入力データファイルを用意する場合は，次のエラーデータを検出した時点で処理は中断できません。

ユニークキーインデクス，又は主キーインデクスのキー重複エラー

抽象データ型列に格納する値の不正

特に，HiRDB/パラレルサーバでは，複数サーバに分割された表に対して表単位のデータロードをする場合，-eオプションを指定すると処理中に上記のエラーが発生しても入力した行データがどこまで表に格納されたか保証できません。そのため，次の条件をすべて満たす場合は，-eオプションは指定しないでください。

HiRDB/パラレルサーバ

複数サーバに分割された表への表単位のデータロード

ユニークキーインデクス，又は主キーインデクスを定義した表，又は抽象データ型列を持つ表

option文のdataerrオペランドを指定した場合にエラーデータを検知したときは，-eオプションを省略していても処理を中断します。

(14)　-r 入力開始行

　　　〜＜符号なし整数＞((2〜4294967295))《1》

入力データファイルの１行目からデータを入力しないで，指定した行からデータを入力する場合に指定します。

(a)　適用基準

-eオプションを指定したデータロードが中断した場合に，再度データロードをするときに指定します。

(b)　注意事項

UOC（UOCが入力データファイルを入力する方法）を利用してデータロードする場合，-rオプションを指定しても無視されます。

同期点指定のデータロードが異常終了しロールバックした後に，-rオプションを指定して同期点指定のデータロードを再実行すると，再実行時の入力開始行は次のようになります。

状態

再実行時の入力開始行

-r 入力開始行

＞同期点指定のデータロードで保存された行

-r 入力開始行

-r 入力開始行

＝同期点指定のデータロードで保存された行

同期点指定のデータロードで保存された行※

-r 入力開始行

＜同期点指定のデータロードで保存された行

同期点指定のデータロードで保存された行※

注※

pdloadの再実行を示すKFPL00810-Iメッセージが出力されます。

(15)　-z

可変長文字列，可変長各国文字列，及び可変長混在文字列に対して，長さ0のデータを格納する場合に指定します。

(a)　適用基準

可変長文字列，可変長各国文字列，及び可変長混在文字列に対して，ナル値，又は1バイトの空白（1文字の空白）を格納したくない場合に指定します。

(b)　注意事項

DAT形式の場合の，長さ0のデータの扱いを次に示します。

…，""，…　（長さ0のデータとして扱われます）

…，，…　　　（ナル値として扱われます）

バイナリ形式の場合は，実データ長に0が設定され，実データ部がない形式を長さ0のデータとして扱います。

(16)　-y

データロード時，未使用ページを使い切った場合に，使用中ページの未使用領域へデータを格納したいときに指定します。このオプションを指定した場合，未使用領域にデータを格納する前にKFPH26010-Iメッセージを出力します。

(a)　適用基準

通常，データロード時に未使用ページを使い切った場合はエラーとなり，処理がロールバックされます。これを避けるため，使用中ページの未使用領域にもデータを格納して，とりあえずデータロードを完了させたい場合に指定します。

(b)　規則

-lオプションにp（更新前ログ取得モード）は指定できません。

未使用ページを使い切った後のデータの格納には，ページ内空き領域比率の指定値は適用されません。

未使用ページを使い切った後，-nオプションの指定は適用されません。

(17)　-o

インデクス一括作成が正常終了した後，index文に指定したインデクス情報ファイルを自動的に削除する場合に指定します。なお，idxwork文に指定したディレクトリ，及びpdloadが自動的に作成した/tmpディレクトリのインデクス情報ファイルは，このオプションの指定に関係なく，インデクスの一括作成が正常終了した後に削除されます。

(a)　適用基準

特にプラグインインデクスを作成するときのインデクス情報ファイルは大容量となり，インデクス情報ファイルを削除しないでおくと，ディスク容量を圧迫することになります。このインデクス情報ファイルの削除し忘れに備え，インデクス一括作成終了後に自動的にインデクス情報ファイルを削除する場合に，このオプションを指定します。

(b)　規則

RDエリア単位にデータロードする場合，次の条件に該当するインデクスについては，データロード後に出力したインデクス情報ファイルを使用してpdrorg（-k ixmk）を実行する必要があるため，-oオプションを指定しても無視されます。

表格納RDエリアは1サーバ内に複数あるが，対応するインデクス格納RDエリアは一つだけの場合

(18)　-m〔 経過メッセージ出力間隔〕〔,インフォメーションメッセージ出力抑止レベル〕

経過メッセージ出力間隔　〜＜符号なし整数＞((1〜1000))《10》

処理の実行状況を出力するメッセージの出力間隔を，1万行単位で指定します。なお，このメッセージは，-mオプションにlvl2を指定すると，トラブルシュート情報を出力するワークファイルにも出力されます。

＜適用基準＞

省略時仮定値の10万行間隔出力が長い場合，又は短い場合に，任意に指定してください。

＜注意事項＞

インデクス一括作成中の場合，このオプションの指定は無効となり，インデクス作成の開始時，及び終了時にだけメッセージが出力されます。

インフォメーションメッセージ出力抑止レベル　〜《lvl0》

実行した端末の標準出力，syslogfile，及びメッセージログファイルへのインフォメーションメッセージの出力を抑止します。標準出力，syslogfile，及びメッセージログファイルのすべての出力を抑止する場合，トラブルシュート情報はワークファイルに出力します。指定できるオプションとメッセージの出力先を次の表に示します。

表5‒7　オプションの指定値とメッセージの出力先

オプションの指定値

意味

出力先

標準出力

syslogfile及びメッセージログファイル

ワークファイル

lvl0

出力を抑止しない

○

○

×

lvl1

標準出力への出力を抑止する

×

○

×

lvl2

標準出力，syslogfile及びメッセージログファイルへの出力を抑止する

×

×

○

（凡例）

○：メッセージを出力します。

×：メッセージを出力しません。

ワークファイルにメッセージを出力するのはトラブルシュート目的（ユティリティの動作を確認するため）であり，通常，メッセージを確認する必要がない場合はlvl1を指定することをお勧めします。

＜ワークファイル＞

ワークファイルは，-mオプションにlvl2を指定すると，ユティリティを実行するごとに各サーバに作成されます。このため，pdcspoolコマンドでHiRDBによって定期的に削除されるように，pd_tmp_directoryオペランドにディレクトリを指定しておくことをお勧めします。ワークファイルの出力先を次の表に示します。

表5‒8　ワークファイルの出力先

システム定義のpd_tmp_directoryオペランドの指定

環境変数TMPDIRの指定

ワークファイルの出力先

あり

−

pd_tmp_directoryオペランドに指定したディレクトリ

なし

あり

環境変数TMPDIRに指定したディレクトリ

なし

/tmpディレクトリ

（凡例）

−：該当しません。

なお，ファイルオープンエラーやI/Oエラーなどのためにインフォメーションメッセージがワークファイルへ出力できない場合は，エラーメッセージが出力されますが，処理は続行します。

ワークファイルは，HiRDBが自動で作成します。ファイル名称は，PDLOAD-aa-bbの形式で決められます。それぞれの意味について説明します。

PDLOAD：pdloadが出力したことを示す固定のプリフィクスです。

aa：インナレプリカ機能を使用していない場合は，プロセスのサーバ名称です。インナレプリカ機能を使用している場合は，プロセスのサーバ名称，GN，及び世代番号を組み合わせた文字列です。

bb：ファイル作成時間，及びプロセスIDです。

(19)　-X サーバ間通信の応答監視時間

　　　〜＜符号なし整数＞　((1〜65535))　《300》

コマンドを実行したサーバで通信障害などの障害が発生した場合，コマンドは無応答となり，業務が停止するおそれがあります。pdloadでは障害を検知するために，コマンドで実施されるディクショナリ操作についての通信の応答時間を監視できます。

-Xオプションには，ディクショナリ操作での応答監視時間を秒数で設定します。ディクショナリ操作時の実行時間が，-Xオプションに設定した時間を超えた場合は，pdloadはディクショナリアクセスで障害が発生したと判断し，リターンコード8で処理を打ち切ります。pdloadの監視時間には，このほかにpdloadの実行監視時間があります。サーバ間通信の応答監視時間とpdloadの実行監視時間との関係については，「option文（データ処理に関する情報の記述）」の「exectime=pdloadの実行監視時間」を参照ください。

＜適用基準＞

通信障害やユニットダウンによってサーバから応答が返らない状態となった場合に，300秒より早く障害を検知したいとき，-Xオプションに300より小さい値を指定してください。

系切り替え機能を使用している場合，系切り替えが完了しているにもかかわらず，コマンドが応答を待ち続けることがあります。その場合は，監視時間を短く設定することで，コマンドを即時終了できます。

同時実行するアプリケーションやユティリティの多重度が高い場合など，ディクショナリからの応答が遅延し，-Xオプションのデフォルトである300秒以内にユティリティの前処理が完了しないときは，監視時間でタイムアウトするおそれがあります。このような環境では，-Xオプションには300より大きい値を指定してください。

(20)　-q 世代番号

　　　〜＜符号なし整数＞((0〜10))

インナレプリカ機能を使用している場合，データロード対象となるRDエリアの世代番号を指定します。

世代番号は次のように指定します。

0：オリジナルRDエリアを対象とする場合

1〜10：指定した世代のレプリカRDエリアを対象とする場合

(a)　適用基準

インナレプリカ機能を使用していて，カレントRDエリア以外のRDエリアにデータロードする場合に指定します。

(b)　規則

このオプションを省略した場合，カレントRDエリアが対象となります。

レプリカRDエリアに対してRDエリア単位にデータロードする場合，source文にオリジナルRDエリア名を指定し，-qオプションに対象となる世代番号を指定します。

pdloadは，データロード対象となるRDエリアの世代が一致しているかどうかをチェックします。次のチェックをして，エラーがあった場合にはメッセージを出力してから，リターンコード8で終了します。

横分割表間で世代番号が一致しているかどうかのチェック：

横分割表に対してデータロードする場合，格納先のRDエリア間の世代チェックをします。

-qオプション指定時は，各格納先に，指定した世代のRDエリアがあるかどうかをチェックします。-qオプション省略時は，各格納先のカレントRDエリアの世代番号が同一かどうかをチェックします。

表及びインデクスを格納するRDエリア間の世代番号が同一かどうかのチェック：

表及びインデクスを格納するRDエリアの世代チェックをします。

-qオプション指定時は，データロード対象となるRDエリアに，指定した世代があるかどうかをチェックします。-qオプション省略時は，データロード対象となるカレントRDエリアが，すべて同じ世代かどうかをチェックします。

処理対象RDエリアのレプリカステータスが同一かどうかのチェック：

-qオプション指定時に，処理対象RDエリアにカレントRDエリアとカレントRDエリア以外が混在していないかをチェックします。

(21)　-K{ i｜f }

表に定義したすべてのXML型の列について，XML型のパラメタに対する入力データ値の形式を指定します。表にXML型の列が定義されていない場合，このオプションを指定するとエラーになります。

i ：

XML型のパラメタに対する入力データ値を入力データファイルに直接記述します。

f ：

XML型のパラメタに対する入力データ値ごとにファイルを用意し，そのファイル名称を入力データファイルに記述します。

(a)　入力データ値の形式

XML型の列を定義した表へデータロードする場合に選択できる入力データ値の形式を次の表に示します。入力データ値の形式は，-Kオプションで指定します。

表5‒9　XML型の列を定義した表へデータロードする場合の入力データ値の形式

入力データ形式

説明

備考

埋め込み形式（-K i指定）

ほかの列のデータと同様の入力ファイル形式に従って，入力データファイル内にXML文書を埋め込みます。

入力データファイル中のデータはBINARY型の形式で記述します。

ファイルパス指定形式（-K f指定）

XMLデータを格納したファイルを個々に用意し，入力データファイル内に対応するファイルパス名を記述します。

入力データファイル中のファイルパス名はBINARY型の形式，又はCHAR型の形式で記述します。

(b)　指定できる入力データファイルの形式

XML文書，及びESIS-B形式のデータをデータロードするときに指定できる，入力データファイルの形式を次の表に示します。

表5‒10　指定できる入力データファイルの形式

入力データファイルの形式

入力データ値の形式（-Kオプション指定値）と入力データ種別（-Gオプション指定値）

埋め込み形式（-K i）

ファイルパス指定形式（-K f）

ESIS-B形式（-G esisb）

XML文書（-G xml）

ESIS-B形式（-G esisb）

XML文書（-G xml）

DAT形式

×

×

○

○

拡張DAT形式

×

×

○

○

固定長データ形式（CHAR型指定）

×

×

○

○

固定長データ形式（BINARY型指定）

○

○

○

○

バイナリ形式

○

○

×

×

pdrorg出力バイナリ形式

○

×

×

×

（凡例）

○：pdloadで指定できます。

×：pdloadで指定できません。

(22)　-G{ xml｜esisb }

表に定義したすべてのXML型の列について，入力データファイルとして指定したXMLデータのデータ種別（XML文書又はESIS-B形式）を指定します。表にXML型の列が定義されていない場合，このオプションを指定するとエラーになります。

xml ：

入力データファイル中のXML型のパラメタとして指定したデータが，XML文書であることを示します。

esisb ：

入力データファイル中のXML型のパラメタとして指定したデータが，ESIS-B形式のデータであることを示します。

(a)　入力データ種別

XML型の入力データとして，次のデータを選択できます。入力データ種別は，-Gオプションで指定します。

XML文書

ユーザが作成したXMLのテキストデータです。

ESIS-B形式のデータ

XML変換コマンド（phdxmlcnv）又はXML変換ライブラリを使用して，XML文書を解析した形式のデータです。

(b)　XML型のデータロード時に使用する列構成情報ファイル，及びナル値・関数情報ファイルの指定方法

XML型の列を定義した表へのデータロード時に，列構成情報ファイル，又はナル値・関数情報ファイルを使用する場合，次のコンストラクタ関数を指定する必要があります。

列構成情報ファイルを使用する場合のコンストラクタ関数は次のとおりです。

入力データファイルの形式

入力データ種別ごとの列構成情報ファイルへの指定方法

ESIS-B形式（-G esisb）

XML文書（-G xml）

DAT形式

列名,

func=(XML,param=binary)

[,filedir=パス名]

列名,

func=(XMLPARSE,param=integer,

param=binary,param=integer)

[,filedir=パス名]

拡張DAT形式

固定長データ形式（CHAR型指定）

func=(XML,param=binary,

type=char())

[,filedir=パス名]

列名,

func=(XMLPARSE,param=integer,

type=integer,param=binary,type=char()

[,null=(先頭位置,[｛c｜x｝]’比較値’)]

[,filldata＝埋め字データ]

,param=integer,type=integer)

[,filedir=パス名]

固定長データ形式（BINARY型指定）

func=(XML,param=binary

,type=binary())

[,filedir=パス名]

列名,

func=(XMLPARSE,param=integer,

type=integer,param=binary,type=binary()

[,null=(先頭位置,[｛c｜x｝]’比較値’)]

,param=integer,type=integer)

[,filedir=パス名]

バイナリ形式

−

−

pdrorg出力バイナリ形式

列名,

func=(XML,param=binary)

−

（凡例）

−：指定できません。

注

入力データ種別がXML文書の場合，入力データには，XMLPARSE関数の第2引数のデータだけ指定してください。データの指定方法は，「DAT形式の場合」，又は「固定長データ形式の場合」を参照してください。第1引数と第3引数は，pdloadがデータ値を設定します。

ナル値・関数情報ファイルを使用する場合のコンストラクタ関数は次のとおりです。

入力データファイルの形式

入力データ種別ごとの列構成情報ファイルへの指定方法

ESIS-B形式（-G esisb）

XML文書（-G xml）

DAT形式

−

−

拡張DAT形式

固定長データ形式（CHAR型指定）

固定長データ形式（BINARY型指定）

バイナリ形式

func=(XML,param=binary

[,null=(先頭位置,[｛c｜x｝]’比較値’)])

func=(XMLPARSE,param=integer

,param=binary

[,null=(先頭位置,[｛c｜x｝]’比較値’)]

,param=integer)

pdrorg出力バイナリ形式

−

−

（凡例）

−：指定できません。

注

入力データ種別がXML文書の場合，入力データには，XMLPARSE関数の第2引数のデータだけ指定してください。データの指定方法は，「バイナリ形式の場合」を参照してください。第1引数と第3引数は，pdloadがデータ値を設定します。

(23)　-F

FLOAT型及びSMALLFLT型の入力データ値がOSの制限値に満たない場合，又はOSの制限値を超えている場合に，入力データ値をOSの制限値内に補正するときに指定します。-Fオプション指定時に入力データ値が補正される範囲を次の図に示します。

図5‒13　-Fオプション指定時に入力データ値が補正される範囲

(a)　規則

-Fオプションを指定していない場合，入力データ値がOSの制限値に満たない場合は値がそのままとなり，OSの制限値を超える場合はエラーになります。

-Fオプションは，次のデータ型の場合に有効となります。

DAT形式

拡張DAT形式

固定長データ形式

DAT形式のpdload用アンロードファイル

拡張DAT形式のpdload用アンロードファイル

固定長データ形式のpdload用アンロードファイル

(24)　〔認可識別子.〕表識別子

データロードする表の表識別子を指定します。認可識別子を省略した場合，HiRDBに接続したときのユーザの名称が仮定されます。

(a)　規則

認可識別子又は表識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

(25)　制御情報ファイル名

データベース作成ユティリティの制御文を記述した制御情報ファイルの名称を指定します。

制御情報ファイル中に記述できる制御文を次に示します。各制御文については，5.4.3〜5.4.17を参照してください。なお，制御情報ファイル中にコメントは記述できません。

mtguide文（MTの情報の記述）

emtdef文（MTの情報の記述）

source文（入力データファイルの情報の記述）

index文（インデクス情報ファイルの情報の記述）

idxwork文（インデクス情報ファイル用ディレクトリの情報の記述）

sort文（ソート用ワークディレクトリの情報の記述）

lobdata文（LOB入力ファイルの情報の記述）

lobcolumn文（列単位LOB入力ファイルの情報の記述）

lobmid文（LOB中間ファイルの情報の記述）

srcuoc文（UOC格納ライブラリの情報の記述）

array文（繰返し列を含む表の場合の配列データ形式の記述）

extdat文（拡張DAT形式の情報の記述）

src_work文（分割入力データファイルの出力先の記述）

constraint文（検査保留状態に関する記述）

option文（データ処理に関する情報の記述）

(a)　指定できる制御文の個数

制御情報ファイルに指定できる制御文の個数を次に示します。

制御文

指定できる制御文の最大数

mtguide文

1

emtdef文

1

source文

1

index文

インデクス数×格納RDエリア数

idxwork文

インデクス格納サーバ数

sort文

インデクス格納サーバ数

lobdata文

1

lobcolumn文

LOB列数

lobmid文

1

srcuoc文

1

array文

1

extdat文

1

src_work文

1

constraint文

1

option文

1

(b)　制御文とオプションの関係

制御文とオプションの関係を次に示します。

インデクスを作成する場合

インデクスを作成する場合は，-iオプションの指定によって次の制御文を指定します。

制御文

-iオプションの指定

c

n

s

x

source文

◎

◎

◎

◎

index文

○

○

−

−

idxwork文

○

○

−

−

sort文

○

−

−

−

（凡例）

◎：必要

○：任意

−：不要

LOBデータ，LOBパラメタを入力する場合

LOBデータ，LOBパラメタを入力する場合は，LOB列構成基表，及びLOB列を同時に作成するか，別に作成するかで，指定する制御文が異なります。

制御文

データロード単位

LOB列構成基表，及びLOB列へ同時にデータロード

LOB列構成基表へのデータロード

LOB列へのデータロード

-k f

-k c

-k v

-k d

-k f

-k c

-k f

-k c

source文

◎

◎

◎

◎

◎

◎

−

−

lobdata文

◎

◎

◎

−

−

−

◎

○

lobcolumn文

−

◎

−

−

−

−

−

◎

lobmid文

◎※

◎

◎※

−

◎※

◎

◎※

◎

（凡例）

◎：必要

○：任意

−：不要

注※

抽象データ型の列に格納する，データを生成するコンストラクタ関数への入力パラメタとするLOBの場合は，指定しても無視されます。

EasyMTを使用する場合

EasyMTを使用する場合は，-fオプションの有無によって次の制御文を指定できます。

制御文

記述内容

-fオプションの指定

easymt

なし

mtguide文

EasyMTの情報

○

−

emtdef文

EasyMTの情報

○

−

source文

入力データファイルの情報

◎

◎

（凡例）

◎：必要

○：任意

−：不要

(c)　制御文で記述するファイル，及びディレクトリについて

制御文で記述するファイル，及びディレクトリの規則を次に示します。

HiRDB管理者に対してアクセス権限を与えておく必要があります。

5.4.3　mtguide文，及びemtdef文（MTの情報の記述）

入力データファイル，又はLOB入力ファイルとしてEasyMT，及びMTguideを使用する場合に指定します。

mtguide文及びemtdef文は，source文，lobdata文の前に記述してください。

EasyMT，及びMTguideについては，それぞれ次のマニュアルを参照してください。

EasyMT

「磁気テープ運用支援　JP1/Magnetic Tape Access」，又は「磁気テープ簡易アクセス法　EasyMT」

MTguide

「磁気テープマウント管理　JP1/Magnetic Tape Library」

(1)　形式

　mtguide ｛use｜nouse｝

　emtdef MT属性定義ファイル名

(2)　説明

(a)　mtguide ｛use｜nouse｝

入力データファイル，又はLOB入力ファイルとしてEasyMTを使用する場合，MTのマウント操作にMTguideを使用するかどうかを指定します。

同期点指定のデータロードの場合，既にマウント操作を終了した状態のときは，再実行する前に1巻目から再度マウントする必要があります。

use：

MTguideを使用する場合に指定します。

なお，LOB列構成基表とLOB列へ同時にデータロードする場合はuseを指定してください。

nouse：

MTguideを使用しない場合に指定します。

(b)　emtdef MT属性定義ファイル名

　　　〜＜パス名＞

EasyMTのMT属性を定義したファイルの名称を指定します。このファイルに指定した次に示す項目が，EasyMTの処理で有効になります。

bufno：入出力バッファ面数

magazin：MT装置割り当てパターン

job：業務名称

ただし，source文，又はlobdata文中の記述で同じ項目を指定した場合は，その値を優先します。

【HiRDB/シングルサーバの場合】

MT属性定義ファイルは，シングルサーバのあるサーバマシンに作成してください。

【HiRDB/パラレルサーバの場合】

MT属性定義ファイルは，システムマネジャのあるサーバマシンに作成してください。

5.4.4　source文（入力データファイルの情報の記述）

入力データファイルの情報を指定します。

＜適用基準＞

LOB列がある表のLOB列にだけデータロードするとき以外は，必ず指定します。

＜規則＞

source文は必ず１行で記述してください（1行の長さは1023バイト以内）。また，source文は制御情報ファイルの中に一つだけ指定できます。

(1)　形式

　source 〔RDエリア名〕 〔｛サーバ名｜ホスト名｝：〕

　　　　 ｛入力デ−タファイル名〔，入力デ−タファイル名〕…｜（uoc）｝

　　　　 〔error＝エラー情報ファイル名〕

　　　　 〔errdata＝エラーデータファイル名〔，出力行数〕〕

　　　　 〔errwork＝エラーデータファイル作成用バッファサイズ〕

　　　　 〔maxreclen=入力データ長〕

　　　　 〔EasyMT情報〕

　　　　 〔validate 符号 ｛日付｜日数｝〕

(2)　説明

(a)　RDエリア名

　　　〜＜識別子＞((1〜30))

横分割表に対して，RDエリア単位にデータロードをする場合，データロードをするRDエリアの名称を指定します。

＜規則＞

キーレンジ分割，又はFIXハッシュ分割の横分割表の場合，該当するRDエリアに格納するデータかどうかをHiRDBがチェックし，格納範囲不正のときはエラーとします。ただし，フレキシブルハッシュ分割の横分割表の場合，該当するRDエリアに格納するデータかどうかはチェックしないで，そのままデータを格納します。

RDエリア名を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符で囲まない場合は，すべて英大文字として扱われます。また，RDエリア名に空白が含まれる場合は，引用符で囲んでください。

レプリカRDエリアを指定する場合，RDエリア名にはオリジナルRDエリア名を指定し，-qオプションに対象となる世代番号を指定します。

(b)　｛サーバ名｜ホスト名｝：

入力データファイルがあるサーバ名，又はホスト名を指定します。

サーバ名　〜＜識別子＞((1〜8))

【HiRDB/シングルサーバの場合】

HiRDB/シングルサーバの場合は指定しないでください。

【HiRDB/パラレルサーバの場合】

入力データファイルがあるフロントエンドサーバ，又はバックエンドサーバの名称を指定します。監査証跡表にデータロードする場合は，監査証跡ファイルがあるユニットの任意のサーバ名称を指定します。なお，影響分散スタンバイレス型系切り替えを適用している場合，サーバ名にゲストBES（切り替え対象サーバ）を指定すると，正規ユニット（そのサーバが実行系として動作しているユニット）に入力データファイルがあるものとして動作します。

RDエリア名を指定した場合は省略できます。省略した場合，指定したRDエリアのあるサーバ名が仮定されます。RDエリア名を省略した場合は，必ず指定してください。

ホスト名　〜＜識別子＞((1〜32))

【HiRDB/シングルサーバの場合】

入力データファイルがあるホストの名称を指定します。シングルサーバがあるホスト名，又はユティリティ専用ユニットのホスト名を指定してください。

RDエリア名の指定に関係なく省略できます。省略した場合，データベース作成ユティリティ（pdloadコマンド）を入力したホスト名が仮定されます。なお，系切り替え機能を使用している場合は，現用系のホスト名を指定してください。

【HiRDB/パラレルサーバの場合】

HiRDB/パラレルサーバの場合は指定しないでください。

(c)　入力データファイル名

　　　〜＜パス名＞

入力データが入っている入力データファイルの名称を絶対パス名で指定します。

入力データファイルが複数ある場合は，コンマ（，）で区切って指定できます。入力データファイルについては，「入力データファイル」を参照してください。

【HiRDB/シングルサーバの場合】

シングルサーバがあるサーバマシン，又はユティリティ専用ユニットのサーバマシンに作成してください。

【HiRDB/パラレルサーバの場合】

フロントエンドサーバ，又はバックエンドサーバに作成してください。

＜規則＞

EasyMTの場合は，入力データファイルは二つまでしか指定できません。

MTguideを使用する場合は，パス名の代わりにMTguideが管理する装置記号名，又は装置グループ名を指定できます。

指定した入力データファイルに対して，データロード処理をする前にアクセス可否のチェックをします。この場合，アクセス不可のときにはデータロード処理は実行されません。

BOM（Byte Order Mark）を持つファイルの使用可否については，「規則及び注意事項」の「BOMを持つファイルの使用」を参照ください。

(d)　（uoc）

UOCを使用する場合，入力デ−タファイルの入出力をUOC側でするときに指定します。なお，監査証跡表にデータロードする場合，システムが提供するUOCを使用するため，このオペランドを指定してください。

ユーザが作成するUOCについては，「UOCを利用したデータロード」を参照してください。

(e)　error＝エラー情報ファイル名

　　　〜＜パス名＞

エラー情報を出力するファイルの名称を絶対パス名で指定します。

入力データファイルがあるサーバのファイル名を指定してください。指定したファイルが存在しない場合，指定したファイル名でユティリティがファイルを作成するため，事前にファイルを作成しておく必要はありません。なお，errorオペランドを省略すると，次に示す形式でユティリティがユニークな名称のファイルを作成します。

 /ディレクトリ名/ERROR-xxxxxxxxx

ディレクトリ名：表「pdloadがファイルを出力するディレクトリ」に示すディレクトリ

ERROR-：エラー情報ファイルのプリフィクス

xxxxxxxxx：ファイル作成時間とプロセスIDを文字列に変換した値

ユティリティが作成したファイルの名称は，KFPL00709-Iメッセージに出力されます。

また，-eオプションを指定している場合は，入力データにエラーがあるときだけエラー情報ファイルが作成されます。

なお，HiRDB/パラレルサーバの場合，BESが検知した入力データのエラー情報はエラー情報ファイル作成用一時ファイルとして一時的に作成されます。このファイルは，次に示す形式で各BESに作成されます。

 /ディレクトリ名/ERRTMP-xxxxxxxxx

ディレクトリ名：表「pdloadがファイルを出力するディレクトリ」に示すディレクトリ

ERRTMP-：エラー情報ファイルのプリフィクス

xxxxxxxxx：一意なファイル名，ファイル作成時間，及びプロセスIDを文字列に変換した値

(f)　errdata=エラーデータファイル名〔，出力行数〕

入力データがエラーとなった場合，そのエラーとなった行データを出力するときに指定します。

エラーデータファイルに出力された行データを修正すれば，再度入力データファイルとしてデータロードできます。

-eオプションを指定した場合は，エラーデータファイルを指定しても無効となります。

エラーデータファイル名　〜＜パス名＞

エラーとなった行データを出力するファイルの名称を絶対パス名で指定します。

このファイルは，入力データファイルと同じサーバマシンに作成する必要があります。省略した場合，エラーの行データは出力されません。

出力行数　〜＜符号なし整数＞((1〜4294967295))《100》

エラーとなった行データの最大出力行数を指定します。

エラーの行データが，ここで指定した行数より多い場合でも処理は続行されます。ただし，指定した行数までしかエラーの行データは出力されません。

＜規則＞

エラーデータファイルを指定するときは，ファイル名，及びパス名の長さは，次の計算式の値以下にしてください。

＜パス名の長さ＞（単位：バイト）

OS上のパス名の上限値−8

＜ファイル名の長さ＞（単位：バイト）

OS上のファイル名の上限値−8

なお，エラーデータファイルを使用する場合，エラーデータを格納するためのエラーデータファイル作成用一時ファイルが一時的に作成されることがあります。エラーデータファイル作成用一時ファイルが作成される条件とファイル名については，「エラー情報参照時の注意事項」を参照してください。

エラーデータファイルの出力結果には，次の制限があります。

＜DAT形式の入力デ−タファイルの場合＞

maxreclenオペランドの指定値よりデータ長が大きい場合は出力対象となりません。

maxreclenオペランドを省略した場合，32キロバイト以上のデータがあるときは，出力対象となりません。

＜バイナリ形式の入力デ−タファイルの場合＞

可変長文字列データの長さ部が不正なために1行に編集できなかったデータは，編集された途中までしか出力されません。また，固定長の列データが定義長に満たない場合は，出力対象となりません。

＜列単位LOB入力ファイルを使用した場合＞

エラーデータファイルには，エラーとなった入力データファイル中の行データだけが出力されます。そのため，入力データファイルを修正して再度データロードする場合，列単位LOB入力ファイルを入力データファイルの出力順序に合わせて修正する必要があります。

インデクスキー値の重複エラーの場合，次の条件のときはエラーであってもエラーデータファイル出力の対象とはなりません。

インデクス一括作成モードの場合

HiRDB/シングルサーバの場合，インデクス更新モードで，かつユティリティ専用ユニットに入力デ−タファイルがあるとき。HiRDB/パラレルサーバの場合，インデクス更新モードで，かつ表格納用RDエリアがあるサーバとは別のサーバに入力デ−タファイルがあり，エラーデータファイル作成用のバッファが不足したとき。

LOB列にデータロードする場合，及びpdrorg出力バイナリ形式の入力デ−タファイルを使用する場合は，エラーデ−タファイル出力の対象とはなりません。

バイナリ形式の入力デ−タファイルに可変長文字列がある場合，その可変長文字列にエラーがあっても，エラーの列の直前までしか出力対象となりません。エラーデ−タファイルを参照する場合には注意してください。

(g)　errwork＝エラーデータファイル作成用バッファサイズ

　　　〜((0〜2097152))

errdataオペランド指定時に，エラーデータファイル作成用のバッファサイズをキロバイト単位で指定します。

このオペランドは，errdataオペランドを指定してデータロードしたときにKFPL25222-Wメッセージが出力され，一部のエラーデータがエラーデータファイルに出力されなかった表に対して，再度データロードする場合に指定します。

なお，errworkオペランドに0を指定すると，キー重複エラー及び抽象データ型列への値不正エラーは出力されませんが，データロードの実行性能は良くなります。

KFPL25222-Wメッセージが出力されるのは，次の三つの条件をすべて満たす場合です。

HiRDB/パラレルサーバでsource文に指定したサーバ名と表格納RDエリアが定義されているバックエンドサーバ名が異なる場合，HiRDB/パラレルサーバで複数のバックエンドサーバに横分割されている表の場合，又はHiRDB/シングルサーバでユティリティ専用ユニットを使用する場合。

データロード対象の表に，ユニークキーインデクス又は主キーインデクスが定義されている場合，又は抽象データ型の列がある場合。

次のどれかに該当する場合

入力データファイル中にデータベースに格納しないデータ（列構成情報ファイルでskipdata文を指定したデータ，列定義長よりも長いデータ，ナル比較値と一致してナル値となるデータ）がある場合

VARCHAR，NVARCHAR，MVARCHAR，BINARY，又はLOB列へのデータの格納の場合

コンストラクタ関数への入力パラメタ型が，VARCHAR，NVARCHAR，MVARCHAR，BINARY，又はLOBの抽象データ型へデータを格納する場合

＜見積もり式＞

エラーデータファイル作成用バッファサイズの見積もり式を次に示します。見積もり式の単位はバイトなので，指定するときはキロバイトに補正（端数切り上げ）してください。

バッファサイズ＝｛↑Ｘ÷（データベース格納平均行長＋Ｙ）↑｝
　　　　　　　　　×入力データ平均行長×２×
　　　　　　　　　表格納用RDエリアが定義されているサーバ数

　　Ｘ：システム共通定義pd_utl_buff_sizeの指定値×１０２４
　　Ｙ：FIX表の場合…２４
　　　　非FIX表の場合…（列数＋１）×４＋２４

データベース格納平均行長（表の格納ページ数の計算方法）については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

なお，上記見積もり式は行長の平均値で計算しているので，行データの並びによってはバッファが不足することがあります。メモリに余裕がある場合は，見積もり式の値を次の値に変更することで，確実にエラーデータファイルに出力できます。

非FIX表の場合，データベース格納平均行長を0にします。

入力データ平均行長を，入力データの最大長にします。

(h)　maxreclen=入力データ長

入力データファイルがDAT形式，拡張DAT形式，バイナリ形式，及びpdrorg出力バイナリ形式の場合に指定できます。固定長データ形式の場合，及びストリーミングテープ装置を使用する場合にこのオペランドを指定しても無視されます。

入力データファイルがDAT形式又は拡張DAT形式の場合　〜＜符号なし整数＞((0，32〜524288))≪32≫

入力データファイルがDAT形式の場合で，1行のデータ長が32キロバイトを超えるとき，入力データファイル中の1行の最大データ長をキロバイトで指定します。

このオペランドを省略した場合に1行のデータ長が32キロバイト以上のデータがあるとき，又はオペランドの指定値よりも長いデータがあると，処理を打ち切ります。

＜規則＞

このオペランドを省略する場合，又はストリーミングテープ装置を使用する場合は，入力データファイル（DAT形式）の1行のデータ長は32キロバイト以下でなければなりません。

pdrorgで-W datオプションを指定して出力したDAT形式のアンロードデータファイルを使用する場合は，KFPL22222-Iメッセージに最大長が表示されます。

このオペランドに0を指定すると，pdloadが次の基準で処理対象の表の定義から，行長を計算します。なお，計算値は表定義を利用しているため，入力データ中に表に格納しないデータがある場合や，拡張DAT形式で囲み文字（"）が二重に出力される場合には，計算値が入力データ長と一致しなくなるのでエラーとなります。この場合，入力データ長には0以外の値を指定してください。

データ型，又はパラメタ型

計算値（単位：バイト）

計算値の算出式

INTEGER

12

符号＋けた数＋セパレータ文字

SMALLINT

7

符号＋けた数＋セパレータ文字

DECIMAL（m,n）

m＋3

符号＋けた数＋小数点＋セパレータ文字

FLOAT

24

符号＋可数部＋小数点＋e＋符号＋指数部＋セパレータ文字

SMALLFLT

17

符号＋可数部＋小数点＋e＋符号＋指数部＋セパレータ文字

DATE

11

指定形式＋セパレータ文字

TIME

9

指定形式＋セパレータ文字

INTERVAL YEAR TO DAY

11

符号＋けた数＋コンマ＋セパレータ文字

INTERVAL HOUR TO SECOND

9

符号＋けた数＋コンマ＋セパレータ文字

TIMESTAMP(p)

19＋(p＋1)＋1

指定形式＋セパレータ文字

CHAR(n)，MCHAR(n)，VARCHAR(n)，又はMVARCHAR(n)

n＋3

文字数＋引用符＋セパレータ文字

NCHAR(n)，又はNVARCHAR(n)

(n×2)＋3

文字数＋引用符＋セパレータ文字

BINARY(n)

n＋3

データ数＋引用符＋セパレータ文字

BLOB

1025

パス名最大値＋セパレータ文字

入力データファイルがバイナリ形式又はpdrorg出力バイナリ形式の場合　〜＜符号なし整数＞((0，32〜2097152))≪0≫

BINARY列がある表にデータロードする場合，入力データ中の行の長さの最大長をキロバイト単位で指定します。BINARY列がない表にデータロードする場合にこのオペランドを指定しても無視されます。

＜規則＞

このオペランドを省略，又は0を指定した場合，pdloadが表の定義から最大行長を算出し，その値を使用して処理します。ただし，入力データ長を指定した場合でも，pdloadが表の定義から算出した値の方が小さければ，算出した値を使用して処理します。

pdloadが表の定義から算出する最大行長より，実際の最大データ長が小さい場合，確保する領域を最小限にするためにこのオペランドを指定します。

(i)　EasyMT情報

〔file=ファイル名〕

〔｛，vol＝ボリューム名｜，vol＝（ボリューム名〔，ボリューム名〕…）｝〕

〔，bufno=バッファ面数〕〔，fileno=ファイル順序番号〕

入力データファイルがEasyMTの場合に指定します。

ファイル名，及びボリューム名を指定すると，入力するファイル及びボリュームの名称が，ここで指定した名称と一致しているかどうかチェックできます。ファイル名及びボリューム名のチェックをしない場合には，省略できます。

ファイル名を省略する場合は，先頭になった項目のコンマ（，）は指定しないでください。

file=ファイル名　〜＜英数字＞((1〜17))

ファイルの名称を指定します。

〔｛，vol＝ボリューム名｜，vol＝（ボリューム名〔，ボリューム名〕…）｝〕

　　　〜＜英数字＞((1〜6))

ファイルのボリューム名を指定します。ボリューム名は１行で記述できる範囲で255個まで指定できます。

bufno=バッファ面数　〜＜符号なし整数＞((1〜256))《10》

EasyMTで使用するバッファの面数を指定します。

fileno=ファイル順序番号　〜＜符号なし整数＞((1〜9999))

MT内のデータファイルの位置を指定します。省略した場合は，次の位置からファイルを読み込みます。

(j)　validate 符号 ｛日付｜日数｝

入力データファイルがEasyMTの場合に，読み込みを許可する入力データファイルの作成日付，又は日数を指定します。

なお，このオペランドは，Linux版の場合，使用できません。

MTラベルに西暦（YYYY年）と通算日（DDD日）で作成日付が入っていない場合は，このオペランドは指定できません。また，日付チェックの範囲が1970年以前や2037年以降となるような指定はできません。

符号

日付又は日数のどちらを指定するかによって異なります。

日付の場合：

符号には，=又は>を指定します。

=：

入力データファイルの作成日付が指定日付と一致しない場合，処理を打ち切ります。

>：

入力データファイルの作成日付が指定日付より前の場合は，処理を打ち切ります。

日数の場合：

符号には=を指定します。

日付

日付にはYYYY-MM-DDの形式で，年月日を指定してください。

日数

日数には0又は正の数を指定してください。

0 ：

入力データファイルの作成日付が，pdload起動日と一致しない場合，処理を打ち切ります。

正の数：

入力データファイルの作成日付が，pdload起動日から指定日数より前の場合は，処理を打ち切ります。

＜例＞

validateの指定値とMT作成日付の関連による実行状況の例を示します。これは，pdloadを1996年2月14日に起動した場合の例です。

指定例

MT作成日付

1996−02−12

1996−02−13

1996−02−14

validate＝1996−02−13

×

○

×

validate＞1996−02−13

×

×

○

validate＝1

×

○

○

（凡例）

○：データロード実行

×：データロード打ち切り

5.4.5　index文（インデクス情報ファイルの情報の記述）

インデクス一括作成モード，又はインデクス情報出力モードでデータロードする場合に，インデクス情報を出力するインデクス情報ファイルの情報を指定します。

＜適用基準＞

システム定義のpd_tmp_directoryオペランド及び環境変数TMPDIRを指定していない場合，index文は，/tmpディレクトリの容量不足を発生させないよう，できるだけ指定するようにしてください。

インデクスの数，又はインデクスの格納RDエリア数が多い場合は，idxwork文を指定すると便利です。

＜規則＞

index文は，（インデクス数×インデクス格納RDエリア数）分指定します。

index文を省略した場合，ユティリティがファイル名称を決定し，インデクス情報ファイルを作成します。作成先ディレクトリは，idxwork文を省略している場合，インデクス格納RDエリアがあるサーバの，表「pdloadがファイルを出力するディレクトリ」に示すディレクトリになります。

ユティリティが名称を決定してインデクス情報ファイルを作成した場合，インデクス一括作成完了後，ユティリティがファイルを削除しますが，index文を指定した場合，-oオプションを指定しないとインデクス一括作成完了後にファイルを削除しません。そのため，ユーザがファイルを削除する必要があります。

index文とidxwork文を同時に指定した場合，index文の指定が有効となります。

処理対象表にインデクスが定義されていない場合，index文は指定しないでください。

(1)　形式

　index インデクス識別子 〔RDエリア名〕 インデクス情報ファイル名

(2)　説明

(a)　インデクス識別子

インデクスの識別子を指定します。

インデクス識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符で囲まない場合は，すべて英大文字として扱われます。また，インデクス識別子に空白が含まれる場合は，引用符で囲んでください。

(b)　RDエリア名

　　　〜＜識別子＞((1〜30))

横分割表の場合，インデクスを格納しているRDエリアの名称を指定します。

レプリカRDエリアを指定する場合，RDエリア名にはオリジナルRDエリア名を指定し，-qオプションに対象となる世代番号を指定します。

RDエリア名を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符で囲まない場合は，すべて英大文字として扱われます。また，RDエリア名に空白が含まれる場合は，引用符で囲んでください。

(c)　インデクス情報ファイル名

　　　〜＜パス名＞

インデクス情報を出力するインデクス情報ファイルの名称を，絶対パス名で指定します。

インデクス情報ファイルは，インデクス格納RDエリアがあるシングルサーバ，又はバックエンドサーバを指定してください。

5.4.6　idxwork文（インデクス情報ファイル用ディレクトリの情報の記述）

index文を省略した場合に，自動的にインデクス情報ファイルが作成されるディレクトリの名称を指定します。

＜適用基準＞

システム定義のpd_tmp_directoryオペランド及び環境変数TMPDIRを指定していない場合，idxwork文は，/tmpディレクトリの容量不足を発生させないよう，できるだけ指定するようにしてください。

＜規則＞

index文，及びidxwork文を省略した場合，インデクス格納RDエリアがあるサーバの，表「pdloadがファイルを出力するディレクトリ」に示すディレクトリにインデクス情報ファイルが作成されます。

idxwork文は，次の数だけ指定できます。

【HiRDB/シングルサーバの場合】

一つだけidxwork文を指定します。

【HiRDB/パラレルサーバの場合】

分割格納された表のインデクスの場合，分割格納先のサーバの数だけidxwork文を指定します。分割格納されていない表や，分割格納された表をRDエリア単位にデータロードする場合には一つだけ指定します。指定するサーバ名は，インデクス格納RDエリアがあるサーバの名称を指定します。

idxwork文とindex文を同時に指定した場合，index文の指定が有効となり，idxwork文の指定は無視されます。

(1)　形式

　idxwork 〔サーバ名〕 ディレクトリ名

(2)　説明

(a)　サーバ名

　　　〜＜識別子＞((1〜8))

インデクス情報ファイルを作成するサーバの名称を指定します。

【HiRDB/シングルサーバの場合】

HiRDB/シングルサーバの場合は指定しないでください。シングルサーバの名称を指定しても無視されます。

【HiRDB/パラレルサーバの場合】

インデクス情報ファイルを作成するサーバの名称を指定します。

(b)　ディレクトリ名

　　　〜＜パス名＞((1〜255))

インデクス情報ファイルを作成するディレクトリの名称を絶対パス名で指定します。

(3)　注意事項

(a)　自動作成されるインデクス情報ファイルの名称について

自動作成されるインデクス情報ファイルの名称を次に示します。

●インナレプリカ機能を使用していない場合

ディレクトリ名/INDEX-インデクス名-インデクス格納用RDエリア名
-一意となる文字列

（例）

idxwork文のディレクトリ名が/hd0400，インデクス名がIDX1，インデクス格納用RDエリア名がUSER01の場合，作成されるインデクス情報ファイルの名称は次のようになります。

/hd0400/INDEX-IDX1-USER01-aaaa00001

●インナレプリカ機能を使用している場合

ディレクトリ名/INDEX-インデクス名
-インデクス格納用オリジナルRDエリア名-GN世代番号-一意となる文字列

（例）

idxwork文のディレクトリ名が/hd0400，インデクス名がIDX2，インデクス格納用オリジナルRDエリア名がUSER01，2世代目のRDエリアが対象の場合，作成されるインデクス情報ファイルの名称は次のようになります。

/hd0400/INDEX-IDX2-USER01-GN2-aaaa00002

5.4.7　sort文（ソート用ワークディレクトリの情報の記述）

B-treeインデクスがある表に対して，インデクス一括作成モードでデータロードをする場合，ソート用ワークファイルの情報（ファイルの作成ディレクトリなど）を指定します。

＜適用基準＞

システム定義のpd_tmp_directoryオペランド及び環境変数TMPDIRを指定していない場合，sort文は，/tmpディレクトリの容量不足を発生させないよう，できるだけ指定するようにしてください。

＜規則＞

sort文を省略した場合，ソート用ワークファイルはインデクス格納RDエリアがあるサーバの，表「pdloadがファイルを出力するディレクトリ」に示すディレクトリに作成されます。

表にプラグインインデクスだけが定義されている場合，指定しても無視されます。

ソート用ワークファイルは，pdloadの処理終了後に自動的に削除されます。

sort文は，次の数だけ指定できます。

【HiRDB/シングルサーバの場合】

一つだけsort文を指定します。

【HiRDB/パラレルサーバの場合】

分割格納された表のインデクスの場合，分割格納先のサーバの数だけsort文を指定します。分割格納された表のインデクスの場合でも，RDエリア単位にデータロードする場合には，一つだけsort文を指定します。また，分割格納しないインデクスの場合も，一つだけsort文を指定します。

(1)　形式

　sort 〔サーバ名〕 ディレクトリ名

(2)　説明

(a)　サーバ名

　　　〜＜識別子＞((1〜8))

ソート用ワークファイルを作成するサーバの名称を指定します。

【HiRDB/シングルサーバの場合】

HiRDB/シングルサーバの場合は指定しないでください。シングルサーバの名称を指定しても無視されます。

【HiRDB/パラレルサーバの場合】

ソート用ワークファイルを作成するサーバの名称を指定します。

(b)　ディレクトリ名

　　　〜＜パス名＞

ソート用ワークファイルを作成するディレクトリの名称を，絶対パス名で指定します。

5.4.8　lobdata文（LOB入力ファイルの情報の記述）

LOB列がある表へデータロードする場合，又はコンストラクタ関数への入力パラメタとしてLOBデータを入力する場合に，LOBの情報を指定します。

＜適用基準＞

lobdata文は，LOB列がある表へデータロードする場合に指定してください（ただし，LOB列構成基表だけをデータロードするときには不要です）。

また，抽象データ型列がある表に対して，コンストラクタ関数へ入力パラメタとしてLOBデータを入力してデータロードする場合も，lobdata文を指定できます。

＜規則＞

lobdata文は，-k f，c，又はvの場合に指定できます。

データロードをする場合，LOB列構成基表とLOB列の両方同時にデータを格納するケースと，LOB列構成基表に先にデータを格納し，LOB列には後からデータを格納するケースとがあります。

このとき，LOB列構成基表だけにデータを格納するのであれば，lobdata文は指定しません。同時にデータを格納する場合や，後からLOB列にデータを格納する場合に，lobdata文の指定が必要です。

LOB列及びLOBパラメタ（コンストラクタ関数の入力パラメタとしてのLOBデータ）ごとにLOB入力ファイルを用意する場合，入力データファイル中のLOB列に該当するデータ部にはファイル名を記述します。

しかし，そのファイル名を絶対パス名で記述すると，入力データファイルの容量が増大し，記述も面倒です。

LOB入力ファイルが，あるディレクトリ下にまとめて用意されている場合，ディレクトリ名はlobdata文に，ファイル名は入力データファイル中に記述することで，指定したディレクトリ名とファイル名を合わせて絶対パス名として認識できます。ただし，ディレクトリ名の指定は，入力データファイルにLOB入力ファイルのファイル名を記述する場合だけ有効で，入力データファイルにLOBデータを直接記述する場合は無視されます。

(1)　形式

　lobdata 〔｛LOB入力ファイル名〔，LOB入力ファイル名〕

　　　　　　　｜LOB入力ファイルのディレクトリ名｝〕

　　　　　〔EasyMT情報〕

(2)　説明

(a)　｛LOB入力ファイル名〔，LOB入力ファイル名〕｜LOB入力ファイルのディレクトリ名｝

LOB入力ファイルがEasyMTの場合はLOB入力ファイル名を，EasyMTを使用しない場合はLOB入力ファイルがあるディレクトリ名を指定します。

LOB入力ファイル名〔，LOB入力ファイル名〕　〜＜パス名＞

LOB入力ファイルがEasyMTの場合，そのファイル名を絶対パス名で指定します。LOB入力ファイルは二つまで指定できます。

MTguideを使用する場合は，MTguideが管理する装置記号名又は装置グループ名を指定できます。

LOB入力ファイルのディレクトリ名　〜＜パス名＞

LOB入力ファイルが一つのディレクトリ下にまとまっている場合に，そのディレクトリ名を絶対パス名で指定します。

ここで指定したパス名と，source文で指定した入力データファイル中のLOB列のファイル名称，又はlobcolumn文の列単位LOB入力ファイルの名称を合わせて，LOB入力ファイルの絶対パス名となるように指定してください。

＜注意事項＞

作成した絶対パス名の長さは最大1,023バイトです。

source文で指定した入力データファイル中のLOB入力ファイルの名称，又はlobcolumn文の列単位LOB入力ファイルの名称を絶対パス名で指定している場合は，LOB入力ファイルのディレクトリ名は省略できます。

(b)　EasyMT情報

〔｛vol＝ボリューム名｜vol＝（ボリューム名〔，ボリューム名〕…）｝〕

〔，bufno=バッファ面数〕

LOB入力ファイルがEasyMTの場合に指定します。

ボリューム名を指定すると，ボリュームの名称がここで指定した名称と一致しているかどうかチェックできます。ボリューム名のチェックをしない場合には，省略できます。ボリューム名を省略する場合は，先頭になった項目のコンマ（，）は指定しないでください。

｛vol＝ボリューム名｜vol＝（ボリューム名〔，ボリューム名〕…）｝

　　　〜＜英数字＞((1〜6))

ファイルのボリューム名を指定します。

ボリューム名は1行で記述できる範囲で255個まで指定できます。

bufno=バッファ面数　〜＜符号なし整数＞((1〜256))《10》

EasyMTで使用するバッファの面数を指定します。

(3)　注意事項

LOB列，LOB属性の抽象データ型の列，及びlobdata文の有無によるデータロードの方法を次に示します。なお，LOB属性の抽象データ型としてSGMLTEXT型を例に説明します。

表定義

lobdata文の指定

あり

なし

LOB列あり

SGMLTEXT型の列あり

LOB列構成基表，SGMLTEXT型の列，及びLOB列へ同時にデータロードします。

LOB列構成基表，及びSGMLTEXT型の列へ同時にデータロードし，後からLOB列へデータロードします。

SGMLTEXT型の列なし

LOB列構成基表，及びLOB列へ同時にデータロードします。

LOB列構成基表へ先にデータロードし，後からLOB列へデータロードします。

LOB列なし

SGMLTEXT型の列あり

抽象データ型列構成基表，及びSGMLTEXT型の列へ同時にデータロードします。

SGMLTEXT型の列なし

エラーとなります。

LOB列なし，SGMLTEXT型の列なしでデータロードします。

5.4.9　lobcolumn文（列単位LOB入力ファイルの情報の記述）

LOB列がある表へデータロードする場合に，列単位LOB入力ファイルを使用するとき，そのファイルの情報を指定します。

＜適用基準＞

LOB列がある表に対して，列単位LOB入力ファイルを使用してデータロードする場合に指定します。

列単位LOB入力ファイルは，何らかのプログラムを使用して他データベースからデータを移行するときなどに作成したりします。

＜規則＞

lobcolumn文は，-k cの場合にだけ指定できます。

作成する表にLOB列が複数ある場合は，その列数分lobcolumn文を指定する必要があります。ただし，LOB列をRDエリア単位に作成する場合は，一つだけ指定できます。

また，LOB列構成基表の入力デ−タファイルがDAT形式の場合で，そのファイルにすべての列の記述がなく，対応する列を列構成情報ファイルで指定しているときは，記述のないLOB列に対するlobcolumn文は省略できます。指定した場合は，KFPL16325-Wメッセージを出力し，指定したlobcolumn文の内容は無視され，表定義時のLOB列の指定に従ってナル値又はデフォルト値としてLOBデータを作成します。

LOB列構成基表だけデータロードする場合には，指定する必要はありません。

抽象データ型の列を含む表に対しての指定はできません。

処理対象表にLOB列がない場合，lobcolumn文は指定しないでください。

(1)　形式

　lobcolumn 〔LOB列の列名〕

　　　　　　　列単位LOB入力ファイル名〔，列単位LOB入力ファイル名〕…

(2)　説明

(a)　LOB列の列名

データロードする表のLOB列の列名を指定します。

LOB列が一つしかない場合，又はLOB列をRDエリア単位にデータロードする場合には省略できます。

＜規則＞

表にLOB列が複数ある場合は必ず指定してください。

LOB列の列名を引用符（"）で囲んだ場合は，英大文字と英小文字が区別されます。引用符で囲まない場合は，すべて英大文字として扱われます。また，LOB列の列名に空白が含まれる場合は，引用符で囲んでください。

(b)　列単位LOB入力ファイル名〔，列単位LOB入力ファイル名〕…

　　　〜＜パス名＞

列単位LOB入力ファイルの名称を指定します。

指定したファイル名とlobdata文で指定したディレクトリ名を合わせて，絶対パス名になるように指定してください。lobdata文のディレクトリ名を省略している場合は，ここで指定するファイル名を絶対パス名にしてください。

＜規則＞

列単位LOB入力ファイルのファイル名の長さは，最大1,023です。

ファイル名を複数指定する場合は，LOB列構成基表の入力デ−タファイルの列の順番と合わせて指定してください。

ファイルをEasyMT内に作成している場合は，ファイル名はEasyMT内のファイル名だけを指定します。

列単位LOB入力ファイルは次の場所に用意してください。

【HiRDB/シングルサーバの場合】

列単位LOB入力ファイルは，シングルサーバ又はユティリティ専用ユニットのホストに準備してください。ホスト名は，lobmid文で指定します。

【HiRDB/パラレルサーバの場合】

列単位LOB入力ファイルは，フロントエンドサーバ又はバックエンドサーバに準備してください。サーバ名は，lobmid文で指定します。

5.4.10　lobmid文（LOB中間ファイルの情報の記述）

LOB列がある表へデータロードする場合，LOB中間ファイルの情報を指定します。

LOB中間ファイルには，LOB列構成基表作成時にLOB列のデータロードに必要な情報が出力されます。

＜適用基準＞

LOB列がある表へデータロードする場合で，-k d以外のときは必ず指定してください。

ただし，抽象データ型の列に格納する値を生成する，コンストラクタ関数への入力パラメタのLOBの場合は，指定しても無視されます。

＜規則＞

-k f，c，及びvの場合に指定してください。

LOB中間ファイルの内容は，-kオプションの指定によって異なります。LOB列構成基表とLOB列を別々に作成する場合は，-ｋオプションの指定を同じにする必要があります。

LOB列構成基表にデータロードする場合，lobmid文の指定を省略すると，入力データファイルが存在するサーバに，次に示す形式でユティリティがユニークな名称のLOB中間ファイルを作成します。

 /ディレクトリ名/LOBMID-xxxxxxxxx

ディレクトリ名：表「pdloadがファイルを出力するディレクトリ」に示すディレクトリ

LOBMID-：LOB中間ファイルのプリフィクス

xxxxxxxx：ファイル作成時間とプロセスIDを文字列に変換した値

LOB列構成基表とLOB列を同時に作成する場合はsource文の指定が優先されるため，サーバ名，ホスト名，及びエラー情報ファイル名は指定する必要はありません。指定した場合は無視されます。

(1)　形式

　lobmid 〔RDエリア名〕 ｛サーバ名｜ホスト名｝：

　　　　　 LOB中間ファイル名〔，LOB中間ファイル名〕…

　　　　 〔error=エラー情報ファイル名〕

(2)　説明

(a)　RDエリア名

　　　〜＜識別子＞((1〜30))

ユーザLOB用RDエリアの名称を指定します。

省略した場合，LOB中間ファイルのすべての内容を，データロードの対象とします。

レプリカRDエリアを指定する場合，RDエリア名にはオリジナルRDエリア名を指定し，-qオプションに対象となる世代番号を指定します。

RDエリア名を引用符（"）で囲んだ場合は，英大文字と英小文字が区別されます。引用符で囲まない場合は，すべて英大文字として扱われます。また，RDエリア名に空白が含まれる場合は，引用符で囲んでください。

(b)　｛サーバ名｜ホスト名｝：

LOB中間ファイルがあるサーバ名，又はホスト名を指定します。

サーバ名　〜＜識別子＞((1〜8))

【HiRDB/シングルサーバの場合】

HiRDB/シングルサーバの場合は指定しないでください。

【HiRDB/パラレルサーバの場合】

LOB中間ファイルがあるフロントエンドサーバ，又はバックエンドサーバの名称を指定します。

RDエリア名を指定した場合は省略できます（RDエリア名，又はサーバ名のどちらかを必ず指定してください）。

サーバ名を省略した場合，指定したRDエリアのあるサーバ名が仮定されます。

ホスト名　〜＜識別子＞((1〜32))

【HiRDB/シングルサーバの場合】

LOB中間ファイルがあるホストの名称を指定します。

シングルサーバがあるホスト名，又はユティリティ専用ユニットのホスト名を指定してください。

RDエリア名の指定に関係なく省略できます。省略した場合，データベース作成ユティリティ（pdloadコマンド）を入力したホスト名が仮定されます。

【HiRDB/パラレルサーバの場合】

HiRDB/パラレルサーバの場合は指定しないでください。

(c)　LOB中間ファイル名

　　　〜＜パス名＞

LOB中間ファイルの名称を絶対パス名で指定します。

LOB列構成基表作成時は，このLOB中間ファイルにLOB列のデータロード時に必要な情報が出力されます。そして，LOB列のデータロード時には，LOB中間ファイルから必要な情報を取り出します。

(d)　error=エラー情報ファイル名

　　　〜＜パス名＞

エラー情報を出力するファイルの名称を絶対パス名で指定します。

LOB中間ファイルと同じユニットのファイルを指定してください。指定したファイルが存在しない場合，指定したファイル名でユティリティがファイルを作成するため，事前にファイルを作成しておく必要はありません。なお，errorオペランドを省略すると，次に示す形式でユティリティがユニークな名称のファイルを作成します。

 /ディレクトリ名/ERROR-xxxxxxxxx

ディレクトリ名：表「pdloadがファイルを出力するディレクトリ」に示すディレクトリ

ERROR-：エラー情報ファイルのプリフィクス

xxxxxxxx：ファイル作成時間とプロセスIDを文字列に変換した値

(3)　LOB中間ファイルに関する注意事項

LOB列構成基表とLOB列を別々に作成する場合，LOB列作成時には次のことに注意する必要があります。

同じ入力デ−タファイルを使用して複数回のpdloadでLOB列構成基表を作成した場合，それぞれのpdloadで出力されたLOB中間ファイルは，LOB列作成時のlobmid文に同時に指定できます。ただし，同時に指定する場合は，LOB列構成基表の入力デ−タファイルの行の順番と対応するようにLOB中間ファイルの指定順を考慮する必要があります。

LOB中間ファイルの指定順が不正な場合，列単位LOB入力ファイルとの対応がとれなくなり，エラーとなります。

異なる入力デ−タファイルを使用して複数回のpdloadでLOB列構成基表を作成した場合，それぞれのpdloadで出力されたLOB中間ファイルは，LOB列作成時のlobmid文に同時に指定できません。

同時に指定した場合，列単位LOB入力ファイルとの対応がとれなくなり，エラーとなります。したがって，LOB列作成時には，それぞれの入力デ−タファイルに対応する列単位LOB入力ファイルを準備し，それぞれ別のpdloadで作成する必要があります。

5.4.11　srcuoc文（UOC格納ライブラリの情報の記述）

UOCを利用して，データを編集してからデータべースに格納する場合，UOCの情報を指定します。UOCについては，「UOCを利用したデータロード」を参照してください。

監査証跡表にデータロードする場合，監査証跡ファイルの入力と編集はシステムが提供するUOC（監査証跡データ登録UOC）が行います。そのため，監査証跡表にデータロードする場合はsrcuoc文の指定が必要になります。

＜適用基準＞

UOCを利用してデータロードする場合，又は監査証跡表にデータロードする場合に指定します。

(1)　形式

ユーザが作成したUOCの場合
　srcuoc ライブラリ名称 entry=関数名 〔param='ユーザパラメタ'〕

監査証跡表の場合（監査証跡データ登録UOCの場合）
　srcuoc param='監査証跡データ登録UOC用パラメタ'

(2)　説明

(a)　ライブラリ名称

　　　〜＜パス名＞

UOCを格納している共用ライブラリの名称を絶対パス名で指定します。

(b)　entry=関数名

ライブラリ中のコールする関数名を指定します。

(c)　param='ユーザパラメタ'

　　　〜＜文字列＞((1〜1023バイト))

UOCに対してユーザはコマンドラインなどを通して直接パラメタを渡すことができないため，UOCにパラメタを渡したい場合にその内容をユーザパラメタに指定します。

このオペランドに記述した内容は，インタフェース領域を介して指定した文字列のままUOCに渡されます。

なお，ユーザパラメタに指定する文字列には空白，又はタブを指定しないでください。

(d)　param='監査証跡データ登録UOC用パラメタ'

　　　〜＜文字列＞((1〜4095バイト))

データロード対象となる監査証跡ファイルの情報を次の形式で指定します。

param='dir=監査証跡ファイルが存在するHiRDBファイル名
　　　　，file=｛（データロード対象となる監査証跡ファイル名
　　　　　　　〔，データロード対象となる監査証跡ファイル名…〕）｜all｝
　　　〔，mode=｛normal｜force｝〕'

dir=監査証跡ファイルが存在するHiRDBファイル名

監査証跡ファイルが存在するHiRDBファイル名を指定します。

file=｛（データロード対象となる監査証跡ファイル名〔，…〕）｜all｝

データロード対象とする監査証跡ファイル名を指定します。

dirオペランドに指定したHiRDBファイル内のすべての監査証跡ファイルをデータロード対象とする場合は，allを指定します。

mode=｛normal｜force｝

データロード対象とする監査証跡ファイルの状態によってデータロードするかどうかを指定できます。modeオペランドの指定値とデータロードの結果を次に示します。

監査証跡ファイルの状態

mode指定値

データロードの結果

閉塞有無

データロード状態

閉塞していない

済み

normal

×

待ち

○

済み

force

○※

待ち

○※

閉塞している

済み

normal

×

待ち

×

済み

force

×※

待ち

×※

現用

−

normal

×

force

×

（凡例）

○：データロードします。

×：データロードしません。

−：該当しません。

注※

file=allをmode=forceと組み合わせて指定すると，制御文エラーになります。

なお，監査証跡ファイルの名称や状態は，pdls -d audコマンドで確認できます。

5.4.12　array文（繰返し列を含む表の場合の配列データ形式の記述）

繰返し列を含む表の場合，入力データファイルに記述する配列データ形式とナル値の扱いを指定します。

＜適用基準＞

繰返し列を含む表にデータロードする場合に指定します。

この制御文を省略した場合，配列データ形式はDAT形式ファイル，及び固定長データ形式ファイルのときはFF形式，バイナリ形式ファイルのときはVV形式が仮定されます。また，ナル値オプションはcが仮定されます。

＜規則＞

この制御文は表に含まれるすべての繰返し列に対して指定します。このため，列ごとに指定を変更する場合は，列構成情報ファイル，又はナル値・関数情報ファイルで指定してください。

繰返し列を含む表にデータロードする場合の説明に，次に示す用語を使用します。

最大要素数：

表定義時に該当する列に指定した要素数です。

指定要素数：

最大要素数のうち，入力データファイルに指定する要素数です。列構成情報ファイル，ナル値・関数情報ファイルで指定できます。

実要素数：

入力データファイル中に指定した有効な要素数です。

(1)　形式

　array 〔elmtype=配列データ形式〕 〔nullset=ナル値オプション〕

(2)　説明

(a)　elmtype=配列データ形式

ff，fv，又はvvを指定します。

elmtypeオペランドを省略した場合，DAT形式ファイル，及び固定長データ形式ファイルのときはFF形式，バイナリ形式ファイルのときはVV形式となります。

配列データ形式については，「繰返し列を含む表の配列データ形式」を参照してください。

ff

FF形式（Fixed field Fixed element）です。

入力データ中に実要素数（入力データファイル中に指定した有効な要素数）は指定しないで，要素データを常に一定個数指定します。

＜適用基準＞

FF形式は，入力データ中に実要素数を指定しないで繰返し列へデータを格納したい場合に有効です。

＜規則＞

入力データに指定する要素データの数は，表定義で指定した要素数と同じか，又はそれ以下にしてください。

FF形式は，次に示す入力データ形式に対して指定できます。

・DAT形式

・バイナリ形式

・固定長データ形式

指定した要素データをデータベースに格納するかどうかは，次の条件を満たす場合にユティリティが決定します。

・指定されたデータがナル値かどうか

・ナル値の取り扱いの指定内容

fv

FV形式（Fixed field Variable element）です。

入力データ中に要素データとともに実要素数を指定します。ただし，入力データには，表定義，又は列構成情報ファイル，ナル値・関数情報ファイルで指定した要素数分の要素データを常に指定する必要があります。

＜適用基準＞

FV形式は，固定長でデータを処理できるため，UAPでデータを作成，加工しやすくなりますが，ファイル容量が大きくなります。

＜規則＞

FV形式は，次に示す入力データ形式に対して指定できます。

・バイナリ形式

・固定長データ形式

FV形式は入力データを固定長データ型で指定する形式のため，可変長データ型（VARCHAR，MVARCHAR，NVARCHAR）の場合には，各要素データの先頭に有効データ長を指定します。さらに，有効データ以降は，表の定義長までの部分を任意のデータで埋め字を設定し，常に表の定義長分の長さで指定する必要があります。

vv

VV形式（Variable field Variable element）です。

入力データ中に要素データとともに実要素数を指定します。要素データを実要素数分だけ指定します。

＜適用基準＞

VV形式は，指定するデータは最小の長さでよいため，FV形式よりファイル容量を小さくできます。ただし，実要素数分のデータしか用意しないため，FF形式やFV形式に比べてUAPでデータを加工しにくくなります。

＜規則＞

可変長データ型の場合には，各要素データの先頭に指定した有効データ長分のデータだけ指定します。

VV形式は，次に示す入力データ形式に対して指定できます。

・DAT形式

・バイナリ形式

上記の配列データ形式は，指定する単位によって次のどれかのファイルに指定します。

指定する単位

指定するファイル

内容

表単位

制御情報ファイル

array文のelmtypeオペランドで指定します。

列単位

DAT形式，又は固定長形式

列構成情報ファイル

elmtypeオペランドで指定します。

バイナリ形式

ナル値・関数情報ファイル

elmtypeオペランドで指定します。

(b)　nullset=ナル値オプション

　　　〜《c》

配列データ形式にFFを指定した場合に，ある要素から指定要素の最後まですべてにナル値を指定した場合のナル値格納の扱いを指定します。

FF形式以外の場合に指定しても無視します。

ナル値オプションには，次のどちらかを指定します。

c：該当する要素に何も格納しません。

e：該当する要素にナル値を格納します。

5.4.13　extdat文（拡張DAT形式の情報の記述）

DAT形式の入力データファイルで，次の拡張機能を使用する場合に指定します。

なお，囲み文字の変更，及びINTEGER，SMALLINTの列への小数点データの格納以外の拡張機能は，オペランドの指定有無に関係なくextdat文を指定すれば使用できます。

次の文字の入力

文字データ型，各国文字データ型，混在文字データ型へのナル文字（0x00）

BINARY型へのナル文字（0x00）

改行記号（0x0a）

復帰記号（0x0d0a）

数データ型，日間隔データ型，及び時間隔データ型のデータ型に囲み文字（"）が指定されているデータの入力

数データ型，日付データ型，日間隔データ型，時刻データ型，及び時間隔データ型の列の入力データ部の，半角空白及びタブの削除

囲み文字の変更

囲み文字そのものを入力（囲み文字を2個連続させると，1個のデータとして扱われます）

INTEGER，SMALLINTの列への小数点データの格納

囲み文字とは，extdat文のencloseオペランドに指定した文字のことをいいます。オペランドを省略した場合は，引用符（"）が囲み文字となります。

セパレータ文字の直前，直後のデータの前後を囲み文字で囲んだ場合，囲み文字は入力の対象にはなりません。ただし，囲み文字で囲まれた文字列内の囲み文字は，入力の対象となります。

なお，DAT形式の場合は，引用符が囲み文字となります（囲み文字の変更はできません）。

＜適用基準＞

入力データファイルがDAT形式で，上記の拡張機能を使用したい場合に指定します。

(1)　形式

　extdat 〔enclose=囲み文字〕

　　　　 〔decin=｛yes｜no｝〕

(2)　説明

(a)　enclose=囲み文字

　　　〜＜文字列＞((1バイト))

各入力データの列値を囲んでいる囲み文字を指定します。

＜規則＞

セパレータ文字の直前，直後のデータの前後を囲み文字で囲んでいる場合，その囲み文字は入力の対象にはなりません。

囲み文字と同じ値をデータとして扱う場合は，その囲み文字を2個連続で記述してください。例えば，アポストロフィ（'）が囲み文字の場合は，「''」と2個連続で記述します。

DAT形式と拡張DAT形式では，囲み文字の扱いに違いがあるので注意してください。文字データの入力と囲み文字の扱いについては，「DAT形式の場合」を参照してください。

次の文字は囲み文字として指定できません。

・空白，タブ，アスタリスク（*）

・セパレータ文字と同じ文字

シフトJIS漢字コードの場合，次の文字は入力データのコードと重複する可能性があるので，囲み文字には適していません。

・入力データファイルのデータにある文字

・日本語入力時に文字コードが重なる文字

　（[，¥，]，^，_，'，{，｜，}，￣）

囲み文字は1バイトのため，2バイトコードは指定できません。

(b)　decin=｛yes｜no｝

INTEGER及びSMALLINTの列に，小数点があるデータを格納するかどうかを指定します。

yes：

小数点があるデータを格納します。

yesを指定した場合，最初の小数点までをデータとして扱い，それ以降は無視してフォーマットのチェックもしません。格納される値は，小数点以下を切り捨てた整数値となります。

no：

小数点があるデータを格納しません。

noを指定した場合，小数点があるデータはINTEGER及びSMALLINTの列には格納しないで，エラーデータとします。

(3)　拡張機能の内容

(a)　文字データ型，各国文字データ型，混在文字データ型，及びBINARY型へのナル文字（0x00），改行記号（0x0a），及び復帰記号（0x0d0a）の入力

文字データ型，各国文字データ型，混在文字データ型，及びBINARY型の入力データが囲み文字で囲まれている場合，入力データ中にあるナル文字（0x00），改行記号（0x0a），及び復帰記号（0x0d0a）をデータとして扱います。囲み文字で囲まれていない場合，ナル文字，改行記号，及び復帰記号はデータの区切り，又は行の終端として扱われます。

例えば，"tokyo¥0shibuyaku"というCHAR(16)のデータがあった場合，extdat文を指定すれば「tokyo¥0shibuyaku」が入力されますが，extdat文を指定しないとこのデータは入力できません。

(b)　数データ型，日間隔データ型，及び時間隔データ型のデータ型に囲み文字（"）が指定されているデータの入力

数データ型，日間隔データ型，及び時間隔データ型の入力データに，囲み文字（"）が指定されていてもデータの入力ができます。なお，DAT形式の場合，データの入力はできません。

(c)　数データ型，日付データ型，日間隔データ型，時刻データ型，時間隔データ型，及び時刻印データ型の列の入力データ部の，半角空白及びタブの削除

数データ型，日付データ型，日間隔データ型，時刻データ型，時間隔データ型，及び時刻印データ型の列の入力データ部の，半角空白及びタブを削除します。データがすべて半角空白又はタブの場合については，「データロード時のナル値，及び既定値」を参照してください。

(d)　囲み文字の変更

encloseオペランドに指定した文字を囲み文字として扱います。

(e)　囲み文字そのものを入力

囲み文字を2個連続して記述すると，1個のデータとして扱います。なお，この規則は，マルチバイトコードも同様です。そのため，外字に割り当てたコードなどが囲み文字と一致した場合，不当に入力データエラーと扱われることがあります。この場合，囲み文字を変更する必要があります。

5.4.14　src_work文（分割入力データファイルの出力先の記述）

RDエリア単位のデータロードを実行する場合に，表単位の入力データファイルからRDエリア単位の入力データファイル（分割入力データファイル）を作成するときに指定します。src_work文は，データロード時に指定するのではなく，データロードの前準備として分割入力データファイルを用意するために指定するものです。

分割入力データファイルの作成の概要を次の図に示します。

図5‒14　分割入力データファイルの作成の概要

＜適用基準＞

横分割表にRDエリア単位にデータロードを並列実行する場合で，かつRDエリアごとに入力データファイルを準備していないときに指定します。

src_work文を使用すると，ユーザがRDエリアごとの入力データファイルを用意する必要がなくなります。

＜前提条件＞

入力データファイルは，DAT形式ファイル（拡張DAT形式を含む），及び固定長データ形式ファイルを使用できます。分割入力データファイルも同じ形式で出力します。

分割入力データファイルを作成する場合，表に対するINSERT権限が必要となります。

処理対象となる表は横分割表でなければなりません（分割方法，及び列構成には制限なし）。

分割入力データファイルは，通常ファイルで，かつシングルボリュームでなければなりません。ファイルが既にある場合は上書きされ，ない場合は新規に作成されます。

分割入力データファイルは，入力データファイルがあるホストと同一ホストに作成されます。

分割入力データファイル作成時は，データをチェックして出力しますが，次のデータエラーについてはチェックされません。

・クラスタキー順序不正

・キー重複エラー

・LOB列の格納データの不正※１

・抽象データ型の格納データの不正※２

注※1

次のどちらかです。

・LOB入力ファイルにアクセスできない。

・LOB列のデータ長がLOB列の定義長より長い。

注※2

次のどちらかです。

・プラグイン関数のデータチェックでエラーとなる不正データがある。

・BLOB型の引数エラー（注※1のエラーと同様）。

分割入力データファイルは次の名称で作成されます。

【HiRDB/シングルサーバの場合】

「src_work文に指定するディレクトリ名」＋「入力データファイル名」＋「RDエリア名」

【HiRDB/パラレルサーバの場合】

「src_work文に指定するディレクトリ名」＋「入力データファイル名」＋「サーバ名」＋「RDエリア名」

上記の絶対パス名やファイル名の長さは，OSの制限を超えないように注意してください。

入力データファイルを複数指定した場合，「入力データファイル名」は先頭のファイル名となります。

「RDエリア名」は，表格納用RDエリア名（インナレプリカ機能使用時はオリジナルRDエリア名）となります。

src_work文指定のpdloadの実行では，処理対象表にアクセスすることはありません（処理対象表に排他は掛かりません）。

(1)　形式

　src_work 分割入力データファイルの出力先ディレクトリ名

(2)　説明

(a)　分割入力データファイルの出力先ディレクトリ名

分割入力データファイルを出力するディレクトリ名を絶対パス名で指定してます。

指定するディレクトリは，入力データファイルがあるサーバ又はホストでなければなりません。また，指定するディレクトリには，HiRDB管理者に対してアクセス権限を与えておく必要があります。

(3)　注意事項

分割入力データファイルの名称について

同じ表格納用RDエリアに定義された複数の表に対して，同じ入力データファイル名でpdloadを複数回実行すると，分割入力データファイルの名称が同じになり，ファイルの内容が保証できなくなります。したがって，「src_work文に指定するディレクトリ名」，又は「入力データファイル名」がユニークな名称となるようにしてください。

LOB列がある表について

分割入力データファイルの作成は，入力データファイルを分割するだけなので，LOB入力ファイルにはアクセスしません。したがって，LOB列がある表の場合，LOB入力ファイルはpdloadを実行するホストからNFSなどで参照できる場所に配置する必要があります。

固定長データ形式の入力データファイルのDECIMAL型データの扱い

DECIMAL型の符号正規化機能を使用している場合，分割入力データファイルに出力するDECIMAL型の値は正規化します。

該当RDエリアに格納するデータがない場合，0バイトの分割入力データファイルが作成されます。

分割入力データファイルを出力する場合，自動採番機能は使用できません。

src_work文指定のpdloadの実行では，データの圧縮はしません。そのため，圧縮列の列データは圧縮しないで分割入力データファイルに出力します。

(4)　使用例

(a)　分割入力データファイルを作成してRDエリア単位のデータロードをする例

横分割表（T1）にRDエリア単位にデータロードを並列実行します。このとき，入力データファイル（inputfile）は表単位であるため，RDエリア単位に実行するための分割入力データファイルを作成します。その後，RDエリア単位にデータロードを並列実行します。

1.表定義

 CREATE FIX TABLE T1 (C1 DEC,
                      C2 CHAR(10))
                     IN ((RDAREA1) C1 > 1000,(RDAREA2) C1 < -1000,(RDAREA3));

2.分割入力データファイルの作成

pdloadのコマンド

 pdload T1 control_file

［説明］

T1：処理対象表の名称

control_file：制御情報ファイルの名称

制御情報ファイル（control_file）の内容

 source FES:/hirdb/inputfile error=/hirdb/errfile    [1]
 src_work /divwork    [2]

［説明］

入力データファイル，及びエラー情報ファイルの名称を指定します。

分割入力データファイルを作成するディレクトリ名を指定します。

3.RDエリア単位のデータロードの並列実行

「2.分割入力データファイルの作成」の結果，次の三つの分割入力データファイルが作成されます。

/divwork/inputfile_BES1_RDAREA1

/divwork/inputfile_BES2_RDAREA2

/divwork/inputfile_BES3_RDAREA3

上記のファイルを入力データファイルにして，RDエリア単位にデータロードを並列実行します。

(b)　全列固定長のバイナリ形式の入力データファイルを使用する例

分割入力データファイルを作成する場合，バイナリ形式の入力データファイルは使用できません。ただし，すべての列が固定長のデータ型※で構成される表であれば，固定長データ形式として扱うことができます。

注※

次のデータ型です。

INTEGER，SMALLINT，DECIMAL，FLOAT，SMALLFLT，DATE，TIME，INTERVAL YEAR TO DAY，INTERVAL HOUR TO SECOND，CHAR，NCHAR，MCHAR，TIMESTAMP

1.表定義

 CREATE FIX TABLE T2 (C1 DEC(7),
                      C2 CHAR(10)) FIX HASH HSAH6 BY C1
                     IN (RDAREA1,RDAREA2);

2.分割入力データファイルの作成

pdloadのコマンド

 pdload -a -c column_file T2 control_file

［説明］

-a：入力データファイルが固定長データ形式の場合の指定

T2：処理対象表の名称

column_file：列構成情報ファイルの名称

control_file：制御情報ファイルの名称

列構成情報ファイル（column_file）の内容

 C1,type=dec(7)
 C2,type=char(10)

［説明］

表の構成列C1，C2の並びと，データ型を指定します。

制御情報ファイル（control_file）の内容

 source FES:/hirdb/inputfile error=/hirdb/errfile    [1]
 src_work /divwork    [2]

［説明］

入力データファイル，及びエラー情報ファイルの名称を指定します。

分割入力データファイルを作成するディレクトリ名を指定します。

3.RDエリア単位のデータロードの並列実行

「2.分割入力データファイルの作成」の結果，次の二つの分割入力データファイルが作成されます。

/divwork/inputfile_BES1_RDAREA1

/divwork/inputfile_BES2FES_RDAREA2

上記のファイルを入力データファイルにして，RDエリア単位にデータロードを並列実行します。

5.4.15　constraint文（検査保留状態に関する記述）

検査保留状態に関する設定をします。

検査制約又は参照制約を定義した表にデータロードする場合，pdloadではデータの整合性チェックをしないため，制約の整合性が保証できないデータを格納する可能性があります。このとき，pdconstckで整合性を検証するまで，表へのデータ操作を制限させるため，データロード対象表やその表に関係する参照表を検査保留状態に設定します。

なお，ユーザ自身が制御文を指定して，表の検査保留状態を変更しないこともできます。検査保留状態については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

＜適用基準＞

次のどちらかに該当する場合，constraint文を指定します。

検査制約又は参照制約を定義した表にデータロードする場合，その表の検査保留状態を変更（設定）しないとき

被参照表にデータロードする場合，その表に関係する参照表の検査保留状態を変更（設定）しないとき

＜規則＞

この制御文は，システム定義のpd_check_pendingオペランドの値がUSEの場合だけ有効となります。次のどれかに該当する場合，constraint文の指定は無視され，表の検査保留状態を変更しません。

・システム定義のpd_check_pendingオペランドの値がNOUSEの場合

・表に制約が定義されていない場合

・分割入力データファイルを作成する場合（src_work文を指定する場合）

(1)　形式

　constraint 〔pending=no〕

　　　　　 〔ref_pending=no〕

(2)　説明

(a)　pending=no

参照表又は検査制約表にデータロードする場合，その表の検査保留状態を変更しないときに指定します。このオペランドを省略した場合の仮定値は，「検査保留状態の設定範囲」を参照してください。

＜適用基準＞

次のどちらかに該当する場合，pending=noを指定します。

参照表又は検査制約を定義した表にデータロードする場合，列に格納するデータがユーザによる事前チェックによって整合性が保たれている保証があるとき

参照表又は検査制約を定義した表に対して，インデクスの再作成をするためにデータ件数0件でデータロードをする場合

(b)　ref_pending=no

被参照表にデータロードする場合，その表に関係する参照表の検査保留状態を変更しないときに指定します。このオペランドを省略した場合の仮定値は，「検査保留状態の設定範囲」を参照してください。

＜適用基準＞

次のどちらかに該当する場合，ref_pending=noを指定します。

被参照表に対して作成モードでデータロードする場合，被参照表のデータと参照表のデータがユーザの事前チェックによって整合性が保たれている保証があるとき

被参照表に対して，インデクスの再作成をするために追加モードでデータ件数0件のデータロードをする場合

(3)　注意事項

被参照表へデータロードする場合，その表に関係する参照表を検査保留状態に設定するときの注意事項については，「コマンド実行時のRDエリアの状態」を参照してください。

インナレプリカ機能使用時に被参照表へデータロードする場合，その表に関係する参照表を検査保留状態に設定するときに，参照表を格納するレプリカRDエリアが-qオプションに指定した世代にないと，カレントRDエリアが検査保留状態になります。

検査保留状態を設定する場合，関連する資源に対して排他が掛かります。また，検査保留状態の設定が完了したとき，掛かっていた排他が解除されます。排他制御については，「コマンド実行時の排他制御モード」を参照してください。

(4)　検査保留状態の設定範囲

検査制約の検査保留状態の設定範囲と参照制約の検査保留状態の設定範囲を次の表に示します。

表5‒11　検査制約の検査保留状態の設定範囲

データロード実行条件

検査制約の検査保留状態

システム定義のpd_check_pendingオペランドの値

実行単位

ディクショナリ表

RDエリア中の表情報

SQL_TABLES表CHECK_PEND2列

SQL_CHECKS表CHECK_PEND2列

検査制約の状態

USE

表

●

●

◎※

RDエリア

●

●

○※

NOUSE

表

×

×

×

RDエリア

×

×

×

（凡例）

◎：表を格納するすべてのRDエリア中の表情報（検査制約の状態）を設定します。

●：検査保留状態を設定します。

○：データロード対象のRDエリア中の表情報（検査制約の状態）を設定します。

×：検査保留状態を変更しません（現在の状態を維持します）。

注※

インナレプリカ機能を使用している場合，次に示す世代が検査保留状態の設定対象になります。

-qオプションを指定しているときは，-qオプションで指定した世代が設定対象になります。

-qオプションを指定していないときは，カレント世代が設定対象になります。

表5‒12　参照制約の検査保留状態の設定範囲

データロード実行条件

データロード対象表

システム定義のpd_check_pendingオペランドの値

-dオプションの指定

実行単位

被参照表

参照表

被参照表に関連する参照表の検査保留状態

参照表の検査保留状態

ディクショナリ表

RDエリア中の表情報

ディクショナリ表

RDエリア中の表情報

SQL_TABLES表CHECK_PEND列

SQL_REFERENTIAL_CONSTRAINTS表CHECK_PEND列

参照制約の状態

SQL_TABLES表CHECK_PEND列

SQL_REFERENTIAL_CONSTRAINTS表CHECK_PEND列

参照制約の状態

USE

あり

表

●

●

◎※

●

●

◎※

RDエリア

●

●

◎※

●

●

○※

なし

表

×

×

×

●

●

◎※

RDエリア

×

×

×

●

●

○※

NOUSE

あり

表

×

×

×

×

×

×

RDエリア

×

×

×

×

×

×

なし

表

×

×

×

×

×

×

RDエリア

×

×

×

×

×

×

（凡例）

◎：表を格納するすべてのRDエリア中の表情報（検査制約の状態）を設定します。

●：検査保留状態を設定します。

○：データロード対象のRDエリア中の表情報（検査制約の状態）を設定します。

×：検査保留状態を変更しません（現在の状態を維持します）。

注※

インナレプリカ機能を使用している場合，次に示す世代が検査保留状態の設定対象になります。

-qオプションを指定しているときは，-qオプションで指定した世代が設定対象となります。ただし，被参照表にデータロードする場合，関係する参照表を格納するレプリカRDエリアが，-qオプションに指定した世代にないときは，カレントRDエリアの世代が設定対象となります。

-qオプションを指定していないときは，カレントRDエリアの世代が設定対象になります。

(5)　検査保留状態の設定可否の例

次に示す表T1〜T5について，constraint文のpending及びref_pendingオペランドを指定した場合の，表の検査保留状態の設定可否について説明します。

（表の説明）

T1：主キーを持つ表（T2に対する被参照表）

T2：T1の主キーを参照する外部キーを持ち，さらに自身が主キーを持つ表（T1への参照表であり，かつT3に対する被参照表である表）

T3：T2の主キーを参照する外部キーを持つ表（T2への参照表）

T4：検査制約を定義した表

T5：制約定義がない表

表T1〜T5に対してデータロードを実行した場合の表の検査保留状態を次の表に示します。

表5‒13　データロードを実行した場合の表の検査保留状態

データロード対象表と制約定義有無

constraint文のオペランドの指定有無

表の検査保留状態

表名

参照制約

検査制約

pending

ref_pending

T1

T2

T3

T4

T5

被参照表

参照表

T1

○

×

×

なし

なし

−

P

−

−

−

あり

−

N

−

−

−

あり

なし

−

P

−

−

−

あり

−

N

−

−

−

T2

○

○

×

なし

なし

−

P

P

−

−

あり

−

P

N

−

−

あり

なし

−

N

P

−

−

あり

−

N

N

−

−

T3

×

○

×

なし

なし

−

−

P

−

−

あり

−

−

P

−

−

あり

なし

−

−

N

−

−

あり

−

−

N

−

−

T4

×

×

○

なし

なし

−

−

−

P

−

あり

−

−

−

P

−

あり

なし

−

−

−

N

−

あり

−

−

−

N

−

T5

×

×

×

なし

なし

−

−

−

−

−

あり

−

−

−

−

−

あり

なし

−

−

−

−

−

あり

−

−

−

−

−

（凡例）

○：定義あり。

×：定義なし。

P：検査保留状態を設定します。

N：検査保留状態を変更しません（現在の状態を維持します）。

−：該当しません（pending及びref_pendingオペランドの指定を無視します）。

(6)　検査保留状態を設定するタイミング

データロード対象表やその表に関係する参照表の検査保留状態を設定するタイミングは，データロードのモードによって異なります。データロードのモードと検査保留状態に設定するタイミングの関係を次の表に示します。

表5‒14　検査保留状態に設定するタイミング

データロードのモード

検査保留状態を設定するタイミング

作成モード

データ削除処理を開始する前

追加モード

データロードを開始する前

なお，表の検査保留状態を設定した後，エラーの発生などによってpdloadがロールバックした場合でも，表の検査保留状態の設定は完了（コミットが完了）しているため，表は検査保留状態となります。

5.4.16　option文（データ処理に関する情報の記述）

データロードするときの，データ処理に関するオプション機能について指定します。

＜適用基準＞

次のどれかのオプション機能を使用したい場合に指定します。

空白変換レベルの指定（spacelvlオペランド）

データロード時の，空き領域比率の変更（tblfreeオペランド）

インデクス作成時の，空き領域比率の変更（idxfreeオペランド）

同期点指定のデータロード（jobオペランド）

データの切り捨てが発生した場合の警告メッセージ出力有無（cutdtmsgオペランド）

データロードする表に対するNOWAIT検索の実行（nowaitオペランド）

pdrorg出力バイナリ形式の入力データファイルにLOB列又はLOBパラメタがある場合の指定（bloblimitオペランド）

pdloadの実行時間の監視（exectimeオペランド）

DEFAULT句を指定している表へのデータロードで，入力データがナル値の場合のデータの格納方法（null_stringオペランド）

入力データエラーを検知した場合，それまでの格納処理を無効にする指定（dataerrオペランド）

DAT形式の入力データファイルの場合，入力データ長が列定義長より長いときに入力データエラーとする指定（lengoverオペランド）

エラーデータ情報の抑止（divermsgオペランド）

エンディアンが異なるプラットフォーム間でpdrorg出力バイナリ形式ファイルを使用してデータを移行する場合の指定（srcendianオペランド）

入力データファイルが固定長データ形式の場合で，数値データ型の列に文字データを格納するときの格納方法（allspaceオペランド）

XML文書に含まれる空白類の取り扱い方法（whitespaceオペランド）

自動採番機能を使用したデータロード（seq_range，file_buff_sizeオペランド）

UTF-8の環境で定義した表に対して，UTF-16の入力データファイルでデータロードする場合の指定（charsetオペランド）

(1)　形式

　option 〔spacelvl=｛0｜1｜3｝〕
　　　　 〔tblfree=｛未使用領域比率｜（〔未使用領域比率〕，セグメント内空きページ比率）｝〕
　　　　 〔idxfree=未使用領域比率〕
　　　　 〔job=｛ジョブ名〔，同期点行数〕〔，CLR〕｜，，CLR｝〕
　　　　 〔cutdtmsg=｛on｜off｝〕
　　　　 〔nowait=｛yes｜no｝〕
　　　　 〔bloblimit=領域確保サイズ〕
　　　　 〔exectime=pdloadの実行監視時間〕
　　　　 〔null_string=｛null｜default｝〕
　　　　 〔dataerr=rollback〕
　　　　 〔lengover=err〕
　　　　 〔divermsg=off〕
　　　　 〔srcendian=｛big｜little｝〕
　　　　 〔allspace=zero〕
　　　　 〔whitespace=｛preserve｜strip｝〕
　　　　 〔seq_range=｛buff｜順序番号取得単位｜all｝〕
　　　　 〔file_buff_size=バッファ長〕
　　　　 〔charset=｛utf-16be｜utf-16le｝〕

(2)　説明

(a)　spacelvl=｛0｜1｜3｝

入力データに対して，空白変換をするかどうかを指定します。

0，1，及び3のことを，空白変換レベルといいます。

spacelvlオペランドを省略した場合，システム共通定義のpd_space_levelオペランドの指定値に従って空白変換をします。

0：

入力データの空白変換をしません。

1，及び3：

入力データの空白変換をします。1と3のどちらを指定しても意味は同じです。

空白変換をする場合，データロード対象の表の列が各国文字列型，又は混在文字列型のとき，対応する入力データを次のように変換してデータベースに格納します。

各国文字列型の列の場合

入力データ中の連続する半角空白2バイトを，全角空白1文字に変換します。ただし，先頭から２バイト単位で変換します。

混在文字列型の列の場合

入力データ中の全角空白1文字を，半角空白2バイトに変換します。

文字コードがutf-8の場合，全角空白1文字（3バイト）を半角空白2バイトに変換します。MCHARの場合は，データ長が短くなった分，定義長まで後ろから半角空白が埋められます。MVARCHARの場合は，データ長が短くなったままとなります。

抽象データ型の列に対してコンストラクタ関数を介してデータを格納する場合，対応するコンストラクタ関数の引数のデータ型が各国文字列型，又は混在文字列型のときは，入力データを引数としてコンストラクタ関数に渡す前に空白変換をします。

＜適用基準＞

表データ中の空白文字を統一したい場合に指定します。

表データ中の空白文字を統一する方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

＜注意事項＞

spacelvlオペランドを指定して空白変換をする場合，及びシステム共通定義の指定によって空白変換をする場合は，次のことに注意してください。

クラスタキー順のチェックはデータ変換後の値でするため，変換前のデータがクラスタキー順でも順序エラーとなることがあります。この場合，-xオプションを指定して，クラスタキー順のチェックをしないようにしてください。クラスタキー順に格納したい場合は，データロード後に再編成をしてください。

ユニークキーインデクス又は主キーインデクスを構成する列が空白変換対象の場合，そのインデクスに対して重複キーが発生することがあります。この場合，次のように対処しておく必要があります。

・ユニークキーインデクスの場合

事前にインデクスのユニーク指定を外すか，又は入力データ中の該当するデータを変更してください。

・主キーインデクスの場合

入力データ中の該当するデータを変更してください。

列構成情報ファイル，及びナル値・関数情報ファイルで指定するナル値の比較値については，空白変換はしません。この場合，ナル値の比較値は，空白変換前の入力データと比較します。

入力データの長さのチェックは，空白変換前の入力データと比較します。

(b)　tblfree=｛未使用領域比率｜（〔未使用領域比率〕，セグメント内空きページ比率）｝

データロード時に，CREATE TABLEで指定した空き領域比率（PCTFREEの指定値）を変更してデータを格納したい場合に指定します。

未使用領域比率

0〜99の値を指定できます。

セグメント内空きページ比率

0〜50の値を指定できます。

＜適用基準＞

表定義時に空き領域比率に0以外を指定した表の場合，データロード中に定義時の空き領域比率が適用されたことによって，データ格納時にRDエリアの容量不足が発生することがあります。このような場合に指定すると，暫定的にRDエリアを拡張しないで，データロードを完了できます。

＜注意事項＞

このオペランドを指定した場合，-yオプションを指定して空き領域へデータ格納するよりも，次の点で効率が良くなります。

空き領域にデータを格納する場合も一括入出力が有効となります。

-lオプションにpを指定できます。

(c)　idxfree=未使用領域比率

インデクス一括作成モードでインデクスを作成する場合に，CREATE INDEXで指定した空き領域比率（PCTFREEの指定値）を変更してインデクスを作成したいときに指定します。

指定できる値は，0〜99です。

＜適用基準＞

インデクス定義時に空き領域比率に0以外を指定したインデクスの場合，インデクス一括作成処理中に定義時の空き領域比率が適用されたことによって，インデクス格納時にRDエリアの容量不足が発生することがあります。このような場合に指定すると，暫定的にRDエリアを拡張しないで，インデクス一括作成処理を完了できます。

(d)　job=｛ジョブ名〔，同期点行数〕〔，CLR〕｜，，CLR｝

同期点指定のデータロードをする場合に指定します。

同期点指定のデータロードとは，任意の件数のデータを格納するごとに，トランザクションを決着するデータロードのことをいいます。ログ取得方式がログ取得モード（-l a）又は更新前ログ取得モード（-l p）の場合，データの格納途中で障害が発生したときでも，データを最初から格納し直す必要がなく，短時間でデータベースを回復できます。この場合の対処方法については，マニュアル「HiRDB システム導入・設計ガイド」の「同期点指定のデータロード実行中にユティリティが異常終了したときの対処方法」を参照してください。

なお，監査証跡表にデータロードする場合，自動的に監査証跡ファイルの世代ごとにCOMMITを行うため，件数単位にCOMMITを指示するこのオペランドは指定できません。指定すると，制御文エラーとなります。

ジョブ名　〜〈英数字〉((1〜3))

同期点指定のデータロードを実行する場合のジョブ名を指定します。

ここで指定したジョブ名は，データロード実行中にユティリティが異常終了した場合，後から再実行するときの名称となります。また，このジョブ名はほかのpdloadのジョブ名と重複すると，再実行時に誤動作する原因になります。したがって，ジョブ名はユニークになる名称を指定してください。

同期点行数　〜((1〜1000))《100》

何万件格納するごとにトランザクションを決着するか，データ件数を指定します。例えば，100を指定すると，100万件ごとに同期点が取得されます。

ここで小さな値を指定した場合，少ない件数でトランザクションが決着するので，異常終了時のロールバック処理は短くなります。しかし，トランザクションの生成，決着，及びプロセスの再起動が頻繁に発生するため，オーバヘッドが大きくなります。一方，大きな値を指定した場合，処理性能の劣化は少なくなりますが，障害発生時の回復時間は長くなります。

ジョブ名を指定しないで同期点行数だけを指定した場合，エラーとなります。

CLR

pdloadを再実行する必要がない場合，又は現在データベース中にある同期点情報をクリアしてpdloadを再実行する場合に指定します。

ユティリティが異常終了した場合，同期点情報がデータベースに残ります。この情報が残ったままだと，次に実行したユティリティが正常に動作しない場合があります。

CLRを指定した場合，ほかのユーザやユティリティが設定した同期点情報でもクリアするため，注意して使用してください。

データベース中に同期点情報が設定されているかどうかは，データベース状態解析ユティリティ（pddbst）の表単位の状態解析で確認できます。

＜適用基準＞

大量のデータロードをする場合など，格納時間が長くなるときに有効となります。ただし，同期点処理が実行される分，処理性能は悪くなります。また，データページについては，同期点のたびに新たなページから格納を開始するため，データ格納に必要なページ数が通常のデータロードよりも多くなります。

＜jobオペランドの指定例＞

100万件単位に同期点指定のデータロードをする場合

job=JOB,100　又は　job=JOB

現在設定されている同期点情報をクリアして，新たに100万件単位の同期点指定のデータロードをする場合

job=JOB,100,CLR　又は　job=JOB,,CLR

現在設定されている同期点情報をクリアして通常のデータロードをする場合

job=,,CLR

＜注意事項＞

同期点情報は，ジョブ名で管理されます。例えば，同期点指定のデータロードを実行していたpdload(A)が異常終了した場合，その表に対して同じジョブ名を指定したpdload(B)を実行すると，pdload(A)が残した同期点情報を引き継いでpdload(B)が動作してしまいます。このため，ジョブ名が重複しないように管理する必要があります。

同期点指定のデータロードが異常終了した場合，そのときのジョブ名の同期点指定のデータロードを再実行するまでは，その表に対して通常のデータロード（同期点指定でないデータロード）も実行できません。

同期点情報はRDエリア単位に管理されます。このため，横分割した表の場合，次の条件では表全体の同期点情報が不一致となります。

・一部のRDエリアだけ再初期化された場合

・RDエリア単位の同期点指定のデータロードでエラーが発生した場合

各RDエリアが管理している同期点情報は，ジョブ名が同じ場合でも行数が不一致のときは，再実行できません。しかし，同期点情報を保持しているRDエリアと保持していないRDエリアが混在する場合は，保持されている同期点情報で再実行できます。同期点情報のジョブ名が同じで行数が異なる場合の動作を次に示します。

保持している同期点情報（同期点行数）

表単位の同期点指定のデータロードをした場合の入力開始行

RDエリア1

RDエリア2

RDエリア3

0

0

0

0件目

0

n

0

n件目

n

0

m

実行できません。

n

m

p

実行できません。

（凡例）

0：同期点情報を保持していない状態

n，m，p：保持している同期点行数

同期点指定のデータロードが異常終了した場合，再実行時のインデクス作成方法（-iオプション）は変更できません。

EasyMTを使用した同期点指定のデータロード実行中に，異常終了する前にリマウント操作をした場合，再実行するときは1巻目からマウントし直して実行してください。

同期点指定のデータロードが異常終了してから再実行するまでに，RDエリアの再初期化，及びPURGE TABLE文を実行すると，設定されていた同期点情報が削除されます。

同期点指定のデータロードで，プラグインインデクスの一括作成処理中に異常終了した場合，「プラグインインデクス一括作成部分回復機能」を使用できるプラグインのプラグインインデクスであれば，エラーとなったプラグインインデクスをpdrorgで作成した後に，pdloadを再実行してください。pdrorgを実行しないでpdloadを再実行した場合，プラグインインデクスが全件作り直しになります。

同期点指定のデータロードで制御できるデータ件数の上限は4,294,960,000件です。これ以上のデータ件数のデータロードをする場合は，入力データファイルを複数に分けて，複数回pdloadを実行してください。

(e)　cutdtmsg=｛on｜off｝

DAT形式の入力データファイルのデータロード時に，次のデータ型の列に対して文字データを格納する場合，入力データのデータ長が表の列定義長より長いときは，表の列定義長以上のデータ部分は切り捨てられます。

文字データ型（CHAR，VARCHAR）

各国文字データ型（NCHAR，NVARCHAR）

混在文字データ型（MCHAR，MVARCHAR）

BINARY型

この切り捨てが発生したときに，エラー情報ファイルに警告メッセージ（KFPL31090-W）を出力するかどうかを指定します。

on：警告メッセージを出力します。

off：警告メッセージを出力しません。

＜規則＞

-eオプションを指定している場合は，cutdtmsg=offが仮定されます。

DAT形式以外の入力データファイルに対しては，このオペランドを指定しても無視されます。

cutdtmsg=onを指定して切り捨てが発生すると，すべてのデータが格納されても，pdloadのリターンコードは4となります。

警告メッセージは行数ではなく，データの切り捨てを検知したデータ件数分（列数，要素数分）出力されます。したがって，大量に出力される可能性があるので，cutdtmsg=onを指定する場合はディスク容量に注意してください。

エラー情報ファイルに警告メッセージを出力しても，エラーデータファイルには該当する入力データを出力しません。

(f)　nowait=｛yes｜no｝

データロード中の表に対して，NOWAIT検索をするかどうかを指定します。NOWAIT検索とは，排他オプションにNOWAITを指定して検索するSQLのことをいいます。

yes：NOWAIT検索を実行する場合に指定します。

no：NOWAIT検索を実行しない場合に指定します。

＜nowait=yesの場合の規則＞

インデクス一括作成モード（-i c）は指定できません。インデクス更新モード（-i s）を指定してください。

ローカルバッファ（-nオプション）は使用できません。

RDエリア単位のデータロードはできません。

作成モード（-dオプション指定）の場合，データ削除中はその表に対してNOWAIT検索はできません（排他待ちとなります）。データ格納中は，NOWAIT検索ができます。

プラグインが提供する抽象データ型列がある表の場合，プラグインが無排他検索機能を提供しているかどうかで実行可否が決まります。無排他検索機能を提供しているかどうかについては，各プラグインマニュアルを参照してください。

LOB列がある表のLOB列にだけデータロードをする場合，このオペランドの指定に関係なく，LOB列構成基表は参照でき，LOB列は参照できなくなります。LOB列を参照したい場合には，LOB列構成基表とLOB列を同時にデータロードしてください。

pdloadが異常終了してロールバックしても，データロード処理でいったん使用中となったセグメントは解放されません。解放されないセグメントは，pdloadを再実行するときに再利用しますが，UAPのINSERT文，UPDATE文では再利用しません。このため，pdload再実行前に，UAPのINSERT文，UPDATE文を実行すると，該当するRDエリアの未使用セグメントがなくなるまで，pdload及びUAPで再利用できないセグメントが残ってしまいます。このセグメントを解放するには，pdrorgで表の再編成を実行する必要があります。この現象を回避するためには，RDエリアを参照可能閉塞状態にしてpdloadを実行します（pdloadが異常終了しても，UAPからその表に対してアクセスできません）。

共用表に対してyesを指定しても無視されます（noが仮定されます）。

(g)　bloblimit=領域確保サイズ

　　　〜＜符号なし整数＞((1〜2097152))

pdrorg出力バイナリ形式の入力データファイルで，次のデータ変換をしてデータロードする場合，データをメモリ上に保持しなければならないときがあります。

抽象データ型のBLOBパラメタのデータ→BLOB型の列

BLOBデータ→BLOBパラメタがある抽象データ型の列

このとき，データを保持する領域の大きさをキロバイト単位で指定します。ただし，BLOBパラメタ又はBLOB型の定義長と，このオペランドの指定値を比べて，小さい方の大きさで領域を確保します。

なお，pdrorg用アンロードファイルを使用してBLOB型の列を持つ表へデータロードする場合は，BLOB型の定義長ではなく，実際データベースに格納されているBLOBデータの実長に合わせた領域を確保するときにこのオペランドを指定します。BLOBデータの最大長はアンロードした表からSQLで求めることができます。バッファは複数のBLOB型の列で共用します。実際に確保する領域の大きさを次に示します。

MIN（表の全BLOB型の定義長の合計，bloblimitオペランドの指定値）

確保した領域より入力したBLOBデータの合計長が長くなった場合は処理を打ち切ります。

＜適用基準＞

次のどちらかの条件に該当する場合，このオペランドを指定してください。

抽象データ型のBLOBパラメタのデータ→BLOB型の列の場合，そのBLOBパラメタのデータよりも後に，BLOBパラメタがある抽象データ型列へ格納するデータがあるとき

BLOBデータ→BLOBパラメタがある抽象データ型の列の場合，そのBLOBデータよりも前に，BLOB型の列へ格納するデータがあるとき

＜規則＞

このオペランドは，pdload用アンロードファイルを使用するときだけ有効となります。

指定した大きさを超えるデータがある場合，エラーとなります。

(h)　exectime=pdloadの実行監視時間

　　　〜＜符号なし整数＞((0〜35791394))

pdloadの実行時間を監視する場合に，その監視時間を分単位で指定します。0を指定した場合は，実行時間の監視はしません。指定した監視時間内にpdloadの処理が終了しなかった場合，pdload制御プロセスを強制終了し，無応答原因の調査用に障害情報を取得します。

＜pdloadの実行時間の監視＞

pdload実行時，次の2つの処理に対して実行時間を監視できます。

データロードの前準備で，ディクショナリを操作する時間（-Xオプション）

実際にデータを読み込み，データベースにデータロードする時間（option文のexectimeオペランド）

-Xオプション，及びoption文のexectimeで設定する監視時間の関係については，次の図を参照してください。

図5‒15　pdload実行時の監視時間範囲の関係

このオペランドを省略した場合は，次の優先順位でシステム定義の指定値に従います。

pd_utl_exec_time

pd_cmd_exec_time

＜適用基準＞

夜間バッチなどで監視時間を設定しておけば，pdload実行中に何らかの障害（通信障害（一時的な障害を含む），ディスク障害など）が発生し，pdloadが無応答状態になった場合は異常終了するため，早期に異変を検知できて，早期に回復処理に着手できます。

＜指定値の目安＞

このオペランドは無応答障害検知を目的とするもので，長大トランザクション実行時間を監視するものではありません。したがって，指定値は，該当する表の処理時間に余裕をもたせた値にする必要があります。例えば，7，8分程度で終了するpdloadの実行時間を監視する場合は，exectime=10と指定しないで，exectime=20と指定するようにしてください。また，追加モードのデータロードをする場合，入力データファイルのデータ件数が一定でも，母体のデータ件数によって実行時間は変化するため，更に余裕のある値を指定してください（データ量が単調に増加する表では，適時指定値を見直す必要があります）。

(i)　null_string=｛null｜default｝

DEFAULT句を指定している表に対してデータロードする場合，入力データがナル値（"*"又は記述しない場合）のときに，DEFAULT句の既定値を格納するか，又はナル値を格納するかを指定します。

このオペランドは，入力データファイルがDAT形式の場合に指定できます。バイナリ形式，固定長データ形式，及びpdrorg生成バイナリ形式の場合に指定するとエラーになります。

null：ナル値を格納します。

default：DEFAULT句の既定値を格納します。

(j)　dataerr=rollback

入力データエラー（論理エラー）を検知した場合，データ格納処理を無効（ロールバック）にするときに指定します。

-eオプションとdataerrオペランドの関係とdataerrオペランドとほかのオプション，制御文を同時に指定する場合の留意事項を次の表に示します。

表5‒15　-eオプションとdataerrオペランドの関係

-eオプション

option文のdataerrオペランド

入力データエラーを検知した場合のpdloadの動作

トランザクション決着方法

pdloadのリターンコード

指定なし

指定なし

エラーデータのDB格納処理をスキップして，処理を続行します。

コミット

4

指定あり

エラーデータを検知した時点で処理を打ち切ります。

ロールバック

8

指定あり

指定なし

エラーデータを検知した時点で処理を打ち切ります。

コミット

4

指定あり

エラーデータを検知した時点で処理を打ち切ります。

ロールバック

8

表5‒16　dataerrオペランドとほかのオプション，制御文を同時に指定する場合の留意事項

オプション及び制御文

dataerrオペランドと同時に指定する場合の留意事項

-d

同時に指定すると制御文エラーとなります。

-l

a又はpを指定してください。

-i

次の条件をすべて満たす場合，ロールバック後はインデクス未完状態となるため，同時に指定すると制御文エラーとなります。

RDエリア単位のデータロード

非分割キーインデクスを格納したRDエリア数が表格納RDエリア数と一致しない

-iオプションがs以外

上記の条件をすべて満たさないように，pdloadのオプション，制御文の変更，又はインデクス定義の変更を検討してください。

キー重複エラーの可能性があるデータロードの場合，sを指定してください。s以外を指定した場合，キー重複エラーを検知しても，表に格納したデータはロールバックされません。

-k

f，v，又はcを指定した場合，ロールバック後に不要なLOB中間ファイルが残ります。pdloadの再実行前には，この不要なLOB中間ファイルを削除してください。

f，v，又はcを指定した場合，LOB列へのデータロード中にエラーを検知したときは，dataerrオペランドの指定に関係なくLOB列構成基表はコミット，LOB列はロールバックとなります。この場合，LOBデータを修正して再度データロードしてください。

-e

オプションの指定に関係なく，エラーデータを検知した時点で処理を打ち切り，ロールバックします。

上記以外のオプション

特にありません。

option文のjobオペランド

同時に指定すると制御文エラーとなります。

source文のRDエリア名

次の条件をすべて満たす場合，ロールバック後はインデクス未完状態となるため，同時に指定すると制御文エラーとなります。

RDエリア単位のデータロード

非分割キーインデクスを格納したRDエリア数が表格納RDエリア数と一致しない

-iオプションがs以外

上記の条件をすべて満たさないように，pdloadのオプション，制御文の変更，又はインデクス定義の変更を検討してください。

source文のerrorオペランド

検知したエラーの情報を出力した後，ロールバックします。

source文のerrdataオペランド

同時に指定すると制御文エラーとなります。

上記以外の制御文

特にありません。

(k)　lengover=err

DAT形式（拡張DAT形式を含む）の入力データファイルの，次のデータ型の列に格納する入力データ長が列定義長より長い場合，入力データエラーとして扱うときに指定します。

CHAR

VARCHAR

NCHAR

NVARCHAR

MCHAR

MVARCHAR

BINARY

入力データ長，列定義長，及びlengoverオペランドの関係とlengoverオペランドとほかのオプション，制御文を同時に指定する場合の留意事項を次の表に示します。

表5‒17　入力データ長，列定義長，及びlengoverオペランドの関係

入力データ長と列定義長の関係

lengover指定なし

lengover指定あり

m=n

入力データをそのまま格納します。

m<n

入力データのm+1以降のデータは切り捨てて格納します。

入力データエラーとして扱います。

m>n

CHAR，NCHAR，及びMCHARの場合：

入力データのn+1以降に空白を埋めて格納します。

VARCHAR，NVARCHAR，MVARCHAR，及びBINARYの場合：

入力データをそのまま格納します。

表5‒18　lengoverオペランドとほかのオプション，制御文を同時に指定する場合の留意事項

オプション及び制御文

lengoverオペランドと同時に指定する場合の留意事項

-a，-b

lengoverオペランドはDAT形式の場合に有効なオペランドのため，同時に指定すると制御文エラーとなります。

上記以外のオプション

特にありません。

option文のcutdtmsgオペランド

cutdtmsgオペランドを指定しなくてもKFPL31090-Eメッセージが出力されます。

option文のdataerrオペランド

ロールバック対象の入力データエラーとして扱います。

extdat文

拡張DAT形式の入力データファイルでも有効となります。

source文のerrorオペランド

KFPL31090-W/Eメッセージの出力回数が次のように変わります。

lengoverオペランド指定あり：

データ長不正を検知した最初の列だけメッセージを出力します。

lengoverオペランド指定なし：

データ長不正を検知したすべての列のメッセージを出力します。

source文のerrdataオペランド

エラーデータファイルに該当データを出力します。

上記以外の制御文

特にありません。

(l)　divermsg=off

分割格納条件を変更した表に対して，RDエリア単位にデータロードする場合，入力データ中にRDエリアの格納条件と一致しない行データがあると，エラーデータ情報を出力します。このエラーデータ情報の出力を抑止する場合，このオペランドを指定します。

このオペランドは，データロード対象表が横分割表で，かつRDエリア単位にデータロードする場合に有効となります。これ以外の条件でこのオペランドを指定した場合，指定は無視されます。

分割格納条件と一致しない行データがある場合の，divermsgオペランドと各項目との関係を次の表に示します。

表5‒19　分割格納条件と一致しない行データがある場合の，divermsgオペランドと各項目との関係

項目

divermsgオペランド

指定あり

指定なし

pdloadのリターンコード

0※

4

エラー情報ファイル

KFPL31009-Eメッセージを出力しません。

KFPL31009-Eメッセージを出力します。

エラーデータファイル

エラーデータを出力しません。

エラーデータを出力します。

-eオプション

無効

有効

注※

データ形式エラーがあった場合，リターンコードは4となります。

(m)　srcendian=｛big｜little｝

エンディアンが異なるプラットフォーム間でpdrorg出力バイナリ形式ファイルを使用してデータを移行する場合，移行先で入力データファイルのエンディアンを指定し，移行先のエンディアンに変換します。移行元と移行先のプラットフォームのエンディアンが同じ場合は，このオペランドの指定は不要です。

big：入力データファイルのエンディアンはビッグエンディアンです。

little：入力データファイルのエンディアンはリトルエンディアンです。

移行元と移行先でエンディアンが異なる場合のオペランド指定を次の表に示します。

表5‒20　移行元と移行先でエンディアンが異なる場合のオペランド指定

移行元

移行先

ビッグエンディアン

リトルエンディアン

ビッグエンディアン

−※1

srcendian=big

リトルエンディアン

srcendian=little

−※2

注※1

移行元と移行先でエンディアンが同じのため指定は不要です。ただし，srcendian=bigの指定は可能です。

注※2

移行元と移行先でエンディアンが同じのため指定は不要です。ただし，srcendian=littleの指定は可能です。

＜規則＞

エンディアンが異なるプラットフォーム間でデータを移行する場合，pdrorgが出力したバイナリ形式のファイルを入力とするため，srcendianオペランドを指定するときは，-Wと-bオプション，又は-Uオプションを指定する必要があります。-Wと-bオプションを両方指定しない場合，又は-Uオプションを指定しない場合，srcendianオペランドは指定できません。指定すると，KFPL25002-E又はKFPL24991-Eメッセージを出力してエラー終了します。

-b -W -wを指定した場合は，エンディアンの指定を無視し，入力ファイル中のエンディアンの設定に従います。

＜注意事項＞

srcendianオペランドの指定値を誤った場合，格納データは保証しません。次の現象が発生するおそれがあります。

入力データエラー

プログラムの異常終了

データベースに不正な値を格納

(n)　allspace=zero

固定長データ形式の入力データファイルを使用してデータロードする場合，数値データ型（INTEGER，SMALLINT，DECIMAL，FLOAT，SMALLFLT）の列に格納する文字データを「0」と変換して格納するときに指定します。なお，この場合の文字データとは，文字形式で指定（type=char(n)，type=adec(n,m)）し，かつその指定値がすべて空白（0x20），タブ（0x09），ナル文字（0x00）というデータです。

このオペランドは，-aオプションを指定した固定長データ形式の入力データファイルの場合だけ有効となります。そのほかの形式の場合にこのオペランドを指定した場合，指定は無視されます。

allspaceオペランドの指定と，数値データ型の列に文字データを格納する場合のpdloadの動作を次の表に示します。

表5‒21　allspaceオペランドの指定とpdloadの動作

allspaceオペランド

pdloadの動作

指定なし

データ変換エラーとし，KFPL31004-Eメッセージをエラー情報ファイルに出力して，DB格納処理をスキップします。

指定あり

該当する列のデータ型の「0」をDBに格納します。

(o)　whitespace=｛preserve｜strip｝

XML型の列に対してXML文書をデータロードする場合に，XML文書に含まれる空白類の取り扱い方法を指定します。

preserve：すべての空白類を保持します。

strip：テキストノードに含まれる空白類に対して次の処理を行います（xml:space="preserve"属性を持つ要素の子孫のテキストノードは除きます）。

テキストノードの先頭及び末尾の空白類を除去する

連続する空白類を一つの空白に置き換える

(p)　seq_range=｛buff｜順序番号取得単位｜all｝

自動採番機能を使用してデータロードする場合，順序番号の取得方式を指定します。

buff

順序番号をバッファ単位取得方式で取得します。この方式は，入力バッファ上に読み込まれた行数分の順序番号を取得してからデータロードします。

入力バッファの大きさを変更する場合は，option文のfile_buff_sizeオペランドを指定します。

なお，DAT形式ファイル，又は拡張DAT形式ファイルの場合は入力バッファに読み込まれた行数が不定になるため，常に1行単位で順序番号を取得します。そのため，大量のデータロードをする場合にbuffを指定することはお勧めしません。

順序番号取得単位　〜＜符号なし正数＞((1〜2147483647))

順序番号を指定単位取得方式で取得します。この方式は，指定した行数分の順序番号を取得してからデータロードします。

all

順序番号を全数一括取得方式で取得します。

順序数生成子循環オプションにcycleを指定していない順序数生成子の場合，順序番号の範囲を超える値は取得できません。そのため，allを指定した場合は，順序番号が取得範囲を超えた時点でエラー終了します。また，all以外を指定した場合は，順序番号が取得範囲を超えて，指定した取得単位の順序番号を取得できなかったときにエラー終了します。

(q)　file_buff_size=バッファ長

　　　〜<符号なし整数>((32〜512000))　(単位：KB)

このオペランドはseq_range=buffの場合に指定できます。入力バッファに入力データファイルのデータを読み込む場合に，使用する入力バッファ用のメモリサイズを指定します。

このオペランドを省略した場合は，1,024となります。

(r)　charset=｛utf-16be｜utf-16le｝

UTF-8の環境で定義した表に対して，UTF-16の入力データファイルでデータロードする場合，入力データファイルのエンディアンを指定します。このオペランドは，入力データファイルが次の形式の場合に指定できます。

拡張DAT形式

固定長データ形式

pdrorg出力バイナリ形式（拡張DAT形式又は固定長データ形式のpdload用アンロードファイル）

utf-16be：エンディアンがビッグエンディアンの場合に指定します。

utf-16le：エンディアンがリトルエンディアンの場合に指定します。

このオペランドを省略した場合，入力データファイルの文字コードはUTF-8と判断してデータロードをします。

また，このオペランドを指定した場合，UTF-8の列へUTF-16のデータを格納するため，pdloadが文字コード変換をします。文字コード変換が発生するデータ型を次に示します。

項番

データ型

文字コード変換とcharsetオペランド指定の関係

指定なし

指定あり

utf-16be

utf-16le

1

CHAR，VARCHAR

文字集合指定なし

×

○

○

2

文字集合EBCDIK

◎

×

×

3

文字集合UTF-16

○

×

◎

4

NCHAR，NVARCHAR

×

×

×

5

MCHAR，MVARCHAR

×

○

○

6

BINARY型

×

×

×

7

BLOB

データ

×

×

×

8

ファイル名※

×

○

○

9

抽象データ型

CHAR，VARCHAR

×

○

○

10

NCHAR，NVARCHAR

×

×

×

11

MCHAR，MVARCHAR

×

○

○

12

BINARY型

データ

×

×

×

13

ファイル名※

×

○

○

14

BLOB

データ

×

×

×

15

ファイル名※

×

○

○

16

上記以外

×

×

×

17

上記以外

×

×

×

（凡例）

○：文字コードを変換します（変換後にデータ長が変わります）。

◎：文字コードを変換します（変換後もデータ長は変わりません）。

×：文字コードを変換しません。

注※

ファイル名は列のデータ型に関係なく，OSが処理できる文字コードに変換します。

変換前と変換後でデータ長が変わる場合，pdloadがデータ長を調整します。列のデータ型と変換後データ長の組み合わせによるデータ長の調整方法を次の表に示します。

表5‒22　列のデータ型と変換後データ長の組み合わせによるデータ長の調整方法

列のデータ型

変換後データ長

変換後データ長≦列定義長

変換後データ長＞列定義長

CHAR，及びMCHAR

データを左詰めにし，足りない部分に空白を埋めて格納します。

データを左詰めにし，列定義長を超える部分を切り捨てて格納します。※

VARCHAR，及びMVARCHAR

変換後データ長でデータを格納します。

注※

データの切り捨てが発生した場合，option文のlengoverオペランド，及びcutdtmsgオペランドの指定値によってその後の処理が変わります。lengoverオペランド及びcutdtmsgオペランドの指定値と，データの切り捨てが発生した場合の処理を次に示します。

lengoverオペランド

cutdtmsgオペランド

データの切り捨てが発生した場合の処理

省略

省略又はoff

そのまま処理を続行します。

on

エラー情報ファイルに警告メッセージを出力し，処理を続行します。

err

−

異常終了します。

（凡例）−：該当しません。

5.5　入力データファイル

この節では，入力データファイルについて説明しています。

DAT形式

列データを文字で指定する形式です。

詳細については，「DAT形式の場合」を参照してください。

バイナリ形式

HiRDB内部形式に沿った形式です。

詳細については，「バイナリ形式の場合」を参照してください。

固定長データ形式

DAT形式のように文字でも記述でき，バイナリ形式のようにHiRDB内部形式でも記述できます。

詳細については，「固定長データ形式の場合」を参照してください。

繰返し列を含む表の配列データ形式

データロードする表に繰返し列がある場合，入力データファイルのデータも繰返し列に合わせて配列データ形式で記述します。形式としては，DAT形式，バイナリ形式，又は固定長データ形式のどれかで記述することになります。

詳細については，「繰返し列を含む表の配列データ形式」を参照してください。

列単位LOB入力ファイル

列単位LOB入力ファイルには，入力行数分のLOBデータを記述します。

詳細については，「列単位LOB入力ファイル」を参照してください。

pdrorg出力バイナリ形式ファイル

pdrorgを使用してバイナリ形式でアンロードしたファイルです。詳細については，「pdrorg出力バイナリ形式ファイル」を参照してください。

5.5.1　DAT形式の場合

DAT形式の場合，入力データ，及びコンストラクタ関数への入力パラメタは文字データで記述します。

(1)　記述形式

列データと列データの間をセパレータ文字で区切って指定します。

各データ型に対する列データ，及びコンストラクタ関数のパラメタの記述形式（DAT形式）を次の表に示します。

表5‒23　各データ型に対する列データ・パラメタの記述形式（DAT形式）

データ型

列データ・パラメタ記述形式

一般データ

ナル値又は既定値※１の指定方法

数データ

INTEGER

数値を文字で記述します。

マイナスは，"-"符号を付けます。

小数点は，整数．小数で記述します。

浮動小数点は，仮数部ｅ指数部で記述します。

整数（例：-1234 … 0 … 1234）

小数点（例：-1.56 … 0 … 1.56）

浮動小数点（例：-2.4e＋9 … 0e0 … 2.4e＋9）

’＊’又は記述しません。

SMALLINT

DECIMAL

FLOAT

SMALLFLT

文字データ

CHARACTER

文字，又は前後を囲み文字（"）で囲んである文字で記述します。

（例：abcdefやABCDEFなど）

（例："abcd"や"ABCD"など）

記述しません。

VARCHAR

各国文字データ

NCHAR

NVARCHAR

混在文字データ

MCHAR

MVARCHAR

日付データ

DATE

数値yyyy-mm-ddの形式で記述します。

yyyy：西暦　mm：月　dd：日

（例：1995年1月1日 → 1995-01-01）

’＊’又は記述しません。

日間隔データ

INTERVAL YEAR TO DAY

数値〔-〕yyyymmdd．の形式で記述します。マイナスは"-"符号を付けます。

（例：1111年1か月1日間 → 11110101．）

時刻データ

TIME

数値hh：mm：ssの形式で記述します。

hh：時　mm：分　ss：秒

（例：12時1分1秒 → 12：01：01）

時間隔データ

INTERVAL HOUR TO SECOND

数値〔-〕hhmmss．の形式で記述します。マイナスは"-"符号を付けます。

（例：1時間1分1秒 → 010101．）

時刻印データ

TIMESTAMP

数値YYYY-MM-DD hh:mm:ss〔.nnnnnn〕の形式で記述します。

小数秒部は，0〜6けたの値を指定します。小数部が定義したけた数に満たない場合は0を仮定し，長ければ切り捨てます。ただし，けた数が7以上の場合はエラー（KFPL31002-E）となります。※２

バイナリデータ

BINARY

バイナリデータ，又はバイナリデータを囲み文字で囲んで記述します。

（例：abc 123又は"abc 123"）

記述しません。

XML型のBINARY属性パラメタ

-K fの場合に，XML文書，又はESIS-B形式のデータを格納したファイルの名称を記述します。

（例：/user/xml_dir/xml001.txt）

長大データ

BLOB

＜-k　fの場合＞

LOB入力ファイルの名称を記述します。

（例：lobfile01）

＜-k　cの場合＞

セパレータ文字を含まない1〜1023バイトの文字列で記述します。なお，この文字列は LOB列作成時には無視されます。

（例：＠）

注

各データ型でのナル値の扱いは次のようになります。

固定長の文字データ型，各国文字データ型，混在文字データ型，バイナリデータ型，及び長大データ型の場合，次の記述をナル値又は既定値として扱います。

　…，，…　　　…，""，…

-zオプション指定ありの可変長の文字データ型，各国文字データ型，混在文字データ型，及びバイナリデータ型の場合，次の記述をナル値又は既定値として扱います。

　…，，…

なお，…，""，…は長さ0のデータとして扱います。

そのほかのデータ型の場合，次の記述をナル値又は既定値として扱います。

　…，，…　　　…，""，…　　　…，＊，…

extdat文でencloseオペランドを指定した場合，引用符（"）はencloseオペランドに指定した囲み文字となります。

注※1

option文のnull_stringオペランドの指定値によって，格納される値が決まります。

注※2

TIMESTAMP型の小数秒部のけた数を指定した場合の格納方法を次に示します。

定義けた数

入力データの小数秒部のけた数

0

1

2

3

4

5

6

7以上

0

そのまま格納します。※１

定義けた数以降を切り捨てます。

エラー（KFPL31002-E）

2

定義けた数まで0を埋めます。※２

そのまま格納します。※１

定義けた数以降を切り捨てます。

4

定義けた数まで0を埋めます。※２

そのまま格納します。※１

定義けた数以降を切り捨てます。

6

定義けた数まで0を埋めます。※２

そのまま格納します。※１

注※1

入力データをTIMESTAMP型に変換して，そのまま格納します。

注※2

実データはバイト単位のため，定義けた数が奇数の場合，定義けた＋1の箇所まで0を埋めます。

(2)　規則

ファイルの1行に対して，表の1行のデータを記述します（行の終わりには改行文字が必要です）。

コンストラクタ関数に渡す入力パラメタを記述する場合，パラメタをセパレータ文字で区切ります。

データ中のナル文字（0x00），及び改行記号（0x0a），及び行の終端の復帰改行（0x0d0a）は，データとして扱われません。これらをデータとして扱いたい場合は，extdat文を指定して囲み文字で入力データを囲んでください。

1行は最大32キロバイトです。ただし，source文にmaxreclenオペランドを指定した場合は，32キロバイト以上でもデータロードできます。

EasyMTを使用してLOB列がある表を作成する場合，LOB列構成基表の入力データファイルに記述するLOB入力ファイルの名称は，EasyMT内のファイル名称だけ指定してください。

囲み文字で列の入力値が始まると，囲み文字とセパレータ文字が連続した位置を列の終わりと扱います。そのため，囲み文字とセパレータ文字が連続した値を列の入力値とする場合は，-sオプションでセパレータ文字を変更してください。

セパレータ文字の直前，直後の文字データの前後を囲み文字（"）で囲んだ場合，その囲み文字は入力対象にはなりません。また，囲み文字で囲まれた文字列内のセパレータ文字は，データとして扱われます。文字データの入力と囲み文字の扱いを次の表に示します。

表5‒24　文字データの入力と囲み文字の扱い

入力データファイル内の文字データ

表へ格納されるデータ

DAT形式

拡張DAT形式

〜,ABCD,〜

ABCD

ABCD

〜,AB"CD,〜

AB"CD

入力データエラー

〜,AB""CD,〜

AB""CD

AB"CD

〜,"ABCD",〜

ABCD

ABCD

〜,"AB"CD",〜

AB"CD

入力データエラー

〜,"AB""CD",〜

AB""CD

AB"CD

〜,""ABCD"",〜

"ABCD"

入力データエラー

〜,"""ABCD""",〜

""ABCD""

"ABCD"

〜,,〜

ナル値又は既定値※

ナル値又は既定値※

〜,"",〜

ナル値又は既定値※

ナル値又は既定値※

〜,"""",〜

""

"

〜,"AB,CD",〜

AB,CD

AB,CD

〜,AB¥0CD,〜

入力データエラー

入力データエラー

〜,AB¥nCD,〜

入力データエラー

入力データエラー

〜,"AB¥0CD",〜

入力データエラー

AB¥0CD

〜,"AB¥nCD",〜

入力データエラー

AB¥nCD

（凡例）

「,」：セパレータ文字

「"」：囲み文字

「¥0」：ナル文字（0x00）

「¥n」：改行コード

注※

option文のnull_stringオペランドの指定値によって，格納される値が決まります。

数値型データに変換する文字データの記述形式を次の表に示します。なお，入力データで数値データ型に文字データを指定する場合の制限については，マニュアル「HiRDB SQLリファレンス」の数定数の使用上の制限を参照してください。

表5‒25　数値型データに変換する文字データの記述形式

文字型データで表す数値

表記法

指定形式

指定例（指定→格納値）

整数

△〔｛＋｜−｝〕自然数△

自然数は，0〜9の数字の並びを示します。

＋10△　→　10

−009　→　−9

△△△0△　→　0

10進数

△〔整数〕．〔小数〕△

小数は，符号なし整数を示します。整数又は小数のどちらかは必ず指定してください。

△．05△　→　0.05

−0.8△　→　−0.8

1.0△△　→　1.0

＋1.△　→　1.0

浮動小数点数※

△仮数e〔指数〕△

仮数は，整数又は10進数を示します。eは，Eと指定してもよいです。指数は，1又は2けたの整数を示します。

.3e　→　0.3×10

2.4e−02　→　2.4×10−2

67e−5△　→　67×10−5

（凡例）△：空白を指定してもしなくてもよい箇所を示します。

注※

仮数部が17桁を超える値を指定した場合，表へ格納されるデータが，バージョン10-05以前と異なることがあります。詳細はマニュアル「HiRDB システム導入・設計ガイド」の「バージョン10-05以前とのFLOAT型・SMALLFLT型の差異について」を参照してください。

入力データのデータ長と表のデータ長が異なるときの格納データの扱いを次の表に示します。

表5‒26　入力データのデータ長と表のデータ長が異なるときの格納データの扱い

表のデータ長（m）

入力データのデータ長（n）

固定長文字データ

可変長文字データ，又はバイナリデータ

m=nの場合

入力データはそのまま格納されます。

m<nの場合

option文のlengoverオペランドを指定していない場合，入力データの(m＋1)以降のデータは切り捨てて格納されます。※

option文のlengoverオペランドを指定している場合，入力データエラーとして扱うため，データは格納されません。

m>nの場合

入力データの(n＋1)以降に空白が埋められた形式で格納されます。

入力データはそのまま格納されます。

注※

option文にcutdtmsg=onを指定すると，データの切り捨てが発生した場合にエラー情報ファイルに警告メッセージを出力します。

入力データのデータ部分にセパレータ文字（セパレータ文字と同じコードも含む）がある場合，そのデータ全体を囲み文字（"）で囲まないとそのデータはセパレータ文字として扱われます。

extdat文にenclose="を指定した場合に，格納されるデータ及びナル値の指定方法を次の表に示します。

表5‒27　extdat文にenclose="を指定した場合に，格納されるデータ及びナル値の指定方法

データ型

入力データ

表へ格納されるデータ

ナル値又は既定値の指定方法※

数データ

INTEGER

"1234"

1234

*，""，"*"，又は記述しません。

SMALLINT

"1234"

1234

DECIMAL(6,1)

"000001"

00001.0

FLOAT

"2.225075e-308"

+2.225075000000000E-308

SMALLFLT

"1.175495e-38"

+1.175495051471520E-38

文字データ

CHAR

"ABCDE"

ABCDE

""，又は記述しません。

VARCHAR

"ABCDE"

ABCDE

各国文字データ

NCHAR

"あいうえお"

あいうえお

NVARCHAR

"あいうえお"

あいうえお

混在文字データ

MCHAR

"ABCDE"

ABCDE

MVARCHAR

"ABCDE"

ABCDE

日付データ

DATE

"2000-05-31"

2000-05-31

*，""，"*"，又は記述しません。

日間隔データ

INTERVAL YEAR TO DAY

"+00000000."

00000000

時刻データ

TIME

"09:00:00"

09:00:00

時間隔データ

INTERVAL HOUR TO SECOND

"+000000."

000000

時刻印データ

TIMESTAMP(6)

"2002-08-08△20:25:43.39"

2002-08-08 20:25:43.390000

バイナリデータ

BINARY

"ABCDE"

ABCDE

""，又は記述しません。

XML型のBINARY属性パラメタ

"XML文書ファイルパス名"

XML文書ファイルの内容

長大データ

BLOB

"LOB入力ファイル名"

LOB入力ファイルの内容

（凡例）

△：半角の空白

注※

option文のnull_stringオペランドの指定値によって，格納される値が決まります。

extdat文にenclose="を指定した場合の空白削除の例を次の表に示します。

表5‒28　extdat文にenclose="を指定した場合の空白削除の例

データ型

入力データ

表へ格納されるデータ

数データ

INTEGER

"△1234△"

1234

SMALLINT

"△"

ナル値

DECIMAL(6,1)

"△000001"

00001.0

FLOAT

"△2.225075e-308"

+2.225075000000000E-308

SMALLFLT

"1.175495e-38△"

+1.175495051471520E-38

日付データ

DATE

"△2000-05-31"

2000-05-31

日間隔データ

INTERVAL YEAR TO DAY

"+△00000000."

00000000

時刻データ

TIME

"△09:00:00"

09:00:00

時間隔データ

INTERVAL HOUR TO SECOND

"△+△000000."

000000

時刻印データ

TIMESTAMP

"△2002-08-08△△20:25:43.39△"

2002-08-08 20:25:43.39

（凡例）

△：半角の空白

拡張DAT形式の文字集合としてUTF-16又はIVS対応UTF-16を使用する場合，2バイト単位に入力データを解析します。そのため，拡張DAT形式の入力データファイルに，奇数バイト長のBINARY列データ，及び奇数バイト長のBINARY属性パラメタデータを記述する場合は，次のどちらかの対処をしてください。

文字コードをUTF-8にする。

入力データファイルをバイナリ形式又は固定長データ形式にする。

上記の対処をしなかった場合，pdloadはセパレータ文字や改行文字を正しく認識できないため，次の現象が発生します。

KFPL31005-Eエラー

改行を認識できないため，後続の行を同一列のデータと誤認します。そのため，BINARY列又はBINARY属性パラメタを持つ抽象データ型列へ不当に長いデータが格納されます。

入力データファイルに予備列のデータを記述しないでください。入力データファイルに予備列のデータが記述された場合，論理エラー番号の5を出力します。論理エラー番号については，「エラー情報ファイルの内容」を参照してください。

(3)　記述例

DAT形式のデータ記述例を次の図に示します。

図5‒16　DAT形式のデータ記述例

5.5.2　バイナリ形式の場合

バイナリ形式の場合，入力データはデータベースへ格納される形式で記述します。記述方法を次に示します。

(1)　記述形式

(a)　列データの記述形式

各データ型に対する列データ・パラメタの記述形式（バイナリ形式）を次の表に示します。なお，この表ではビッグエンディアンで表記しています。Linuxの場合はリトルエンディアンになります。

表5‒29　各データ型に対する列データ・パラメタの記述形式（バイナリ形式）

データ型・パラメタ型

列データ記述形式

数データ

INTEGER，SMALLINT

DECIMAL(m,n)

1≦m≦38

0≦n≦38

m≧n

FLOAT，SMALLFLT

文字データ，各国文字データ，混在文字データ※1

CHARACTER(n)，VARCHAR(n)，MCHAR(n)，MVARCHAR(n)

NCHAR(n)，NVARCHAR(n)

文字データ※2

CHARACTER(n)，VARCHAR(n)

日付データ

DATE

日間隔データ

INTERVAL YEAR TO DAY

時刻データ

TIME

時間隔データ

INTERVAL HOUR TO SECOND

時刻印データ

TIMESTAMP(p)

BINARYデータ，BINARY属性データ

BINARY

XML型のBINARY属性パラメタ

LOBデータ，LOB属性データ

BLOB

注※1

文字コード変換なし又は変換後もデータ長が変化しない文字コード変換をする場合

注※2

変換後にデータ長が変化する文字コード変換をする場合

注※3

詳細は，「-kオプションにv，又はdを指定した場合のLOBデータ，及びLOBパラメタの記述方法」を参照してください。

(b)　入力パラメタの記述形式

入力パラメタの記述方法を次に示します。

抽象データ型に格納する値を生成するコンストラクタ関数の入力パラメタを，関数のパラメタ型と同じ構造で記述します。

入力パラメタの順序とコンストラクタ関数の引数の順序は同じにしてください。

格納先の列が抽象データ型の場合，コンストラクタ関数は抽象データ型と同じ名称の関数を使用します。引数が異なる同一名称のコンストラクタ関数が複数ある場合や，抽象データ型の名称とは異なるコンストラクタ関数を使用する場合は，使用する関数名をナル値・関数情報ファイルに指定してください。

入力パラメタが複数ある場合，パラメタ値とパラメタ値の間は，空白を入れないで詰めます。

(2)　規則

磁気テープ装置の場合に，可変長ブロックモードで入力データを作成するときは，ブロック長を32キロバイト以下にしてください。

入力データの列順序と表定義の列順序は同じにしてください。

列データと列データの間は，空白を入れないで詰めます。可変長文字列の場合で定義長に実際のデータが満たない場合は，実長でデータを記述し，次のデータを詰めます。

EasyMTを使用してLOB列がある表を作成する場合，LOB列構成基表の入力データファイルに記述するLOB入力ファイルの名称は，EasyMT内のファイル名称だけ指定してください。

入力データに次のデータがある場合，同期点指定のデータロードはお勧めできません。次のデータがあると，不正が検知されても，同期点までのデータが格納されてしまいます。

繰返し列

可変長データ（VARCHAR，NVARCHAR，MVARCHAR，BINARY，及びBLOB）

抽象データ型の引数が可変長データ

バイナリ形式は，入力データを直接記述するフォーマットのため，デフォルト値を格納できません。デフォルト値を格納する場合は，入力データファイル作成時に直接デフォルト値を記述してください。

入力データファイルに予備列のデータを記述しないでください。入力データファイルに予備列のデータが記述された場合，pdloadは，次のどちらかの動作をします。なお，pdrorg出力バイナリ形式の入力データに予備列のデータが記述された場合も同様です。

エラーが発生し，論理エラー番号の2，4，5，7，8又は9を出力します。

論理エラー番号については，「エラー情報ファイルの内容」を参照してください。

リターンコード0で正常終了します。

ただし，KFPL00703-Iメッセージで示した格納行数が，入力したデータ行数より多くなります。

(3)　記述例

バイナリ形式のデータ記述例を次の図に示します。

図5‒17　バイナリ形式のデータ記述例

注

入力データの上段はデータを，下段は格納される値を示します。

それぞれのデータ型は，NCHAR(5)，INTEGER，SMALLFLT，VARCHARの順です。

各国文字データはシフトJISコードです。

(4)　-kオプションにv，又はdを指定した場合のLOBデータ，及びLOBパラメタの記述方法

(a)　-k vの場合

-kオプションにvを指定した場合，LOBデータの入力ファイル名とLOBパラメタのデータは，入力データファイルに直接記述します。

この方法は，-kオプションにfを指定した場合に比べて，LOB入力ファイルの入出力時間が削減できます。

規則

LOBデータ及びLOBパラメタは，行データ中の該当列に4バイトの長さ部を持ち，行データの直後にデータ部を持つ形式で指定します。指定順序は行データの列順です。

LOBデータ又はLOBパラメタがナル値の場合は，長さ部に−1を指定します。ナル値・関数情報ファイル及び関数情報ファイルによるナル比較値は無視されます。データ部は指定しません。

LOBデータ又はLOBパラメタが0バイトの場合は，長さ部に0を指定します。データ部は指定しません。

記述例

BLOBを入力とする抽象データ型の列を一つ持つ表の場合

表定義：CREATE TABLE T1(C1 INTEGER,C2 SGMLTEXT,C3 DEC(7,0))

BLOBを入力とする抽象データ型の列を二つ持つ表の場合

表定義：CREATE TABLE T2(C1 SGMLTEXT,C2 INTEGER,C3 SGMLTEXT)

LOB列とBLOBを入力とする抽象データ型の列を持つ表の場合

表定義：CREATE TABLE T3(C1 INTEGER,C2 BLOB(100),C3 SGMLTEXT)

(b)　-k dの場合

-k オプションにdを指定した場合，入力データファイルには，LOBデータ格納ファイル名称でなく，データそのものを記述します。

規則

LOBデータ，LOBパラメタデータは行データ中の該当列に４バイトの長さ部を保持し，行データの直後にデータ部を持つ形式で指定してください。

入力データファイルの指定順序は次に示す規則に従ってください。

[行データ]　[LOBパラメタデータ]　[LOBデータ]
    1                2             3

［説明］

1. 長さ部は行データ中に列定義順で指定します。

2. LOBパラメタデータは，行データの直後に列定義順で指定します。

3. LOBデータは「2.」に続いて列定義順に指定します。

LOBデータ，LOBパラメタデータがナル値の場合は，4バイトの長さ部に−1を指定してください。ナル値・関数情報ファイルによるナル比較値は無視します。なお，この場合データ部はありません。

LOBデータ，LOBパラメタデータが0バイトの場合は，長さ部に0を指定してください。なお，この場合データ部はありません。

記述例

LOB列を一つ持つ表の場合

表定義：CREATE TABLE T1(C1 BLOB(100),C2 INTEGER);

LOB列を二つ持つ表の場合

表定義：CREATE TABLE T2(C1 BLOB(100),C2 INTEGER,C3 BLOB(100));

LOB列を二つとLOBを入力とする抽象データ型の列を持つ表の場合

表定義：CREATE TABLE T3(C1 BLOB(100),C2 INTEGER,C3
　　　　　　　SGMLTEXT,C4 BLOB(100));

5.5.3　固定長データ形式の場合

固定長データ形式の場合，入力データは文字，又はデータベースに格納される形で記述します。

抽象データ型に格納するデータをコンストラクタ関数で生成する場合は，入力パラメタを文字データ，又は関数の引数の型で記述します。

なお，文字列形式の数値データ，及び文字列形式の文字データとは，それぞれ次の表に示すデータ型の列に格納する文字列データのことです。

表5‒30　文字列形式の数値データと文字列形式の文字データ

文字列形式の数値データ

文字列形式の文字データ

INTEGER

SMALLINT

DECIMAL

FLOAT

SMALLFLT

DATE

INTERVAL YEAR TO DAY

TIME

INTERVAL HOUR TO SECOND

TIMESTAMP

CHAR

VARCHAR

MCHAR

MVARCHAR

NCHAR

NVARCHAR

(1)　記述形式

入力データを文字で記述する場合は，「DAT形式の場合」を参照してください。データベースに格納される形で記述する場合は，「バイナリ形式の場合」を参照してください。

(2)　規則

1行の長さは固定です。

各列値の開始位置は統一してください。また，数値に変換して格納する文字列は左詰めでも右詰めでもよいですが，文字のまま格納するときは左詰めにしてください（可変長文字列の場合は，空白などを埋めて次の列の開始位置を統一してください）。

ナル値は列構成情報ファイルの指定に従います。

CHAR，VARCHAR，NCHAR，NVARCHAR，MCHAR，及びMVARCHARに対して固定長の文字列データを入力した場合（type=char(n)を指定した場合），先頭１バイトを除いて，列値の終端から連続する半角空白，タブ，及び¥0を削除します。その後，ナル比較値の比較，及びデータベースへのデータの格納をします。

そのため，タブと¥0はCHAR及びMCHARには格納できません。半角空白，タブ，及び¥0は，VARCHAR，NCHAR，NVARCHAR，及びMVARCHARには格納できません。また，半角文字を入力できないデータ型（NCHAR及びNVARCHAR）に対して半角空白，タブ，及び¥0があるデータを入力した場合，次のようになります。

(a) すべて半角空白，タブ，又は¥0のデータの場合

半角空白，タブ，及び¥0を取り除いた結果，先頭1バイトだけが残ります。ただし，NCHAR型，及びNVARCHAR型は，データ長が必ず偶数バイトでなければならないため，データ長が不正なデータとしてエラーになります。

(b) 半角空白，タブ，又は¥0と，それ以外のデータが混在する場合

列値の終端から連続する半角空白，タブ，及び¥0を削除した結果，データ長が奇数バイトの場合，(a)と同様にデータ長が不正なデータとしてエラーになります。半角空白，タブ，及び¥0を削除した結果，データ長が偶数バイトの場合はデータベースにデータを格納します。

以上の点から，NCHAR型，及びNVARCHAR型へ格納する固定長文字列の入力データの後方を埋める文字は，半角空白，タブ，及び¥0ではなく，全角空白を使用するようにしてください。

また，表のデータ型がNCHARの場合，入力対象外としたデータのために格納する入力データが表の定義長に満たない部分には，全角空白が仮定されます。

入力データファイルの列データの形式を，必ず列構成情報ファイルに指定してください。なお，固定長データ形式の場合，ほかの入力データファイルにはない固有の入力データ型があります。詳細については，「固定長データ形式固有の入力データ型」を参照してください。

入力データ側の文字データの長さと格納表の定義長が異なる場合，DAT形式ファイルの固定長データの場合と同様の扱いとなります。ただし，可変長文字データの長さ部が列構成情報ファイルに指定した定義長を超える場合，データは格納されません。また，可変長文字データの長さ部が負の値でも処理は続行します。

データベースに格納されるデータ形式で入力データを記述する場合，バイナリ形式のフォーマットで記述してください。バイナリ形式のフォーマットについては，「バイナリ形式の場合」を参照してください。

文字列形式の数値データでデータを記述する場合，格納先の列のデータ型に変換可能な文字列でデータを記述してください。

列名文のmodeオペランドの指定がtextの場合だけ，文字列形式の文字データでは囲み文字が使用できます。入力データの先頭1バイト目が「"」で始まり，末尾が「"」で終わっているとき，「"」を囲み文字と判断し，囲まれているデータを入力データとして扱います。

文字列形式で入力データを記述する場合の空白（0x20）と囲み文字（0x22）の扱いと，文字列形式で入力データを記述した場合に，データベースに格納されるデータを次の表に示します。

表5‒31　文字列形式で入力データを記述する場合の空白（0x20）と囲み文字（0x22）の扱い（固定長データ形式）

表の列のデータ型，又はコンストラクタ関数のパラメタのデータ型

列名文及びoption文の指定内容

空白（0x20）

囲み文字（"）

囲み文字で囲まれていない場合

囲み文字で囲まれている場合

INTEGER，SMALLINT，DECIMAL，FLOAT，及びSMALLFLT

option文allspaceオペランドの指定あり

先頭から後方へ連続する空白，及び終端から前方へ連続する空白を除いた値が入力データとなります。数値と数値の間や，符号と数値の間の空白は除かないため，数値や符号の途中に空白を指定しないでください。データがすべて空白の場合は指定値「0」となります。

入力データエラーとなります。

option文allspaceオペランドの指定なし

先頭から後方へ連続する空白，及び終端から前方へ連続する空白を除いた値が入力データとなります。数値と数値の間や，符号と数値の間の空白は除かないため，数値や符号の途中に空白を指定しないでください。データがすべて空白の場合は入力データなしとなり，入力データエラーとなります。

CHAR及びMCHAR

mode=text

終端から前方へ連続する空白を除いた値が入力データとなります。

空白を含めた値が入力データとなります。

「"」を囲み文字として扱います。「"」を除いた値が入力データとなります。

mode=bin

空白を含めた値が入力データとなります。

「"」を囲み文字として扱いません。「"」を含めた値が入力データとなります。

NCHAR

−

終端から前方へ連続する空白を除いた値が入力データとなります。

空白を含めた値が入力データとなります。

「"」を囲み文字として扱います。「"」を除いた値が入力データとなります。

VARCHAR及びMVARCHAR

enclose_del=yes

終端から前方へ連続する空白を除いた値が入力データとなります。データがすべて空白の場合は1バイトの空白データとなります。

空白を含めた値が入力データとなります。

「"」を囲み文字として扱います。「"」を除いた値が入力データとなります。連続する囲み文字の「""」は0長データとなります。

enclose_del=no

「"」を囲み文字として扱いません。「"」を含めた値が入力データとなります。

NVARCHAR

−

終端から前方へ連続する空白を除いた値が入力データとなります。データがすべて空白の場合は1バイトの空白（奇数バイト）となり，入力データエラーとなります。

空白を含めた値が入力データとなります。

「"」を囲み文字として扱います。「"」を除いた値が入力データとなります。連続する囲み文字の「""」は0長データとなります。

DATE，INTERVAL YEAR TO DAY，TIME，INTERVAL HOUR TO SECOND，及びTIMESTAMP

−

先頭から後方へ連続する空白，及び終端から前方へ連続する空白を除いた値が入力データとなります。

入力データエラーとなります。

BLOB

−

終端から前方へ連続する空白を除いた値が入力データとなります。

空白を含めた値が入力データとなります。

「"」を囲み文字として扱いません。「"」を含めた値が入力データとなります。

BINARY(7)

−

空白を含めた値が入力データとなります。

「"」を囲み文字として扱いません。「"」を含めた値が入力データとなります。

XML型のBINARY属性パラメタ（ファイルパスを指定する場合）

−

終端から前方へ連続する空白を除いた値がファイルパス名となります。

終端から前方へ連続する空白を除いた値がファイルパス名となります。囲み文字もファイルパス名の一部とみなされます。

「"」を囲み文字として扱いません。「"」を含めた値がファイルパス名となります。

（凡例）−：該当しません。

表5‒32　入力データを文字列形式で記述した場合の格納データ（固定長データ形式）

表の列のデータ型，又はコンストラクタ関数のパラメタのデータ型

列名文及びoption文の指定内容

入力データファイルの記述データ

格納データ

INTEGER，SMALLINT，DECIMAL，FLOAT，及びSMALLFLT

type=char(3)

1△△

各データ型の1

△△1

△1△

+△1

入力データエラー

1△1

type=char(3)

option文allspaceオペランドの指定あり

△△△

各データ型の「0」

option文allspaceオペランドの指定なし

△△△

入力データエラー

CHAR(7)及びMCHAR(7)

type=char(7)又はtype=char(7),mode=text

ABC△△△△

ABC△△△△

"ABC"△△

"ABC△△"

""ABC""

"ABC"△△

△△△△△△△

△△△△△△△

""△△△△△

△"△A△"△

△"△A△"△

type=char(7),mode=bin

ABC△△△△

ABC△△△△

"ABC"△△

"ABC"△△

"ABC△△"

"ABC△△"

""ABC""

""ABC""

△△△△△△△

△△△△△△△

""△△△△△

""△△△△△

△"△A△"△

△"△A△"△

NCHAR(3)

type=char(6)

あ▲▲

あ▲▲

"あ"▲

"あ"▲

"あ▲"

あ▲▲

""あ""

"あ"▲

▲▲▲

▲▲▲

""▲▲

""▲▲

VARCHAR(7)及びMVARCHAR(7)

type=char(7)又はtype=char(7),enclose_del=yes

ABC△△△△

ABC（3バイト）

"ABC"△△

"ABC△△"

ABC△△（5バイト）

""ABC""

"ABC"（5バイト）

△△△△△△△

△（1バイト）

""△△△△△

（0バイト）

△"△A△"△

△"△A△"

type=char(7),enclose_del=no

ABC△△△△

ABC（3バイト）

"ABC"△△

"ABC"（5バイト）

"ABC△△"

"ABC△△"（7バイト）

""ABC""

""ABC""（7バイト）

△△△△△△△

△（1バイト）

""△△△△△

""（2バイト）

△"△A△"△

△"△A△"△

NVARCHAR(3)

type=char(6)

あ▲▲

あ▲▲（6バイト）

"あ"▲

"あ"▲（6バイト）

"あ▲"

あ▲（4バイト）

""あ""

"あ"（4バイト）

▲▲▲

▲▲▲（6バイト）

""▲▲

""▲▲（6バイト）

DATE

type=char(12)

2003-12-31△△

2003-12-31

△△2003-12-31

△2003-12-31△

INTERVAL YEAR TO DAY

type=char(11)

00010101.△△

+00010101.

△△00010101.

△00010101.△

TIME

type=char(10)

08:45:00△△

08:45:00

△△08:45:00

△08:45:00△

INTERVAL HOUR TO SECOND

type=char(9)

010101.△△

+010101.

△△010101.

△010101.△

TIMESTAMP

type=char(21)

1991-01-01△11:22:33△△

1991-01-01△11:22:33

△△1991-01-01△11:22:33

△1991-01-01△11:22:33△

BLOB

type=char(13)

/tmp/file01△△

/tmp/file01のデータ

△△/tmp/file01

エラー

△/tmp/file01△

BINARY(7)

type=char(7)

△△△△△△△

△△△△△△△

（凡例）

△：半角の空白（0x20）

▲：全角の空白

入力データファイルに予備列のデータを記述しないでください。入力データファイルに予備列のデータが記述された場合，pdloadは，次のどちらかの動作をします。

エラーが発生し，論理エラー番号の1，2，4，5，7，8，9又は10を出力します。

論理エラー番号については，「エラー情報ファイルの内容」を参照してください。

リターンコード0で正常終了します。

ただし，KFPL00703-Iメッセージで示した格納行数が，入力したデータ行数より多くなります。

(3)　固定長データ形式固有の入力データ型

固定長データ形式の入力データファイルは，表の列データ型と同じデータ形式，又は列データ型にデータ変換可能な文字列で作成しますが，DECIMAL型の列に格納する入力データ型として，ADEC（ASCII CODE DECIMAL）型とBDEC（BINARY DECIMAL）型を使用できます。

(a)　ADEC型（ASCII CODE DECIMAL）

ADEC型は，文字列形式で数値データを記述します。データ中には小数点を持たないで，列構成情報ファイルで小数点の位置を指定するデータ型です。ADEC型の形式を次に示します。

＜規則＞

使用できる文字を次に示します。

＋，−，空白（0x20），タブ（0x09），ナル文字（0x00），0〜9

ただし，データ中に1バイト以上の空白，タブ，又はナル文字を含むと，小数点を持たない整数値と解釈します。そのため，typeオペランドで指定した精度と位取りで小数点位置を解釈するデータを作成する場合は，「0」でパディングする必要があります。

符号（＋又は−）だけの入力データは，入力データエラーとなります。

option文のallspaceオペランド指定ありの場合だけ，空白だけの入力データを許可します。この場合，0が格納されます。allspaceオペランド指定なしの場合は入力データエラーとなります。

入力データ中には小数点は記述しません。列構成情報ファイルのtypeオペランドで精度と位取りを指定します。精度(m)と位取り(n)の関係を次に示します。

1≦m≦38　　0≦n≦38　　m≧n

入力データに符号（＋又は−）を持つ場合，精度(m)には符号部1バイトを含めたけた数を指定します。

typeオペランドで指定した精度と位取りは，格納する列のDECIMAL型にデータ変換可能（けた落ちが発生しない）値を指定します。データ変換不可の場合，制御文エラーとなります。

＜データの格納例＞

次の場合のデータの格納例を次の表に示します。

格納する表の列定義：DECIMAL(10,4)

入力データ：ADEC型

列構成情報ファイルの指定：type=adec(10,4)

表5‒33　ADEC型で記述したデータをDECIMAL(10,4)に格納した場合の例

入力データファイルに記述したデータ

DECIMAL(10,4)に格納するデータ

説明

1△△△△△△△△△

+000001.0000

1バイトでも空白を含むと，typeオペランドに指定した精度と位取りは無視され，小数点がない値と解釈します。

△△△△△△△△△1

+000001.0000

△△△△△1△△△△

+000001.0000

△△△△△10000

+010000.0000

000001△△△△

+000001.0000

1000000000

+100000.0000

0〜9だけの場合，typeオペランドに指定した精度と位取りで小数点の位置を決定します。

0000000001

+000000.0001

0000010000

+000001.0000

+000010000

+000001.0000

0〜9の値と符号部の場合，小数点の位置はデータの後方から解釈します。

-000010000

-000001.0000

（凡例）

△：空白（0x20）

(b)　BDEC型（BINARY DECIMAL）

BDEC型は，2進数で記述されたバイナリデータを10進数で記述し，10進数のけた数に合わせて，表の列データ型から小数点の位置を決定するデータ型です。BDEC型は先頭1ビットを符号として扱います。形式を次に示します。

＜規則＞

列構成情報ファイルのtypeオペランドでバイナリデータの長さを指定します。

BDEC型のけた数(m)を次に示します。

32ビットモードの場合：1〜4バイト

64ビットモードの場合：1〜8バイト

BDEC型に実際に指定できる値を次に示します。

32ビットモードの場合：-2147483648〜2147483647

64ビットモードの場合：-9223372036854775808〜9223372036854775807

DECIMAL列に実際に格納できる値を次に示します。

32ビットモードの場合：精度は10けたまで

64ビットモードの場合：精度は19けたまで

＜データの格納例＞

次の場合のデータの格納例を次の表に示します。

入力データ：4バイトの2進数

列構成情報ファイルの指定：type=bdec(4)

表5‒34　BDEC型で記述したデータをDECIMAL列に格納した場合の例

入力データファイルに記述したデータ

格納先の列定義

格納するデータ

0xff 0xff 0xfc 0xf7

DECIMAL(10,0)

-0000000777

DECIMAL(10,2)

-00000007.77

DECIMAL(10,10)

-0.0000000777

このように，同じ値でも格納先のDECIMAL列の精度と位取りによって，格納するデータが異なります。

(4)　記述例

固定長データ形式のデータ記述例を次の図に示します。

図5‒18　固定長データ形式のデータ記述例

5.5.4　繰返し列を含む表の配列データ形式

繰返し列を含む表の場合に，入力データファイルに記述する配列データの指定方法について説明します。

入力データファイルの形式は，入力データ形式(DAT形式，バイナリ形式，固定長データ形式)，配列データ形式(FF,FV,VV)，及び可変長データ型かどうかによって異なります。

(1)　記述形式

繰返し列を含む表の場合の入力データファイルに記述する配列データの指定方法を次の表に示します。

表5‒35　繰返し列を含む表の場合の入力データファイルに記述する配列データの指定方法

内容

ファイル形式

配列データ形式

FF形式

FV形式

VV形式

入力データ中に実要素数を指定するかどうか

−

指定しません。

指定します。

実要素数の指定方法

−

−

DAT形式の場合，文字で指定します。固定長データ形式及びバイナリ形式の場合，２バイトの数値(16進数)で指定します。

入力データ中に指定する要素データの数

−

表定義で指定した要素数以下の数。詳細は「入力データ中の要素データ数と表定義で指定した要素数の関係」を参照してください。

実要素数分

DBに格納する要素数

−

ナル値の取り扱い方法によって異なります。詳細は「列のナル値と要素のナル値の扱い」を参照してください。

実要素数分

入力データ形式と指定可否

DAT形式

指定できます。

指定できません。

指定できます。

バイナリ形式

可変長は指定できません。

指定できます。

固定長データ形式

指定できます。

行データ全体が固定長のため指定できません。

ナル値の指定方法(要素としてのナル値)

DAT形式

通常の列と同様に区切り文字の連続などで指定します。詳細は「DAT形式の場合」を参照してください。

−

バイナリ形式

通常の列と同様にナル値・関数情報ファイルでナル値とみなす値を指定します。

固定長データ形式

通常の列と同様に列構成情報ファイルでナル値とみなす値を指定します。

−

ナル値の指定方法(列としてのナル値)

−

要素にすべてナル値を指定します。ただし，全要素にナル値を設定する場合と列としてナル値を設定する場合があります。詳細は「列のナル値と要素のナル値の扱い」を参照してください。

実要素数に０を指定します。

DBに格納する要素数

−

ナル値の扱いの指定によって異なります。詳細は「列のナル値と要素のナル値の扱い」を参照してください。

指定された実要素数分のデータを格納します。

可変長データ型の指定方法

DAT形式

通常の列と同じです。

−

通常の列と同じです。

バイナリ形式

指定できません。

有効データ長分指定します(埋め字なし)。

固定長データ形式

表の定義長分指定し，有効データより後ろに埋め字をします。

−

DAT形式ファイルの場合の要素データの区切り文字

−

列の区切り文字と同じです。

−

列の区切り文字と同じです。

要素データのエラーチェック

−

通常の列と同様に，データ型に応じたチェックをするとともにFF形式及びVV形式の場合，実要素数のチェックをします。また，FF形式及びVV形式の場合，有効要素データ以外の部分に対してデータを指定しますが，有効要素以降の部分についてはチェックしません。

(凡例)−：該当しません。

(a)　DAT形式の場合

DAT形式ファイルには，FF形式，又はVV形式の配列データ形式で記述できます。

FF形式のフォーマット：

指定要素数分を区切り文字で区切ってデータを記述します。列構成情報ファイルを省略，又は列構成情報ファイルで指定要素数を省略した場合，最大要素数が指定要素数になります。

VV形式のフォーマット：

要素データの先頭に実要素数０〜最大要素数で指定し，実要素数分を区切り文字でデータを区切って記述します。

(b)　バイナリ形式の場合

バイナリ形式ファイルには，FF，FV，及びVV形式の配列データ形式で記述できます。

FF形式のフォーマット：

指定要素数分のデータを表「各データ型に対する列データ・パラメタの記述形式（バイナリ形式）」に示す形式で記述します。ナル値・関数情報ファイル自体又はナル値・関数情報ファイルで指定要素数を省略した場合，最大要素数が指定要素数になります。

FV形式のフォーマット：

要素データの先頭に実要素数を2バイトの2進数で指定し，指定要素数分のデータを表「各データ型に対する列データ・パラメタの記述形式（バイナリ形式）」に示す形式で記述します。ナル値・関数情報ファイル自体又はナル値・関数情報ファイルで指定要素数を省略した場合，最大要素数が指定要素数になります。

VV形式のフォーマット：

要素データの先頭に実要素数を2バイトの2進数で指定し，実要素数分のデータを表「各データ型に対する列データ・パラメタの記述形式（バイナリ形式）」に示す形式で記述します。

(c)　固定長データ形式の場合

固定長データ形式ファイルには，FF形式又はFV形式の配列データ形式で記述できます。

列構成情報ファイル，及びナル値・関数情報ファイルを省略，又は列構成情報ファイル，及びナル値・関数情報ファイルで指定要素数を省略した場合，最大要素数が指定要素数になります。

なお，バイナリ形式でデータを記述した場合，VARCHAR，NVARCHAR，MVARCHARで指定する各要素のデータ長が定義長に満たない場合は，定義長まで埋め字をする必要があります。

FF形式のフォーマット：

指定要素数分のデータを表「各データ型に対する列データ・パラメタの記述形式（バイナリ形式）」に示す形式で記述します。

FV形式のフォーマット：

要素データの先頭に実要素数を2バイトの2進数で指定し，指定要素数分のデータを表「各データ型に対する列データ・パラメタの記述形式（バイナリ形式）」に示す形式で記述します。

(d)　固定長データ型の場合の配列データの指定例

固定長データ型の場合の配列データの指定例を次の図に示します。

なお，CHAR(3) ARRAY[5]の列の場合の例です。ナル値には３バイトの「nul」という文字を指定しています。

図5‒19　固定長データ型の場合の配列データの指定例

(e)　可変長データ型の場合の配列データの指定例

固定長データ形式，及びバイナリ形式の場合で，可変長データ型(VARCHAR，MVCHAR，NVARCHAR)のときは，FF形式及びFV形式ではデータは常に表の定義長分指定します。

有効なデータより後方には任意の埋め字をします。VV形式の場合は埋め字をしません。

可変長データ型の場合の配列データの指定例を次の図に示します。なお，VARCHAR(3) ARRAY[3]の列の場合の例です。ナル値には３バイトの「nul」という文字を指定しています。

図5‒20　可変長データ型の場合の配列データの指定例

(2)　列のナル値と要素のナル値の扱い

繰返し列には列としてのナル値と，要素としてのナル値があります。データベース作成ユティリティでは，どちらもデータベースに格納できます。

繰返し列に対してデータロードする場合，入力データファイル中の要素のナル値の並び方には次に示す場合があります。繰返し列への入力データとナル値の種類を次の図に示します。

図5‒21　繰返し列への入力データとナル値の種類

この図に示すような場合，ナル値の扱いの指定(array文のナル値オプション，列構成情報ファイル及びナル値・関数情報ファイルのnullsetオペランドでの指定)によって，すべての要素データがナル値の場合，列としてナル値としたり，要素データの後方に連続したナル値を有効データとしないで，データベースに格納しない(要素数に含まない)こともできます。

繰返し列へデータロードする場合のデータベース作成ユティリティ（pdload）でのナル値の扱いについて次の表に示します。

表5‒36　繰返し列へデータロードする場合のデータベース作成ユティリティ（pdload）でのナル値の扱い

項目

ナル値の扱い

FF形式

FV形式及びVV形式

ナル値の判定方法

DAT形式

通常の列と同様(例えば，区切り文字が連続して入力された場合)に判定し，その要素をナル値とみなします。

バイナリ形式

通常の列と同様(ナル値とみなす値を列構成情報ファイルで指定します)に判定し，その要素をナル値とみなします。

固定長データ形式

通常の列と同様(ナル値とみなす値をナル値・関数情報ファイルで指定します)に判定し，その要素をナル値とみなします。

ナル値のデータベースへの格納

列としてのナル値の指定方法

途中のナル値については，データベースに格納します。後方に連続したナル値，及び指定した要素がすべてナル値の場合は，「FF形式でのナル値の扱い」を参照してください。

指定された要素数が０の場合，列としてナル値を格納します。要素データがすべてナル値でも，列としてのナル値とはしないで，実要素数分のナル値を設定します。

要素としてのナル値の指定方法

途中のナル値については，データベースに格納します。後方に連続したナル値，及び指定した要素がすべてナル値の場合は，「FF形式でのナル値の扱い」を参照してください。

途中のナル値，及び後方に連続したナル値のどちらも入力データ中に指定した実要素数の範囲内であれば，データベースにナル値を格納します。

(a)　FF形式でのナル値の扱い

FF形式の場合，入力データ中には実要素数を指定しません。

このため，後方に連続したナル値がある場合，次に示す指定によって無効な要素データとみなし，データベースに格納しないようにできます。

制御情報ファイルarray文のnullsetオペランド

列構成情報ファイルのnullsetオペランド

ナル値・関数情報ファイルのnullsetオペランド

なお，列構成情報ファイル及びナル値・関数情報ファイルでは列単位の指定，制御情報ファイルのarray文では表単位の指定です。三つとも指定した場合，列構成情報ファイル及びナル値・関数情報ファイルでの指定が優先されます。

また，nullsetオペランドの指定を省略した場合はnullset=cが仮定されます。

ナル値オプション指定値とデータベースへの格納方法を次の表に示します。

表5‒37　FF形式でのナル値オプション指定値とナル値のデータベースへの格納方法

ナル値の種類

ナル値オプション指定値

c（デフォルト）

e

途中のナル値

該当する要素にナル値を格納します。

該当する要素にナル値を格納します。

後方の連続したナル値(以前に有効要素データが一つでもある場合)

該当する要素(後方の連続したナル値)は，無効データとみなし，データベースに格納しません。

該当する要素(後方の連続したナル値)にナル値を格納します。※

後方の連続したナル値(要素データがすべてナル値の場合)

列をナル値とします。

全要素にナル値を格納します。※

注

FF形式の場合，入力データファイル中の要素データの数は，表定義で指定した要素数よりも少ないときがあります。

この場合，入力データファイル中の実要素数より後方の部分は，データが指定されていません。これは，ナル値ではなく，要素データがないということであるため，nullset=eが指定されてもナル値は格納しません。

注※

nullset=eを指定した場合，入力データファイルの要素データ数分のナル値がデータベースに格納されます。このため，データベースの格納効率を考慮すると，nullset=cを指定することをお勧めします。nullset=eを指定するのは，ナル値の数をそろえたい場合です。

(3)　入力データ中の要素データ数と表定義で指定した要素数の関係

FF形式，及びFV形式の場合，入力データ中に指定する要素データの数を表定義で指定した最大要素数以下の任意の個数にできます。

入力データ中に指定した要素データの個数（実要素数）は，次のように指定します。

DAT形式，及び固定長データ形式の場合：

列構成情報ファイルのelementオペランド

バイナリ形式の場合：

ナル値・関数情報ファイルのelementオペランド

なお，入力データ中の要素数と，表定義で指定した要素数が同じ場合は指定不要です。この場合，表定義で指定した要素数が仮定されます。

入力データ中に指定した繰返し列の要素データ数と，表定義で指定した要素数が異なる場合のデータベースへの格納可否を次の表に示します。

表5‒38　入力データ中に指定した繰返し列の要素データ数と，表定義で指定した要素数が異なる場合のデータベースへの格納可否

入力データ中の繰返し要素データ数：表定義で指定した繰返し要素数

繰返し列への配列データ形式

FF形式

FV形式（データ中に指定した実要素数）

VV形式（データ中に指定した実要素数）

入力データ要素数＞表定義要素数

エラー

エラー

エラー

入力データ要素数＝表定義要素数

正常にデータを格納

正常にデータを格納（入力データ中に指定した要素数分の要素データをデータベースに格納します)

正常にデータを格納

入力データ要素数＜表定義要素数

正常にデータを格納(elementオペランドで指定した要素数分のデータを格納し，以降の要素は指定がないため，データベースに格納しません）

正常にデータを格納（入力データ中に指定した要素数分の要素データをデータベースに格納します)

正常にデータを格納

(4)　記述例

(a)　DAT形式の場合

DAT形式のデータ記述例を次の図に示します。

表定義：CREATE TABLE T1(C1 INTEGER,C2 CHAR(1) ARRAY[10])

図5‒22　DAT形式のデータ記述例（繰返し列の場合）

(b)　バイナリ形式の場合

バイナリ形式のデータ記述例を次の図に示します。

表定義：CREATE TABLE T1(C1 CHAR(4),C2 CHAR(10),C3 CHAR(5) ARRAY[10])

図5‒23　バイナリ形式のデータ記述例（繰返し列の場合）

(c)　固定長データ形式の場合

固定長データ形式のデータ記述例を次の図に示します。

表定義：CREATE TABLE T1(C1 CHAR(4),C2 CHAR(10),C3 VARCHAR(5) ARRAY[10])

図5‒24　固定長データ形式のデータ記述例（繰返し列の場合）

5.5.5　列単位LOB入力ファイル

(1)　列単位LOB入力ファイルの形式

列単位LOB入力ファイルの形式を次の図に示します。

図5‒25　列単位LOB入力ファイルの形式

図内の形式でLOB列構成基表の入力データ順に入力行数分のLOBデータを作成します。

格納するLOBデータによっては，次の指定をする必要があります。

0バイト以上のLOBデータを格納する場合

図内の形式に従います。ただし，L=0の場合はLOBデータ長の4バイトだけを指定します。

デフォルト値，及びナル値を格納する場合

L=0として，LOBデータ長の4バイトだけを指定します（LOBデータがナル値かどうかは，対応するLOB列構成基表の行データの指定によって決まります）。

LOB列構成基表の行データと列単位LOB入力ファイルのLOBデータは，LOBデータの指定順によって対応させます。すなわち，LOB列構成基表のn行目のデータは列単位LOB入力ファイルのn件目のデータに対応します。

LOB列構成基表の行データと列単位LOB入力ファイルのLOBデータの対応例を次の図に示します。なお，例では3行目のLOBの値をナル値としています。

図5‒26　LOB列構成基表の行データと列単位LOB入力ファイルのLOBデータの対応例

(2)　列単位LOB入力ファイルに関する注意事項

(a)　LOB列構成基表の入力デ−タファイルの指定内容と，列単位LOB入力ファイルのLOBデータの対応

LOB列構成基表の入力デ−タファイルの指定内容と列単位LOB入力ファイルの対応するLOBデータの指定内容が一致しない場合，エラーとなります。

エラーとなるケースを次に示します。

LOB列構成基表の入力デ−タファイルがDAT形式の場合

LOB列構成基表の入力デ−タファイルの指定がナル値，又はデフォルト値の場合に，列単位LOB入力ファイルの対応するLOBデータが1バイト以上指定しているときにエラーとなります。

LOB列構成基表の入力デ−タファイルがバイナリ形式の場合

LOB列構成基表の入力デ−タファイルの指定と，ナル値・関数情報ファイルの指定が一致しナル値とする場合に，列単位LOB入力ファイルの対応するLOBデータが1バイト以上指定しているときはエラーとなります。

(b)　LOB列構成基表の入力デ−タファイルのデータ件数と，列単位LOB入力ファイルのデータ件数に関する注意事項

列単位LOB入力ファイルを使用してLOB列を作成する場合，LOB列作成時に列単位LOB入力ファイル中のデータ件数をデータべース作成ユティリティが確認します。ただし，オプションの指定と入力デ−タファイル中のエラーデータの有無によってデータ件数の確認をしない場合があります。データ件数の確認をしない場合は，KFPL16328-Wメッセージが出力されます。

オプションの指定と入力デ−タファイル中のエラーデータの有無の関係を次の表に示します。

表5‒39　オプションの指定と入力デ−タファイル中のエラーデータの有無の関係

オプション

LOB列構成基表の入力デ−タファイル中のエラーデータ有無

なし

あり

-eオプションの指定

なし

○

○※１

あり

○

×※２

（凡例）

○：列単位LOB入力ファイル中のデータ件数の確認をします。

×：列単位LOB入力ファイル中のデータ件数の確認をしません。

注※1

LOB列構成基表作成時に，エラーにならなかった行に対応する入力データファイル中のLOB列の情報をLOB中間ファイルに出力し，その後列単位LOB入力ファイルのデータ件数の確認をします。

エラーデ−タファイルなどを使用して，エラーとなったLOB列構成基表の行データを後から作成する場合は，その後から作成したLOB列構成基表の入力デ−タファイルに対応する列単位LOB入力ファイルを準備する必要があります。最初に準備した列単位LOB入力ファイルはそのまま使用できません。

注※2

LOB列構成基表の入力デ−タファイル中のエラーとなる前の行までの，対応するLOB列の情報をLOB中間ファイルに出力します。

このため，LOB列構成基表の入力デ−タファイル中のエラーとなる前の行までの，LOB列構成基表の入力デ−タファイルに対応する列単位LOB入力ファイル中のLOBデータがずれている場合（不正なデータがあった場合，又は必要なデータがなかった場合なども含まれます）でも，そのままLOB列の情報をLOB中間ファイルに出力します。

LOB列構成基表の入力デ−タファイル中のエラーデータを修正後，エラーとなった行データ以降のLOB列構成基表を-rオプション指定の追加モードで作成した場合，LOB列構成基表の入力デ−タファイルの最終行まで作成した後，LOB列作成時に初めて列単位LOB入力ファイルのデータ件数の確認をします。

データ件数の確認でエラーとなった場合，エラーの原因が列単位LOB入力ファイル中のどこにあるかによって，次のどれかの対策が必要となります。

(a)　エラーの原因が，作成しようとした列単位LOBファイル中のデータの範囲内にある場合

列単位LOB入力ファイル中のLOBデータのエラー原因を取り除くことによって，LOB列を作成できます。

(b)　エラーの原因が，作成しようとした列単位LOB入力ファイル中のデータの範囲内にない場合

列単位LOB入力ファイルのLOBデータのエラー原因を取り除き，作成しようとした列単位LOB入力ファイル中のLOBデータだけでなく，既に作成されているLOBデータも含めて作成する必要があります。

このような場合には，作成するLOB列構成基表が分割表か非分割表かを確認し，更にLOB列構成基表の作成単位が表単位かRDエリア単位かを確認します。そして，エラーとなったユーザLOB用RDエリアだけ，又はエラーとなったLOB列に対応するユーザLOB用RDエリアすべてを，再初期化，又はバックアップからの回復をしてから，LOB列を作成します。

これらの，列単位LOB入力ファイルのデータ件数エラー時の対策を容易にするための手順を，次の図に示します。

図5‒27　列単位LOB入力ファイルのデータ件数エラー時の対策を容易にするための手順

5.5.6　pdrorg出力バイナリ形式ファイル

pdrorg出力バイナリ形式ファイルを次に示します。

(1)　pdload用アンロードファイル

pdrorg実行時に-W binオプションを指定して，pdloadの入力データファイルとして使用するために出力したアンロードデータファイルです。このファイルを入力データファイルとしてpdloadを実行する場合，-Wオプションと-bオプションを指定する必要があります。

(2)　pdrorg用アンロードファイル

pdrorg実行時に-Wオプションを指定しないで出力したアンロードデータファイルです。このファイルを入力データファイルとしてpdloadを実行する場合，-Uオプションを指定する必要があります。

なお，pdrorg用アンロードファイルの場合，UOCを利用したデータロードはできません。

(3)　表移行用アンロードファイル

pdrorg実行時に-W bin -wオプションを指定して，pdloadの入力データファイルとして使用するために出力したアンロードデータファイルです。このファイルを入力データファイルとしてpdloadを実行する場合，-Wオプション，-bオプション，及び-wオプションを指定する必要があります。

5.6　エラー情報ファイル

エラー情報ファイルには，入力データにエラーがあった場合にエラー情報が出力されます。

5.6.1　エラー情報ファイルの内容

エラー情報ファイルには，エラーとなった要因を示す論理エラー番号が出力されます。なお，論理エラー番号XXは，KFPL310XXメッセージに対応しています。

エラー発生時の論理エラー番号とその内容を次の表に示します。

表5‒40　論理エラー番号とその内容

論理エラー番号

論理エラーの内容

1

NCHAR，NVARCHARに入力するデータが不正です。

入力データ長が奇数です。

2

パック形式10進数データの数値部又は符号部が不正です。

日付，時刻，時刻印データの数値部が不正です。又は，時刻印データの小数部の長さが不正です。

日間隔，時間隔データの数値部又は符号部が不正です。

3

可変長データ（VARCHAR，NVARCHAR，MVARCHAR，BLOB，及びBINARY）の長さ部が不正です。

4

データ変換エラーです。

5

入力データの列数が，格納する表の列数と一致しません。

引用符（"）で囲まれていないため，列が認識できません。

テキスト（DAT形式）ファイルのデータ中にナル文字（0x00）があります。

6

ナル値を禁止している表又は列に対して，ナル値を指定しています。

FIX属性の表にナル値を指定しています。

クラスタキー構成列にナル値を指定しています。

非ナル値制約の列にナル値を指定しています。

主キー構成列にナル値を指定しています。

7

入力レコードがクラスタキー順に並んでいません。

8

クラスタキー又はインデクスを定義している表で，次のような場合にはエラーとなります。

キーの重複禁止が指定されているが，キーが重複しています。

9

作成表（処理対象の表）の横分割条件と一致しない列値があります。

10

バイナリ形式の入力データの行長が不正です。

11

LOBデータが不正です。

LOB列構成基表の入力デ−タファイルで指定した，LOB入力ファイルのファイル名の長さが不正です。

列単位LOB入力ファイル又はバイナリ形式ファイルで指定したLOBデータ長が不正です。

列単位LOB入力ファイルでの，LOBデータ長4バイト取得時，又はLOBデータ長で指定したLOBデータ取得時に，不正なEOFを検知しました。

12

指定したLOB入力ファイルがありません。又は，LOB入力ファイルに通常ファイル以外を指定しています。

13

LOBデータの長さが定義長を超えています。

14

LOB列構成基表の指定内容とLOB入力ファイル中の指定内容が矛盾しています。

ナル値指定に対して，1バイト以上のデータを記述しています。

デフォルト値に対して，1バイト以上のデータを記述しています。

15

LOB列構成基表と列単位LOB入力ファイルのデータ件数が一致していません。

16

コンストラクタ関数への入力パラメタが不正です。

17

LOB入力ファイルに対するアクセス権限がありません。

18

抽象データ型に格納するデータフォーマットが不正です。

19

繰返し列に格納するデータの要素数が不正です。

20

不正な位置に囲み文字があります。

21

指定されたファイルパス名が不正です（入力データをファイルから読み込む場合）。

入力ファイルで指定したファイルパス名称長が不正です。

22

指定されたファイルが存在しません（入力データをファイルから読み込む場合）。又は，指定されたファイルがレギュラーファイルではありません（入力データをファイルから読み込む場合）。

23

指定されたファイルのデータ長が定義長を超えています（入力データをファイルから読み込む場合）。

24

指定されたファイルに対するアクセス権限がありません（入力データをファイルから読み込む場合）。

90

入力データ長が表の列定義長より大きいです。

lengoverオペランド指定なしの場合：

列定義長を超えた部分を切り捨ててデータを格納します。

lengoverオペランド指定ありの場合：

入力データエラーとして扱うため，データは格納しません。

注1

-eオプションを指定しない場合，可変長データの長さが不正なときは指定した分の長さを不正データとみなし，該当する行データを読み飛ばして処理を続行します。

注2

バイナリ形式の入力データファイル（データベース再編成ユティリティが出力した入力データファイルは除きます）がエラーの場合，最初にエラーとなった入力データのダンプイメージリストを16進形式及び文字形式（2バイトのコードは無視されます）で出力します。なお，含まれるデータによって出力形式は次のようになります。

BINARY型の列，又はBINARY属性の抽象データ型列のデータの場合

データ長が1,024バイトを超える場合，長さ部4バイトと先頭1,024バイトまでのデータ部を出力します。改行した後，先頭に「：」を出力して，次の行から続きの列のデータを出力します。出力例を次に示します。

BLOB型の列のデータの場合

出力対象外となります。

5.6.2　エラー情報ファイルの出力例

エラー情報ファイルの出力例を次に示します。

このダンプイメージリストでは，データ変換エラーとなった10行目の行データを出力しています。

 pdload (03-00) **** DB LOAD **** 1996-05-07 12:34:56   single   ........1
 KFPL31004-E Data conversion error occurred,
             line=10, column=4   ........................................2
 KFPL31002-E Invalid pack format value,
             line=77, column=5   ........................................2
 KFPL30000-I Server name=SDS   ..........................................3
 KFPL30001-I Rows successfully loaded=98   ..............................4

 **** First error data [CODE:4] ****   ..................................5
 41424344 00000001 61620001 0000001c  ABCD ... ab ..
 ffffffff 6364                        ... cd   ..........................6

［説明］

ヘッダ部

入力データのエラーメッセージ

サーバ名

格納行数

サブヘッダ（コードの番号は論理エラー番号）

1件目のエラーデータのダンプイメージリスト（16進数，アスキー文字）

-eオプション指定有無によるエラー情報ファイルへの出力内容を次に示します。

-eオプションの指定

入力データエラー

エラー情報ファイルの出力内容

あり

なし

−

あり

1〜6

なし

なし

1，3，4

あり

1〜6

（凡例）

−：出力されません。

注

エラー情報ファイルの出力内容の番号は，エラー情報ファイルの出力例の番号と対応しています。

5.6.3　エラー情報参照時の注意事項

データベース再編成ユティリティが出力した非FIX表のバイナリ形式の入力データファイルの場合は，エラーデータであってもエラー情報ファイルへのダンプイメージリスト出力，及びエラーデータファイル出力の対象にはなりません。

バイナリ形式ファイルの場合，次に示す入力データエラーがあるとエラー該当列の直前までしか出力対象になりません。そのため，エラーデータファイルを参照する場合は注意してください。

可変長文字列，又はBINARY列にエラーがある場合

入力データの列長が列定義長に満たない場合

バイナリ形式ファイルの場合，エラー情報ファイルのダンプイメージリストは，LOB列，抽象データ型の列，又は繰返し列がある表では出力されません。また，可変長文字列又はBINARY列の長さ部が不正な場合は，該当する可変長文字列又はBINARY列の直前のデータまでしか出力されません。

バイナリ形式ファイル中に入力データの長さ部が負の値となるデータや，繰返し列の要素数が負の値となるデータがある場合，1行分のデータとして認識できないため，-eオプション省略時は出力処理を打ち切り，-eオプション指定時はエラー情報ファイルを作成しません。この場合，KFPL24500-Eメッセージを参照して対策してください。

DAT形式の入力データファイルの場合，source文のmaxreclenオペランドの指定値よりも大きいデータ（source文のmaxreclenオペランド省略時は，行長が32キロバイトを超えるデータ）は，エラーデータファイル出力の対象にはなりません。

エラーデータファイル出力順序は，入力データファイル中のデータ順ではなく，エラー情報ファイルに出力されたエラーメッセージの順序に対応します。

エラーデータファイルに出力されなかったデータがある場合，その件数に関係なく1回の警告メッセージが出力されます。

通信処理中，データ格納時にデータの論理エラー（キー重複エラー，又はプラグイン関数が検知したエラー）が発生した場合，入力データファイルのあるサーバ上にエラーデータファイル作成用一時ファイルが作成されます。作成されるファイル名は次のとおりです。

　エラーデータファイル名＋データ格納サーバ名

ただし，パス名の長さが1023バイトを超える場合は，「データ格納サーバ名」は追加しないで，エラーデータファイル名の先頭を「データ格納サーバ名」で上書きし，パス名の長さが1023バイトを超えないように作成されます。

なお，このファイルは，エラーデータファイルと同じディレクトリ上に作成され，通信処理終了後に削除されます。

入力データファイルの形式が，ユーザが作成したバイナリ形式，又は固定長データ形式の場合，入力データエラーを検知すると，エラー情報ファイルに最初にエラーを検知した入力データのダンプイメージリストが出力されます。ただし，ダンプイメージリストを出力するために必要な作業領域（メモリ）が確保できない場合は，KFPL25222-Wメッセージが出力されます。このとき，ダンプイメージリストは出力されないで，データロード処理が続行されます。

入力データエラー検知時のダンプイメージリストの出力有無について次の表に示します。

表5‒41　入力データエラー検知時のダンプイメージリストの出力有無

入力データファイルの形式

ダンプイメージリストの出力

作業用のメモリの確保

確保できる

確保できない

DAT形式

×

−

−

拡張DAT形式

×

−

−

固定長データ形式

○

ダンプイメージリストを出力し，データロード処理を続行します。

ダンプイメージリストは出力しないで，データロード処理を続行します。

バイナリ形式

○

pdrorg出力バイナリ形式

×

−

−

（凡例）

○：出力します。

×：出力しません。

−：該当しません。

5.6.4　source文のerrdataオペランド指定時の出力規則

source文のerrdataオペランドを指定した場合の，エラーデータファイル出力規則，及び該当データのエラー情報ファイルへのダンプイメージリスト出力規則を次に示します。

HiRDB/パラレルサーバでsource文に記述したサーバ名と表格納RDエリアがあるバックエンドサーバが異なる場合，HiRDB/パラレルサーバで表格納RDエリアが複数のバックエンドサーバにある場合，又はHiRDB/シングルサーバでユティリティ専用ユニットを使用する場合のファイル出力可否を次に示します。

エラーデータファイル作成用ワークバッファとの関連

入力データファイルの形式

入力データエラー種別

キー重複エラー又は抽象データ型に格納する値不正

左記以外のエラー

バッファが不足した場合，又はerrwork=0の場合

DAT形式

×

△

固定長データ形式

×

○

バイナリ形式

×

○

pdrorgが出力した非FIX表，及び文字集合を指定したFIX表のバイナリ形式の入力データファイル

×

×

バッファが十分な場合

DAT形式

△

△

固定長データ形式

△

○

バイナリ形式

△

○

pdrorgが出力した非FIX表，及び文字集合を指定したFIX表のバイナリ形式の入力データファイル

×

×

（凡例）

○：エラーデータファイル，エラー情報ファイルのダンプイメージリストを出力します。

△：エラーデータファイルを出力し，エラー情報ファイルのダンプイメージリストは出力しません。

×：エラーデータファイル，エラー情報ファイルのダンプイメージリストを出力しません。

注

バッファが不足してエラーデータファイルに一部のエラーデータが出力されなかった場合は，エラー情報ファイルのエラーメッセージに(No output for error data)を付けて出力します。その場合は，errworkオペランドに十分なバッファ容量を指定して再実行すればエラーデータは出力されます。

HiRDB/パラレルサーバでsource文に記述したサーバ名と表格納RDエリアがあるバックエンドサーバが同じ場合，又はHiRDB/シングルサーバでユティリティ専用ユニットを使用しない場合のファイル出力可否を次に示します。

入力データファイルの形式

入力データエラー種別

キー重複エラー又は抽象データ型に格納する値不正

左記以外のエラー

DAT形式

△

△

固定長データ形式

○

○

バイナリ形式

○

○

pdrorgが出力した非FIX表，及び文字集合を指定したFIX表のバイナリ形式の入力データファイル

×

×

（凡例）

○：エラーデータファイル，エラー情報ファイルのダンプイメージリストを出力します。

△：エラーデータファイルを出力し，エラー情報ファイルのダンプイメージリストは出力しません。

×：エラーデータファイル，エラー情報ファイルのダンプイメージリストを出力しません。

5.7　列構成情報ファイル

列構成情報ファイルは，次のような場合に指定します。

項目

入力データファイルの形式

説明

DAT形式

固定長データ形式

pdload用アンロードファイル

入力データファイルのデータの列の並び順と，表の列の並び順が異なっているデータを格納する。

○

○

○

1

入力データファイルのデータの列数と，表の列数が異なっているデータを格納する。

○

○

○

2

入力データファイルのデータを，表の列のデータ型に変換して格納する。

−

○

×

3

表の列定義長と，入力データファイルの文字データ型の値が異なる場合，文字データ型を拡張して格納する。

−

○

○

3

ナル比較値と一致した入力データファイルのデータの列の値を，ナル値として格納する。

−

○

○

4

抽象データ型に格納する値を生成するコンストラクタ関数を指定する。

○

○

○

5

入力データファイルの繰返し列の要素数が，表定義時の最大要素数より少ない場合に指定する。

○

○

−※

6

順序数生成子から取得した順序番号を入力データとして格納する。

○

○

○

7

（凡例）

○：指定できます。

×：指定できません。

−：該当しません。

注※

配列データ形式がVV形式の場合，要素数は指定できません。

［説明］

入力データの並び順に対応する列名文を記述します。

入力データ中に表に格納しないデータがある場合は，その対応する箇所にスキップデータ文を記述します。また，入力データ中に表に格納するデータがない場合は，列名文を省略します。

表の列のデータ型を対応する列名文に記述します。

ナル値にしたい比較値（入力データ）を列名文に記述します。

コンストラクタ関数名，及びパラメタの型を列名文に記述します。抽象データ型に格納するデータを生成するコンストラクタ関数の名称が，列データ型の名称と異なる場合，又は同じ名称の関数が複数ある場合は，必ず指定します。固定長データ形式の場合は，入力パラメタのデータ型，及びナル比較値も記述します。

入力データの要素数を列名文に記述します。列名文については「列名文」を，スキップデータ文については「スキップデータ文」を参照してください。

使用する順序数生成子，及び入力データの置換条件を列名文に指定します。また，列に対応するデータが入力データ中にない場合は，追加データ文を指定します。

規則

列名文，及びスキップデータ文は1行で記述してください。ただし，1行で書ききれない場合，指定の最後の文字がオペランドを区切るコンマ（，）のときには，そのコンマと継続を示す文字（¥）の間に1バイト以上の空白又はタブを記述して，行の末尾に継続文字を指定することで，複数行に分けて記述できます。

LOB列構成基表とLOB列を別々に作成する場合，LOB列構成基表作成時に列構成情報ファイルを指定しているときには，LOB列作成時にも同じ内容の列構成情報ファイルを指定する必要があります。指定しなかった場合，LOB列作成時に不当にエラーとなることがあります。

5.7.1　列名文

(1)　形式

　列名〔｛〔，type=データ型
　　　　　　　〔，null=｛’数値比較値’｜（先頭位置，｛c|x｝’比較値’）｝〕〕
　　　　　　　〔，element=要素数〕〔，elmtype=配列データ形式〕
　　　　　　　〔，nullset=ナル値オプション〕〔，mode=｛text｜bin｝〕
　　　　　　　〔，enclose_del=｛yes｜no｝〕〔，filldata=埋め字データ〕
　　　　　　　〔，sequence=(〔認可識別子.〕順序数生成子識別子〔，replace=
　　　　　　　　｛’数値比較値’｜（先頭位置，｛c|x｝’比較値’）｜null｜force｝〕)〕
　　　　　｜〔，func=（〔認可識別子．〕関数名
　　　　　　　，param=引数の型〔，type=データ型
　　　　　　　〔，null=｛’数値比較値’|(先頭位置，｛c|x｝’比較値’)｝〕〕
　　　　　　　〔，mode=｛text｜bin｝〕〔，enclose_del=｛yes｜no｝〕
　　　　　　　〔，filldata=埋め字データ〕
　　　　　　　〔，param=引数の型〔，type=データ型
　　　　　　　　〔，null=｛’数値比較値’|(先頭位置，｛c|x｝’比較値’)｝〕〕
　　　　　　　　〔，mode=｛text｜bin｝〕〔，enclose_del=｛yes｜no｝〕
　　　　　　　　〔，filldata=埋め字データ〕〕…）〕
　　　　　　｝〕
　　　　　　〔，filedir=パス名〕

列名文のオペランドは，入力データファイルの形式によって指定できるものとできないものがあります。形式ごとのオペランド指定可否を次に示します。

指定列の型

オペランド

入力データ形式

DAT形式

固定長データ形式

pdrorg出力バイナリ形式

既定義型

（列指定）

列名

◎

◎

◎

type

×

◎

○※３※7

null

×

○

○

element

○

○

×

elmtype

○

○

×

nullset

○

○

×

mode

×

○※４

×

enclose_del

×

○※５

×

filldata

×

○

×

sequence

○

○

○

抽象データ型

（関数指定）

列名

◎

◎

◎

func

○※１

○※１

○※１

param

○※２

○※２

○※２

type

×

○※２

○※３

null

×

○

○

mode

×

○※４

×

enclose_del

×

○※５

×

filldata

×

○

×

filedir

○※6

○※6

×

（凡例）

◎：必ず指定します。

○：指定できます。

×：指定できません。

注※1

関数指定時は，必ず指定します。

注※2

関数指定でfuncオペランド指定時は，必ず指定します。

注※3

列のデータ型，又は関数指定のparamに指定したデータ型が，CHAR，MCHAR，NCHAR，BLOB，又はBINARYの場合に指定できます。次のどれかの条件に該当する場合は，必ず指定してください。

BLOB列のアンロードデータを，BINARYパラメタ又はBLOBパラメタがある抽象データ型の列へデータロードする場合

抽象データ型のBLOBパラメタのアンロードデータを，BLOB型又はBINARY型の列へデータロードする場合

BLOB列のアンロードデータを，BINARY列へデータロードする場合

抽象データ型のBLOBパラメタのアンロードデータを，BINARYパラメタがある抽象データ型の列へデータロードする場合

注※4

typeオペランドの指定値がcharで，表の定義がCHAR又はMCHARの場合にだけ指定できます。

注※5

typeオペランドの指定値がcharで，表の定義がVARCHAR又はMVARCHARの場合にだけ指定できます。

注※6

列のデータ型がXML型で，-K fオプションを指定しているときだけ指定できます。

注※7

列のデータ型のparamに指定したデータ型が，CHAR，MCHAR，NCHAR，BLOB，又はBINARYの場合に指定できます。列のデータ形式が固定長である文字データ型を，データロード先の定義長に拡張してデータロードする場合は，必ず指定してください。

(2)　オペランドの説明

(a)　列名

入力データを格納する表の列の名称を記述します。ただし，予備列の列の名称は記述できません。記述した場合，pdloadはKFPL25103-Eメッセージを出力して異常終了します。

列名を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符で囲まない場合は，すべて英大文字として扱われます。また，列名に空白が含まれる場合は，引用符で囲んでください。

(b)　type=データ型

入力データの列のデータ型を記述します。データ型及び引数の型の記述方法と指定可否について次の表に示します。

表5‒42　データ型及び引数の型の記述方法と指定可否

記述方法

データ型の指定可否

記述規則

固定長データ形式

pdload用アンロードファイル

integer

○

×

なし。

smallint

○

×

char(n)※１※２

○

○

nには入力データのバイト数，mには入力データの文字数を指定します※6。

nの最大はCHAR，MCHARの最大バイト数×2（ただし，格納対象列のデータ型がBINARY型の場合は，BINARY型の最大バイト数），mの最大はNCHARのけた数で，格納先の表の列定義長と一致する必要はありません。また，数値型に変換する場合，文字列中にナル文字（￥0）は含めないでください。

nchar(m)※１※２

○

○

mchar(n)※１※２

○

○

varchar(n)

○

×

nは入力データのバイト数，mには入力データの文字数を指定します※6。

nの最大はVARCHAR，MVARCHARの最大バイト数×2，mの最大はNVARCHARの最大けた数で，格納先の表の列定義長と一致する必要はありません。

nvarchar(m)

○

×

mvarchar(n)

○

×

float

○

×

なし。

smallflt

○

×

dec（精度［，位取り］）

○

×

なし。

date

○

×

なし。

interval-year-to-day

○

×

time

○

×

interval-hour-to-second

○

×

yy-mm-dd※３

○

×

文字で記述された，西暦の下2けたのデータをDATE型に格納するときだけ指定できます。年，月，日を区切る1バイトの文字は任意に指定できます（例：yy-mm-dd，yy/mm/ddなど）。

yymmdd※３

○

×

符号なしパック形式で記述された，西暦の下2けたのデータをDATE型に格納するときだけ指定できます。

timestamp(p)

○

×

pは小数秒部分のけた数です（0，2，4，又は6）。

binary(n)

○

○※5

pdrorg出力バイナリ形式のtypeオペランドに指定する場合は，(n)は省略します。

nはBINARY型の最大バイト数です。

binaryprm

×

○

なし。

blob(n)

○

○※4

固定長データ形式のtypeオペランドに指定する場合

nはLOB入力ファイル名の最大長で，LOB列の定義とは関係ありません。先頭4バイトに長さを持つバイナリ形式のときに指定します。

pdrorg出力バイナリ形式のtypeオペランドに指定する場合

(n)は省略します。

blobprm

×

○

なし。

adec（精度［，位取り］）

○

×

DECIMAL列に格納するデータを文字列形式の10進数で記述する入力データ形式です。データ中には小数点を持たないため，typeオペランドで小数点位置を精度と位取りの形で指定します。adecのデータ形式については，「ADEC型（ASCII CODE DECIMAL）」を参照してください。

bdec(n)

○

×

DECIMAL列に格納するデータをバイナリデータ（2進数）で記述する入力データ形式です。nにはバイナリデータの長さを指定します。データ中には小数点を持たないため，列のデータ型に合わせて小数点位置を決定します。bdecのデータ形式については，「BDEC型（BINARY DECIMAL）」を参照してください。

（凡例）

○：指定できます。

×：指定できません。

注※1

列値を左詰めで記述してください。

注※2

数値に変換して格納する場合には，左詰めでなくてもよいです。

注※3

西暦の下2けたのデータを，19yyに拡張して格納します。

注※4

対応する列のデータ型がBLOB型の場合は指定できません。type文を指定しないでください。

注※5

対応する列のデータ型がBINARY型の場合は指定できません。type文を指定しないでください。

注※6

指定例を次に示します。

入力データの文字コードがUTF-8の場合

列構成情報ファイルの指定内容

C1,type=char(3)

入力データの文字コードがUTF-16の場合

列構成情報ファイルの指定内容

C1,type=char(6)

列構成情報ファイルに指定したデータ型と，表のデータ型が異なる場合のデータベースへの格納可否については，「列構成情報ファイルに指定したデータ型と，表のデータ型が異なる場合のデータベースへの格納可否」を参照してください。

(c)　null=｛’数値比較値’｜（先頭位置，｛c｜x｝’比較値’）｝

表の対応する列にナル値を格納する場合に指定します。

入力データと比較をするため，typeオペランドに指定したデータ型に対応する比較値を指定してください。

入力データのデータ型によって，比較できる方法が異なります。入力データの各データ型の比較方法を次に示します。

入力データのデータ型

比較方法

数値比較

文字比較

16進数比較

DECIMAL

○

×

○

DATE

○

×

○

INTERVAL YEAR TO DAY

○

×

○

TIME

○

×

○

INTERVAL HOUR TO SECOND

○

×

○

TIMESTAMP

○

×

○

CHAR

×

○

○

VARCHAR

×

○

○

NCHAR

×

○

○

NVARCHAR

×

○

○

MCHAR

×

○

○

MVARCHAR

×

○

○

BINARY

×

○

○

BLOB

×

○

○

INTEGER

○

×

○

SMALLINT

○

×

○

FLOAT

○

×

○

SMALLFLT

○

×

○

yymmdd形式

○

×

○

yy-mm-dd形式

×

○

○

ADEC

×

○

○

BDEC

×

×

○

（凡例）

○：指定できます。

×：指定できません。

＜規則＞

入力データと，このオペランドで指定した値が同じ列にはナル値を格納します。

非ナル値制約の列，クラスタキー構成列，及び主キー構成列には指定できません。

pdrorg出力バイナリ形式の入力データファイルの場合，LOB列，及びBINARY列のデータ，並びに抽象データ型のLOB，及びBINARYパラメタは，オフセットに0を設定することでナル値を指定するため，これらの列に対してこのオペランドは指定できません。なお，これらのデータ型が実データを持つ場合，オフセットに0を設定してナル値と扱うためには，対応する入力データ中の実データ部分を削除しておく必要があります（対応するオフセットを0に編集するだけでは，正しく処理がされません）。

固定長データ形式の入力データファイルの場合，列の切り出し後に比較をするため，後方の空白を削除してからデータを比較します。

数値比較値　　　〜((255文字以内))

入力データが数値属性の場合，比較する数値を記述します。

＜規則＞

記述方法はDAT形式での数値データと同じですが，空白は含めないでください（TIMESTAMP型データの日時間の空白を除く）。

数値属性とは，INTEGER，SMALLINT，FLOAT，SMALLFLT，DEC，DATE，TIME，INTERVAL YEAR TO DAY，INTERVAL HOUR TO SECOND，TIMESTAMPのデータ型，及びyymmdd形式を示します。

TIMESTAMP型の数値を指定する場合，小数部のけた数が定義の指定に満たないときは，0が仮定されます。

＜記述例＞

DATEの場合→yyyy-mm-ddの形式

1995年1月1日→1995-01-01

TIMEの場合→hh:mm:ssの形式

12時1分1秒→12:01:01

INTERVAL YEAR TO DAYの場合→yyyymmdd.の形式

1900年間1か月1日→19000101.

INTERVAL HOUR TO SECONDの場合→hhmmss.の形式

12時間1分1秒→120101.

TIMESTAMPの場合→yyyy-mm-dd hh:mm:ss.nnnnの形式

1900年1月1日1時10分30秒45

→1900-01-01 01:10:30.4500又は1900-01-01 01:10:30.45

（先頭位置，｛c｜x｝’比較値’）

比較値が文字の場合は，入力データが文字属性，BINARY，又はBLOBのときに指定します。文字属性とは，CHAR，NCHAR，MCHAR，VARCHAR，NVARCHAR，及びMVARCHARのデータ型，並びにyy-mm-dd形式を示します。

比較値が16進数の場合は，入力データが数値属性でも比較できます（すべてのデータ型と比較できます）。

先頭位置　〜＜符号なし整数＞((1〜32000))

ナル値として扱うかどうかを判定する対象列の格納データの，比較開始先頭位置をバイト数で指定します。

指定した比較開始位置が次の条件に当てはまる場合，制御文エラーになります。

DAT形式の場合

先頭位置に指定した比較開始位置＞32,000

固定長形式，及びバイナリ形式の場合

先頭位置に指定した比較開始位置＞該当する列の定義長（各国文字列の場合は定義長×2）

指定した先頭位置以降の入力データと，比較値に指定した値を比較して，比較が完全一致した入力データをナル値として扱います。例を次に示します。

CHAR(5)の入力データ

null=(2,'XYZ')との比較結果

入力データの扱い

*XYZ*

比較値と完全一致します。

ナル値として扱います。

XYZ**

比較値は一致しますが，先頭位置から一致しません。

入力データとして扱います。

*XY**

比較値と一致しません。

なお，option文にcharsetオペランドを指定している場合，先頭位置に指定する比較開始位置は文字コードの文字長を考慮してください。

文字コードがUTF-8の比較値'XYZ'と，文字コードがUTF-16の入力データの2文字目以降を比較する場合，比較開始位置には3を指定する必要があります（null=(3,c'XYZ')など）。

c ：

比較値が文字の場合に指定します。なお，入力データファイルをHiRDBの規定文字コード以外の文字コードで作成している場合でも，HiRDBの規定文字コード列を指定します（内部でpdloadが入力データファイルの文字コードに変換します）。

指定した比較値が次の条件に当てはまる場合，制御文エラーになります。

比較値のバイト長＞255

なお，比較値のバイト長は，入力データファイルの文字コードがHiRDBの既定文字コード以外の場合は，変換後の値です。

先頭位置に指定した比較開始位置＋比較値のバイト長−１＞該当する列の定義長（各国文字列の場合は定義長×2）

x ：

比較値が16進数の場合に指定します。なお，入力データファイルをHiRDBの規定文字コード以外の文字コードで作成している場合，HiRDBの規定文字コード列で指定します。

指定した16進数の文字列（0〜f）を2文字で1バイトと扱います。

指定する文字は，大文字及び小文字のどちらでもかまいません。

指定した文字が16進数の文字列でない場合，又は指定した比較値が次の条件に当てはまる場合，制御文エラーになります。

比較値のバイト長＞254

先頭位置に指定した比較開始位置＋比較値のバイト長−1＞該当する列の定義長（各国文字列の場合は定義長×2）

数値型の列の場合，不当に比較値が入力データと同じになることがあります。この場合，16進数で比較値を指定してください。指定例を次に示します。

列のデータ型

ナル値として扱う値

null=以降の指定方法

DECIMAL

「NULL」という文字列

(1,x'4e554c4c')

DATE

0000年00月00日

(1,x'00000000')

INTERVAL YEAR TO DAY

先頭1バイトが0xff

(1,x'ff')

TIME

99時99分99秒

(1,x'999999')

INTERVAL HOUR TO SECOND

2バイト目が0xff

(2,x'ff')

TIMESTAMP

2バイト目と3バイト目が0xff

(2,x'ffff')

INTEGER※

「NULL」という文字列

(1,x'4e554c4c')

SMALLINT※

「NL」という文字列

(1,x'4e4c')

FLOAT※

「**NULL**」という文字列

(1,x'2a2a4e554c4c2a2a')

SMALLFLT※

「NULL」という文字列

(1,x'4e554c4c')

注※

16進数の比較値を指定しても，何らかの値と一致してしまう可能性があります（例えば，SMALLINTの指定例の場合，ビッグエンディアンの20044と一致します）。このため，ナル値として扱う値は，格納されない値にする必要があります。

比較値　〜((255文字以内))

入力データと比較する文字を指定します。

xを指定した場合，文字数は偶数で指定してください（最大指定長は254文字となります）。

(d)　element=要素数

　　　〜＜１〜表定義時に該当する列に指定した要素数＞

繰返し列の場合に，入力データファイルに記述する要素数を指定します。

elementオペランドは，表定義時に該当する列に指定した要素数よりも入力データファイルに指定する要素数が少ない場合に指定します。

elementオペランド省略時は，表定義時に該当する列に指定した最大要素数が仮定されます。

＜規則＞

配列データ形式がVV形式の場合は，入力データファイルに指定する要素数が指定する要素の数になるため，このオペランドを省略しても無視します。

pdrorg出力バイナリ形式の入力データファイルの場合はエラーとなります。

(e)　elmtype=配列データ形式

繰返し列の場合に，配列データ形式を指定します。

配列データ形式

次のどれかを指定します。

ff：FF形式

fv：FV形式

vv：VV形式

配列データ形式については，「繰返し列を含む表の配列データ形式」を参照してください。

＜規則＞

elmtypeオペランドを省略した場合の配列データ形式は，制御情報ファイルのarray文を指定していないときは次の形式が仮定されます。

DAT形式ファイル：FF形式

バイナリ形式ファイル：VV形式

固定長データ形式ファイル：FF形式

pdrorg出力バイナリ形式の入力データファイルの場合はエラーとなります。

(f)　nullset=ナル値オプション

配列データ形式がFF形式で，ある要素から指定要素の最後までナル値を指定した場合のナル値格納の扱いを指定します。

ナル値オプション

c：該当する要素に何も格納しません。

e：該当する要素にナル値を格納します。

＜規則＞

nullsetオペランドを省略した場合の仮定値は次のようになります。

制御情報ファイルのarray文を指定していない場合はcが仮定されます。

制御情報ファイルのarray文を指定している場合はarray文のnullsetオペランドの指定値が仮定されます。

pdrorg出力バイナリ形式の入力データファイルの場合はエラーとなります。

(g)　mode=｛text｜bin｝

入力データが固定長文字列（type=char(n)）で，格納先の列データ型がCHAR，又はMCHARの場合，入力データの格納方法を指定します。なお，このオペランドは，固定長データ形式の場合に指定できます。

＜適用基準＞

次の文字を入力データとして格納したい場合，binを指定します。

入力データの後方から連続する，半角空白（0x20），タブ（¥t），及びナル文字（¥0）

入力データの両端の引用符（"）

入力データ中の，上記の文字を削除してかまわない場合は，text（省略時仮定値）を指定します。

text：

次の入力データの編集をして，データを格納する場合に指定します。

入力データの後方から連続する半角空白（0x20），タブ（¥t），及びナル文字（¥0）を削除します。

入力データの両端の引用符（"）を削除します。

入力データ長が格納列の定義長より短い場合，半角空白を埋めます。

bin：

次の入力データの編集だけをして，データを格納する場合に指定します。

入力データ長が格納列の定義長より短い場合，半角空白を埋めます。

なお，binを指定した場合，空白変換はできません（option文にspacelvlオペランドは指定できません）。

(h)　enclose_del=｛yes｜no｝

入力データが固定長文字列（type=char(n)）で，格納先の列データ型がVARCHAR，又はMVARCHARの場合，入力データの格納方法を指定します。なお，このオペランドは，固定長データ形式の場合に指定できます。

＜適用基準＞

入力データの両端の引用符（"）を，入力データとして格納したい場合，noを指定します。

入力データの両端の引用符を削除してかまわない場合は，yes（省略時仮定値）を指定します。

yes：

次の入力データの編集をして，データを格納する場合に指定します。

入力データの後方から連続する半角空白（0x20），タブ（¥t），及びナル文字（¥0）を削除します。

入力データの両端の引用符（"）を削除します。

no：

次の入力データの編集だけをして，データを格納する場合に指定します。

入力データの後方から連続する半角空白（0x20），タブ（¥t），及びナル文字（¥0）を削除します。

なお，半角空白，タブ，及びナル文字を入力データとして格納したい場合は，引用符で囲んでください。

(i)　filldata=埋め字データ

固定長データ形式の場合，BINARY型のデータをCHAR型で記述するときに，後方の埋め字データを記述します。埋め字データは，1バイトのデータで，0〜255までの16進数表記（X'00'〜X'ff'）で記述します。このオペランドを省略した場合は0が仮定されます。

＜規則＞

CHARデータからBINARYデータに変換する場合，後方にある連続した埋め字を削除したデータを，BINARYデータのデータ部として扱います。

固定長データ形式以外の入力データファイルで指定した場合，及びBINARY型以外の列に指定した場合は制御文エラーとなります。

BINARY型パラメタ以外のパラメタに対して指定した場合，制御文エラーとなります。

BINARY型パラメタに対してBINARYデータを格納したファイルを指定する場合，埋め字としてfilldata，半角空白，タブ，及び¥0を使用できます。ただし，option文にcharsetオペランドを指定している場合，filldataは使用できません（指定しても無視されます）。

(j)　sequence=(〔認可識別子.〕順序数生成子識別子〔，replace=｛’数値比較値’｜（先頭位置，｛c｜x｝’比較値’）｜null｜force｝〕)

順序数生成子から取得した順序番号を入力データとして格納する場合に指定します。

〔認可識別子.〕順序数生成子識別子

順序番号を取得する順序数生成子の識別子を指定します。

認可識別子を省略した場合は，pdload実行ユーザ（-uオプション又はPDUSER環境変数に設定した認可識別子）が仮定されます。

replace=｛’数値比較値’｜（先頭位置，｛c｜x｝’比較値’）｜null｜force｝

入力データを，順序数生成子から取得した順序番号で置き換える場合，その条件を指定します。

入力データとこのオペランドの指定値が一致した場合，該当する列のデータを順序数生成子から取得した順序番号に置き換えます。入力データのデータ型で値を比較するため，比較値はtypeオペランドに指定したデータの属性に合わせて指定してください。

’数値比較値’

入力データが数値属性の場合に，比較する数値を指定します。

指定方法については，nullオペランドの説明を参照してください。

（先頭位置，｛c｜x｝’比較値’）

入力データが文字属性の場合に，比較する文字列を先頭位置と比較値で指定します。

指定方法については，nullオペランドの説明を参照してください。

null

入力データの値がnullの場合に順序番号で置き換えます。入力データファイルの形式がDAT形式又は拡張DAT形式の場合に指定できます。

force

無条件に置き換えます。

＜規則＞

pdparaloadを使用する場合，又はRDエリア単位にデータロードする場合は，分割キーの列に対してこのオペランドを指定しないでください。指定すると，分割キーの値が順序数生成子から取得した順序番号になるため，該当する分割キーの値が指定したRDエリアへの格納対象外の値となり，データを格納できないおそれがあります。

(k)　filedir=パス名

-K fオプションを指定して，該当するXML型の列のパラメタ属性データを，１データ１ファイルとして読み込む場合に，パラメタ属性のデータファイルを格納しているディレクトリを指定します。

＜規則＞

ここで指定したパス名と，入力データファイル中のファイルパス名を組み合わせて，パラメタ属性データとして読み込むファイルのファイルパス名とみなします。組み合わせたファイルパス名が1,023バイト以下となるように指定してください。

XML型の列がない場合にこのオペランドを指定すると，エラーになります。

このオペランドを省略する場合は，入力データファイルに，パラメタ属性データとして読み込むファイルの絶対パスを記述してください。

このオペランドで，列ごとに格納ディレクトリへの絶対パスを指定する場合，入力データファイルには，このオペランドで指定したディレクトリからの相対のファイルパス名だけを記述してください。

＜記述例＞

列2にXML型を定義している場合の，DAT形式の入力データファイルの記述例を示します。

入力データファイルのデータ

 列1   列2        列3
00001,xml001.txt,2007-10-01
00002,xml002.txt,2007-10-02

列構成情報ファイルの記述

列1
列2,filedir=/user/xml_data
列3

pdloadが参照するファイル

/user/xml_data/xml001.txt
/user/xml_data/xml002.txt

(l)　func=（〔認可識別子．〕関数名，param=引数の型〔，type=データ型〔，null=｛’数値比較値’｜（先頭位置，｛c｜x｝’比較値’）｝〕〕〔，mode=｛text｜bin｝〕〔，enclose_del=｛yes｜no｝〕〔，filldata=埋め字データ〕〔，…〕）

指定する列名のデータ型が抽象データ型の場合に，格納する値を生成するコンストラクタ関数の情報を記述します。

列構成情報ファイルに指定した入力パラメタのデータ型と，呼び出すコンストラクタ関数の引数の型が異なる場合のデータベースへの格納可否については，「列構成情報ファイルに指定したデータ型と，表のデータ型が異なる場合のデータベースへの格納可否」を参照してください。

〔認可識別子．〕関数名

格納するデータをプラグインの提供するコンストラクタ関数を呼び出して生成する場合に，その関数名称を指定します。

関数の戻り値が格納対象の列の抽象データ型と異なる関数，及び引数に抽象データ型を持つ関数は指定できません。

認可識別子を省略した場合は，抽象データ型を定義したユーザが仮定されます。

param=引数の型

コンストラクタ関数に渡すパラメタのデータ型を指定します。

入力となるパラメタが複数ある場合は，関数の入力形式に合わせた順序で指定します。

コンストラクタ関数に渡すパラメタのデータ型の記述方法及びデータ型の指定可否について次の表に示します。

表5‒43　コンストラクタ関数に渡すパラメタのデータ型の記述方法及びデータ型の指定可否

パラメタのデータ型

データ型の記述方法

データ型の指定可否

分類

データ型

DAT形式

固定長データ形式

pdload用アンロードファイル

数データ

INTEGER

integer

○

○

○

SMALLINT

smallint

○

○

○

DECIMAL

dec()

○

○

○

adec()

○

○

○

bdec()

○

○

○

FLOAT

float

○

○

○

SMALLFLT

smallflt

○

○

○

文字データ

CHARACTER

char

○

○

○

VARCHAR

varchar

○

○

○

各国文字データ

NCHAR

nchar

○

○

○

NVARCHAR

nvarchar

○

○

○

混在文字データ

MCHAR

mchar

○

○

○

MVARCHAR

mvarchar

○

○

○

日付データ

DATE

date

○

○

○

yy-mm-dd

×

×

×

yymmdd

×

×

×

時刻データ

TIME

time

○

○

○

時刻印データ

TIMESTAMP

timestamp

○

○

○

日間隔データ

INTERVAL YEAR TO DAY

interval-year-to-day

○

○

○

時間隔データ

INTERVAL HOUR TO SECOND

interval-hour-to-second

○

○

○

長大データ

BLOB

blob

○

○

○

blobprm

×

×

×

バイナリデータ

BINARY

binary

○

○

○

binaryprm

×

×

×

（凡例）

○：指定できます。

×：指定できません。

type=データ型

入力データファイルが固定長データ形式の場合に，入力となるパラメタのデータ型を指定します。

入力となるパラメタが複数ある場合は，関数の入力形式に合わせた順序で指定します。

データ型の記述方法及びデータ型の指定可否について次の表に示します。

表5‒44　データ型の記述方法及びデータ型の指定可否

分類

データ型

データ型の記述方法

データ型の指定可否

固定長データ形式

pdload用アンロードファイル

数データ

INTEGER

integer

○

×

SMALLINT

smallint

○

×

DECIMAL

dec（精度［，位取り］）

○

×

adec（精度［，位取り］）

○

×

bdec(n)

○

×

FLOAT

float

○

×

SMALLFLT

smallflt

○

×

文字データ

CHARACTER

char(n)

○

×

VARCHAR

varchar(n)

○

×

各国文字データ

NCHAR

nchar(m)

○

×

NVARCHAR

nvarchar(m)

○

×

混在文字データ

MCHAR

mchar(n)

○

×

MVARCHAR

mvarchar(n)

○

×

日付データ

DATE

date

○

×

yy-mm-dd

×

×

yymmdd

×

×

時刻データ

TIME

time

○

×

時刻印データ

TIMESTAMP〔(p)〕

timestamp(p)

○

×

日間隔データ

INTERVAL YEAR TO DAY

interval-year-to-day

○

×

時間隔データ

INTERVAL HOUR TO SECOND

interval-hour-to-second

○

×

長大データ

BLOB

blob(n)※

○

○

blobprm

×

○

バイナリデータ

BINARY

binary(n)※

○

○

binaryprm

×

○

（凡例）

○：指定できます。

×：指定できません。

注※

pdload用アンロードファイルの場合は，(n)を省略できます。

null=｛’数値比較値’｜（先頭位置，｛c｜x｝’比較値’）｝

入力データファイルが固定長データ形式の場合に，入力となるパラメタをナル値としたい場合に指定します。

比較は入力パラメタのデータ型となります。指定方法については，nullオペランドの説明を参照してください。

mode=｛text｜bin｝

指定方法については，modeオペランドの説明を参照してください。

enclose_del=｛yes｜no｝

指定方法については，enclose_delオペランドの説明を参照してください。

filldata=埋め字データ

指定方法については，filldataオペランドの説明を参照してください。

＜funcオペランド内の指定順序＞

funcオペランド内に指定する，param，type，null，filldata，mode，及びenclose_delの指定順序を次に示します

固定長データ形式の場合

バイナリ形式の場合

DAT形式の場合

(3)　列構成情報ファイルに指定したデータ型と，表のデータ型が異なる場合のデータベースへの格納可否

列構成情報ファイルに指定したデータ型と，表のデータ型が異なる場合のデータベースへの格納可否を，次の表に示します。

表5‒45　列構成情報ファイルに指定したデータ型と，表のデータ型が異なる場合のデータベースへの格納可否（1/2）

列構成情報ファイルに指定したデータ型

表のデータ型

INT

EGER

SMALL

INT

CHAR

NCHAR

MCHAR

VAR

CHAR

NVAR

CHAR

MVAR

CHAR

FLOAT

SMALL

FLT

integer

○

×

×

×

×

×

×

×

×

×

smallint

×

○

×

×

×

×

×

×

×

×

char

○

○

○※1

○

○

○

○

○

○

○

nchar

×

×

×

○※1

×

×

×

×

×

×

mchar

×

×

×

×

○※1

×

×

×

×

×

varchar

×

×

×

×

×

○※2

×

×

×

×

nvarchar

×

×

×

×

×

×

○

×

×

×

mvarchar

×

×

×

×

×

×

×

○※2

×

×

float

×

×

×

×

×

×

×

×

○

×

smallflt

×

×

×

×

×

×

×

×

×

○

dec

×

×

×

×

×

×

×

×

×

×

date

×

×

×

×

×

×

×

×

×

×

interval-year-to-day

×

×

×

×

×

×

×

×

×

×

time

×

×

×

×

×

×

×

×

×

×

interval-hour-to-second

×

×

×

×

×

×

×

×

×

×

timestamp

×

×

×

×

×

×

×

×

×

×

binary

×

×

×

×

×

×

×

×

×

×

yy-mm-dd

×

×

×

×

×

×

×

×

×

×

yymmdd

×

×

×

×

×

×

×

×

×

×

blob

×

×

×

×

×

×

×

×

×

×

adec

×

×

×

×

×

×

×

×

×

×

bdec

×

×

×

×

×

×

×

×

×

×

（凡例）

○：格納できます。

×：格納できません。

注※1

固定長の文字データ型の入力データ長と格納先の表の定義長に応じて，次のようにデータが格納されます。

項番

格納先列への文字集合の指定

nとmの関係

データの格納方法

1

なし

n＝m

そのままDBに格納します。

2

n＞m

エラーになります。

3

n＜m

（n＋1）以降を空白文字で拡張して格納します。

4

あり

n'＝m

そのままDBに格納します。

5

n'＞m

文字コード変換後の入力データを，格納先の定義長に切り詰めてからDBに格納します。詳細は，表「入力データ長，列定義長，及びlengoverオペランドの関係」を参照してください。

6

n'＜m

（n'＋1）以降を空白文字で拡張して格納します。

注※2

可変長の文字データ型の入力データ長と格納先の表の定義長に応じて，次のようにデータが格納されます。

項番

格納先列への文字集合の指定

nとmの関係

データの格納方法

1

なし

n≦m

そのままDBに格納します。

2

n＞m

入力データを格納先の定義長に切り詰めてからDBに格納します。詳細は，表「入力データ長，列定義長，及びlengoverオペランドの関係」を参照してください。

3

あり

n'≦m

そのままDBに格納します。

4

n'＞m

文字コード変換後の入力データを，格納先の定義長に切り詰めてからDBに格納します。詳細は，表「入力データ長，列定義長，及びlengoverオペランドの関係」を参照してください。

（凡例）

n：入力データ長

m：格納先表の定義長

n'：文字コード変換後のデータ長

表5‒46　列構成情報ファイルに指定したデータ型と，表のデータ型が異なる場合のデータベースへの格納可否（2/2）

列構成情報ファイルに指定したデータ型

表のデータ型

DECI

MAL

DATE

INTER

VAL YEAR TO DAY

TIME

INTER

VAL HOUR TO SECOND

TIME

STAMP

BINARY

BLOB

integer

×

×

×

×

×

×

×

×

smallint

×

×

×

×

×

×

×

×

char

○

○

○

○

○

○

○

○

nchar

×

×

×

×

×

×

×

×

mchar

×

×

×

×

×

×

×

×

varchar

×

×

×

×

×

×

×

×

nvarchar

×

×

×

×

×

×

×

×

mvarchar

×

×

×

×

×

×

×

×

float

×

×

×

×

×

×

×

×

smallflt

×

×

×

×

×

×

×

×

dec

○

×

×

×

×

×

×

×

date

×

○

×

×

×

×

×

×

interval-year-to-day

×

×

○

×

×

×

×

×

time

×

×

×

○

×

×

×

×

interval-hour-to-second

×

×

×

×

○

×

×

×

timestamp

×

×

×

×

×

○

×

×

binary

×

×

×

×

×

×

○

×

yy-mm-dd

×

○

×

×

×

×

×

×

yymmdd

×

○

×

×

×

×

×

×

blob

×

×

×

×

×

×

○※

○

blobprm

×

×

×

×

×

×

○※

○※

adec

○

×

×

×

×

×

×

×

bdec

○

×

×

×

×

×

×

×

（凡例）

○：格納できます。

×：格納できません。

注※

pdrorg出力バイナリ形式の入力データファイルの場合，格納できます。

(4)　pdrorg出力バイナリ形式の入力データファイルに対する列名文のtypeオペランドの指定例

pdrorg出力バイナリ形式の入力データファイルに対する列名文のtypeオペランドの指定例を次に示します。

入力データ型

変換後データ型

BLOB型

BLOBパラメタ

BINARY型

BINARYパラメタ

BLOB型

−

func=(F_BLOB,

param=blob)

type=blob

func=(F_BIN,

param=binary,

type=blob)

BLOBパラメタ

type=blobprm

func=(F_BLOB,

param=blob)

type=blobprm

func=(F_BIN,

param=binary,

type=blobprm)

BINARY型

×

×

−

×

BINARYパラメタ

×

×

×

func=(F_BIN,

param=binary)

（凡例）

−：指定する必要はありません。

×：該当する入力データ型は，変換後データ型に変換できません。

F_BIN：

BINARY型をパラメタとする，プラグインが提供する抽象データ型のコンストラクタ関数です。

F_BLOB：

BLOB型をパラメタとする，プラグインが提供する抽象データ型のコンストラクタ関数です。

5.7.2　スキップデータ文

(1)　形式

　＊skipdata＊ 〔｛，length=バイト数｜，type=データ型〔，element=要素数〕｝〕

(2)　オペランドの説明

(a)　length=バイト数

　　　〜＜符号なし整数＞((1〜32000))

固定長データ形式の入力データファイルの場合に，スキップする列のバイト数を指定します。

＜規則＞

DAT形式の場合には指定する必要はありません。

改行文字をスキップする場合，改行記号（￥n）と復帰記号（￥r）で改行文字が構成されるときには，length=2と指定してください。

(b)　type=データ型

pdload用アンロードファイルの入力データファイルの場合，スキップする列のデータ型を指定します。

データ型の記述方法及びデータ型の指定可否について次の表に示します。

表5‒47　データ型の記述方法及びデータ型の指定可否

パラメタのデータ型

データ型の記述方法

pdload用アンロードファイルの指定可否

分類

データ型

数データ

INTEGER

integer

○

SMALLINT

smallint

○

DECIMAL

dec（精度［，位取り］）

○

adec（精度［，位取り］）

×

bdec(n)

×

FLOAT

float

○

SMALLFLT

smallflt

○

文字データ

CHARACTER

char(n)

○

VARCHAR

varchar(n)

○

各国文字データ

NCHAR

nchar(m)

○

NVARCHAR

nvarchar(m)

○

混在文字データ

MCHAR

mchar(n)

○

MVARCHAR

mvarchar(n)

○

日付データ

DATE

date

○

yy-mm-dd

×

yymmdd

×

時刻データ

TIME

time

○

時刻印データ

TIMESTAMP

timestamp(p)

○

日間隔データ

INTERVAL YEAR TO DAY

interval-year-to-day

○

時間隔データ

INTERVAL HOUR TO SECOND

interval-hour-to-second

○

長大データ

BLOB

blob

○

blobprm

×

バイナリデータ

BINARY

binary(n)

○

binaryprm

×

（凡例）

○：指定できます。

×：指定できません。

抽象データ型の列を持つ表をpdrorgのアンロード処理でバイナリ形式の入力データファイルに出力した場合，ファイル中の抽象データ型列のデータは，アンロード時に指定したコンストラクタパラメタ逆生成関数によって，コンストラクタ関数の引数のデータ型に変換されて出力されています。そのため，typeオペランドに指定するデータ型は，コンストラクタパラメタ逆生成関数が生成するデータ型にしてください。コンストラクタパラメタ逆生成関数が生成するデータ型については，各プラグインマニュアルを参照してください。

(c)　element=要素数

pdrorg出力バイナリ形式の入力データファイルの場合，スキップする列が繰返し列のときに，その繰返し列の最大要素数を指定します。

このオペランドは，必ずtypeオペランドの後に指定してください。

(3)　注意事項

固定長データ形式の入力データファイルがテキストファイルの場合，行の終端の改行文字を格納しないようにするときにスキップデータ文を指定します。

スキップデータ文は列に対して指定するため，関数の引数に対しては指定できません。

入力データファイルごとの，オペランドの指定可否を次に示します。

オペランド

入力データファイルの形式

DAT形式

固定長データ形式

pdrorg出力バイナリ形式

length

×

○

×

type

×

×

○

（凡例）

○：必ず指定します。

×：指定できません。

5.7.3　追加データ文

(1)　形式

　＊adddata＊
　列名，sequence=(〔認可識別子.〕順序数生成子識別子)

(2)　オペランドの説明

(a)　列名

順序数生成子の順序番号を格納する列名を指定します。

(b)　sequence=(〔認可識別子.〕順序数生成子識別子)

順序番号を取得する順序数生成子の識別子を指定します。

認可識別子を省略した場合は，pdload実行ユーザ（-uオプション又はPDUSER環境変数に設定した認可識別子）が仮定されます。

(3)　注意事項

列構成情報ファイルの1行目に追加データ文を指定して，順序数生成子が生成する順序番号だけをデータロードすることはできません。順序番号だけを表に格納する場合は，該当する行の行数文のデータを用意し，sequenceオペランドにreplaceを指定してデータロードしてください。順序数生成子だけを表に格納する場合の例を次に示します。

（例）

表定義は次のように指定してください。

    create table TABLE_C (
      col01 integer
   );

入力データファイルは，DAT形式で行数分の改行データを用意してください。col01列に順序数生成子 USER01.SEQ_C01が生成する順序番号を格納する場合，列構成情報ファイルは次のように記述してください。

   col01,sequence=(USER01.SEQ_C01) ，replace=force

pdparaloadを使用する場合，又はRDエリア単位にデータロードする場合は，分割キーの列に対してこのオペランドを指定しないでください。指定すると，分割キーの値が順序数生成子から取得した順序番号になるため，該当する分割キーの値が指定したRDエリアへの格納対象外の値となり，データを格納できないおそれがあります。

5.7.4　記述例

列構成情報ファイルの記述例を次に示します。

(1)　DAT形式

(a)　入力データファイル中に不要なデータが含まれる場合

表定義：

CREATE TABLE T1 (COL1 INTEGER,COL2 DATE,COL3 CHAR(10));

入力データファイル及び列構成情報ファイル：

(b)　順序数生成子を使用した場合

順序数生成子（USER01.SEQ_B01）から順序番号を生成し，COL03に格納する例について示します。

表定義：

CREATE TABLE T1 (COL1 INTEGER,
                 COL2 CHAR(10),
                 COL3 DECIMAL(10),
                 COL4 INTEGER);

入力データファイル：

1,ABC,2500
2,DEF,30000
3,GHI,10
   :

列構成情報ファイル：

COL1
COL2
COL4
*adddata*
COL3,sequence=(USER01.SEQ_B01)

(2)　固定長データ形式

表定義：

CREATE TABLE T1 (COL1 INTEGER,COL2 DATE,COL3 CHAR(10));

入力データファイル及び列構成情報ファイル：

(3)　pdrorg出力バイナリ形式

LOB属性を含むSGMLTEXT型の列がある表T1と，BLOB型の列がある表T2を例にして，表T1のアンロードデータを表T2にデータロードする場合について説明します。なお，説明中の表定義は，列名及びデータ型の指定部分だけで，ほかの指定部分は省略しています。

(a)　T1とT2の列定義の順序が異なる場合

アンロード時の表定義

T1(C1 INT, C2 SGMLTEXT, C3 BLOB)

データロード時の表定義

T2(C4 BLOB ,C5 INT, C6 SGMLTEXT)

列構成情報ファイルの内容

C5
C6, func=(SGMLTEXT, param=blob)
C4

(b)　T2の列がT1より少ない場合

アンロード時の表定義

T1(C1 INT, C2 SGMLTEXT, C3 BLOB)

データロード時の表定義

T2(C4 INT ,C5 BLOB)

列構成情報ファイルの内容

C4
*skipdata*,type=blobprm
C5

(c)　T2の列がT1より多い場合

アンロード時の表定義

T1(C1 INT, C2 BLOB)

データロード時の表定義

T2(C4 INT, C5 BLOB, C6 SGMLTEXT)

列構成情報ファイルの内容

C4
C5

(d)　列データを入れ替える場合

T1のSGMLTEXT型列のLOB属性のデータ(C2)をT2のLOB列(C6)に，T1のLOB列のデータ(C3)をT2のSGMLTEXT型列のLOB属性(C5)に，それぞれ入れ替えます。

アンロード時の表定義

T1(C1 INT, C2 SGMLTEXT, C3 BLOB)

データロード時の表定義

T2(C4 INT ,C5 SGMLTEXT, C6 BLOB)

列構成情報ファイルの内容

C4
C6, type=blobprm
C5, func=(sgmltext, param=blob)

(e)　列のデータ型を変更する場合

SGMLTEXT型列のLOB属性のデータ(C2)をSGMLBIN型列のBINARY属性(C5)に，LOB列のデータ(C3)をBINARY型列(C6)にデータロードします。

アンロード時の表定義

T1(C1 INT, C2 SGMLTEXT, C3 BLOB)

データロード時の表定義

T2(C4 INT ,C5 SGMLBIN, C6 BINARY)

列構成情報ファイルの内容

C4   ................................................1
C5, func=(sgmlbin, param=binary, type=blobprm)   ....2
C6, type=blob   .....................................3

［説明］

T1のC1データを，T2のC4に格納することを意味します。C1とC4のデータ型は同じであるため，データ型の指定は省略します。

T1のC2データを，T2のC5に格納することを意味します。プラグインが提供する抽象データ型列SGMLBINにデータを格納するため，コンストラクタ関数sgmlbinと属性のデータ型binaryをfuncオペランドで指定します。入力データは，プラグインが提供する抽象データ型列SGMLTEXTのLOB属性のデータのため，typeオペランドでLOB属性であること（blobprm）を指定します。

T1のC3データをT2のC6に格納することを意味します。C3のデータ型とC6のデータ型が異なるため，typeオペランドに入力データのデータ型（blob）を指定します。

(f)　T1とT2の列定義が異なる場合

CHARACTER型の定義長を，10から21に拡張してデータロードします。

アンロード時の表定義

T1(C1 CHAR(10), C2 BLOB)

データロード時の表定義

T2(C1 CHAR(21), C2 BLOB)

列構成情報ファイルの内容

C1,type=char(10)
C2

(g)　データ変換をする場合に必要となる領域

データ変換をする場合，データ変換後のBINARY型データ，抽象データ型のBINARYパラメタデータ，及び抽象データ型のBLOBパラメタデータのデータの間にBLOBデータが入るような並びになったときは，そのBLOBデータ保持するためにメモリを確保する必要があります。メモリを確保できない場合は，メモリ確保エラーで終了します。次のような場合に，メモリの確保が必要となります。

BLOBデータを，BLOB属性の抽象データ型列にデータロードする場合，そのBLOBデータよりも前にBLOB型の列へデータロードするデータがあるとき

抽象データ型のBLOBパラメタデータをBLOB型の列にデータロードする場合，その抽象データ型のBLOBパラメタデータよりも後にBLOB属性の抽象データ型列へデータロードするデータがあるとき

BLOBデータ，又は抽象データ型のBLOBパラメタデータを，BINARY型の列，又はBINARY属性の抽象データ型列にデータロードする場合，対象となるBLOBデータ，又は抽象データ型のBLOBパラメタデータより前に，ほかのBLOB型の列へデータロードするデータがあるとき

BINARY型の列，BLOB属性の抽象データ型列，及びBLOB型の列を定義した表から出力した，pdrorg出力バイナリ形式の入力データファイルのデータの並びを次の図に示します。

図5‒28　pdrorg出力バイナリ形式の入力データファイルのデータの並び

［説明］

pdloadでは，入力データ領域として少なくともMの領域を確保します。領域は，格納先の表定義からMの最大長を算出して確保します（source文のmaxreclenオペランドで，任意にこの長さを指定することもできます）。

データがこの並びのままデータロードする場合は，データを順番に処理するため，pdloadはこれ以上入力データを保持するための領域は確保しません。

列構成情報ファイルでデータの変換を指定した場合，pdloadはM＋M2＋Kの領域を確保します。入力データ領域として，M＋M2の領域を確保しますが，更にBINARY型に変換した部分より前のBLOBデータ部分も保持する必要があるため，Kの領域も確保します。Kの部分の領域は，option文のbloblimitオペランドで指定できます。格納先の表定義から算出した値，又はoption文のbloblimitオペランドの指定値のうち，小さい方の値で領域を確保します。

5.8　ナル値・関数情報ファイル

ナル値・関数情報ファイルの比較値と入力データを比較して一致した場合，表にナル値を格納するときに指定します。また，抽象データ型の列に格納する値を生成するコンストラクタ関数の名称が，列のデータ型の名称と異なる場合や，該当する関数が複数あるときに関数情報を指定する場合に指定します。

このナル値・関数情報ファイルに指定する文を，列番号文といいます。

ナル値・関数情報ファイルは，入力データがバイナリ形式の場合に指定できます。

列番号文は，必ず1行で記述してください。複数列分の列番号文を記述したい場合は，複数行記述してください。

5.8.1　列番号文

(1)　形式

　列番号｛，null＝｛（先頭位置，〔｛c｜x｝〕’比較値’）｜’数値比較値’｝
　　　　　〔，element=要素数〕〔，elmtype=配列データ形式〕〔，nullset=ナル値オプション〕
　　　　｜，func=（関数名，param=引数の型
　　　　　〔，null＝｛（先頭位置，〔｛c｜x｝〕’比較値’）｜’数値比較値’｝〕〔，…〕）
　　　　｜，sequence=（〔認可識別子.〕順序数生成子識別子
　　　　　〔，replace=｛’数値比較値’｜（先頭位置，｛c|x｝’比較値’）｜null｜force｝〕）
　　　　　｝

(2)　オペランドの説明

(a)　列番号

　　　〜＜符号なし整数＞((1〜30000))

入力データを格納する表の列の番号を，定義順（昇順）の列番号で指定します。予備列に対応する列番号は指定できません。指定した場合，KFPL25103-Eメッセージが出力され，異常終了します。

(b)　列番号以外のオペランド

列番号以外のオペランドの説明については，「列名文」の該当するオペランドを参照してください。

(3)　記述例

ナル値・関数情報ファイルの記述例を次に示します。ここでは，バイナリ形式を例にしています。

表定義

CREATE TABLE T1 (C1 INT,C2 DATE,C3 VARCHAR(10),C4 BLOB(100k));

ナル値・関数情報ファイル

1,null='-1'
2,null='0000-00-00'
3,null=(5,x'20')
4,null=(1,'@')

［説明］

各列に対応するデータが次の値の場合，ナル値が格納されます。

C1：0xffffffff

C2：0x00000000

C3：0x000a61626364202020202020

C4：0x0000000140

(4)　注意事項

列に対応するデータがない入力データファイルをデータロードした場合，表の列にはWITH DEFAULTの既定値，又はナル値が格納されます。詳細については，「データロード時のナル値，及び既定値」を参照してください。

5.9　処理性能情報ファイル

$PDDIR/spool/utlrptディレクトリ下に内部的な情報を出力します。

5.10　データロード時のナル値，及び既定値

データロード時のナル値，及び既定値は，表定義時のナル値，既定値の指定，及びpdload実行時の制御文の指定によって格納値が変わります。データロード時に格納されるナル値，及び既定値を次の表に示します。

表5‒48　データロード時に格納されるナル値，及び既定値

入力データファイルの形式

表定義時の指定値

pdload実行時のoption文のnull_stringの指定値

データロード時の格納値

非ナル値制約指定

WITH DEFAULT

DEFAULT句

入力データがナル値の場合※１

列名文を省略した場合※２

非ナル値の場合

DAT形式

NULL

−

あり

default

DEFAULT句の既定値

DEFAULT句の既定値

入力データの値

null

ナル値

なし

default

ナル値

null

NOT NULL

あり

−

default

WITH DEFAULTの既定値

WITH DEFAULTの既定値

null

なし

あり

default

DEFAULT句の既定値

DEFAULT句の既定値

null

ナル値（エラーとなります）

なし

default

×

null

拡張DAT形式

NULL

−

あり

default

DEFAULT句の既定値

DEFAULT句の既定値

入力データの値

null

ナル値

なし

default

ナル値

null

NOT NULL

あり

−

default

WITH DEFAULTの既定値

WITH DEFAULTの既定値

null

なし

※３

あり

default

DEFAULT句の既定値

DEFAULT句の既定値

null

ナル値（エラーとなります）

なし

default

×

null

※４

あり

default

DEFAULT句の既定値

DEFAULT句の既定値

null

WITH DEFAULTの既定値

なし

default

×

null

バイナリ形式

NULL

−

あり

−

ナル値

×

入力データの値

なし

NOT NULL

あり

−

×

なし

あり

なし

固定長データ形式

NULL

−

あり

−

ナル値

DEFAULT句の既定値

入力データの値

なし

ナル値

NOT NULL

あり

−

×

WITH DEFAULTの既定値

なし

あり

DEFAULT句の既定値

なし

×

pdrorg出力バイナリ形式

NULL

−

あり

−

ナル値

DEFAULT句の既定値

入力データの値

なし

ナル値

NOT NULL

あり

−

ナル値（エラーとなります）

WITH DEFAULTの既定値

なし

あり

DEFAULT句の既定値

なし

×

（凡例）

DEFAULT句の既定値：詳細については表「データロード時に格納されるDEFAULT句の既定値」を参照してください。

WITH DEFAULT句の既定値：詳細については表「データロード時に格納されるWITH DEFAULTの既定値」を参照してください。

−：該当しません。

×：該当する表定義時の指定値，及びpdload実行時の指定値の組み合わせでは，列名文を指定又は省略できないことを示します。

注

WITH DEFAULT，又はDEFAULT句を指定した列にUNIQUE指定のクラスタキー又は主キーが定義されている場合，既定値を格納するとキー重複エラーとなります。この場合，必ず入力データを指定してください。

注※1

入力データが次のデータの場合，入力データがナル値となります。

ナル値となる入力データの詳細については，「入力データファイル」を参照してください。

DAT形式の場合：

"*"となっているデータ

記述がないデータ

拡張DAT形式の場合：

"*"となっているデータ

記述がないデータ

数データ型，日付データ型，日間隔データ型，時刻データ型，時間隔データ型，又は時刻印データ型の列の，入力データがすべて半角空白又はタブのデータ

バイナリ形式の場合：

ナル値・関数情報ファイルの列番号文のnullオペランドに指定した比較値と一致するデータ

固定長データ形式の場合：

列構成情報ファイルの列名文のnullオペランドに指定した比較値と一致するデータ

pdrorg出力バイナリ形式の場合：

列データ位置オフセットが0のデータ

注※2

列構成情報ファイルで，該当する列に対する列名文を省略している場合を指します。

注※3

次の列を指します。

UNIQUEを指定したインデクスの構成列

UNIQUEを指定したクラスタキーの列

PRIMARYを指定したクラスタキーの列

主キーの列

分割キーの構成列

注※4

注※3以外の列を指します。

表5‒49　データロード時に格納されるDEFAULT句の既定値

データ型

格納する列のDEFAULT句の指定

定数

USER

CURRENT

_TIME，

又はCURRENT TIME

CURRENT

_DATE，

又はCURRENT DATE

CURRENT

_TIMESTAMP，

又はCURRENT TIMESTAMP

NULL

省略

数データ

INTEGER

SMALLINT

DECIMAL

FLOAT

SMALLFLT

設定値

−

−

−

−

ナル値

WITH DEFAULTの既定値と同じ

文字データ

CHARACTER

行を挿入した実行ユーザの認可識別子

pdload実行時の時刻※１

pdload実行時の日付※２

pdload実行時の日時※３

VARCHAR

−

−

−

混在文字データ

MCHAR

MVARCHAR

各国文字データ

NCHAR

−

NVARCHAR

日付データ

DATE

pdload実行時の日付

日間隔データ

INTERVAL YEAR TO DAY

−

時刻データ

TIME

pdload実行時の時刻

時間隔データ

INTERVAL HOUR TO SECOND

−

時刻印データ

TIMESTAMP

pdload実行時の日時※４

バイナリデータ

BINARY

−

長大データ

BLOB

−

（凡例）−：設定できません。

注※1

hh:mm:ssの形式で格納されます。

注※2

yyyy-mm-ddの形式で格納されます。

注※3

yyyy-mm-dd hh:mm:ss〔.000000〕の形式で格納されます。

注※4

小数秒部分は0を格納します。

表5‒50　データロード時に格納されるWITH DEFAULTの既定値

データ型

格納する値

数データ

INTEGER

SMALLINT

DECIMAL

FLOAT

SMALLFLT

0

文字データ

CHARACTER

空白

VARCHAR

1バイトの空白

各国文字データ

NCHAR

空白

NVARCHAR

1文字の空白

混在文字データ

MCHAR

空白

MVARCHAR

1バイトの空白

日付データ

DATE

現在の日付

日間隔データ

INTERVAL YEAR TO DAY

0か年0か月0か日

時刻データ

TIME

現在の時刻

時間隔データ

INTERVAL HOUR TO SECOND

0時間0分0秒

時刻印データ

TIMESTAMP

現在の日時

バイナリデータ

BINARY

長さ0のデータ

長大データ

BLOB

長さ0のデータ

注

現在の日付，現在の時刻，及び現在の日時とは，データベース作成ユティリティを実行した日付及び時刻を示します。

5.11　UOCを利用したデータロード

5.11.1　概要

入力デ−タファイルをそのままデータべースに格納するのではなく，ユーザが作成したプログラムでデータを編集してから格納したい場合があります。このような場合にUOC（User Own Coding）を使用します。UOCはC言語で作成します。

UOCを利用して表を作成する場合，次の２種類の方法があります。

ユティリティが入力デ−タファイルを入力する方法（source文にファイル名を指定）

UOCが入力デ−タファイルを入力する方法（source文に(uoc)を指定）

それぞれの概要を次の図に示します。

図5‒29　UOCを利用した場合の表の作成方法（ユティリティが入力デ−タファイルを入力する方法）

図5‒30　UOCを利用した場合の表の作成方法（UOCが入力デ−タファイルを入力する方法）

5.11.2　UOCインタフェース

データべース作成ユティリティとUOC間の連絡は，インタフェース領域を使用して情報の入出力をします。

この領域はデータべース作成ユティリティが確保します。UOCは，関数の第1引数にこの領域のアドレスを受け取って参照，更新をします。

UOCインタフェース領域の構造を次の図に示します。また，UOCインタフェース領域の内容を表「UOCインタフェース領域の内容」に示します。

図5‒31　UOCインタフェース領域の構造（32ビットモードの場合）

図5‒32　UOCインタフェース領域の構造（64ビットモードの場合）

表5‒51　UOCインタフェース領域の内容

相対位置

フィールド名

長さ（単位：バイト）

属性

値の設定元

内容

32

64

32

64

0

0

アイキャッチャ

8

8

char

pdload

インタフェース領域（’＊UOCINF＊’）

8

8

実行中プログラム

4

4

long

pdload

制御が渡っているプログラム

0：pdload

1：UOC

12

12

呼び出し種別

4

4

long

pdload

UOCに対する処理要求種別

o：開始要求

処理開始の準備要求をします。

入力デ−タファイルのオープンなど，処理の開始準備をします。

e：編集要求※１

行データの編集要求をします。

（1）の方法では，pdloadが入力した1行分のデータが入力バッファアドレスの指す入力バッファに設定されています。

（2）の方法では，UOCが入力デ−タファイルの読み込みをします。

その後，（1），（2）共にデータを編集した結果を，編集バッファアドレスの指す編集バッファに設定します。

このコールは，データがなくなるか，又はUOCからのリターンコードが0，4以外になるまで繰り返します。

c：終了要求

処理の終了要求をします。

入力デ−タファイルのクローズなど，終了処理をします。

（1）の方法ではpdloadが入力するデータがなくなった場合，（2）の方法ではUOCからリターンコード16を受け取った場合に要求をします。

t：停止要求

処理の強制終了要求をします。

pdload側でエラーが発生した場合，又はUOCからリターンコード0，4，16以外を受け取った場合に，終了要求の代わりにこのコールをします。

開始要求をした場合，正常時は終了要求，異常時は停止要求をします。終了要求又は停止要求以降は，UOCがコールされることはありません。

16

16

認可識別子の長さ

2

2

short

pdload

表の所有者名の長さ

18

18

認可識別子

30

30

char

pdload

表の所有者名

48

48

表識別子の長さ

2

2

short

pdload

表の名称の長さ

50

50

表識別子

30

30

char

pdload

表の名称

80

80

入力データ長※２

4

8

long

pdload

(1)　バイナリ形式及び拡張DAT形式の入力データファイルの場合，入力バッファ※３に設定したデータの長さ（全長）を設定します。

(2)　無視されます。

84

88

入力バッファのアドレス

4

8

void*

pdload

(1)　pdloadが入力したデータを格納するバッファのアドレスを設定します。

(2)　無視されます。

88

96

編集データ長※２※５

4

8

long

UOC

バイナリ形式及び拡張DAT形式の入力デ−タファイルの場合，編集バッファ※４に設定したデータの長さ（全長）を設定します。

(1)　データを格納しない場合は−1を設定します。

92

104

編集バッファのアドレス

4

8

void*

UOC

UOCで編集したデータを格納するバッファのアドレス

96

112

ユーザパラメタのアドレス

4

8

void*

pdload

srcuoc文のparamオペランドに指定した文字列のアドレスを設定します。paramオペランドを省略した場合はナル値が設定されます。

100

120

システムが使用する情報

4

8

void*

pdload

システムが使用する情報（UOC側では使用しないこと）

104

128

予備

16

16

char

pdload

予備領域（UOC側では使用しないこと）。

なお，最初の１バイトはシステムが使用する領域です。

120

144

リターンコード

4

4

long

UOC

UOCの処理結果を通知するリターンコードです。pdloadから制御を受け取ったUOCは，次の基準でリターンコードを戻してください。この領域はpdloadがUOCをコールするごとにクリア（−1を設定）しているので，毎回設定する必要があります。

0：

開始・終了要求に対する処理が正常に実行された場合，又は編集要求に対して編集バッファに1行分のデータを用意できた場合に設定します。

4：

デバッグなどで，正常時もメッセージを出力したい場合に設定します。

内容は0と同じです。

リターンコードに4を設定した場合，メッセージは3回まで出力されます。メッセージが3回出力された後に4を設定しても無視され，メッセージは出力されません。

8：

UOCの処理中にエラーが発生した場合，それまでの入力処理を有効にして（コミットして）処理を打ち切るときに設定します。

ただし，HiRDB側で内部エラーが発生した場合は，ロールバックされます。コミットされたか，又はロールバックされたかについては，メッセージログに出力されたメッセージで確認できます。

16：

UOCが入力デ−タファイルを読み込む場合，データがなくなったことをpdloadに通知するときに設定します。

また，pdloadが入力デ−タファイルを読み込む場合に，今回受け取ったデータ以降のデータを受け取らないときにも指定できます。

このリターンコードを受け取ると，pdloadは終了処理をします。

20：

UOCの処理中にエラーが発生した場合，それまでの入力処理を無効にして（ロールバックして）処理を打ち切るときに設定します。

リターンコードに0，16以外の値を設定すると，メッセージ埋め込み領域の内容を標準出力及びメッセージログに出力します。メッセージは，末尾に（￥0）を設定して131バイト以内の文字列としてください。

124

148

メッセージ埋め込み領域

132

132

char

UOC

標準出力及びログに出力するメッセージの格納領域

（凡例）

32：32ビットモードのHiRDBの相対位置，及び長さを示します。

64：64ビットモードのHiRDBの相対位置，及び長さを示します。

注

内容の（1），（2）の意味を次に示します。

（1）：pdloadが入力デ−タファイルを入力する場合

（2）：UOCが入力デ−タファイルを入力する場合

注※1

-eオプション指定時は，エラーデータを検知するとUOCの処理も打ち切ります。また，pdloadが入力データファイルを入力する場合は次のようになります。

-rオプションが指定されている場合は，指定した行データまでは渡されません。

パーソナルコンピュータで作られたDAT形式ファイルなどで，改行記号（￥n）の前に復帰記号（￥r）があるデータは，復帰記号は削除された形で渡されます。

pdrorgが出力する-Wオプション指定のバイナリ形式の入力デ−タファイルの場合，LOB列及びBINARY列の編集はできません。

バイナリ形式の入力デ−タファイルを処理する場合，可変長文字列の長さが不正なデータは渡されません。

注※2

該当するデータを入力対象外にする場合に-1を設定します。

64ビットモードのHiRDBの場合，処理上有効なデータ長の最大値は2ギガ−1バイトです。

注※3

入力バッファアドレスのフィールドを指す領域を，入力バッファと呼びます。入力バッファはpdloadが入力デ−タファイルを読み込む場合に，pdloadが確保します。入力バッファには，pdloadが入力したデータが１行ごとに格納されます。入力バッファの形式は次のようになります。

・DAT形式の入力デ−タファイルの場合

テキストデータを改行記号まで読み込んだものが，そのまま格納されます。末尾は改行記号（￥n）＋ナル文字（￥0）となります。最後尾のナル文字以降を参照，更新しないでください。

・拡張DAT形式の入力デ−タファイルの場合

囲み文字で囲まれていないナル文字又は改行記号までのテキストデータを読み込んだものが，そのまま格納されます。格納されたデータの長さは入力データ長に設定されます。入力データ長に設定された長さ以上の領域を参照，更新しないでください。

・バイナリ形式の入力デ−タファイルの場合

表定義から計算した行長分のデータが格納されます。格納されたデータの長さは入力データ長に設定されます。入力データ長に設定された長さ以上の領域を参照，更新しないでください。

・pdrorgが出力した入力デ−タファイルの場合

入力データ長には，FIX表の場合はデータ部だけの長さ，非FIX表の場合はオフセット部とデータ部の合計値が設定されます。入力データ長に設定された長さ以上の領域を参照，更新しないでください。なお，LOB列及びBINARY列はUOCでは扱えないため，LOB列及びBINARY列がある表は，pdrorgのUOCで編集してください。

・固定長データ形式の入力データファイルの場合

列構成情報ファイルに指定した列情報から計算された，行長分のデータが格納されます。したがって，テキストファイルの場合は，改行記号（￥n）及び復帰記号（￥r）が付いたままの形となります。

注※4

編集バッファアドレスのフィールドを指す領域を，編集バッファと呼びます。編集バッファはUOCが確保します。ただし，pdloadが入力デ−タファイルを読み込む場合，設定されたデータ長を超えて入力バッファの更新をしないときには，入力バッファをそのまま編集バッファとして利用できます。バイナリ形式の場合，編集データ長のフィールドにデータの長さを設定して，編集バッファの何バイト目までがデータなのかを指定します。DAT形式の場合，長さを設定する必要はありませんが，編集バッファのデータの末尾は改行記号（￥n）＋ナル文字（￥0）とします。

注※5

バイナリ形式及び拡張DAT形式の入力データファイルの場合，編集バッファに用意したデータの長さを指定してください。

拡張DAT形式の入力データファイルの場合，編集したデータの長さがsource文のmaxreclenオペランドの指定値を超えないようにしてください。そのほかの形式の入力データファイルの場合，初期値の0にしてください。

5.11.3　UOCの使用例

ここでは，UOCを使用したデータロードの例について説明します。

なお，使用例中のUOCコーディング例は，サンプルデータべースとして提供されています。格納ディレクトリは，$PDDIR/sample/sampleUOCです。

(1)　UOCを使用したデータロード例（その１）

2けた表示の年号を持つ入力デ−タファイルを，2000年対応のデータべースに格納するために4けた表示の年号に変更します。なお，入力デ−タファイルはDAT形式で，pdloadが入力デ−タファイルを入力します。

(a)　データべースの表定義

　CREATE TABLE 名簿 (社員番号 INTEGER,
　                   生年月日 DATE,
　                   出身地 CHAR(10),
　                   氏名 CHAR(16));

(b)　入力デ−タファイルの形式

 10001,68/04/30,KAWASAKI,YUUJI IKEDA
 10002,64/09/13,HIROSHIMA,YOSHIO ODA
 20001,70/11/02,YOKOHAMA,MASAMI KAWAGUCHI

(c)　コマンド形式

 pdload 名簿 制御情報ファイル

(d)　制御情報ファイルの内容

 source 入力データファイル名
 srcuoc ライブラリ名 entry=date_change_func

(e)　UOCコーディング例

（ファイル名：sample1.c）

/*****************************************************************************
**                                                                          **
**  HiRDB sample Data input User Own Coding (for CSV file)                  **
**                          ~    ~   ~                                      **
**  name    :   date_change_func                                            **
**                                                                          **
**  func    :   YY/MM/DD  ===>  YYYY-MM-DD                                  **
**                                                                          **
**  i/o     :   none                                                        **
**                                                                          **
**  return  :   none                                                        **
**                                                                          **
*****************************************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <pdutluoc.h>                                                             1

#define DATELEN         10                  /* DATE length                  */

    static  void    sub_date_change(char *,char *);

void date_change_func(
    UTL_UOC_INF    *uocinf                  /* A(UOC interface area)        */    2
){
    long            wk_leng;                /* length                       */
    char            date_data[10];          /* DATE (HiRDB)                 */
    char           *date_ptr;               /* A(birth date)                */
    char           *address_p;              /* A(native)                    */
    static  char    buff[512];              /* buffer                       */

    switch(uocinf->req_cd){                                                       3
    case UTL_UOC_START:
/*--------------------------------------------------------------------------*/
/*  START                                                                   */
/*--------------------------------------------------------------------------*/
        uocinf->edit_adr = buff;
        uocinf->rtn_code = UTL_UOC_NML;
        break;
    case UTL_UOC_EDIT:
/*--------------------------------------------------------------------------*/
/*  EDIT                                                                    */
/*--------------------------------------------------------------------------*/
        date_ptr = strchr(uocinf->data_adr,',');
        if (date_ptr == NULL){
            strcpy(uocinf->err_msg,"Invalid data");
            goto OWARI;
        }
        sub_date_change(++date_ptr,date_data);
        wk_leng = (long)date_ptr - (long)uocinf->data_adr;
        strncpy(buff,uocinf->data_adr,wk_leng);
        strncpy((char*)((long)buff + wk_leng),date_data,DATELEN);
        wk_leng += DATELEN;
        address_p = strchr(date_ptr,',');
        strcpy((char*)((long)buff + wk_leng),address_p);
        uocinf->rtn_code = UTL_UOC_NML;
        break;
    case UTL_UOC_END:
    case UTL_UOC_TERM:
/*--------------------------------------------------------------------------*/
/*  END                                                                     */
/*--------------------------------------------------------------------------*/
        uocinf->rtn_code = UTL_UOC_NML;
        break;
    default:
        strcpy(uocinf->err_msg,"Invalid request code");
        goto OWARI;
    }
    return;
OWARI:
    uocinf->rtn_code = UTL_UOC_ERR;
    return;
}

static void sub_date_change(
    char    *year_two,                      /* YY/MM/DD                     */
    char    *year_four                      /* YYYY-MM-DD                   */
){
    strcpy(year_four,"19");
    strncat(year_four,year_two,8);
    year_four[4] = '-';
    year_four[7] = '-';
    return;
}

［説明］

HiRDBが提供する，UOC作成用のヘッダを引き込みます。

UOCインタフェース領域のアドレスを引数として受け取ります。

呼び出し種別を判定してそれぞれの処理をします。

(2)　UOCを使用したデータロード例（その２）

Mマシンからftpのバイナリモードで転送したファイルの文字コードを，EBCDIKコードからASCIIコードに変換してデータベースに格納します。なお，入力デ−タファイルはバイナリ形式で，UOCが入力デ−タファイルを入力します。

(a)　データべースの表定義

　CREATE TABLE 社員一覧 (社員番号 INTEGER,
　                       社員名 CHAR(16));

(b)　入力デ−タファイルの形式（EBCDIKコード）

　 00002711 E8E4E4D1 C940C9D2 C5C4C140 40404040    ←16進数表示
　１０００１　ＹＵＵＪＩ　ＩＫＥＤＡ                    ←文字表示
　 00002712 E8D6E2C8 C9D640D6 C4C14040 40404040
　１０００２　ＹＯＳＨＩＯ　ＯＤＡ
　 00004E21 D4C1E2C1 D4C940D2 C1E6C1C7 E4C3C8C9
　２０００１　ＭＡＳＡＭＩ　ＫＡＷＡＧＵＣＨＩ

(c)　コマンド形式

 pdload 社員一覧 制御情報ファイル

(d)　制御情報ファイルの内容

 source (uoc)
 srcuoc ライブラリ名 entry=table_load_func param='入力データファイル名'

(e)　UOCコーディング例

（ファイル名：sample2.c）

/*****************************************************************************
**                                                                          **
**  HiRDB sample Data input User Own Coding (for Binary file 1/2)           **
**                          ~    ~   ~                                      **
**  name    :   table_load_func                                             **
**                                                                          **
**  func    :   Character code convert                                      **
**                                                                          **
**  i/o     :   none                                                        **
**                                                                          **
**  return  :   none                                                        **
**                                                                          **
*****************************************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <pdutluoc.h>

#define F_START             'S'             /* convert start                */
#define F_CONV              'C'             /* convert execute              */
#define F_END               'E'             /* convert end                  */

    extern  long    data_convert_func(long,long,char*,char*);

void table_load_func(
    UTL_UOC_INF    *uocinf                  /* A(UOC interface area)        */
){
    long            rc;                     /* return code                  */
    long            redsiz;                 /* input data length            */
    char           *ebc_adr;                /* A(EBCDIK)                    */
    char           *asc_adr;                /* A(ASCII)                     */
    char            buff[20];               /* input buffer                 */

    static  int     inflp = EOF;            /* file ID                      */

    switch(uocinf->req_cd){
    case UTL_UOC_START:

/*--------------------------------------------------------------------------*/
/*  START                                                                   */
/*--------------------------------------------------------------------------*/
        uocinf->e_data_len = sizeof(buff);
        uocinf->edit_adr = malloc(sizeof(buff));
        if (uocinf->edit_adr == NULL){
            strcpy(uocinf->err_msg,strerror(errno));
            goto OWARI;
        }
        if (uocinf->user_param == NULL){
            strcpy(uocinf->err_msg,"File name not specified");
            goto OWARI;
        }
        strcpy(uocinf->err_msg,"FILE NAME:");
        strcat(uocinf->err_msg,uocinf->user_param);                                1
        inflp = EOF;
        inflp = open(uocinf->user_param,O_RDONLY | O_NONBLOCK);
        if (inflp == EOF){
            strcpy(uocinf->err_msg,strerror(errno));
            goto OWARI;
        }
        rc = data_convert_func(F_START,0,0,0);
        if (rc != 0){
            strcpy(uocinf->err_msg,strerror(rc));
            goto OWARI;
        }
        uocinf->rtn_code = UTL_UOC_DBG;                                            2
        break;
    case UTL_UOC_EDIT:
/*--------------------------------------------------------------------------*/
/*  EDIT                                                                    */
/*--------------------------------------------------------------------------*/
        redsiz = read(inflp,buff,sizeof(buff));
        switch(redsiz){
        case 0:
            uocinf->rtn_code = UTL_UOC_EOF;
            break;
        case -1:
            strcpy(uocinf->err_msg,strerror(errno));
            goto OWARI;
        default:
            if (redsiz == sizeof(buff)){
                memcpy(uocinf->edit_adr,buff,sizeof(long));
                ebc_adr = (char *)((long)buff + sizeof(long));
                asc_adr = (char *)((long)uocinf->edit_adr + sizeof(long));
                rc = data_convert_func(F_CONV,sizeof(buff) - sizeof(long),
                                       ebc_adr,asc_adr);
                if (rc != 0){
                    strcpy(uocinf->err_msg,strerror(rc));
                    goto OWARI;
                }
                uocinf->rtn_code = UTL_UOC_NML;
            }else{
                strcpy(uocinf->err_msg,"Invalid data");
                goto OWARI;
            }
        }
        break;
    case UTL_UOC_END:
    case UTL_UOC_TERM:
/*--------------------------------------------------------------------------*/
/*  END                                                                     */
/*--------------------------------------------------------------------------*/
        rc = data_convert_func(F_END,0,0,0);
        if (rc != 0){
            strcpy(uocinf->err_msg,strerror(rc));
            goto OWARI;
        }
        if (inflp != EOF){
            rc = close(inflp);
            inflp = EOF;
            if (rc == EOF){
                strcpy(uocinf->err_msg,strerror(errno));
                goto OWARI;
            }
        }
        if (uocinf->edit_adr != NULL){
            free(uocinf->edit_adr);
            uocinf->edit_adr = NULL;
        }
        uocinf->rtn_code = UTL_UOC_NML;
        break;
    default:
        strcpy(uocinf->err_msg,"Invalid request code");
        goto OWARI;
    }
    return;
OWARI:
    uocinf->rtn_code = UTL_UOC_ERR;
    return;
}

［説明］

ユーザパラメタで入力デ−タファイルのパス名を取得します。

正常にオープンできた場合，ファイル名をメッセージに出力します。

5.11.4　共用ライブラリの作成

UOCのコーディングが終了したら，共用ライブラリを作成します。共用ライブラリの作成方法については，「共用ライブラリの作成方法」を参照してください。

5.12　規則及び注意事項

5.12.1　規則

(1)　ユティリティの実行について

pdloadは，HiRDBが稼働中のときだけ実行できます。

pdloadは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdloadを実行する場合，LANG環境変数を設定してください。また，pdloadの実行環境で，OSがサポートしていない文字コードを使用する場合，PDLANG環境変数を設定する必要があります。LANG，及びPDLANGについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(2)　ユティリティの実行可否について

データロードする表，インデクス，及びLOB列が格納されているＲＤエリアのオープン属性，RDエリアの状態によって，pdloadの実行可否が変わります。pdloadの実行可否については，「コマンド実行時のRDエリアの状態」を参照してください。

(3)　ユティリティの最大同時実行数

pdloadの最大同時実行数は，システム共通定義のpd_utl_exec_modeオペランドの指定値によって異なります。

pd_utl_exec_mode=0の場合：

最大同時実行数は32です。

pd_utl_exec_mode=1の場合：

最大同時実行数はpd_max_usersオペランドの指定値です。

(4)　ユティリティで処理中の表，インデクスについて

pdloadで作成中の表やインデクスは，ほかのUAPやユティリティからアクセスできません。ただし，option文にnowait=yesを指定した場合，NOWAIT検索はできます。NOWAIT検索とは，排他オプションにNOWAITを指定して検索するSQLのことをいいます。

データロードする表が格納されているRDエリアを，pdholdコマンドで閉塞しておけば，UAPが閉塞エラーとなります。このため，UAPの実行によってユティリティの実行が排他待ちになることや，ユティリティの実行によってUAPの実行が排他待ちになることを防止できます。

データロード中の表に対して，定義系SQLは実行しないでください。実行すると，pdloadがアボートコードPu02004で異常終了します。データロード中の定義系SQL実行を防止するためには，データロードする表及びインデクスが格納されているRDエリアを，pdholdコマンドで閉塞状態にしておく必要があります。なお，データロード中に同一RDエリア内の別の表を参照する場合には，pdholdコマンドで参照可能な閉塞状態にしておきます。

定義系SQLを実行中のRDエリアにある表やインデクスに対して，pdloadを実行すると，排他待ちとなります。

入力データファイルがDAT形式，又は固定長データ形式の場合，表の列にWITH DEFAULTの指定がなく，非ナル値制約の列に対して入力データの指定がないときはエラーとなります。

(5)　CREATE TABLE，CREATE INDEXのPCTFREEとの関係

データ格納時のページ内空き領域比率，及びセグメント内空きページ比率について

データロードのときのデータは，表定義（CREATE TABLEのPCTFREEオペランド）で指定したページ内空き領域比率，及びセグメント内空きページ比率に従ってデータが格納されます。

インデクスについては，インデクス一括作成モードを指定した場合，又は作成モードで新しくデータを作成した場合には，インデクス定義（CREATE INDEXのPCTFREEオペランド）で指定したページ内空き領域比率に従ってデータが格納されます。

ただし，-yオプションを指定した場合には，表定義時，及びインデクス定義時の空き領域比率に関係なく，使用中ページに空きがあればデータを格納します。また，option文のtblfreeオペランド，及びidxfreeオペランドを指定した場合，表定義時，及びインデクス定義時の空き領域比率を変更してデータを格納できます。

空き領域のサーチ

pdload実行時は，常に未使用ページにデータを格納します（未使用ページを確保できなかった場合はエラーとなります）。追加モード（-d指定なし）でデータロードする場合，既存データを格納した使用中ページに空きがあっても利用しません。これは，既存データの使用中ページに空きがあっても，その空きをサーチするために処理時間が掛かってしまうためです（特にデータロードは，まとまったデータの追加をするため，処理時間が大幅に増大する可能性があります）。ただし，-yオプションを指定した場合には，未使用ページを確保できなかったときでもエラーにはなりません（空いている使用中ページにデータを格納します）。

なお，SEGMENT REUSE指定の表にデータロードする場合，SEGMENT REUSEの指定は無効となります。

(6)　データロード中のシンクポイントについて

通常のデータロード時はシンクポイントを取得しません。このため，データロード中にほかのUAPなどを実行してシステム障害が発生した場合など，再開始に要する時間が増大するため，できるだけデータロードとほかのUAPなどは同時に実行しないようにしてください。

同期点指定のデータロードの場合は，任意の行数単位にシンクポイントを取得できます。このため，通常のシンクポイントを取得しないデータロードに比べると，異常終了時の再開始に要する時間は短くなります。

(7)　各国文字データのチェックについて

各国文字データとして格納する入力データの値については，データがマルチバイトコードかどうかのチェックはしません。

(8)　EasyMTを利用して，VOS3で作成したファイルを入力とする場合について

EasyMTを利用して，VOS3などのメインフレームで作成したファイルを入力とする場合，pdloadでデータロードする前に，文字コードをpdsetupコマンドで指定した文字コードに変換する必要があります。

(9)　マルチボリュームMTを使用する場合について

マルチボリュームMTを使用する場合，ボリュームの切り替え操作にMTguideを使用しますので，サーバマシンにMTguideが組み込まれている必要があります。

(10)　DECIMAL型の符号正規化機能について

DECIMAL型の符号正規化機能を使用している場合，DECIMAL型の符号部は次のように扱われます。DECIMAL型の符号正規化機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

DECIMAL型の符号部の仕様

HiRDBでの，DECIMAL型の符号部の仕様を次に示します。

符号部

意味

X'C'

正の値を示しています。

X'D'

負の値を示しています。

X'F'

正の値を示しています。

DECIMAL型の符号部の変換規則

DECIMAL型の符号正規化機能を使用すると，データを挿入したときにDECIMAL型の符号部を次の規則に従って変換します。

DECIMAL型の符号部の変換規則（0データ以外の場合）

埋込み変数のデータの符号部

正規化しない場合

正規化する場合

X'A'

エラー

X'C'に変換

X'B'

エラー

X'D'に変換

X'C'

無変換

無変換

X'D'

無変換

無変換

X'E'

エラー

X'C'に変換

X'F'

無変換

X'C'に変換

X'0'〜X'9'

エラー

エラー

DECIMAL型の符号部の変換規則（0データの場合）

0データの符号部

正規化しない場合

正規化する場合

X'A'

エラー

X'C'に変換

X'B'

エラー

X'C'

無変換

X'D'

無変換

X'E'

エラー

X'F'

無変換

このように，0データの正規化を実施すると，−0のデータが＋0に変換されます。

なお，文字データを変換するDAT形式の入力データファイルの場合は，システム定義の指定に関係なく，正規化された値（正の値，0データの場合は符号部がX'C'，又は負の値の場合は符号部がX'D'）を格納します。

エラー情報ファイル，及びエラーデータファイルを参照する場合の注意事項

DECIMAL型の符号正規化機能を使用した場合，エラー情報ファイルに出力されるエラーデータのダンプイメージリスト，及びエラーデータファイルに出力される入力データ中のDECIMAL列は，pdloadがエラーを検知した列までは正規化された値で出力されます。

(11)　抽象データ型がある表へのデータロード

プラグインが提供する抽象データ型列がある表の場合は，コンストラクタ関数を呼び出して，該当する列へ格納する値を生成しデータロードできます。ただし，コンストラクタ関数が共用ライブラリで作成されていない場合はデータロードできません。

ユーザが定義した抽象データ型列がある表の場合は，該当する列へ格納する値の生成ができないため，データロードできません。

抽象データ型列がある表にバイナリ形式の入力データファイルを使ってデータロードする場合は，UOCを利用したデータロードはできません。

(12)　リバランス表へのデータロード

リバランス表にRDエリアを追加した場合，そのリバランス表に対してpdrbalを実行（リターンコード=0）していないと，追加したRDエリアへのデータロード（RDエリア単位のデータロード）はできません。

また，フレキシブルハッシュ分割表にデータロードする場合，ハッシュグループを無視して格納するため，pdrbalで再配置するデータがハッシュキー値とリンクしません。

(13)　改竄防止表へのデータロード

改竄防止表にデータロードする場合，次の注意事項があります。

-dオプションは指定できません。

データロード対象となるRDエリアがデータ未完状態の場合，データロードできません。データ未完状態とは，改竄防止表に対する表の再編成中にエラーなどが発生し，表の再編成処理が完了していない状態のことをいいます。

挿入履歴保持列（SYSTEM GENERATED指定の列）には，pdloadの実行を開始した日時（pdloadを実行したホストの日時）が格納されます。

挿入履歴保持列に対して入力データを指定しても無視されます。

(14)　トリガが定義されている表へのデータロード

pdloadの実行でトリガは動作しません。pdloadを実行する前に，表に定義されているトリガ定義の内容を確認してください。

(15)　一時表へのデータロード

一時表に対して，データロードはできません。一時表を指定して実行すると，pdloadはKFPL15031-Eメッセージを出力して，エラー終了します。

5.12.2　注意事項

(1)　ユティリティ実行後の結果について

pdloadの結果は，pddbstで確認できます（UAPの実行，又はpdrorgでのアンロードでも確認できます）。また，pdloadの処理が終了した場合は，リターンコードが返ります。pdloadのリターンコードと，監査証跡表にpdloadを実行した場合のリターンコードを次の表に示します。

表5‒52　pdloadのリターンコード

リターンコード

意味

対処方法

0

正常終了。

入力データファイル中のすべてのデータをデータロードしました。

なし。

正常終了。

入力データファイルの全データを，分割入力データファイルに出力しました。

分割入力データファイルを使用して，RDエリア単位にデータロードをしてください。

4

入力データのエラー。

入力データファイル中の一部のデータにエラーがあるため，データロードの処理をスキップしました。

エラー情報ファイルを参照し，入力データファイルのエラーデータを修正してから，再度データロードを実行してください。

入力データのエラー。

入力データファイル中の正常なデータは分割入力データファイルに出力しましたが，一部のエラーデータは分割入力データファイルに出力していません（-eオプション指定時は，エラーデータ検知時点まで分割入力データファイルに出力）。

エラー情報ファイルを参照し，入力データファイルのエラーデータを修正してから，再度分割入力データファイルを作成してください。

8

入力データエラー。

option文のdataerrオペランドを指定した場合は，入力データファイル中にエラーがあるため，データロード処理をロールバックしました。

エラーの入力データを修正して，再度データロードを実行してください。

キー重複エラー。

インデクスの一括作成中にキー重複エラーを検知しました。

バックアップからDBを回復して，エラーの入力データを修正してください。その後，再度データロードを実行してください。

異常終了。

エラーが発生したため，データロードの処理を途中で終了しました。

エラー原因を取り除いて，再度データロードを実行してください。

異常終了。

入力データファイルのデータを，分割入力データファイルに出力できませんでした。

エラーメッセージを参照してエラーの原因を取り除いて，再度分割入力データファイルを作成してください。

表5‒53　pdloadのリターンコード（監査証跡表の場合）

リターンコード

意味

対処方法

0

正常終了。

srcuoc文に指定した監査証跡ファイルの全世代のデータを監査証跡表にデータロードしました。

なし。

4

警告終了。

srcuoc文に指定した監査証跡ファイルの中で，データロード待ち状態のファイルは監査証跡表にデータロードしましたが，閉塞又はデータロード済み状態のファイルはデータロードの処理をスキップしました。

監査証跡ファイルが閉塞状態でスキップした場合，閉塞の原因を取り除いて，再度データロードを実行してください。

監査証跡ファイルがデータロード済み状態でスキップした場合，通常はデータロード済みのため対処は不要です。あえてデータロードする必要があるときは，srcuoc文のmodeオペランドにforceを指定して再度実行してください。

8

異常終了。

エラーが発生したため，データロードの処理を途中で終了しました。

エラー原因を取り除いて，再度データロードを実行してください。

(2)　ユティリティ実行中の処理の中断について

pdload実行中に処理を中断したい場合は，pdcancelコマンドを使用します。なお，pdloadが無応答障害（定例ジョブなど，一定時間でデータロード処理が終わるはずなのに終わらない）と判断して強制終了させる場合は，pdlsコマンド（-d rpc -a指定）の表示結果をリダイレクトでファイルに取得した後，pdcancel -dコマンドを実行してください。

この場合，作成モード（-dオプション指定）でpdloadを実行しているときは，表の格納データはすべて削除されます。また，追加モード（-dオプションなし）でpdloadを実行しているときは，処理がロールバックされます。

再編成時期予測機能を使用している場合，pdloadをkillコマンドなどのシグナル割り込みで強制終了すると，運用履歴表が更新できません。再編成時期予測機能を使用している場合にpdloadを終了させるときは，必ずpdcancelコマンドを使用してください。

(3)　EasyMTにLOB入力ファイルを用意する場合のLOB列構成基表の作成順について

EasyMTにLOB入力ファイルを用意する場合，作成するLOB列構成基表の作成順の行と列を考慮する必要があります。作成順に関係なくランダムに用意した場合，LOB入力ファイルのサーチ処理で多大な時間が掛かります。

(4)　LOB列構成基表及びLOB列のRDエリアとバッファなどの資源について

LOB列がある表にデータロードする場合，LOB列構成基表，及びLOB列のRDエリアとバッファなどの資源は，すべて準備しておく必要があります。LOB列構成基表だけを作成する場合も同様です。

(5)　ユティリティ実行時に使用できるファイルの媒体について

pdload実行時に使用できるファイルの媒体を次に示します。なお，通常ファイルを使用する場合，ファイルのオープン処理に伴い，OSのオペレーティングシステムパラメタ（カーネルパラメタ）のmaxfiles，nfile，及びnflocksを消費します。

ファイル

通常ファイル

固定長ブロックテープ

可変長ブロックテープ

入力データファイル

○

○※1※2

○※2

制御情報ファイル

○

×

×

列構成情報ファイル

○

×

×

ナル値・関数情報ファイル

○

×

×

エラー情報ファイル

○

×

×

エラーデータファイル

○

×

×

LOB入力ファイル

○

×

○

LOB中間ファイル

○

×

×

インデクス情報ファイル

○

×

×

ソート用ワークファイル

○

×

×

処理結果ファイル

○

×

×

（凡例）

○：使用できます。

×：使用できません。

注※1

バイナリ形式，及び固定長データ形式の場合は，使用できません。

注※2

pdrorg用アンロードファイルの場合は，使用できません。

(6)　データ連動の対象となる抽出側データべースへのユティリティ実行について

データ連動の対象となる抽出側データべースに対してpdloadを実行する場合，次の点に注意してください。

既にある表に対して，作成モードで実行しないでください（-dオプションを指定しないでください）。

既にある表に対して，追加モードでデータを追加する場合には，ログ取得モードで実行してください（-lオプションにはaを指定してください）。

HiRDB Datareplicator連携の対象となる表を新規に追加する場合，ログ取得モードで実行してください（-lオプションにはaを指定してください）。

(7)　ラージファイルの利用について

ラージファイルを利用すると，1ファイル2ギガバイトを超えるファイルを使用できます。pdloadで使用するファイルのラージファイル利用可否を次の表に示します。なお，プロセスが生成できるファイルサイズの上限は，OSの設定値が有効となります。

HiRDB管理者及びルートユーザでのシステム資源の制限値は，生成するファイルサイズより大きな値，又は無制限にしてください。特に，AIXはデフォルトのファイルサイズが1ギガバイトのため，注意が必要です。システム資源の制限値は，OSのlimitコマンド又はulimitコマンドで確認できます。AIXでファイルサイズ制限を変更する場合，/etc/security/limitsファイルの修正も必要です。詳細については，各OSのマニュアル，及びシェルのマニュアルを参照してください。なお，HiRDBはOSのinitから起動されるプロセスのため，ルートユーザが変更した値を有効にするにはOSの再起動が必要です。

表5‒54　pdloadで使用するファイルのラージファイル利用可否

ファイル種別

ラージファイルの利用可否

入力データファイル

○

エラー情報ファイル

○

エラーデータファイル

○

LOB入力ファイル

○

LOB中間ファイル

○

インデクス情報ファイル

○

ソート用ワークファイル

○

MT属性定義ファイル

×

処理結果ファイル

○

SQL定義ファイル

○

（凡例）

○：利用できます。

×：利用できません。

(8)　行の最後がコンマ（，）で終わっているDAT形式の入力データファイルをデータロードする場合について

行の最後がコンマ（，）で終わっているDAT形式の入力データファイルをデータロードする場合に，「列数が不一致」などの理由でデータロードできないときがあります。このような場合は，列構成情報ファイルに表の列名をすべて記述して，最後にスキップデータ文を記述します。この場合，入力データの修正は不要です。

なお，表の列数が多く列構成情報ファイルの記述が大変なときは，次の方法で作成できます。

SQL Executerを使用して表の列名をファイルに出力します。

該当する表の列名をファイルに出力する場合，列定義順に出力する必要があるため，SQL文の記述は次のようにしてください。

PUTFILE TO ファイル名 SELECT COLUMN_NAME FROM MASTER.SQL_COLUMNS

WHERE TABLE_NAME='表名' ORDER BY COLUMN_ID;

1.で編集した結果を出力したファイル名の最後の行に，スキップデータ文を追記します。

(9)　プラグインインデクスが定義してある表へのデータロードについて

プラグインインデクスが定義してある表にログレスモードでデータロードする場合，及びインデクス一括作成モードで追加データロードをする場合は，ユティリティの異常終了に備え，実行前に必ず処理対象の表が格納されているRDエリア（LOB用も含む）とインデクス格納RDエリアの両方のバックアップを取得してください。バックアップを取得しておかないと，障害が発生したときにRDエリアの回復ができないため，初期状態からの再作成が必要になります。

インデクス一括作成機能（-i cオプション指定）を使用してプラグインインデクスを作成する場合，「プラグインインデクス一括作成部分回復機能」をプラグインが提供していれば，ユティリティの異常終了時に取得したログを使用してロールバックによるインデクスの回復ができます。この機能が提供されていない場合，ロールバックでの回復はできないため，インデクスは全件作り直しとなります。

プラグインインデクス遅延一括作成機能を使用する場合，クライアント環境定義PDPLGIXMKにYESを指定してUAPを実行した表に対しては，データベース再編成ユティリティでインデクスを一括作成した後でないと，追加モードでのpdloadは実行できません。ただし，作成モードでのpdloadは実行できます。

また，この機能で使用するインデクス情報ファイル出力ディレクトリ（pd_plugin_ixmk_dir指定ディレクトリ）を，pdloadが使用するファイル出力領域として使用しないでください。

(10)　HiRDB Text Search Plug-inの差分インデクス機能を使用している場合について

HiRDB Text Search Plug-inの差分インデクス機能を使用している場合，クライアント環境定義PDPLUGINNSUBの指定によって，pdloadが更新するインデクスを次に示します。

既存データの有無

PDPLUGINNSUBの指定

Y

N

設定なし

既存データなし（作成モードのデータロード）

Ｍ

Ｍ

Ｍ

既存データあり（追加モードのデータロード）

Ｓ

Ｍ

Ｓ

（凡例）

Ｍ：MASTERインデクスを更新

Ｓ：差分インデクスを更新

(11)　ユニークキーインデクス又は主キーインデクスを定義した表へのデータロードについて

ユニークキーインデクス又は主キーインデクスを定義した表にデータロードをする場合は，次に示す注意が必要です。

入力データファイル中にキー値が重複するデータがある場合，インデクス更新モード以外のモードでデータロードをしないでください。

インデクス一括作成モード，インデクス情報出力モード，又はインデクス情報出力抑止モードでデータロードをすると，データを表に格納し，インデクスのキー情報をインデクス情報ファイルに出力します。

この段階ではキー値の重複チェックはされません。キー値の重複チェックは，その後のインデクスデータの格納段階でされます。

キー値が重複していると，インデクスの作成処理はロールバックされますが，データは既に格納されています（コミットされて元に戻りません）。この場合，バックアップを使用してRDエリアを回復する必要があります。

したがって，キー値の重複データがある入力データファイルを使用してデータロードをする場合は，必ずインデクス更新モードを指定してください。このモードはデータを格納するごとにインデクスを更新するのでキー値の重複をすぐに検知し，該当するデータはデータベースに格納しません。

なお，デフォルト値がインデクス一括作成モードになっているので注意してください。

(12)　データロード対象の表を基にリストを作成している場合について

データロード対象の表を基にリストを作成している場合，データロード後にリストを使用して検索したときには，次のような現象が発生します。

誤った行を取り出す。

検索した行が見付からない。

このような場合，リストを使用して検索する前に，リストを再作成する必要があります。

(13)　コマンド実行画面に出力されるメッセージ

pdloadは，標準出力に経過メッセージを出力しながら処理をします。また，エラー発生時は，標準エラー出力にエラーメッセージを出力します。標準出力や標準エラー出力への出力が抑止されている環境でpdloadを実行した場合，メッセージ出力待ちでpdloadが無応答状態となったり，メッセージログファイルにKFPL20003-Eメッセージを出力してpdloadが異常終了したりすることがあります。そのため，標準出力や標準エラー出力への出力ができない環境ではpdloadを実行しないでください。なお，標準出力，及び標準エラー出力に出力するメッセージの順序や数は，メッセージログファイルやsyslogfileと一致しないことがあります。正確にメッセージを把握したい場合は，メッセージログファイル又はsyslogfileを参照してください。

(14)　共用表へのデータロード

共用表にデータロードする場合，共用表，及び処理対象の表に定義した共用インデクスを格納しているRDエリアに対して，EXモードで排他を掛けます。そのため，該当するRDエリアに定義したほかの表やインデクスも参照，及び更新ができません。共用表に対してデータロードする場合の排他制御モードについては，「ユティリティの排他制御モード」を参照してください。

(15)　参照制約又は検査制約を定義した表へのデータロード

参照制約又は検査制約を定義した表に対してデータロードする場合，pdloadはデータの整合性が保たれているかどうかのチェックをしません。そのため，データロードする場合は，pdconstckを使用して整合性を確認する必要があります。表の整合性確認手順については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

(16)　うるう秒を含んだ時刻データ又は時刻印データのデータロード

うるう秒を含んだ時刻データ又は時刻印データをデータロードする場合，pd_leap_secondオペランドをYにしてください。このオペランドをYにすることによって，時刻データ，又は時刻印データの秒で指定できる範囲が0〜61秒になります。

(17)　再編成時期予測機能との関係

作成モード（-d指定）のデータロードをすると，再編成時期予測機能の結果に表やインデクスのデータを削除した運用履歴が反映されます。

また，pdloadが異常終了した状態のまま，pddbstの状態解析結果蓄積機能を実行すると，データロード完了後の状態で再編成時期を予測できないため，予測結果が不正※となります。したがって，pdloadが異常終了した場合は，pdloadを再実行して正常終了させた状態で，pddbstの状態解析結果蓄積機能を実行してください。

注※

例えば，データロード中に異常終了してロールバックした状態のDBの情報を蓄積すると，空のDBを基に予測してしまいます。

(18)　分割キー構成列に対して順序数生成子を指定したRDエリア単位データロード

分割キー構成列に対して順序数生成子を指定したRDエリア単位でのデータロードはできません。実行した場合は処理を続行します。その結果，入力データファイルのデータがデータベースに格納できない場合があります。

5.12.3　特定機能使用時のオプション，及び制御文の指定可否

pdloadの特定機能を使用する場合，オプション，及び制御文の指定可否が変わります。特定機能とは次の機能をいいます。

監査証跡表へのデータ登録

分割入力データファイルの作成

特定機能使用時のオプション，及び制御文の指定可否を次の表に示します。なお，監査証跡表へのデータ登録については，マニュアル「HiRDB システム運用ガイド」を参照してください。

表5‒55　特定機能使用時のオプションの指定可否

オプション

指定可否

監査証跡表へのデータ登録

分割入力データファイルの作成

-d

○

×

-a

×

○（入力データファイルが固定長データ形式の場合-aを指定）

-b

◎（-bを指定）

×

-W

◎

×

-w

×

×

-U

×

×

-i

○

×

-l

○

×

-k

×

×

｛-c｜-v｝

○（-vを指定）

○（入力データファイルが固定長データ形式の場合-cを指定）

-n

○

×

-u

○

○

-x

○

×

-f

×

×

-s

×

○

-e

×

○

-r

×

×

-z

○（省略した場合でも指定したと仮定）

○

-y

○

×

-o

○

×

-m

○

○

-X

○

○

-q

×

×

-K

×

×

-G

×

×

（凡例）

◎：必ず指定します。

○：任意に指定できます。

×：指定できません。

表5‒56　特定機能使用時の制御文の指定可否

制御文

オペランド

指定可否

監査証跡表へのデータ登録

分割入力データファイルの作成

mtguide

−

×

×

emtdef

−

×

×

source

−

◎（(uoc)を指定）

◎（入力データファイルを指定）

index

−

○

×

idxwork

−

○

×

sort

−

○

×

lobdata

−

×

×

lobcolumn

−

×

×

lobmid

−

×

×

srcuoc

−

◎

×

array

−

○

○

extdat

−

×

○

src_work

−

×

◎

option

spacelvl

○

○

tblfree

○

×

idxfree

○

×

job

×

×

cutdtmsg

×

×

nowait

○

×

bloblimit

×

×

exectime

○

○

null_string

×

×

divermsg

×

×

dataerr

×

×

lengover

×

○

（凡例）

◎：必ず指定します。

○：任意に指定できます。

×：指定できません。

−：該当しません。

5.12.4　BOMを持つファイルの使用

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdloadの入力ファイルには，BOMを持つファイルを使用できることがあります。pdloadでのBOMを持つファイルの使用可否を次の表に示します。なお，pdloadの入力ファイルとしてBOMを持つファイルを使用しても，BOMは読み飛ばされます。また，pdloadで出力されるファイルにはBOMは付きません。

表5‒57　pdloadでのBOMを持つファイルの使用可否（UTF-8の場合）

オプション又は制御文

入力ファイル

BOMを持つファイルの使用

-c

列構成情報ファイル

○

-v

ナル・関数情報ファイル

○

−

制御情報ファイル

○

emtdef

MT属性定義ファイル

×

source

入力データファイル

DAT

○

拡張DAT

○

バイナリ

×

固定長

×

pdrorg -W生成

×

EasyMT情報ファイル

×

index

インデクス情報ファイル

×

lobdata

LOB入力ファイル

×

lobcolumn

列単位LOB入力ファイル

×

lobmid

LOB中間ファイル

×

−

SQL定義ファイル

×

（凡例）

○：使用できます。

×：使用できません。

−：該当しません。

5.12.5　制御文で指定しない場合のファイル出力先ディレクトリ

pdload実行時，制御情報ファイルでファイル出力先を指定しない場合，次の表に示すディレクトリにファイルを出力します。

なお，SQL定義ファイルは制御情報ファイルで出力先を指定できません。SQL定義ファイルの出力先は，次の表に示す，制御文の指定をしない場合と同様です。

表5‒58　pdloadがファイルを出力するディレクトリ

制御文※１の指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIR※２の指定

あり

なし

あり

制御文に指定したディレクトリ又はファイル

なし

pd_tmp_directoryに指定したディレクトリ

TMPDIRに指定したディレクトリ

/tmpディレクトリ

注※1　

source文（errorオペランド），index文，idxwork文，sort文，lobmid文，又はlobmid文（errorオペランド）

注※2　

init（OSのプロセス）から起動されたプロセスサーバプロセス（pdprcd）に設定される環境変数

5.13　エラー時のデータベースの状態とその回復方法

データロード中にエラーが発生した場合の，データベースの状態とその回復方法を次の表に示します。

表「データベースの状態とその回復方法（データロード中にエラーが発生した場合）（1/3）」

表「データベースの状態とその回復方法（データロード中にエラーが発生した場合）（2/3）」

表「データベースの状態とその回復方法（データロード中にエラーが発生した場合）（3/3）」

また，LOB列へのデータロード中にエラーが発生した場合の，データベースの状態とその回復方法を表「データベースの状態とその回復方法（LOB列へのデータロード中にエラーが発生した場合）」に示します。また，入力データエラー時の，データベースの状態とその回復方法を表「データベースの状態とその回復方法（入力データエラーの場合）」に示します。

表中の区分の状態とは，エラー発生時のデータベースの状態を示します。また，回復とは，回復方法を示します。

回復方法の実施は，発生したエラー原因を取り除いた後に行ってください。

表5‒59　データベースの状態とその回復方法（データロード中にエラーが発生した場合）（1/3）

オプション

区分

エラー発生直前の出力メッセージ

-l

-i

1.

2.

3.

なし（制御文エラーは除く）

KFPL00721-I

行データ削除

KFPL00702-I

データロード開始

a又はp

s

状態

実行前の状態

空

空

回復

再実行

再実行

再実行

c

状態

実行前の状態

空

空

回復

再実行

再実行

再実行

n

状態

実行前の状態

空

空

回復

再実行

再実行

再実行

x

状態

実行前の状態

空

空

回復

再実行

再実行

再実行

n

s

状態

保証なし

保証なし

保証なし

回復

DB回復後再実行

DB回復後再実行

DB回復後再実行

c

状態

保証なし

保証なし

保証なし

回復

DB回復後再実行

DB回復後再実行

DB回復後再実行

n

状態

保証なし

保証なし

保証なし

回復

DB回復後再実行

DB回復後再実行

DB回復後再実行

x

状態

保証なし

保証なし

保証なし

回復

DB回復後再実行

DB回復後再実行

DB回復後再実行

表5‒60　データベースの状態とその回復方法（データロード中にエラーが発生した場合）（2/3）

オプション

区分

エラー発生直前の出力メッセージ

-l

-i

4.

5.

6.

KFPL00800-I

同期点通知

KFPL15225-E

ロールバック

KFPL24510-E

エラーデータ検知

a又はp

s

状態

KFPL00800-Iに出力された行まで格納済み

3.又は4.の状態

KFPL15225-Eが出力されている場合は5.の状態。

出力されていない場合は，KFPL24509-Eに出力された行の直前の行まで格納済み。

回復

再実行

再実行

5.の状態の場合は再実行。

途中まで行が格納されている場合は，-rオプション指定で再実行。※

c

状態

KFPL00800-Iに出力された行まで格納済み

3.又は4.の状態

KFPL15225-Eが出力されている場合は5.の状態。

出力されていない場合は，KFPL24509-Eに出力された行の直前の行まで格納済み。

回復

再実行

再実行

5.の状態の場合は再実行。

途中まで行が格納されている場合は，-rオプション指定で再実行。※

n

状態

KFPL00800-Iに出力された行まで格納済み

3.又は4.の状態

KFPL15225-Eが出力されている場合は5.の状態。

出力されていない場合は，KFPL24509-Eに出力された行の直前の行まで格納済み。

回復

再実行

再実行

5.の状態の場合は再実行。

途中まで行が格納されている場合は，-rオプション指定で再実行。※

x

状態

KFPL00800-Iに出力された行まで格納済み

3.又は4.の状態

KFPL15225-Eが出力されている場合は5.の状態。

出力されていない場合は，KFPL24509-Eに出力された行の直前の行まで格納済み。

回復

再実行

再実行

5.の状態の場合は再実行。

途中まで行が格納されている場合は，-rオプション指定で再実行。※

n

s

状態

−

保証なし

KFPL15225-Eが出力されている場合は5.の状態。

出力されていない場合は，KFPL24509-Eに出力された行の直前の行まで格納済み。

回復

−

DB回復後再実行

5.の状態の場合は再実行。

途中まで行が格納されている場合は，-rオプション指定で再実行。※

c

状態

−

保証なし

KFPL15225-Eが出力されている場合は5.の状態。

出力されていない場合は，KFPL24509-Eに出力された行の直前の行まで格納済み。

回復

−

DB回復後再実行

5.の状態の場合は再実行。

途中まで行が格納されている場合は，-rオプション指定で再実行。※

n

状態

−

保証なし

KFPL15225-Eが出力されている場合は5.の状態。

出力されていない場合は，KFPL24509-Eに出力された行の直前の行まで格納済み。

回復

−

DB回復後再実行

5.の状態の場合は再実行。

途中まで行が格納されている場合は，-rオプション指定で再実行。※

x

状態

−

保証なし

KFPL15225-Eが出力されている場合は5.の状態。

出力されていない場合は，KFPL24509-Eに出力された行の直前の行まで格納済み。

回復

−

DB回復後再実行

5.の状態の場合は再実行。

途中まで行が格納されている場合は，-rオプション指定で再実行。※

（凡例）

−：該当するオプションを指定した場合，該当するメッセージは出力されないことを示します。

注※

-rオプション指定で再実行する場合，-dオプションは指定しないでください。

表5‒61　データベースの状態とその回復方法（データロード中にエラーが発生した場合）（3/3）

オプション

区分

エラー発生直前の出力メッセージ

-l

-i

7.

8.

9.

KFPL00703-I

データロード完了

KFPL00715-I

インデクスの作成開始

KFPL00716-I

インデクスの作成完了

a又はp

s

状態

表及びインデクス作成完了

−

−

回復

不要※１

−

−

c

状態

表作成完了

表作成完了

表及びインデクス作成完了

回復

pdrorg -k ixmkで，インデクスの一括作成を実行

pdrorg -k ixmkで，インデクスの一括作成を実行※２

不要※１※２

n

状態

表作成完了

−

−

回復

pdrorg -k ixmkで，インデクスの一括作成を実行※１

−

−

x

状態

表作成完了

−

−

回復

pdrorg -k ixmkで，インデクスの一括作成を実行※１

−

−

n

s

状態

表作成完了

−

−

回復

pdrorg -k ixmkで，インデクスの一括作成を実行※１

−

−

c

状態

表作成完了

表作成完了

表及びインデクス作成完了

回復

DB回復後再実行※３

DB回復後再実行※３

不要※１

n

状態

表作成完了

−

−

回復

pdrorg -k ixmkで，インデクスの一括作成を実行※１

−

−

x

状態

表作成完了

−

−

回復

pdrorg -k ixmkで，インデクスの一括作成を実行※１

−

−

（凡例）

−：該当するオプションを指定した場合，該当するメッセージは出力されないことを示します。

注※1

-k d以外でLOB列にデータロードしている場合，表「データベースの状態とその回復方法（LOB列へのデータロード中にエラーが発生した場合）」も参照してください。

注※2

インデクス格納用RDエリアが複数ある場合，KFPL00716-Iメッセージが出力されたインデクスが作成済みですが，出力されていないインデクスは未作成となります。未作成のインデクスに対してインデクスの一括作成を実行してください。

注※3

表格納用RDエリアとインデクス格納用RDエリアが異なる場合，表格納用RDエリアのログレス閉塞を解除した後，インデクス格納用RDエリアを再初期化してpdrorg -k ixrcを実行してもかまいません。

表5‒62　データベースの状態とその回復方法（LOB列へのデータロード中にエラーが発生した場合）

制御文

-lオプション

区分

エラー発生直前の出力メッセージ

KFPL00707-I

LOB列へのデータロード開始

KFPL00708-I

LOB列へのデータロード完了

LOB列構成基表とLOB列を同時にデータロードする場合：

source文

lobmid文

lobdata文

a又はp

状態

USER

LOB列構成基表とインデクス作成完了

表作成完了

ULOB

-dオプション指定の場合は空。なしの場合は実行前状態。

LOB列作成完了

回復

USER

不要

不要

ULOB

LOB列にだけデータロード※２

不要※２

n

状態

USER

ログレス閉塞

表作成完了

ULOB

保証なし

LOB列作成完了

回復

USER

DB回復後再実行※１

不要

ULOB

DB回復後再実行※１

不要

LOB列にだけデータロードする場合：

lobmid文

lobdata文

a又はp

状態

USER

−

−

ULOB

実行前状態（-dオプションは無視されます）

LOB列作成完了

回復

USER

−

−

ULOB

再実行

不要

n

状態

USER

−

−

ULOB

保証なし

LOB列作成完了

回復

USER

−

−

ULOB

DB回復後再実行

不要

（凡例）

−：該当するオプションを指定した場合，該当するメッセージは出力されないことを示します。

USER：ユーザ用RDエリア

ULOB：ユーザLOB用RDエリア

注※1

ログレスモードの場合，LOB列へのデータロード中に異常終了したときでも，表（LOB列構成基表，LOB列，LOB属性の抽象データ型列，及びインデクス）をバックアップから回復した後，再度，LOB列構成基表，及びLOB列へデータロードする必要があります。

注※2

ユーザLOB用RDエリアが複数ある場合，KFPL00708-Iメッセージが出力されているLOB列は作成済みとなります。出力されていないLOB列は未作成のため，未作成のLOB列に対してデータロードを実行してください。

表5‒63　データベースの状態とその回復方法（入力データエラーの場合）

-eオプション

source文のerrdataオペランド

区分

ロールバック不要エラー

(リターンコード4で終了)

ロールバック要エラー

(リターンコード8で終了)

なし

なし

状態

エラー情報ファイルに出力された行以外はDBに格納済み

-l n以外の場合はpdload実行前状態。

-l nの場合は保証なし。

回復

入力データファイル中の該当するデータを別ファイルにして修正し，再度データロード

-l n以外の場合は，入力データを修正して再度データロード。

-l nの場合は，DB回復後，入力データを修正して再度データロード。

あり

状態

エラー情報ファイルに出力された行以外はDBに格納済み

-l n以外の場合はpdload実行前状態。

-l nの場合は保証なし。

回復

エラーデータファイルに出力されたデータを修正し，再度データロード

-l n以外の場合は，入力データを修正して再度データロード。

-l nの場合は，DB回復後，入力データを修正して再度データロード。

あり

該当しません

状態

KFPL24509-Eに出力された行の直前までDBに格納済み

-l n以外の場合はpdload実行前状態。

-l nの場合は保証なし。

回復

KFPL24509-Eに出力された行のデータを修正して，-rオプション指定で再度データロード

-l n以外の場合は，入力データを修正して再度データロード。

-l nの場合は，DB回復後，入力データを修正して再度データロード。

注

ロールバック要エラーには，LOB列格納データエラー，可変長文字列の長さ部が負の値，及び繰返し列の要素数が負の値があります。

インデクス更新モード（-i s）以外でのキー値重複エラーは，入力データエラーではなく，表とインデクスが不一致となるDB破壊エラーとなります。回復方法は，DBをpdload実行前の状態に戻して，入力データを修正し，再度データロードをしてください。

5.14　使用例

データベース作成ユティリティの使用例を次の表に示します。

表5‒64　データベース作成ユティリティの使用例

使用例

内　　容

区分

例1

非横分割表へのデータロード

入力データファイルがDAT形式の場合と固定長データ形式の場合とで説明しています。

列構成情報ファイルを使用します。

S

例2

横分割表への表単位のデータロード

S

例3

横分割表へのRDエリア単位のデータロード

S

例4

横分割表への表単位のデータロード

入力データファイルはユティリティ専用ユニットにあるものとします。

S

例5

LOB列がある表へのデータロード

LOB列構成基表とLOB列へ同時にデータロードします。

S

例6

LOB列がある表へのデータロード

LOB列構成基表だけデータロードします。

S

例7

LOB列がある表へのデータロード

LOB列だけデータロードします。

S

例8

監査証跡表へのデータロード

監査証跡表に対して，データロード待ちの監査証跡ファイルをデータロードします。

S

例9

自動採番機能を使用したデータロード

S

例10

非横分割表へのデータロード

入力データファイルはフロントエンドサーバにあるものとします。

P

例11

横分割表への表単位のデータロード

入力データファイルはフロントエンドサーバにあるものとします。

P

例12

横分割表へのRDエリア単位のデータロード

入力データファイルは，それぞれのバックエンドサーバにあるものとします。

P

例13

LOB列がある表へのデータロード

LOB列構成基表とLOB列へ同時にデータロードします。

表は横分割表で，RDエリア単位にデータロードします。

入力データファイルは，データロード対象のRDエリアがあるバックエンドサーバにあるものとします。

P

例14

LOB列がある表へのデータロード

列単位LOB入力ファイルを使用します。

表は横分割表で，表単位にデータロードします。

入力データファイルはフロントエンドサーバにあるものとします。

P

例15

EasyMTを使用したデータロード

表は横分割表で，表単位にデータロードします。

入力データファイルはフロントエンドサーバにあるものとします。

P

例16

繰返し列がある表へのデータロード

表は横分割表で，表単位にデータロードします。

表にはクラスタキーインデクスが定義されていて，入力データの順序がクラスタキー順になっていることが分かっているため，クラスタキー順のチェックをしないオプションを指定します。

P

例17

プラグイン使用時の表へのデータロード

表にはSGMLTEXT型の列があります。

入力データファイルはDAT形式です。

コンストラクタ関数の情報を指定するため，列構成情報ファイルを使用します。

P

例18

プラグイン使用時の表へのデータロード

表にはGEOMETRY型の列があります。

入力データファイルは固定長データ形式です。

入力データファイルが固定長データ形式である，また，コンストラクタ関数の情報を指定するため，列構成情報ファイルを使用します。

P

例19

プラグイン使用時の表へのデータロード

表にはSGMLTEXT型の列と，LOB列があります。

LOBパラメタは入力データファイル中に直接記述し，LOB入力ファイルはファイル名を入力データファイル中に記述してLOB入力ファイルを別に用意するものとします。

P

例20

プラグイン使用時の表へのデータロード

表にはSGMLTEXT型の列と，LOB列があります。

先にLOB列構成基表だけデータロードします。その後，各バックエンドサーバで並列にLOB列へデータロードします。

LOBパラメタは入力データファイル中に直接記述し，LOB入力ファイルはファイル名を入力データファイル中に記述してLOB入力ファイルを別に用意するものとします。

P

例21

監査証跡表へのデータロード

監査証跡表に対して，データロード待ちの監査証跡ファイルをデータロードします。

P

（凡例）

S：HiRDB/シングルサーバ

P：HiRDB/パラレルサーバ

5.14.1　HiRDB/シングルサーバの場合

(1)　表へのデータロード

例1

表（TABLE1）にデータロードします。この例では，入力データファイルがDAT形式の場合と，固定長データ形式の場合について説明します。
なお，次の表及びインデクスが定義されているものとします。
表の定義
  CREATE TABLE TABLE1(C1 INT,C2 CHAR(8),C3 INT) IN PDB USER01
インデクスの定義
  CREATE INDEX INDEX1 ON TABLE1(C1) IN PDBUSER03

［概要］

［入出力ファイルとRDエリアの関連図］

(a)　入力データファイルがDAT形式の場合

［入力データファイルの内容］

 1,ABCDEFG,99999,
 2,a,-1,
 3,XYZ,100,
     :

［実行するコマンドの説明］

表（TABLE1）へデータロードします。

column_inf：列構成情報ファイルの名称

control_file：制御情報ファイルの名称

［列構成情報ファイル（column_inf）の内容］

 C1                  1
 C2                  1
 C3                  1
 *skipdata*          2

［説明］

入力データをTABLE1の列（C1，C2，C3）の順に格納

行の末尾のセパレータ文字を無視させるためのスキップデータ文

［制御情報ファイル（control_file）の内容］

 source /usr/load_file1 error=/usr/err1          1
 index INDEX1 /usr/index_inf1                    2
 sort /usr/sortwork                              3

［説明］

入力データファイル，及び入力データエラーがあった場合にエラーを出力するファイルの指定

/usr/load_file1：入力データファイルの名称

/usr/err1：エラー情報ファイルの名称

インデクス情報を出力するインデクス情報ファイルの指定

INDEX1：インデクス識別子

/usr/index_inf1：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(b)　入力データファイルが固定長データ形式の場合

［入力データファイルの内容］

 1  ABCDEFG  99999
 2  a        -1
 3  XYZ      100
       :

注　行末に改行記号があります。

［実行するコマンドの説明］

表（TABLE1）へデータロードします。

-a：入力データファイルが固定長データ形式の場合の指定

column_inf：列構成情報ファイルの名称

control_file：制御情報ファイルの名称

［列構成情報ファイル（column_inf）の内容］

 C1,type=char(3)              1
 C2,type=char(8)              1
 C3,type=char(6)              1
 *skipdata*,length=1          2

［説明］

入力データの列のデータ型を記述

改行記号を格納しないようにするためのスキップデータ文

［制御情報ファイル（control_file）の内容］

 source /usr/load_file1 error=/usr/err1          1
 index INDEX1 /usr/index_inf1                    2
 sort /usr/sortwork                              3

［説明］

入力データファイル，及び入力データエラーがあった場合にエラーを出力するファイルの指定

/usr/load_file1：入力データファイルの名称

/usr/err1：エラー情報ファイルの名称

インデクス情報を出力するインデクス情報ファイルの指定

INDEX1：インデクス識別子

/usr/index_inf1：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(c)　入力データファイルが固定長データ形式固有のデータ形式の場合

表（TABLE2）にデータロードします。この例では，入力データファイルが固定長データ形式固有のデータ形式の場合について説明します。
表の定義
  CREATE TABLE TABLE2(C1 DECIMAL(7,2),
                      C2 CHAR(10),
                      C3 DECIMAL(10,4));

［入力データファイル（/usr/input_file）の内容］

バイナリエディタで参照した場合の入力データファイルの内容です。16進数で表現されています。データの先頭から7バイトがC1列に格納されるデータです。8バイト〜17バイトがC2列に，18バイト〜22バイトがC3列に格納されます。

303030303130304142434445464748494a00000001
202020202020206162636465666768696a00000002
303030303330302020202020202020202000000003

［実行するコマンドライン］

pdload -a -c column_inf TABLE2 control_file

［実行するコマンドの説明］

表（TABLE2）へデータロードします。

-a：入力データファイルが固定長データ形式の場合の指定

column_inf：列構成情報ファイルの名称

control_file：制御情報ファイルの名称

［列構成情報ファイル（column_inf）の内容］

 C1,type=adec(7,2)            1
 C2,type=char(10)             2
 C3,type=bdec(4)              3

［説明］

文字列形式の数値で記述した，小数点の無いデータの長さは7バイト，後方から2バイトは小数点以下の値としてDECIMAL(7,2)に格納

長さ10バイトのデータをCHAR(10)に格納

長さ4バイトの領域に格納した2進数のデータをDECIMAL(10,4)に格納

［制御情報ファイル（control_file）の内容］

 option allspace=zero                                         1
 source /usr/input_file error=/usr/err                        2

［説明］

DECIMAL列に格納する入力データが空白の場合，「0」を格納する指定

入力データファイル，及び入力データエラーがあった場合にエラーを出力するファイルの指定

(2)　横分割表への表単位のデータロード

例2

横分割表（TABLE1）に，表単位にデータロードします。
なお，次の表及びインデクスが定義されているものとします。
表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
               IN ((PDBUSER01) C1 > 10,(PDBUSER02))
インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER04))
インデクスの定義（非分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN (PDBUSER05)

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

横分割表（TABLE1）へ表単位にデータロードします。

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 source /usr/load_file1 error=/usr/err1 errdata=/usr/err_data,1000   1
 idxwork /usr/idx_file                                               2
 sort /usr/sortwork                                                  3

［説明］

入力データファイル，及び入力データエラーがあった場合のエラー情報とエラーとなった行データを出力するファイルの指定（ただし，入力データエラーの出力は1000件までとします）

/usr/load_file1：入力データファイルの名称

/usr/err1：エラー情報ファイルの名称

/usr/err_data：エラーデータファイルの名称

インデクス情報ファイルを作成するディレクトリの指定

/usr/idx_file：インデクス情報ファイルを作成するディレクトリの名称

ソート用ワークディレクトリの指定

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(3)　横分割表へのRDエリア単位のデータロード

例3

横分割表（TABLE1）に，RDエリア単位にデータロードします。PDBUSER01，及びPDBUSER02に対して，2回実行します。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
               IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER04))
・インデクスの定義（非分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN (PDBUSER05)

［概要］

［入出力ファイルとRDエリアの関連図］

(a)　PDBUSER01へのデータロード

［実行するコマンドの説明］

横分割表（TABLE1）へRDエリア（PDBUSER01）単位にデータロードします。

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 source PDBUSER01 /usr/load_file1 error=/usr/err1          1
 idxwork /usr/idx_file                                     2
 sort /usr/sortwork                                        3

［説明］

入力データファイル，及び入力データエラーがあった場合にエラーを出力するファイルの指定

PDBUSER01：入力データを格納する表があるRDエリアの名称

/usr/load_file1：入力データファイルの名称

/usr/err1：エラー情報ファイルの名称

インデクス情報ファイルを作成するディレクトリの指定

/usr/idx_file：インデクス情報ファイルを作成するディレクトリの名称

ソート用ワークディレクトリの指定

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(b)　PDBUSER02へのデータロード

［実行するコマンドの説明］

横分割表（TABLE1）へRDエリア（PDBUSER02）単位にデータロードします。

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 source PDBUSER02 /usr/load_file2 error=/usr/err2          1
 idxwork /usr/idx_file                                     2
 sort /usr/sortwork                                        3

［説明］

入力データファイル，及び入力データエラーがあった場合にエラーを出力するファイルの指定

PDBUSER02：入力データを格納する表があるRDエリアの名称

/usr/load_file2：入力データファイルの名称

/usr/err2：エラー情報ファイルの名称

インデクス情報ファイルを作成するディレクトリの指定

/usr/idx_file：インデクス情報ファイルを作成するディレクトリの名称

ソート用ワークディレクトリの指定

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(c)　INDEX2の作成

INDEX2はこのままでは使用できません。

インデクス情報を出力したインデクス情報ファイル3，及びインデクス情報ファイル4を使用して，pdrorgでインデクスの一括作成（-k ixmk）をしてください。

(4)　入力データファイルがユティリティ専用ユニットにある場合のデータロード

例4

横分割表（TABLE1）に，表単位にデータロードします。ただし，入力データファイルはユティリティ専用ユニットにあるものとします。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
               IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義
  CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER04))

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

横分割表（TABLE1）へ表単位にデータロードします。

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 source host1:/usr/load_file1 error=/usr/err1          1
 index INDEX1 PDBUSER03 /usr/index_inf1                2
 index INDEX1 PDBUSER04 /usr/index_inf2                2
 sort /usr/sortwork                                    3

［説明］

入力データファイル，及び入力データにエラーがあった場合にエラーを出力するファイルの指定

host1：入力データファイルがあるホストの名称

/usr/load_file1：入力データファイルの名称

/usr/err1：エラー情報ファイルの名称

インデクス情報を出力するインデクス情報ファイルの指定

INDEX1：インデクス識別子

PDBUSER03，PDBUSER04：インデクスを格納するRDエリアの名称

/usr/index_inf1，/usr/index_inf2：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(5)　LOB列構成基表とLOB列のデータロード

例5

LOB列がある表（TABLE2）に対して，LOB列構成基表とLOB列を同時にデータロードします。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TABLE2(C1 INT,C2 BLOB IN LOBUSER01) IN PDBUSER01
・インデクスの定義
  CREATE INDEX INDEX2 ON TABLE2(C1) IN PDBUSER02

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

LOB列がある表（TABLE2）へ表単位にデータロードします。

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 source /usr/load_file1 error=/usr/err1                         1
 index INDEX2 /usr/index_inf1                                   2
 sort /usr/sortwork                                             3
 lobdata /usr/lob                                               4
 lobmid /usr/lobmid_file1                                       5

［説明］

入力データファイル，及び入力データにエラーがあった場合にエラーを出力するファイルの指定

/usr/load_file1：入力データファイルの名称

　入力データファイルの内容（DAT形式）

　　1,lobfile1

　　2,lobfile2

　　3,lobfile3

/usr/err1：エラー情報ファイルの名称

インデクス情報を出力するインデクス情報ファイルの指定

INDEX2：インデクス識別子

/usr/index_inf1：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

LOB入力ファイルのディレクトリの指定

/usr/lob：LOB入力ファイルのパス名

LOB列構成基表データロード時にLOB列のデータロードに必要な情報を出力するファイルの指定（これをLOB列のデータロード時にそのまま使用します）

/usr/lobmid_file1：LOB中間ファイルの名称

(6)　LOB列構成基表だけのデータロード

例6

LOB列がある表（TABLE2）に対して，LOB列構成基表だけをデータロードします。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TABLE2(C1 INT,C2 BLOB IN LOBUSER01) IN PDBUSER01
・インデクスの定義
  CREATE INDEX INDEX2 ON TABLE2(C1) IN PDBUSER02

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

LOB列がある表（TABLE2）へ表単位にデータロードします。

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 source /usr/load_file1 error=/usr/err1                         1
 index INDEX2 /usr/index_inf1                                   2
 sort /usr/sortwork                                             3
 lobmid /usr/lobmid_file1                                       4

［説明］

入力データファイル，及び入力データにエラーがあった場合にエラーを出力するファイルの指定

/usr/load_file1：入力データファイルの名称

　入力データファイルの内容（DAT形式）

　　1,lobfile1

　　2,lobfile2

　　3,lobfile3

/usr/err1：エラー情報ファイルの名称

インデクス情報を出力するインデクス情報ファイルの指定

INDEX2：インデクス識別子

/usr/index_inf1：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

LOB列構成基表データロード時にLOB列のデータロードに必要な情報を出力するファイルの指定

/usr/lobmid_file1：LOB中間ファイルの名称

(7)　LOB列だけのデータロード

例7

LOB列がある表（TABLE2）に対して，LOB列だけをデータロードします。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TABLE2(C1 INT,C2 BLOB IN LOBUSER01) IN PDBUSER01
・インデクスの定義
  CREATE INDEX INDEX2 ON TABLE2(C1) IN PDBUSER02

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

LOB列がある表（TABLE2）へ表単位にデータロードします。

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 lobdata /usr/lob                                                 1
 lobmid /usr/lobmid_file1 error=/usr/err1                         2

［説明］

LOB入力ファイルのディレクトリの指定

/usr/lob：LOB入力ファイルのパス名

LOB列構成基表データロード時に次の入力データファイルを使用したものとします。

　入力データファイルの内容（DAT形式）

　　1,lobfile1

　　2,lobfile2

　　3,lobfile3

LOB列構成基表データロード時にLOB列のデータロードに必要な情報を出力したファイル，及びLOB入力エラーがあった場合にエラーを出力するファイルの指定

/usr/lobmid_file1：LOB中間ファイルの名称

/usr/err1：エラー情報ファイルの名称

(8)　監査証跡表へのデータロード

例8

監査証跡表（SQL_AUDIT_TRAIL）に対して，データロード待ちの監査証跡ファイルをデータロードします。なお，監査証跡表にはインデクスが定義されていないものとします。

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

監査証跡表（SQL_AUDIT_TRAIL）に対して，データロード待ちの監査証跡ファイル（/hirdb/audit/file）をデータロードします。

-b及び-W：監査証跡表へデータロードする場合に必ず指定するオプションです。

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 source (uoc)                                       1
 srcuoc param='dir=/hirdb/audit/file,file=all'      2

［説明］

監査証跡データ登録UOCを使用する場合の指定

監査証跡データ登録UOCに渡すパラメタの指定

dir=/hirdb/audit/file：監査証跡ファイルのHiRDBファイル名

file=all：データロード待ちのすべての監査証跡ファイルを対象とするため，allを指定

(9)　自動採番機能を使用したデータロード

例9

表（TABLE1）に，指定単位取得方式でデータロードします。このとき，C2列に列データとして順序番号を追加します。
なお，次の表及び順序数生成子が定義されているものとします。
・表の定義
  CREATE TABLE USER01.TABLE1(C1 INT,C2 INT,C3 VARCHAR(10)) IN PDBUSER01
・順序数生成子の定義
  CREATE SEQUENCE USER01.SEQ_A1
    AS INTEGER START WITH 1 INCREMENT BY 1 MAXVALUE 9999 CYCLE IN PDBUSER01

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE1）へデータロードします。

column_inf：列構成情報ファイルの名称

control_file：制御情報ファイルの名称

［列構成情報ファイル（column_inf）の内容］

 C1                               1
 C3                               1
 *adddata*                        2
 C2,sequence=(USER01.SEQ_A1)      3

［説明］

入力データをTABLE1の列（C1，C3）に格納

これ以降の指定が入力データの追加であることを示す追加データ文

順序数生成子（USER01.SEQ_A1）が生成した順序番号を列C2に格納

［制御情報ファイル（control_file）の内容］

 source /usr/load_file1           1
 option seq_range=1000               2

［説明］

入力データファイルの指定

/usr/load_file1：入力データファイルの名称

順序番号の取得方式の指定（指定単位取得方式）

seq_range=1000：データロード時に1000個ずつ順序番号を取得するための指定

5.14.2　HiRDB/パラレルサーバの場合

(1)　表へのデータロード

例10

表（TABLE1）にデータロードします。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
  IN PDBUSER01
・インデクスの定義
  CREATE INDEX INDEX1 ON TABLE1(C1) IN PDBUSER03

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE1）へデータロードします。

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 source fes1:/usr/load_file1 error=/usr/err1          1
 index INDEX1 /usr/index_inf1                         2
 sort bes1 /usr/sortwork                              3

［説明］

入力データファイル，及び入力データエラーがあった場合にエラーを出力するファイルの指定

fes1：入力データファイルがあるサーバの名称

/usr/load_file1：入力データファイルの名称

/usr/err1：エラー情報ファイルの名称

インデクス情報を出力するインデクス情報ファイルの指定

INDEX1：インデクス識別子

/usr/index_inf1：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

bes1：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(2)　横分割表への表単位のデータロード

例11

横分割表（TABLE1）に，表単位にデータロードします。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
               IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER05))
・インデクスの定義（非分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN ((PDBUSER04),(PDBUSER06))

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

横分割表（TABLE1）へ表単位にデータロードします。

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 source fes1:/usr/load_file1 error=/usr/err1          1
 idxwork bes1 /usr/idx_file                           2
 idxwork bes2 /usr/idx_file                           2
 sort bes1 /usr/sortwork                              3
 sort bes2 /usr/sortwork                              3

［説明］

入力データファイル，及び入力データエラーがあった場合にエラーを出力するファイルの指定

fes1：入力データファイルがあるサーバの名称

/usr/load_file1：入力データファイルの名称

/usr/err1：エラー情報ファイルの名称

インデクス情報ファイルを作成するディレクトリの指定

bes1，bes2：インデクス情報ファイルを作成するサーバの名称

/usr/idx_file：インデクス情報ファイルを作成するディレクトリの名称

ソート用ワークディレクトリの指定

bes1，bes2：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(3)　横分割表へのRDエリア単位のデータロード

例12

横分割表（TABLE1）に，RDエリア単位にデータロードします。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
               IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER05))
・インデクスの定義（非分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN ((PDBUSER04),(PDBUSER06))

［概要］

［入出力ファイルとRDエリアの関連図］

(a)　PDBUSER01へのデータロード

［実行するコマンドの説明］

横分割表（TABLE1）へRDエリア（PDBUSER01）単位にデータロードします。

control_file1：制御情報ファイルの名称

［制御情報ファイル（control_file1）の内容］

 source PDBUSER01 bes1:/usr/load_file1 error=/usr/err1          1
 index INDEX1 PDBUSER03 /usr/index_inf1                         2
 index INDEX2 PDBUSER04 /usr/index_inf2                         2
 sort bes1 /usr/sortwork                                        3

［説明］

入力データファイル，及び入力データエラーがあった場合にエラーを出力するファイルの指定

PDBUSER01：入力データを格納する表があるRDエリアの名称

bes1：入力データファイルがあるサーバの名称

/usr/load_file1：入力データファイルの名称

/usr/err1：エラー情報ファイルの名称

インデクス情報を出力するインデクス情報ファイルの指定

INDEX1，INDEX2：インデクス識別子

PDBUSER03，PDBUSER04：インデクスを格納するRDエリアの名称

/usr/index_inf1，/usr/index_inf2：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

bes1：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(b)　PDBUSER02へのデータロード

［実行するコマンドの説明］

横分割表（TABLE1）へRDエリア（PDBUSER02）単位にデータロードします。

control_file2：制御情報ファイルの名称

［制御情報ファイル（control_file2）の内容］

 source PDBUSER02 bes2:/usr/load_file2 error=/usr/err2          1
 index INDEX1 PDBUSER05 /usr/index_inf3                         2
 index INDEX2 PDBUSER06 /usr/index_inf4                         2
 sort bes2 /usr/sortwork                                        3

［説明］

入力データファイル，及び入力データエラーがあった場合にエラーを出力するファイルの指定

PDBUSER02：入力データを格納する表があるRDエリアの名称

bes2：入力データファイルがあるサーバの名称

/usr/load_file2：入力データファイルの名称

/usr/err2：エラー情報ファイルの名称

インデクス情報を出力するインデクス情報ファイルの指定

INDEX1，INDEX2：インデクス識別子

PDBUSER05，PDBUSER06：インデクスを格納するRDエリアの名称

/usr/index_inf3，/usr/index_inf4：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

bes2：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(4)　LOB列がある表へのデータロード（LOB列構成基表とLOB列を同時にデータロード）

例13

LOB列がある表（TABLE2）に対して，RDエリア単位にデータロードします。このとき，LOB列構成基表とLOB列を同時にデータロードします。
なお，次の表が定義されているものとします。
・表の定義
  CREATE TABLE TABLE2(C1 INT NOT NULL,C2 BLOB IN ((LOBUSER01),(LOBUSER02)))
               IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE2(C1) IN((PDBUSER03),(PDBUSER04))

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

LOB列がある表（TABLE2）へRDエリア（PDBUSER01，LOBUSER01）単位にデータロードします。

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 source PDBUSER01 bes1:/usr/load_file1 error=/usr/err1          1
 index INDEX2 PDBUSER03 /usr/index_inf1                         2
 sort bes1 /usr/sortwork                                        3
 lobdata /usr/lob                                               4
 lobmid /usr/lobmid_file1                                       5

［説明］

入力データファイル，及び入力データにエラーがあった場合にエラーを出力するファイルの指定

PDBUSER01：入力データを格納する表があるRDエリアの名称

bes1：入力データファイルがあるサーバの名称

/usr/load_file1：入力データファイルの名称

　入力データファイルの内容（DAT形式）

　　1,lobfile1

　　2,lobfile2

　　3,lobfile3

/usr/err1：エラー情報ファイルの名称

インデクス情報を出力するインデクス情報ファイルの指定

INDEX2：インデクス識別子

PDBUSER03：インデクスを格納するRDエリアの名称

/usr/index_inf1：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

bes1：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

LOB入力ファイルのディレクトリの指定

/usr/lob：LOB入力ファイルのパス名

LOB列構成基表データロード時にLOB列のデータロードに必要な情報を出力するファイルの指定（これをLOB列のデータロード時にそのまま使用します）

/usr/lobmid_file1：LOB中間ファイルの名称

(5)　LOB列がある表へのデータロード（列単位LOB入力ファイルを使用した場合）

例14

LOB列がある表（TABLE2）にデータロードします。このとき，LOB列構成基表とLOB列を同時にデータロードし，LOB列へのデータ格納は列単位LOB入力ファイルから行います。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TABLE2(C1 INT NOT NULL,C2 BLOB IN ((LOBUSER01),(LOBUSER02)))
               IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE2(C1) IN((PDBUSER03),(PDBUSER04))

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

LOB列がある表（TABLE2）へデータロードします。

-k c：列単位LOB入力ファイルを使用する場合の指定

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 source fes1:/usr/load_file1                          1
 index INDEX2 PDUSER03 /usr/index_inf1                2
 index INDEX2 PDUSER04 /usr/index_inf2                2
 sort bes1 /usr/sortwork                              3
 sort bes2 /usr/sortwork                              3
 lobdata /usr/collob                                  4
 lobcolumn collob_file                                5
 lobmid /usr/lobmid_file                              6

［説明］

入力データファイルの指定

fes1：入力データファイルがあるサーバの名称

/usr/load_file1：入力データファイルの名称

インデクス情報を出力するインデクス情報ファイルの指定

INDEX2：インデクス識別子

PDUSER03，PDUSER04：インデクスが格納されているRDエリアの名称

/usr/index_inf1，/usr/index_inf2：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

bes1，bes2：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

列単位LOB入力ファイルがあるディレクトリの指定

/user/collob：列単位LOB入力ファイルがあるディレクトリの名称

列単位LOB入力ファイルの指定

collob_file：列単位LOB入力ファイルの名称

LOB中間ファイルの指定

/usr/lobmid_file：LOB中間ファイルの名称

(6)　繰返し列がある表へのデータロード

例15

繰返し列がある表（成績表）に，表単位にデータロードします。このとき，クラスタキー順のチェックをしないようにします。
なお，次の表が定義されているものとします。
・表の定義
  CREATE TABLE 成績表
      (出席番号 CHAR(6) UNIQUE CLUSTER KEY IN ((PDUSER03),(PDUSER04)),
       氏名 NCHAR(10),
       科目名 NCHAR(8) ARRAY[5],
       成績 INT ARRAY[5])
    IN ((PDUSER01) 出席番号 <= '1Z9999',(PDUSER02))

［概要］

［入出力ファイルとRDエリアの関連図］

［入力データファイルの内容（DAT形式）］

［実行するコマンドの説明］

繰返し列がある表（成績表）へ表単位にデータロードします。

-x：クラスタキー順のチェックをしない指定

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 source fes1:/usr/arrload_file1                1
 idxwork bes1 /usr/idx_file                    2
 idxwork bes2 /usr/idx_file                    2
 sort bes1 /usr/sortwork                       3
 sort bes2 /usr/sortwork                       3
 array elmtype=ff nullset=c                    4

［説明］

入力データファイルの指定

fes1：入力データファイルがあるサーバの名称

/usr/arrload_file1：入力データファイルの名称

インデクス情報ファイルを作成するディレクトリの指定

bes1，bes2：インデクス情報ファイルを作成するサーバの名称

/usr/idx_file：インデクス情報ファイルを作成するディレクトリの名称

ソート用ワークディレクトリの指定

bes1，bes2：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

繰返し列がある表にデータロードする場合の指定

ff：配列データ形式

c：該当する要素に何も格納しない場合の指定

(7)　プラグイン使用時の表へのデータロード

例16

抽象データ型（SGMLTEXT）がある表（TBL01）にデータロードします。この例では，HiRDB Text Search Plug-inを使用した場合について説明します。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TBL01(C1 INTEGER,C2 VARCHAR(10),C3 SGMLTEXT ALLOCATE
                         (SGMLTEXT IN LOBUSER01) PLUGIN …)
                        IN PDBUSER01
・プラグインインデクスの定義
  CREATE INDEX INDEX1 USING TYPE NGRAM ON TBL01(C3) IN PDBUSER02
また，SGMLTEXT型のコンストラクタ関数の内容を次に示します。
・関数名：SGMLTEXT　入力：BLOB　出力：SGMLTEXT型

［概要］

［入出力ファイルとRDエリアの関連図］

［入力データファイルの内容（DAT形式）］

 1,"HiRDB",/usr/lob/file01
 -1,"",/usr/lob/file02
 999,"HITACHI",/usr/lob/file03
        :

［実行するコマンドの説明］

抽象データ型がある表（TBL01）へデータロードします。

column_inf：列構成情報ファイルの名称

control_file：制御情報ファイルの名称

［列構成情報ファイル（column_inf）の内容］

 C1                                     1
 C2                                     1
 C3,func=(SGMLTEXT,param=blob)          1,2

［説明］

入力データをTBL01の列（C1，C2，C3）の順に格納

コンストラクタ関数を呼び出して，抽象データ型の列（C3）にデータを格納

SGMLTEXT：コンストラクタ関数名

blob：コンストラクタ関数に渡す引数の型

［制御情報ファイル（control_file）の内容］

［説明］

入力データファイルの指定

fes1：入力データファイルがあるサーバの名称

/usr/load_file1：入力データファイルの名称

LOB入力ファイルの指定

例17

抽象データ型（GEOMETRY）がある表（TBL02）にデータロードします。
なお，次の表が定義されているものとします。
・表の定義
  CREATE TABLE TBL02(C1 INTEGER,C2 DECIMAL(7,0),C3 GEOMETRY)
                        IN PDBUSER02
また，GEOMETRY型のコンストラクタ関数の内容を次に示します。
・関数名：GEOMETRY　入力：VARCHAR　出力：GEOMETRY型

［概要］

［入出力ファイルとRDエリアの関連図］

［入力データファイルの内容（固定長データ形式）］

［実行するコマンドの説明］

抽象データ型がある表（TBL02）へデータロードします。

column_inf2：列構成情報ファイルの名称

control_file2：制御情報ファイルの名称

［列構成情報ファイル（column_inf2）の内容］

 C1,type=integer                                            1
 C2,type=dec(7,0)                                           2
 C3,func=(GEOMETRY,param=varchar,type=varchar(10))          3

［説明］

列（C1）にINTEGERのデータを格納

列（C2）にDECIMAL(7,0)のデータを格納

抽象データ型の列（C3）に，入力パラメタがvarcharのコンストラクタ関数GEOMETRYにvarchar(10)のデータを渡して生成した値を格納

GEOMETRY：コンストラクタ関数名

varchar：コンストラクタ関数に渡す引数の型

［制御情報ファイル（control_file2）の内容］

 source fes1:/usr/load_file2                     1

［説明］

入力データファイルの指定

fes1：入力データファイルがあるサーバの名称

/usr/load_file2：入力データファイルの名称

例18

抽象データ型（SGMLTEXT）とLOB列がある表（TBL03）にデータロードします。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TBL03(C1 INTEGER,C2 BLOB(4096) IN (LOBUSER01),
                      C3 SGMLTEXT ALLOCATE
                         (SGMLTEXT IN (LOBUSER02) PLUGIN …)
                        IN PDBUSER03
・プラグインインデクスの定義
  CREATE INDEX INDEX1 USING TYPE NGRAM ON TBL03(C3) IN PDBUSER04
また，SGMLTEXT型のコンストラクタ関数の内容を次に示します。
・関数名：SGMLTEXT　入力：BLOB　出力：SGMLTEXT型

［概要］

［入出力ファイルとRDエリアの関連図］

［入力データファイルの内容（バイナリ形式）］

［実行するコマンドの説明］

抽象データ型がある表（TBL03）へデータロードします。

-k v：LOB列への格納データはLOB入力ファイル名を入力データファイルに記述し，LOBパラメタは直接入力データファイルに記述する場合の指定

control_file3：制御情報ファイルの名称

［制御情報ファイル（control_file3）の内容］

 source fes1:/usr/load_file3                  1
 lobmid /usr/mid_file                         2
 lobdata /usr                                 3

［説明］

入力データファイルの指定

fes1：入力データファイルがあるサーバの名称

/usr/load_file3：入力データファイルの名称

LOB中間ファイルの指定

/usr/mid_file：LOB中間ファイルの名称

LOB入力ファイルの指定

/usr：LOB入力ファイルがあるディレクトリ名

例19

抽象データ型（SGMLTEXT）とLOB列がある表（TBL04）にデータロードします。このとき，先にLOB列構成基表と抽象データ型へデータロードして，その後にLOB列にデータロードをします。LOB列へデータロードするときは，各バックエンドサーバで並列に実行します。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TBL04(C1 INTEGER,C2 BLOB(100) IN ((LOB11),(LOB12)),
                     C3 SGMLTEXT ALLOCATE
                         (SGMLTEXT IN ((LOB21),(LOB22)) PLUGIN …))
                        IN ((PDBUSER01) C1 > 1000,(PDBUSER02))
・プラグインインデクスの定義
  CREATE INDEX INDEX1 USING TYPE NGRAM ON TBL04(C3)
      IN ((PDBUSER03),(PDBUSER04))
また，SGMLTEXT型のコンストラクタ関数の内容を次に示します。
・関数名：SGMLTEXT　入力：BLOB　出力：SGMLTEXT型

［概要］

［入出力ファイルとRDエリアの関連図］

(a)　LOB列構成基表と抽象データ型へのデータロード

［実行するコマンドの説明］

抽象データ型がある表（TBL04）の，LOB列構成基表と抽象データ型へデータロードします。

-b：

入力データファイルがバイナリ形式の場合の指定

-k v：

LOB列への格納データはLOB入力ファイル名を入力データファイルに記述し，LOBパラメタは直接入力データファイルに記述する場合の指定

control_file1：

制御情報ファイルの名称

［制御情報ファイル（control_file1）の内容］

 source fes1:/usr/load_file1 err=/usr/err          1
 idxwork bes1 /usr/idx_file                        2
 idxwork bes2 /usr/idx_file                        2
 lobmid /usr/lobmid                                3

［説明］

入力データファイルの指定

fes1：入力データファイルがあるサーバの名称

/usr/load_file1：入力データファイルの名称

/usr/err：エラー情報ファイルの名称

インデクス情報ファイルを作成するディレクトリの指定

bes1，bes2：インデクス情報ファイルを作成するサーバの名称

/usr/idx_file：インデクス情報ファイルを作成するディレクトリの名称

LOB中間ファイルの指定

/usr/lobmid：LOB中間ファイルの名称

(b)　LOB列へのデータロード

［実行するコマンドの説明］

抽象データ型がある表（TBL04）の，LOB列へデータロードします。このとき，各バックエンドサーバで並列にデータロードします。

-b：

入力データファイルがバイナリ形式の場合の指定

-k v：

LOB列への格納データはLOBデータごとにLOB入力ファイルを用意し，抽象データ型列に格納する値を生成するコンストラクタ関数の入力パラメタとなるデータは入力データファイルに格納する場合の指定

control_file2，control_file3：

制御情報ファイルの名称

［制御情報ファイル（control_file2）の内容］

 lobdata /usr/lob1                                      1
 lobmid LOB11 fes1:/usr/lobmid error=/usr/err1          2

［説明］

LOB入力ファイルの指定

/usr/lob1：LOB入力ファイルがあるディレクトリの名称

LOB中間ファイルの指定

LOB11：LOB列があるユーザLOB用RDエリアの名称

fes1：LOB中間ファイルがあるサーバの名称

/usr/lobmid：LOB中間ファイルの名称

/usr/err1：エラー情報ファイルの名称

［制御情報ファイル（control_file3）の内容］

 lobdata /usr/lob2                                      1
 lobmid LOB12 fes1:/usr/lobmid error=/usr/err2          2

［説明］

LOB入力ファイルの指定

/usr/lob2：LOB入力ファイルがあるディレクトリの名称

LOB中間ファイルの指定

LOB12：LOB列があるユーザLOB用RDエリアの名称

fes1：LOB中間ファイルがあるサーバの名称

/usr/lobmid：LOB中間ファイルの名称

/usr/err2：エラー情報ファイルの名称

(8)　監査証跡表へのデータロード

例20

ユニット1（un01）のバックエンドサーバ（bes1）に定義した監査証跡表（SQL_AUDIT_TRAIL）に対して，ユニット2（un02）にあるデータロード待ち状態の監査証跡ファイルをデータロードします。

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

監査証跡表（SQL_AUDIT_TRAIL）に対して，データロード待ちの監査証跡ファイル（/hirdb/audit/un02）をデータロードします。

-b及び-W：監査証跡表へデータロードする場合に必ず指定するオプションです。

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 source fes2:(uoc)                                  1
 srcuoc param='dir=/hirdb/audit/un02,file=all'      2

［説明］

データロード対象となる監査証跡ファイルがあるユニットの任意のサーバ名称（fes2）と，監査証跡データ登録UOCの指定

監査証跡データ登録UOCに渡すパラメタの指定

dir=/hirdb/audit/un02：監査証跡ファイルのHiRDBファイル名

file=all：データロード待ちのすべての監査証跡ファイルを対象とするため，allを指定

6　会話型SQL実行ユティリティ（pdsql）

この章では，HiRDBのデータべースに対して，会話形式でSQLを実行できる会話型SQL実行ユティリティ（pdsql）について説明します。なお，会話型SQL実行ユティリティ（pdsql）を実行するには，別プログラムプロダクトのHiRDB SQL Executerが必要です。

6.1　概要

実行者

CONNECT権限を持っているユーザが実行できます。ただし，実行するSQLによって必要な権限が異なります。SQL実行時の権限については，マニュアル「HiRDB SQLリファレンス」を参照してください。

6.1.1　機能

会話型SQL実行ユティリティは，HiRDBのデータべースに対して，会話形式でSQLを実行できるユティリティです。また，SQL文の入力，実行を簡単にしたり，実行結果の形式を指定したりするなどの，会話型SQL実行ユティリティ専用のコマンドも指定できます。

このユティリティを実行するためには，別プログラムプロダクトのHiRDB SQL Executerが必要となります。

標準入力，又は入力ファイルから入力したSQLを実行し，その実行結果を標準出力，又はファイルに出力します。会話型SQL実行ユティリティ（pdsql）の概要を次の図に示します。

図6‒1　会話型SQL実行ユティリティ（pdsql）の概要

会話型SQL実行ユティリティの詳細については，HiRDB SQL Executerの「リリースノート」を参照してください。

7　データベース構成変更ユティリティ（pdmod）

この章では，RDエリアの追加，拡張，再初期化など，データベースの物理構成を変更するデータベース構成変更ユティリティ（pdmod）について説明します。

7.1　データベース構成変更ユティリティの機能

実行者　HiRDB管理者が実行できます

データベース構成変更ユティリティ（pdmod）は，RDエリアの追加，拡張，又は再初期化など，データベースの物理構成を変更するためのユティリティです。

データベースへの表の追加，更新を繰り返すことによって生じるRDエリアの容量不足などを解消します。

pdmodの機能と，RDエリアの種類との関係を次の表に示します。

表7‒1　機能とRDエリアの種類との関係

機能

RDエリアの種類

マスタディレクトリ用

データディレクトリ用

データディクショナリ用

データディクショナリLOB用

ユーザ用

ユーザLOB用

リスト用

レジストリ用

レジストリLOB用

RDエリアの追加

×

×

○

○※１

○

○

○

×

×

RDエリアの拡張

○

○

○

○

○

○

○

○

○

RDエリアの再初期化

×

×

×

○※２

○

○

○

○

○

RDエリアの削除

×

×

×※３

×

○

○

○

×

×

RDエリアの移動

×

×

×

×

○※４

○

×

×

×

ディクショナリ表の属性定義変更

−

−

−

−

−

−

−

−

−

RDエリアの属性変更

RDエリア名

×

○

○

○

○

○

○

○

○

オープン契機

×

×

×

×

○

○

○

×

×

自動増分

×

×

○

○

○

○

×

○

○

HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へのRDエリアの変更

○

○

○

○

○

○

○

○

○

HiRDBファイルシステム領域の世代登録

−

−

−

−

−

−

−

−

−

HiRDBファイルシステム領域の世代削除

−

−

−

−

−

−

−

−

−

RDエリアのレプリカ定義

×

×

×

×

○※４

○

×

×

×

RDエリアの構成情報複写

×

×

×

×

○※４

○

×

×

×

RDエリアの統合

×

×

×

×

○※４

○

×

×

×

監査人の登録

−

−

−

−

−

−

−

−

−

監査証跡表の作成

×

×

×

×

○※４

×

×

×

×

（凡例）

○：実行できます。

×：実行できません。

−：該当しません。

注※1

RDエリアを追加する場合は，必ず2個追加してください。

注※2

ストアドプロシジャ，又はストアドファンクションのオブジェクトが格納されているRDエリアだけ実行できます。

注※3

解析情報表及び運用履歴表を格納するデータディクショナリ用RDエリアの場合，実行できます。

注※4

一時表用RDエリアの場合，実行できません。

7.2　コマンドの形式

7.2.1　コマンドの形式とオプション

(1)　形式

　pdmod -a 制御文ファイル名 〔-W 実行監視時間〕

(2)　オプション

●　-a 制御文ファイル名　〜＜パス名＞((255文字以内))

制御文の内容については，以降の節の制御文を参照してください。

【HiRDB/シングルサーバの場合】

pdmodの制御文があるファイルの名称を絶対パス名で指定します。

【HiRDB/パラレルサーバの場合】

pdmodの制御文があるファイルの名称を絶対パス名で指定します。制御文ファイルは，ディクショナリサーバがあるサーバマシンに作成してください。

制御文は，複数同時に指定できます。制御文ごとに処理を完結し，エラーになった制御文はスキップして処理を続行します。そのため，正常に終了した制御文は，ほかの制御文でエラーが発生してもロールバックはされません。したがって，pdmodでエラーが発生した場合は，標準エラー出力及びメッセージログに出力されたメッセージのエラー要因を取り除き，エラーがあった制御文だけ再度実行してください。

制御文に注釈を付けたい場合は，スラント，アスタリスク（/＊）とアスタリスク，スラント（＊/）で囲んで指定してください。

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，制御文ファイル中にBOMが存在しても問題ありません。ただし，制御文ファイル中のコメントには，ASCIIコード以外の文字コードを使用できません。ASCIIコード以外の文字コードを使用した場合，pdmodが誤動作するおそれがあるため，使用しないでください。

制御文に指定するRDエリア名が，制御文で使用しているキーワードと同じ名称である場合は，RDエリア名を引用符（"）で囲んで指定してください。

●　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

データベース構成変更ユティリティの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

7.3　RDエリアの追加

7.3.1　機能

RDエリアの追加は，表及びインデクスの追加，表定義の変更などで既存のRDエリアだけでは対処できなくなる場合に，新たにRDエリアを追加する機能です。RDエリアの追加の概要を次の図に示します。

図7‒1　RDエリアの追加の概要

●前提条件

RDエリアを追加する場合は，RDエリアを構成するHiRDBファイルを作成するためのHiRDBファイルシステム領域を，あらかじめ初期設定しておく（pdfmkfsコマンドを実行しておく）必要があります。

RDエリアを追加する場合は，システム共通定義のRDエリアの最大数（pd_max_rdarea_no），及びRDエリアを構成するHiRDBファイルの最大数（pd_max_file_no）を超えないようにしてください。超える場合は，pdchgconfコマンドでシステム共通定義を変更するか，又はHiRDBシステムを正常終了させてから，システム共通定義を変更する必要があります。

共用RDエリアを追加する場合，そのRDエリアはすべてのバックエンドサーバに追加したものとしてカウントされます（共用RDエリアを追加していないバックエンドサーバも，RDエリアを追加したとみなされます）。したがって，どれかのバックエンドサーバがRDエリアの最大数，又はRDエリアを構成するHiRDBファイルの最大数を超える場合，共用RDエリアは追加できません。

共用RDエリアを追加する場合，ユーザ用RDエリアだけ対象となります。また，キャラクタ型スペシャルファイルで，かつ使用目的SDBで作成したHiRDBファイルシステム領域にだけ追加できます。

0904互換モードを適用している場合で，一時表用RDエリアを追加するときは，システム共通定義の一時表用RDエリアの最大数（pd_max_tmp_table_rdarea_noの値）を超えないようにしてください。一時表用RDエリアの最大数を超える場合は，HiRDBを終了してからシステム共通定義を変更する必要があります。

7.3.2　使用例

データべース構成変更ユティリティ（RDエリアの追加）の使用例を次に示します。

(1)　RDエリアを追加する例（その1）

次に示すRDエリアを追加します。
・PDBULOB11（ユーザLOB用RDエリア）
・PDBUSER04（ユーザ用RDエリア）

［概要］

(a)　HiRDB/シングルサーバの場合

［制御文ファイル（/usr/seifile/mofl01）の内容］

 /* ユーザLOB用RDエリアの追加 */
 create rdarea PDBULOB11   ..................................................1
          globalbuffer gb01   ...............................................2
          for LOB used by PUBLIC   ..........................................3
          page 8192 characters   ............................................4
          storage control segment 1 pages   .................................5
          file name "/svr02/rdulob11"   .....................................6
            initial 50 segments ;   .........................................7
 /* ユーザ用RDエリアの追加 */
 create rdarea PDBUSER04   ..................................................1
          globalbuffer gb02   ...............................................2
          for user used by "userid"   .......................................3
          page 4096 characters   ............................................4
          storage control segment 50 pages   ................................5
          file name "/dbarea/area1/rduser21"   ..............................6
            initial 100 segments ;   ........................................7

［説明］

追加するRDエリアの名称を指定します。

RDエリアを割り当てるグローバルバッファの名称を指定します。

RDエリアの種類を指定します。

ページ長を指定します。

セグメントサイズを指定します。

RDエリアを構成するHiRDBファイルの名称を指定します。

HiRDBファイルのセグメント数を指定します。

(b)　HiRDB/パラレルサーバの場合

［制御文ファイル（/usr/seifile/mofl01）の内容］

 /* ユーザLOB用RDエリアの追加 */
 create rdarea PDBULOB11   ..................................................1
          globalbuffer gb01   ...............................................2
          for LOB used by PUBLIC   ..........................................3
          server name bes1   ................................................4
          page 8192 characters   ............................................5
          storage control segment 1 pages   .................................6
          file name "/svr02/rdulob11"   .....................................7
            initial 50 segments ;   .........................................8
 /* ユーザ用RDエリアの追加 */
 create rdarea PDBUSER04   ..................................................1
          globalbuffer gb02   ...............................................2
          for user used by "userid"   .......................................3
          server name bes2   ................................................4
          page 4096 characters   ............................................5
          storage control segment 50 pages   ................................6
          file name "/dbarea/area1/rduser21"   ..............................7
            initial 100 segments ;   ........................................8

［説明］

追加するRDエリアの名称を指定します。

RDエリアを割り当てるグローバルバッファの名称を指定します。

RDエリアの種類を指定します。

ページ長を指定します。

RDエリアを管理するサーバの名称を指定します。

セグメントサイズを指定します。

RDエリアを構成するHiRDBファイルの名称を指定します。

HiRDBファイルのセグメント数を指定します。

(2)　RDエリアを追加する例（その2）

次に示すRDエリアを追加します。
・PDBDDIC02（データディクショナリ用RDエリア）
・PDBDICL1（データディクショナリLOB用RDエリア）
・PDBDICL2（データディクショナリLOB用RDエリア）

［概要］

(a)　HiRDB/シングルサーバの場合

［制御文ファイル（/usr/seifile/mofl01）の内容］

 /* データディクショナリ用RDエリアの追加 */
 create rdarea PDBDDIC02   ..................................................1
          globalbuffer gbp01   ..............................................2
          for datadictionary of routines   ..................................3
          page 4096 characters   ............................................4
          storage control segment 30 pages   ................................5
          file name "/svr01/rdddic02"   .....................................6
            initial 150 segments ;   ........................................7
 /* データディクショナリLOB用RDエリアの追加 */
 create rdarea PDBDICL01   ..................................................1
          globalbuffer gbp01   ..............................................2
          for LOB used by HiRDB(SQL_ROUTINES)   .............................3
          page 8192 characters   ............................................4
          storage control segment 1 pages   .................................5
          file name "/svr01/rddicl1"   ......................................6
            initial 200 segments ;   ........................................7
 /* データディクショナリLOB用RDエリアの追加 */
 create rdarea PDBDICL02   ..................................................1
          globalbuffer gbp01   ..............................................2
          for LOB used by HiRDB(SQL_ROUTINES)   .............................3
          page 8192 characters   ............................................4
          storage control segment 1 pages   .................................5
          file name "/svr01/rddicl2"   ......................................6
            initial 2000 segments ;   .......................................7

［説明］

追加するRDエリアの名称を指定します。

RDエリアを割り当てるグローバルバッファの名称を指定します。

RDエリアの種類を指定します。

ページ長を指定します。

セグメントサイズを指定します。

RDエリアを構成するHiRDBファイルの名称を指定します。

HiRDBファイルのセグメント数を指定します。

(b)　HiRDB/パラレルサーバの場合

［制御文ファイル（/usr/seifile/mofl01）の内容］

 /* データディクショナリ用RDエリアの追加 */
 create rdarea PDBDDIC02   ..................................................1
          globalbuffer gbp01   ..............................................2
          for datadictionary of routines   ..................................3
          server name dics   ................................................4
          page 4096 characters   ............................................5
          storage control segment 30 pages   ................................6
          file name "/svr01/rdddic02"   .....................................7
            initial 150 segments ;   ........................................8
 /* データディクショナリLOB用RDエリアの追加 */
 create rdarea PDBDICL01   ..................................................1
          globalbuffer gbp01   ..............................................2
          for LOB used by HiRDB(SQL_ROUTINES)   .............................3
          server name dics   ................................................4
          page 8192 characters   ............................................5
          storage control segment 1 pages   .................................6
          file name "/svr01/rddicl1"   ......................................7
            initial 200 segments ;   ........................................8
 /* データディクショナリLOB用RDエリアの追加 */
 create rdarea PDBDICL02   ..................................................1
          globalbuffer gbp01   ..............................................2
          for LOB used by HiRDB(SQL_ROUTINES)   .............................3
          server name dics   ................................................4
          page 8192 characters   ............................................5
          storage control segment 1 pages   .................................6
          file name "/svr01/rddicl2"   ......................................7
            initial 2000 segments ;   .......................................8

［説明］

追加するRDエリアの名称を指定します。

RDエリアを割り当てるグローバルバッファの名称を指定します。

RDエリアの種類を指定します。

RDエリアを管理するサーバの名称を指定します。

ページ長を指定します。

セグメントサイズを指定します。

RDエリアを構成するHiRDBファイルの名称を指定します。

HiRDBファイルのセグメント数を指定します。

7.3.3　制御文（create rdarea文）

create 〔shared〕
　　　　　　 rdarea RDエリア名
　　　　　　 〔globalbuffer グローバルバッファ名〕
　　　　　　 for ｛datadictionary of ｛routines｜dbmanagement｝｜user used by ｛PUBLIC｜認可識別子〔，認可識別子〕…｝｜LOB used by ｛HiRDB（ディクショナリ表の名称）｜PUBLIC｜認可識別子〔，認可識別子〕…｝｜list｝
　　　　　　 〔server name サーバ名〕
　　　　　　 〔open attribute ｛INITIAL｜DEFER｜SCHEDULE｝〕
　　　　　　 〔page ページ長 characters〕
　　　　　　 〔storage control segment セグメントサイズ pages〕
　　　　　　 〔max entries 最大リスト登録数〕
　　　　　　 〔extension ｛use 増分セグメント数 segments｜nouse｝〕
　　　　　　 〔temporary table ｛use ｛shared｜occupied｝｜nouse｝〕
　　　　　　 file name "HiRDBファイルシステム領域名/HiRDBファイル名"
　　　　　　　　initial HiRDBファイル内セグメント数 segments
　　　　　　 〔file name "HiRDBファイルシステム領域名/HiRDBファイル名"
　　　　　　　　　initial HiRDBファイル内セグメント数 segments〕…
　;

注

file nameオペランド，initialオペランドは，必ずcreate rdarea文の最後に指定してください。

(1)　shared

このオペランドは，HiRDB/パラレルサーバの場合に指定できます。

RDエリアを共用RDエリアとして追加する場合に指定します。

＜規則＞

sharedを指定する場合，システム定義のpd_shared_rdarea_useオペランドにYを指定する必要があります。指定していない場合はエラーになります。

HiRDB/シングルサーバの場合，sharedを指定するとエラーになります。

共用RDエリアとして作成したRDエリアは，server nameオペランドで指定したサーバ以外のサーバからも参照できます（すべてのバックエンドサーバから参照できます）。

(2)　RDエリア名

　　　〜＜識別子＞((1〜30))

追加するRDエリアの名称を指定します。

RDエリア名にALLは指定できません。RDエリア名を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。また，RDエリア名に空白を含む場合は，引用符で囲んでください。

(3)　globalbuffer グローバルバッファ名

　　　〜＜識別子＞((1〜16))

追加したRDエリアに，一時的にグローバルバッファを割り当てたい場合，HiRDBシステムにある（HiRDB/パラレルサーバの場合は，追加するサーバにある）グローバルバッファの名称を指定します。

グローバルバッファについては，pdbuflsコマンドで確認できます。

＜規則＞

インデクス用，又はLOB用のグローバルバッファは指定できません。また，インメモリデータバッファも指定できません。

データディクショナリ用RDエリアの場合は，必ずこのオペランドを指定してください。

面数指定のグローバルバッファの場合，指定するグローバルバッファのグローバルバッファ長は，追加するRDエリアのページ長以上でなければなりません。グローバルバッファ長は，pdbuflsコマンドで確認できます。

グローバルバッファ長は，HiRDB開始時にそのグローバルバッファに割り当てているRDエリアの最大ページ長となっています。

ここで指定したグローバルバッファの割り当ては，次回のHiRDBの正常開始時，又は計画停止後の再開始時には無効となります。そのため，次回のHiRDBの正常開始時，又は計画停止後の再開始時には，システム共通定義のグローバルバッファの割り当てを変更する必要があります。

HiRDBがグローバルバッファの割り当てに失敗した場合，RDエリアは追加されません。

(4)　for ｛datadictionary of ｛routines｜dbmanagement｝｜user used by ｛PUBLIC｜認可識別子〔，認可識別子〕…｝｜LOB used by ｛HiRDB（ディクショナリ表の名称）｜PUBLIC｜認可識別子〔，認可識別子〕…｝｜list｝

追加するRDエリアの種類を指定します。

datadictionary of routines

RDエリアがデータディクショナリ用RDエリアの場合に指定します。

このデータディクショナリ用RDエリアは，ストアドプロシジャ，ストアドファンクション，及びトリガに関するディクショナリ表（SQL_ROUTINES，SQL_ROUTINE_RESOURCES，及びSQL_ROUTINE_PARAMS）を格納するRDエリアとなります。

データディクショナリ用RDエリアを追加する場合には，必ずデータディクショナリLOB用RDエリアも同時に指定してください。

datadictionary of dbmanagement

解析情報表及び運用履歴表を格納するデータディクショナリ用RDエリアの場合に指定します。

このデータディクショナリ用RDエリアは，再編成時期予測機能を使用する場合に必要となります。

user used by ｛PUBLIC｜認可識別子〔，認可識別子〕…｝

RDエリアがユーザ用RDエリアの場合に指定します。

PUBLIC

ユーザ用RDエリアを公用RDエリアとする場合に指定します。

認可識別子〔，認可識別子〕…　〜＜先頭が英字記号で始まる英数字記号＞((1〜30))

ユーザ用RDエリアを私用RDエリアにする場合，ユーザ用RDエリアを利用できるユーザの認可識別子を指定します。

＜規則＞

認可識別子を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字としてHiRDBシステムに登録されます。

認可識別子を指定すると，その私用RDエリアに対してRDエリア利用権限を持つことができます。

認可識別子は，最大255個指定できます。

認可識別子にPUBLIC，MASTER，HiRDB，及びALLは指定できません。

LOB used by ｛HiRDB（ディクショナリ表の名称）｜PUBLIC｜認可識別子〔，認可識別子〕…｝

RDエリアがデータディクショナリLOB用RDエリア，又はユーザLOB用RDエリアの場合に指定します。

HiRDB（ディクショナリ表の名称）

RDエリアがデータディクショナリLOB用RDエリアの場合に指定します。ディクショナリ表の名称には，SQL_ROUTINESを指定してください。

このRDエリアにはストアドプロシジャの定義ソース文とオブジェクトが格納されます。指定する場合は二つ指定する必要があります（このRDエリアを指定したcreate rdarea文を2個指定します）。一つ目のRDエリアにはストアドプロシジャの定義ソース文が格納され，二つ目のRDエリアにはストアドプロシジャのオブジェクトが格納されます。

＜注意事項＞

データディクショナリLOB用RDエリアを追加する場合，ストアドプロシジャに関するディクショナリ表が作成されます。ストアドプロシジャに関するディクショナリ表を，そのほかのディクショナリ表と別のデータディクショナリ用RDエリアに格納したい場合は，同時にデータディクショナリ用RDエリアも追加できます。

データディクショナリLOB用RDエリアを追加すると，抽象データ型定義，ストアドファンクション，及びストアドプロシジャを使用できるようになります。

既にデータディクショナリLOB用RDエリアがある場合に，このオペランドを指定したときにはエラーとなります。

データディクショナリLOB用RDエリアを追加する場合，制御文ファイル中に同時に指定できるRDエリアはデータディクショナリ用RDエリアだけです。

PUBLIC

ユーザLOB用RDエリアを公用RDエリアとする場合に指定します。

認可識別子〔，認可識別子〕…　〜＜先頭が英字記号で始まる英数字記号＞((1〜30))

ユーザLOB用RDエリアを私用RDエリアにする場合，ユーザLOB用RDエリアを利用できるユーザの認可識別子を指定します。

＜規則＞

認可識別子を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字としてHiRDBシステムに登録されます。

認可識別子を指定すると，その私用RDエリアに対してRDエリア利用権限を持つことができます。

認可識別子は，最大255個指定できます。

認可識別子にPUBLIC，MASTER，HiRDB，及びALLは指定できません。

list

RDエリアがリスト用RDエリアの場合に指定します。

(5)　server name サーバ名

　　　〜＜識別子＞((1〜8))

【HiRDB/シングルサーバの場合】

HiRDB/シングルサーバの場合はserver nameオペランドを指定しないでください。

【HiRDB/パラレルサーバの場合】

RDエリアを管理するサーバの名称を指定します。

データディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアの場合，ディクショナリサーバのサーバ名を指定してください。ディクショナリサーバ以外のサーバ名を指定した場合でも，ディクショナリサーバのサーバ名が仮定されます。

ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリアの場合，バックエンドサーバのサーバ名を指定してください。バックエンドサーバ以外のサーバ名を指定した場合は，エラーとなります。

共用RDエリアを追加する場合，このオペランドで指定したサーバが更新可能バックエンドサーバとなります。

(6)　open attribute ｛INITIAL｜DEFER｜SCHEDULE｝

RDエリアのオープン契機を指定します。

＜適用基準＞

特殊な運用形態でない場合は，通常INITIALを指定してください。

RDエリア数が多いためにHiRDBの開始に時間が掛かるなどの不都合を回避したい場合は，DEFERを指定してください。

＜規則＞

このオペランドは，システム共通定義のpd_rdarea_open_attribute_useオペランドにYを指定しているときだけ有効となります。

このオペランドはユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリアの場合に指定できます。ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリア以外のRDエリアに対してこのオペランドを指定しても，無視されます（ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリア以外のRDエリアは，INITIAL固定です）。

このオペランドを省略した場合，システム共通定義のpd_rdarea_open_attributeオペランドの指定値が仮定されます。

このオペランドの指定値は，HiRDBの開始モードに関係なく次回起動後から有効となります。

該当するRDエリアに割り当てたHiRDBファイルシステム領域が，ほかのRDエリアに共有される場合，共有するRDエリアのオープン契機はすべて同じにする必要があります。同じでない場合，HiRDBファイルシステム領域を共有するRDエリアは，期待通りの効果が得られないことがあります。

INITIAL：

HiRDB開始時にHiRDBファイルシステム領域をオープンして，RDエリア情報をメモリ上に常駐させるので，最初のSQLから高速な運用ができます。

＜注意事項＞

HiRDB開始時のRDエリアの初期状態はオープンで，それ以降は障害閉塞への遷移を除いて，運用コマンドを実行しないかぎりRDエリアの状態は遷移しません。

INITIALの場合，クローズ状態のRDエリアはアクセスできません。

DEFER：

HiRDB開始時にHiRDBファイルシステム領域をオープンしないで，RDエリアを最初にアクセスするときにHiRDBファイルシステム領域をオープンします。そのときにRDエリア情報をメモリ上に常駐させるので，2回目以降のアクセスから高速な運用ができます。

＜注意事項＞

HiRDB開始時のRDエリアの初期状態はクローズで，各RDエリアに対して最初にアクセスするときに，該当するRDエリアをオープンします。以降は障害閉塞への遷移を除いて，運用コマンドを実行しないかぎりRDエリアの状態は遷移しません。

DEFERの場合，クローズ状態のRDエリアでもアクセスできます。

SCHEDULE：

HiRDB開始時にHiRDBファイルシステム領域をオープンしないで，HiRDB開始後，各トランザクション内でRDエリアに対して最初にアクセスするときに，HiRDBファイルシステム領域をオープンします。そのときにRDエリア情報をメモリ上に常駐させます。ただし，トランザクション終了時にそのトランザクション内でオープンしたHiRDBファイルシステム領域をクローズするため，2回目以降のアクセス時でもオープン以降の処理をして，トランザクションに掛かる負荷は増加します。

＜注意事項＞

HiRDB開始時のRDエリアの初期状態はクローズで，アクセスしたRDエリアをトランザクション内でだけオープンし，トランザクション終了時にトランザクション内でオープンしたすべてのRDエリアをクローズします。

また，pdopenコマンドを実行することで，閉塞クローズ状態になるまでの間はオープン状態にできます。そのほかの運用コマンドを使用すれば，RDエリアの状態を任意に遷移させることもできます。なお，障害事象を検知した場合には，障害閉塞となります。

SCHEDULEの場合，クローズ状態のRDエリアでもアクセスできます。

(7)　page ページ長 characters

　　　〜＜符号なし整数＞((4096〜30720))《4096又は8192》

RDエリアを構成するHiRDBファイルのページ長を，2,048の倍数のバイト単位で指定します。HiRDBファイルシステム領域作成時にセクタ長を指定した場合，2,048の倍数かつセクタ長の倍数を指定してください。

次のRDエリアは，ページ長が固定となります。

データディクショナリLOB用RDエリア，及びユーザLOB用RDエリアの場合

8,192を指定してください。8,192以外の値を指定した場合，及び省略した場合でも，8,192が仮定されます。

解析情報表及び運用履歴表を格納するデータディクショナリ用RDエリアの場合

4,096を指定してください。4,096以外の値を指定した場合，及び省略した場合でも，4,096が仮定されます。

そのほかのRDエリアのページ長については，マニュアル「HiRDB システム導入・設計ガイド」を参照して適切な値を指定してください。

ここで指定したページ長は，HiRDBがRDエリアに対して入出力する最小の単位となります。

(8)　storage control segment セグメントサイズ pages

　　　〜＜符号なし整数＞((1〜16000))《1又は50》

1セグメントの大きさを，ページ数で指定します。

データディクショナリLOB用RDエリア，及びユーザLOB用RDエリアの場合は，1を指定してください。1以外の値を指定した場合でも，1が仮定されます。そのほかのRDエリアのセグメントサイズについては，マニュアル「HiRDB システム導入・設計ガイド」を参照して適切な値を指定してください。

(9)　max entries 最大リスト登録数

　　　〜＜符号なし整数＞((500〜50000，かつ500の倍数))≪500≫

リスト用RDエリアに作成できるリストの最大数を，500の倍数で指定します。

500の倍数でない値を指定した場合，500の倍数に切り上げた値が仮定されます。

このオペランドをリスト用RDエリア以外のRDエリアに指定した場合，エラーとなります。

(10)　extension ｛use 増分セグメント数 segments｜nouse｝

追加するRDエリアに自動増分を適用するかどうかを指定します。

RDエリアの自動増分については，マニュアル「HiRDB システム運用ガイド」を参照してください。

＜前提条件＞

RDエリアがあるHiRDBファイルシステム領域に-eオプション又は-aオプションが指定されている必要があります。

use 増分セグメント数 segments：

RDエリアの自動増分を適用します。

RDエリアの自動増分は，データディクショナリ用RDエリア，データディクショナリLOB用RDエリア，ユーザ用RDエリア，及びユーザLOB用RDエリアの場合に有効となります。ほかのRDエリアにuseを指定しても，nouseが仮定されます。

自動増分の契機は，RDエリア内の空きセグメント数が自動増分契機に達したときです。pd_rdarea_extension_timingオペランドで指定できます。

増分セグメント数　〜＜符号なし整数＞((1〜64000))

増分セグメント数を指定します。

pdfmkfs -eを指定したHiRDBファイルシステム領域の場合

HiRDBファイルのエクステント数は最大24で，これを超えるとエラーとなります。また，HiRDBファイルシステム領域の空きが不足したり，使用する領域がHiRDBファイルサイズの上限を超えたりすると，エラーとなります。

HiRDBファイルシステム領域当たりの最大増分回数は，HiRDBファイルシステム領域作成時の指定値で決まるため，HiRDBファイルシステム領域内のファイル数，増分頻度を考慮し最大増分回数を定義しておく必要があります。

pdfmkfs -aを指定したHiRDBファイルシステム領域の場合

HiRDBファイルを格納しているディスクに，必要なHiRDBファイルシステム領域を確保する容量が不足していたり，使用する領域がHiRDBファイルサイズの上限を超えたりすると，エラーとなります。

nouse：

RDエリアの自動増分機能を適用しません。

＜注意事項＞

新たに追加される未使用セグメントは，RDエリアを構成するHiRDBファイルの最終ファイルに追加されます。

HiRDBファイルシステム領域の容量不足によって，未使用セグメントを確保できない場合，RDエリアの拡張又は再初期化をするか，データベース再編成ユティリティで表の再編成をしてください。

エクステントの数が上限値を超えた場合は，RDエリアがあるHiRDBファイルシステム領域のエクステントを統合するか，又はRDエリアに別のHiRDBファイルシステム領域のHiRDBファイルを追加してください。

エクステントを統合するには，pdfbkupでバックアップを取得し，pdfmkfsでHiRDBファイルシステム領域の初期設定をし，pdfrstrでバックアップから回復します。

RDエリア自動増分処理の開始から終了までの間，最終ファイルに対して排他が掛かります。

(11)　temporary table ｛use ｛shared｜occupied｝｜nouse｝

ユーザ用RDエリアを一時表用RDエリアとして使用するかどうかを指定します。一時表用RDエリアについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

＜前提条件＞

追加するRDエリアが公用RDエリア（user used by PUBLIC指定）である必要があります。それ以外の場合にtemporary tableオペランドを指定すると，エラーになります。また，sharedオペランドと同時に指定したときも，エラーになります。なお，この前提条件は，nouseを指定したときには該当しません。

use shared：

ユーザ用RDエリアを，SQLセッション間共有属性の一時表用RDエリアとして使用します。

use occupied：

ユーザ用RDエリアを，特定SQLセッション占有属性の一時表用RDエリアとして使用します。

nouse：

ユーザ用RDエリアを一時表用RDエリアとして使用しません。

＜注意事項＞

RDエリア作成後に一時表用RDエリアの使用有無，及び一時表用RDエリアの属性（SQLセッション間共有属性又は特定SQLセッション占有属性）を変更する場合，データベース構成変更ユティリティのremove rdarea文で該当するRDエリアを削除し，create rdarea文で属性を変更して再作成してください。

(12)　file name "HiRDBファイルシステム領域名/HiRDBファイル名"

　　　〜((167文字以内))

RDエリアに対して割り当てる，HiRDBファイルシステム領域の名称とHiRDBファイルの名称を指定します。

＜規則＞

HiRDBファイルシステム領域名/HiRDBファイル名は引用符（"）で囲んで指定してください。

引用符内に改行文字を含まないようにしてください。

一つのRDエリアに対して，最大16個のHiRDBファイルを割り当てられます。

指定したHiRDBファイルシステム領域に，pdmodがHiRDBファイルを作成します。

HiRDBファイルシステム領域名/HiRDBファイル名は，HiRDBシステム内で重複しないようにしてください。

リスト用RDエリアの場合は，使用目的がWORKのHiRDBファイルシステム領域を使用してください。

HiRDBファイルシステム領域名　〜＜パス名＞

HiRDBファイルシステム領域の名称を指定します。

HiRDBファイル名　〜＜HiRDBファイル名＞((1〜30文字))

HiRDBファイルの名称を指定します。plで始まる名称は指定できません。

(13)　initial HiRDBファイル内セグメント数 segments

　　　〜＜符号なし整数＞

HiRDBファイルのセグメント数を指定します。

セグメント数は，データページ部分の総ページ数÷セグメントサイズで求めてください。データページ部分の総ページ数の見積もり式については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。また，HiRDBファイルの大きさが64ギガバイトを超えるようなセグメント数は指定できません。

7.3.4　注意事項

追加したRDエリアは，次の契機で使用できるようになります。

制御文でグローバルバッファの割り当てを指定していない場合

次回HiRDBの正常開始後に使用できます。ただし，-oオプション指定のグローバルバッファがある場合で，そのグローバルバッファのバッファ長が追加したRDエリアのページサイズよりも大きいときは，再開始時にも使用できます。なお，再開始後はRDエリアがクローズ状態となっているため，pdopenコマンドでRDエリアをオープン状態にしてから使用してください。

制御文でグローバルバッファの割り当てを指定している場合

RDエリア追加完了後に使用できます。共用RDエリアを追加する場合，割り当てるグローバルバッファがすべてのバックエンドサーバになければなりません。

どちらの場合も，次回HiRDBの正常開始のときに，追加したRDエリアをグローバルバッファに割り当てるように，システム共通定義を変更する必要があります。システム共通定義については，マニュアル「HiRDB システム定義」を参照してください。システム共通定義を変更しない場合，システム共通定義のpdbufferオペランドに-oオプションを指定したグローバルバッファがあるときは，次回HiRDBの正常開始時に自動的に-oオプション指定のグローバルバッファに，追加したRDエリアが割り当てられます。また，-oオプション指定のグローバルバッファがある場合，又は制御文でグローバルバッファを指定している場合は，HiRDBの再開始時にグローバルバッファが割り当てられます。

RDエリアの追加後は，データベース複写ユティリティ（pdcopy）で追加したRDエリア，マスタディレクトリ用RDエリア，及びデータディクショナリ用RDエリアのバックアップを取得しておいてください。データベース複写ユティリティについては，「データベース複写ユティリティ（pdcopy）」を参照してください。

データディクショナリLOB用RDエリアを追加すると，ストアドプロシジャ又はストアドファンクションを使用できるようになります。データディクショナリLOB用RDエリアを追加した場合，同時にディクショナリ表が作成されます。そのため，データディクショナリ用RDエリアに空きがあるかどうか確認し，空きがない場合はあらかじめデータディクショナリ用RDエリアを拡張しておく必要があります。RDエリアの容量を確認する場合は，データベース状態解析ユティリティを実行してください。

また，ストアドプロシジャ又はストアドファンクションに関するディクショナリ表をほかのディクショナリ表と別のデータディクショナリ用RDエリアに格納したい場合は，同時にデータディクショナリ用RDエリアも追加できます。

データディクショナリLOB用RDエリアを追加した後，ストアドプロシジャ又はストアドファンクションを使用できるようになる契機は，追加したRDエリアにグローバルバッファが割り当てられたときです。

RDエリアを追加する場合，世代管理していないHiRDBファイルシステム領域のHiRDBファイルを指定してください。

7.4　RDエリアの拡張

7.4.1　機能

RDエリアの拡張は，データの追加などによって，当初見積もったRDエリアの容量が足りなくなった場合に，RDエリアを構成するHiRDBファイルを追加する機能です。RDエリアを構成するHiRDBファイルを追加することで，RDエリアを拡張します。

追加できるHiRDBファイル数は，RDエリアを構成するHiRDBファイルの個数（16個）までです。

ほかのユーザが，RDエリア内の表又はインデクスを参照中であっても，RDエリアは拡張できます。RDエリアを拡張した場合でも，RDエリア内のデータには影響はありません。

RDエリアの拡張の概要を次の図に示します。

図7‒2　RDエリアの拡張の概要

注

RDエリアを拡張した場合，必ずそのRDエリアと，同時にバックアップを取得する必要があるRDエリアのバックアップを取得してください。同時にバックアップを取得する必要があるRDエリアについては，マニュアル「HiRDB システム運用ガイド」を参照してください。

●前提条件

RDエリアを拡張する場合は，HiRDBファイルを作成するためのHiRDBファイルシステム領域を，あらかじめ初期設定しておく必要があります。

RDエリアを拡張する場合，RDエリアは次の状態でなければなりません。

マスタディレクトリ用RDエリア

閉塞解除の状態かつオープン状態

データディレクトリ用RDエリア，データディクショナリ用RDエリア，データディクショナリLOB用RDエリア，ユーザ用RDエリア，ユーザLOB用RDエリア，レジストリ用RDエリア，及びレジストリLOB用RDエリア

＜RDエリアのオープン契機がINITIALの場合＞

閉塞解除の状態，又はコマンドによる閉塞中でかつオープン状態

＜RDエリアのオープン契機がDEFER又はSCHEDULEの場合＞

閉塞解除の状態，コマンドによる閉塞中でかつオープン状態，又は閉塞解除かつクローズ状態

RDエリアのオープン契機は，システム共通定義のpd_rdarea_open_attributeオペランド及びpd_rdarea_open_attribute_useオペランドで指定します。これらの詳細については，マニュアル「HiRDB システム定義」を参照してください。また，RDエリアのオープン契機は，pddblsコマンドで確認できます。

RDエリアを拡張する場合は，システム共通定義の最大RDエリア構成ファイル数（pd_max_file_no）を超えないようにしてください。超える場合は，pdchgconfコマンドでシステム共通定義を変更するか，又はHiRDBシステムを正常終了させてから，システム共通定義を変更する必要があります。

共用RDエリアを拡張する場合，そのRDエリアはすべてのバックエンドサーバで拡張したものとしてカウントされます（共用RDエリアを拡張していないバックエンドサーバも，RDエリアを拡張したとみなされます）。したがって，どれかのバックエンドサーバがRDエリアを構成するHiRDBファイルの最大数を超える場合，共用RDエリアは拡張できません。

7.4.2　使用例

データべース構成変更ユティリティ（RDエリアの拡張）の使用例を次に示します。

(1)　RDエリアを拡張する例

次に示すRDエリアを拡張します。
・PDBDDIC
　新たにHiRDBファイル（/svr01/rdddic02）を割り当てます。
・PDBUSER02
　新たにHiRDBファイル（/dbarea/area1/rduser05）を割り当てます。

［概要］

［制御文ファイル（/usr/seifile/mofl02）の内容］

 /* データディクショナリ用RDエリアの拡張 */
 expand rdarea PDBDDIC   ....................................................1
          file name "/svr01/rdddic02"  ......................................2
            initial 50 segments ;   .........................................3
 /* ユーザ用RDエリアの拡張 */
 expand rdarea PDBUSER02   ..................................................1
          file name "/dbarea/area1/rduser05"   ..............................2
            initial 100 segments ;   ........................................3

［説明］

拡張するRDエリアの名称を指定します。

RDエリアに追加するHiRDBファイルの名称を指定します。

HiRDBファイルのセグメント数を指定します。

7.4.3　制御文（expand rdarea文）

expand rdarea RDエリア名
　　　　　　〔extension ｛use 増分セグメント数 segments｜nouse｝〕
　　　　　　　file name "HiRDBファイルシステム領域名/HiRDBファイル名"
　　　　　　　　　initial HiRDBファイル内セグメント数 segments
　　　　　　　〔file name "HiRDBファイルシステム領域名/HiRDBファイル名"
　　　　　　　　　　initial HiRDBファイル内セグメント数 segments〕…
　;

注

file nameオペランド，initialオペランドは，必ずexpand rdarea文の最後に指定してください。

(1)　RDエリア名

　　　〜＜識別子＞((1〜30))

拡張するRDエリアの名称を指定します。

RDエリア名にALLは指定できません。RDエリア名を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。RDエリア名に空白が含まれる場合は，引用符で囲んでください。

(2)　extension ｛use 増分セグメント数 segments｜nouse｝

拡張するRDエリアに自動増分を適用するかどうかを指定します。このオペランドを省略した場合，拡張する前の指定を引き継ぎます。

RDエリアの自動増分については，マニュアル「HiRDB システム運用ガイド」を参照してください。

＜前提条件＞

RDエリアがあるHiRDBファイルシステム領域に-eオプション又は-aオプションが指定されている必要があります。

use 増分セグメント数 segments：

RDエリアの自動増分を適用します。

RDエリアの自動増分は，データディクショナリ用RDエリア，データディクショナリLOB用RDエリア，ユーザ用RDエリア，ユーザLOB用RDエリア，レジストリ用RDエリア，及びレジストリLOB用RDエリアの場合に有効となります。ほかのRDエリアにuseを指定しても，nouseが仮定されます。

自動増分の契機は，RDエリア内の空きセグメント数が自動増分契機に達したときです。pd_rdarea_extension_timingオペランドで指定できます。

増分セグメント数　〜＜符号なし整数＞((1〜64000))

増分セグメント数を指定します。

pdfmkfs -eを指定したHiRDBファイルシステム領域の場合

HiRDBファイルのエクステント数は最大24で，これを超えるとエラーとなります。また，HiRDBファイルシステム領域の空きが不足したり，使用する領域がHiRDBファイルサイズの上限を超えたりすると，エラーとなります。

HiRDBファイルシステム領域当たりの最大増分回数は，HiRDBファイルシステム領域作成時の指定値で決まるため，HiRDBファイルシステム領域内のファイル数，増分頻度を考慮し最大増分回数を定義しておく必要があります。

pdfmkfs -aを指定したHiRDBファイルシステム領域の場合

HiRDBファイルを格納しているディスクに，必要なHiRDBファイルシステム領域を確保する容量が不足していたり，使用する領域がHiRDBファイルサイズの上限を超えたりすると，エラーとなります。

nouse：

RDエリアの自動増分機能を適用しません。

＜注意事項＞

新たに追加される未使用セグメントは，RDエリアを構成するHiRDBファイルの最終ファイルに追加されます。

HiRDBファイルシステム領域の容量不足によって，未使用セグメントを確保できない場合，RDエリアの拡張又は再初期化をするか，データベース再編成ユティリティで表の再編成をしてください。

エクステントの数が上限値を超えた場合は，RDエリアがあるHiRDBファイルシステム領域のエクステントを統合するか，又はRDエリアに別のHiRDBファイルシステム領域のHiRDBファイルを追加してください。

エクステントを統合するには，pdfbkupでバックアップを取得し，pdfmkfsでHiRDBファイルシステム領域の初期設定をし，pdfrstrでバックアップから回復します。

RDエリア自動増分処理の開始から終了までの間，最終ファイルに対して排他が掛かります。

(3)　file name "HiRDBファイルシステム領域名/HiRDBファイル名"

　　　〜((167文字以内))

RDエリアに対して追加する，HiRDBファイルシステム領域の名称とHiRDBファイルの名称を指定します。

＜規則＞

HiRDBファイルシステム領域名/HiRDBファイル名は引用符（"）で囲んで指定してください。

引用符内に改行文字を含まないようにしてください。

一つのRDエリアに対して，最大16個のHiRDBファイルを割り当てられます。

指定したHiRDBファイルシステム領域に，pdmodがHiRDBファイルを作成します。

HiRDBファイルシステム領域名/HiRDBファイル名は，HiRDBシステム内で重複しないようにしてください。

リスト用RDエリアの場合は，使用目的がWORKのHiRDBファイルシステム領域を使用してください。

セクタ長を指定したHiRDBファイルシステム領域に拡張する場合，RDエリアのページ長は，セクタ長の整数倍でなければなりません。

HiRDBファイルシステム領域名　〜＜パス名＞

HiRDBファイルシステム領域の名称を指定します。

HiRDBファイル名　〜＜HiRDBファイル名＞((1〜30文字))

HiRDBファイルの名称を指定します。plで始まる名称は指定できません。

(4)　initial HiRDBファイル内セグメント数 segments

　　　〜＜符号なし整数＞

HiRDBファイルのセグメント数を指定します。

セグメント数は，データページ部分の総ページ数÷セグメントサイズで求めてください。データページ部分の総ページ数の見積もり式については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。また，HiRDBファイルの大きさが64ギガバイトを超えるようなセグメント数は指定できません。

7.4.4　注意事項

RDエリアの拡張後は，データベース複写ユティリティ（pdcopy）で拡張したRDエリア，マスタディレクトリ用RDエリア，及びデータディクショナリ用RDエリアのバックアップを取得しておいてください。データベース複写ユティリティいついては，「データベース複写ユティリティ（pdcopy）」を参照してください。

インメモリRDエリアは拡張できません。いったんインメモリ化を解除してからRDエリアを拡張してください。

インナレプリカ機能を適用しているRDエリア（オリジナルRDエリア及びレプリカRDエリア）を拡張する場合，指定するHiRDBファイルのHiRDBファイルシステム領域が，対応する世代に登録されている必要があります。

インナレプリカ機能を適用していないRDエリアを拡張する場合，世代管理していないHiRDBファイルシステム領域のHiRDBファイルを指定してください。

インナレプリカグループ内のRDエリアを拡張した場合，KFPX24282-Iメッセージを表示します。このメッセージが表示された場合，インナレプリカグループ内のすべてのRDエリアに対して，構成情報の複写（データベース構成変更ユティリティのdefine copy rdarea文）を実行する必要があります。KFPX24282-Iメッセージの出力条件は，マニュアル「インナレプリカ機能 HiRDB Staticizer Option」の「インナレプリカグループ内のRDエリアの構成変更と構成情報の複写」の「インナレプリカグループ内のRDエリアの構成変更」を参照してください。

7.5　RDエリアの再初期化

7.5.1　機能

次に示す要因で，再度RDエリアを初期化したい場合に使用する機能です。

RDエリアを構成するHiRDBファイルの容量，個数，及び名称を変更したい場合

RDエリアのセグメントサイズ及びページ長を変更したい場合（ただし，ユーザ用RDエリア，及びリスト用RDエリアの場合）

RDエリアの障害発生時，バックアップを使用しないで回復したい場合

ただし，RDエリアの再初期化後は，表，及びインデクスの定義だけが引き継がれデータは削除されるため，pdload，又はpdrorgで再作成する必要があります。

RDエリアの再初期化の概要を次の図に示します。

図7‒3　RDエリアの再初期化の概要

注　RDエリアの再初期化後は，必ずそのRDエリアのバックアップを取得してください。

注※1　空きページを示します。

注※2　アンロード及びリロードについては，「データベース再編成ユティリティ（pdrorg）」を参照してください。

●前提条件

RDエリアを再初期化する場合，RDエリアが閉塞状態かつクローズ状態でなければなりません。共用RDエリアの場合は，すべてのバックエンドサーバで閉塞状態かつクローズ状態でなければなりません。

RDエリアを再初期化する場合は，システム共通定義の最大RDエリア構成ファイル数（pd_max_file_no）を超えないようにしてください。超える場合は，pdchgconfコマンドでシステム共通定義を変更するか，又はHiRDBシステムを正常終了させてから，システム共通定義を変更する必要があります。

共用RDエリアを再初期化する場合，そのRDエリアはすべてのバックエンドサーバで再初期化したものとしてカウントされます（共用RDエリアを再初期化していないバックエンドサーバも，RDエリアを再初期化したとみなされます）。したがって，どれかのバックエンドサーバがRDエリアを構成するHiRDBファイルの最大数を超える場合，共用RDエリアは再初期化できません。

データディクショナリLOB用RDエリアを再初期化する場合，ストアドプロシジャ，又はストアドファンクションのオブジェクトを格納しているRDエリアだけ実行できます。実行後は，ALTER PROCEDURE（ALL指定），又はALTER ROUTINEですべてのSQLオブジェクトを再作成する必要があります。ALTER PROCEDURE，又はALTER ROUTINEについては，マニュアル「HiRDB SQLリファレンス」を参照してください。ストアドプロシジャ，又はストアドファンクションのオブジェクトを格納しているRDエリアは，ディクショナリ表を検索すれば分かります。ディクショナリ表の検索方法については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

レジストリLOB用RDエリアを再初期化する場合，レジストリ用RDエリアも再初期化する必要があります（レジストリLOB用RDエリアだけの再初期化はできません）。また，再初期化後にプラグインモジュールが使用するレジストリ情報の再登録が必要です。

7.5.2　使用例

データべース構成変更ユティリティ（RDエリアの再初期化）の使用例を次に示します。

(1)　RDエリアを再初期化する例

次に示すRDエリアを再初期化します。
・PDBUSER01
　セグメントサイズを140ページに変更します。
・PDBUSER02
　RDエリアに割り当てているHiRDBファイル（/dbarea/area1/rduser02）を，/dbarea/area1/rduser06及び/dbarea/area1/rduser07で割り当てるように変更します。

［概要］

［制御文ファイル（/usr/seifile/mofl03）の内容］

 /* ユーザ用RDエリアの再初期化 */
 initialize rdarea PDBUSER01   ..................................................1
              storage control segment 140 pages;   ..............................2
 /* ユーザ用RDエリアの再初期化 */
 initialize rdarea PDBUSER02   ..................................................1
              with reconstruction   .............................................3
              file name "/dbarea/area1/rduser06"   ..............................4
                initial 100 segments   ..........................................5
              file name "/dbarea/area1/rduser07"   ..............................4
                initial 60 segments ;   .........................................5

［説明］

再初期化をするRDエリアの名称を指定します。

変更後のセグメントサイズを指定します。

RDエリアを構成する，すべてのHiRDBファイルを変更する場合に指定します。

RDエリアに対して割り当て直すHiRDBファイルの名称を指定します。

HiRDBファイルのセグメント数を指定します。

7.5.3　制御文（initialize rdarea文）

initialize rdarea RDエリア名
　　　　　　　〔with reconstruction〕
　　　　　　　〔open attribute ｛INITIAL｜DEFER｜SCHEDULE｝〕
　　　　　　　〔page ページ長 characters〕
　　　　　　　〔storage control segment セグメントサイズ pages〕
　　　　　　　〔max entries 最大リスト登録数〕
　　　　　　　〔extension ｛use 増分セグメント数 segments｜nouse｝〕
　　　　　　　〔without lock table〕
　　　　　　　〔file name "HiRDBファイルシステム領域名/HiRDBファイル名"
　　　　　　　　　initial HiRDBファイル内セグメント数 segments
　　　　　　　　〔file name "HiRDBファイルシステム領域名/HiRDBファイル名"
　　　　　　　　　　initial HiRDBファイル内セグメント数 segments〕…〕
　;

注

file name オペランド，initialオペランドを指定する場合は，必ずinitialize rdarea文の最後に指定してください。

(1)　RDエリア名

　　　〜＜識別子＞((1〜30))

再初期化するRDエリアの名称を指定します。

RDエリア名にALLは指定できません。RDエリア名を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。また，RDエリア名に空白が含まれる場合は，引用符で囲んでください。

(2)　with reconstruction

RDエリアを構成するすべてのHiRDBファイルを変更する場合に指定します。

このオペランドを指定した場合は，file nameオペランドに，変更するRDエリアを構成するすべてのHiRDBファイルを指定する必要があります。この場合，指定しなかった既存のHiRDBファイルの定義（file nameオペランドの定義）は無効となるため，使用しないHiRDBファイルはすべて削除されます。

このオペランドを省略した場合は，RDエリアの再初期化実行前の指定値を引き継ぎます。

このオペランドを省略してHiRDBファイルの定義を変更したい場合は，file nameオペランドで既存のHiRDBファイル名を指定し，変更したいオペランドに変更後の値を指定します。

(3)　open attribute ｛INITIAL｜DEFER｜SCHEDULE｝

RDエリアのオープン契機を指定します。

＜適用基準＞

特殊な運用形態でない場合は，通常INITIALを指定してください。

RDエリア数が多いためにHiRDBの開始に時間が掛かるなどの不都合を回避したい場合は，DEFERを指定してください。

＜規則＞

このオペランドは，システム共通定義のpd_rdarea_open_attribute_useオペランドにYを指定しているときだけ有効となります。

このオペランドはユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリアの場合に指定できます。ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリア以外のRDエリアに対してこのオペランドを指定しても，無視されます（ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリア以外のRDエリアは，INITIAL固定です）。

このオペランドを省略した場合，RDエリアの再初期化実行前の指定値を引き継ぎます。

このオペランドの指定値は，HiRDBの開始モードに関係なく次回起動後から有効となります。

該当するRDエリアに割り当てたHiRDBファイルシステム領域が，ほかのRDエリアに共有される場合，共有するRDエリアのオープン契機はすべて同じにする必要があります。同じでない場合，HiRDBファイルシステム領域を共有するRDエリアは，期待通りの効果が得られないことがあります。

INITIAL：

HiRDB開始時にHiRDBファイルシステム領域をオープンして，RDエリア情報をメモリ上に常駐させるので，最初のSQLから高速な運用ができます。

＜注意事項＞

HiRDB開始時のRDエリアの初期状態はオープンで，それ以降は障害閉塞への遷移を除いて，運用コマンドを実行しないかぎりRDエリアの状態は遷移しません。

INITIALの場合，クローズ状態のRDエリアはアクセスできません。

DEFER：

HiRDB開始時にHiRDBファイルシステム領域をオープンしないで，RDエリアを最初にアクセスするときにHiRDBファイルシステム領域をオープンします。そのときにRDエリア情報をメモリ上に常駐させるので，2回目以降のアクセスから高速な運用ができます。

＜注意事項＞

HiRDB開始時のRDエリアの初期状態はクローズで，各RDエリアに対して最初にアクセスするときに，該当するRDエリアをオープンします。以降は障害閉塞への遷移を除いて，運用コマンドを実行しないかぎりRDエリアの状態は遷移しません。

DEFERの場合，クローズ状態のRDエリアでもアクセスできます。

SCHEDULE：

HiRDB開始時にHiRDBファイルシステム領域をオープンしないで，HiRDB開始後，各トランザクション内でRDエリアに対して最初にアクセスするときに，HiRDBファイルシステム領域をオープンします。そのときにRDエリア情報をメモリ上に常駐させます。ただし，トランザクション終了時にそのトランザクション内でオープンしたHiRDBファイルシステム領域をクローズするため，2回目以降のアクセス時でもオープン以降の処理をして，トランザクションに掛かる負荷は増加します。

＜注意事項＞

HiRDB開始時のRDエリアの初期状態はクローズで，アクセスしたRDエリアをトランザクション内でだけオープンし，トランザクション終了時にトランザクション内でオープンしたすべてのRDエリアをクローズします。

また，pdopenコマンドを実行することで，閉塞クローズ状態になるまでの間はオープン状態にできます。そのほかの運用コマンドを使用すれば，RDエリアの状態を任意に遷移させることもできます。なお，障害事象を検知した場合には，障害閉塞となります。

SCHEDULEの場合，クローズ状態のRDエリアでもアクセスできます。

(4)　page ページ長 characters

　　　〜＜符号なし整数＞((4096〜30720))

RDエリアを構成するHiRDBファイルのページ長を変更する場合に，2,048の倍数のバイト単位で指定します。HiRDBファイルシステム領域作成時にセクタ長を指定した場合，セクタ長の倍数を指定してください。

このオペランドを省略した場合，RDエリアの再初期化実行前の指定値を引き継ぎます。

データディクショナリLOB用RDエリア，及びユーザLOB用RDエリアの場合は，8,192を指定してください。8,192以外の値を指定した場合でも，8,192が仮定されます。そのほかのRDエリアのページ長については，マニュアル「HiRDB システム導入・設計ガイド」を参照して適切な値を指定してください。

ここで指定したページ長は，HiRDBがRDエリアに対して入出力する最小の単位となります。

＜規則＞

再初期化するRDエリアに表がある場合，ページ長を小さくすると行が格納できなくなるときがあります（データ格納時にエラーになります）。

FIX表がある場合，次に示す値が行長より小さくなるときにはエラーとなります。行長は，ディクショナリ表のSQL_TABLESのROW_LENGTHカラムを検索すれば確認できます。

　（↓変更後ページ長÷1000↓）×1000

ページ長を，グローバルバッファに割り当てられているRDエリアのページ長の最大値よりも大きくした場合はエラーとなります。

再初期化対象のRDエリアにインデクスがある場合，インデクスのキー長が次の計算式より大きくなるようなページサイズを指定するとエラーになります。

MIN（RDエリアのページサイズ÷2−1242，4036）

（単位：バイト）

(5)　storage control segment セグメントサイズ pages

　　　〜＜符号なし整数＞((1〜16000))

セグメントサイズを変更する場合に指定します。1セグメントの大きさを，ページ数で指定してください。

このオペランドを省略した場合，RDエリアの再初期化実行前の指定値を引き継ぎます。

データディクショナリLOB用RDエリア，及びユーザLOB用RDエリアの場合は，1を指定してください。1以外の値を指定した場合でも，1が仮定されます。そのほかのRDエリアのセグメントサイズについては，マニュアル「HiRDB システム導入・設計ガイド」を参照して適切な値を指定してください。

(6)　max entries 最大リスト登録数

　　　〜＜符号なし整数＞((500〜50000，かつ500の倍数))

リスト用RDエリアに作成できるリストの最大数を，500の倍数で指定します。500の倍数でない値を指定した場合，500の倍数に切り上げた値が仮定されます。

このオペランドを省略した場合，RDエリアの再初期化実行前の指定値を引き継ぎます。

このオペランドをリスト用RDエリア以外のRDエリアに指定した場合，エラーとなります。

(7)　extension ｛use 増分セグメント数 segments｜nouse｝

再初期化するRDエリアに自動増分を適用するかどうかを指定します。このオペランドを省略した場合，RDエリアの再初期化実行前の指定値を引き継ぎます。

RDエリアの自動増分については，マニュアル「HiRDB システム運用ガイド」を参照してください。

＜前提条件＞

RDエリアがあるHiRDBファイルシステム領域に-eオプション又は-aオプションが指定されている必要があります。

use 増分セグメント数 segments：

RDエリアの自動増分を適用します。

RDエリアの自動増分は，データディクショナリ用RDエリア，データディクショナリLOB用RDエリア，ユーザ用RDエリア，ユーザLOB用RDエリア，レジストリ用RDエリア，及びレジストリLOB用RDエリアの場合に有効となります。ほかのRDエリアにuseを指定しても，nouseが仮定されます。

自動増分の契機は，RDエリア内の空きセグメント数が自動増分契機に達したときです。pd_rdarea_extension_timingオペランドで指定できます。

増分セグメント数　〜＜符号なし整数＞((1〜64000))

増分セグメント数を指定します。

pdfmkfs -eを指定したHiRDBファイルシステム領域の場合

HiRDBファイルのエクステント数は最大24で，これを超えるとエラーとなります。また，HiRDBファイルシステム領域の空きが不足したり，使用する領域がHiRDBファイルサイズの上限を超えたりすると，エラーとなります。

HiRDBファイルシステム領域当たりの最大増分回数は，HiRDBファイルシステム領域作成時の指定値で決まるため，HiRDBファイルシステム領域内のファイル数，増分頻度を考慮し最大増分回数を定義しておく必要があります。

pdfmkfs -aを指定したHiRDBファイルシステム領域の場合

HiRDBファイルを格納しているディスクに，必要なHiRDBファイルシステム領域を確保する容量が不足していたり，使用する領域がHiRDBファイルサイズの上限を超えたりすると，エラーとなります。

nouse：

RDエリアの自動増分機能を適用しません。

＜注意事項＞

新たに追加される未使用セグメントは，RDエリアを構成するHiRDBファイルの最終ファイルに追加されます。

HiRDBファイルシステム領域の容量不足によって，未使用セグメントを確保できない場合，RDエリアの拡張又は再初期化をするか，データベース再編成ユティリティで表の再編成をしてください。

エクステントの数が上限値を超えた場合は，RDエリアがあるHiRDBファイルシステム領域のエクステントを統合するか，又はRDエリアに別のHiRDBファイルシステム領域のHiRDBファイルを追加してください。

エクステントを統合するには，pdfbkupでバックアップを取得し，pdfmkfsでHiRDBファイルシステム領域の初期設定をし，pdfrstrでバックアップから回復します。

RDエリア自動増分処理の開始から終了までの間，最終ファイルに対して排他が掛かります。

(8)　without lock table

再初期化するRDエリア内の表に対して，データベース構成変更ユティリティ（pdmod）が排他を掛けることを抑止したい場合に指定します。

この指定によって，再初期化するRDエリア内に複数のRDエリアに分割格納した表がある場合，再初期化対象外のRDエリアに格納された表に対してSQLが実行できるようになります。

without lock tableオペランドの指定有無による再初期化中のSQL実行可否を次の図，および表に示します。

図7‒4　without lock tableオペランドの指定有無による再初期化中のSQL実行可否

表7‒2　without lock tableオペランドの指定有無による再初期化中のSQL実行可否

操作対象の表

格納先RDエリア

without lock table指定によるSQL実行可否

指定なし

指定あり

T1

RDAREA2

×

（閉塞中エラー（KFPA11920-E）又は排他待ち）

同左

T2

RDAREA2

×

（閉塞中エラー（KFPA11920-E）又は排他待ち）

同左

RDAREA1

×

（排他待ち）

○

T3

RDAREA2

×

（閉塞中エラー（KFPA11920-E）又は排他待ち）

同左

RDAREA3

○

同左

（凡例）

○：指定できます。

×：指定できません。

(a)　RDエリア種別によるwithout lock tableオペランドの指定可否

再初期化対象RDエリアのRDエリア種別によるwithout lock tableオペランドの指定可否を次の表に示します。

表7‒3　RDエリア種別によるオペランドの指定可否

RDエリア種別

without lock tableオペランドの指定可否

ユーザ用

共用RDエリア

×

上記以外

○

データディクショナリLOB用

ユーザLOB用

リスト用

レジストリ用

レジストリLOB用

×

（凡例）

○：指定できます。

×：指定できません（KFPX24281-Eエラーとなります）。

(b)　インデクス定義の条件によるwithout lock tableオペランドの指定可否

再初期化対象RDエリアに格納している横分割表に対する，インデクス定義の条件によるwithout lock tableオペランドの指定可否を次の表に示します。

表7‒4　横分割表に対するインデクス定義の条件によるオペランドの指定可否

インデクス定義の条件

without lock table

オペランドの

指定可否

インデクスの定義

インデクスの横分割

インデクスの種別

表の分割方法

インデクスの分割方法

なし

−

−

−

−

○

あり

なし

−

−

−

×

あり

分割キー

インデクス

−

−

○※

非分割キー

インデクス

サーバ内分割

−

○※

サーバ間分割

（サーバ内

分割なし）

−

×

サーバ間分割

（サーバ内

分割あり）

表の分割数と

一致する

○※

表の分割数と

一致しない

×

（凡例）

○：指定できます。

×：指定できません（KFPX24281-Eエラーとなります）。

−：該当しません。

注※

横分割表とインデクスをどちらも再初期化対象RDエリアに格納していて，インデクス定義時に指定したインデクス格納先RDエリアの指定順序と，表定義時に指定した表格納先RDエリアの指定順序が異なる場合は，without lock tableオペランドは指定できません（KFPX24281-Eエラーとなります）。without lock tableオペランドを指定できないインデクスの定義例を次の図に示します。

図7‒5　without lock tableオペランドを指定できないインデクス定義例

再初期化対象RDエリアに複数の表を格納している場合，指定できないインデクスを定義した表が1つでもあれば，without lock tableオペランドは指定できません。

(9)　file name "HiRDBファイルシステム領域名/HiRDBファイル名"

　　　〜((167文字以内))

再初期化するRDエリアを構成する，HiRDBファイルシステム領域の名称とHiRDBファイルの名称を指定します。

HiRDBファイルシステム領域名/HiRDBファイル名は引用符（"）で囲んで指定してください。

＜規則＞

このオペランドを省略した場合，RDエリアの再初期化実行前の指定値を引き継ぎます。

引用符内に改行文字を含まないようにしてください。

一つのRDエリアに対して，最大16個のHiRDBファイルを割り当てられます。

指定したHiRDBファイルシステム領域に，pdmodがHiRDBファイルを作成します。既にHiRDBファイルがある場合は，pdmodがHiRDBファイルをいったん削除し，新たに作成するため，HiRDBファイルに対して権限がないときはエラーとなります。

HiRDBファイルシステム領域名/HiRDBファイル名は，HiRDBシステム内で重複しないようにしてください。

リスト用RDエリアの場合は，使用目的がWORKのHiRDBファイルシステム領域を使用してください。

HiRDBファイルシステム領域名　〜＜パス名＞

HiRDBファイルシステム領域の名称を指定します。

HiRDBファイル名　〜＜HiRDBファイル名＞((1〜30文字))

HiRDBファイルの名称を指定します。plで始まる名称は指定できません。

(10)　initial HiRDBファイル内セグメント数 segments

　　　〜＜符号なし整数＞

HiRDBファイルのセグメント数を指定します。

このオペランドを省略した場合，RDエリアの再初期化実行前の指定値を引き継ぎます。

セグメント数は，データページ部分の総ページ数÷セグメントサイズで求めてください。データページ部分の総ページ数については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。また，HiRDBファイルの大きさが64ギガバイトを超えるようなセグメント数は指定できません。

7.5.4　再初期化後の表，及びインデクスの状態

再初期化するRDエリアに表，及びインデクスがある場合の，再初期化後の状態を図「再初期化した後の表，及びインデクスの状態（1/2）」及び図「再初期化した後の表，及びインデクスの状態（2/2）」に示します。また，再初期化するRDエリアに表，LOB属性の抽象データ型列，プラグイン列，及びプラグインインデクスがある場合の，再初期化後の状態を図「再初期化した後の表，LOB属性の抽象データ型列，プラグインが提供する抽象データ型列，及びプラグインインデクスの状態」に示します。

なお，RDエリアの再初期化時にKFPX14255-W，KFPX24242-Wメッセージが出力され，その原因がRDエリアの状態不正の場合は，マニュアル「HiRDB システム運用ガイド」のRDエリアの容量を大きく，又は属性を変更する方法（RDエリアの再初期化）を参照してください。

図7‒6　再初期化した後の表，及びインデクスの状態（1/2）

図7‒7　再初期化した後の表，及びインデクスの状態（2/2）

図7‒8　再初期化した後の表，LOB属性の抽象データ型列，プラグインが提供する抽象データ型列，及びプラグインインデクスの状態

再初期化するRDエリアに格納されている表に参照制約が定義されている場合，検査保留状態は変更されます。検査保留状態は，ディクショナリ表（SQL_TABLES表のCHECK_PEND列，及びSQL_REFERENTIAL_CONSTRAINTS表のCHECK_PEND列），及びRDエリア中の表情報で管理しています。検査保留状態については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

システム定義のpd_check_pendingオペランドにUSEを指定している場合，RDエリアを再初期化したときに変更される検査保留状態の例を次に示します。

インデクスだけを格納しているRDエリアがある場合

T2（参照表）がT1（被参照表）を参照していて，かつRDエリア3がT1の主キーに付いているインデクスだけを格納している場合，再初期化で変更される検査保留状態を次に示します。

再初期化するRDエリア

T2（参照表）の検査保留状態

ディクショナリ表

RDエリア2の表情報

RDエリア1

P

P

RDエリア2

N

N

RDエリア3

−

−

（凡例）

P：検査保留状態を設定します。

N：検査保留状態を解除します。

−：検査保留状態を変更しません。

横分割表の場合

T2（参照表）及びT3（参照表）がT1（被参照表）を参照していて，かつT1及びT3が横分割表の場合，再初期化で変更される検査保留状態を次に示します。

再初期化するRDエリア

T2（参照表）の検査保留状態

T3（参照表）の検査保留状態

ディクショナリ表

RDエリア2の表情報

ディクショナリ表

RDエリア2の表情報

RDエリア3の表情報

RDエリア1

P

P

P

P

P

RDエリア2

N

N

P

N

P

RDエリア3

−

−

−

−

N

（凡例）

P：検査保留状態を設定します。

N：検査保留状態を解除します。

−：検査保留状態を変更しません。

インナレプリカ機能を使用している場合

RDエリア1，RDエリア2のレプリカRDエリア（世代番号1）であるRDエリア1_1，RDエリア2_1がそれぞれあり，かつT2（参照表）がT1（被参照表）を参照している場合，再初期化で変更される検査保留状態を次表に示します。

再初期化するRDエリア

T2（参照表）の検査保留状態

ディクショナリ表

RDエリア2の表情報（世代番号0）

RDエリア2_1の表情報（世代番号1）

RDエリア1

P

P

−

RDエリア2

−

N

−

RDエリア1_1

P

−

P

RDエリア2_1

−

−

N

（凡例）

P：検査保留状態を設定します。

N：検査保留状態を解除します。

−：検査保留状態を変更しません。

7.5.5　実行結果リストの出力

RDエリアの再初期化を実行した場合，実行結果リストが出力されます。出力される実行結果リスト（表，インデクス情報）を次に示します。

                                  [1]       [2]     [9]
 pdmod -information-          yyyy-mm-dd  hh:mm:ss  db1
    initialize rdarea name =   USER_PUBLIC_1 [3]
      initialized table
   [4] USERA.在庫
       USERA.社員
      initialized index                 rdarea name
   [5] USERA.従業員番号              [6] USER_PUBLIC_1
       USERA.品名                        USER_PUBLIC_2
      unfinished index                  rdarea name
   [7] USERA.氏名                    [8] USER_PUBLIC_1
     initialize LOB data(table name)    rdarea name
  [10] USERA.在庫                   [11] USER_LOB_1
     initialized sequence
  [12] USERA.商品通番
     pending status table               constraint name
  [13] USERA.給与(1)                [14] *氏名1
       USERA.課長(1)                [15] 氏名2
     release pending status table
  [16] USERA.社員(1)
  [17] *USERA.品名(1)
     access prohibited(LOB rdarea name) table name
  [18] USER_LOB_2                   [19] USERA.住所

［説明］

pdmodを実行した日付

yyyy - mm - dd（年(西暦)-月-日）

pdmodを実行した時刻

hh : mm : ss（時 : 分 : 秒）

再初期化したRDエリア名称

再初期化したRDエリア内の表識別子

認可識別子．表識別子

初期化されたインデクス

認可識別子．インデクス識別子

インデクスのデータが削除されたRDエリアの名称

インデクスのデータが削除された後，未完状態（使用不可の状態）となったインデクス

未完状態（使用不可の状態）となったインデクスのRDエリア名称

HiRDB識別子

LOB列構成基表の表識別子

ユーザLOB用RDエリアの名称

初期化された順序数生成子

検査保留状態となった表の表名と世代番号※1

*が付いている制約名は再初期化実行前から検査保留状態であった制約名

検査保留状態となった制約名

検査保留状態が解除された表の表名と世代番号※1※2

*が付いている表は検査保留状態が解除された分割表の表名と世代番号※1※3

アクセス禁止状態となったLOB属性の抽象データ型列を格納しているユーザLOB用RDエリア名

アクセス禁止状態となったLOB属性の抽象データ型列に対応する表の表名

注※1

世代番号はインナレプリカ機能を使用している場合にだけ表示されます。

注※2

インナレプリカ機能使用時は，表示されている世代のRDエリアの表情報だけ検査保留状態が解除されるため，ほかの世代は検査保留状態のままとなっている場合があります。また，ほかの世代がすべて非検査保留状態でも，ディクショナリ表の検査保留状態は解除されません。

注※3

分割表の検査保留状態が解除された場合，再初期化対象のRDエリアの表情報だけ検査保留状態が解除されるため，分割表を格納するほかのRDエリアが検査保留状態のままとなっていることがあります。また，分割表を格納するほかのRDエリアがすべて非検査保留状態でも，ディクショナリ表の検査保留状態は解除されません。

7.5.6　注意事項

RDエリアの再初期化後は，データベース複写ユティリティ（pdcopy）で再初期化したRDエリア，マスタディレクトリ用RDエリア，及びデータディクショナリ用RDエリアのバックアップを取得しておいてください。データベース複写ユティリティいついては，「データベース複写ユティリティ（pdcopy）」を参照してください。

RDエリアの再初期化処理中に異常が発生した場合，再初期化対象のRDエリアの回復処理はしません。この場合，既にHiRDBファイルが削除されていたり，初期化中でデータベースが破壊されていたりすることがあるため，必ずこのRDエリアに対して再度再初期化を実行してください。

再初期化が正常終了した後のRDエリアは，コマンド閉塞状態かつクローズ状態のままです。したがって，このRDエリアを使用する場合には，運用コマンドでRDエリアを閉塞解除及びオープン状態にする必要があります。

RDエリアを構成するHiRDBファイルの個数，又は名称を変更した場合，使用しなくなったHiRDBファイルは削除されます。

再初期化後のRDエリア内の格納データ，定義情報，及びユーザの作業は次のようになります。

RDエリア内に表がある場合：

RDエリア内のデータはすべて削除され，表の定義情報だけが引き継がれます。表が分割表の場合は，再初期化対象のRDエリアに格納されているデータだけ削除されます。その表にインデクスがある場合は，削除された表のデータに対応するインデクスのキーデータも同時に削除され，定義情報だけが引き継がれます。ただし，表が分割表でかつインデクスが分割キーに対応していない場合は，インデクスは未完状態となります。

表にLOB列がある場合は，そのLOBデータも削除されます。

表に抽象データ型列がある場合は，通常の表と同じように扱われます。ただし，LOB属性の抽象データ型列がある場合は，対応するユーザLOB用RDエリア内の抽象データ型列のデータも削除されます。

表にプラグインインデクスがある場合は，プラグインインデクスのデータも同時に削除され，定義情報だけが引き継がれます。

再初期化対象RDエリアに格納されている表の，インデクス及びLOB列がほかのRDエリアに格納されている場合，インデクス及びLOB列を格納しているRDエリアは閉塞解除状態かつオープン状態でなければなりません。

［ユーザの作業］

再初期化後は，データベース作成ユティリティ，データベース再編成ユティリティ，UAPなどを使用してデータを回復します。ただし，UAPを使用する場合，未完状態のインデクスがあるとアクセスできません（KFPA11879-Eエラー）。そのため，次のどちらかの作業をする必要があります。

・データベース再編成ユティリティ（pdrorg）でインデクスを定義している表を再編成（インデクス一括作成モード）するか，又はインデクスを再作成します。

・インデクスを定義している表を初期化（SQLのPURGE TABLE文を実行）し，表及びインデクスのデータを削除します。

RDエリア内にインデクスがある場合：

RDエリア内のインデクスのキーデータはすべて削除されます。インデクスに対応するデータが，ほかのRDエリアにある場合，インデクスは未完状態となります。

［ユーザの作業］

再初期化後にインデクスが初期化状態となっていたら，そのまま使用できます。未完状態になっていたら，次のどれかの作業をする必要があります。

・データベース再編成ユティリティ（pdrorg）でインデクスを定義している表を再編成（インデクス一括作成モード）するか，又はインデクスを再作成します。

・インデクスを定義している表を初期化（SQLのPURGE TABLE文を実行）し，表及びインデクスのデータを削除します。

・インデクスを定義している表を格納しているRDエリアを再初期化します。ただし，インデクスを格納しているRDエリアは閉塞解除状態かつオープン状態でなければなりません。

RDエリアがユーザLOB用RDエリアの場合：

RDエリア内のLOBデータはすべて削除されます。ただし，そのLOBデータに対応するLOB列構成基表のデータはそのまま残ります。LOB列構成基表のデータが残っている場合は，LOB列は長さ０のデータとして扱われます。

［ユーザの作業］

再初期化後は，データベース作成ユティリティ，データベース再編成ユティリティ，UAPなどを使用してデータを回復します。

RDエリアがLOB属性の抽象データ型列を格納しているユーザLOB用RDエリアの場合：

RDエリア内のデータはすべて削除され，アクセス禁止状態となります。データに対応するLOB属性の抽象データ型列構成基表（抽象データ型を含む表で，表から抽象データ型データを除いた部分）はそのまま残るため，LOB属性の抽象データ型列構成基表から検索された場合，エラーメッセージ「KFPA11891-E」が出力されます。

［ユーザの作業］

アクセス禁止状態となったLOB属性の抽象データ型列の格納ユーザLOB用RDエリアをアクセスするには，次のどれかの作業をする必要があります。

・LOB属性の抽象データ型列構成基表を初期化（SQLのPURGE TABLE文を実行）し，データを削除します。

・データベース作成ユティリティ（pdload）を作成モード（-d）で実行します。

・LOB属性の抽象データ型列構成基表格納RDエリアを再初期化します。ただし，LOB属性の抽象データ型列格納RDエリアは閉塞解除かつオープン状態でなければなりません。

RDエリアがプラグインインデクスを格納しているユーザLOB用RDエリアの場合：

RDエリア内のデータはすべて削除されます。再初期化後のプラグインインデクスは未完状態となります。未完状態となったプラグインインデクスにアクセスした場合，エラーメッセージ「KFPA11879-E」が出力されます。

［ユーザの作業］

未完状態となったプラグインインデクスは，データベース再編成ユティリティのインデクスの再作成で回復します。

レジストリ用RDエリアの再初期化時にKFPX24231-Wメッセージが出力され，レジストリLOB用RDエリアを再初期化していない場合には，レジストリLOB用RDエリアも再初期化する必要があります。また，再初期化後にプラグインが使用するレジストリ情報の再登録が必要です。

再初期化対象のRDエリアに格納されている表を基にリストを作成している場合は，そのリストを使用する前に必ずリストを再作成してください。

再初期化するRDエリアに被参照表，参照表，又は検査制約表が格納されている場合，検査保留状態を変更します。検査保留状態は，ディクショナリ表とRDエリア中の表情報で管理されていて，RDエリアの再初期化では次のとおり検査保留状態を変更します。なお，検査保留状態については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

被参照表（主キーを定義した表）を格納しているRDエリアを再初期化した場合，ほかのRDエリアで，その表と参照関係にある参照表（外部キーを定義した表）に検査保留状態を設定します。再初期化対象RDエリアがレプリカRDエリアの場合は，再初期化対象RDエリアと同一世代のRDエリアに格納されている参照表に検査保留状態を設定します。ただし，システム定義のpd_check_pendingオペランドにNOUSEが指定されている場合は，検査保留状態は変更しません。また，主キーに付いているインデクスだけを格納しているRDエリアを再初期化した場合も，検査保留状態は変更しません。

参照表に検査保留状態を設定できなかった場合，KFPX24242-Wのメッセージを出力します。この場合は次の要因が考えられます。

・参照表を格納しているRDエリアが閉塞状態です。

・検査保留状態となる参照表が，ほかからアクセス中です。

・レプリカRDエリア再初期化時に，同一世代のRDエリアがありません。

・そのほかのI/Oエラー，又はRDエリアのアクセスエラーが発生しました。

このメッセージが出力された場合は，エラーの原因を取り除き，検査保留状態の強制設定をしてください。

参照表を格納しているRDエリアを再初期化した場合，参照表が検査保留状態となっているときは，検査保留状態を解除します。ただし，次の場合はRDエリア中の表情報の検査保留状態だけを解除し，ディクショナリ表の検査保留状態は解除しません。

・参照表が分割されている場合

・参照表を格納しているRDエリアがインナレプリカ機能を使用している場合

・システム定義のpd_check_pendingオペランドにNOUSEを指定している場合

ディクショナリ表の検査保留状態が解除されなかった場合は，pdconstckで整合性チェックをして，ディクショナリ表の検査保留状態を解除してください。

検査制約表を格納しているRDエリアを再初期化した場合，検査制約を定義した表が検査保留状態となっていれば，検査保留状態を解除します。ただし，次の場合にはRDエリア中の表情報の検査保留状態だけを解除し，ディクショナリ表の検査保留状態は解除しません。

・検査制約を定義した表が分割されている場合

・検査制約定義のある表を格納しているRDエリアがインナレプリカ機能を使用している場合

・システム定義のpd_check_pendingオペランドにNOUSEを指定している場合

ディクショナリ表の検査保留状態が解除されなかった場合は，pdconstckで整合性チェックをして，ディクショナリ表の検査保留状態を解除してください。

インナレプリカ機能を適用しているRDエリア（オリジナルRDエリア及びレプリカRDエリア）を再初期化する場合，指定するHiRDBファイルのHiRDBファイルシステム領域が，対応する世代に登録されている必要があります。

レプリカRDエリアを再初期化する場合，再初期化対象のRDエリアの表，インデクス，及びLOB列に関連する，レプリカRDエリアの世代がないときはエラーとなります。

インナレプリカ機能を適用していないRDエリアを再初期化する場合，世代管理していないHiRDBファイルシステム領域のHiRDBファイルを指定してください。

データ連動の抽出の対象となる表が格納されているRDエリアは，再初期化をしないでください。再初期化をすると，以降のHiRDB Datareplicator連携は不正になります。

改竄防止表が格納されているRDエリアは再初期化できません。

インメモリRDエリアは再初期化できません。いったんインメモリ化を解除してからRDエリアを再初期化してください。

RDエリア内に順序数生成子がある場合，順序数生成子の定義情報だけが引き継がれ，現在値は順序数生成子定義時の状態に戻ります。

インナレプリカグループ内のRDエリアを再初期化した場合，KFPX24282-Iメッセージを表示します。このメッセージが表示された場合，インナレプリカグループ内のすべてのRDエリアに対して，構成情報の複写（データベース構成変更ユティリティのdefine copy rdarea文）を実行する必要があります。KFPX24282-Iメッセージの出力条件は，マニュアル「インナレプリカ機能 HiRDB Staticizer Option」の「インナレプリカグループ内のRDエリアの構成変更と構成情報の複写」の「インナレプリカグループ内のRDエリアの構成変更」を参照してください。

7.6　RDエリアの削除

7.6.1　機能

不要になったRDエリア（レプリカRDエリアを含む）を削除する機能です。この機能でRDエリアを削除し，別のRDエリアを追加することで，RDエリアの再定義ができます。RDエリアの削除の概要を次の図に示します。

図7‒9　RDエリアの削除の概要

●前提条件

RDエリア内に表，インデクス，LOB列，及び順序数生成子がある場合，そのRDエリアは削除できません。また，レプリカRDエリアが定義されている場合も削除できません。削除対象がレプリカRDエリアの場合は，表，インデクス，LOB列，及び順序数生成子があっても削除できます。

削除するRDエリアの状態は，閉塞状態かつクローズ状態でなければなりません。共用RDエリアの場合は，すべてのバックエンドサーバで閉塞状態かつクローズ状態でなければなりません。

7.6.2　使用例

データべース構成変更ユティリティ（RDエリアの削除）の使用例を次に示します。

(1)　RDエリアを削除する例

次に示すRDエリアを削除します。
・PDBUSER04

［概要］

［制御文ファイル（/usr/seifile/mofl04）の内容］

 /* ユーザ用RDエリアの削除 */
 remove rdarea PDBUSER04 ;

［説明］

削除するRDエリアの名称を指定します。

7.6.3　制御文（remove rdarea文）

remove rdarea RDエリア名
　;

(1)　RDエリア名

　　　〜＜識別子＞((1〜30))

削除するRDエリアの名称を指定します。

RDエリア名にALLは指定できません。RDエリア名を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。また，RDエリア名に空白が含まれる場合は，引用符で囲んでください。

表，インデクス，及びLOB列が格納されているRDエリアの場合，そのRDエリアは削除できません。また，レプリカRDエリアが定義されている場合も削除できません。

7.6.4　注意事項

RDエリアを削除した場合，そのRDエリアで使用していたHiRDBファイルも削除されます。

RDエリアの削除処理中に異常が発生した場合，削除対象のRDエリアの回復処理はされません。この場合，既にHiRDBファイルが削除されていることがあるため，該当するRDエリアに対して必ず削除処理を再実行してください。

RDエリアを削除した後は，HiRDBを正常終了させてから，システム共通定義のpdbufferオペランドを変更する必要があります。変更しないと必要以上にメモリを使用してしまいます。システム共通定義については，マニュアル「HiRDB システム定義」を参照してください。

解析情報表及び運用履歴表を格納するデータディクショナリ用RDエリアを削除した場合，その中に格納されている解析情報表及び運用履歴表も削除されます。

インメモリRDエリアは削除できません。いったんインメモリ化を解除してからRDエリアを削除してください。

レプリカRDエリアを削除する場合，RDエリアのインナレプリカ属性がカレントのときは，pddbchgコマンドでサブにする必要があります。

レプリカRDエリアを削除した場合，pdcopyでオリジナルRDエリア，マスタディレクトリ用RDエリア，及びデータディクショナリ用RDエリアのバックアップを取得してください。

オリジナルRDエリアに対するすべてのレプリカRDエリアを削除した場合，そのRDエリアに対するインナレプリカ機能の適用は解除されます。

参照表又は検査制約表を格納しているRDエリアがあり，かつインナレプリカ機能を使用している場合，特定のレプリカRDエリア中の表情報だけが検査保留状態のときは，表情報が検査保留状態のレプリカRDエリアを削除すると全世代が非検査保留状態になりますが，ディクショナリ表中の検査保留状態は解除されません。ディクショナリ表の検査保留状態が解除されなかった場合は，pdconstckで整合性チェックをして，ディクショナリ表の検査保留状態を解除してください。

7.7　RDエリアの移動

7.7.1　機能

HiRDB/パラレルサーバの場合に，RDエリアを別のサーバに移動する機能です。

既存のバックエンドサーバにRDエリアを移動する場合は，オンライン中のRDエリア移動機能を使用すると，HiRDBを再起動しなくても，移動先バックエンドサーバに移動したRDエリアが使用できるようになります。

RDエリアの移動の概要を次の図に示します。

図7‒10　RDエリアの移動の概要

●前提条件

RDエリアを移動する場合，移動対象のRDエリアは閉塞状態かつクローズ状態でなければなりません。共用RDエリアの場合は，すべてのバックエンドサーバで閉塞状態かつクローズ状態でなければなりません。

RDエリアを移動する場合，事前にpdcopyで移動対象のRDエリア，マスタディレクトリ用RDエリア，及びデータディクショナリ用RDエリアのバックアップを取得してください。

RDエリアを移動する場合，移動先のサーバのリソース所要量を見直しておく必要があります。見直した値で定義を修正してください。

RDエリアを移動する場合，関連するRDエリアをすべて移動しないとエラーとなります。関連するRDエリアとは，次のようなRDエリアのことをいいます。

非分割表の場合は，表，インデクス，及びLOBデータを格納しているRDエリア

横分割表の場合は，分割条件に対応する表，インデクス，及びLOBデータを格納しているRDエリア

非分割キーインデクス（サーバ内分割をしている非分割キーインデクスも含む）がある場合は，そのインデクスの分割数が表の分割数と一致しているときだけRDエリアの移動ができます。一致していない場合は，非分割キーインデクスを削除し，RDエリアの移動完了後，非分割キーインデクスを再作成してください。

インデクスの分割数が表の分割数と一致する例，および非分割キーインデクスでインデクスの分割数と表の分割数が一致しない例を次の図に示します。

図7‒11　非分割キーインデクスでインデクスの分割数と表の分割数が一致する例

図7‒12　非分割キーインデクスでインデクスの分割数と表の分割数が一致しない例

非分割キーインデクスにUNIQUEを指定している場合は，再作成できないこともあります。詳細については，マニュアル「HiRDB SQLリファレンス」のCREATE INDEXのUNIQUEを参照してください。

非分割キー以外に主キーを定義している場合は，対象となる表のデータを退避した後に表を削除し，RDエリアの移動完了後に表の再定義，及びデータの回復をする必要があります。ただし，分割キー以外に主キーを定義するとユニーク指定のインデクスとなるため，表を再定義できないこともあります。

インナレプリカ機能を使用している場合，オリジナルRDエリアとレプリカRDエリア

移動先のサーバに対して，あらかじめHiRDBファイルシステム領域の世代登録をしておく必要があります。

一時表用RDエリアに対して，RDエリアの移動はできません。実行するとエラーとなります。一時表用RDエリアを移動する場合は，remove rdarea文で該当するRDエリアを削除し，create rdarea文で移動先のサーバを指定して再作成してください。

オンライン中のRDエリア移動機能を使用(norestartオペランドを指定)する場合，次のすべての条件を満たす必要があります。

移動先のバックエンドサーバに，移動対象RDエリアのページサイズ以上のバッファ長のグローバルバッファが必要です。

移動先のバックエンドサーバのRDエリアの数，及びRDエリアを構成するHiRDBファイルの数は，次の条件を満たすようにしてください。

・移動先のバックエンドサーバのRDエリアの数＋移動するRDエリアの数≦システム共通定義のpd_max_rdarea_noの指定値

・移動先のバックエンドサーバのRDエリアを構成するHiRDBファイルの数＋移動するRDエリアを構成するHiRDBファイルの数≦pd_max_file_noの指定値

移動対象RDエリアに格納されている表を基に作成したリストがある場合は，移動前にリストを削除しておく必要があります。削除していないと，エラーとなります。削除したリストは移動後に再作成してください。

ディクショナリサーバが移動対象RDエリアの格納表に排他を掛けるため，RDエリアの移動に必要な排他制御用プールサイズを確保する必要があります。排他制御用プールサイズは，各サーバのサーバ定義のpd_lck_pool_sizeオペランドで指定してください。データベース構成変更ユティリティが必要とする排他資源数の見積もりについては，マニュアル「HiRDB システム定義」を参照してください。

次の条件をどちらも満たす場合，RDエリアの移動後のファイル転送は不要です。

・移動するRDエリアを構成するHiRDBファイルシステム領域が共有ディスク装置にある

・移動元バックエンドサーバと移動先バックエンドサーバの両方から同じパス名で参照できる

上記の条件を満たさない場合，pdmodコマンドでRDエリアを移動した後，rcp又はftpなどでファイル転送を行う必要があります。そのため，オンライン中にRDエリアを移動した場合，ファイル転送が完了するまで移動したRDエリアは使用できません。

系切り替え機能を適用した環境でRDエリアの移動を実行する場合，次のすべての条件を満たす必要があります。

RDエリア単位のディスク切り替えを行うため，RDエリアごとに共有ディスクを割り当ててください。ディスク定義数の上限はクラスタソフトウェアによって異なるため，使用しているクラスタソフトウェアのマニュアルで確認してください。

次に示すRDエリアの移動を行った場合，移動したRDエリアの共有ディスクが移動先サーバの共有リソースとなるように，クラスタソフトウェアの設定を変更してください。また，OSのコマンドで移動元での共有ディスクの非活性化，及び移動先での共有ディスクの活性化を行ってください。

・影響分散スタンバイレス型系切り替えを適用した環境で，RDエリアを移動した場合

・影響分散スタンバイレス型系切り替え以外の系切り替え機能を適用した環境で，異なるユニットのバックエンドサーバにRDエリアを移動した場合

共有リソースの設定変更手順は，次のとおりです。

・クラスタソフトウェアにHAモニタを使用する場合

実行サーバでmondeviceコマンドを使用して，移動元サーバからの共有リソースの削除，及び移動先サーバへの共有リソースの追加をしてください。実行サーバでmondeviceを実行したときに待機サーバが起動していなかった場合，待機サーバへの共有リソース変更が行われません。その場合は待機サーバのサーバ定義を手動で変更してください。詳細はマニュアル「高信頼化システム監視機能 HAモニタ」を参照してください。

・上記以外のクラスタソフトウェアを使用する場合

クラスタソフトウェアのマニュアルを参照して，共有リソースの設定を変更してください。使用しているクラスタソフトウェアが，HiRDBサーバ稼働中に共有リソースの設定変更をできない場合は，HiRDBサーバを停止して設定を変更してください。

系切り替え環境でのRDエリアの移動手順を次の図に示します。

図7‒13　系切り替え環境でのRDエリアの移動手順

［説明］

影響分散スタンバイレス型系切り替え機能を使用し，ユニット1に障害が発生した場合は，ユニット2でBES1がゲストBESとして処理を実行し，ユニット3でBES2がゲストBESとして処理を実行します。

1.RDエリア移動機能でBES1のRDAREA1をBES2に移動します。

2.RDAREA1の共有ディスクがBES2の共有リソースとなるように，クラスタソフトウェアの設定を変更します。また，OSのコマンドで移動元での共有ディスクの非活性化，及び移動先での共有ディスクの活性化を行います。

3.ユニット1に障害が発生し，BES1とBES2が系切り替えすると，BES1の共有ディスクはユニット2と接続し，BES2の共有ディスクはユニット3と接続します。そのため，BES2に移動したRDAREA1は系切り替え後も使用できます。

上記手順2.の共有ディスクの設定変更を行わないと，系切り替え後にユニット3からRDAREA1の共有ディスクを参照できなくなり，RDAREA1が使用できない状態になります。

7.7.2　使用例

データべース構成変更ユティリティ（RDエリアの移動）の使用例を次に示します。

(1)　RDエリアを移動する例

次に示すRDエリアを，別のバックエンドサーバbes2へ移動します。
・PDBUSER01，PDBUSER02，PDBULOB01

［実行するコマンド］

pdmod -a /usr/seifile/mofl01

［制御文ファイル（/usr/seifile/mofl01）の内容］

 /* RDエリアの移動 */
  move rdarea PDBUSER01,PDBUSER02,PDBULOB01   .......1
              to bes2 ;   ...........................2

［説明］

移動するRDエリアの名称を指定します。

移動先のバックエンドサーバの名称を指定します。

7.7.3　制御文（move rdarea文）

move rdarea 〔norestart〕
　　　　　　RDエリア名
　　　　　　　〔globalbuffer バッファ名〕
　　　　　　〔，RDエリア名
　　　　　　　　　〔globalbuffer バッファ名〕…〕
　　　　　　to サーバ名
　;

(1)　norestart

RDエリアの移動完了後，HiRDBを再起動しないでRDエリアを使用する場合に指定します。オンライン中にRDエリアを移動できます。

(2)　RDエリア名

　　　〜＜識別子＞((1〜30))

移動するRDエリアの名称を指定します。

RDエリアを複数指定する場合，同一サーバ内のRDエリアでなければなりません。

RDエリア名には関連するRDエリアをすべて指定しなければなりません。関連するRDエリアについては，「機能」を参照してください。

RDエリア名にALLは指定できません。RDエリア名を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。また，RDエリア名に空白が含まれる場合は，引用符で囲んでください。

(3)　globalbuffer バッファ名

　　　〜＜識別子＞((1〜16))

移動するRDエリアに一時的にグローバルバッファを割り当てたい場合，移動先のバックエンドサーバにあるグローバルバッファの名称を指定します。

グローバルバッファについては，pdbuflsコマンドで確認できます。

＜規則＞

このオペランドを指定する場合は，norestartオペランドの指定が必要です。norestartオペランドの指定がない場合，このオペランドを指定したときにはエラーとなります。

インデクス用，又はLOB用のグローバルバッファは指定できません。

指定するグローバルバッファのグローバルバッファ長は，移動対象RDエリアのページ長以上でなければなりません。グローバルバッファ長は，pdbuflsコマンドで確認できます。

ここで指定したグローバルバッファの割り当ては，次回のHiRDBの正常開始時，又は計画停止後の再開始時には無効となります。そのため，次回のHiRDBの正常開始時，又は計画停止後の再開始時には，システム共通定義のグローバルバッファを割り当てます。

このオペランドを省略した場合，移動したRDエリアにはグローバルバッファを割り当てません。そのため，移動したRDエリアは次回HiRDBの正常開始後に使用できます。

このオペランドを指定して，HiRDBがグローバルバッファの割り当てに失敗した場合，RDエリアの移動はエラーとなります。

(4)　to サーバ名

　　　〜＜識別子＞((1〜8))

移動先のサーバ名（バックエンドサーバ）を指定します。

バックエンドサーバ以外のサーバ名，又はHiRDBにないサーバ名を指定した場合，エラーとなります。

7.7.4　実行結果リストの出力

RDエリアの移動を実行した場合，実行結果リストが出力されます。

出力される実行結果リストを次に示します。

                                  [1]       [2]        [3]
pdmod -information-           yyyy-mm-dd  hh:mm:ss     db1
                    [4]     [5]
   move rdarea from bes1 to bes2
     rdarea name = RDUSER1 [6]
       table name
     [7] USERA.在庫
         USERA.社員
       index name
     [8] USERA.従業員番号
         USERA.品名
       sequence name
     [9] USERA.商品通番
       LOB data(table name)
    [10] USERA.在庫
       rdarea name = PDUSER1_1
         original rdarea name = PDUSER1 [11]

［説明］

pdmodを実行した日付

yyyy - mm - dd（年(西暦)-月-日）

pdmodを実行した時刻

hh : mm : ss（時 : 分 : 秒）

HiRDB識別子

移動元のサーバ名

移動先のサーバ名

移動したRDエリア名

移動したRDエリアにある表

認可識別子.表識別子

移動したRDエリアにあるインデクス又はプラグインインデクス

認可識別子.インデクス識別子

移動したRDエリアにある順序数生成子

認可識別子.順序数生成子識別子

移動したRDエリアにあるLOB列又はLOB属性の抽象データ型列

認可識別子.表識別子

移動したRDエリアのオリジナルRDエリア名

7.7.5　注意事項

RDエリアの移動中のUAP，ユティリティなどの実行について次に示します。

オンライン中のRDエリア移動機能を使用しない場合(norestartオペランドを指定しない場合)

RDエリアの移動開始からHiRDBの再起動完了までの間は，UAP，ユティリティなどを実行しないでください。また，RDエリアの移動完了後にHiRDBを再起動しないで運用した場合は，動作は保証されません。

オンライン中のRDエリア移動機能を使用する場合(norestartオペランドを指定する場合)

RDエリアの移動中にUAP，ユティリティなどを実行した場合の動作を次の図に示します。

図7‒14　RDエリアの移動中の表アクセス時の動作

移動元のRDエリアを構成するHiRDBファイルの削除，及び移動先のRDエリアを構成するHiRDBファイルの作成は，ユーザがする必要があります。また，移動先のRDエリアを構成するHiRDBファイルのパス名は，移動元と同じでなければなりません。

RDエリアを移動した場合，そのRDエリアの表を使用するルーチンがあると，ルーチンは無効となります。この場合，SQLのALTER ROUTINEで再作成する必要があります。

RDエリアの移動後は，pdcopyで移動したRDエリア，マスタディレクトリ用RDエリア，及びデータディクショナリ用RDエリアのバックアップを取得する必要があります。

インメモリRDエリアは移動できません。いったんインメモリ化を解除してからRDエリアを移動してください。

順序数生成子を格納しているRDエリアを移動する場合，順序数生成子を使用する表格納用RDエリアも同時に移動してください。これらのRDエリアを異なるサーバに配置すると，順序数生成子を使用するたびに通信処理が発生し，処理性能が低下します。

globalbufferオペランドで割り当てたグローバルバッファは，次回HiRDBの正常開始，又は計画停止後の再開始のときに無効となります。開始するときには，システム共通定義で指定したグローバルバッファが割り当てられます。なお，globalbufferオペランドにはLOB用グローバルバッファを指定できません。移動先のサーバでLOB用グローバルバッファを割り当てる必要がある場合は，HiRDBの正常停止及び正常開始による割り当てを行ってください。LOB用グローバルバッファの割り当てについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

RDエリアの移動がエラー終了した場合，制御文に指定したRDエリアはすべて移動前の状態となります。

HiRDB Datareplicatorの連動対象表が存在するRDエリアを移動する場合は，マニュアル「HiRDB Datareplicator」の「連動対象表の定義変更」を参照してください。

7.8　ディクショナリ表の属性定義変更

7.8.1　機能

ディクショナリ表の属性定義を変更したい場合に使用する機能です。ディクショナリ表の属性定義とは，次に示す二つのことを表します。

ディクショナリ表の参照権限の変更

ディクショナリ表の混在文字データの使用

(1)　ディクショナリ表の参照権限の変更

ディクショナリ表をアクセスする場合に，ユーザの持っている権限によって検索できる情報を限定できる機能です。データべース初期設定ユティリティ（define system文）のdicinfオペランドで指定した内容を変更できます。

(2)　ディクショナリ表の混在文字データの使用

ディクショナリ表に混在文字データを使用できるようにする機能です。データべース初期設定ユティリティ（define system文）のdictionary datatype mcharオペランドにnouseを指定（ディクショナリ表に混在文字データを使用しない）していた場合に，使用するように変更できます。

7.8.2　使用例

データべース構成変更ユティリティ（ディクショナリ表の属性定義変更）の使用例を次に示します。

(1)　ディクショナリ表の属性変更をする例

ディクショナリ表をアクセスする場合に，ユーザが持っている権限によって検索できる情報を限定するようにします。また，ディクショナリ表のデータに混在文字データを使用できるようにします。なお，この例では，HiRDB/シングルサーバの場合について説明します。

［実行するコマンド］

pdmod -a /usr/seifile/mofl01

［制御文ファイル（/usr/seifile/mofl01）の内容］

 /* ディクショナリ表の属性定義変更 */
 alter system dicinf limited   ......................1
         dictionary datatype mchar use ;   ..........2

［説明］

ディクショナリ表をアクセスする場合に，ユーザが持っている権限によって検索できる情報を限定します。

ディクショナリ表のデータに，混在文字データを使用できるようにします。

7.8.3　制御文（alter system文）

alter system 〔dicinf ｛unlimited｜limited｝〕
 　　　　　　〔dictionary datatype mchar use〕
　;

(1)　dicinf ｛unlimited｜limited｝

ディクショナリ表をアクセスする場合に，ユーザが持っている権限によって検索できる情報を限定するかどうか（ディクショナリ表の参照権限の設定）を指定します。ディクショナリ表の参照権限の設定については，マニュアル「HiRDB システム運用ガイド」を参照してください。

unlimited

ディクショナリ表をアクセスする場合に，すべての情報を検索できます。

limited

ディクショナリ表をアクセスする場合に，ユーザが持っている権限によって検索できる情報を限定します。

DBA権限を持っているユーザは，すべての情報を検索できます。DBA権限を持っていないユーザは，利用できる情報だけ検索できます。

＜規則＞

ディクショナリ表を参照するビュー表を定義している場合，又はSQLオブジェクトのルーチンを定義している場合は，ディクショナリ表の参照権限は変更できません。

ディクショナリ表の参照権限を変更する場合，あらかじめディクショナリ表を参照するビュー表を削除しておく必要があります。

ディクショナリ表を参照するSQLオブジェクトのルーチンを定義している場合は，SQLオブジェクトを無効にする旨の警告メッセージを出力し，正常終了します。そのため，無効となったルーチンのSQLオブジェクトをALTER PROCEDURE，又はALTER ROUTINEで再作成する必要があります。無効となったルーチンのSQLオブジェクトはディクショナリ表を検索すれば分かります。ALTER PROCEDURE，又はALTER ROUTINEについてはマニュアル「HiRDB SQLリファレンス」を，ディクショナリ表の検索方法についてはマニュアル「HiRDB UAP開発ガイド」を参照してください。

limitedを指定した場合，ディクショナリ表を検索するUAPのアクセス表数が増大するので，同時アクセス可能実表数（システム共通定義のpd_max_access_tables）の値を大きくする必要があります。一つのディクショナリ表につき，同時アクセス可能実表数は5必要となります。

(2)　dictionary datatype mchar use

ディクショナリ表のデータに，混在文字データを使用する場合に指定します。

このオペランドを指定すると，ディクショナリ表の一部の列のデータ型がMVARCHARになります。

＜適用基準＞

表名又は列名にマルチバイト文字を使用している場合，MVARCHARに変更します。

＜規則＞

ディクショナリ表を参照するビュー表を定義している場合は，このオペランドを指定できません。このオペランドを指定するためには，あらかじめディクショナリ表を参照するビュー表を削除する必要があります。

ディクショナリ表を参照するルーチンのSQLオブジェクトを定義している場合は，SQLオブジェクトを無効にする旨の警告メッセージを出力し，正常終了します。そのため，無効となったルーチンのSQLオブジェクトをALTER PROCEDURE，又はALTER ROUTINEで再作成する必要があります。また，無効となったルーチンのSQLオブジェクトはディクショナリ表を検索すれば分かります。ALTER PROCEDURE，又はALTER ROUTINEについてはマニュアル「HiRDB SQLリファレンス」を，ディクショナリ表の検索方法についてはマニュアル「HiRDB UAP開発ガイド」を参照してください。

7.8.4　注意事項

ディクショナリ表をアクセスしているUAP，ユティリティ，又は運用コマンドがある場合にalter system文を実行すると，エラーとなります。

7.9　RDエリアの属性変更

7.9.1　機能

RDエリアの次の属性を変更する機能です。

RDエリアの名称

RDエリアのオープン契機

RDエリアの自動増分

●前提条件

RDエリアの属性変更をする場合，対象となるRDエリアが次のどれかのとき，RDエリアが閉塞状態かつクローズ状態でなければなりません。

ユーザ用RDエリア

ユーザLOB用RDエリア

リスト用RDエリア

データディクショナリLOB用RDエリア

レジストリ用RDエリア

レジストリLOB用RDエリア

RDエリアの属性変更をする場合，対象となるRDエリアが次のどれかのとき，RDエリアが閉塞状態かつオープン状態でなければなりません。

データディクショナリ用RDエリア

データディレクトリ用RDエリア

RDエリアの属性変更をした後のRDエリアは，属性変更をする前の状態を引き継ぎます。そのため，RDエリアを使用する前に，運用コマンドでRDエリアをオープン，閉塞解除状態にしてください。

7.9.2　使用例

データべース構成変更ユティリティ（RDエリアの属性変更）の使用例を次に示します。

(1)　RDエリアの属性変更をする例

次に示すRDエリアのオープン契機をSCHEDULEに変更します。なお，この例では，HiRDB/シングルサーバの場合について説明します。
・PDBUSER01（ユーザ用RDエリア）
・PDBULOB11（ユーザLOB用RDエリア）

［実行するコマンド］

pdmod -a /usr/seifile/mofl01

［制御文ファイル（/usr/seifile/mofl01）の内容］

 /* RDエリアの属性変更 */
 alter rdarea PDBUSER01 open attribute SCHEDULE ;
 alter rdarea PDBULOB11 open attribute SCHEDULE ;

［説明］

RDエリア（PDBUSER01，PDBULOB11）のオープン契機をSCHEDULEに変更します。

7.9.3　制御文（alter rdarea文）

alter rdarea RDエリア名
　　　　　 〔rename rdarea to 変更後のRDエリア名〕
　　　　　 〔open attribute ｛INITIAL｜DEFER｜SCHEDULE｝〕
　　　　　 〔extension ｛use 増分セグメント数 segments｜nouse｝〕
　;

(1)　RDエリア名

　　　〜＜識別子＞((1〜30))

属性を変更するRDエリアの名称を指定します。

RDエリア名にALLは指定できません。RDエリア名を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。また，RDエリア名に空白が含まれる場合は，引用符で囲んでください。

インメモリRDエリアの属性は変更できません。いったんインメモリ化を解除してからRDエリアの属性を変更してください。

(2)　rename rdarea to 変更後のRDエリア名

　　　〜＜識別子＞((1〜30))

変更後のRDエリアの名称を指定します。

変更後のRDエリア名にALLは指定できません。RDエリア名を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。なお，変更後のRDエリア名に空白が含まれる場合は，引用符で囲んでください。

RDエリアの名称を変更する手順については，マニュアル「HiRDB システム運用ガイド」を参照してください。

＜規則＞

このオペランドはユーザ用RDエリア，ユーザLOB用RDエリア，リスト用RDエリア，データディクショナリ用RDエリア，データディレクトリ用RDエリア，データディクショナリLOB用RDエリア，レジストリ用RDエリア，及びレジストリLOB用RDエリアの場合に指定できます。

＜注意事項＞

変更後のRDエリアの名称に，既に存在するRDエリアの名称を指定した場合はエラーとなります。

RDエリア名を変更したときに警告メッセージが出力された場合の対処については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(3)　open attribute ｛INITIAL｜DEFER｜SCHEDULE｝

RDエリアのオープン契機を指定します。

＜適用基準＞

特殊な運用形態でない場合は，通常INITIALを指定してください。

RDエリア数が多いためにHiRDBの開始に時間が掛かるなどの不都合を回避したい場合は，DEFERを指定してください。

＜規則＞

このオペランドは，システム共通定義のpd_rdarea_open_attribute_useオペランドにYを指定しているときだけ有効となります。

このオペランドはユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリアの場合に指定できます。ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリア以外のRDエリアに対してこのオペランドを指定しても，無視されます（ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリア以外のRDエリアは，INITIAL固定です）。

このオペランドを省略した場合，RDエリアの属性変更実行前の指定値を引き継ぎます。

このオペランドの指定値は，HiRDBの開始モードに関係なく次回起動後から有効となります。

該当するRDエリアに割り当てたHiRDBファイルシステム領域が，ほかのRDエリアに共有される場合，共有するRDエリアのオープン契機はすべて同じにする必要があります。同じでない場合，HiRDBファイルシステム領域を共有するRDエリアは，期待通りの効果が得られないことがあります。

INITIAL：

HiRDB開始時にHiRDBファイルシステム領域をオープンして，RDエリア情報をメモリ上に常駐させるので，最初のSQLから高速な運用ができます。

＜規則＞

HiRDB開始時のRDエリアの初期状態はオープンで，それ以降は障害閉塞への遷移を除いて，運用コマンドを実行しないかぎりRDエリアの状態は遷移しません。

INITIALの場合，クローズ状態のRDエリアはアクセスできません。

DEFER：

HiRDB開始時にHiRDBファイルシステム領域をオープンしないで，RDエリアを最初にアクセスするときにHiRDBファイルシステム領域をオープンします。そのときにRDエリア情報をメモリ上に常駐させるので，2回目以降のアクセスから高速な運用ができます。

＜規則＞

HiRDB開始時のRDエリアの初期状態はクローズで，各RDエリアに対して最初にアクセスするときに，該当するRDエリアをオープンします。以降は障害閉塞への遷移を除いて，運用コマンドを実行しないかぎりRDエリアの状態は遷移しません。

DEFERの場合，クローズ状態のRDエリアでもアクセスできます。

SCHEDULE：

HiRDB開始時にHiRDBファイルシステム領域をオープンしないで，HiRDB開始後，各トランザクション内でRDエリアに対して最初にアクセスするときに，HiRDBファイルシステム領域をオープンします。そのときにRDエリア情報をメモリ上に常駐させます。ただし，トランザクション終了時にそのトランザクション内でオープンしたHiRDBファイルシステム領域をクローズするため，2回目以降のアクセス時でもオープン以降の処理をして，トランザクションに掛かる負荷は増加します。

＜規則＞

HiRDB開始時のRDエリアの初期状態はクローズで，アクセスしたRDエリアをトランザクション内でだけオープンし，トランザクション終了時にトランザクション内でオープンしたすべてのRDエリアをクローズします。また，pdopenコマンドを実行することで，閉塞クローズ状態になるまでの間はオープン状態にできます。そのほかの運用コマンドを使用すれば，RDエリアの状態を任意に遷移させることもできます。なお，障害事象を検知した場合には，障害閉塞となります。

SCHEDULEの場合，クローズ状態のRDエリアでもアクセスできます。

(4)　extension ｛use 増分セグメント数 segments｜nouse｝

属性変更をするRDエリアに自動増分を適用するかどうかを指定します。このオペランドを省略した場合，属性変更をする前の指定を引き継ぎます。

RDエリアの自動増分については，マニュアル「HiRDB システム運用ガイド」を参照してください。

＜前提条件＞

RDエリアがあるHiRDBファイルシステム領域に-eオプション又は-aオプションが指定されている必要があります。

use 増分セグメント数 segments：

RDエリアの自動増分を適用します。

RDエリアの自動増分は，データディクショナリ用RDエリア，データディクショナリLOB用RDエリア，ユーザ用RDエリア，ユーザLOB用RDエリア，レジストリ用RDエリア，及びレジストリLOB用RDエリアの場合に有効となります。ほかのRDエリアにuseを指定しても，nouseが仮定されます。

自動増分の契機は，RDエリア内の空きセグメント数が自動増分契機に達したときです。pd_rdarea_extension_timingオペランドで指定できます。

増分セグメント数　〜＜符号なし整数＞((1〜64000))

増分セグメント数を指定します。

pdfmkfs -eを指定したHiRDBファイルシステム領域の場合

HiRDBファイルのエクステント数は最大24で，これを超えるとエラーとなります。また，HiRDBファイルシステム領域の空きが不足したり，使用する領域がHiRDBファイルサイズの上限を超えたりすると，エラーとなります。

HiRDBファイルシステム領域当たりの最大増分回数は，HiRDBファイルシステム領域作成時の指定値で決まるため，HiRDBファイルシステム領域内のファイル数，増分頻度を考慮し最大増分回数を定義しておく必要があります。

pdfmkfs -aを指定したHiRDBファイルシステム領域の場合

HiRDBファイルを格納しているディスクに，必要なHiRDBファイルシステム領域を確保する容量が不足していたり，使用する領域がHiRDBファイルサイズの上限を超えたりすると，エラーとなります。

nouse：

RDエリアの自動増分機能を適用しません。

＜注意事項＞

新たに追加される未使用セグメントは，RDエリアを構成するHiRDBファイルの最終ファイルに追加されます。

HiRDBファイルシステム領域の容量不足によって，未使用セグメントを確保できない場合，RDエリアの拡張又は再初期化をするか，データベース再編成ユティリティで表の再編成をしてください。

エクステントの数が上限値を超えた場合は，RDエリアがあるHiRDBファイルシステム領域のエクステントを統合するか，又はRDエリアに別のHiRDBファイルシステム領域のHiRDBファイルを追加してください。

エクステントを統合するには，pdfbkupでバックアップを取得し，pdfmkfsでHiRDBファイルシステム領域の初期設定をし，pdfrstrでバックアップから回復します。

RDエリア自動増分処理の開始から終了までの間，最終ファイルに対して排他が掛かります。

インナレプリカグループ内のRDエリアの属性を変更した場合，KFPX24282-Iメッセージを表示します。このメッセージが表示された場合，インナレプリカグループ内のすべてのRDエリアに対して，構成情報の複写（データベース構成変更ユティリティのdefine copy rdarea文）を実行する必要があります。KFPX24282-Iメッセージの出力条件は，マニュアル「インナレプリカ機能 HiRDB Staticizer Option」の「インナレプリカグループ内のRDエリアの構成変更と構成情報の複写」の「インナレプリカグループ内のRDエリアの構成変更」を参照してください。

7.10　HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へのRDエリアの変更

7.10.1　機能

HiRDBシステムをHiRDB/シングルサーバからHiRDB/パラレルサーバに移行する場合に，HiRDB/シングルサーバ構成のRDエリアをHiRDB/パラレルサーバ構成のRDエリアに変更する機能です。

すべてのRDエリアを，次に示すように変更します。

マスタディレクトリ用RDエリア，データディレクトリ用RDエリア，データディクショナリ用RDエリア，データディクショナリLOB用RDエリア，レジストリ用RDエリア，及びレジストリLOB用RDエリアを，HiRDB/パラレルサーバのディクショナリサーバ用のRDエリアとして変更します。

ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリアをHiRDB/パラレルサーバのバックエンドサーバ用のRDエリアとして変更します。

HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へのRDエリアの変更の概要を次の図に示します。

図7‒15　HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へのRDエリアの変更の概要

7.10.2　使用例

データべース構成変更ユティリティ（HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へのRDエリアの変更）の使用例を次に示します。

(1)　HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へRDエリアを変更する例

次に示すRDエリアを，HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成に変更します。
・PDBMAST
・PDBDDIR
・PDBDDIC
・PDBDICL1
・PDBDICL2
・PDBUSER01
・PDBUSER02
・PDBULOB01
・PDBLIST01

［概要］

［制御文ファイル（/usr/seifile/mofl05）の内容］

 /* HiRDB/シングルサーバからHiRDB/パラレルサーバへのRDエリアの変更 */
 alter HiRDB mode to parallel
         dictionary server name dic1   ...............1
         server name bes1 others ;   .................2

［説明］

構成変更後のディクショナリサーバの名称を指定します。

構成変更後のバックエンドサーバの名称を指定します。

7.10.3　制御文（alter HiRDB mode to parallel文）

alter HiRDB mode to parallel
　　　dictionary server name サーバ名
　　　server name サーバ名
　　　 ｛RDエリア名〔，RDエリア名〕…｜others｝
　　　 〔server name サーバ名
　　　　 ｛RDエリア名〔，RDエリア名〕…｜others｝〕…
　;

(1)　dictionary server name サーバ名

　　　〜＜識別子＞((1〜8))

HiRDB/シングルサーバからHiRDB/パラレルサーバへの変更後のディクショナリサーバの名称を指定します。

ディクショナリサーバには，マスタディレクトリ用RDエリア，データディレクトリ用RDエリア，データディクショナリ用RDエリア，及びデータディクショナリLOB用RDエリアが配置されます。

(2)　server name サーバ名

　　　〜＜識別子＞((1〜8))

HiRDB/シングルサーバからHiRDB/パラレルサーバへの変更後のバックエンドサーバの名称を指定します。

バックエンドサーバには，ユーザ用RDエリア，ユーザLOB用RDエリア，及びリスト用RDエリアが配置されます。

(3)　｛RDエリア名〔，RDエリア名〕…｜others｝

RDエリア名〔，RDエリア名〕…　〜＜識別子＞((1〜30))

指定したサーバ名のバックエンドサーバに割り当てるRDエリアの名称を指定します。

RDエリアにALLは指定できません。RDエリア名を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。また，RDエリア名に空白が含まれる場合は，引用符で囲んでください。

others

RDエリア名で指定しなかったRDエリアを，すべて割り当てます。

RDエリア名を指定しないでothersだけを指定した場合は，すべてのRDエリアが割り当てられます。

7.10.4　注意事項

HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へRDエリアを変更後は，必ずHiRDB/シングルサーバを正常終了してください。

横分割表を複数のバックエンドサーバに分割するような構成にする場合，非分割キーインデクスは分割されないので，HiRDB/パラレルサーバを起動するときに非分割キーインデクスは不整合となります。そのため，非分割キーインデクスは複数のバックエンドサーバに分割されるように，インデクスを再定義してください。

HiRDB/シングルサーバからHiRDB/パラレルサーバに移行後に，ディクショナリサーバを別の（追加する）サーバマシンに配置する場合は，HiRDB/パラレルサーバを起動する前にマスタディレクトリ用RDエリア，データディレクトリ用RDエリア，データディクショナリ用RDエリア，データディクショナリLOB用RDエリア，レジストリ用RDエリア，及びレジストリLOB用RDエリアをディクショナリサーバのサーバマシンに移動しておいてください。

RDエリアを指定してサーバ構成を変更する場合，表と表に付けたインデクスを格納するRDエリアが異なるときには，それぞれのRDエリアを必ず同じサーバマシンに配置してください。ただし，横分割表の分割していないインデクスは，削除しておいた方が望ましいです。

ストアドプロシジャ，又はユーザ定義のストアドファンクションを登録している場合，移行後，すべてのストアドプロシジャ，又はユーザ定義のストアドファンクションは無効となります。移行後，無効となったストアドプロシジャ，又はユーザ定義のストアドファンクションは，HiRDB/パラレルサーバを起動して，ALTER PROCEDURE（ALL指定），又はALTER ROUTINEですべてのSQLオブジェクトを再作成する必要があります。ALTER PROCEDURE及びALTER ROUTINEについては，マニュアル「HiRDB SQLリファレンス」を参照してください。

レジストリ機能を使用している場合，移行後，レジストリ機能初期設定ユティリティ（pdreginit）の-k renew指定でレジストリ操作用ストアドプロシジャを再登録してください。また，次に示すプラグインを使用している場合は，pdplgrgst -aを実行して再登録してください。

HiRDB Image Search Plug-in

移行するときに，システム共通定義pd_system_idのHiRDB識別子は変更しないでください。

HiRDBファイルシステム領域の世代管理をしている場合，HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へのRDエリアの変更は実行できません（エラーとなります）。

共用表及び共用インデクスが定義されている状態で，HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へのRDエリアの変更はしないでください。変更する場合は，HiRDBに定義しているすべての共用表及び共用インデクスを削除してから実行してください。

7.11　HiRDBファイルシステム領域の世代登録（インナレプリカ機能）

7.11.1　機能

HiRDBファイルシステム領域の世代登録とは，インナレプリカ機能を使用するときに必要となる，HiRDBファイルシステム領域の世代情報をディクショナリ表に登録する機能です。

7.11.2　使用例

データべース構成変更ユティリティ（HiRDBファイルシステム領域の世代登録）の使用例を次に示します。

(1)　HiRDBファイルシステム領域の世代登録をする例

/HiRDB_P/area01，/HiRDB_P/area02をオリジナルHiRDBファイルシステム領域とし，そのレプリカHiRDBファイルシステム領域/HiRDB_P/area01_GN1，/HiRDB_P/area02_GN1の世代登録をします。

［実行するコマンド］

pdmod -a /usr/seifile/mofl01

［制御文ファイル（/usr/seifile/mofl01）の内容］

 create generation for HiRDB file system area
     "/HiRDB_P/area01_GN1"   ............................................1
     server name bes1   .................................................2
     generation number 1   ..............................................3
     reproduce "/HiRDB_P/area01" ;   ....................................4
 create generation for HiRDB file system area
     "/HiRDB_P/area02_GN1"   ............................................1
     server name bes2   .................................................2
     generation number 1   ..............................................3
     reproduce "/HiRDB_P/area02" ;   ....................................4

［説明］

レプリカHiRDBファイルシステム領域の名称を指定します。

レプリカHiRDBファイルシステムを定義するバックエンドサーバの名称を指定します。

レプリカHiRDBファイルシステム領域を管理する世代番号を指定します。

オリジナルHiRDBファイルシステム領域の名称を指定します。

7.11.3　制御文（create generation文）

create generation
　　　for HiRDB file system area "レプリカHiRDBファイルシステム領域名"
　　　server name サーバ名
　　　generation number 世代番号
　　　reproduce "オリジナルHiRDBファイルシステム領域名"
　;

(1)　for HiRDB file system area "レプリカHiRDBファイルシステム領域名"

　　　〜＜パス名＞((1〜165))

世代管理をするレプリカHiRDBファイルシステム領域名を絶対パス名で指定します。

引用符（"）内には，改行文字を入れないでください。また，レプリカHiRDBファイルシステム領域名は，レプリカRDエリア定義時にHiRDBファイルシステム領域名＋HiRDBファイル名がHiRDBシステムで一意になるような名称にしてください。

(2)　server name サーバ名

　　　〜＜識別子＞((1〜8))

レプリカHiRDBファイルシステムを定義するバックエンドサーバの名称を指定します。

バックエンドサーバ以外のサーバ名を指定した場合はエラーとなります。また，HiRDB/シングルサーバの場合は，このオペランドを指定しないでください。

共用RDエリア用に世代登録をする場合，更新可能バックエンドサーバのサーバ名を指定してください。

(3)　generation number 世代番号

　　　〜＜符号なし整数＞((1〜10))

レプリカHiRDBファイルシステム領域を管理する世代番号を指定します。

(4)　reproduce "オリジナルHiRDBファイルシステム領域名"

　　　〜＜パス名＞((1〜165))

世代管理をするオリジナルHiRDBファイルシステム領域名を絶対パス名で指定します。

引用符（"）内には，改行文字を入れないでください。

7.11.4　注意事項

HiRDBファイルシステム領域の世代情報を登録する場合，レプリカHiRDBファイルシステム領域，及びオリジナルHiRDBファイルシステム領域がないときは，警告メッセージが出力されます（エラーにはなりません）。

HiRDBファイルシステム領域の世代は，10世代まで登録できます。

HiRDBファイルシステム領域の世代登録後は，pdcopyでデータディクショナリ用RDエリアのバックアップを取得してください。

7.12　HiRDBファイルシステム領域の世代削除（インナレプリカ機能）

7.12.1　機能

HiRDBファイルシステム領域の世代削除とは，不要となったHiRDBファイルシステム領域の世代情報を削除する機能です。

7.12.2　使用例

データべース構成変更ユティリティ（HiRDBファイルシステム領域の世代削除）の使用例を次に示します。

(1)　HiRDBファイルシステム領域の世代削除をする例

/HiRDB_P/area01_GN1の世代情報を削除します。なお，/HiRDB_P/area01_GN1は，既に世代登録されているものとします。

［実行するコマンド］

pdmod -a /usr/seifile/mofl01

［制御文ファイル（/usr/seifile/mofl01）の内容］

 remove generation for HiRDB file system area
     "/HiRDB_P/area01_GN1"   ..........................1
     server name bes1 ;   .............................2

［説明］

世代情報を削除するレプリカHiRDBファイルシステム領域の名称を指定します。

レプリカHiRDBファイルシステムを削除するバックエンドサーバの名称を指定します。

7.12.3　制御文（remove generation文）

remove generation
　　　for HiRDB file system area "レプリカHiRDBファイルシステム領域名"
　　　server name サーバ名
　;

(1)　for HiRDB file system area "レプリカHiRDBファイルシステム領域名"

　　　〜＜パス名＞((1〜165))

世代情報を削除するレプリカHiRDBファイルシステム領域名を絶対パス名で指定します。

引用符（"）内には，改行文字を入れないでください。

(2)　server name サーバ名

　　　〜＜識別子＞((1〜8))

レプリカHiRDBファイルシステムを削除するバックエンドサーバの名称を指定します。

バックエンドサーバ以外のサーバ名を指定した場合はエラーとなります。また，HiRDB/シングルサーバの場合は，このオペランドを指定しないでください。

7.12.4　注意事項

HiRDBファイルシステム領域の世代削除をする場合，HiRDBファイルシステム領域は削除されません。世代情報だけが削除されます。

HiRDBファイルシステム領域の世代削除をする場合，そのHiRDBファイルシステム領域にレプリカRDエリアが定義されているときは削除できません。

オリジナルHiRDBファイルシステム領域の世代情報は削除できません。レプリカHiRDBファイルシステム領域の世代情報がすべて削除されてから，オリジナルHiRDBファイルシステム領域の世代情報も削除されます。

HiRDBファイルシステム領域の世代削除後は，pdcopyでデータディクショナリ用RDエリアのバックアップを取得してください。

7.13　RDエリアのレプリカ定義（インナレプリカ機能）

7.13.1　機能

RDエリアのレプリカ定義とは，既に定義しているRDエリアのレプリカ（複製）を定義する機能です。RDエリアのレプリカ定義をすると，インナレプリカ機能を使用できるようになります。

●前提条件

ディクショナリ表に世代情報が登録されていれば，レプリカHiRDBファイルシステム領域の実体がなくてもRDエリアのレプリカ定義を実行できます。

RDエリアのレプリカ定義をする場合，オリジナルRDエリアはコマンド閉塞クローズ状態にすることをお勧めします。

RDエリアのレプリカ定義をする場合のRDエリア数，及びHiRDBファイル数は，システム共通定義のRDエリアの最大数（pd_max_rdarea_no），及びRDエリアを構成するHiRDBファイルの最大数（pd_max_file_no）を超えないようにしてください。超える場合は，pdchgconfコマンドでシステム共通定義を変更するか，又はHiRDBシステムを正常終了させてから，システム共通定義を変更する必要があります。

レプリカ定義をするオリジナルRDエリアが共用RDエリアの場合，そのRDエリアはすべてのバックエンドサーバでレプリカ定義したものとしてカウントされます（レプリカ定義をしていないバックエンドサーバも，レプリカ定義をしたものとみなされます）。したがって，どれかのバックエンドサーバがRDエリアの最大数，又はRDエリアを構成するHiRDBファイルの最大数を超える場合，共用RDエリアのレプリカ定義はできません。

RDエリアのレプリカ定義をする場合のオリジナルRDエリア数は，システム共通定義の最大インナレプリカ数（pd_max_replica_control）を超えないようにしてください。超える場合は，pdchgconfコマンドでシステム共通定義を変更するか，又はHiRDBシステムを正常終了させてから，システム共通定義を変更する必要があります。

レプリカ定義をするオリジナルRDエリアが共用RDエリアの場合，インナレプリカ数はすべてのバックエンドサーバでレプリカ定義したものとしてカウントされます（レプリカ定義をしていないバックエンドサーバも，レプリカ定義をしたものとみなされます）。したがって，どれかのバックエンドサーバが最大インナレプリカ数を超える場合，共用RDエリアのレプリカ定義はできません。

レプリカRDエリアに論理ボリューム機能を使用したミラーファイルを適用する場合，RDエリアのオープン契機をSCHEDULEにする必要があります。

一時表用RDエリアに対して，RDエリアのレプリカ定義はできません。実行するとエラーになります。

7.13.2　使用例

データべース構成変更ユティリティ（RDエリアのレプリカ定義）の使用例を次に示します。

(1)　RDエリアのレプリカ定義をする例

オリジナルRDエリア（RD01，RD02）から，レプリカRDエリア（RD01_GN1，RD02_GN1）を定義します。

［実行するコマンド］

pdmod -a /usr/seifile/mofl01

［制御文ファイル（/usr/seifile/mofl01）の内容］

 replicate rdarea RD01_GN1   ...........................1
                  globalbuffer gbuf01     ..............2
                  reproduce RD01   .....................3
                  generation number 1 ;   ..............4
 replicate rdarea RD02_GN1   ...........................1
                  globalbuffer gbuf02     ..............2
                  reproduce RD02   .....................3
                  generation number 1 ;   ..............4

［説明］

レプリカRDエリアの名称を指定します。

レプリカRDエリアに一時的に割り当てる，グローバルバッファの名称を指定します。ここでは，既存のグローバルバッファを指定してください。globalbufferオペランドを省略した場合は，オリジナルRDエリアに割り当てられているグローバルバッファが割り当てられます。

オリジナルRDエリアの名称を指定します。

オリジナルRDエリアの世代番号を指定します。

7.13.3　制御文（replicate rdarea文）

replicate rdarea
　　　レプリカRDエリア名
　　　〔globalbuffer グローバルバッファ名〕
　　　〔lobbuffer LOB用グローバルバッファ名〕
　　　reproduce オリジナルRDエリア名
　　　generation number HiRDBファイルシステム領域の世代番号
　;

(1)　レプリカRDエリア名

　　　〜＜識別子＞((1〜30))

レプリカ定義をするRDエリアの名称を指定します。

RDエリア名にALLは指定できません。また，RDエリア名を引用符（"）で囲んだ場合は大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。

(2)　globalbuffer グローバルバッファ名

　　　〜＜識別子＞((1〜16))

レプリカ定義をするユーザ用RDエリアに一時的にグローバルバッファを割り当てたい場合，HiRDBシステムにある（HiRDB/パラレルサーバの場合は，レプリカ定義をするサーバにある）グローバルバッファの名称を指定します。

グローバルバッファについては，pdbuflsコマンドで確認できます。

＜規則＞

インデクス用又はLOB用のRDエリアのグローバルバッファは指定できません。

面数指定のグローバルバッファの場合，指定するグローバルバッファのグローバルバッファ長は，オリジナルRDエリアのページ長以上でなければなりません。グローバルバッファ長は，pdbuflsコマンドで確認できます。

ここで指定したグローバルバッファの割り当ては，次回のHiRDBの正常開始時には無効となります。そのため，次回のHiRDBの正常開始時にはシステム共通定義のグローバルバッファの割り当てを変更する必要があります。

このオペランドを省略した場合，オリジナルRDエリアに割り当てられているグローバルバッファが，レプリカRDエリアにも割り当てられます。

このオペランドを指定してグローバルバッファが割り当てられない場合，RDエリアのレプリカ定義はエラーとなります。

(3)　lobbuffer LOB用グローバルバッファ名

　　　〜＜識別子＞((1〜16))

レプリカ定義をするLOB用RDエリアに一時的にグローバルバッファを割り当てたい場合，HiRDBシステムにある（HiRDB/パラレルサーバの場合は，レプリカ定義をするサーバにある）グローバルバッファの名称を指定します。

グローバルバッファについては，pdbuflsコマンドで確認できます。

＜規則＞

ユーザ用RDエリア，又はインデクス用のRDエリアのグローバルバッファは指定できません。

指定するグローバルバッファのグローバルバッファ長は，オリジナルRDエリアのページ長以上でなければなりません。グローバルバッファ長は，pdbuflsコマンドで確認できます。

ここで指定したグローバルバッファの割り当ては，次回のHiRDBの正常開始時には無効となります。そのため，次回のHiRDBの正常開始時にはシステム共通定義のグローバルバッファの割り当てを変更する必要があります。

このオペランドを省略した場合，オリジナルRDエリアに割り当てられているLOB用グローバルバッファが，レプリカRDエリアにも割り当てられます。ただし，オリジナルRDエリアにLOB用グローバルバッファが割り当てられていない場合は割り当てられません。

このオペランドを指定してLOB用グローバルバッファが割り当てられない場合，RDエリアのレプリカ定義はエラーとなります。

このオペランドは，LOB用RDエリアのレプリカ定義の場合に指定できます。ユーザ用RDエリアのレプリカ定義の場合に指定するとエラーになります。

(4)　reproduce オリジナルRDエリア名

　　　〜＜識別子＞((1〜30))

レプリカ定義をするRDエリアの，オリジナルRDエリアの名称を指定します。

RDエリア名を引用符（"）で囲んだ場合は大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。

(5)　generation number HiRDBファイルシステム領域の世代番号

　　　〜＜符号なし整数＞((1〜10))

オリジナルRDエリアのHiRDBファイルシステム領域の世代番号を指定します。

オリジナルRDエリアを構成するHiRDBファイルの，HiRDBファイルシステム領域に対応した世代番号を登録していない場合，エラーとなります。

7.13.4　注意事項

RDエリアのレプリカ定義後，レプリカRDエリアはクローズ，コマンド閉塞状態となっています。レプリカRDエリアを使用するためには，閉塞解除，オープン状態にする必要があります。このとき，レプリカHiRDBファイルシステム領域が必要になるため，閉塞解除，オープン状態にする前に，レプリカHiRDBファイルシステム領域の実体を用意してください。

RDエリアのレプリカ定義後，レプリカRDエリアのレプリカステータスは，サブRDエリアとなっています。カレントRDエリアにするためには，閉塞解除，オープン状態にしてから，pddbchgコマンドでカレントRDエリアに切り替えてください。

RDエリアのレプリカ定義後は，pdcopyでマスタディレクトリ用RDエリア及びデータディクショナリ用RDエリアのバックアップを取得してください。

RDエリアのレプリカ定義後，レプリカRDエリアの利用権限はニュートラル（ディクショナリ表SQL_RDAREA_PRIVILEGESにレプリカRDエリアのデータがない状態）となります。

改竄防止表が格納されているRDエリアの場合，そのRDエリアのレプリカ定義はできません。

インメモリRDエリアのレプリカ定義は作成できません。いったんインメモリ化を解除してからRDエリアのレプリカ定義を作成してください。

レプリカ定義をするオリジナルRDエリアに順序数生成子がある場合はエラーとなります。

7.14　RDエリアの構成情報複写（インナレプリカ機能）

7.14.1　機能

RDエリアの構成情報複写とは，インナレプリカ機能を使用している環境で，次のような条件でRDエリアを構成するHiRDBファイルの定義と実体が不一致になった場合に，実体と一致している構成情報を複写する機能です。

RDエリアの拡張又は再初期化をして，インナレプリカグループの中で構成ファイル数，ページ長，セグメントサイズ，又はセグメント数が異なっている環境で，実体を合わせたとき

オリジナルRDエリアとレプリカRDエリアの構成情報が不一致で，レプリカRDエリアの構成ファイルを基に，更にレプリカRDエリアを定義したとき（この場合，構成情報はオリジナルRDエリアの定義となります）

●前提条件

RDエリアの構成情報複写をする場合，複写先のRDエリアはコマンド閉塞クローズ状態でなければなりません。複写先のRDエリアが共用RDエリアの場合，すべてのバックエンドサーバでコマンド閉塞クローズ状態でなければなりません。

RDエリアの構成情報複写をする場合，RDエリアを構成するHiRDBファイル数は，最大RDエリア構成ファイル数（pd_max_file_no）を超えないようにしてください。超える場合は，pdchgconfコマンドでシステム共通定義を変更するか，又はHiRDBシステムを正常終了させてから，システム共通定義を変更する必要があります。

共用RDエリアの構成情報複写をする場合，そのRDエリアはすべてのバックエンドサーバで構成情報複写をしたものとしてカウントされます（構成情報複写をしていないバックエンドサーバも，構成情報複写をしたものとみなされます）。したがって，どれかのバックエンドサーバがRDエリアを構成するHiRDBファイルの最大数を超える場合，共用RDエリアの構成情報複写はできません。

7.14.2　使用例

データべース構成変更ユティリティ（RDエリアの構成情報複写）の使用例を次に示します。

(1)　RDエリアの構成情報複写をする例

オリジナルRDエリア（RD01）の構成情報を，レプリカRDエリア（RD01_GN1）に複写します。

［実行するコマンド］

pdmod -a /usr/seifile/mofl01

［制御文ファイル（/usr/seifile/mofl01）の内容］

 define copy rdarea RD01_GN1   ................1
        reproduce RD01 ;   ....................2

［説明］

複写先のRDエリアの名称を指定します。

複写元のRDエリアの名称を指定します。

7.14.3　制御文（define copy rdarea文）

define copy rdarea
　　　複写先RDエリア名
　　　〔globalbuffer グローバルバッファ名〕
　　　〔lobbuffer LOB用グローバルバッファ名〕
　　　reproduce 複写元RDエリア名
　;

(1)　複写先RDエリア名

　　　〜＜識別子＞((1〜30))

構成情報の複写先RDエリアの名称を指定します。

RDエリア名を引用符（"）で囲んだ場合は大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。

(2)　globalbuffer グローバルバッファ名

　　　〜＜識別子＞((1〜16))

構成情報の複写先のRDエリアに割り当てられているグローバルバッファを変更したい場合，HiRDBシステムにある（HiRDB/パラレルサーバの場合は，構成情報複写をするサーバにある）グローバルバッファの名称を指定します。

グローバルバッファについては，pdbuflsコマンドで確認できます。

＜規則＞

インデクス用又はLOB用のRDエリアのグローバルバッファは指定できません。

面数指定のグローバルバッファの場合，指定するグローバルバッファのグローバルバッファ長は，複写元RDエリアのページ長以上でなければなりません。グローバルバッファ長は，pdbuflsコマンドで確認できます。

ここで指定したグローバルバッファの割り当ては，次回のHiRDBの正常開始時には無効となります。そのため，次回のHiRDBの正常開始時にはシステム共通定義のグローバルバッファの割り当てを変更する必要があります。

このオペランドを省略した場合，構成情報複写前のグローバルバッファが割り当てられます。

このオペランドを指定してグローバルバッファが割り当てられない場合，RDエリアの構成情報複写はエラーとなります。

(3)　lobbuffer LOB用グローバルバッファ名

　　　〜＜識別子＞((1〜16))

構成情報の複写先のLOB用RDエリアに割り当てられているLOB用グローバルバッファを変更したい場合，HiRDBシステムにある（HiRDB/パラレルサーバの場合は，構成情報複写をするサーバにある）グローバルバッファの名称を指定します。

グローバルバッファについては，pdbuflsコマンドで確認できます。

＜規則＞

ユーザ用RDエリア，又はインデクス用のRDエリアのグローバルバッファは指定できません。

指定するグローバルバッファのグローバルバッファ長は，複写元RDエリアのページ長以上でなければなりません。グローバルバッファ長は，pdbuflsコマンドで確認できます。

ここで指定したグローバルバッファの割り当ては，次回のHiRDBの正常開始時には無効となります。そのため，次回のHiRDBの正常開始時にはシステム共通定義のグローバルバッファの割り当てを変更する必要があります。

このオペランドを省略した場合，構成情報複写前に割り当てられていたLOB用グローバルバッファが割り当てられます。ただし，構成情報複写前にLOB用グローバルバッファが割り当てられていない場合は割り当てられません。

このオペランドを指定してLOB用グローバルバッファが割り当てられない場合，RDエリアの構成情報複写はエラーとなります。

このオペランドは，LOB用RDエリアの構成情報複写の場合に指定できます。ユーザ用RDエリアの構成情報複写の場合に指定するとエラーになります。

(4)　reproduce 複写元RDエリア名

　　　〜＜識別子＞((1〜30))

構成情報の複写元RDエリアの名称を指定します。

RDエリア名を引用符（"）で囲んだ場合は大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。

複写元RDエリアを構成するHiRDBファイルの，HiRDBファイルシステム領域に対応した世代番号を登録していない場合，エラーとなります。

7.14.4　注意事項

RDエリアの構成情報複写後，pdcopyで複写先RDエリア，マスタディレクトリ用RDエリア，及びデータディクショナリ用RDエリアのバックアップを取得してください。

複写先RDエリアと複写元RDエリアに同じRDエリアを指定した場合，RDエリアの構成情報複写は実行されません。

複写元RDエリアに被参照表，参照表，又は検査制約表が格納されている場合，複写元RDエリア，及び参照関係にある表を格納するRDエリアに検査保留状態の表がない状態で，RDエリアの構成情報複写を実行してください。検査保留状態の表がある場合は，pdconstckで整合性チェックをして，検査保留状態を解除してください。

インメモリRDエリアは構成情報複写できません。いったんインメモリ化を解除してからRDエリアの構成情報複写を行ってください。

7.15　RDエリアの統合（インナレプリカ機能）

7.15.1　機能

RDエリアの統合とは，インナレプリカ機能を使用している環境で，オリジナルRDエリアの構成HiRDBファイルをレプリカRDエリアの構成HiRDBファイルに切り替えて，インナレプリカ機能を使用しなくする機能です。

●前提条件

RDエリアの統合をする場合，オリジナルRDエリアに対してレプリカRDエリアが一つのときに実行できます。

RDエリアを統合する場合，オリジナルRDエリア及びレプリカRDエリアはコマンド閉塞クローズ状態でなければなりません。共用RDエリアの場合は，すべてのバックエンドサーバでコマンド閉塞クローズ状態でなければなりません。

7.15.2　使用例

データべース構成変更ユティリティ（RDエリアの統合）の使用例を次に示します。

(1)　RDエリアの統合をする例

インナレプリカ機能を使用しないようにします。

［実行するコマンド］

pdmod -a /usr/seifile/mofl01

［制御文ファイル（/usr/seifile/mofl01）の内容］

 recast rdarea RD01   ................................1
                globalbuffer gbufrp01 ;   ............2
 recast rdarea RD02   ................................1
                globalbuffer gbufrp02 ;   ............2

［説明］

オリジナルRDエリアの名称を指定します。

オリジナルRDエリアに割り当てられているグローバルバッファを変更するため，変更後のグローバルバッファの名称を指定します。

7.15.3　制御文（recast rdarea文）

recast rdarea
　　　オリジナルRDエリア名
　　　〔globalbuffer グローバルバッファ名〕
　　　〔lobbuffer LOB用グローバルバッファ名〕
　;

(1)　オリジナルRDエリア名

　　　〜＜識別子＞((1〜30))

統合するオリジナルRDエリアの名称を指定します。

RDエリア名を引用符（"）で囲んだ場合は大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。

指定したオリジナルRDエリアに対応するレプリカRDエリアが複数ある場合，エラーとなります。

(2)　globalbuffer グローバルバッファ名

　　　〜＜識別子＞((1〜16))

統合するオリジナルRDエリアに割り当てられているグローバルバッファを変更したい場合，HiRDBシステムにある（HiRDB/パラレルサーバの場合は，統合をするサーバにある）グローバルバッファの名称を指定します。

グローバルバッファについては，pdbuflsコマンドで確認できます。

＜規則＞

インデクス用又はLOB用のRDエリアのグローバルバッファは指定できません。

面数指定のグローバルバッファの場合，指定するグローバルバッファのグローバルバッファ長は，レプリカRDエリアのページ長以上でなければなりません。グローバルバッファ長は，pdbuflsコマンドで確認できます。

ここで指定したグローバルバッファの割り当ては，次回のHiRDBの正常開始時には無効となります。そのため，次回のHiRDBの正常開始時にはシステム共通定義のグローバルバッファの割り当てを変更する必要があります。

このオペランドを省略した場合，RDエリアの統合前のレプリカRDエリアのグローバルバッファが割り当てられます。

このオペランドを指定してグローバルバッファが割り当てられない場合，RDエリアの統合はエラーとなります。

(3)　lobbuffer LOB用グローバルバッファ名

　　　〜＜識別子＞((1〜16))

統合するオリジナルRDエリアに割り当てられているLOB用グローバルバッファを変更したい場合，HiRDBシステムにある（HiRDB/パラレルサーバの場合は，統合をするサーバにある）グローバルバッファの名称を指定します。

グローバルバッファについては，pdbuflsコマンドで確認できます。

＜規則＞

ユーザ用RDエリア，又はインデクス用のRDエリアのグローバルバッファは指定できません。

指定するグローバルバッファのグローバルバッファ長は，レプリカRDエリアのページ長以上でなければなりません。グローバルバッファ長は，pdbuflsコマンドで確認できます。

ここで指定したグローバルバッファの割り当ては，次回のHiRDBの正常開始時には無効となります。そのため，次回のHiRDBの正常開始時にはシステム共通定義のグローバルバッファの割り当てを変更する必要があります。

このオペランドを省略した場合，RDエリアの統合前に割り当てられていたLOB用グローバルバッファが割り当てられます。ただし，RDエリアの統合前にLOB用グローバルバッファが割り当てられていない場合は割り当てられません。

このオペランドを指定してLOB用グローバルバッファが割り当てられない場合，RDエリアの統合はエラーとなります。

このオペランドは，LOB用RDエリアの統合の場合に指定できます。ユーザ用RDエリアの統合の場合に指定するとエラーになります。

7.15.4　注意事項

RDエリアの統合後，レプリカRDエリアの定義は削除されます。また，オリジナルRDエリアの統合前のHiRDBファイルは削除されます。

RDエリアの統合後は，オリジナルRDエリアの構成HiRDBファイルのHiRDBファイルシステム領域の世代情報を削除してください。

RDエリアの統合後，pdcopyで対象RDエリア，マスタディレクトリ用RDエリア，及びデータディクショナリ用RDエリアのバックアップを取得してください。

レプリカRDエリアに被参照表，参照表，又は検査制約表が格納されている場合，レプリカRDエリア及び参照関係にある表を格納するRDエリアに検査保留状態の表がない状態でRDエリアを統合します。検査保留状態の表がある場合は，pdconstckで整合性チェックをして，検査保留状態を解除してください。

参照表又は検査制約表を格納しているRDエリアで，オリジナルRDエリアの表情報だけが検査保留状態の場合，RDエリアの統合によってRDエリアの表情報は非検査保留状態になりますが，ディクショナリ表中の検査保留状態は解除されません。ディクショナリ表の検査保留状態が解除されなかった場合は，pdconstckで整合性チェックをして，ディクショナリ表の検査保留状態を解除してください。

インメモリRDエリアは統合できません。いったんインメモリ化を解除してからRDエリアを統合してください。

7.16　監査人の登録（セキュリティ監査機能）

7.16.1　機能

セキュリティ監査機能を使用する場合，監査証跡表を管理・操作する主監査人，及び監査証跡表を操作する副監査人を登録します。セキュリティ監査機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

●前提条件

主監査人は，HiRDBに一人だけ登録できます。既に主監査人を登録している場合に，主監査人の登録をするとエラー（KFPX24269-E）となります。

副監査人は，HiRDBに複数人登録できます。副監査人は，主監査人を登録した後に登録できます。主監査人を登録しないで副監査人の登録をするとエラー（KFPX24272-E）となります。

監査人に指定できるユーザを次の表に示します。指定できないユーザを登録するとエラー（KFPX24271-E）となります。

表7‒5　監査人に指定できるユーザ

指定するユーザ

指定可否

主監査人

副監査人

新規ユーザ

○

○

既存ユーザ

DBA権限を持つユーザ

×

×

パスワード無効アカウントロック状態のユーザ※1

簡易認証ユーザ※2

自分のスキーマ操作権限を他人に付与したユーザ※3

他人からスキーマ操作権限を付与されたユーザ※3

上記以外のユーザ

○

（凡例）

○：指定できます。

×：指定できません。

注※1

パスワード無効アカウントロック状態については，マニュアル「HiRDB システム運用ガイド」の「パスワードの文字列制限」を参照してください。

注※2

簡易認証ユーザについては，マニュアル「HiRDB システム運用ガイド」の「OSログインユーザの簡易認証機能」を参照してください。

注※3

スキーマ操作権限については，マニュアル「HiRDB システム運用ガイド」の「ユーザ権限の種類」を参照してください。

主監査人の登録をすると，同時にスキーマも定義されます。したがって，監査人を登録する前にCREATE SCHEMAを実行しておく必要はありません。副監査人にはスキーマは定義されません。

7.16.2　使用例

データべース構成変更ユティリティ（主監査人の登録）の使用例を次に示します。

(1)　主監査人の登録をする例

認可識別子「HIRAUD」を主監査人として登録します。

［実行するコマンド］

pdmod -a /usr/seifile/mofl01

［制御文ファイル（/usr/seifile/mofl01）の内容］

 create auditor for HIRAUD ;   ................................1

［説明］

認可識別子「HIRAUD」を主監査人として登録します。

7.16.3　制御文（create auditor文）

create 〔deputy〕 auditor for 認可識別子
　;

(1)　deputy

副監査人を登録する場合に指定します。このオペランドを省略した場合は主監査人を登録します。

(2)　認可識別子

　　　〜＜先頭が英字記号で始まる英数字記号＞((1〜30))

監査人として登録するユーザの，認可識別子を指定します。

認可識別子に指定できるユーザについては，表「監査人に指定できるユーザ」を参照してください。

認可識別子の大文字小文字を区別したい場合は，引用符（"）で囲んでください。囲まない場合は大文字として扱われます。

7.16.4　注意事項

新規のユーザを主監査人，又は副監査人として登録した場合，登録直後のパスワードはそのユーザの認可識別子となります。また，既存のユーザを主監査人として登録した場合，パスワードを設定していないときは，登録直後のパスワードはそのユーザの認可識別子となります。監査人の登録をした後は，認可識別子となっているパスワードを，GRANT AUDIT文で変更してください。パスワードの変更は登録された監査人自身が行ってください。

7.17　監査証跡表の作成（セキュリティ監査機能）

7.17.1　機能

セキュリティ監査機能を使用する場合に必要となる，監査証跡表を作成します。

●前提条件

監査証跡表の作成をする前に，主監査人の登録をしておく必要があります。

監査証跡表はHiRDBに一つだけ作成できます。既に監査証跡表が作成されている場合に，監査証跡表の作成をするとエラー（KFPX24269-E）になります。

監査証跡表を格納するRDエリアには，主監査人だけが利用権限を持つユーザ用RDエリアを指定する必要があります。共用RDエリア，公用RDエリア，又は主監査人以外のユーザが利用権限を持つRDエリアを指定した場合，エラー（KFPX24270-E）となります。

7.17.2　使用例

データべース構成変更ユティリティ（監査証跡表の作成）の使用例を次に示します。

(1)　監査証跡表の作成をする例

RDエリア「RD00AUD」に監査証跡表「SQL_AUDIT_TRAIL」を作成します。

［実行するコマンド］

pdmod -a /usr/seifile/mofl01

［制御文ファイル（/usr/seifile/mofl01）の内容］

 create audit table SQL_AUDIT_TRAIL   ...............................1
                  in RD00AUD ;   ....................................2

［説明］

監査証跡表「SQL_AUDIT_TRAIL」を作成します。

RDエリア「RD00AUD」に監査証跡表を作成します。

7.17.3　制御文（create audit table文）

create audit table 〔表識別子〕
　　　　in RDエリア名
　;

(1)　表識別子

　　　〜＜識別子＞((1〜30))《SQL_AUDIT_TRAIL》

監査証跡表の表識別子を指定します。省略した場合，SQL_AUDIT_TRAILが仮定されます。

表識別子の大文字小文字を区別したい場合は，引用符（"）で囲んでください。囲まない場合は大文字として扱われます。

表識別子にinは指定できません。

(2)　RDエリア名

　　　〜＜識別子＞((1〜30))

監査証跡表を格納するRDエリア名（ユーザ用RDエリア）を指定します。主監査人だけ利用権限があるRDエリアを指定してください。主監査人以外のユーザに利用権限があるRDエリアを指定した場合，エラー（KFPX24270-E）となります。

RDエリア名の大文字小文字を区別したい場合は，引用符（"）で囲んでください。囲まない場合は大文字として扱われます。

7.18　規則及び注意事項

7.18.1　規則

pdmodは，HiRDBが稼働中のときだけ実行できます。

pdmodは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdmodを実行する場合，$PDDIR/bin/pdmodと指定することをお勧めします（pdmodと指定すると，ほかのPPの同名のコマンドが実行されることがあります）。

高速系切り替え機能を適用している場合，pdmodを実行したときは，待機系HiRDBを再度開始する必要があります。待機系の再開始については，マニュアル「HiRDB システム運用ガイド」の「系の切り替え時間の短縮（ユーザサーバホットスタンバイ，高速系切り替え機能）」を参照してください。

1：1スタンバイレス型系切り替え機能を適用している場合，pdmodを実行したときは，代替部を再度開始する必要があります。代替部の再開始については，マニュアル「HiRDB システム運用ガイド」の「1:1スタンバイレス型系切り替え機能使用時の注意事項」を参照してください。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，業務サイトでpdmodを実行したときは，システムログ適用化を実施してください。システムログ適用化については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

更新可能なオンライン再編成を実行する場合，準備を開始してから運用を完了するまで，pdmodコマンド（RDエリア再初期化，RDエリア拡張を除く）を実行しないでください。更新可能なオンライン再編成の準備及び運用の詳細については，マニュアル「インナレプリカ機能 HiRDB Staticizer Option」を参照してください。

pdffsckコマンドの実行中には，pdmodコマンドを実行しないでください。実行すると，データベースを破壊するおそれがあります。

JP1/Performance Management - Agent Option for HiRDBがレコード収集中に，pdmodコマンドを実行すると，不整合なレコードを生成，もしくはレコード自体が欠落することがあります。HiRDB構成変更中に収集したレコードは無視してください。JP1/Performance Management - Agent Option for HiRDBのレコードについては，マニュアル「JP1 V11 JP1/PFM - Agent Option for HiRDB」を参照してください。

7.18.2　注意事項

(1)　ユティリティ実行後の結果について

pdmodの結果は，次の方法で確認できます。

pddblsコマンド（-r ALL -a指定）

ディクショナリ表の検索

データベース状態解析ユティリティ

(2)　HiRDBファイルシステム領域が壊れた場合について

pdmodの実行中に，電源断又はkillコマンドで実行が中断された場合，HiRDBファイルシステム領域が壊れるときがあります。pdflsコマンドを実行して矛盾が検知された場合は，次に示すどちらかの手順で回復してください。

pdfmkfsコマンドでHiRDBファイルシステム領域を再度作成し，格納していたHiRDBファイルはRDエリアごとにデータベース構成変更ユティリティを実行します。

pdfbkupコマンド及びpdfrstrコマンドを実行して，HiRDBファイルシステム領域のバックアップとリストアをします。

(3)　バックアップの取得について

データベース構成変更ユティリティはログを無効化する処理を行っているため，データベース構成変更ユティリティを実行した後には，処理対象RDエリアのバックアップを必ず取得してください。バックアップを取得しないと，処理対象RDエリアが障害閉塞した場合，データベース構成変更ユティリティの実行前の状態にしかRDエリアを回復できません（データベース構成変更ユティリティ実行後の更新情報を回復できません）。

また，データベース構成変更ユティリティの操作によっては，システム用RDエリアや関連するRDエリアと同期を取ってバックアップを取得する必要があります。詳細については，「HiRDB システム運用ガイド」の「同時にバックアップを取得する必要があるRDエリア」を参照してください。

(4)　連続実行について

HiRDB/パラレルサーバで間隔を空けずにpdmodコマンドを連続実行すると，KFPX24219-Eメッセージを出力してエラー終了することがあります。複数の制御文を実行する場合は，制御文を1つの制御文にまとめて1回のpdmodコマンドで実行してください。もし，制御文を1つの制御文ファイルにまとめられない場合は，pdmodコマンドの実行間隔を2秒程度空けて実行してください。なお，先発のpdmodコマンドの実行が終了していることは，次のコマンドを実行し，DICU(5001)の排他が残っていないことを確認すると判断できます。

pdls　-d　lck　-a

8　データベース再編成ユティリティ（pdrorg）

この章では，表，及びインデクスのメンテナンスをするデータベース再編成ユティリティ（pdrorg）について説明します。

なお，IVS対応UTF-8文字コード及びIVS対応UTF-16文字集合を使用する場合は，この章の記載を次のように読み替えてください。

UTF-8 -> IVS対応UTF-8

utf-8 -> utf-8_ivs

UTF-16 -> IVS対応UTF-16

utf-16be -> utf-16ibe

utf-16le -> utf-16ile

8.1　概要

8.1.1　pdrorgの機能

データベース再編成ユティリティ（pdrorg）は，表，及びインデクスのメンテナンスをするユティリティです。pdrorgの用途と機能を次の表に，pdrorgの機能の概要を図「pdrorgの機能の概要」に示します。

表8‒1　pdrorgの用途と機能

種別

用途

pdrorgの機能

表の再編成

表のアンロード

表へのリロード

ディクショナリ表の再編成

インデクスの一括作成

インデクスの再作成

インデクスの再編成

ディクショナリ表のメンテナンス

表

表の格納効率をよくしたい場合（pddbstで確認）

○

○

KFPH00212-Iメッセージ，又はKFPH22017-Iメッセージが出力された場合

○

○

検索性能について期待した効果が得られなかった場合

○

○

別表へデータを移行する場合

○

○

表の分割条件を変更する場合

○

○

アンロードデータを，pdloadの入力データファイルに使用したい場合，又はUAPで使用したい場合

○

何らかの理由で，表の再編成をアンロードとリロードに分けて実行したい場合

○

○

インデクス

pdload，又はpdrorg実行時に-i nを指定してインデクスを作成した場合

○

非横分割インデクスがある表に対して，pdloadでRDエリア単位にデータロードした場合，又はpdrorgでRDエリア単位に再編成，リロードした場合

○

プラグインインデクスの遅延一括作成をする場合

○

大量データの追加，削除，更新によって，インデクスの格納ページが使用中空きページとなっている場合，その使用中空きページを解放するとき

○※

○※

pdmodでインデクスだけを格納したRDエリアを再初期化した場合，その初期化状態のRDエリアに格納されたインデクスを回復するとき

○

EMPTY指定のCREATE INDEXを実行した場合，未作成状態となっているインデクスを作成するとき

○

プラグインインデクスを再作成する場合

○

pdload実行時に-i xを指定してインデクスを作成した場合

○

ディクショナリ表にインデクスを追加する場合

○

（凡例）

○：用途に該当するpdrorgの機能を示します。

注※

通常時はインデクスの再編成を実行してください。インデクスの再作成では表中のデータを検索しますが，インデクスの再編成では表中のデータを検索しません。したがって，インデクスの再編成の方が処理時間が短くなります。

図8‒1　pdrorgの機能の概要

［説明］

表の再編成：1，及び2

表のアンロード：1

表へのリロード：2

ディクショナリ表の再編成：1，及び2

インデクスの一括作成：5

インデクスの再作成：3，及び5

インデクスの再編成：4，及び5

8.1.2　表の再編成

(1)　表の再編成とは

データの追加や削除を繰り返すと，表中の行の配置が乱れて，データのアクセス効率や格納効率が低下します。このような場合，表中のデータをいったんファイルに退避した後，そのファイルのデータを再度表に格納することで，データのアクセス効率，及び格納効率を改善できます。これを表の再編成といいます。

表の再編成は，表単位，又はRDエリア単位（横分割表の場合）に実行できます。

表の再編成の概要を次の図に示します。

図8‒2　表の再編成の概要

アンロードデータファイル

アンロードデータファイルとは，表データをいったん退避しておくファイルのことです。

制御情報ファイル

制御情報ファイルには，pdrorgの制御文を記述します。

制御文には，アンロードデータファイルの指定，インデクス情報の指定，及びLOB列の情報の指定などを記述します。

(2)　LOB列がある表の場合の再編成

LOB列がある表の場合，LOB列構成基表とLOB列を同時に再編成できます。また，別々に再編成することもできます。

LOB列構成基表とは，LOB列がある表のLOB列を除いた部分のことをいいます。また，LOB列とは，データ型がBLOBの列のことをいいます。

同時に再編成する場合は，-jオプションを指定すると，性能が良くなります。-jオプションを指定しない再編成は，LOB列構成基表又はLOB列のどちらかを再編成する場合に採用してください。

プラグインが提供する抽象データ型がユーザLOB用RDエリアに格納されている場合，抽象データ型はLOB列構成基表と同時に再編成するか，又は再編成対象外にできます。

LOB列がある表の再編成を次の図に示します。

図8‒3　LOB列がある表の再編成

［説明］

LOB列構成基表（列A，列B）のデータは，アンロードデータファイルへ退避します。

LOB列（列C）のデータは，LOBデータのアンロードファイルへ退避します。

-gオプション，及び-jオプションを指定すると，LOB列構成基表，及びLOB列のデータをまとめてアンロードデータファイルへ退避することもできます。

(3)　文字集合を定義した表の再編成

表の再編成をする場合にpdrorgが出力するアンロードデータファイルは一時ファイルのため，文字集合の列のデータに対して文字コード変換をしないでアンロードします。リロード時も文字コード変換をしないでデータベースに格納します。ただし，UOCを利用する場合は，文字集合が定義された列データに対して文字コード変換をしてアンロードデータファイルに出力します。

(4)　圧縮表の再編成

圧縮表を再編成する場合，圧縮列のデータは圧縮されたままアンロードし，そのままリロードします。ただし，UOCを利用する場合は，UOCで列データを参照するため，アンロード時に圧縮列の圧縮データを伸張し，リロード時に圧縮してから格納します。

(5)　予備列が定義されたFIX属性の表の再編成

予備列が定義されたFIX属性の表も再編成できます。

(6)　ユティリティ専用ユニットを利用する場合

HiRDB/シングルサーバで表の再編成をする場合，ユティリティ専用ユニットを利用できます。ユティリティ専用ユニットには，アンロードデータファイルを設置できます。ユティリティ専用ユニットを利用した場合の表の再編成を次の図に示します。

図8‒4　ユティリティ専用ユニットを利用した場合の表の再編成

(7)　同期点指定の再編成

通常，表の再編成をするときは，すべてのデータをリロードした後にトランザクションを決着します。ユティリティが途中で異常終了した場合は，最初の時点までロールバックしてしまいます。このため，再実行時は最初からし直すことになります。

同期点指定の再編成の場合，任意のデータ件数単位にトランザクションを決着できます。これによって，ユティリティが異常終了した場合のロールバック時間や再実行時間を短縮できます。

なお，アンロード処理，インデクスの一括作成，及びLOB列への再編成処理の場合は，同期点指定の再編成は適用されません。この場合は，すべての処理が完了してからトランザクションが決着します。

同期点指定の再編成をする場合，option文（jobオペランド）を指定します。同期点指定の再編成の概要を次の図に示します。

図8‒5　同期点指定の再編成の概要

［説明］

最初の実行では，障害発生後にロールバックします。200万件の時点でトランザクションが決着しているため，ロールバックするのは200万件の時点までです。

再実行では，既存の表データの削除処理，及び200万件までのデータ格納処理をスキップし，それ以降のデータ格納処理をします。

(8)　UOCを利用した再編成

ユーザが作成したプログラム（UOC）を利用して再編成ができます。

UOCを利用した再編成の場合，データベースから検索したデータを直接アンロードデータファイルへ出力するのではなく，データをUOCに渡して編集して出力できます。

例えば，大量のデータを削除する場合など，データベースから検索したデータをUOCでチェックしてアンロードデータファイルに出力するかどうかの判定をして，その結果生成されたアンロードデータファイルからリロードすると，空きページが点在しない（使用中空きページがない）再編成直後の形でデータ削除ができます。また，UOCを使用してアンロードすると，任意のフォーマットでのデータの出力もできます。

8.1.3　表のアンロード

(1)　表のアンロードとは

表の再編成では，表中のデータをいったんファイルに退避した後，そのファイルのデータを再度表に格納します。この表中のデータをファイルに退避する処理のことを表のアンロードといいます。

表のアンロードは，表単位，又はRDエリア単位（横分割表の場合）に実行できます。

表のアンロードの概要を次の図に示します。

図8‒6　表のアンロードの概要

アンロードデータファイル

アンロードデータファイルとは，表データを退避しておくファイルのことです。

制御情報ファイル

制御情報ファイルには，pdrorgの制御文を記述します。

制御文には，アンロードデータファイルの指定，及びLOB列の情報の指定などを記述します。

(2)　別表へデータを移行する場合

別表へデータを移行する場合，アンロードデータファイルへ表データを退避して，そのアンロードデータファイルから別表へリロードします。このとき，別表の属性（FIX又は非FIX）や列定義（列数，データ型など）は同じである必要があります。ただし，定義が異なる場合でも，アンロードデータをpdloadの入力データファイル（-Wオプション指定）にすると，データ移行ができることがあります。なお，圧縮表を別表にリロードする場合，表の再編成で出力されるアンロードデータファイルは，データが圧縮されているため，使用しないでください。表のアンロードで出力されるファイルを使用してください。

別表へのデータ移行の概要を次の図に示します。

図8‒7　別表へのデータ移行の概要

(3)　表の分割条件を変更する場合

表の分割条件を変更する場合，いったんアンロードデータファイルへ表データを退避しておきます。次に，表の分割条件を変更してから，退避しておいたアンロードデータファイルから表へリロードします。

表の分割条件変更の概要を次の図に示します。

図8‒8　表の分割条件変更の概要

(4)　アンロードデータを，pdloadの入力データファイルとして使用する場合，又はUAPで使用する場合

アンロードデータを，pdloadの入力データファイルとして使用する場合，又はUAPで使用する場合は，-Wオプションを指定してアンロードします。

(5)　LOB列，又はプラグインが提供する抽象データ型列（LOB属性）がある表の場合のアンロード

LOB列構成基表とLOB列は同時にアンロードしてください。LOB列だけをアンロードすることはできません。

(6)　文字集合を定義した表のアンロード

文字集合を定義した表をアンロードする場合，UOCの利用有無に関係なく，文字コード変換をします。このとき，文字集合の列のデータは，既定文字集合（pdsetupコマンドで指定した文字コード種別）に変換してアンロードデータファイルに出力します。

(7)　圧縮表のアンロード

圧縮表をアンロードする場合，圧縮列のデータを伸張してからアンロードファイルへ出力します。

(8)　予備列が定義されたFIX属性の表のアンロード

予備列が定義されたFIX属性の表もアンロードできます。ただし，pdrorg実行時に-wオプションを指定して作成したpdload用アンロードファイルには，予備列は出力されません。

(9)　UOCを利用したアンロード

UOCを利用したアンロードについては，「UOCを利用した再編成」を参照してください。

(10)　ユティリティ専用ユニットを利用する場合

ユティリティ専用ユニットの利用については，「表の再編成」を参照してください。

8.1.4　表へのリロード

(1)　表へのリロードとは

表の再編成では，表中のデータをいったんファイルに退避した後，そのファイルのデータを再度表に格納します。このファイルのデータを再度表に格納する処理のことを表へのリロードといいます。

表へのリロードは，表単位，又はRDエリア単位（横分割表の場合）に実行できます。

表へのリロードの概要を次の図に示します。

図8‒9　表へのリロードの概要

アンロードデータファイル

アンロードデータファイルとは，表データを退避しておいたファイルのことです。

制御情報ファイル

制御情報ファイルには，pdrorgの制御文を記述します。

制御文には，アンロードデータファイルの指定，インデクス情報の指定，及びLOB列の情報の指定などを記述します。

(2)　別表へデータを移行する場合

別表へのデータ移行については，「表のアンロード」を参照してください。

(3)　表の分割条件を変更する場合

表の分割条件変更については，「表のアンロード」を参照してください。

(4)　LOB列，又はプラグインが提供する抽象データ型列（LOB属性）がある表の場合のリロード

表の再編成の場合と同様に，LOB列構成基表とLOB列を同時にリロードできます。また，別々にリロードすることもできます。

(5)　文字集合を定義した表のリロード

文字集合を定義した表をリロードする場合，アンロードデータファイル中のデータの文字コードによって，文字コード変換の有無は異なります。アンロードデータファイル中のデータの文字コードが，文字集合の列の文字コードと同じであれば，文字コード変換はしないでそのままデータベースに格納します。異なるときは文字コード変換をしてからデータベースに格納します。

(6)　圧縮表のリロード

圧縮表をリロードする場合，アンロードデータファイルのデータが圧縮されているときは，そのままデータベースに格納します。データが圧縮されていないときは，データを圧縮してからデータベースに格納します。

なお，表の再編成時にエラーが発生し，圧縮されたデータを含むアンロードデータファイル（pdrorg -k rorgでアンロードされたファイル）をリロードする場合，アンロード元とリロード先の表の圧縮指定（圧縮指定の有無，及び圧縮分割サイズの指定値）が同じである必要があります。1列でも圧縮指定が異なる列がある場合，pdrorgはKFPL15327-Eメッセージを出力してエラー終了します。

(7)　予備列が定義されたFIX属性の表のリロード

予備列が定義されたFIX属性の表をリロードする場合，アンロード元とリロード先の表の予備列の有無が異なるときは，pdrorgはKFPL25343-Eメッセージを出力して異常終了します。アンロード元とリロード先の表の予備列の有無が同じ，かつ実行可否の条件を満たしているときは，リロードできます。実行可否の条件については，「アンロード元の表とリロード先の表の表定義が異なる場合のリロード実行可否」を参照してください。

(8)　ユティリティ専用ユニットを利用する場合

ユティリティ専用ユニットの利用については，「表の再編成」を参照してください。

(9)　同期点指定のリロード

同期点指定のリロードについては，「表の再編成」の同期点指定の再編成を参照してください。

8.1.5　ディクショナリ表の再編成

ディクショナリ表を再編成する場合，データディクショナリ用RDエリア（データディクショナリLOB用RDエリア，レジストリ用RDエリア，及びレジストリLOB用RDエリアを定義している場合はこれらも含む）をコマンド閉塞状態にすることで，ユーザが定義した表を再編成するのと同様に実行できます。

ディクショナリ表の再編成は，特定のディクショナリ表だけ，又はすべてのディクショナリ表を再編成できます。ディクショナリ表を再編成する場合のアンロード・リロード処理の順序は「ディクショナリ表の場合」の表の項番の順になります。再編成のリロード処理中にエラーとなった場合は，リロード（-k reld）の再実行で再編成を再開できます。ただし，リロード中にデータディクショナリ用RDエリア又はデータディクショナリLOB用RDエリアに容量不足が発生した場合，RDエリアをバックアップから回復するケースがあります。再編成の手順については，マニュアル「HiRDB システム運用ガイド」の例題（ディクショナリ表の再編成）の「注意事項」を参照してください。

LOB列があるディクショナリ表の場合，制御情報ファイルのunload文及びlobunld文で再編成対象を指定できます。LOB列構成基表とLOB列を同時に再編成する場合は，制御情報ファイルにunload文とlobunld文を両方とも指定してください。制御情報ファイルのunload文及びlobunld文の指定の組み合わせとそれによる再編成対象を次に示します。

制御情報ファイルの指定

再編成対象

unload文指定

lobunld文指定

LOB列構成基表

LOB列

あり

あり

○

○

なし

○

−

なし

あり

−

○

なし

pdrorgは実行できません。

（凡例）○：再編成します。　−：再編成しません。

なお，LOB列があるディクショナリ表は次の表です。

SQL_ROUTINES

SQL_REGISTRY_KEY（システムが使用する表）

8.1.6　インデクスの一括作成

pdload，又はpdrorgが作成したインデクス情報ファイルから，インデクスを作成します。また，プラグインインデクスの遅延一括作成機能で出力されたインデクス情報ファイルからインデクスを作成します。これをインデクスの一括作成といいます。

なお，インデクスの再編成でエラーとなった場合（-l a，又は-l pの場合）にも，インデクスの一括作成を実行します。

インデクスの一括作成は，インデクス単位，又はインデクス格納RDエリア単位に実行できます。

インデクスの一括作成の概要を次の図に示します。

図8‒10　インデクスの一括作成の概要

インデクス情報ファイル

インデクス情報ファイルとは，pdload，又はpdrorg実行時にインデクスに関する情報を出力したファイルのことです。また，プラグインインデクスの遅延一括作成機能を使用している場合は，UAPなどで更新したインデクス情報が出力されています。

制御情報ファイル

制御情報ファイルには，pdrorgの制御文を記述します。

制御文には，インデクス情報の指定などを記述します。

8.1.7　インデクスの再作成

表中のデータを検索して，インデクス情報を生成し，その情報を基にインデクスを作成します。これをインデクスの再作成といいます。

インデクスの再作成は，インデクス単位，又はインデクス格納RDエリア単位に実行できます。

インデクスの再作成の概要を次の図に示します。

図8‒11　インデクスの再作成の概要

インデクス情報ファイル

インデクス情報ファイルとは，表中のデータを検索して生成したインデクス情報が出力されるファイルのことです。

制御情報ファイル

制御情報ファイルには，pdrorgの制御文を記述します。

制御文には，インデクス情報の指定などを記述します。

8.1.8　インデクスの再編成

インデクスのキー情報を検索してインデクス情報ファイルを作成し，その情報を基にインデクスを再配置します。これをインデクスの再編成といいます。

インデクスの再編成は，インデクス単位，又はインデクス格納RDエリア単位に実行できます。

インデクスの再編成の概要を次の図に示します。

図8‒12　インデクスの再編成の概要

インデクス情報ファイル

インデクス情報ファイルとは，インデクスのキー情報を検索して作成したインデクス情報が出力されるファイルのことです。

制御情報ファイル

制御情報ファイルには，pdrorgの制御文を記述します。

制御文には，インデクス情報の指定などを記述します。

8.1.9　ディクショナリ表のメンテナンス

ディクショナリ表のメンテナンスを行います。HiRDBをバージョンアップしただけではディクショナリ表はメンテナンスされないため，HiRDBのバージョンアップ実行後に任意で実行します。ディクショナリ表のメンテナンスでできることを次に示します。

ディクショナリ表へのインデクスの追加

すでに登録しているディクショナリ表のデータにインデクスを定義し，インデクスデータを作成します。インデクスを追加できるディクショナリ表及びインデクス種別については，マニュアル「HiRDB システム導入・設計ガイド」の「HiRDBのシステム構築の概要」の「HiRDBのバージョンアップ」の「バージョンアップ時の留意事項」を参照してください。

8.1.10　pdrorg実行時のログ取得方式

pdrorgを実行する場合，ログ取得方式は更新前ログ取得モード（-l p）にすることをお勧めします。なお，この更新前ログ取得モードは省略時仮定値となっています。

更新前ログ取得モードの場合，更新後のデータベース更新ログを取得しないため，その分の処理時間が短縮されます。したがって，ログ取得モードを適用したときに比べてユティリティの実行時間を短縮できます。

ただし，ディクショナリ表のメンテナンスを実行する場合は，常にログ取得モード（-l a）を適用します。

8.1.11　処理対象の表，インデクスが格納されているRDエリア

処理対象となる表及びインデクスをUAPがアクセスして不当に待ち状態にならないように，処理対象となる表及びインデクスが格納されているRDエリアは，pdholdコマンドで閉塞しておくことをお勧めします。

8.1.12　抽象データ型列がある表に対するpdrorgの実行可否

抽象データ型がある表に対して実行できる，pdrorgの機能について説明します。抽象データ型がある表に対する機能の実行可否を次の表に示します。

表8‒2　抽象データ型がある表に対する機能の実行可否

機能

条件

実行可否

表の再編成

(-k rorg，unld，及びreld)

プラグインが提供する抽象データ型

LOB属性なし

○

LOB属性あり

LOB列構成基表だけ

○

同時（-jオプション指定）

○※１

LOB列だけ

×

ユーザが定義した抽象データ型

×※２

インデクスの作成

(-k ixmk，及びixrc)

プラグインが提供するインデクス型から作成したプラグインインデクス

○

ユーザが定義した抽象データ型のインデクス

×

インデクスの再編成

(-k ixor)

−

×

別表へのリロード

(tblname文)

表の分割条件変更

プラグインが提供する抽象データ型

○※３

ユーザが定義した抽象データ型

×

pdload用の入力データファイル作成

(-Wオプション)

プラグインが提供する抽象データ型

○※４

ユーザが定義した抽象データ型

×

（凡例）

○：実行できます。

×：実行できません。

−：条件がないことを示します。

注※1

アンロード機能を持つプラグインが提供した抽象データ型の場合だけ実行できます。

注※2

プラグインが実装していない抽象データ型がある表はpdrorgで再編成できません。抽象データ型がある表に対してKFPH00212-Iメッセージが出力された場合，次のどちらかで対処してください。

UAPでデータベースの内容をファイル出力し，PURGE TABLEを実行して表のデータを削除する。その後，ファイルを入力してUAPでデータベースを再作成する。

pdmodで該当するRDエリアを拡張する。

注※3

コンストラクタパラメタ逆生成関数を指定しないと実行できないことがあります。指定する関数名については，各プラグインのマニュアルを参照してください。

注※4

コンストラクタパラメタ逆生成関数を指定した場合だけ実行できます。指定する関数名については，各プラグインのマニュアルを参照してください。

8.1.13　実行者

pdrorgの各機能を実行する場合に必要となる権限を次に示します。

pdrorgの機能

対象となる表

ディクショナリ表

ユーザが定義した表

監査証跡表

表の再編成

DBA権限

SELECT権限，INSERT権限，及びDELETE権限，又はDBA権限

SELECT権限，INSERT権限，及びDELETE権限

表のアンロード

DBA権限

SELECT権限，又はDBA権限

SELECT権限

表へのリロード

−

INSERT権限，DELETE権限，又はDBA権限

INSERT権限，及びDELETE権限

スキーマ単位の再編成，アンロード，及びリロード

−

DBA権限，又はスキーマの所有者

監査権限

インデクスの一括作成

−

権限不要

権限不要

インデクスの再作成

−

権限不要

権限不要

インデクスの再編成

−

権限不要

権限不要

ディクショナリ表のメンテナンス

DBA権限

−

−

（凡例）

−：実行できません。

8.2　表の再編成

8.2.1　使用例

データベース再編成ユティリティの使用例の一覧（表の再編成）を次に示します。

使用例

内容

区分

例1

横分割表の表単位の再編成

S

例2

横分割表のRDエリア単位の再編成

S

例3

LOB列がある表の再編成

LOB列構成基表とLOB列を同時に再編成します。

S

例4

抽象データ型（SGMLTEXT型）がある表の再編成

LOB列構成基表だけ再編成します。

S

例5

横分割表の表単位の再編成

P

例6

LOB列がある表の再編成

LOB列構成基表とLOB列を同時に再編成します。

P

例7

スキーマ単位の再編成

P

（凡例）

S：HiRDB/シングルサーバ

P：HiRDB/パラレルサーバ

(1)　横分割表の表単位の再編成

例１

横分割表（TABLE1）を表単位に再編成します。
表（TABLE1），及びインデクスは次のように定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
         IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER04))
・インデクスの定義（非分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN (PDBUSER05)

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

横分割表（TABLE1）を表単位に再編成します。

-k rorg：再編成をするときの指定

-t TABLE1：再編成対象の表の名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload /usr/unload_file1                     1
 idxwork /usr/idx_file                        2
 sort /usr/sortwork                           3

［説明］

アンロードデータファイルの指定

/usr/unload_file1：アンロードデータファイルの名称

インデクス情報ファイルを作成するディレクトリの指定

/usr/idx_file：インデクス情報ファイルを作成するディレクトリの名称

ソート用ワークディレクトリの指定

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(2)　横分割表のRDエリア単位の再編成

例２

横分割表（TABLE1）をRDエリア単位に再編成します。
表（TABLE1），及びインデクスは次のように定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
         IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER04))
・インデクスの定義（非分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN (PDBUSER05)

［概要］

［入出力ファイルとRDエリアの関連図］

(a)　TABLE1（RDエリアPDBUSER01）の再編成

［実行するコマンドの説明］

横分割表（TABLE1）をRDエリア単位に再編成します。

-k rorg：再編成をするときの指定

-t TABLE1：再編成対象の表の名称

-r PDBUSER01：再編成対象のRDエリアの名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload /usr/unload_file1                     1
 idxwork /usr/idx_file                        2
 sort /usr/sortwork                           3

［説明］

アンロードデータファイルの指定

/usr/unload_file1：アンロードデータファイルの名称

インデクス情報ファイルを作成するディレクトリの指定

/usr/idx_file：インデクス情報ファイルを作成するディレクトリの名称

ソート用ワークディレクトリの指定

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(b)　INDEX2の作成

INDEX2はこのままでは使用できません。

INDEX2を使用する場合は，RDエリアPDBUSER02の再編成をして，PDBUSER02のインデクス情報を出力します。このインデクス情報ファイルと，既に出力されているインデクス情報ファイル2を入力にして，pdrorgでインデクスの一括作成（-k ixmk）を実行してください。

詳細は，「インデクスの一括作成」を参照してください。

(3)　LOB列がある表の再編成

例３

LOB列がある表（TABLE2）に対して，LOB列構成基表とLOB列を同時に再編成します。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TABLE2(C1 INT NOT NULL,C2 BLOB IN ((LOBUSER01),
               (LOBUSER02))) IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義
  CREATE INDEX INDEX2 ON TABLE2(C1) IN ((PDBUSER03),(PDBUSER04))

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

LOB列がある表（TABLE2）を，表単位（LOB列構成基表とLOB列を同時）に再編成します。

-k rorg：再編成をするときの指定

-t TABLE2：再編成対象の表の名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload /usr/unload_file1                                   1
 index INDEX2 PDBUSER03 /usr/index_inf1                     2
 index INDEX2 PDBUSER04 /usr/index_inf2                     2
 sort /usr/sortwork                                         3
 lobunld /usr/lobunld_file1                                 4

［説明］

アンロードデータファイルの指定

/usr/unload_file1：アンロードデータファイルの名称

インデクス情報を出力するインデクス情報ファイルの指定

INDEX2：インデクス識別子

PDBUSER03，PDBUSER04：インデクスを格納するRDエリアの名称

/usr/index_inf1，/usr/index_inf2：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

LOBデータのアンロードファイルの指定

/usr/lobunld_file1：LOBデータのアンロードファイルの名称

(4)　抽象データ型がある表の再編成

例４

抽象データ型（SGMLTEXT）の列を持つ表（TABLE1）の再編成をします。抽象データ型（SGMLTEXT）はHiRDB Text Search Plug-inで提供されています。
表，及びインデクスは次のように定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT,C2 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER01)
            PLUGIN'<DTD>sgml.dtd</DTD>' ) IN PDBUSER01
・プラグインインデクスの定義
  CREATE INDEX INDEX1 USING TYPE NGRAM ON TABLE1(C2) IN LOBUSER02

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE1）を再編成します。

-k rorg：再編成をするときの指定

-t TABLE1：再編成対象の表の名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload /hd001/unload_file1                                    1
 index INDEX1 LOBUSER02 /hd001/ixdir/INDEX1_LOBUSER02          2

［説明］

アンロードデータファイルの指定

/hd001/unload_file1：アンロードデータファイルの名称

インデクス情報ファイルの指定

INDEX1：インデクスの一括作成をする，プラグインインデクスのインデクス識別子

LOBUSER02：インデクスの一括作成をする，プラグインインデクスのインデクス格納RDエリアの名称

/hd001/ixdir/INDEX1_LOBUSER02：インデクス情報ファイルの名称

(5)　横分割表の表単位の再編成

例５

横分割表（TABLE1）を表単位に再編成します。
表，及びインデクスは次のように定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
               IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER05))
・インデクスの定義（非分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN ((PDBUSER04),(PDBUSER06))

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

横分割表（TABLE1）を表単位に再編成します。

-k rorg：再編成をするときの指定

-t TABLE1：再編成対象の表の名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload bes1:/usr/unload_file1                     1
 idxwork bes1 /usr/idxwork                         2
 sort bes1 /usr/sortwork                           3
 unload bes2:/usr/unload_file2                     1
 idxwork bes2 /usr/idxwork                         2
 sort bes2 /usr/sortwork                           3

［説明］

アンロードデータファイルの指定

bes1，bes2：アンロードデータファイルがあるサーバの名称

/usr/unload_file1，/usr/unload_file2：アンロードデータファイルの名称

インデクス情報を出力するインデクス情報ファイル用ディレクトリの指定

bes1，bes2：インデクス情報ファイルを作成するサーバの名称

/usr/idxwork：インデクス情報ファイル用ディレクトリの名称

ソート用ワークディレクトリの指定

bes1，bes2：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(6)　LOB列がある表の再編成

例６

LOB列がある表（TABLE2）に対して，LOB列構成基表とLOB列を同時に再編成します。
次の表，及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TABLE2(C1 INT NOT NULL,C2 BLOB IN ((LOBUSER01),
              (LOBUSER02))) IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義
  CREATE INDEX INDEX2 ON TABLE2(C1) IN ((PDBUSER03),(PDBUSER04))

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

LOB列がある表（TABLE2）を，表単位（LOB列構成基表とLOB列を同時）に再編成します。

-k rorg：再編成をするときの指定

-t TABLE2：再編成対象の表の名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload bes1:/usr/unload_file1                              1
 unload bes2:/usr/unload_file2                              1
 index INDEX2 PDBUSER03 /usr/index_inf1                     2
 index INDEX2 PDBUSER04 /usr/index_inf2                     2
 sort bes1 /usr/sortwork                                    3
 sort bes2 /usr/sortwork                                    3
 lobunld bes1:/usr/lobunld_file1                            4
 lobunld bes2:/usr/lobunld_file2                            4

［説明］

アンロードデータファイルの指定

bes1，bes2：アンロードデータファイルがあるサーバの名称

/usr/unload_file1，/usr/unload_file2：アンロードデータファイルの名称

インデクス情報を出力するインデクス情報ファイルの指定

INDEX2：インデクス識別子

PDBUSER03，PDBUSER04：インデクスを格納するRDエリアの名称

/usr/index_inf1，/usr/index_inf2：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

bes1，bes2：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

LOBデータのアンロードファイルの指定

bes1，bes2：LOBデータのアンロードファイルがあるサーバの名称

/usr/lobunld_file1，/usr/lobunld_file2：LOBデータのアンロードファイルの名称

(7)　スキーマ単位の再編成

例７

スキーマ（USER01）が所有するすべての表を再編成します。
USER01は次の表を定義しているものとします。

  CREATE TABLE TABLE1(C1 INT) IN (BES1R01)
  CREATE TABLE TABLE2(C1 BLOB IN LOBUSER01) IN(BES2R01)
  CREATE TABLE TABLE3(C1 FREEWORD) IN(BES3R01)

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

スキーマ（USER01）が所有するすべての表を再編成します。なお，HiRDB/パラレルサーバでスキーマ単位の再編成をする場合，-g及び-jオプションの指定が仮定されます。

-k rorg：再編成をするときの指定

-t USER01.all：スキーマ（USER01）が所有するすべての表を対象とする場合の指定

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload bes1:/hd001/unload_file1                   1
 idxwork bes1 /hd001/idxwork                       2
 sort bes1 /hd001/sortwork                         3
 idxwork bes2 /hd001/idxwork                       2
 sort bes2 /hd001/sortwork                         3
 idxwork bes3 /hd001/idxwork                       2
 sort bes3 /hd001/sortwork                         3

［説明］

アンロードデータファイルの指定

bes1：アンロードデータファイルがあるサーバの名称

/hd001/unload_file1：アンロードデータファイルの名称

インデクス情報を出力するインデクス情報ファイル用ディレクトリの指定

bes1，bes2，bes3：インデクス情報ファイルを作成するサーバの名称

/hd001/idxwork：インデクス情報ファイル用ディレクトリの名称

ソート用ワークディレクトリの指定

bes1，bes2，bes3：ソート用ワークファイルを作成するサーバの名称

/hd001/sortwork：ソート用ワークファイルを作成するディレクトリの名称

8.2.2　目的別の参照先一覧

ユーザが実行する再編成の形態によって，指定するオプション，制御文が異なります。

(1)のオプション，及び制御文は必ず指定してください。(2)〜(4)で該当する項目があれば，その参照先にあるものが関連するオプション，及び制御文となります。なお，オプションについては，「オプション」を参照してください。

(1)　必ず指定する項目

項目

参照先

オプション

制御文

pdrorgの処理内容

-k rorg

−

ユーザが定義した表の再編成（省略時仮定値が-c userなので省略できます）

-c user

−

再編成する表の名称

-t

−

制御文を記述したファイル

制御情報ファイル名

−

アンロードデータファイルの情報

−

unload文

（凡例）−：該当しません。

(2)　再編成する表の属性によって指定する項目

項目

参照先

オプション

制御文

インデクスが定義されている場合

-i

index文

-o

idxwork文

sort文

LOB列がある場合

-j

lobunld文

プラグインが提供する抽象データ型列（LOB属性）がある場合

-j

unld_func文

reld_func文

サプレスオプションが指定されている表の場合で，列の後方に連続してある空白を取り除きたいとき※

-S

−

制約定義がある場合

−

constraint文

インナレプリカ機能を使用している場合

-q

−

（凡例）−：該当しません。

注※

このオプションを指定すると，処理時間の短縮，及びアンロードデータファイルの容量を削減できます。

(3)　アンロードデータファイル，又はLOBデータのアンロードファイルの種別によって指定する項目

項目

参照先

オプション

制御文

ファイルを一本化する場合

-g

−

EasyMTを使用する場合

-f

mtguide文

emtdef文

HiRDBファイルを使用する場合

-f

−

アンロードデータの格納順を指定する場合（クラスタキー順，インデクス順，又はデータ格納順のどれか）

-b

−

（凡例）−：該当しません。

(4)　再編成の方法によって指定する項目

項目

参照先

オプション

制御文

横分割表の場合で，特定のRDエリアだけ再編成したい場合

-r

−

データベース更新ログを取得する場合，又は取得しない場合

-l

−

大量データの再編成の場合に，同期点を指定したいとき

−

option文

pdrorgの実行時間を監視したい場合

−

option文

表のステータスを強制的に通常状態に戻したい場合

−

option文

pdrorgを実行するユーザの認可識別子を，環境変数PDUSER設定値以外に変更したい場合※１

-u

−

グローバルバッファを使用しないで，ローカルバッファを使って一括入出力の再編成をしたい場合※２

-n

−

再編成の実行状態のメッセージ出力間隔を，10万行単位以外にしたい場合

-m

−

インフォメーションメッセージの出力を抑止したい場合

サーバ間通信の応答時間を監視したい場合

-X

−

表データ中の空白文字コードを統一したい場合

−

option文

再編成時に，表，及びインデクスの空き領域比率を変更したい場合※３

−

option文

再編成時に，不要なデータを削除したい場合

−

unlduoc文

（凡例）−：該当しません。

注※1

省略した場合は，環境変数PDUSERの設定値が仮定されます。環境変数PDUSERを設定していない場合は，ログインウィンドウのユーザ名が仮定されます。

注※2

一括入出力ページ数を指定すると，指定したページ数単位で一括入出力をするので，I/O回数を削減できます。

注※3

pdrorg実行時にRDエリアの容量不足が発生した場合，暫定的にRDエリアを拡張しないで処理を完了できます（ただし，空き領域比率が0の表，及びインデクスを除く）。

8.3　表のアンロード

8.3.1　使用例

データベース再編成ユティリティの使用例の一覧（表のアンロード）を次に示します。

使用例

内　　容

区分

例1

横分割表の表単位のアンロード

アンロードデータファイルは，pdloadの入力データファイルとして利用するものとします。

アンロードデータファイルを一本化します。

P

例2

表のアンロードとリロード

アンロードしてからリロードするまでの間に表分割条件を変更します。

例3

表のアンロードとリロード

アンロードした表データを，別の表へリロードします。

例4

抽象データ型（SGMLTEXT型）がある表のアンロードとリロード

アンロードしてからリロードするまでの間に表分割条件を変更します。

例5

抽象データ型（SGMLTEXT型）がある表のアンロードとリロード

アンロードした表データを，別の表へリロードします。

例6

固定長データ形式のpdload用入力データファイルの作成

表のデータを，固定長データ形式のpdload用入力データファイルとしてアンロードします。

（凡例）

P：HiRDB/パラレルサーバ

(1)　横分割表の表単位のアンロード

例１

横分割表（TABLE1）を表単位にアンロードします。
アンロードしたデータは，pdloadの入力データファイル（バイナリ形式）として利用するものとします。また，アンロードデータファイルは一本化します。
表，及びインデクスは次のように定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
               IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER05))
・インデクスの定義（非分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN ((PDBUSER04),(PDBUSER06))

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

横分割表（TABLE1）を表単位にアンロードします。

-k unld：アンロードをするときの指定

- W bin：pdloadの入力データファイル（バイナリ形式）にする場合の指定

-g：アンロードデータファイルを一本化する場合の指定

-t TABLE1：アンロード対象の表の名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload bes1:/usr/unload_file1                     1

［説明］

アンロードデータファイルの指定

bes1：アンロードデータファイルがあるサーバの名称

/usr/unload_file1：アンロードデータファイルの名称

(2)　表の表分割条件を変更する場合のアンロードとリロード

例２

表（TABLE1）の表分割条件を変更するため，まず表をアンロードします。アンロードした後に表の表分割条件を変更して，その表にリロードします。
表，及びインデクスは次のように定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT) IN PDBUSER01
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX1 ON TABLE1(C1) IN PDBUSER03

［概要］

１．表分割条件変更前の表のアンロード

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE1）をアンロードします。

-k unld：アンロードをするときの指定

-t TABLE1：アンロード対象の表の名称

-g：表分割条件を変更するときの指定

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload bes1:/hd001/unload_file                             1

［説明］

アンロードデータファイルの指定

bes1：アンロードデータファイルがあるサーバの名称

/hd001/unload_file：アンロードデータファイルの名称

２．表（TABLE1）の表分割条件の変更

まず，表TABLE1をDROP TABLEで削除してください。

そして，表（TABLE1）の表分割条件を次のように定義し直します。また，インデクスも定義変更します。

 CREATE TABLE TABLE1(C1 INT NOT NULL,
                     C2 CHAR(8),
                     C3 INT)
              IN ((PDBUSER01) C1 > 10,(PDBUSER02))
 CREATE INDEX INDEX1 ON TABLE1(C1)
              IN ((PDBUSER03),(PDBUSER04))

３．表分割条件を変更した表へのリロード

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE1）へリロードします。

-k reld：リロードをするときの指定

-t TABLE1：リロード対象の表の名称

-g：表分割条件を変更するときの指定

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload bes1:/hd001/unload_file                    1
 idxwork bes1 /usr/idxwork                         2
 idxwork bes2 /usr/idxwork                         2
 sort bes1 /usr/sortwork                           3
 sort bes2 /usr/sortwork                           3

［説明］

アンロードデータファイルの指定

bes1：アンロードデータファイルがあるサーバの名称

/hd001/unload_file：アンロードデータファイルの名称

インデクス情報を出力するインデクス情報ファイル用ディレクトリの指定

bes1，bes2：インデクス情報ファイルを作成するサーバの名称

/usr/idxwork：インデクス情報ファイル用ディレクトリの名称

ソート用ワークディレクトリの指定

bes1，bes2：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(3)　表データを別表に移行する場合のアンロードとリロード

例３

表（TABLE1）の表データを別表へ移行します。
表，及びインデクスは次のように定義されているものとします。
・移行元の表，及びインデクスの定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT) IN PDBUSER01
  CREATE INDEX INDEX1 ON TABLE1(C1) IN PDBUSER03
・移行先の表，及びインデクスの定義
  CREATE TABLE TABLE11(C1 INT NOT NULL,C2 CHAR(8),C3 INT) IN PDBUSER11
  CREATE INDEX INDEX11 ON TABLE11(C1) IN PDBUSER13

［概要］

１．移行元の表のアンロード

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE1）をアンロードします。

-k unld：アンロードをするときの指定

-t TABLE1：アンロード対象の表の名称

-g：別表へデータを移行するときの指定

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload bes1:/hd001/unload_file                             1

［説明］

アンロードデータファイルの指定

bes1：アンロードデータファイルがあるサーバの名称

/hd001/unload_file：アンロードデータファイルの名称

２．移行先の表へのリロード（別表へのリロード）

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE11）へリロードします。

-k reld：リロードをするときの指定

-t TABLE11：リロード対象の表の名称

-g：別表へデータを移行するときの指定

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload bes1:/hd001/unload_file              1
 idxwork bes2 /usr/idxwork                   2
 sort bes2 /usr/sortwork                     3
 tblname TABLE1                              4

［説明］

アンロードデータファイルの指定

bes1：アンロードデータファイルがあるサーバの名称

/hd001/unload_file：アンロードデータファイルの名称

インデクス情報を出力するインデクス情報ファイル用ディレクトリの指定

bes2：インデクス情報ファイルを作成するサーバの名称

/usr/idxwork：インデクス情報ファイル用ディレクトリの名称

ソート用ワークディレクトリの指定

bes2：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

別表へ表データをリロードする場合の指定

TABLE1：移行元の表の名称

(4)　抽象データ型がある表の表分割条件を変更する場合のアンロードとリロード

例４

抽象データ型（SGMLTEXT）がある表（TABLE1）の表分割条件を変更するため，まず表をアンロードします。アンロードした後に表の表分割条件を変更して，その表にリロードします。
なお，抽象データ型（SGMLTEXT）はHiRDB Text Search Plug-inで提供されています。
・表の定義
  CREATE TABLE TABLE1(C1 INT,C2 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER01)
                      PLUGIN'<DTD>sgml.dtd</DTD>' ) IN PDUSER01

［概要］

１．表分割条件変更前の表のアンロード

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE1）をアンロードします。

-k unld：アンロードをするときの指定

-t TABLE1：アンロード対象の表の名称

-j：LOB属性の抽象データ型がある表をアンロードするときの指定

-g：表分割条件を変更するときの指定

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload bes1:/hd001/unload_file                             1
 unld_func type=SGMLTEXT,func=unsgmltext(sgmltext)          2

［説明］

アンロードデータファイルの指定

bes1：アンロードデータファイルがあるサーバの名称

/hd001/unload_file：アンロードデータファイルの名称

コンストラクタパラメタ逆生成関数の指定

SGMLTEXT：抽象データ型名（列C2）

unsgmltext：コンストラクタパラメタ逆生成関数の名称（ここでの名称は例なので，正式な名称については各種プラグインのマニュアルを参照してください）

sgmltext：コンストラクタパラメタ逆生成関数の引数のデータ型

２．表（TABLE1）の表分割条件の変更

まず，表TABLE1をDROP TABLEで削除してください。

そして，表（TABLE1）の表分割条件を次のように定義し直します。

 CREATE TABLE TABLE1(C1 INT NOT NULL,
                    C2 SGMLTEXT ALLOCATE
                       (SGMLTEXT IN ((LOBUSER01),(LOBUSER02)))
                        PLUGIN'<DTD>sgml.dtd</DTD>' )
    IN ((PDUSER01) C1<2000,(PDBUSER02))

３．表分割条件を変更した表へのリロード

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE1）へリロードします。

-k reld：リロードをするときの指定

-t TABLE1：リロード対象の表の名称

-j：LOB属性の抽象データ型がある表をリロードするときの指定

-g：表分割条件を変更するときの指定

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload bes1:/hd001/unload_file                       1
 reld_func type=SGMLTEXT,func=sgmltext(blob)          2

［説明］

アンロードデータファイルの指定

bes1：アンロードデータファイルがあるサーバの名称

/hd001/unload_file：アンロードデータファイルの名称

コンストラクタ関数の指定

SGMLTEXT：抽象データ型名（列C2）

sgmltext(blob)：コンストラクタ関数の名称（括弧内はコンストラクタ関数の引数のデータ型）

(5)　抽象データ型がある表の表データを別表に移行する場合のアンロードとリロード

例５

抽象データ型（SGMLTEXT）がある表（TABLE1）の表データを別表に移行します。
なお，抽象データ型（SGMLTEXT）はHiRDB Text Search Plug-inで提供されています。
・移行元の表の定義
  CREATE TABLE TABLE1(C1 INT,
                      C2 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER01)
                        PLUGIN'<DTD>sgml.dtd</DTD>'
                      C3 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER02)
                        PLUGIN'<DTD>sgml.dtd</DTD>'
                      ) IN PDUSER01
・移行先の表の定義
  CREATE TABLE TABLE2(C1 INT,
                      C2 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER03)
                        PLUGIN'<DTD>sgml.dtd</DTD>'
                      C3 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER04)
                        PLUGIN'<DTD>sgml.dtd</DTD>'
                      ) IN PDUSER02

［概要］

１．移行元の表のアンロード

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE1）をアンロードします。

-k unld：アンロードをするときの指定

-t TABLE1：アンロード対象の表の名称

-j：LOB属性の抽象データ型がある表をアンロードするときの指定

-g：別表へデータを移行するときの指定

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload bes1:/hd001/unload_file                             1
 unld_func type=SGMLTEXT,func=unsgmltext(sgmltext)          2

［説明］

アンロードデータファイルの指定

bes1：アンロードデータファイルがあるサーバの名称

/hd001/unload_file：アンロードデータファイルの名称

コンストラクタパラメタ逆生成関数の指定

SGMLTEXT：抽象データ型名（列C2）

unsgmltext：コンストラクタパラメタ逆生成関数の名称（ここでの名称は例なので，正式な名称については各種プラグインのマニュアルを参照してください）

sgmltext：コンストラクタパラメタ逆生成関数の引数のデータ型

２．移行先の表へのリロード（別表へのリロード）

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE2）へリロードします。

-k reld：リロードをするときの指定

-t TABLE2：リロード対象の表の名称

-j：LOB属性の抽象データ型がある表をリロードするときの指定

-g：別表へデータを移行するときの指定

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload bes1:/hd001/unload_file                       1
 reld_func type=SGMLTEXT,func=sgmltext(blob)          2
 tblname TABLE1                                       3

［説明］

アンロードデータファイルの指定

bes1：アンロードデータファイルがあるサーバの名称

/hd001/unload_file：アンロードデータファイルの名称

コンストラクタ関数の指定

SGMLTEXT：抽象データ型名（列C2）

sgmltext(blob)：コンストラクタ関数の名称（括弧内はコンストラクタ関数の引数のデータ型）

別表へ表データをリロードする場合の指定

TABLE1：移行元の表の名称

(6)　固定長データ形式のpdload用入力データファイルの作成

例６

表「商品表」のデータを，固定長データ形式のpdload用入力データファイルとしてアンロードします。
・表の定義
  CREATE TABLE 商品表
        (商品番号 SMALLINT NOT NULL,商品名 NVARCHAR(12),数量 INTEGER)
        IN ((RDAREA1)商品番号<=10000,(RDAREA2)商品番号<=20000,(RDAREA3));

［pdrorgのコマンド］

 pdrorg -k unld -t 商品表 -W fixtext,@,cr control_file

［説明］

-k unld：アンロードをするときの指定

-t 商品表：アンロード対象の表の名称

-W fixtext,@,cr：固定長データ形式のpdload用入力データファイルとしてアンロードする場合の指定（パディング文字は@で，1バイトの改行コードを付けます）

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload bes1:/hd001/unload_file                                          1
 fixtext_option enclose=" format=integer,type1 format=smallint,type2     2

［説明］

アンロードデータファイルの指定

bes1：アンロードデータファイルがあるサーバの名称

/hd001/unload_file：アンロードデータファイルの名称

出力データを編集する場合の指定

enclose="：データ型がNVARCHARの列「商品名」のデータを，囲み文字「"」で囲みます。

format=integer,type1：データ型がINTEGERの列「数量」のデータを，出力形式type1で出力します。

format=smallint,type2：データ型がSMALLINTの列「商品番号」のデータを，出力形式type2で出力します。

［出力データ］

商品番号        商品名                       数量
(6バイト)       (14バイト)                  (11バイト)              (1バイト)

###100          "BOOTS"@@@@@@@              @@@@@@@@@@@           改行文字
@@@@@@          ""@@@@@@@@@@@@              #0000000100           改行文字
-12345          @@@@@@@@@@@@@@              -0000000300           改行文字

注

＃は空白文字です。また，1行は32バイトです。

8.3.2　目的別の参照先一覧

ユーザが実行するアンロードの形態によって，指定するオプション，制御文が異なります。

(1)のオプション，及び制御文は必ず指定してください。(2)〜(4)で該当する項目があれば，その参照先にあるものが関連するオプション，及び制御文となります。なお，オプションについては，「オプション」が参照先となります。

(1)　必ず指定する項目

項目

参照先

オプション

制御文

pdrorgの処理内容

-k unld

−

ユーザが定義した表のアンロード（省略時仮定値が-c userなので省略できます）

-c user

−

アンロードする表の名称

-t

−

制御文を記述したファイル

制御情報ファイル名

−

アンロードデータファイルの情報

−

unload文

（凡例）−：該当しません。

(2)　アンロードする表の属性によって指定する項目

項目

参照先

オプション

制御文

LOB列がある場合

-j

lobunld文

プラグインが提供する抽象データ型列（LOB属性）がある場合

-j

unld_func文

繰返し列がある場合

-W

array文

サプレスオプションが指定されている表の場合で，列の後方に連続してある空白を取り除きたいとき※

-S

−

インナレプリカ機能を使用している場合

-q

−

（凡例）−：該当しません。

注※

このオプションを指定すると，処理時間の短縮，及びアンロードデータファイルの容量を削減できます。

(3)　アンロードデータファイル，又はLOBデータのアンロードファイルの種別によって指定する項目

項目

参照先

オプション

制御文

アンロードデータを，pdloadの入力データファイルに使用する場合，又はUAPで使用する場合

-W

fixtext_option文

ファイルを一本化する場合

-g

−

EasyMTを使用する場合

-f

mtguide文

emtdef文

HiRDBファイルを使用する場合

-f

−

アンロードデータの格納順を指定する場合（クラスタキー順，インデクス順，又はデータ格納順のどれか）

-b

−

（凡例）−：該当しません。

(4)　アンロードの方法によって指定する項目

項目

参照先

オプション

制御文

横分割表の場合で，特定のRDエリアだけアンロードしたい場合

-r

−

pdrorgを実行するユーザの認可識別子を，環境変数PDUSER設定値以外に変更したい場合※１

-u

−

グローバルバッファを使用しないで，ローカルバッファを使って一括入出力のアンロードをしたい場合※２

-n

−

アンロードの実行状態のメッセージ出力間隔を，10万行単位以外にしたい場合

-m

−

インフォメーションメッセージの出力を抑止したい場合

サーバ間通信の応答時間を監視したい場合

-X

−

pdrorgの実行時間を監視したい場合

−

option文

表データ中の空白文字コードを統一したい場合

−

option文

アンロードデータファイルのデータをUTF-8，又はUTF-16に統一してアンロードしたい場合

−

option文

BLOB属性の抽象データ型の列を，VARCHAR型でアンロードしたい場合

−

blobtovarchar文

次のどれかを実行したい場合

不要なデータを削除してアンロードデータファイルを出力したいとき

データを更新してpdloadの入力データファイルにしたいとき

アプリケーション用に任意のフォーマットで出力したいとき

−

unlduoc文

（凡例）−：該当しません。

注※1

省略した場合は，環境変数PDUSERの設定値が仮定されます。環境変数PDUSERを設定していない場合は，ログインウィンドウのユーザ名が仮定されます。

注※2

一括入出力ページ数を指定すると，指定したページ数単位で一括入出力をするので，I/O回数を削減できます。

8.3.3　データベース作成ユティリティの入力用ファイルの形式

-Wオプションを指定した場合，作成されたアンロードデータファイルは，データベース作成ユティリティの入力データファイルとして使用できます。

(1)　DAT形式，及び拡張DAT形式の場合

DAT形式，及び拡張DAT形式の場合，データは文字データで出力します。DAT形式と拡張DAT形式の相違点については，「DAT形式と拡張DAT形式の相違点」を参照してください。この相違点以外は，DAT形式と拡張DAT形式は同じになります。

規則を次に示します。

表の1行に対して，ファイルの1行を出力します（行の終わりには改行文字を出力します）。

列データ間にはセパレータ文字が入ります。各データ型に対する列データの出力形式（DAT形式）については，「DAT形式の場合」を参照してください。

文字データ，各国文字データ，混在文字データ，及びBINARYデータの出力形式は，引用符（"）で囲んだ形となります。

抽象データ型の出力形式は，コンストラクタパラメタ逆生成関数の指定数文のデータを，セパレータ文字で区切った形となります。ただし，コンストラクタパラメタ逆生成関数の戻り値がBLOB型の場合は，ナル値としてセパレータ文字を連続して出力します。

LOB列のデータは，-jオプションの指定に関係なくナル値として出力します。

抽象データ型の列のデータは，コンストラクタパラメタ逆生成関数の戻り値がBLOB型の場合はナル値として出力します。

変換後の行長が512メガバイトを超える場合はエラーとなります。また，アンロードデータファイルにストリーミングテープ装置を割り当てた場合は，行長が32キロバイトを超えるとエラーになります。

option文にspacelvl=3を指定していて，更にsupオプションを指定している場合，NCHAR型の半角空白2バイトを空白変換してから，半角空白2バイト分を一組として出力抑止します。

列のデータ型が文字データ，各国文字データ，混在文字データ，又はバイナリの場合，列値中に囲み文字（"）＋セパレータ文字，又はセパレータ文字＋囲み文字（"）の組み合わせの文字の並びがあるときは，それらを列データの終了位置，開始位置とみなしてデータロードすることがあります。これを防ぐには，-Wオプションでセパレータ文字を変更してアンロードするか，又はバイナリ形式で出力するかしてください。

予備列が定義されたFIX属性の表の場合，予備列は出力できません。

(a)　繰返し列の場合の形式

繰返し列の場合は，各要素のデータをセパレータ文字で区切って出力します。

ただし，制御情報ファイルのarray文の指定によって行データ形式が異なります。array文にffを指定した場合の行データ出力形式とvvを指定した場合の行データ出力形式を次の図に示します。

図8‒13　array文にffを指定した場合の行データ出力形式

図8‒14　array文にvvを指定した場合の行データ出力形式

(b)　supオプションを指定した場合の形式

アンロード時にsupオプションを指定すると，表定義の列長に満たない部分の空白を圧縮した形式でアンロードデータファイルに出力します。supオプションを指定した場合の形式と，指定しない場合の形式を次に示します。

データ型がCHAR，又はMCHARの場合

（例１）　表定義　CREATE TABLE T1(C1 INTEGER,C2 CHAR(10),…);

　　　入力したデータ　1,AA,…

supオプションを指定した場合：

1,"AA",…

[説明]

表定義長に満たない部分(８文字分)の空白を圧縮して出力します。

supオプションを指定しない場合：

1,"AA........",…

注　「.」は半角空白を示します。

[説明]

表定義長に満たない部分(８文字分)に半角空白(.)を埋めて出力します。

（例２）　表定義　CREATE TABLE T1(C1 INTEGER,C2 MCHAR(10),…);

　　　入力したデータ　1,..........,…(.は半角空白を示します)

supオプションを指定した場合：

1,".",…

[説明]

半角空白を１バイト出力します。

supオプションを指定しない場合：

1,"..........",…

[説明]

表定義長分半角空白を出力します。

データ型がNCHARの場合

（例１）　表定義　CREATE TABLE T1(C1 INTEGER,C2 NCHAR(10),…);

　　　入力したデータ　１,ＡＡ,…

supオプションを指定した場合：

１,"ＡＡ",…

[説明]

表定義長に満たない部分(８文字分)の空白を圧縮して出力します。

supオプションを指定しない場合：

１,"ＡＡ△△△△△△△△",…

注　「△」は２バイトの空白を示します。

[説明]

表定義長に満たない部分(８文字分)に２バイトの空白を出力します。

（例２）　表定義　CREATE TABLE T1(C1 INTEGER,C2 NCHAR(10),…);

　　　入力したデータ　１,△△△△△△△△△△,…

　　　　　　　　　　　(△は２バイトの空白を示します)

supオプションを指定した場合：

１,"△",…

[説明]

２バイトの空白を一つ出力します。

supオプションを指定しない場合：

１,"△△△△△△△△△△",…

[説明]

表定義長分に２バイトの空白を出力します。

データ型がNCHARの場合（option文にspacelvl=3を指定した場合）

（例１）　表定義　CREATE TABLE T1(C1 INTEGER,C2 NCHAR(10),…);

　　　入力したデータ　１,ＡＡ....,…(.は半角空白を示します)

supオプションを指定した場合：

１,"ＡＡ",…

[説明]

表定義長に満たない部分(８文字分)の空白を圧縮して出力します。

supオプションを指定しない場合：

１,"ＡＡ................",…

[説明]

表定義長に満たない部分(８文字分)に半角空白を出力します。

（例２）　表定義　CREATE TABLE T1(C1 INTEGER,C2 NCHAR(10),…);

　　　入力したデータ　１,△△△△△△△△△△,…

　　　　　　　　　　　(△は２バイトの空白を示します)

supオプションを指定した場合：

１,"..",…

注　「．」は半角空白を示します。

[説明]

半角空白を２バイト分出力します。

supオプションを指定しない場合：

1,"....................",…

注　「．」は半角空白を示します。

[説明]

表定義長分に半角空白を出力します。

(c)　DAT形式と拡張DAT形式の相違点

DAT形式と拡張DAT形式の相違点を次に示します。

項目

DAT形式

拡張DAT形式

データ中にNULL文字（¥0），又は改行文字（¥n）がある場合

該当する列データ値を含む行は出力しません。

該当する列データ値を含む行を出力します（¥0及び¥nはそのまま出力します）。

データ中に囲み文字（"）と同じデータがある場合

該当する列データ値としての囲み文字は，そのまま出力します。

該当する列データ値としての囲み文字を，二重にして出力します。※

（例）「"」→「""」

注※

マルチバイト文字も変換対象になるため，APなどでファイルの内容を参照する場合は注意が必要です。なお，pdloadでは，マルチバイト文字に関係なく「""」を「"」に変換するため，データロードはできます。

(d)　文字コードがUTF-16の拡張DAT形式のpdload用アンロードファイルを作成する場合

文字コードがUTF-16の拡張DAT形式のpdload用アンロードファイルを作成する場合，次のデータが表に格納されているときは，アンロード時に対処が必要となります。

列のデータ型

データの内容

BINARY型

奇数バイト長のデータ

BINARY型データを返却するコンストラクタパラメタ逆生成関数を使用してアンロードする抽象データ型

コンストラクタパラメタ逆生成関数の返却値が奇数バイト長のデータ

上記のデータが表に格納されているかどうかは，次のSQL文を実行することで確認できます。BINARY型，及びBINARY型データを返却するコンストラクタパラメタ逆生成関数を使用してアンロードする抽象データ型のすべての列に対して実行してください。

SELECT COUNT(*) FROM [認可識別子.]表識別子
                            WHERE 制約式 [OR 制約式 ...]

制約式 ::= {  MOD(LENGTH(BINARY型列名),2)=1
            | MOD(LENGTH(関数名(列名[,列名 ...])),2)=1 }
関数名 ::= BINARY型データを返却するコンストラクタパラメタ逆生成関数の名称

SQL文の実行結果が0件の場合

特に対処は必要ありません。そのままアンロードしてください。

SQL文の実行結果が0件でない場合

次のどちらかの方法でアンロードしてください。

文字コードをUTF-8（option文のcharsetオペランド指定なし）にして，アンロードしてください。

バイナリ形式（-W bin指定）でアンロードしてください。

(2)　バイナリ形式の場合

バイナリ形式の場合，データはデータベースの列定義に合わせた内部形式で出力します。このため，このファイルをデータベース作成ユティリティの入力とする場合は，アンロードした表とデータロード先の表の列定義は同じでなければなりません。また，非FIX表をアンロードした場合は，列定義が同じであってもFIX表にはデータロードできません。

出力形式を次に示します。

●CMTヘッダ

CMTに出力する場合は，最初に512バイト分のCMTヘッダを付けて出力します。

●行データ

FIX表と非FIX表では行データの出力形式が異なります。なお，各データ型に対する列データの出力形式（バイナリ形式）については，「バイナリ形式の場合」を参照してください。

・FIX表の場合

列の定義順に，列のデータ値をバウンダリしないで詰めて出力します。FIX表の出力形式を次の図に示します。

図8‒15　FIX表の出力形式

・非FIX表の場合

各部を順に，バウンダリしないで詰めて出力します。非FIX表の出力形式を次の図に示します。

図8‒16　非FIX表の出力形式

制御部の出力形式を次の図に示します。

図8‒17　非FIX表の制御部の出力形式

データの長さ部

データの長さ部の先頭から，データ部の最後までの長さを2進数（4バイト）で出力します。図「非FIX表の制御部の出力形式」では，Lになります。

データのオフセット部

データのオフセット部は，列定義順にバウンダリしないで詰めて出力します。対象列が抽象データ型の場合は，コンストラクタ逆生成関数の関数分（unld_func文に指定した数），関数指定順（unld_func文に指定した順）にオフセット値をバウンダリしないで詰めて出力します。

オフセット値

データの長さ部の先頭から，各列（コンストラクタパラメタ逆生成関が生成したデータ値）のデータ値の先頭までの長さを2進数（4バイト）で出力します。データ値がナル値の場合は，0を出力します。

データ部は，図「非FIX表の出力形式」に示すように，基本データ部，BINARY属性データ部，BINARY列データ部，BLOB属性データ部，及びBLOB列データ部から成ります。

基本データ部

制御部（データのオフセット値）の後からデータの長さ（図「非FIX表の制御部の出力形式」のL）分まで，データの長さ列のデータ値，及びコンストラクタパラメタ逆生成関数が返却したデータ値を出力します。なお，該当列のオフセット値が0（ナル値）の場合は出力しません。また，各列のデータ値及びコンストラクタパラメタ逆生成関数が返却したデータ値の出力順は保障しません（各データ値の先頭位置はオフセット値で参照できます）。基本データ部に出力する，各列及びコンストラクタパラメタ逆生成関数が返却したデータ値を次の表に示します。

表8‒3　基本データ部に出力する値

列の属性

列のデータ型

コンストラクタパラメタ逆生成関数が返却するデータ型

基本データ部に出力する値

繰返し列

−

−

※

上記以外

抽象データ型

BINARY型

コンストラクタパラメタ逆生成関数が返却したデータ値の長さ

BLOB型

コンストラクタパラメタ逆生成関数が返却したデータ値の長さ

上記以外

コンストラクタパラメタ逆生成関数が返却したデータ値

BINARY型

−

列のデータ値の長さ

BLOB型

−

列のデータ値の長さ

上記以外

−

列のデータ値

（凡例）−：該当しません。

注※

繰返し列の場合，基本データ部に出力する値は要素数，要素データで構成し，バウンダリしないで詰めて出力します。繰返し列の場合の基本データ部の出力形式を次の図に示します。

図8‒18　繰返し列の場合の基本データ部の出力形式

要素数

繰返し列のデータ中の要素の数を2進数（2バイト）で1〜30,000の範囲で出力します。pdloadは要素数が0の場合はエラーデータとして扱うため，要素数を0にするのではなく，オフセット値を0（ナル値）としてください。

要素データ

要素値（ナルフラグとデータ値）を要素ごとに，データベース格納順にバウンダリしないで詰めて出力します。なお，要素数が0の場合は出力しません。

要素値

ナルフラグとして，先頭1バイトに該当する要素がナル値かどうかを示す値を2進数（1バイト）で出力します。ナル値の場合は「0x01」を，ナル値以外の場合は「0x00」を出力します。

ナルフラグに続けてデータ値をデータ値の長さ分，バウンダリしないで出力します。

BINARY属性データ部及びBLOB属性データ部

抽象データ型の列を含む表の場合，その抽象データ型に対してunld_func文に指定したコンストラクタパラメタ逆生成関数が返却するデータ型がBINARY型又はBLOB型のとき，返却したBINARYデータ値又はBLOBデータ値（長さを含まない）を出力します。unld_func文にコンストラクタパラメタ逆生成関数を指定していないときは，BINARY属性データ部又はBLOB属性データ部は存在しません。

BINARY属性データ部又はBLOB属性データ部は，列定義順及びコンストラクタパラメタ逆生成関数関数の指定順に，バウンダリしないで詰めて，基本データ部に出力した長さ分出力します。コンストラクタパラメタ逆生成関数が返却する値がナル値のときはそのデータ値は出力しません。

次に示す例の場合の，BINARY属性データ部の出力形式を図「BINARY属性データ部の出力形式（例）」に示します。

（例）

表定義：

CREATE　TABLE T1(c1 ADT1,C2 INTEGER,C3　ADT2)

ADT1：抽象データ型（ADT1）

ADT2：抽象データ型（ADT2）

unld_func文の指定：

unld_func type=ADT1,func=adt1_func1(ADT1),adt1_func2(ADT1),adt1_func3(ADT1)
unld_func type=ADT2,func=adt2_func1(ADT2),adt2_func2(ADT2),adt2_func3(ADT2)

adt1_func1/adt1_func3：BINARY型のデータを返却するコンストラクタパラメタ逆生成関数

adt1_func2：INTEGER型のデータを返却するコンストラクタパラメタ逆生成関数

adt2_func1/adt2_func3：BINARY型のデータを返却するコンストラクタパラメタ逆生成関数

adt2_func2：INTEGER型のデータを返却するコンストラクタパラメタ逆生成関数

図8‒19　BINARY属性データ部の出力形式（例）

BINARY列データ部及びBLOB列データ部

BINARY型又はBLOB型の列が含まれる表の場合，BINARY型又はBLOB型の列のデータ値（長さを含まない）を出力します。BINARY型の列がない表のときはBINARY列データ部は存在しません。また，BLOB型の列がない表のとき，及びコマンドラインに-jオプションを指定していないときはBLOB列データ部は存在しません。

BINARY型又はBLOB型の列のデータ値は，列定義順にバウンダリしないで詰めて，基本データ部に出力した長さ分出力します。なお，該当する列の値がナル値のときはそのデータ値は出力しません。

(3)　固定長データ形式の場合

固定長データ形式の場合，データは固定長の文字データで出力します。

(a)　出力形式

出力単位

データベース中の1行に対して，1行のデータを出力します。

1行の出力形式

1行の長さ

固定長で出力します。

列データの出力順序

列定義順に出力します。

列間のセパレータ

列データと列データの間には，セパレータ文字を出力しません。

改行

オプションを指定すれば，1行の終端に改行文字を入れられます。

各列の出力形式

各列のデータの出力形式については，表「各列のデータの出力形式」を参照してください。

繰返し列の出力形式

各要素のデータを，定義されている要素数分繰り返して出力します。各要素のデータの出力形式については，表「各列のデータの出力形式」を参照してください。

特殊な列データの出力形式

列データがナル値

列データの出力長分のパディング文字を埋めて出力します。繰返し列の場合，（列データの出力長×定義されている要素数）分のパディング文字を埋めて出力します。

繰返し列の要素がナル値

列データの出力長分のパディング文字を埋めて出力します。

列データ中の制御文字

文字データ型，混在文字データ型，及び各国文字データ型の場合，制御文字があったときの動作をfixtext_option文で指定できます。デフォルトは，制御文字があるかどうかをチェックしません。

表8‒4　各列のデータの出力形式

列のデータ型

出力形式

出力長

(単位：バイト)※1

数データ

INTEGER

fixtext_option文でformat=integer,type1を指定した場合，又はfixtext_option文を省略した場合

・数値を右詰めで出力します。

・先頭1バイトを符号部とし，プラスの値の場合は空白文字(0x20)，マイナスの値の場合は"-"を出力します。

・空いた部分は"0"で埋めて出力します。

（例）

△0000000001

-0000000001

注　△は空白文字です。

fixtext_option文でformat=integer,type2を指定した場合

・数値を右詰めで出力します。

・数値の左隣を符号部とし，プラスの値の場合は空白文字(0x20)，マイナスの値の場合は"-"を出力します。

・空いた部分は空白文字(0x20)で埋めて出力します。

（例）

△△△△△△△△△△2

△△△△△△△△△-2

注　△は空白文字です。

11

SMALLINT

fixtext_option文でformat=smallint,type1を指定した場合，又はfixtext_option文を省略した場合

・数値を右詰めで出力します。

・先頭1バイトを符号部とし，プラスの値の場合は空白文字(0x20)，マイナスの値の場合は"-"を出力します。

・空いた部分は"0"で埋めて出力します。

（例）

△00003

-00003

注　△は空白文字です。

fixtext_option文でformat=smallint,type2を指定した場合

・数値を右詰めで出力します。

・数値の左隣を符号部とし，プラスの値の場合は空白文字(0x20)，マイナスの値の場合は"-"を出力します。

・空いた部分は空白文字(0x20)で埋めて出力します。

（例）

△△△△△3

△△△△-3

注　△は空白文字です。

6

DECIMAL

整数.小数の形式で，数値を右詰めで出力します。

先頭1バイトを符号部とし，プラスの値の場合は空白文字(0x20)，マイナスの値の場合は"-"を出力します。

空いた部分は"0"で埋めて出力します。

（例1）

DEC(6,2)

　△0003.14

　-0003.14

（例2）

DEC(6,0)

　△000314．

　-000314.

（例3）

DEC(6,6)

　△.000314

　-.000314

注　△は空白文字です。

けた数＋2

FLOAT

仮数部E指数部の形式で，左詰めで出力します。

先頭1バイトを符号部とし，プラスの値の場合は"+"，マイナスの値の場合は"-"を出力します。

空いた部分は空白文字(0x20)で埋めて出力します。

（例1）

20E10

　+2.000000000000000E+11△

（例2）

-30E222

　-3.000000000000000E+223

注　△は空白文字です。

23

SMALLFLT

仮数部E指数部の形式で，左詰めで出力します。

先頭1バイトを符号部とし，プラスの値の場合は"+"，マイナスの値の場合は"-"を出力します。

空いた部分は空白文字(0x20)で埋めて出力します。

（例）

20E10

　+2.000000000000000E+11△

注　△は空白文字です。

23

文字データ

CHARACTER

左詰めで定義長分出力します。

fixtext_option文のencloseオペランドで囲み文字の付加有無を指定できます。

（例1）

enclose指定なし，定義長：8

　AIKO△△△△

（例2）

enclose="，定義長：8

　"AIKO△△△△"

注　△は空白文字です。

条件によって変わります※2

VARCHAR

左詰めで実長分出力します。

fixtext_option文のencloseオペランドで囲み文字の付加有無を指定できます。

-W fixtextオプションを指定すると，定義長より短い可変長文字列の場合は，定義長までパディング文字を埋めて出力します。

（例1）

enclose指定なし，定義長：8，実長：4

　AIKO△△△△

（例2）

enclose="，定義長：8，実長：4

　"AIKO"△△△△

注　△はパディング文字です。

条件によって変わります※2

混在文字データ

MCHAR

CHARACTERと同じです。

定義長※3

MVARCHAR

VARCHARと同じです。

定義長※3

各国文字データ

NCHAR

CHARACTERと同じです。

定義長×2※3

NVARCHAR

VARCHARと同じです。

定義長×2※3

日付データ

DATE

yyyy-mm-ddの形式で出力します（yyyy：西暦，mm：月，dd：日）。

（例）

2004-03-12

10

時刻データ

TIME

hh:mm:ss の形式で出力します（hh：時，mm：分，ss：秒）。

（例）

12:12:12

8

日間隔データ

INTERVAL YEAR TO DAY

［△｜-］yyyymmdd.の形式で出力します（△：空白文字，-：マイナス符号，yyyy：西暦，mm：月，dd：日）。

先頭1バイトを符号部とし，プラスの値の場合は空白文字(0x20)，マイナスの値の場合は"-"を出力します。

（例）

△00010101.

-00010101.

注　△は空白文字です。

10

時間隔データ

INTERVAL HOUR TO SECOND

［△｜-］hhmmss.の形式で出力します（△：空白文字，-：マイナス符号，hh：時，mm：分，ss：秒）。

先頭1バイトを符号部とし，プラスの値の場合は空白文字(0x20)，マイナスの値の場合は"-"を出力します。

（例）

△010101.

-010101.

注　△は空白文字です。

8

時刻印データ

TIMESTAMP

yyyy-mm-dd△hh:mm:ss[.nnnnnn]の形式で出力します（yyyy：西暦，mm：月，dd：日，△：空白文字，hh：時，mm：分，ss：秒，nnnnnn：小数秒部）。なお，小数秒部は，定義によって0，2，4，又は6けたで出力します。0けたの場合，'.'は出力しません。

（例）

1970-03-12△12:12:12

注　△は空白文字です。

19

小数秒部

0：+0

2：+3

4：+5

6：+7

長大データ

BLOB

データを出力しません。

0

バイナリデータ

BINARY

データを出力しません。

0

抽象データ型

−

データを出力しません。

0

（凡例）

−：該当しません。

注※1

アンロードデータファイルをHiRDBの既定文字コード以外の文字コードで出力する場合，2倍のバイト長で出力します。

注※2

文字データ型の出力長を次に示します。

項番

アンロードデータファイルの文字コード

列の文字集合

encloseオペランド指定

出力長（バイト）

1

HiRDBの既定文字コード

UTF-16

なし

定義長×2

2

あり

定義長×2＋2

3

上記以外（指定なしも含む）

なし

定義長

4

あり

定義長＋2

5

上記以外

UTF-16

なし

定義長

6

あり

定義長＋2×2

7

上記以外（指定なしも含む）

なし

定義長×2

8

あり

定義長×2＋2×2

注※3

fixtext_option文にencloseオペランドを指定した場合，出力長に2バイトを加算してください。

(b)　規則

1行（改行含む）は最大512メガバイト（536,870,912バイト）まで出力できます。

抽象データ型列がある表の場合，unld_func文を指定する必要があります。

FLOAT型又はSMALLFLT型のデータを文字形式に変換した場合，データ値が切り上げられることがあります。データ値が切り上げられると，データベース作成ユティリティ（pdload）でデータ変換エラーとなる場合があります。その場合は，pdloadのオプションに-Fを指定することでデータロードができます。

予備列が定義されたFIX表の場合，予備列は出力できません。

8.4　表へのリロード

8.4.1　使用例

リロードの例については，「使用例」の例2〜例5を参照してください。

8.4.2　目的別の参照先一覧

ユーザが実行するリロードの形態によって，指定するオプション，制御文が異なります。

(1)のオプション，及び制御文は必ず指定してください。(2)〜(4)で該当する項目があれば，その参照先にあるものが関連するオプション，及び制御文となります。なお，オプションについては，「オプション」を参照してください。

(1)　必ず指定する項目

項目

参照先

オプション

制御文

pdrorgの処理内容

-k reld

−

ユーザが定義した表のアンロード（省略時仮定値が-c userなので省略できます）

-c user

−

リロードする表の名称

-t

−

制御文を記述したファイル

制御情報ファイル名

−

アンロードデータファイルの情報

−

unload文

（凡例）−：該当しません。

(2)　リロードする表の属性によって指定する項目

項目

参照先

オプション

制御文

インデクスが定義されている場合

-i

index文

-o

idxwork文

sort文

LOB列がある場合

-j

lobunld文

プラグインが提供する抽象データ型列（LOB属性）がある場合

-j

reld_func文

制約定義がある場合

−

constraint文

インナレプリカ機能を使用している場合

-q

−

（凡例）−：該当しません。

(3)　アンロードデータファイル，又はLOBデータのアンロードファイルの種別によって指定する項目

項目

参照先

オプション

制御文

ファイルを一本化している場合（アンロード時に-gオプションを指定している場合）

-g

−

EasyMTを使用している場合

-f

mtguide文

emtdef文

HiRDBファイルを使用している場合

-f

−

（凡例）−：該当しません。

(4)　リロードの方法によって指定する項目

項目

参照先

オプション

制御文

横分割表の場合で，特定のRDエリアにだけリロードしたい場合

-r

−

データベース更新ログを取得する場合，又は取得しない場合

-l

−

大量データのリロードの場合に，同期点を指定したいとき

−

option文

pdrorgの実行時間を監視したい場合

−

option文

pdrorgを実行するユーザの認可識別子を，環境変数PDUSER設定値以外に変更したい場合※１

-u

−

グローバルバッファを使用しないで，ローカルバッファを使って一括入出力のリロードをしたい場合※２

-n

−

リロードの実行状態のメッセージ出力間隔を，10万行単位以外にしたい場合

-m

−

インフォメーションメッセージの出力を抑止したい場合

サーバ間通信の応答時間を監視したい場合

-X

−

表データを別表に移行したい場合

−

tblname文

表データ中の空白文字コードを統一したい場合

−

option文

リロード時に，表，及びインデクスの空き領域比率を変更したい場合※３

−

option文

（凡例）−：該当しません。

注※1

省略した場合は，環境変数PDUSERの設定値が仮定されます。環境変数PDUSERを設定していない場合は，ログインウィンドウのユーザ名が仮定されます。

注※2

一括入出力ページ数を指定すると，指定したページ数単位で一括入出力をするので，I/O回数を削減できます。

注※3

pdrorg実行時にRDエリアの容量不足が発生した場合，暫定的にRDエリアを拡張しないで処理を完了できます（ただし，空き領域比率が0の表，及びインデクスを除く）。

8.4.3　アンロード元の表とリロード先の表の表定義が異なる場合のリロード実行可否

pdrorgでは，アンロードした表の表定義情報をアンロードデータファイルに出力しています。リロード時は，アンロードデータファイル内の表定義情報とリロードする表の表定義情報を比較し，リロードできるかどうかを判定しています。

アンロードした表に対するリロードは，表定義が同じ場合はリロードができます。しかし，別表，若しくは別システムへの表データの移行，又は表定義が異なる表へのリロードは，条件によってリロードができない場合があります。

(1)　リロード時に指定するオプション

別表，若しくは別システムへ表データを移行する場合，又はアンロードした表とリロードする表の格納条件が異なる表へのリロードをする場合，次のようにオプションを指定してください。

アンロード時，及びリロード時に-gオプションを指定してください。

BLOB列，又はBLOB属性の抽象データ型列がある表の場合，-gオプションと同時に-jオプションも指定してください。

(2)　アンロードした表とリロードする表の格納条件の比較

アンロードした表とリロードする表の分割方法が同じ場合は，次の表の項目をチェックし，格納条件が異なるかどうかを判定します。格納条件が異なる場合，表「格納条件が異なる場合のリロード可否」に従って，リロード可否が決まります（表単位又はスキーマ単位にリロードする場合の実行可否です。RDエリア単位にリロードする場合はすべての条件で実行できません）。

表8‒5　アンロードした表とリロードする表の分割方法が同じ場合の格納条件チェック項目

分割方法

チェック項目

非分割

なし

ハッシュ分割

ハッシュ関数

関数名

ハッシュ種別

FIX又はフレキシブル

分割キーの列構成

定義順

格納RDエリア

格納RDエリア数，RDエリアID，RDエリア名，及びサーバ名

キーレンジ

分割キーの列構成

定義順，及び列ID

分割キーの先頭列

列ID，データ型，及び定義長

分割条件数

分割条件

格納RDエリアID，及び条件値

マトリクス分割

分割キーの列構成

定義順

分割条件数

分割条件値数

分割キーの条件

キー内分割数，次元番号，分割列ID，データ型，定義長，条件値長，及び条件値

ハッシュ関数

関数名

ハッシュ種別

FIX又はフレキシブル

格納RDエリア

格納RDエリア数，RDエリアID，RDエリア名，及びサーバ名

表8‒6　格納条件が異なる場合のリロード可否

-g指定※１

HiRDBの構成

アンロードした表の分割条件

リロードする表の分割条件

キーレンジ分割

ハッシュ分割

マトリクス分割

非分割

FIX

フレキシブル

キーレンジとキーレンジ

キーレンジとハッシュ

あり

HiRDB/シングルサーバ

キーレンジ分割

○

○

○

○

○

○

ハッシュ分割

FIX

○

○

○

○

○

○

フレキシブル

○

○

○

○

○

○

マトリクス分割

キーレンジとキーレンジ

○

○

○

○

○

○

キーレンジとハッシュ

○

○

○

○

○

○

非分割

○

○

○

○

○

○

HiRDB/パラレルサーバ

キーレンジ分割

○

○

○

○

○

○

ハッシュ分割

FIX

○

○

○

○

○

○

フレキシブル

○

○

○

○

○

○

マトリクス分割

キーレンジとキーレンジ

○

○

○

○

○

○

キーレンジとハッシュ

○

○

○

○

○

○

非分割

○

○

○

○

○

○

なし

HiRDB/シングルサーバ

キーレンジ分割

○

○

○

○

○

○

ハッシュ分割

FIX

×

○

○

○

○

○

フレキシブル

×

○

○

○

○

○

マトリクス分割

キーレンジとキーレンジ

○

○

○

○

○

○

キーレンジとハッシュ

○

○

○

○

○

○

非分割

○

○

○

○

○

○

HiRDB/パラレルサーバ

キーレンジ分割

○※６

×

○※２※３

×

×

○※５

ハッシュ分割

FIX

×

×

○※２※４

×

×

○※５

フレキシブル

×

×

○※７

×

×

○※５

マトリクス分割

キーレンジとキーレンジ

×

×

○※２※３

○※６

×

○※５

キーレンジとハッシュ

×

×

○※２※３

×

×

○※５

非分割

×

×

○※２※３

×

×

○※２

（凡例）

○：リロードする表の格納条件に従って格納できます。

×：リロードできません。

注※1

アンロード時，及びリロード時の-gオプションの指定有無を示しています。なお，-gオプションを指定しない場合の分割表から非分割表へのリロードの意味は，サーバ間分割していない分割表から非分割表へのリロードを指します。サーバ間分割している場合は-gオプションを指定してください。

注※2

BLOB列，又はBLOB属性の抽象データ型列がある表の場合，アンロード時，及びリロード時に-jオプションを指定しているときだけリロードできます。

注※3

ハッシュ関数を使用しないで，pdrorgがラップアラウンドで格納します。

注※4

アンロード時に格納されていたRDエリアと同じRDエリアに格納します。アンロード時のRDエリアがリロード時にない場合は，リロードできません。

注※5

BLOB列，又はBLOB属性の抽象データ型列がある表の場合はリロードできません。

注※6

表格納条件の変更の内容によって，リロード可否が決まります。リロード可否を次に示します。

表格納条件の変更の内容

リロード可否

備考

分割条件変更あり

分割条件追加

×

エラー終了します。

分割条件削除

分割キー値の変更

分割条件変更なし

格納RDエリア変更あり

RDエリア名変更

○

注※2，及び注※5の条件を満たす場合，アンロード時の格納RDエリアに対応するRDエリアに格納します。

RDエリアがあるサーバの変更

×

エラー終了します。

格納RDエリア変更なし

分割キーの構成列変更（列名，指定順序など）

×

エラー終了します。

（凡例）

　○：リロードできます。

　×：リロードできません。

注※7

表格納条件の変更の内容によって，リロード可否が決まります。リロード可否を次に示します。

表格納条件の変更の内容

リロード可否

備考

格納RDエリア変更あり

RDエリアの追加

○

注※4，及び注※5の条件を満たす場合，アンロード時の格納RDエリアに格納します。追加したRDエリアには格納されません。

RDエリアの削除

×

エラー終了します。

RDエリアの名称変更

RDエリアがあるサーバの変更

格納RDエリア変更なし

ハッシュ関数変更

○

注※4，及び注※5の条件を満たす場合，アンロード時の格納RDエリアに格納します。

分割キーの構成列変更（列名，指定順序など）

（凡例）

　○：リロードできます。

　×：リロードできません。

(3)　リロードできないときの条件

次のような場合にはリロードできません。

LOB列がある表で-jオプションを指定していない場合

FIX表から非FIX表，又は非FIX表からFIX表へのリロード

アンロードした表とリロードする表の列数，列定義順序，各列のデータ型，列名，及び列属性（非ナル値制約など）が異なる場合

非ナル値制約の列がある表をアンロードし，リロード先では分割キー構成列とした場合（非ナル値制約でない列を分割キー構成列に変更した場合は，-Wオプションを指定してアンロードし，データベース作成ユティリティでデータロードしてください）

値が重複するデータの列に，新たにユニークキーインデクス又は主キーインデクスを定義した場合

リロードする表の繰返し列ごとの要素数が，アンロードした表よりも小さい場合

抽象データ型が定義されている列のデータ型を変更した場合

8.4.4　表の再編成時のリロード処理でエラーとなった場合の運用方法

表の再編成時のリロード処理でエラーとなった場合，エラー原因を取り除いてから再度表の再編成（-k rorg）を実行します。

(1)　表の再編成時にエラーとなった処理と，再実行時の再開始位置

表の再編成でエラーとなった場合，表のステータスが「再編成中」となります。表のステータスが再編成中の場合，表の再編成を再実行すると，エラーとなった処理から再開されます。該当するRDエリアが再編成中かどうかは，pddbstのRDエリア単位の論理的解析，又は表単位の解析を実行して，解析結果のStatusを見れば分かります。

(a)　LOB列構成基表の再編成，並びにLOB列構成基表，及びLOB列を同時に再編成（-j指定）する場合

表の再編成時にエラーとなった場合に再実行したときの再開始位置を次の表に示します。なお，LOB列構成基表，及びLOB列の同時再編成は，-jオプションを指定して一つのアンロードデータファイルを使用する場合について説明しています。

pdrorg実行時のオプションの指定：

pdrorg -k rorg 〔-j〕

pdrorg実行時の制御情報ファイルの指定：

unload文

表8‒7　表の再編成時にエラーとなった場合に再実行したときの再開始位置（LOB列構成基表の再編成，並びにLOB列構成基表，及びLOB列を同時に再編成（-j指定）する場合）

項番

表の再編成時の処理

エラー直前の出力メッセージ※

表のステータス

再開始位置

LOB列構成基表

LOB列

LOB属性

1

アンロード

アンロード開始

712，732

−

−

−

項番1

2

アンロード完了

714，734

rc=8

−

−

−

項番1

rc=0

未かつR

未かつR

未かつR

改竄防止表の場合：

項番3

R

R

R

改竄防止表でない場合：

項番1（表単位，又はRDエリア単位）

項番3（スキーマ単位）

3

リロード

データ削除開始

出力されません。

未かつR

未かつR

未かつR

改竄防止表の場合：

項番3

R

R

R

改竄防止表でない場合：

項番1（表単位，又はRDエリア単位）

項番3（スキーマ単位）

4

データ削除完了

721

未かつR

未かつR

未かつR

項番5

5

リロード開始

712，732

未かつR

未かつR

未かつR

項番5

6

リロード完了

714，734

rc=8

未かつR

未かつR

未かつR

項番5

rc=0

R

R

R

インデクスが定義されていて，かつ-i cの場合：

項番7

上記以外の場合：

項番1

7

インデクスの一括作成

インデクスのアンロード開始（再開始時だけ）

725

R

R

R

項番7

8

インデクスの一括作成開始

715

R

R

R

項番7

9

インデクスの一括作成完了

716

R

R

R

作成されていないインデクスがある場合：

項番7

−

−

−

上記以外の場合：

項番1

（凡例）

未：データ未完状態

R：再編成中

rc：リターンコード

−：通常の状態（再編成前の状態，又は再編成後の状態）

注※

メッセージは省略して表記しています。例えば，712はKFPL00712-I，732はKFPL00732-Iとなります。

(b)　LOB列構成基表，及びLOB列を同時に再編成（lobunld文指定）する場合

表の再編成時にエラーとなった場合に再実行したときの再開始位置を次の表に示します。なお，LOB列構成基表，及びLOB列の同時再編成は，lobunld文を指定してアンロードデータファイル，及びLOBデータのアンロードデータファイルを使用する場合について説明しています。

pdrorg実行時のオプションの指定：

pdrorg -k rorg

pdrorg実行時の制御情報ファイルの指定：

unload文及びlobunld文

表8‒8　表の再編成時にエラーとなった場合に再実行したときの再開始位置（LOB列構成基表，及びLOB列を同時に再編成（lobunld文指定）する場合）

項番

表の再編成時の処理

エラー直前の出力メッセージ※

表のステータス

再開始位置

LOB列構成基表

LOB列

LOB属性

1

LOB列構成基表のアンロード

アンロード開始

712，732

−

−

−

項番1

2

アンロード完了

714，734

rc=8

−

−

−

項番1

rc=0

未かつR

未かつR

未かつR

改竄防止表の場合：

項番3

R

R

R

改竄防止表でない場合：

項番1

3

LOB列構成基表へのリロード

データ削除開始

出力されません。

未かつR

未かつR

未かつR

改竄防止表の場合：

項番3

R

R

R

改竄防止表でない場合：

項番1

4

データ削除完了

721

未かつR

未かつR

未かつR

項番5

5

リロード開始

712，732

未かつR

未かつR

未かつR

項番5

6

リロード完了

714，734

rc=8

未かつR

未かつR

未かつR

項番5

rc=0

R

R

R

インデクスが定義されていて，かつ-i cの場合：

項番7

上記以外の場合：

項番1

7

インデクスの一括作成

インデクスのアンロード開始（再開始時だけ）

725

R

R

R

項番7

8

インデクスの一括作成開始

715

R

R

R

項番7

9

インデクスの一括作成完了

716

R

R

R

作成されていないインデクスがある場合：

項番7

上記以外の場合：

項番10

10

LOB列のアンロード

アンロード開始

712，732

R

R

R

項番10

11

アンロード完了

714，734

rc=8

R

R

R

項番10

rc=0

R

未かつR

R

改竄防止表の場合：

項番12

R

R

R

改竄防止表でない場合：

項番10

12

LOB列へのリロード

データ削除開始

出力されません。

R

未かつR

R

改竄防止表の場合：

項番12

R

R

R

改竄防止表でない場合：

項番10

13

データ削除完了

721

R

未かつR

R

項番14

14

リロード開始

712，732

R

未かつR

R

項番14

15

リロード完了

714，734

rc=8

R

未かつR

R

項番14

rc=0

−

−

−

項番1

（凡例）

未：データ未完状態

R：再編成中

rc：リターンコード

−：通常の状態（再編成前の状態，又は再編成後の状態）

注※

メッセージは省略して表記しています。例えば，712はKFPL00712-I，732はKFPL00732-Iとなります。

(c)　LOB列だけの再編成をする場合

表の再編成時にエラーとなった場合に再実行したときの再開始位置を次の表に示します。

pdrorg実行時のオプションの指定：

pdrorg -k rorg

pdrorg実行時の制御情報ファイルの指定：

lobunld文

表8‒9　表の再編成時にエラーとなった場合に再実行したときの再開始位置（LOB列だけを再編成する場合）

項番

表の再編成時の処理

エラー直前の出力メッセージ※

表のステータス

再開始位置

LOB列構成基表

LOB列

LOB属性

1

LOB列のアンロード

アンロード開始

712，732

−

−

−

項番1

2

アンロード完了

714，734

rc=8

−

−

−

項番1

rc=0

−

未かつR

−

改竄防止表の場合：

項番3

−

R

−

改竄防止表でない場合：

項番1

3

LOB列へのリロード

データ削除開始

出力されません。

−

未かつR

−

改竄防止表の場合：

項番3

−

R

−

改竄防止表でない場合：

項番1

4

データ削除完了

721

−

未かつR

−

項番5

5

リロード開始

712，732

−

未かつR

−

項番5

6

リロード完了

714，734

rc=8

−

未かつR

−

項番5

rc=0

−

−

−

項番1

（凡例）

未：データ未完状態

R：再編成中

rc：リターンコード

−：通常の状態（再編成前の状態，又は再編成後の状態）

注※

メッセージは省略して表記しています。例えば，712はKFPL00712-I，732はKFPL00732-Iとなります。

(d)　スキーマ単位の再編成をする場合

表の再編成時にエラーとなった場合に再実行したときの再開始位置を次の表に示します。

pdrorg実行時のオプションの指定：

pdrorg -k rorg -t all

表8‒10　表の再編成時にエラーとなった場合に再実行したときの再開始位置（スキーマ単位の再編成をする場合）

項番

表の再編成時の処理

契機

再開始位置

1

アンロード

アンロード中にエラーとなったとき

項番1

2

リロード

KFPL00722-Iメッセージ出力以降にエラーとなったとき

項番2

(e)　サーバごとに表の再編成（-gなし）をする場合（HiRDB/パラレルサーバ限定）

pdrorg実行時のオプションの指定：

pdrorg -k rorg

pdrorg実行時の制御情報ファイルの指定：

unload文だけ，lobunld文だけ，又はunload文及びlobunld文

HiRDB/パラレルサーバで，サーバ間分割表に対する表の再編成時のリロード処理でエラーとなったときは，制御情報ファイルのunload文及びlobunld文で指定したサーバごとに(a)〜(c)の再開始位置から再実行します。

(2)　データ未完状態の表に対するコマンド及びSQLの実行可否

表の再編成時のリロード処理でエラーとなった場合，又は改竄防止表の再編成時にエラーなどによって再編成が完了していない場合，処理対象RDエリアは「データ未完状態」となります。この場合，コマンド及びSQLの実行が一部制限されます。

データ未完状態の表に対するユティリティの実行可否と運用コマンドの実行可否とSQLの実行可否を次の表に示します。

表8‒11　データ未完状態の表に対するユティリティの実行可否

ユティリティ名

機能

表のステータス

基:−

基:未

基:−

基:−

基:未

基:未

基:−

基:未

属:−

属:−

属:未

属:−

属:未

属:−

属:未

属:未

L:−

L:−

L:−

L:未

L:−

L:未

L:未

L:未

pdload

LOB列構成基表へのデータロード

-dあり

○

○

○

○

○

○

○

○

-dなし

○

×

×

×

×

×

×

×

LOB列へのデータロード

○

×

×

×

×

×

×

×

LOB列構成基表，及びLOB列への同時データロード

-dあり

○

○

○

○

○

○

○

○

-dなし

○

×

×

×

×

×

×

×

pdrorg

表の再編成(-k rorg)

-jあり

unload文

○

△

△

△

△

△

△

△

-jなし

unload文

○

△

△

△

△

△

△

△

lobunld文

○

△

△

△

△

△

△

△

unload文及びlobunld文

○

△

△

△

△

△

△

△

表のアンロード(-k unld)

○

○

○

○

○

○

○

○

表へのリロード(-k reld)

-jあり

unload文

○

○

○

○

○

○

○

○

-jなし

unload文

○

○

○

○

○

○

○

○

lobunld文

○

○

○

○

○

○

○

○

unload文及びlobunld文

○

○

○

○

○

○

○

○

インデクスの一括作成(-k ixmk)

B-treeインデクス

○

×

×

×

×

×

×

×

プラグインインデクス

○

×

×

×

×

×

×

×

インデクスの再作成(-k ixrc)

B-treeインデクス

○

×

×

×

×

×

×

×

プラグインインデクス

○

×

×

×

×

×

×

×

インデクスの再編成(-k ixor)

○

×

×

×

×

×

×

×

pdrbal

○

×

×

×

×

×

×

×

上記以外のユティリティ

○

○

○

○

○

○

○

○

（凡例）

基：LOB列構成基表が格納されているRDエリア

属：LOB属性が格納されているRDエリア

L：LOB列が格納されているRDエリア

未：データ未完状態

−：通常の状態（再編成前の状態，又は再編成後の状態）

○：実行できます。

△：オプション，及び制御情報ファイルを変更しない再実行はできます。オプション，及び制御情報ファイルを変更して再実行する場合は，実行エラーとなります。

×：実行できません。

表8‒12　データ未完状態の表に対する運用コマンドの実行可否

運用コマンド名

条件

表のステータス

基:−

基:未

基:−

基:−

基:未

基:未

基:−

基:未

属:−

属:−

属:未

属:−

属:未

属:−

属:未

属:未

L:−

L:−

L:−

L:未

L:−

L:未

L:未

L:未

pdrels

改竄防止表を格納するRDエリア

基

○

×

○

○

×

×

○

×

属

○

○

×

○

×

○

×

×

L

○

○

○

×

○

×

×

×

上記以外のRDエリア

○

○

○

○

○

○

○

○

上記以外の運用コマンド

○

○

○

○

○

○

○

○

（凡例）

基：LOB列構成基表が格納されているRDエリア

属：LOB属性が格納されているRDエリア

L：LOB列が格納されているRDエリア

未：データ未完状態

−：通常の状態（再編成前の状態，又は再編成後の状態）

○：実行できます。

×：実行できません。

表8‒13　データ未完状態の表に対するSQLの実行可否

SQL

表のステータス

基:−

基:未

基:−

基:−

基:未

基:未

基:−

基:未

属:−

属:−

属:未

属:−

属:未

属:−

属:未

属:未

L:−

L:−

L:−

L:未

L:−

L:未

L:未

L:未

SELECT文

○

○

△

△

△

△

△

△

UPDATE文

○

○

△

△

△

△

△

△

INSERT文

○

○

△

△

△

△

△

△

DELETE文

○

○

△

△

△

△

△

△

上記以外のSQL

○

○

○

○

○

○

○

○

（凡例）

基：LOB列構成基表が格納されているRDエリア

属：LOB属性が格納されているRDエリア

L：LOB列が格納されているRDエリア

未：データ未完状態

−：通常の状態（再編成前の状態，又は再編成後の状態）

○：実行できます。

△：LOB列又はLOB属性の抽象データ型列を操作する場合，操作対象となるLOB列格納RDエリア又はLOB属性格納RDエリアがデータ未完状態のときは実行できません。

(3)　データ未完状態の解除契機

データ未完状態は，次の処理をしたときに解除されます。

PURGE TABLE文を実行した場合

pdmodでRDエリアの再初期化をした場合

表の再編成（-k rorg）でoption文にtblstatus=clearを指定して再実行し，pdrorgが正常終了した場合

表の再編成（-k rorg）を再実行し，pdrorgが正常終了した場合

表へのリロード（-k reld）を実行し，pdrorgが正常終了した場合

pdload（-d指定）を実行した場合

(4)　注意事項

次の場合は，表の再編成（-k rorg）を再実行しても処理が再開されません。この場合，表へのリロード（-k reld）をするか，又はバックアップからの回復をしてください。

ログレスモード（-l n指定）の場合

オプション，及び制御情報ファイルの指定を変更した場合（-bオプション，及びoption文のtblstatusオペランドを除く）

再実行する前に，該当する表に対して次の操作をした場合（この場合，途中の処理からの再開はしないでアンロード処理から行います）

・-d指定のpdloadの実行

・表の再編成前に取得したバックアップからRDエリアを回復

・表へのリロード（-k reld）の実行

・pdmodでのRDエリアの再初期化

・PURGE TABLE文の実行

該当する表の再編成が完了するまで，他ユーザからのpdrorgは実行しないでください（表の再編成の再実行と，通常の表の再編成，表へのリロードなどの同時実行はしないでください）。

インデクスが定義されている表の再編成時，インデクス更新モード（-i s）以外で再実行すると，インデクス情報ファイルが残ることがあります。この場合，表の再編成が完了した後にインデクス情報ファイルを削除してください。

スキーマ単位の再編成を再実行する場合，スキーマ内の表を格納しているRDエリアをpdholdコマンドで閉塞するようにしてください（UAPが再編成中の表をアクセスして待ち状態にならないようにするため，及びUAPで表を更新しないようにするため）。また，スキーマ単位の再編成が完了するまでは，該当するスキーマへの表定義（CREATE TABLE），及び表削除（DROP TABLE）はしないでください。

-rオプションを指定して，かつ-bオプションに非分割キーインデクスを指定して再実行する場合，再開始位置がLOB列構成基表のアンロード，又はLOB列のアンロードとなるときは，再開始できません。この場合，-bオプションを削除して再実行するか，又は表へのリロード（-k reld）を実行してください。

インデクスが定義されている表の再編成（-k rorg）でインデクスの一括作成中に異常終了した場合，インデクス一括作成（-k ixmk）を実行して再編成を完了させると，データ未完状態が解除されません。このような運用をした場合，表の再編成（-k rorg）でoption文のtblstatusオペランドにclearを指定してからpdrorgを実行してデータ未完状態を解除してください。

8.5　ディクショナリ表の再編成

8.5.1　使用例

データベース再編成ユティリティの使用例（ディクショナリ表の再編成）を例1に示します。

例１

ディクショナリ表を表単位に再編成します。なお，ディクショナリ表は次に示すRDエリアに格納されているものとします。ディクショナリ表を再編成する場合，ディクショナリ表が格納されているデータディクショナリ用RDエリア又はデータディクショナリLOB用RDエリアを閉塞しておいてください。
・データディクショナリ用RDエリア（DDIC，DIC_RTN）
・データディクショナリLOB用RDエリア（RTN_SRC，RTN_OBJ）

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

ディクショナリ表を表単位に再編成します。

-k rorg：再編成をするときの指定

-c dic：ディクショナリ表を再編成するときの指定

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 unload /usr/unload_file                     1
 lobunld /usr/lob_unload_file                2

［説明］

アンロードデータファイルの指定

/usr/unload_file：アンロードデータファイルの名称

LOBデータのアンロードファイルの指定

/usr/lob_unload_file：LOBデータのアンロードファイルの名称

8.5.2　目的別の参照先一覧

ユーザが実行する再編成の形態によって，指定するオプション，制御文が異なります。

(1)のオプション，及び制御文は必ず指定してください。(2)，及び(3)で該当する項目があれば，その参照先にあるものが関連するオプション，及び制御文となります。なお，オプションについては，「オプション」を参照してください。

(1)　必ず指定する項目

項目

参照先

オプション

制御文

pdrorgの処理内容

-k rorg

−

ディクショナリ表の再編成

-c dic

−

制御文を記述したファイル

制御情報ファイル名

−

アンロードデータファイルの情報

−

unload文

（凡例）−：該当しません。

(2)　アンロードデータファイルの種別によって指定する項目

項目

参照先

オプション

制御文

EasyMTを使用する場合

-f

mtguide文

emtdef文

HiRDBファイルを使用する場合

-f

−

（凡例）−：該当しません。

(3)　再編成の方法によって指定する項目

項目

参照先

オプション

制御文

特定のディクショナリ表だけ再編成したい場合

-t

−

データベース更新ログを取得する場合，又は取得しない場合

-l

−

pdrorgの実行時間を監視したい場合

−

option文

pdrorgを実行するユーザの認可識別子を，環境変数PDUSER設定値以外に変更したい場合※

-u

−

再編成の実行状態のメッセージ出力間隔を，10万行単位以外にしたい場合

-m

−

インフォメーションメッセージの出力を抑止したい場合

サーバ間通信の応答時間を監視したい場合

-X

−

（凡例）−：該当しません。

注※

省略した場合は，環境変数PDUSERの設定値が仮定されます。環境変数PDUSERを設定していない場合は，ログインウィンドウのユーザ名が仮定されます。

8.6　インデクスの一括作成

8.6.1　使用例

データベース再編成ユティリティの使用例の一覧（インデクスの一括作成）を次に示します。

使用例

内容

区分

例1

インデクスの一括作成

表の再編成の例2で出力されたインデクス情報ファイルを基に，インデクスを一括作成します。

S

例2

プラグインインデクスの遅延一括作成

抽象データ型（SGMLTEXT型）がある表に定義されている，プラグインインデクスの遅延一括作成をします。

例3

インデクスの一括作成

データベース作成ユティリティ実行時（インデクス情報出力モード）に出力されたインデクス情報ファイルを使用するものとします。

P

（凡例）

S：HiRDB/シングルサーバ

P：HiRDB/パラレルサーバ

(1)　インデクスの一括作成

例１

表の再編成の例2で出力された，インデクス情報を基にしてインデクス（INDEX2）を一括作成します。
出力されているインデクス情報ファイルの名称は，/usr/index_inf2とします。
また，PDBUSER02のインデクス情報は既に/usr/index_inf4に取得したものとします。
表（TABLE1），及びインデクスは次のように定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
         IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER04))
・インデクスの定義（非分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN (PDBUSER05)

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

インデクス情報を基にして，インデクス（INDEX2）の一括作成をします。

-k ixmk：インデクスの一括作成をするときの指定

-t TABLE1：インデクスの一括作成対象の表の名称

-o：インデクス作成完了後，不要となったインデクス情報ファイルを削除する指定

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 index INDEX2 PDBUSER05 /usr/index_inf2                  1
 index INDEX2 PDBUSER05 /usr/index_inf4                  1
 sort /usr/sortwork                                      2

［説明］

インデクス情報があるインデクス情報ファイルの指定

INDEX2：インデクス識別子

PDBUSER05：インデクスが格納されているRDエリアの名称

/usr/index_inf2，/usr/index_inf4：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(2)　プラグインインデクスの遅延一括作成

例２

抽象データ型（SGMLTEXT）の列を持つ表（TABLE1）に定義されたプラグインインデクス（INDEX1）を遅延一括作成します。抽象データ型（SGMLTEXT）はHiRDB Text Search Plug-inで提供されています。
なお，表及びインデクスは次のように定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT,C2 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER01)
                      PLUGIN'<DTD>sgml.dtd</DTD>' ) IN PDBUSER01
・プラグインインデクスの定義
  CREATE INDEX INDEX1 USING TYPE NGRAM ON TABLE1(C2) IN LOBUSER02
なお，インデクス情報ファイルは，次に示す定義内容のときに更新系（INSERT文やUPDATE文）のUAPを実行して作成されたものです。
・サーバ定義：set pd_plugin_ixmk_dir="/hd001/ixdir"
・クライアント環境変数：setenv PDPLGIXMK YES

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE1）に定義されたプラグインインデクス（INDEX1）を，遅延一括作成します。

-k ixmk：インデクスの一括作成をするときの指定

-t TABLE1：インデクスの一括作成対象の表の名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 index INDEX1 LOBUSER02 /hd001/ixdir/INDEX1.LOBUSER02               1

［説明］

遅延一括作成するインデクス情報ファイルの指定

INDEX1：遅延一括作成するプラグインインデクスのインデクス識別子

LOBUSER02：遅延一括作成するプラグインインデクスのインデクス格納RDエリアの名称

/hd001/ixdir/INDEX1.LOBUSER02：インデクス情報ファイルの名称

(3)　インデクスの一括作成

例３

インデクス情報ファイルを基にして，インデクスを一括作成します。データベース作成ユティリティ実行時（インデクス情報出力モードでデータロード）に出力したインデクス情報ファイル4個を使用するものとします。
表，及びインデクスは次のように定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
               IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER05))
・インデクスの定義（非分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN ((PDBUSER04),(PDBUSER06))

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

データロード時に出力されたインデクス情報を基にして，インデクスの一括作成をします。

-k ixmk：インデクスの一括作成をするときの指定

-t TABLE1：インデクスの一括作成対象の表の名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 index INDEX1 PDBUSER03 /usr/index_inf1          1
 index INDEX2 PDBUSER04 /usr/index_inf2          1
 index INDEX1 PDBUSER05 /usr/index_inf3          1
 index INDEX2 PDBUSER06 /usr/index_inf4          1
 sort bes1 /usr/sortwork                         2
 sort bes2 /usr/sortwork                         2

［説明］

インデクス情報があるインデクス情報ファイルの指定

INDEX1，INDEX2：インデクス識別子

PDBUSER03，PDBUSER04，PDBUSER05，PDBUSER06：インデクスが格納されているRDエリアの名称

/usr/index_inf1，/usr/index_inf2，/usr/index_inf3，/usr/index_inf4：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

bes1，bes2：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

8.6.2　目的別の参照先一覧

ユーザが実行するインデクスの一括作成の形態によって，指定するオプション，制御文が異なります。

(1)のオプション，及び制御文は必ず指定してください。(2)で該当する項目があれば，その参照先にあるものが関連するオプション，及び制御文となります。なお，オプションについては，「オプション」が参照先となります。

(1)　必ず指定する項目

項目

参照先

オプション

制御文

pdrorgの処理内容

-k ixmk

−

インデクスの一括作成をする表の名称

-t

−

制御文を記述したファイル

制御情報ファイル名

−

インデクス情報ファイルの情報

−

index文

（凡例）−：該当しません。

(2)　インデクスの一括作成の方法によって指定する項目

項目

参照先

オプション

制御文

データベース更新ログを取得する場合，又は取得しない場合

-l

−

pdrorgを実行するユーザの認可識別子を，環境変数PDUSER設定値以外に変更したい場合※１

-u

−

グローバルバッファを使用しないで，ローカルバッファを使って一括入出力のインデクスの一括作成をしたい場合※２

-n

−

インデクス作成後に，自動的にインデクス情報ファイルを削除したい場合

-o

−

インデクスの一括作成の実行状態のメッセージ出力間隔を，10万行単位以外にしたい場合

-m

−

インフォメーションメッセージの出力を抑止したい場合

サーバ間通信の応答時間を監視したい場合

-X

−

/tmpディレクトリの空き容量に余裕がない場合

−

sort文

pdrorgの実行時間を監視したい場合

−

option文

インデクスの一括作成時に，インデクスの空き領域比率を変更したい場合※３

−

option文

インナレプリカ機能を使用している場合

-q

−

（凡例）−：該当しません。

注※1

省略した場合は，環境変数PDUSERの設定値が仮定されます。環境変数PDUSERを設定していない場合は，ログインウィンドウのユーザ名が仮定されます。

注※2

一括入出力ページ数を指定すると，指定したページ数単位で一括入出力をするので，I/O回数を削減できます。

注※3

pdrorg実行時にRDエリアの容量不足が発生した場合，暫定的にRDエリアを拡張しないで処理を完了できます（ただし，空き領域比率が0のインデクスを除く）。

8.7　インデクスの再作成

8.7.1　使用例

データベース再編成ユティリティの使用例の一覧（インデクスの再作成）を次に示します。

使用例

内　　容

区分

例1

プラグインインデクスの再作成

抽象データ型（SGMLTEXT型）がある表に定義されている，プラグインインデクスの再作成をします。

S

例2

インデクス格納RDエリア単位のインデクスの再作成

P

例3

インデクス単位のインデクスの再作成

（凡例）

S：HiRDB/シングルサーバ

P：HiRDB/パラレルサーバ

(1)　プラグインインデクスの再作成

例１

抽象データ型（SGMLTEXT）の列を持つ表（TABLE1）に定義されたプラグインインデクス（INDEX1）を再作成します。抽象データ型（SGMLTEXT）はHiRDB Text Search Plug-inで提供されています。
表，及びインデクスは次のように定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT,C2 SGMLTEXT ALLOCATE (SGMLTEXT IN LOBUSER01)
                      PLUGIN'<DTD>sgml.dtd</DTD>' ) IN PDBUSER01
・プラグインインデクスの定義
  CREATE INDEX INDEX1 USING TYPE NGRAM ON TABLE1(C2) IN LOBUSER02

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE1）に定義されたプラグインインデクス（INDEX1）を再作成します。

-k ixrc：インデクスの再作成をするときの指定

-t TABLE1：インデクスの再作成対象の表の名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 index INDEX1 LOBUSER02 /usr/index_file                   1

［説明］

プラグインインデクス情報を出力するインデクス情報ファイルの指定

INDEX1：再作成するプラグインインデクスのインデクス識別子

LOBUSER02：再作成するプラグインインデクスのインデクス格納RDエリアの名称

/usr/index_file：インデクス情報を出力するインデクス情報ファイルの名称

(2)　インデクス格納RDエリア単位のインデクスの再作成

例２

インデクス（INDEX1）をRDエリア単位（PDBUSER03）に再作成します。
表，及びインデクスは次のように定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
               IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER05))
・インデクスの定義（非分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN ((PDBUSER04),(PDBUSER06))

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

インデクス（INDEX1，INDEX2）の再作成をします。

-k ixrc：インデクスの再作成をするときの指定

-t TABLE1：インデクスの再作成対象の表の名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 index INDEX1 PDBUSER03 /usr/index_inf1                1
 sort bes1 /usr/sortwork                               2

［説明］

インデクス情報ファイルの指定

INDEX1：インデクス識別子

PDBUSER03：インデクスが格納されているRDエリアの名称

/usr/index_inf1：インデクス情報ファイルの名称

ソート用ワークディレクトリの指定

bes1：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(3)　インデクス単位のインデクスの再作成

例３

横分割表（TABLE1）に定義されたインデクス（INDEX1，INDEX2）を再作成します。
なお，次の表及びインデクスが定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT,C2 INT NOT NULL)
      IN ((PDBUSER01) C2<200,(PDBUSER02) C2<400,(PDBUSER03))
・インデクスの定義
  CREATE INDEX INDEX1 ON TABLE1(C2) IN ((IDX01),(IDX02),(IDX03))
  CREATE INDEX INDEX2 ON TABLE1(C1) IN ((IDX04),(IDX05))

［概要］

(a)　表に定義されているすべてのインデクスを再作成する場合

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

インデクス（INDEX1，INDEX2）の再作成をします。

-k ixrc：インデクスの再作成をするときの指定

-t TABLE1：インデクスの再作成対象の表の名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 idxname name=*                                  1
 idxwork bes1 /index/workdir01                   2
 idxwork bes2 /index/workdir02                   2
 sort bes1 /usr/sortwork                         3
 sort bes2 /usr/sortwork                         3

［説明］

インデクス単位にインデクスの再作成をする指定

*：表（TABLE1）に定義されているすべてのインデクスを再作成する指定

インデクス情報ファイルを作成するディレクトリの指定

bes1，bes2：インデクス情報ファイルを作成するサーバの名称

/index/workdir01，/index/workdir02：インデクス情報ファイルを作成するディレクトリの名称

ソート用ワークディレクトリの指定

bes1，bes2：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

(b)　表に定義されている一つのインデクスを再作成する場合

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

インデクス（INDEX1）の再作成をします。

-k ixrc：インデクスの再作成をするときの指定

-t TABLE1：インデクスの再作成対象の表の名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 idxname name=INDEX1                           1
 idxwork bes1 /index/workdir01                 2
 idxwork bes2 /index/workdir02                 2
 sort bes1 /usr/sortwork                       3
 sort bes2 /usr/sortwork                       3

［説明］

インデクス単位にインデクスの再作成をする指定

INDEX1：再作成するインデクスの名称

インデクス情報ファイルを作成するディレクトリの指定

bes1，bes2：インデクス情報ファイルを作成するサーバの名称

/index/workdir01，/index/workdir02：インデクス情報ファイルを作成するディレクトリの名称

ソート用ワークディレクトリの指定

bes1，bes2：ソート用ワークファイルを作成するサーバの名称

/usr/sortwork：ソート用ワークファイルを作成するディレクトリの名称

8.7.2　目的別の参照先一覧

ユーザが実行するインデクスの再作成の形態によって，指定するオプション，制御文が異なります。

(1)のオプション，及び制御文は必ず指定してください。(2)で該当する項目があれば，その参照先にあるものが関連するオプション，及び制御文となります。なお，オプションについては，「オプション」を参照してください。

(1)　必ず指定する項目

項目

参照先

オプション

制御文

pdrorgの処理内容

-k ixrc

−

インデクスの再作成をする表の名称

-t

−

制御文を記述したファイル

制御情報ファイル名

−

インデクス情報ファイルの情報，又はインデクスの情報

−

index文，又はidxname文

（凡例）−：該当しません。

(2)　インデクスの再作成の方法によって指定する項目

項目

参照先

オプション

制御文

データベース更新ログを取得する場合，又は取得しない場合

-l

−

pdrorgを実行するユーザの認可識別子を，環境変数PDUSER設定値以外に変更したい場合※１

-u

−

グローバルバッファを使用しないで，ローカルバッファを使って一括入出力のインデクスの再作成をしたい場合※２

-n

−

インデクス作成後に，自動的にインデクス情報ファイルを削除したい場合

-o

−

インデクスの再作成の実行状態のメッセージ出力間隔を，10万行単位以外にしたい場合

-m

−

インフォメーションメッセージの出力を抑止したい場合

サーバ間通信の応答時間を監視したい場合

-X

−

インデクス格納RDエリア単位にインデクスの再作成をする場合（index文を指定する場合）で，/tmpディレクトリの空き容量に余裕がないとき

−

sort文

インデクス単位にインデクスの再作成をする場合（idxname文を指定する場合）で，/tmpディレクトリの空き容量に余裕がないとき

−

idxwork文

sort文

pdrorgの実行時間を監視したい場合

−

option文

インデクスの再作成時に，インデクスの空き領域比率を変更したい場合※３

−

option文

インナレプリカ機能を使用している場合

-q

−

（凡例）−：該当しません。

注※1

省略した場合は，環境変数PDUSERの設定値が仮定されます。環境変数PDUSERを設定していない場合は，ログインウィンドウのユーザ名が仮定されます。

注※2

一括入出力ページ数を指定すると，指定したページ数単位で一括入出力をするので，I/O回数を削減できます。

注※3

pdrorg実行時にRDエリアの容量不足が発生した場合，暫定的にRDエリアを拡張しないで処理を完了できます（ただし，空き領域比率が0のインデクスを除く）。

8.8　インデクスの再編成

8.8.1　使用例

データベース再編成ユティリティの使用例（インデクスの再編成）を例1に示します。

例１

表（TABLE1）に定義されているインデクス（INDEX1，INDEX2）を再編成します。
表，及びインデクスは次のように定義されているものとします。
・表の定義
  CREATE TABLE TABLE1(C1 INT NOT NULL,C2 CHAR(8),C3 INT)
               IN ((PDBUSER01) C1 > 10,(PDBUSER02))
・インデクスの定義（分割キーインデクス）
  CREATE INDEX INDEX1 ON TABLE1(C1) IN ((PDBUSER03),(PDBUSER05))
・インデクスの定義（非分割キーインデクス）
  CREATE INDEX INDEX2 ON TABLE1(C2,C1) IN ((PDBUSER04),(PDBUSER06))

［概要］

［入出力ファイルとRDエリアの関連図］

［実行するコマンドの説明］

表（TABLE1）に定義されているインデクス（INDEX1，INDEX2）を再編成します。

-k ixor：インデクスの再編成をするときの指定

-t TABLE1：インデクスの再編成対象の表の名称

control_file：制御情報ファイルの名称

［制御情報ファイル（control_file）の内容］

 idxname name=*                              1
 idxwork bes1 /usr/idx_file                  2
 idxwork bes2 /usr/idx_file                  2

［説明］

インデクス単位にインデクスの再編成をする指定

*：表（TABLE1）に定義されているすべてのインデクスを再編成する指定

インデクス情報ファイル用ディレクトリの指定

bes1，bes2：インデクス情報ファイルを作成するサーバの名称

/usr/idx_file：インデクス情報ファイルを作成するディレクトリの名称

8.8.2　目的別の参照先一覧

ユーザが実行するインデクスの再編成の形態によって，指定するオプション，制御文が異なります。

(1)のオプション，及び制御文は必ず指定してください。(2)で該当する項目があれば，その参照先にあるものが関連するオプション，及び制御文となります。なお，オプションについては，「オプション」が参照先となります。

(1)　必ず指定する項目

項目

参照先

オプション

制御文

pdrorgの処理内容

-k ixor

−

インデクスの再編成をする表の名称

-t

−

制御文を記述したファイル

制御情報ファイル名

−

インデクス情報ファイルの情報，又はインデクスの情報

−

index文，又はidxname文

（凡例）−：該当しません。

(2)　インデクスの再編成の方法によって指定する項目

項目

参照先

オプション

制御文

データベース更新ログを取得する場合，又は取得しない場合

-l

−

pdrorgを実行するユーザの認可識別子を，環境変数PDUSER設定値以外に変更したい場合※１

-u

−

インデクス作成後に，自動的にインデクス情報ファイルを削除したい場合

-o

−

サーバ間通信の応答時間を監視したい場合

-X

−

インデクス単位にインデクスの再編成をする場合（idxname文を指定する場合）で，/tmpディレクトリの空き容量に余裕がない場合

−

idxwork文

pdrorgの実行時間を監視したい場合

−

option文

インデクスの再編成時に，インデクスの空き領域比率を変更したい場合※２

−

option文

インナレプリカ機能を使用している場合

-q

−

（凡例）−：該当しません。

注※1

省略した場合は，環境変数PDUSERの設定値が仮定されます。環境変数PDUSERを設定していない場合は，ログインウィンドウのユーザ名が仮定されます。

注※2

pdrorg実行時にRDエリアの容量不足が発生した場合，暫定的にRDエリアを拡張しないで処理を完了できます（ただし，空き領域比率が0のインデクスを除く）。

8.9　ディクショナリ表のメンテナンス

8.9.1　実行手順

ディクショナリ表のメンテナンスの実行手順を次に示します。

HiRDBの全RDエリアを対象としたバックアップを取得します。

ポイント

ディクショナリ表のメンテナンス実行し，インデクスを追加すると，そのインデクスは削除できません。そのため，ディクショナリ表のメンテナンスを実行する前に，HiRDBの全RDエリアを対象としたバックアップを取得してください。バックアップ取得後はデータディクショナリ用RDエリア及びデータディクショナリLOB用RDエリアは閉塞なしのオープン状態にしてください。

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」の「バックアップの取得方法」を参照してください。

pdrorgコマンドでディクショナリ表のメンテナンスを実行します。

注意事項

実行する際，ほかのコマンドやユティリティ，及びUAPは実行しないでください。これらと同時実行した場合，動作保証できません。pdls -d prc -aコマンドなどによって，ほかのコマンドやユティリティ，及びUAPが実行されていないことを確認した上で実行してください。

コマンドの例を以下に示します。

（例）

pdrorg -k maintenance -c dic

［実行するコマンドの説明］

-k maintenance：ディクショナリ表のメンテナンスするときの指定

-c dic：ディクショナリ表のメンテナンスするための必須オプション

8.9.2　メンテナンス処理中にエラーが発生した場合の対処方法

ディクショナリ表のメンテナンスの処理中にエラーが発生した場合は，エラーの原因を取り除き，ディクショナリ表のメンテナンス（pdrorg）を再実行してください。

8.9.3　メンテナンスする前の状態に戻す方法

ディクショナリ表のメンテナンスでインデクスを追加した場合，追加したインデクスは削除できません。ディクショナリ表のメンテナンスを実行する前に取得したバックアップを使用して，データベース回復ユティリティでHiRDBの全RDエリアを回復してください。また，HiRDBをpdstart -rコマンド以外で開始させた状態で回復する場合，HiRDBサーバ上のメモリに情報が残ったままとなるため，HiRDBを再起動してメモリをクリアしてください。

8.9.4　目的別の参照先一覧

ディクショナリの表メンテナンス実行時に指定するオプションについて説明します。

(1)のオプションは必ず指定してください。(2)で該当する項目があれば，その参照先にあるものが関連するオプションとなります。なお，オプションについては，「オプション」を参照してください。

(1)　必ず指定する項目

項目

参照先

オプション

制御文

pdrorgの処理内容

-k maintenance

−

処理対象

-c dic

−

（凡例）−：該当しません。

(2)　ディクショナリ表のメンテナンスの方法によって指定する項目

項目

参照先

オプション

制御文

pdrorgを実行するユーザの認可識別子を，環境変数PDUSER設定値以外に変更したい場合※

-u

−

サーバ間通信の応答時間を監視したい場合

-X

−

（凡例）−：該当しません。

注※

省略した場合は，環境変数PDUSERの設定値が仮定されます。環境変数PDUSERを設定していない場合は，ログインウィンドウのユーザ名が仮定されます。

(3)　(1)(2)以外の指定について

項目

参照先

オプション

動作

ログ取得方式

-l

常にログ取得モード（-l a）を適用します。

制御文

−

指定の値を無視して処理を続行します。

（凡例）−：該当しません。

8.10　コマンドの形式

8.10.1　形式

　pdrorg -k 処理内容
　　　　 〔-c 処理対象〕
　　　　 〔-t ｛〔認可識別子．〕表識別子｜〔認可識別子．〕all｜表識別子〔，表識別子〕…｝〕
　　　　 〔-r RDエリア名〕
　　　　 〔-l ログ取得方式〕
　　　　 〔-i インデクス作成方法〕
　　　　 〔-W ｛｛dat｜extdat｝〔，〔セパレータ文字〕〔，｛cr｜crlf｝〕〔，sup〕〕｜bin〔 -w〕｜fixtext〔，〔パディング文字〕〔，｛cr｜crlf｝〕〕｝〕
　　　　 〔-g〕
　　　　 〔-j〕
　　　　 〔-u 認可識別子〕
　　　　 〔-n ｛一括入出力用ローカルバッファ面数〔,div〕| 一括入出力用ローカルバッファ面数,〔div〕,ランダムアクセス用ローカルバッファ面数 | ,,ランダムアクセス用ローカルバッファ面数｝〕
　　　　 〔-f アンロードデータファイル・LOBデータのアンロードファイルの種別〕
　　　　 〔-b アンロード順指定〕
　　　　 〔-S〕
　　　　 〔-o〕
　　　　 〔-m 〔経過メッセージ出力間隔〕〔,インフォメーションメッセージ出力抑止レベル〕〕
　　　　 〔-X サーバ間通信の応答監視時間〕
　　　　 〔-q 世代番号〕
　　　　 制御情報ファイル名

注　

背景色付き太字表示のオプションは，重要な項目，又は必ず指定する項目を表しています。また，制御情報ファイル名は，必ずオプションの最後に指定してください。

●pdrorgの機能ごとのオプション指定可否

pdrorgの機能ごとのオプション指定可否を次に示します。

オプション

pdrorgの機能

表の再編成

表のアンロード

表へのリロード

ディクショナリ表の再編成

インデクスの一括作成

インデクスの再作成

インデクスの再編成

ディクショナリ表のメンテナンス

-k

◎

◎

◎

◎

◎

◎

◎

◎

-c

○

○

○

◎

−

−

−

◎

-t

◎

◎

◎

○

◎

◎

◎

−

-r

○

○

○

−

−

−

−

−

-l

○

−

○

○

○

○

○

−

-i

○

−

○

−

−

−

−

−

-W

−

○

−

−

−

−

−

−

-g

○

○

○

−

−

−

−

−

-j

○

○

○

−

−

−

−

−

-u

○

○

○

○

○

○

○

○

-n

○

○

○

−

○

○

−

−

-f

○

○

○

○

−

−

−

−

-b

○

○

−

−

−

−

−

−

-S

○

○

−

−

−

−

−

−

-o

○

−

○

−

○

○

○

−

-m

○

○

○

○

○

○

−

−

-X

○

○

○

○

○

○

○

○

-q

○

○

○

−

○

○

○

−

制御情報ファイル名

◎

◎

◎

◎

◎

◎

◎

−

（凡例）

◎：必ず指定してください。

○：任意に指定できます。

−：指定できません。

8.10.2　オプション

(1)　-k 処理内容

pdrorgの処理内容を指定します。

rorg

表の再編成をする場合に指定します。

unld

表のアンロードをする場合に指定します。

reld

表へリロードする場合に指定します。

ixmk

インデクスの一括作成をする場合に指定します。

ixrc

インデクスの再作成をする場合に指定します。

ixor

インデクスの再編成をする場合に指定します。

maintenance

ディクショナリ表のメンテナンスをする場合に指定します。

(a)　文字コード変換の有無

文字集合が定義された列を持つ表に対してpdrorgを実行する場合，-kと-Wの指定値によって，文字コ−ド変換をするかどうかが異なります。オプションの指定値と文字コード変換の有無を次の表に示します。

表8‒14　オプションの指定値と文字コード変換の有無

-kの指定

-Wの指定

あり

なし

UOCあり

UOCなし

UOCあり

UOCなし

rorg

アンロード時

−

−

○

×

リロード時

−

−

○

×

unld

○

○

○

○

reld

−

−

−

△

ixmk

−

−

−

−

ixrc

−

−

−

−

ixor

−

−

−

−

maintenance

−

−

−

−

（凡例）

○：文字コード変換をします。

△：アンロードデータファイル中の文字コードと文字集合が定義された列の文字コードが異なる場合に文字コード変換をします。

×：文字コード変換をしません。

−：該当しません。

(b)　注意事項

-k rorgを指定した場合，アンロード処理，リロード処理，及びインデクス作成処理（-i c指定の場合）を連続で実行します。処理の途中で異常終了した場合，どの処理中に異常終了したのかを，データベース中に表のステータスとして記憶しているため，同じ処理内容で再実行したときには異常終了した処理から再開始をします。この場合，必ずしもアンロード処理から開始されるとは限りません。詳細については，「表の再編成時のリロード処理でエラーとなった場合の運用方法」を参照してください。

前回のpdrorgが正常終了したか，異常終了したかに関係なく，常にアンロード処理から再編成を実施したい場合は，-k unldと-k reldを分けて実行する運用を検討してください。

OSの時刻を遅らせた場合に，誤ったインデクス情報ファイルを指定してインデクスの一括作成を実行すると，表とインデクスのデータが不一致になることがあります。詳細については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(2)　-c 処理対象

　　　〜《user》

再編成する表の種別を指定します。

dic

ディクショナリ表を再編成又はメンテナンスをする場合に指定します。

user

表を再編成する場合に指定します。

(3)　-t ｛〔認可識別子．〕表識別子｜〔認可識別子．〕all｜表識別子〔，表識別子〕…｝

処理対象となる表の名称を指定します。

(a)　ユーザが定義した表の場合

ユーザが定義した表の場合，次の形式で指定してください。

-t ｛〔認可識別子．〕表識別子｜〔認可識別子．〕all｝

表名を一つだけ指定するか，又はスキーマが所有するすべての表を再編成する場合はallを指定してください。スキーマが所有するすべての表を再編成することを，スキーマ単位の再編成といいます。

認可識別子を省略した場合は，HiRDBに接続したときのユーザの名称が仮定されます。

＜規則＞

ビュー表は指定できません。

認可識別子，又は表識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Kシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

＜スキーマ単位の再編成の規則＞

スキーマ単位の再編成は，-k rorg，unld，又はreldの場合で，同期点指定の再編成，リロードをしないときに指定できます。

スキーマ単位にアンロードした場合，そのアンロードデータファイルから表単位にリロードできます。逆に，表単位にアンロードした場合，そのアンロードデータファイルからスキーマ単位にはリロードできません。

アンロード又はリロードをする表の順序は，表識別子の昇順となります。

ある表を処理しているときにエラーが発生した場合は，その時点で処理を終了します。ある表がリロード時にエラーとなった場合は，正常に処理が終了した表については再編成が完了しているので，エラーとなった表，及びまだ処理をしていない表について，表単位にリロードしてください。

スキーマ単位の再編成をする場合，UAPが再編成中の表をアクセスして待ち状態にならないように，スキーマ内の表を格納しているRDエリアをpdholdコマンドで閉塞するようにしてください。

アンロード時とリロード時で，スキーマにある表が変わった場合，次のようになります。

アンロードしたときの表：（T1，T3，T5，T7）
　　↓
リロードするときの表：（T1，T2，T3，T5）

T1，T3，T5：リロードします。

T2：アンロードしたときにはなかったため，処理をスキップします。

T7：リロードするときはないため，リロードはしません。

(b)　ディクショナリ表の場合

ディクショナリ表の場合，次の形式で指定してください。

-t 表識別子〔，表識別子〕…

ディクショナリ表の個数分，表名を指定できます。認可識別子は指定できません。すべてのディクショナリ表を再編成したい場合は，-tオプションを省略してください。

ディクショナリ表を再編成する場合，事前にデータディクショナリ用RDエリアのバックアップを取得してください（リロード処理中にユニットダウンした場合，及びRDエリアの拡張に使用する表のリロード中にRDエリアが容量不足になった場合は，バックアップから再編成前の状態に戻す必要があります）。

指定できるディクショナリ表の表識別子を次に示します。なお，同じディクショナリ表の表識別子は重複指定できません。

項番

表識別子

備考

1

SQL_PHYSICAL_FILES

なし

2

SQL_RDAREAS

3

SQL_TABLES

4

SQL_COLUMNS

5

SQL_INDEXES

6

SQL_USERS

7

SQL_RDAREA_PRIVILEGES

8

SQL_TABLE_PRIVILEGES

9

SQL_DIV_TABLE

10

SQL_DIV_TABLE_REGULARIZE

システムが使用する表

11

SQL_INDEX_COLINF

なし

12

SQL_TABLE_STATISTICS

13

SQL_COLUMN_STATISTICS

14

SQL_INDEX_STATISTICS

15

SQL_VIEW_TABLE_USAGE

16

SQL_VIEWS

17

SQL_VIEW_DEF

システムが使用する表

18

SQL_DIV_INDEX

なし

19

SQL_DIV_COLUMN

20

SQL_REFERENTIAL_CONSTRAINTS

21

SQL_ALIASES

22

SQL_ROUTINES

23

SQL_ROUTINE_RESOURCES

24

SQL_ROUTINE_PARAMS

25

SQL_DATATYPES

26

SQL_DATATYPE_DESCRIPTORS

27

SQL_TABLE_RESOURCES

28

SQL_PLUGINS

29

SQL_PLUGIN_ROUTINES

30

SQL_PLUGIN_ROUTINE_PARAMS

31

SQL_REGISTRY_CONTEXT

システムが使用する表

32

SQL_REGISTRY_KEY

33

SQL_INDEX_TYPES

なし

34

SQL_INDEX_RESOURCES

35

SQL_INDEX_DATATYPE

36

SQL_INDEX_FUNCTION

37

SQL_TYPE_RESOURCES

38

SQL_INDEX_TYPE_FUNCTION

39

SQL_EXCEPT

40

SQL_USAGE_PRIVILEGES

システムが使用する表

41

SQL_IOS_GENERATIONS

なし

42

SQL_TRIGGERS

43

SQL_TRIGGER_ACTCOND

システムが使用する表

44

SQL_TRIGGER_COLUMNS

なし

45

SQL_TRIGGER_DEF_SOURCE

46

SQL_TRIGGER_USAGE

47

SQL_PARTKEY

48

SQL_PARTKEY_DIVISION

49

SQL_AUDITS

50

SQL_AUDIT_REGULARIZE

システムが使用する表

51

SQL_KEYCOLUMN_USAGE

なし

52

SQL_TABLE_CONSTRAINTS

53

SQL_CHECKS

54

SQL_CHECK_COLUMNS

55

SQL_DIV_TYPE

56

SQL_SYSPARAMS

57

SQL_DB_MANAGEMENT

システムが使用する表

58

SQL_DB_STATE_ANALYZED

59

SQL_PUBLICVIEW_SAME_USERS

60

SQL_INDEX_XMLINF

なし

61

SQL_SEQUENCES

62

SQL_SDB_DB

システムが使用する表

63

SQL_SDB_DB_VIEW

64

SQL_SDB_STORAGE_DB

65

SQL_SDB_NAME_CODE

66

SQL_SDB_DIR

67

SQL_ACCESS_SECURITY

なし

(4)　-r RDエリア名

　　　〜＜識別子＞((1〜30))

複数のRDエリアに分割格納した横分割表の場合，特定のRDエリアの部分だけ再編成するときに，対象となるRDエリアの名称を指定します。

省略した場合，横分割表のすべてのデータが再編成の対象となります。

(a)　規則

RDエリア名を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。また，RDエリア名に空白が含まれる場合は，引用符（''）で囲んでください。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Kシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

フレキシブルハッシュ分割の横分割表に対して，RDエリア単位にアンロードし，ハッシュ関数の変更，又はRDエリアの追加をした場合，リロード時はハッシュ関数を無視して元のRDエリアにそのままデータを格納します。

キーレンジ分割，又はFIXハッシュ分割の横分割表に対して，RDエリア単位にアンロードした後，分割条件を変更してリロードできません。

ハッシュ関数の変更，RDエリアの追加，又は分割条件の変更をして表の再編成をしたい場合は，-gオプション指定の表単位の再編成をしてください。なお，ハッシュ関数の変更，及びRDエリアの追加は，定義系SQLのALTER TABLEで実行します。アンロードした表とリロードした表の表定義が異なる場合のリロード実行可否については，「アンロード元の表とリロード先の表の表定義が異なる場合のリロード実行可否」を参照してください。

スキーマ単位の再編成をする場合，-rオプションは指定できません。

レプリカRDエリアを指定する場合，RDエリア名にはオリジナルRDエリア名を指定し，-qオプションに対象となる世代番号を指定します。

(5)　-l ログ取得方式

　　　〜《p》

pdrorg実行時の，データベースの更新ログの取得方法を指定します。

なお，pdrorg実行中に異常終了した場合，更新ログを取得していても，データベースはpdrorg実行前の状態には戻りません。pdrorgが異常終了した場合の対処方法については，「エラー時のデータベースの状態とその回復方法」を参照してください。

a

ログ取得モードを示します。ロールバック，及びロールフォワードに必要なデータベースの更新ログを取得します。

＜適用基準＞

このモードは，少量データの表に対して処理する場合に適しています。

ログ取得モードで実行した場合，pdrorgの実行前，及び実行後にバックアップを取得する必要はありませんが，処理性能はほかのモードに比べて劣ります。

p

更新前ログ取得モードを示します。ロールバックに必要なデータベースの更新ログは取得しますが，ロールフォワードに必要なデータベースの更新ログは取得しません。

＜適用基準＞

このモードは，大量データの表に対して処理する場合に適しています。

更新前ログ取得モードで実行した場合，ログ取得モードに比べると実行時間は短縮できます。ただし，以後の媒体障害などに備えて，pdrorgの実行後にバックアップを取得する必要があります。

pdrorg実行中に障害が発生した場合，pdrorgが障害発生直前に同期を取った時点まで回復します。そのため，RDエリアがログレス閉塞になることは防げますが，処理対象表はpdrorg実行前の状態には回復されません。

n

ログレスモードを示します。データベースの更新ログを取得しません。

＜適用基準＞

ログレスモードで実行した場合，ほかのモードに比べると実行時間は短縮できます。ただし，ユティリティ実行中の障害でバックアップから回復する場合や，以後の媒体障害などの発生によって，データベースのバックアップ及びログから回復する場合に備えて，pdrorgの実行前及び実行後にバックアップを取得する必要があります。このモードは，大量データの表に対して処理する場合に適しています。

＜注意事項＞

pdrorgをログレスモードで実行していた場合にエラーが発生したときは，エラーによって閉塞したRDエリアはバックアップから回復するか，又は再初期化をする必要があります。

インデクスの再作成（-k ixrc）の場合にログレスモードを指定すると，キー検索処理中はデータベースが障害閉塞となることを防ぐため，ログ取得モードとなります。また，インデクスの再編成（-k ixor）の場合にログレスモードを指定したときも，キー検索処理中はデータベースが障害閉塞となることを防ぐため，更新前ログ取得モードが仮定されます。このため，ログレスモードを指定してもキー検索処理中はセグメント解放ログが出力されます。

(a)　注意事項

p，及びnの場合に，以前取得したバックアップとログ，又はアンロードデータ（該当するRDエリアに再編成対象の表だけ格納されている場合）から回復できるときは，pdrorg実行前のバックアップ取得は不要です。

p，及びnの場合の運用方法（データベースの更新ログを取得しないときの運用）については，マニュアル「HiRDB システム運用ガイド」を参照してください。

-lオプションの指定に関係なく，pdrorgが生成するトランザクション（T）によってトランザクションログは必ず取得されます。1サーバ当たり，次のトランザクションログを生成するため，pdrorg実行時のログ量の計算式は次のようになります。

ログ量＝（1328＋176×3）×T＋A　（単位：バイト）

＜-k unldの場合＞
T＝（x×2）＋（y×2）
＜-k reldの場合＞
T＝（x×3）＋（y×3）＋（z×2）
＜-k ixrcの場合＞
T＝（x×2）＋（z×2）
＜-k ixmkの場合＞
T＝z×2
＜-k ixorの場合＞
T＝z×3
＜-k rorgの場合＞
T＝＜-k unldの場合＞＋＜-k reldの場合＞＋（x＋y）
＜-k maintenanceの場合＞
マニュアル「HiRDB システム導入・設計ガイド」の「システムファイル及び監査証跡ファイルの容量の見積もり」の「システムログファイルの容量見積もり」の「ディクショナリ表のメンテナンス実行時に出力されるシステムログ量」を参照してください。

　x：表の数（同期点指定のリロードの場合は同期点の数）※
　y：LOB列（LOB属性）格納用RDエリアの数（-jありの場合は1）※
　z：インデクス数×インデクス格納用RDエリアの数（-i sの場合は不要）※

注※

スキーマ単位に処理する場合は，そのスキーマが所有するすべての表ごとに計算をする必要があります。

A＝データベース操作に応じて出力されるシステムログ量（データベースの更新ログ量）。この値は-lオプションの指定値で変わります。システムログ量の求め方については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。-k maintenanceの場合は，-lオプションの指定値に関係なく，マニュアル「HiRDB システム導入・設計ガイド」の「システムファイル及び監査証跡ファイルの容量の見積もり」の「システムログファイルの容量見積もり」の「ディクショナリ表のメンテナンス実行時に出力されるシステムログ量」を参照してください。

また，p又はnを指定した場合，排他制御によってENQログを取得します。1サーバ当たり次のENQログを取得します。

ENQログ＝（p＋q＋r）×T

　p：表格納用RDエリアの数
　q：LOB列（LOB属性）格納用RDエリアの数
　r：インデクス格納用RDエリアの数

したがって，「システムログファイルのレコード長×ENQログ」の分だけシステムログが出力されます。

インデクスの再作成（-k ixrc）又はインデクスの再編成（-k ixor）の場合にログレスモードを指定したときに出力されるセグメント解放ログのログ量は，PURGE TABLE実行時に出力するインデクスのログと同じ量になります。ログ量の計算式は，マニュアル「HiRDB システム導入・設計ガイド」の「PURGE TABLE文実行時に出力されるシステムログ量」の「インデクス」を参照してください。計算式中の確保セグメント数については，pddbstのRDエリア単位の論理的解析，又はインデクス単位の解析を実行して，解析結果の使用中セグメント数で計算してください。

-k unldの場合，-lオプションの指定値に関係なく，ログ取得モード（-l a）が仮定されます。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，業務サイトで-l p又は-l n指定のpdrorgを実行したときは，システムログ適用化を実施してください。システムログ適用化については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

(6)　-i インデクス作成方法

インデクスの作成方法を指定します。

このオプションを省略すると，ユーザが定義した表の場合はc，ディクショナリ表の場合はsが仮定されます。

c

インデクス一括作成モードを示します。このモードを指定した場合，表へのリロード処理に引き続き，インデクスを一括作成します。

＜適用基準＞

大量データの表を再編成をする場合に，高速にインデクスを作成できます。

n

インデクス情報出力モードを示します。このモードを指定した場合，インデクス情報だけをインデクス情報ファイルに出力します。

＜適用基準＞

出力されたインデクス情報ファイルを使用して，pdrorgでインデクスの一括作成（-k ixmk）を複数同時に実行することで，高速にインデクスを作成できます。特に，HiRDB/パラレルサーバで複数のサーバに分割格納されている表の場合に効果があります。

＜注意事項＞

インデクス情報出力モード（-i n）を指定した場合，表へのリロード後にpdrorgでインデクスの一括作成（-k ixmk）をする必要があります。インデクスの一括作成を実行していない状態で，ALTER TABLEでRDエリアを追加すると，出力されたインデクス情報ファイルは使用できなくなります。ALTER TABLEでRDエリアを追加する場合は，先にインデクスの一括作成を終了させてください。なお，先にALTER TABLEでRDエリアを追加してしまった場合は，pdrorgのインデクスの再作成（-k ixrc）をする必要があります。

再編成対象の表にプラグインインデクスが定義されている場合，プラグインがプラグインインデクス一括作成部分回復機能をサポートしていないと，-i nは指定できません。

インデクス情報出力モード（-i n）を指定した場合，インデクスの一括作成（-k ixmk）が完了するまではALTER INDEXでインデクスの名称を変更しないでください。インデクスの名称を変更すると，インデクスの一括作成ができなくなります。なお，インデクスの一括作成が完了する前にインデクスの名称を変更してしまった場合は，ALTER INDEXで元のインデクス名称に戻してからインデクスの一括作成をし，その後でインデクスの名称を変更してください。

インデクス情報出力モード（-i n）を指定した場合，インデクスの一括作成（-k ixmk）が完了するまでは，インデクスを格納したRDエリアの名称を変更しないでください。インデクスを格納したRDエリアの名称を変更すると，インデクスの一括作成ができなくなります。なお，インデクスの一括作成が完了する前にインデクスを格納したRDエリアの名称を変更してしまった場合は，pdmodで元のRDエリア名称に戻してからインデクスの一括作成をし，その後でRDエリアの名称を変更してください。

s

インデクス更新モードを示します。行を格納するたびにインデクスを更新します。

＜適用基準＞

少量データの表を再編成する場合に指定してください。

(a)　インデクス作成上の注意事項

横分割インデクスと非横分割インデクスでのインデクス作成方法を次の図に示します。

1サーバ内の複数RDエリアに表を分割格納している場合，表格納用RDエリアと同じ数のインデクス格納用RDエリアに格納する横分割インデクスと，表格納用RDエリアの数とは関係なく一つのインデクス格納用RDエリアに格納する非横分割インデクスがあります。

横分割インデクスは，サーバ内で分割されている表に対して，同じように分割格納します（図中のRDエリアINDEX1_1，INDEX1_2）。

非横分割インデクスは，表格納用RDエリアの数に関係なく，サーバ内の1RDエリアに格納します（図中のRDエリアINDEX1_3，INDEX2_1，INDEX2_2）。

図8‒20　分割キーインデクスと非分割キーインデクスでのインデクス作成方法

［説明］

再編成でのインデクスの作成は，-iオプションの指定に従います。

例えば，RDエリア単位にTABLE1_1を再編成した場合，横分割インデクスINDEX1_1が作成されます（INDEX1_2は影響を受けません）。しかし，非横分割インデクスINDEX2_1は，TABLE1_1及びTABLE1_2の両方の情報がないと作成できないため，インデクスは作成されません（TABLE1_1のインデクス情報ファイルだけ作成されます）。

非横分割インデクスを作成するためには，TABLE1_2に対しても再編成をして，TABLE1_2のインデクス情報ファイルを作成します。そして，作成済みのTABLE1_1のインデクス情報ファイルとTABLE1_2のインデクス情報ファイルを使用して，pdrorgのインデクスの一括作成をします。

リロードが終了してから，インデクスの一括作成が終了するまでの間は，該当するインデクスは未完状態となり，使用できません。

-i c，又は-i nを指定すると，「インデクス数×表格納用RDエリア数」のインデクス情報ファイルを作成します。このファイルは，リロード時に同時にオープンするため，ファイル数が多いと1プロセスで使用できるファイル数の上限を超えることがあります。上限を超えると，性能が劣化するおそれがあります。そのため，RDエリアごとにデータをリロードすることを推奨します。

なお，1プロセスで使用できるファイルディスクリプタ数の上限値は，物理限界値又は7872のうちの小さい方の値です。

(b)　-i c又は-i n指定時の注意事項

-i c又は-i n指定時にindex文，及びidxwork文を省略すると，既定の出力先ディレクトリにインデクス情報ファイルを出力します。pdrorgが異常終了すると，このインデクス情報ファイルが不完全な状態で残ります。このため，pdrorgの異常終了を何度も繰り返すと不完全なインデクス情報ファイルが増加し，ディスク容量などOSの資源を圧迫することになります。したがって，既定の出力先ディレクトリに出力した必要のないインデクス情報ファイルについては削除するようにしてください。

index文を省略してidxwork文だけを指定した場合に，idxwork文に指定したディレクトリ下に出力するインデクス情報ファイルについても同様です。

既定の出力先ディレクトリについては「規則及び注意事項」の「インデクス作成時のファイルの出力先について」を参照してください。

また，インデクス情報ファイルは，次の名称規則で出力します。

INDEX-インデクス名-インデクス格納用RDエリア名-一意となる文字列

(7)　-W ｛｛dat｜extdat｝〔，〔セパレータ文字〕〔，｛cr｜crlf｝〕〔，sup〕〕｜bin〔 -w〕｜fixtext〔，〔パディング文字〕〔，｛cr｜crlf｝〕〕｝

アンロードデータファイルをデータベース作成ユティリティの入力データファイルとして使用する場合，又はUAPなどで使用する場合に指定します。また，表やインデクスをエクスポートする場合に指定します。

表のデータを，DAT形式，拡張DAT形式，バイナリ形式，又は固定長データ形式でアンロードデータファイルに出力します。

エクスポートする場合は，-W bin -wを指定します。

-Wオプションを指定して出力したアンロードデータファイルの形式については，「データベース作成ユティリティの入力用ファイルの形式」を参照してください。

dat

DAT形式でデータを出力する場合に指定します。

extdat

拡張DAT形式でデータを出力する場合に指定します。

拡張DAT形式でデータを出力する場合，アンロードデータファイルは複数個指定できません。

セパレータ文字　〜＜文字列＞

DAT形式，又は拡張DAT形式で出力する場合，各データ間のセパレータ文字をコンマ（，）以外に変更するときに指定します。

省略した場合，セパレータ文字はコンマとなります。

＜規則＞

次に示す文字は，データベース作成ユティリティの入力データファイルのセパレータ文字に指定できないため，セパレータ文字として指定できません。

＊（アスタリスク），"（引用符），_（下線）

次に示す文字はアンロードするデータと重なる可能性があるため，セパレータ文字として適していません。

・英大文字（A〜Z），英小文字（a〜z）

・数字（0〜9）

・行データをDAT形式に変換したとき，その文字と重なる文字

・日本語入力時に文字コードが重なる文字

　（｜，￥，［，］，（，），｛，｝，￣）

・数値データがある場合の符号（＋，−）

・日付データ入力時のハイフン（−）

・時刻データ入力時のコロン（：）

・日間隔，時間隔データ入力時のピリオド（．）

コンマをセパレータ文字にしたい場合は，セパレータ文字を指定しないでください。

セパレータ文字に空白が含まれる場合は，引用符（"）で囲んでください。

｛cr｜crlf｝

DAT形式，又は拡張DAT形式で出力する場合，改行コードの出力方法を指定します。省略した場合は，crが仮定されます。

cr：0x0aで改行コードを出力します。

crlf：0x0d，0x0aで改行コードを出力します。

セパレータ文字を省略してcr，又はcrlfを指定したい場合はコンマで区切ります（例：-W dat, ,cr）。

sup

DAT形式，又は拡張DAT形式でCHAR，NCHAR，MCHAR型の列データを出力する場合に，列データの後方に連続する空白を出力しないときに指定します。

CHAR，MCHAR型の場合，表定義の列長に満たない部分の半角空白を圧縮します。列データがすべて空白の場合は，半角空白を1バイト出力します。

NCHARの場合，表定義の列長に満たない部分の2バイトの空白を圧縮します。

列データがすべて空白の場合は，2バイトの空白を1文字出力します。2バイトの空白は使用する文字コードによって異なります。文字コードについては，マニュアル「HiRDB SQLリファレンス」を参照してください。

supオプションを指定した場合の出力形式については，「データベース作成ユティリティの入力用ファイルの形式」を参照してください。

＜適用基準＞

supオプションを指定すると，次の効果があります。

アンロードデータファイルの容量を削減できます。

表定義時にCHAR，NCHAR，又はMCHAR型の列に対してサプレスオプションを指定していると，後方の空白を既に圧縮した形でデータベース作成ユティリティの入力データを生成します。このため，アンロード時も圧縮に必要なオーバヘッドを削減できます。

＜注意事項＞

supオプションを指定してアンロードした場合，アンロードデータファイル中の列データの長さは一定になりません。そのため，出力したデータをソートしたり，UAPで編集したりする場合，注意が必要です。

CHAR型，MCHAR型の列には，複数バイト文字や，文字コード以外の値も格納できますが，supオプションを指定した場合，複数バイト文字の何バイト目かの文字が空白と同じ値であったり，文字コード以外の値が空白と同じ値であったとしても，無条件に圧縮されます。この場合，同じ表に再度データロードすれば列の定義長に満たない部分は空白で埋められます。ただし，そのデータをほかのプログラムで参照したり，表示したりする場合，最後の２バイトコードの文字が文字化けするためsupオプションを指定しないでください。

bin 〔-w〕

バイナリ形式のデータを出力する場合に指定します。

エクスポートする場合は-wオプションを同時に指定します。エクスポートの詳細については，マニュアル「HiRDB システム運用ガイド」の「表定義情報と表データを同時に移行する方法」を参照してください。

fixtext

固定長データ形式のデータを出力する場合に指定します。

＜指定例＞

パディング文字，及び｛cr｜crlf｝を省略する場合

-W fixtext

パディング文字が△で，｛cr｜crlf｝を省略する場合

-W fixtext ,△

パディング文字が△で，crを指定する場合

-W fixtext ,△,cr

パディング文字を省略し，crlfを指定する場合

-W fixtext ,,crlf

パディング文字

列データがナル値，要素データがナル値，又は定義長より短い可変長文字列の場合，定義長まで埋める文字を指定します。

＜規則＞

指定できるパディング文字は1バイトの文字です。

パディング文字を省略した場合，空白文字（0x20）が仮定されます。パディング文字を空白文字にする場合は，パディング文字を省略してください。

アスタリスク（*），引用符（"），及び下線（_）は指定できません。

｛cr｜crlf｝

改行コードを付ける場合に指定します。

cr：

1バイトの改行コード（0x0a）を付けます。

crlf：

2バイトの改行コード（0x0d，0x0a）を付けます。

(a)　適用基準

次のような場合に指定します。

別の表へ表データを移行する場合

表データをアンロードデータファイルに出力し，そのデータをUAPなどで使用する場合

(b)　規則

-Wオプション指定で出力したアンロードデータファイルは，pdrorgのリロードでは使用できません。

このオプションを指定する場合，-fオプションにhirdbは指定できません。

スキーマ単位の再編成をする場合，-Wオプションは指定できません。

表の1行の定義長が512メガバイトを超える場合，DAT形式，及び固定長データ形式ではデータを出力できません。この場合，バイナリ形式でデータを出力してください。

UNIX版HiRDBからWindows版HiRDBへデータ移行をする場合，又はその逆の場合，DAT形式で出力してください。また，文字コード変換が必要な場合は文字コード変換をしてから，移行先へデータロードしてください。

文字集合UTF-16を指定したCHAR型の列を，キーレンジ分割又はマトリクス分割（境界値指定のキーレンジ分割）の分割キーとして指定した表の場合，分割キーの長さが列の定義長を超えるときは，その表はエクスポートできません。

LOB列又はLOB属性の抽象データ型の列がある表に対して-Wオプションを指定する場合，実データ又はナル値のどちらかが出力されます。-Wオプションと出力されるデータの関係を次の表に示します。

表8‒15　-Wオプションと-jオプションの関係

列のデータ型

-Wオプション

bin

dat又はextdat

fixtext

既定義型

BINARY型

実データ

実データ

出力しません

BLOB型

実データ

ナル値

出力しません

上記以外

実データ

実データ

実データ

抽象データ型

BLOB属性※

実データ

ナル値

出力しません

上記以外

実データ

実データ

出力しません

注※

unld_func文に指定するコンストラクタパラメタ逆生成関数の引数の型です。

(8)　-g

HiRDB/パラレルサーバの場合で，複数のサーバに格納されている表データを，1サーバの1アンロードデータファイルにアンロードする場合に指定します。

また，HiRDB/シングルサーバの場合，ユティリティ専用ユニットへアンロードデータファイルを作成するときに指定します。

LOB列がある表の場合も，一つのLOBデータのアンロードファイルへアンロードできます。

(a)　適用基準

このオプションは次のような場合に指定します。

バックアップ用にアンロードデータファイルを作成する場合

表の分割条件を変更する場合

ユティリティ専用ユニットにアンロードデータファイルを出力する場合

HiRDB/パラレルサーバで，該当するホストが容量不足でアンロードできない場合，他ホストに容量が確保できるとき

(b)　注意事項

HiRDB/パラレルサーバでスキーマ単位の再編成をする場合，及び表，インデクスを-W bin -wオプションを指定してエクスポートする場合は，-gオプションを省略しても，指定したものと仮定されます。

RDエリア単位にアンロードしたデータを，-gオプションを指定して表単位にリロードすると，ほかのサーバのRDエリアも0件データとして処理するため，データを削除してしまいます。この場合には，-gオプションを指定しないでください。

RDエリア単位にアンロードしたデータを，-gオプションを指定してRDエリア単位でリロードする場合，表の分割条件は変更できません。

HiRDB/パラレルサーバで，複数のサーバに分割格納された表をアンロードする場合，-gオプションを指定しているときにはサーバごとに順次アンロードします。この場合，パラレル性能は劣化します。

(9)　-j

LOB列又はLOB属性を持つ抽象データ型が定義された表に対して基表とLOBデータを同時に再編成，アンロード，リロードする場合に指定します。なお，LOB列及びLOB属性を持つ抽象データ型が定義されてない表に-jオプションを指定しても指定を無視します。

再編成で，LOB列が定義された表に対して基表だけ，又はLOBデータだけを再編成する場合は，このオプションを指定しないでください。この場合の制御文の指定方法を次に示します。

再編成対象

指定する制御文

基表

unload

LOBデータ

lobunld

次の場合は，指定がなくてもこのオプションを仮定します。

スキーマ単位の再編成，アンロード，リロード

-Wオプションを指定したアンロード

次の場合は，この指定が必須となります。

LOB列が定義された表を同期点指定のリロードをする場合

LOB列又はLOB属性を持つ抽象データ型が定義された表をアンロードする場合

同表へのリロード可否，及び別表間でのデータ移行可否を次の表に示します。

表8‒16　同表へのリロード可否

項番

アンロードファイル作成条件

リロード可否

対象表

オプション

制御文

-jオプション

LOB列又はLOB属性

-k

-j

なし

あり

1

なし

rorg

−

unload

○

○

2

unld※1

−

unload

○

○

3

あり

rorg

なし

unload

○

×

4

lobunld

○

×

5

unload，lobunld

×

×

6

あり※２

unload

×

○

7

unld※１

なし※３

unload

非該当

非該当

8

あり

unload

×

○

（凡例）

−：-jオプションの指定によりません。

○：リロードできます。

×：リロードできません（実行時エラー）。

注※1

-Wオプションを指定したアンロードはリロード対象外のため除きます。

注※2

-jオプションが仮定される場合を含みます。

注※3

このケースではアンロードできません（エラーとなります）。

表8‒17　別表間でのデータ移行可否

項番

移行対象表

移行方法

移行可否

LOB列又はLOB属性

データ抽出

データ登録

1

なし

pdrorg -k unld -W ..

pdload ..

○

2

pdrorg -k unld -j ..

pdrorg -k reld -j ..

△

3

pdrorg -k unld ..

pdrorg -k reld ..

△

4

あり

pdrorg -k unld -W ..

pdload ..

○

5

pdrorg -k unld -j ..

pdrorg -k reld -j ..

△

6

pdrorg -k unld ..

pdrorg -k reld ..

×

（凡例）

○：データ移行できます（推奨）。

△：データ移行できます（非推奨）。

×：データ移行できません。

(a)　規則

LOB列がない表に対してこのオプションを指定した場合は，指定が無視されます。

スキーマ単位の再編成をする場合，及び表，インデクスを-W bin -wオプションを指定してエクスポートする場合は，-jオプションを省略しても，指定したものと仮定されます。

アンロード時に-jオプションを指定した場合には，リロード時にも-jオプションを指定してください。

HiRDB/パラレルサーバで，複数のサーバに分割格納された表をアンロードする場合，-gオプションを指定しているときにはサーバごとに順次アンロードします。この場合，パラレル性能は劣化します。

(10)　-u 認可識別子

pdrorgを実行するユーザの認可識別子を指定します。

省略時仮定値については，「省略時仮定値」を参照してください。

このオプションを指定した場合，パスワード入力要求の応答付きメッセージが表示されます。パスワードが不要な場合は，応答付きメッセージに対して空送信してください。

ここで指定した認可識別子でHiRDBに接続し，実行権限のチェックをします。

(a)　適用基準

環境変数PDUSERに設定されている認可識別子ではない，別の認可識別子で実行したい場合に指定します。

(b)　省略時仮定値

省略した場合，次の方法で認可識別子/パスワードが仮定されます。

pdrorg実行時の環境変数PDUSERの設定値が仮定されます。シェルで&を付けてバックグラウンドで実行する場合や，リモートシェル環境で実行する場合など，パスワードの応答ができない環境で実行するときは，PDUSERを必ず設定してください。環境変数PDUSERの指定例を次に示します。

（例）Cシェルの場合

パスワードありの場合　setenv PDUSER '"認可識別子"/"パスワード"'

パスワードなしの場合　setenv PDUSER '"認可識別子"'

環境変数PDUSERが設定されていない場合，ログインウィンドウのユーザ名が仮定されます。パスワードについては，入力要求の応答付きメッセージが表示されるので，そこで応答してください。パスワードが不要な場合は，応答付きのメッセージに対して空送信してください。

(c)　規則

このオプションは，シェルで&を付けてバックグラウンドで実行する場合や，リモートシェルなどの応答できない環境では指定しないでください。

認可識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Kシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

(11)　-n ｛一括入出力用ローカルバッファ面数〔,div〕| 一括入出力用ローカルバッファ面数,〔div〕,ランダムアクセス用ローカルバッファ面数 | ,,ランダムアクセス用ローカルバッファ面数｝

アンロード処理でのデータベースからの読み込み，及びリロード処理でのデータベースへの書き込みを行う場合に使用する，ローカルバッファの面数を指定します。-nオプションを指定した際に，一括入出力用ローカルバッファ面数，又はランダムアクセス用ローカルバッファ面数を指定していない場合は，該当ローカルバッファは使用しません。なお，-nの指定自体を省略した場合は，ローカルバッファを使用しません。この場合，グローバルバッファを使用して1ページ単位に出力します。

一括入出力用ローカルバッファ面数　〜＜符号なし整数＞((2〜4096))

一括入出力用ローカルバッファの面数を指定します。一括入出力用ローカルバッファは，データページに対して使用します。

一括入出力用ローカルバッファ面数には，16〜32面を指定することをお勧めします。184キロバイト÷ページ長を上限に指定値を決めてください。

div

次の条件をすべて満たす場合にdivを指定します。次の条件をすべて満たす場合にdivを指定しないと，入出力回数が増加し，性能が劣化することがあります。

アンロード時の分割条件と，リロード時の分割条件が異なる

表格納用RDエリアが1サーバ内に複数ある

なお，divを指定すると，サーバ内表分割数分のバッファを確保するため，メモリ消費量が増えます。

ランダムアクセス用ローカルバッファ面数　〜＜符号なし整数＞((4〜125000))

ランダムアクセス用ローカルバッファの面数を指定します。ランダムアクセス用ローカルバッファは，インデクスページに対して使用します。このオペランドは，インデクス更新モードでインデクスを作成する場合に指定します。インデクス更新モードでは，行を格納するたびにB-tree構造のインデクスページを参照しますが，ランダムアクセス用ローカルバッファを使用すれば，これらのインデクスページを当該バッファに読み込むため，グローバルバッファ競合によるオンライン処理の性能劣化を軽減できます。

推奨する-nオプションの指定を次の表に示します。

表8‒18　推奨する-nオプションの指定（pdrorg）

条件

表種別

列定義

サーバ内での表の分割

あり

なし

アンロード時

FIX表

−

-n x，div

-n x

非FIX表

−

-nの指定を省略

リロード，再編成時

FIX表

−

-n x，div

-n x

非FIX表

列長が256バイトを超える可変長文字列，又はBINARY列を定義している場合

-nの指定を省略

上記以外

-n x，div

-n x

（凡例）

x：一括入出力用ローカルバッファ面数

−：該当なし

(a)　pdrorgが使用するバッファについて

-nオプションを省略した場合，グローバルバッファを使用します。この場合，再編成時に大量のグローバルバッファを使用するため，そのグローバルバッファを使用するUAPのトランザクション性能が劣化します。-nオプションを指定すると，このようなバッファ競合はなくなります。pdrorgとバッファの関係を次の図に示します。

図8‒21　pdrorgとバッファの関係

〔説明〕

グローバルバッファだけを使用する場合（-nオプションを省略した場合），pdrorgとUAPとでバッファの競合が発生します。

ローカルバッファとグローバルバッファを使用する場合（-nオプションを指定した場合），pdrorgとUAPとのバッファの競合は発生しません。ただし，LOB列の再編成の場合は，-nオプションを指定してもグローバルバッファを使用します。

-nオプションに一括入出力用ローカルバッファ面数だけを指定した場合，一つのRDエリアに対して一つの一括入出力用ローカルバッファを使用します。RDエリアがn個ある場合でも，一つの一括入出力用ローカルバッファを使用するため，バッファ競合が発生します。バッファ競合が発生すると，逆に入出力回数が増加して性能劣化を引き起こします。このような場合にはdivを指定してください。divを指定すると，RDエリア数分の一括入出力用ローカルバッファを確保（一つのRDエリアに対して一つの一括入出力用ローカルバッファを確保）するため，バッファの競合はなくなります。

一括入出力用ローカルバッファを指定しても，条件によってはグローバルバッファを使用することがあります。各条件と使用されるバッファとの関係を次の表に示します。

表8‒19　各条件と使用されるバッファとの関係（pdrorgでのアンロード処理時）

条件

ランダムアクセス用ローカルバッファの指定

なし

あり

グローバルバッファ

一括入出力用ローカルバッファ

グローバルバッファ

一括入出力用ローカルバッファ

ランダムアクセス用ローカルバッファ

データページ

LOB列構成基表を格納するRDエリア

FIX表

−

○

−

○

−

非FIX表

○

−

○

−

−

LOB列格納用RDエリア

○

−

○

−

−

LOB属性格納用RDエリア

○

−

○

−

−

インデクスページ

インデクスからキー値検索する場合（-b指定時）

○

−

−

−

○

ディレクトリページ

○

−

○

−

−

（凡例）

○：使用します。

−：使用しません。

表8‒20　各条件と使用されるバッファとの関係（pdrorgでのリロード処理時）

条件

ランダムアクセス用ローカルバッファの指定

なし

あり

グローバルバッファ

一括入出力用ローカルバッファ

グローバルバッファ

一括入出力用ローカルバッファ

ランダムアクセス用ローカルバッファ

データページ

LOB列構成基表を格納するRDエリア

FIX表

−

○

−

○

−

非FIX表

列長が256バイトを超える可変長文字列，又はBINARY列を定義している場合

○

−

○

−

−

抽象データ型列又は繰返し列を定義していて，かつ1行のデータが1ページに入らない場合

○

−

○

−

−

上記以外

−

○

−

○

−

LOB列格納用RDエリア

○

−

○

−

−

LOB属性格納用RDエリア

○

−

○

−

−

インデクスページ

表からキー値検索する場合（-i c又はn指定時）

−

○

−

○

−

インデクスの同時作成をする場合（-i s指定時）

○

−

−

−

○

インデクスの一括作成をする場合（-i c指定時）

○

−

−

−

○

ディレクトリページ

○

−

○

−

−

（凡例）

○：使用します。

−：使用しません。

(b)　規則

リバランス表の場合，グローバルバッファが十分に割り当てられていないと，極端に性能が劣化することがあります。したがって，定義長が256バイトを超える列がないときは一括入出力ページ数を指定するようにしてください。

定義長が256バイト以上の列があるなどの理由で，ローカルバッファ指定が有効にならない場合は，次の面数以上のグローバルバッファを割り当ててください。

1RDエリアに必要なバッファ面数

＝1024÷(表格納用RDエリア数)×2＋3

FIXハッシュ分割のリバランス表の場合，ハッシュグループごとに指定したページ数のバッファを確保するため，横分割していない表やほかの条件で分割している表よりも，メモリを多量に消費します。

(12)　-f アンロードデータファイル・LOBデータのアンロードファイルの種別

アンロードデータファイル，又はLOBデータのアンロードファイルの種別を指定します。

このオプションを省略した場合は，ファイルとして通常ファイル，又はストリーミングテープデバイスが仮定されます。

easymt

アンロードデータファイル，又はLOBデータのアンロードファイルとしてEasyMTを使用する場合に指定します。

hirdb

アンロードデータファイル，又はLOBデータのアンロードファイルとしてHiRDBファイルを使用する場合に指定します。

(13)　-b アンロード順指定

アンロードするデータの順番を指定します。

省略した場合，表にクラスタキーが定義されていればクラスタキー順に，クラスタキーが定義されていなければ表のデータの格納順にアンロードします。

なお，インデクス定義条件によっては，指定できないことがあります。-bオプションの指定可否を次の表に示します。

表8‒21　-bオプションの指定可否

条件

指定可否

インデクス種別

定義条件

B-treeインデクス

部分構造インデクス

−

×

上記以外

除外キ−値指定がある

×

インデクス構成列に繰返し列がある

×

上記以外

○

プラグインインデクス

−

×

（凡例）

○：指定できます。

×：指定できません。KFPL15323-Eを出力します。

−：該当しません。

(a)　適用基準

クラスタキーが定義されている表をアンロードする場合は，このオプションを省略してください。

クラスタキーが定義されていない表をアンロードして，リロードする前に，表にクラスタキーを定義しようとしている場合は，定義しようとしているクラスタキーと同じ順番（ASC，又はDESC）のインデクス順でアンロードしてください。

アンロードするデータ順として，次のどれかを指定します。

cluster

クラスタキー順にアンロードする場合に指定します。

index，インデクス識別子〔，desc〕

インデクス順にアンロードする場合に指定します。

descを指定すると，インデクスの降順にアンロードできます。なお，descは，単一列インデクスの場合にだけ指定できます。

primary〔，，desc〕

主キー順にアンロードする場合に指定します。

descを指定すると，インデクスの降順にアンロードできます。なお，descは，単一列インデクスの場合にだけ指定できます。

physical

表のデータの格納順にアンロードする場合に指定します。

＜規則＞

インデクス識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。また，インデクス識別子に空白が含まれる場合は，引用符（''）で囲んでください。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Kシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

descは単一列インデクスの場合だけ指定できます。

このオプションを指定した場合，表格納用RDエリア単位ではアンロードデータファイルに出力されたデータが指定したインデクス順に出力されますが，表全体としてはインデクス順にはなりません。したがって，インデクス順に出力したアンロードデータファイルが必要な場合（-Wオプションを指定してDAT形式のデータを出力する場合など）は，横分割表についてはRDエリア単位にアンロードデータファイルを作成する必要があります。

スキーマ単位の再編成の場合，-bオプションは指定できません。

LOB列をインデクス順にアンロード（-bオプションにindexを指定）する場合は，インデクスが作成されていなければなりません。次の場合はインデクスが作成されないので，インデクスを作成してからLOB列をアンロードする必要があります。

-iオプションにnを指定した場合

サーバ内分割されていない非分割キーインデクスの定義された表に対して，RDエリア単位にリロードする場合

(14)　-S

CHAR，NCHAR，又はMCHAR型の列にサプレスオプションを指定している表を再編成する場合に，列データの後方に連続する空白があるとき，その空白を取り除いてアンロードするときに指定します。

(a)　オプション指定時の効果

このオプションを指定すると，処理時間の短縮，及びアンロードデータファイルの容量を削減できます。

-Sオプションを指定して，処理時間の短縮，及びアンロードデータファイルの容量を削減できるケースを次に示します。

アンロードした表の状態

リロード先の表の状態

サプレスオプションなしの列

サプレスオプションありの列

条件A

条件B

条件A

条件B

サプレスオプションありの列

条件A

○

○

◎

○

条件B

×

×

×

×

（凡例）

条件A：

該当する列にインデクスが定義されていない，かつキーレンジ分割列，ハッシュ分割列でない場合

条件Ｂ：

該当する列にインデクスが定義されている，又はキーレンジ分割列，若しくはハッシュ分割列の場合

◎：

アンロード，及びリロード時の処理時間が短縮され，アンロードデータファイルの容量が削減されます。

○：

アンロード時の処理時間が短縮され，アンロードデータファイルの容量が削減されます。リロード時の処理時間は，◎の場合よりも遅くなります。

×：

処理時間の短縮，及びアンロードデータファイルの容量削減の効果はありません。

(b)　注意事項

-Sオプションを指定して，かつサプレスオプションを指定している表の列の場合でも，次に示す列は処理時間の短縮，及びアンロードデータファイルの容量の削減はできません。

インデクスが定義されている列

キーレンジ分割の列

ハッシュ分割の列

リロード時に，上記の列の定義が変更されている場合は，定義が変更されていない場合に比べて処理時間は遅くなります。

-Wオプションを指定している場合，このオプションを指定しても無効となります。

(15)　-o

インデクス作成処理が正常終了した後に，インデクス情報ファイルを自動的に削除する場合に指定します。

(a)　適用基準

特にプラグインインデクスを作成するときのインデクス情報ファイルは大容量となり，インデクス情報ファイルを削除しないでおくと，ディスク容量を圧迫することになります。このインデクス情報ファイルの削除し忘れに備え，インデクス作成処理終了後に自動的にインデクス情報ファイルを削除する場合に，このオプションを指定します。

(b)　注意事項

インデクス情報ファイルの内容と，-oオプションの関係を次に示します。

-kオプション

インデクス情報ファイルの内容

-oオプション

あり

なし

rorg，reld

index文で指定したインデクス情報ファイル

○※

×

HiRDBが割り当てたインデクス情報ファイル

○※

○※

ixmk

pdload，又はpdrorgが作成したインデクス情報ファイル

○

×

プラグインインデクスのインデクス遅延一括作成機能で作成したインデクス情報ファイル

○

○

ixrc，ixor

idxname文を指定したときにHiRDBが割り当てたインデクス情報ファイル

○

○

index文で指定したインデクス情報ファイル

○

×

（凡例）

○：削除されます。

×：削除されません。

注※

サーバ内で分割している表の場合，RDエリア単位の再編成でサーバ内分割されていない非分割キーインデクスのときは削除されません。

(16)　-m 〔経過メッセージ出力間隔〕〔,インフォメーションメッセージ出力抑止レベル〕

経過メッセージ出力間隔　〜＜符号なし整数＞((1〜1000))《10》

処理の実行状況を出力するメッセージの出力間隔を，1万行単位で指定します。なお，このメッセージは，-mオプションにlvl2を指定すると，トラブルシュート情報を出力するワークファイルにも出力されます。

＜適用基準＞

省略時仮定値の10万行間隔出力が長い場合，又は短い場合に，任意に指定してください。

＜注意事項＞

表へリロードする場合のインデクス一括作成中，及びインデクスの一括作成で指定したときは無効となり，インデクスの作成開始時点，及び終了時点でメッセージが出力されます。

-k ixrcの場合は，このオプションの指定を無視します。ただし，プラグインインデクスを処理する場合は有効です。

インフォメーションメッセージ出力抑止レベル　〜《lvl0》

実行した端末の標準出力，syslogfile，及びメッセージログファイルへのインフォメーションメッセージの出力を抑止します。標準出力，syslogfile，及びメッセージログファイルのすべての出力を抑止する場合，トラブルシュート情報はワークファイルに出力します。指定できるオプションとメッセージの出力先を次の表に示します。

表8‒22　オプションの指定値とメッセージの出力先

オプションの指定値

意味

出力先

標準出力

syslogfile及びメッセージログファイル

ワークファイル

lvl0

出力を抑止しない

○

○

×

lvl1

標準出力への出力を抑止する

×

○

×

lvl2

標準出力，syslogfile及びメッセージログファイルへの出力を抑止する

×

×

○

（凡例）

○：メッセージを出力します。

×：メッセージを出力しません。

ワークファイルにメッセージを出力するのはトラブルシュート目的（ユティリティの動作を確認するため）であり，通常，メッセージを確認する必要がない場合はlvl1を指定することをお勧めします。

＜ワークファイル＞

ワークファイルは，-mオプションにlvl2を指定すると，ユティリティを実行するごとに各サーバに作成されます。このため，pdcspoolコマンドでHiRDBによって定期的に削除されるように，pd_tmp_directoryオペランドにディレクトリを指定しておくことをお勧めします。ワークファイルの出力先を次の表に示します。

表8‒23　ワークファイルの出力先

システム定義のpd_tmp_directoryオペランドの指定

環境変数TMPDIRの指定

ワークファイルの出力先

あり

−

pd_tmp_directoryオペランドに指定したディレクトリ

なし

あり

環境変数TMPDIRに指定したディレクトリ

なし

/tmpディレクトリ

（凡例）

−：該当しません。

なお，ファイルオープンエラーやI/Oエラーなどのためにインフォメーションメッセージがワークファイルへ出力できない場合は，エラーメッセージが出力されますが，処理は続行します。

ワークファイルは，HiRDBが自動で作成します。ファイル名称は，PDRORG-aa-bbの形式で決められます。それぞれの意味について説明します。

PDRORG：pdrorgが出力したファイルであることを示す固定のプリフィクスです。

aa：インナレプリカ機能を使用していない場合は，プロセスのサーバ名称です。インナレプリカ機能を使用している場合は，プロセスのサーバ名称，GN，及び世代番号を組み合わせた文字列です。

bb：ファイル作成時間，及びプロセスIDです。

(17)　-X サーバ間通信の応答監視時間

　　　〜＜符号なし整数＞　((1〜65535))　《300》

コマンドを実行したサーバで通信障害などの障害が発生した場合，コマンドは無応答となり，業務が停止するおそれがあります。pdrorgでは障害を検知するために，コマンドで実施されるディクショナリ操作についての通信の応答時間を監視できます。

-Xオプションには，ディクショナリ操作での応答監視時間を秒数で設定します。ディクショナリ操作時の実行時間が，-Xオプションに設定した時間を超えた場合は，pdrorgはディクショナリアクセスで障害が発生したと判断し，リターンコード8で処理を打ち切ります。pdrorgの監視時間には，このほかにpdrorgの実行監視時間があります。サーバ間通信の応答監視時間とpdrorgの実行監視時間との関係については，「exectime=pdrorgの実行監視時間」を参照してください。

＜適用基準＞

通信障害やユニットダウンによってサーバから応答が返らない状態となった場合に，300秒より早く障害を検知したいとき，-Xオプションに300より小さい値を指定してください。

系切り替え機能を使用している場合，系切り替えが完了しているにもかかわらず，コマンドが応答を待ち続けることがあります。その場合は，監視時間を短く設定することで，コマンドを即時終了できます。

同時実行するアプリケーションやユティリティの多重度が高い場合など，ディクショナリからの応答が遅延し，-Xオプションのデフォルトである300秒以内にユティリティの前処理が完了しないときは，監視時間でタイムアウトするおそれがあります。このような環境では，-Xオプションには300より大きい値を指定してください。

ディクショナリ表のメンテナンスでインデクスを追加する場合，大量のデータが登録されているディクショナリ表に対して実行すると，処理時間が長くなり，デフォルトである300秒を超えるおそれがあります。そのため，応答監視時間には300より大きい値を指定してください。対象となるディクショナリ表については，マニュアル「HiRDB システム導入・設計ガイド」の「HiRDBのシステム構築の概要」の「HiRDBのバージョンアップ」の「バージョンアップ時の留意事項」の表「メンテナンスが必要なケースとディクショナリ表のメンテナンス内容」を参照してください。

(18)　-q 世代番号

　　　〜＜符号なし整数＞((0〜10))

インナレプリカ機能を使用している場合，処理対象となるRDエリアの世代番号を指定します。

世代番号は次のように指定します。

0：オリジナルRDエリアを対象とする場合

1〜10：指定した世代のレプリカRDエリアを対象とする場合

(a)　適用基準

インナレプリカ機能を使用していて，カレントRDエリア以外のRDエリアを処理対象にする場合に指定します。

(b)　規則

このオプションを省略した場合，カレントRDエリアが対象となります。

処理対象がレプリカRDエリアの場合，-qオプションに対象となる世代番号を指定します。

pdrorgは，処理対象となるRDエリアの世代が一致しているかどうかをチェックします。次のチェックをして，エラーがあった場合にはメッセージを出力してから，リターンコード8で終了します。

横分割表間で世代番号が一致しているかどうかのチェック：

横分割表に対して処理をする場合，格納先のRDエリア間の世代チェックをします。

-qオプション指定時は，各格納先に，指定した世代のRDエリアがあるかどうかをチェックします。-qオプション省略時は，各格納先のカレントRDエリアの世代番号が同一かどうかをチェックします。

表及びインデクスを格納するRDエリア間の世代番号が同一かどうかのチェック：

表及びインデクスを格納するRDエリアの世代チェックをします。

-qオプション指定時は，処理対象となるRDエリアに，指定した世代があるかどうかをチェックします。-qオプション省略時は，処理対象となるカレントRDエリアが，すべて同じ世代かどうかをチェックします。

処理対象RDエリアのレプリカステータスが同一かどうかのチェック：

-qオプション指定時に，処理対象RDエリアにカレントRDエリアとカレントRDエリア以外が混在していないかをチェックします。

(19)　制御情報ファイル名

　　　〜＜パス名＞

pdrorgの制御文を記述した制御情報ファイルの名称を指定します。

制御情報ファイルには，次に示す制御文を記述できます。各制御文については，次を参照してください。

「mtguide文及びemtdef文（MTの情報の記述）」

「unload文（アンロードデータファイルの情報の記述）」

「index文（インデクス情報ファイルの情報の記述）」

「idxname文（インデクスの情報の記述）」

「idxwork文（インデクス情報ファイル用ディレクトリの情報の記述）」

「sort文（ソート用ワークディレクトリの情報の記述）」

「lobunld文（LOBデータのアンロードファイルの情報の記述）」

「unlduoc文（UOC格納ライブラリの情報の記述）」

「tblname文（別表への表データ再登録の情報の記述）」

「array文（繰返し列の行データ出力形式の記述）」

「unld_func文（コンストラクタパラメタ逆生成関数の情報の記述）」

「reld_func文（コンストラクタ関数の情報の記述）」

「constraint文（検査保留状態に関する記述）」

「option文（データ処理に関する情報の記述）」

「blobtovarchar文（データ変換をする列の記述）」

「fixtext_option文（固定長データ形式の入力データファイル生成時の出力データに関する記述）」

なお，制御情報ファイル中にコメントは記述できません。

制御文

pdrorgの機能

表の再編成

表のアンロード

表へのリロード

ディクショナリ表の再編成

インデクスの一括作成

インデクスの再作成

インデクスの再編成

mtguide文，emtdef文

○

○

○

○

−

−

−

unload文

◎

◎

◎

◎

−

−

−

index文

○

−

○

−

◎

◎※６

◎※６

idxname文

−

−

−

−

−

◎※６

◎※６

idxwork文

○※１

−

○※１

−

−

○

○

sort文

○※２

−

○※２

−

○

○

−

lobunld文

○

○※３

○

○

−

−

−

unlduoc文

○

○

−

×

×

×

×

tblname文

−

−

○

−

−

−

−

array文

−

○※４

−

−

−

−

−

unld_func文

○※５

○※８

−

−

−

−

−

reld_func文

○※５

−

○

−

−

−

−

constraint文

○

−

○

−

−

−

−

option文

○

○※４※７

○

○※７

○※７

○※７

○※７

blobtovarchar文

−

○※４

−

−

−

−

−

fixtext_option文

−

○※４

−

−

−

−

−

（凡例）

◎：必ず指定してください。

○：任意に指定できます。

−：指定しても無視されます。

×：指定するとエラーになります。

注※1

-i sの場合は指定できません。

注※2

-i n，及び-i sの場合は指定できません。

注※3

-Wオプションを指定した場合は指定できません。

注※4

-Wオプションを指定した場合に指定できます。

注※5

unld_func文，及びreld_func文を同時に指定する必要があります。

注※6

index文，又はidxname文のどちらかを指定してください。

注※7

同期点を指定した再編成及びリロードの場合，指定できません。

注※8

抽象データ型の列がある表を，-W bin指定でアンロードする場合は必ず指定してください。

(a)　制御文とオプションの関係

●LOB列，又はプラグインが提供する抽象データ型列（LOB属性）がある表の場合

LOB列がある表を再編成する場合，unload文，及びlobunld文の指定によって再編成の単位が異なります。LOB列がある表の再編成の単位と，unload文，lobunld文，及び-jオプションとの関係を次に示します。

表の再編成の単位

unload文

lobunld文

-jあり

-jなし

-jあり

-jなし

LOB列構成基表及びLOB列

○

○

×

○

LOB列構成基表

×

○

×

−

LOB列

×

−

×

○

（凡例）

○：指定できます。

×：指定できません。

−：不要です。

●インデクスの再作成，又はインデクスの再編成をする場合

インデクスの再作成，又はインデクスの再編成をする場合，idxname文でインデクス単位に処理，又はindex文でインデクス格納RDエリア単位に処理できます。インデクスの再作成，又はインデクスの再編成単位と，index文，idxname文，idxwork文，及びsort文の関係を次に示します。

インデクスの再作成，

又は再編成単位

index文

idxname文

idxwork文

sort文

-k ixrc

-k ixor

インデクス単位

×

◎

○

○

−

インデクス格納RDエリア単位

◎

×

−

○

−

（凡例）

◎：必ず指定してください。

○：任意に指定できます。

×：指定できません。

−：指定しても無視されます。

(b)　制御文で記述するファイル，及びディレクトリについて

制御文で記述するファイル，及びディレクトリの規則を次に示します。

HiRDB管理者に対してアクセス権限を与えておく必要があります。

アンロードデータファイル，インデクス情報ファイル，及びEasyMTのMT属性ファイルのファイル名称は，ホストに関係なくすべて一意にしてください。

8.10.3　mtguide文及びemtdef文（MTの情報の記述）

アンロードデータファイル，又はLOBデータのアンロードファイルとしてEasyMTを使用する場合に指定します。

mtguide文及びemtdef文は，unload文又はlobunld文の前に指定します。

EasyMT，及びMTguideについては，それぞれ次のマニュアルを参照してください。

EasyMT

「磁気テープ運用支援　JP1/Magnetic Tape Access」，又は「磁気テープ簡易アクセス法　EasyMT」

MTguide

「磁気テープマウント管理　JP1/Magnetic Tape Library」

(1)　形式

　mtguide ｛use｜nouse｝

　emtdef MT属性定義ファイル名

(2)　説明

(a)　mtguide｛use｜nouse｝

アンロードデータファイル，又はLOBデータのアンロードファイルとしてEasyMTを使用する場合，MTのマウント操作にMTguideを使用するかどうかを指定します。

use

MTguideを使用する場合に指定します。

nouse

MTguideを使用しない場合に指定します。

(b)　emtdef MT属性定義ファイル名

　　　〜＜パス名＞

EasyMTのMT属性を定義したファイルの名称を指定します。このファイルに指定した次に示す項目が，EasyMTの処理で有効になります。

bufno：入出力バッファ面数

magazin：MT装置割り当てパターン

job：業務名称

preserve：保存日数

expire：満了日付

ただし，unload文，又はlobunld文中の記述で同じ項目を指定した場合は，その値を優先します。

【HiRDB/シングルサーバの場合】

MT属性定義ファイルは，シングルサーバのあるサーバマシンに作成してください。

【HiRDB/パラレルサーバの場合】

MT属性定義ファイルは，システムマネジャのあるサーバマシンに作成してください。

(3)　注意事項

EasyMTを使用する場合，アンロードで使用するMTはEasyMTのEmtInit関数，又はemtinitコマンドを使用して，事前にEasyMTラベル付きボリュームの形式で初期化しておく必要があります。

また，マルチボリュームMTを使用したい場合は，すべてのボリュームを初期化する必要があります。

なお，初期化のパラメタの設定方法には，次に示す方法があります。

設定方法

設定値

ボリューム属性定義テーブルに設定

EMTVOL_EL

MT属性定義ファイルに設定

voltype=EL

8.10.4　unload文（アンロードデータファイルの情報の記述）

アンロードデータファイルの情報を指定します。

＜適用基準＞

-k rorg，-k unld，及び-k reldの場合は，必ず指定してください。

＜規則＞

unload文は，次の数だけ指定できます。

【HiRDB/シングルサーバの場合】

再編成の単位（表，又はRDエリア）に関係なく，unload文は一つだけ指定してください。

【HiRDB/パラレルサーバの場合】

横分割表を表単位に再編成する場合，unload文は表を格納したRDエリアがあるサーバ数分指定してください。

横分割表をRDエリア単位に再編成する場合，又は分割していない表の再編成の場合には，unload文は一つだけ指定してください。また，-gオプションを指定して一つのアンロードデータファイルにアンロードする場合にも，unload文は一つだけ指定してください。

(1)　形式

　unload ｛〔｛サーバ名：｜ホスト名：｝〕

　　　　　　　　アンロードデータファイル名〔，アンロードデータファイル名〕…

　　　　　｜（uoc）｝

　　　　　〔｛EasyMT情報｜HiRDBファイル情報｝〕

　　　　　〔uoc情報〕

(2)　説明

(a)　サーバ名

　　　〜＜識別子＞((1〜8))

アンロードデータファイルを作成するサーバの名称を指定します。

【HiRDB/シングルサーバの場合】

HiRDB/シングルサーバの場合は指定しないでください。

【HiRDB/パラレルサーバの場合】

-gオプション指定なし

横分割表の表単位の再編成の場合，再編成する表を格納したRDエリアがあるサーバごとにサーバ名を指定してください。

横分割表のRDエリア単位の再編成，分割していない表の再編成，又はディクショナリ表の再編成の場合，サーバ名を指定する必要はありません。このとき，アンロードデータファイルは表を格納したRDエリアがあるサーバから出力されます。

-gオプション指定あり

-gオプションを指定して，一つのアンロードデータファイルにアンロードする場合には，アンロードデータファイルを作成するサーバ名を指定してください。

(b)　ホスト名

　　　〜＜識別子＞((1〜32))

アンロードデータファイルを作成するホストの名称を指定します。

【HiRDB/シングルサーバの場合】

アンロードデータファイルをユティリティ専用ユニットへ作成する場合は，そのホスト名を指定してください。

省略した場合，アンロードデータファイルはシングルサーバのあるユニットに作成されます。

【HiRDB/パラレルサーバの場合】

HiRDB/パラレルサーバの場合は，指定しないでください。

(c)　アンロードデータファイル名

　　　〜＜パス名＞

アンロードデータファイルの名称を絶対パス名で指定します。

アンロードデータファイルとして，次に示すファイルを使用できます。

通常ファイル

OSが提供するファイルシステム領域に作成できます。この場合，事前の準備は不要です。

キャラクタ型スペシャルファイル

pdfmkfsコマンドで作成したユティリティ用のHiRDBファイルシステム領域に作成してください。

-fオプションでアンロードデータファイル種別を指定した場合は，次のように指定してください。

アンロードデータファイルがEasyMTの場合：

アンロードデータファイルは二つまで指定できます。

また，MTguideを使用する場合は，MTguideが管理する装置記号名，又は装置グループ名も指定できます。

アンロードデータファイルがHiRDBファイルの場合：

アンロードデータファイル名は，167文字以内で指定してください。

HiRDBファイルを使用するには，あらかじめpdfmkfsコマンドで，HiRDBファイルシステム領域を作成しておく必要があります。この場合，-kオプションの使用目的にはUTLを指定してください。

pdfmkfsコマンドで，-k UTL以外を指定して作成したHiRDBファイルシステム領域上に作成したHiRDBファイルを指定した場合は，エラーとなります。

指定したアンロードデータファイル名がHiRDBファイルシステム領域上にない場合，HiRDBが新規にアンロードデータファイルを作成します。既存のアンロードデータファイル名を指定した場合は，上書きされます。

＜アンロードデータファイルに関する注意事項＞

-W bin -wオプションを指定して出力した表移行用アンロードファイルは，一つだけ指定できます。

表のデータが一つのアンロードデータファイルに入りきらない場合は，複数のファイルを指定できます。

アンロードデータファイルを複数指定する場合，次のことに注意してください。

EasyMTを使用しないで直接テープ装置は使用できません。

また，次のようにファイル属性は同一である必要があります。

EasyMTの場合

すべてEMTVOL_EL(EasyMTラベル付きボリューム)として初期化しておく必要があります。

HiRDBファイルの場合

通常ファイルとキャラクタ型スペシャルファイルの混在はできません。必ずどちらかに統一してください。

(d)　（uoc）

UOCを利用した再編成をする場合，UOC側でUOCデータファイルを作成する場合（pdrorg側ではアンロードデータファイルを出力しない場合）に指定します。

（uoc）は，-k unldの場合にだけ指定できます。また，（uoc）を指定した場合は，EasyMT情報及びHiRDBファイル情報は指定できません。

(e)　EasyMT情報

〔file=ファイル名〕

〔｛，vol=ボリューム名｜，vol=（ボリューム名〔，ボリューム名〕…）｝〕

〔，bufno=バッファ面数〕

〔，fileno=｛ファイル順序番号｜ADD｝〕

アンロードデータファイルがEasyMTの場合に指定します。

ファイル名，及びボリューム名を指定すると，ファイル，及びボリュームの名称が，ここで指定した名称と一致しているかどうかチェックできます。ファイル名，及びボリューム名のチェックをしない場合には，省略できます。

ファイル名を省略する場合は，先頭になった項目のコンマ（，）は指定しないでください。

file=ファイル名　〜＜英数字＞((1〜17))

ファイルの名称を指定します。

｛，vol=ボリューム名｜，vol=（ボリューム名〔，ボリューム名〕…）｝

　　　〜＜英数字＞((1〜6))

ファイルのボリューム名を指定します。ボリューム名は１行で記述できる範囲で255個まで指定できます。

bufno=バッファ面数　〜＜符号なし整数＞((1〜256))《10》

EasyMTで使用するバッファの面数を指定します。

fileno=｛ファイル順序番号｜ADD｝

MT内のアンロードデータファイルの作成位置を指定します。

ファイル順序番号　〜＜符号なし整数＞((1〜199))《1》

-k rorg，又は-k unldの場合は，指定した位置にファイルを作成します。このとき，指定した位置以降のファイルは削除されます。

-k reldの場合は，指定した位置のファイルを読み込みます（filenoを省略した場合，次のファイルを読み込みます）。

ADD

-k rorg，又は-k unldの場合は，ボリュームの最後にファイルを作成します。

-k reldの場合，ADDは指定できません。

(f)　HiRDBファイル情報

〔init=｛初期割り当て領域サイズ

　　　　｜（初期割り当て領域サイズ〔，初期割り当て領域サイズ〕…）｝〕

〔，incr=｛増分割り当て領域サイズ

　　　　　｜（増分割り当て領域サイズ〔，増分割り当て領域サイズ〕…）｝

アンロードデータファイルがHiRDBファイルの場合に指定します。HiRDBファイル情報は，必ず１行で指定してください。

initの指定を省略した場合，incrの前のコンマ（,）は指定しないでください。

init=｛初期割り当て領域サイズ｜（初期割り当て領域サイズ〔，初期割り当て領域サイズ〕…）｝

　　　〜＜符号なし整数＞((1〜1048574))《100》

HiRDBファイルへの書き込み時に割り当てる容量をメガバイト単位で指定します。

＜見積もり式＞

初期割り当て領域サイズの計算方法については，マニュアル「HiRDB システム導入・設計ガイド」のデータベース再編成ユティリティ（pdrorg）実行時のファイルの容量を参照してアンロードデータファイルのバイト数を求め，次の式で計算してください。

初期割り当て領域サイズ
＝↑（アンロードデータファイルのバイト数＋1024）÷（1024×1024）↑
　（単位：メガバイト）

＜規則＞

初期割り当てサイズは，pdfmkfsコマンドでHiRDBファイルシステム領域作成時，-nオプションで指定した値より小さくなければなりません（システムが管理用に使用する領域が必要なため）。

pdfmkfsコマンドに-eオプションを指定しなかったり，-eオプションに0を指定したりすると，増分割り当てができないので，必ず指定してください。

どの程度の大きさの初期割り当てサイズが使用できるかは，pdfstatfsコマンドで確認してください。

割り当て領域サイズの指定は，unload文で指定したファイル名の数分指定します。両者に不一致があった場合，次のように解釈します。

関係

動作

ファイル数＜指定

ファイル数分，指定を有効にして後は無視します。

ファイル数＝指定

ファイルごとに指定を有効にします。

ファイル数＞指定

指定の最後の領域サイズを足りない指定分繰り返します。

incr=｛増分割り当て領域サイズ｜（増分割り当て領域サイズ〔，増分割り当て領域サイズ〕…）｝

　　　〜＜符号なし整数＞((1〜1048574))《10》

HiRDBファイル書き込み時に，初期割り当て領域サイズで容量が不足した場合，拡張する割り当て領域の大きさを指定します。

次の場合にはHiRDBファイルの拡張ができません。

該当するHiRDBファイルシステム領域の増分回数指定を超えて拡張しようとしたとき

該当するHiRDBファイルが，個々のHiRDBファイルの増分回数の上限(23回固定)を超えて拡張しようとしたとき

したがって，実際の容量が見積もり容量を超える場合は，上記2項目の制限に掛からないように，増分割り当てサイズを指定する必要があります。増分割り当てサイズの制限を次の図に示します。図中のnの値は，上記2項目の制限を超えないようにしてください。

図8‒22　増分割り当てサイズの制限（unload文）

HiRDBファイルシステム領域の増分回数は，新規にHiRDBファイルシステムを作成する場合，pdfmkfsコマンドの-eオプション指定で設定します。また，既存のHiRDBファイルシステム領域の状態を見る場合，pdfstatfsコマンドの出力結果の「available expand count」の値によって参照できます。

(g)　UOC情報

〔uoc_lib=ライブラリ名称〔param='ユーザパラメタ'〕

UOC情報は，UOCを利用して再編成をする場合に指定してください。unlduoc文を指定する場合には，必ずUOC情報も指定してください（指定しないとエラーとなります）。

uoc_lib=ライブラリ名称

　　　〜＜パス名＞

UOCを格納している共用ライブラリの名称を，絶対パス名で指定します。

param='ユーザパラメタ'

　　　〜＜文字列＞((1〜1023))

UOCにパラメタを渡したい場合に，その内容をユーザパラメタに指定します（ユーザはUOCに対して，コマンドラインなどで直接パラメタを渡せないため）。

ここに指定した内容は，UOCインタフェース領域を介して，指定した内容のままUOCに渡されます。なお，ユーザパラメタに指定する文字列には，空白及びタブは指定できません。

8.10.5　index文（インデクス情報ファイルの情報の記述）

インデクス情報を出力するインデクス情報ファイルの情報を指定します。

＜適用基準＞

-k rorg，又は-k reldの場合

システム定義のpd_tmp_directoryオペランド及び環境変数TMPDIRを指定していない場合，index文は，/tmpディレクトリの容量不足を発生させないよう，できるだけ指定するようにしてください。

インデクスの数，又はインデクスの格納RDエリア数が多い場合は，idxwork文を指定すると便利です。

-k ixmkの場合

必ず指定してください。

-k ixrc，又は-k ixorの場合

インデクス格納RDエリア単位にインデクスの再作成，又はインデクスの再編成をするときに指定します（インデクス単位に処理する場合はidxname文を指定します）。

＜規則＞

index文は，インデクス格納用RDエリアごとに1文指定します。

インデクスを定義していない表の再編成，及びインデクス更新モードの場合には，index文を指定する必要はありません。

index文を省略した場合，ユティリティがファイル名称を決定し，インデクス情報ファイルを作成します。作成先ディレクトリは，idxwork文を省略している場合，インデクスが格納されているサーバの，表「pdrorgがファイルを出力するディレクトリ」に示すディレクトリになります。

ユティリティが名称を決定してインデクス情報ファイルを作成した場合，インデクス一括作成完了後，ユティリティがファイルを削除しますが，index文を指定した場合，-oオプションを指定しないとインデクス一括作成完了後にファイルを削除しません。そのため，ユーザがファイルを削除する必要があります。

index文とidxwork文を同時に指定した場合，index文の指定が有効となります。

(1)　形式

　index インデクス識別子 〔RDエリア名〕 インデクス情報ファイル名

(2)　説明

(a)　インデクス識別子

インデクスのインデクス識別子を指定します。

インデクス識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符で囲まない場合は，すべて英大文字として扱われます。また，インデクス識別子に空白が含まれている場合は，引用符で囲んでください。

(b)　RDエリア名

　　　〜＜識別子＞((1〜30))

横分割表の場合，インデクスを格納しているRDエリアの名称を指定します。

レプリカRDエリアを指定する場合，RDエリア名にはオリジナルRDエリア名を指定し，-qオプションに対象となる世代番号を指定します。

RDエリア名を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符で囲まない場合は，すべて英大文字として扱われます。また，RDエリア名に空白が含まれている場合は，引用符で囲んでください。

(c)　インデクス情報ファイル名

　　　〜＜パス名＞

インデクス情報を出力するインデクス情報ファイルの名称を絶対パス名で指定します。

なお，インデクス遅延一括作成機能で出力したインデクス情報ファイルを使用してインデクスの再作成をする場合，インデクス情報ファイルのファイル名にHiRDBファイルを使用できます（"HiRDBファイルシステム領域名/HiRDBファイル"は167文字以内にしてください）。そのほかの場合は，通常ファイルのファイル名を指定します。

8.10.6　idxname文（インデクスの情報の記述）

インデクスの再作成，又はインデクスの再編成をするときに，インデクスの情報を指定します。

＜適用基準＞

インデクス単位にインデクスの再作成，又はインデクスの再編成をするときに指定します（インデクス格納RDエリア単位に処理する場合はindex文を指定します）。

＜規則＞

idxname文はインデクス数分指定できます。ただし，name=*を指定した場合は，1文だけ指定できます。複数指定するとエラーになります。

idxname文を使用すると，インデクスを構成するすべてのインデクス格納RDエリアが処理対象となります。そのため，index文で複数記述していたものが，idxname文だと1文だけ指定すればよい場合もあります。

idxname文を指定し，かつidxwork文を省略した場合，インデクス情報ファイルを出力するディレクトリは，インデクス格納RDエリアがあるサーバの，表「pdrorgがファイルを出力するディレクトリ」に示すディレクトリになります。

(1)　形式

　idxname name=インデクス識別子〔server=サーバ名〔，サーバ名〕…〕

(2)　説明

(a)　name=インデクス識別子

インデクスのインデクス識別子を指定します。

インデクス識別子には，アスタリスク（*）も指定できます。*を指定した場合，表に定義しているすべてのインデクスを再作成します。

インデクス識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符で囲まない場合は，すべて英大文字として扱われます。また，インデクス識別子に空白が含まれている場合は，引用符で囲んでください。

(b)　server=サーバ名

　　　〜＜識別子＞((1〜8))

サーバ名は，HiRDB/パラレルサーバの場合に指定します。

サーバ名を指定した場合，指定したサーバにあるインデクスだけを処理します。省略した場合は，すべてのサーバにあるインデクスを処理対象とします。

(3)　オペランドと実行環境との関係

nameオペランド，及びserverオペランドと，実行環境との関係を次に示します。

nameオペランド

serverオペランド

実行環境

HiRDB/シングルサーバ

HiRDB/パラレルサーバ

インデクス識別子

サーバ名

該当しません。

指定したサーバの，指定したインデクスを構成する，すべてのインデクス格納RDエリアが対象となります。

省略

インデクスを構成する，すべてのインデクス格納RDエリアが対象となります。

すべてのサーバの，指定したインデクスを構成する，すべてのインデクス格納RDエリアが対象となります。

*

サーバ名

該当しません。

指定したサーバの，表に定義されているすべてのインデクスを構成する，すべてのインデクス格納RDエリアが対象となります。

省略

表に定義されているインデクスを構成する，すべてのインデクス格納RDエリアが対象となります。

すべてのサーバの，表に定義されているすべてのインデクスを構成する，すべてのインデクス格納RDエリアが対象となります。

8.10.7　idxwork文（インデクス情報ファイル用ディレクトリの情報の記述）

index文，又はidxname文を省略した場合，ユティリティが作成するインデクス情報ファイルの出力ディレクトリの名称を指定します。

＜適用基準＞

システム定義のpd_tmp_directoryオペランド及び環境変数TMPDIRを指定していない場合，idxwork文は，/tmpディレクトリの容量不足を発生させないよう，できるだけ指定するようにしてください。

＜規則＞

index文，及びidxwork文の両方を省略した場合，インデクス格納RDエリアがあるサーバの，表「pdrorgがファイルを出力するディレクトリ」に示すディレクトリにインデクス情報ファイルが作成されます。

idxwork文は，次の数だけ指定できます。

【HiRDB/シングルサーバの場合】

一つだけidxwork文を指定します。

【HiRDB/パラレルサーバの場合】

分割格納された表のインデクスの場合，分割格納先のサーバの数だけidxwork文を指定します。分割格納されていない表や，分割格納された表をRDエリア単位に再編成する場合には一つだけ指定します。指定するサーバ名は，インデクス格納RDエリアがあるサーバの名称を指定します。

idxwork文とindex文を同時に指定した場合，index文の指定が有効となり，idxwork文の指定は無視されます。

(1)　形式

　idxwork 〔サーバ名〕 ディレクトリ名

(2)　説明

(a)　サーバ名

　　　〜＜識別子＞((1〜8))

インデクス情報ファイルを作成するサーバの名称を指定します。

【HiRDB/シングルサーバの場合】

HiRDB/シングルサーバの場合は指定しないでください。シングルサーバの名称を指定しても無視されます。

【HiRDB/パラレルサーバの場合】

インデクス情報ファイルを作成するサーバの名称を指定します。

(b)　ディレクトリ名

　　　〜＜パス名＞((1〜255))

インデクス情報ファイルを作成するディレクトリの名称を絶対パス名で指定します。

(3)　注意事項

自動作成されるインデクス情報ファイルの名称を次に示します。

(a)　インナレプリカ機能を使用していない場合

ディレクトリ名/INDEX-インデクス名-インデクス格納用RDエリア名
-一意となる文字列

（例）

idxwork文のディレクトリ名が/hd0400，インデクス名がIDX1，インデクス格納用RDエリア名がUSER01の場合，作成されるインデクス情報ファイルの名称は次のようになります。

/hd0400/INDEX-IDX1-USER01-aaaa00001

(b)　インナレプリカ機能を使用している場合

ディレクトリ名/INDEX-インデクス名
-インデクス格納用オリジナルRDエリア名-GN世代番号-一意となる文字列

（例）

idxwork文のディレクトリ名が/hd0400，インデクス名がIDX2，インデクス格納用オリジナルRDエリア名がUSER01，2世代目のRDエリアが対象の場合，作成されるインデクス情報ファイルの名称は次のようになります。

/hd0400/INDEX-IDX2-USER01-GN2-aaaa00002

8.10.8　sort文（ソート用ワークディレクトリの情報の記述）

インデクスを作成するときに使用するソート用ワークファイルの情報（ファイルの作成ディレクトリなど）を指定します。

＜適用基準＞

システム定義のpd_tmp_directoryオペランド及び環境変数TMPDIRを指定していない場合，sort文は，/tmpディレクトリの容量不足を発生させないよう，できるだけ指定するようにしてください。

＜規則＞

sort文を省略した場合，インデクス格納RDエリアがあるサーバの，表「pdrorgがファイルを出力するディレクトリ」に示すディレクトリに作成されます。

ソート用ワークファイルは，pdrorgの処理終了後に自動的に削除されます。

sort文は，次の数だけ指定できます。

【HiRDB/シングルサーバの場合】

一つだけsort文を指定します。

【HiRDB/パラレルサーバの場合】

分割格納された表のインデクスの場合，分割格納先のサーバの数だけsort文を指定します。分割格納された表のインデクスの場合でも，RDエリア単位に再編成する場合には，一つだけsort文を指定します。また，分割格納されていない表のインデクスの場合も，一つだけsort文を指定します。

(1)　形式

　sort 〔サーバ名〕　ディレクトリ名

(2)　説明

(a)　サーバ名

　　　〜＜識別子＞((1〜8))

ソート用ワークファイルを作成するサーバの名称を指定します。

【HiRDB/シングルサーバの場合】

HiRDB/シングルサーバの場合は指定しないでください。シングルサーバの名称を指定しても無視されます。

【HiRDB/パラレルサーバの場合】

ソート用ワークファイルを作成するサーバの名称を指定します。

(b)　ディレクトリ名

　　　〜＜パス名＞

ソート用ワークファイルを作成するディレクトリの名称を，絶対パス名で指定します。

8.10.9　lobunld文（LOBデータのアンロードファイルの情報の記述）

LOB列がある表を再編成する場合，LOBデータのアンロードファイルの情報を指定します。

＜適用基準＞

LOB列がある表を再編成する場合に指定します。

ただし，次のどちらかに該当する場合は指定しないでください。

-jオプションを指定している場合

LOB列構成基表だけを再編成する場合

＜規則＞

lobunld文は，次の数だけ指定できます。

【HiRDB/シングルサーバの場合】

再編成の単位（表，又はRDエリア）に関係なく，lobunld文は一つだけ指定してください。

【HiRDB/パラレルサーバの場合】

横分割表の場合でLOB列だけを再編成するとき，lobunld文はLOB列を格納したRDエリアがあるサーバ数分指定してください。RDエリア単位の再編成，又は分割していない表の再編成の場合には，lobunld文は一つだけ指定してください。

また，-gオプションを指定して一つのLOBデータのアンロードファイルにアンロードする場合は，lobunld文は一つだけ指定してください。

同期点を指定した再編成又はリロードの場合，lobunld文は指定できません。

(1)　形式

　lobunld 〔｛サーバ名：｜ホスト名：｝〕

　　　　　　LOBデータのアンロードファイル名

　　　　　　　　〔，LOBデータのアンロードファイル名〕

　　　　　〔EasyMT情報｜HiRDBファイル情報〕

(2)　説明

(a)　サーバ名

　　　〜＜識別子＞((1〜8))

LOBデータのアンロードファイルを作成するサーバの名称を指定します。

【HiRDB/シングルサーバの場合】

HiRDB/シングルサーバの場合は指定しないでください。

【HiRDB/パラレルサーバの場合】

横分割表の場合で複数のLOB列を再編成するとき，LOBデータのアンロードファイルを作成するサーバの名称を指定します。横分割表のRDエリア単位の再編成，又は横分割していない表の場合には，指定する必要はありません。

-gオプションを指定して一つのLOBデータのアンロードファイルにアンロードする場合には，LOBデータのアンロードファイルを作成するサーバの名称を指定してください。

(b)　ホスト名

　　　〜＜識別子＞((1〜32))

LOBデータのアンロードファイルを作成するホストの名称を指定します。

【HiRDB/シングルサーバの場合】

LOBデータのアンロードファイルをユティリティ専用ユニットに作成する場合は，そのホスト名を指定してください。省略した場合，LOBデータのアンロードファイルはシングルサーバのあるユニットに作成します。

【HiRDB/パラレルサーバの場合】

HiRDB/パラレルサーバの場合は指定しないでください。

(c)　LOBデータのアンロードファイル名

LOBデータのアンロードファイルの名称を絶対パス名で指定します。

LOBデータのアンロードファイルとして，次に示すファイルを使用できます。

通常ファイル

OSが提供するファイルシステム領域に作成できます。この場合，事前の準備は不要です。

キャラクタ型スペシャルファイル

pdfmkfsコマンドで作成したユティリティ用のHiRDBファイルシステム領域に作成してください。

-fオプションでLOBデータのアンロードファイル種別を指定した場合は，次のように指定してください。

LOBデータのアンロードファイルがEasyMTの場合：

LOBデータのアンロードファイルは二つまで指定できます。

また，MTguideを使用する場合は，MTguideが管理する装置記号名，又は装置グループ名も指定できます。

LOBデータのアンロードファイルがHiRDBファイルの場合：

LOBデータのアンロードファイル名は，167文字以内で指定してください。

HiRDBファイルを使用するには，あらかじめpdfmkfsコマンドで，HiRDBファイルシステム領域を作成しておく必要があります。この場合，-kオプションにはUTLを指定してください。

pdfmkfsコマンドで，-kオプションにUTL以外を指定して作成したHiRDBファイルシステム領域上に作成したHiRDBファイルを指定した場合は，エラーとなります。

指定したLOBデータのアンロードファイル名がHiRDBファイルシステム領域上にない場合，HiRDBが新規にLOBデータのアンロードファイルを作成します。既存のLOBデータのアンロードファイル名を指定した場合は，上書きされます。

＜LOBデータのアンロードファイルに関する注意事項＞

表のデータが一つのLOBデータのアンロードファイルに入りきらない場合は，複数のファイルを指定できます。

LOBデータのアンロードファイルを複数指定する場合，次のことに注意してください。

EasyMTを使用しないで直接テープ装置は使用できません。

また，次のようにファイル属性は同一である必要があります。

EasyMTの場合

すべてEMTVOL_EL(EasyMTラベル付きボリューム)として初期化しておく必要があります。

HiRDBファイルの場合

通常ファイルとキャラクタ型スペシャルファイルの混在はできません。必ずどちらかに統一してください。

(d)　EasyMT情報

〔file=ファイル名〕

〔｛，vol=ボリューム名｜，vol=（ボリューム名〔，ボリューム名〕…）｝〕

〔，bufno=バッファ面数〕

〔，fileno=｛ファイル順序番号｜ADD｝〕

LOBデータのアンロードファイルがEasyMTの場合に指定します。

ファイル名，及びボリューム名を指定すると，ファイル，及びボリュームの名称が，ここで指定した名称と一致しているかどうかチェックできます。ファイル名及びボリューム名のチェックをしない場合には，省略できます。

ファイル名を省略する場合は，先頭になった項目のコンマ（，）は指定しないでください。

file=ファイル名　〜＜英数字＞((1〜17))

ファイルの名称を指定します。

｛，vol=ボリューム名｜，vol=（ボリューム名〔，ボリューム名〕…）｝

　　　〜＜英数字＞((1〜6))

ファイルのボリューム名を指定します。ボリューム名は1行で記述できる範囲で255個まで指定できます。

bufno=バッファ面数　〜＜符号なし整数＞((1〜256))《10》

EasyMTで使用するバッファの面数を指定します。

fileno=｛ファイル順序番号｜ADD｝

MT内のLOBデータのアンロードファイルの作成位置を指定します。

ファイル順序番号　〜＜符号なし整数＞((1〜199))《1》

-k rorg，又は-k unldの場合は，指定した位置にファイルを作成します。このとき，指定した位置以降のファイルは削除されます。

-k reldの場合は，指定した位置のファイルを読み込みます（filenoを省略した場合，次のファイルを読み込みます）。

ADD

-k rorg，又は-k unldの場合は，ボリュームの最後にファイルを作成します。

-k reldの場合，ADDは指定できません。

(e)　HiRDBファイル情報

〔init=｛初期割り当て領域サイズ

　　　　｜（初期割り当て領域サイズ〔，初期割り当て領域サイズ〕…）｝〕

〔，incr=｛増分割り当て領域サイズ

　　　　　｜（増分割り当て領域サイズ〔，増分割り当て領域サイズ〕…）｝〕

LOBデータのアンロードファイルがHiRDBファイルの場合に指定します。HiRDBファイル情報は，必ず１行で指定してください。

initを省略した場合，incrの前のコンマ（，）は指定しないでください。

init=｛初期割り当て領域サイズ｜（初期割り当て領域サイズ〔，初期割り当て領域サイズ〕…）｝

　　　〜＜符号なし整数＞((1〜1048574))《100》

HiRDBファイルへの書き込み時に割り当てる容量をメガバイト単位で指定します。

＜見積もり式＞

初期割り当て領域サイズの計算方法については，マニュアル「HiRDB システム導入・設計ガイド」のデータベース再編成ユティリティ（pdrorg）実行時のファイルの容量を参照してください。そこでLOBデータのアンロードファイルのバイト数を求め，次の式で計算します。

初期割り当て領域サイズ
＝↑（LOBデータのアンロードファイルのバイト数＋1024）
　÷（1024×1024）↑
　（単位：メガバイト）

＜規則＞

初期割り当てサイズは，pdfmkfsコマンドでHiRDBファイルシステム領域作成時，-nオプションで指定した値より小さくなければなりません（システムが管理用に使用する領域が必要なため）。

pdfmkfsコマンドに-eオプションを指定しなかったり，-eオプションに0を指定したりすると，増分割り当てができないので，必ず指定してください。

どの程度の大きさの初期割り当てサイズが使用できるかは，pdfstatfsコマンドで確認してください。

割り当て領域サイズの指定は，lobunld文で指定したファイル名の数分指定します。両者に不一致があった場合，次のように解釈します。

関係

動作

ファイル数＜指定

ファイル数分，指定を有効にして後は無視します。

ファイル数＝指定

ファイルごとに指定を有効にします。

ファイル数＞指定

指定の最後の領域サイズを足りない指定分繰り返します。

incr=｛増分割り当て領域サイズ｜（増分割り当て領域サイズ〔，増分割り当て領域サイズ〕…）｝

　　　〜＜符号なし整数＞((1〜1048574))《10》

HiRDBファイル書き込み時に，初期割り当て領域サイズで容量が不足した場合，拡張する割り当て領域の大きさを指定します。

次の場合にはHiRDBファイルの拡張ができません。

該当するHiRDBファイルシステム領域の増分回数指定を超えて拡張しようとしたとき

該当するHiRDBファイルが，個々のHiRDBファイルの増分回数の上限(23回固定)を超えて拡張しようとしたとき

したがって，実際の容量が見積もり容量を超える場合は，上記2項目の制限に掛からないように，増分割り当てサイズを指定する必要があります。増分割り当てサイズの制限を次の図に示します。図中のnの値は，上記2項目の制限を超えないようにしてください。

図8‒23　増分割り当てサイズの制限（lobunld文）

HiRDBファイルシステム領域の増分回数は，新規にHiRDBファイルシステムを作成する場合，pdfmkfsコマンドの-eオプション指定で設定します。また，既存のHiRDBファイルシステム領域の状態を見る場合，pdfstatfsコマンドの出力結果の「available expand count」の値によって参照できます。

8.10.10　unlduoc文（UOC格納ライブラリの情報の記述）

UOCを利用して再編成をする場合，UOCの情報を指定します。

＜適用基準＞

UOCを利用して再編成する場合に指定します。

＜規則＞

unlduoc文は一つだけ指定できます。

(1)　形式

　unlduoc entry=関数名

　　　　 〔bloblimit=メモリ領域確保サイズ〕

　　　　 〔fixrow=｛y｜n｝〕

(2)　説明

(a)　entry=関数名

ライブラリ中の呼び出す関数名を指定します。

(b)　bloblimit=メモリ領域確保サイズ

　　　〜＜符号なし整数＞((1〜2097152))

UOCに渡すデータを保持するメモリ領域の大きさの上限値を，キロバイト単位で指定します。次の条件に該当する場合，UOCに渡すデータをすべてメモリ領域に保持します。

表に抽象データ型列があり，unld_func文に対応するコンストラクタパラメタ逆生成関数を指定する場合，指定した関数の返却値が長大データ型のとき

表に長大データ型の列がある場合

上記の条件の列が複数ある場合，該当する列すべてに対してこのオペランドの指定値が有効となります。

＜適用基準＞

次の条件のどれかを満たす場合に指定してください。

表に抽象データ型列があり，unld_func文に対応するコンストラクタパラメタ逆生成関数を指定する場合，指定した関数の返却値が長大データ型のとき

列の定義長でデータのメモリ領域を確保すると，メモリ不足が予測される場合

列の定義長よりも実データが明らかに小さい場合

＜規則＞

長大データ型の列の場合，指定したメモリ領域確保サイズよりも列の定義長が小さいとき，その列に対しては列の定義長がメモリ領域確保サイズとなります。

指定した大きさを超えるデータがある場合（指定値よりも列の定義長が小さい場合は，列の定義長を超えるデータがあるとき），エラーとなります。

(c)　fixrow=｛y｜n｝

対象となる表がFIX表の場合，pdrorgがUOCに渡すデータの格納方法を指定します。非FIX表の場合にyを指定するとエラーになります。

y：

列の定義順にデータを詰めて（連続して）渡します。pdrorgが渡したデータを一括して出力する場合は，yを指定するとよいです（アラインメントの保証が必要なデータ型は直接参照できません）。

n：

データ型のバウンダリに従い，データの開始アドレスを補正して渡します。データを直接参照する場合は，nを指定するとよいです（アラインメントを保証する必要があるデータ型の開始アドレスが補正されているため，データを別領域にいったんコピーしなくても直接参照できます）。

8.10.11　tblname文（別表への表データ再登録の情報の記述）

アンロードした表とは別の表に，表データをリロードする場合に指定します。

＜適用基準＞

同一システムの別表，又は別システムの表へデータを移行する場合に指定します。

＜規則＞

tblname文は，次のような場合には指定できません。

-jオプション指定なしで，リロードする表，又はアンロードした表に，LOB列，又はLOB属性を含む抽象データ型の列がある場合

リロードする表とアンロードした表の表定義が異なっている場合

tblname文を指定する場合はunload文が一つ以上なければなりません。また，tblname文は二つ以上指定できません。

(1)　形式

　tblname ｛〔認可識別子．〕表識別子｜認可識別子｝

(2)　説明

(a)　〔認可識別子.〕表識別子

アンロードした表の〔認可識別子.〕表識別子を指定します。

〔認可識別子.〕表識別子の指定方法については，-tオプションの説明を参照してください。

＜規則＞

認可識別子を省略した場合，-tオプションで指定した認可識別子，又はHiRDBに接続した認可識別子が仮定されます。したがって，アンロードした表の認可識別子とリロードする表の認可識別子が異なる場合は，必ず認可識別子を指定してください。

抽象データ型がある表へリロードする場合，プラグインによってはアンロード時にコンストラクタパラメタ逆生成関数を指定する必要があるものもあります。

〔認可識別子.〕表識別子を指定した場合，-tオプションには〔認可識別子.〕allを指定できません。

(b)　認可識別子

スキーマ単位に別表へリロードする場合に，その認可識別子を指定します。

この場合，-tオプションには〔認可識別子.〕allを指定する必要があります。

8.10.12　array文（繰返し列の行データ出力形式の記述）

繰返し列がある表をアンロードする場合に，繰返し列の行データ出力形式を指定します。

＜適用基準＞

繰返し列がある表をアンロードする場合で，かつ-Wオプションを指定してDAT形式，又は拡張DAT形式で出力するときに指定できます。

＜規則＞

DAT形式，及び拡張DAT形式以外で指定しても無視します。

繰返し列がある表をアンロードする場合に，この制御文を省略したときは，行データ出力形式はffとなります。

(1)　形式

　array 〔elmtype=行データ出力形式〕

(2)　説明

(a)　〔elmtype=行データ出力形式〕

　　　〜《ff》

ff，又はvvを指定します。

出力するアンロードデータを，データベース作成ユティリティの入力データファイルとする場合は，必ず行データ形式にffを指定するか，又は省略してください。

ff

表定義時に該当する列に指定した最大要素数分のデータをセパレータ文字で区切って出力します。

データの格納されていない要素，ナル値が格納されている要素はセパレータ文字を続けて出力します。列値がナル値の場合は，最大要素数分セパレータ文字を出力します。

なお，出力されたデータをデータベース作成ユティリティ（pdload）の入力データファイルとする場合は，適切なナル値オプションを指定してナル値の扱いを指定してください。

ffを指定した場合のデータ出力形式については，「データベース作成ユティリティの入力用ファイルの形式」を参照してください。

vv

実際にデータが格納されている要素数分セパレータ文字でデータを区切って出力し，配列データの先頭に出力した要素数を出力します。

列値がナル値の場合は，要素数に０を出力します。

vvを指定した場合のデータ出力形式については，「データベース作成ユティリティの入力用ファイルの形式」を参照してください。

8.10.13　unld_func文（コンストラクタパラメタ逆生成関数の情報の記述）

アンロード時に抽象データ型のデータ値を逆生成する，コンストラクタパラメタ逆生成関数の情報を指定します。

＜適用基準＞

アンロード機能を持つ，プラグインが提供している抽象データ型がある表を再編成する場合に指定します。

＜規則＞

unld_func文は，表の列に定義されている抽象データ型の数分指定できます。

-k rorgの場合にunld_func文を指定するときは，同時にreld_func文も指定してください。

(1)　形式

　unld_func type=〔認可識別子.〕抽象データ型名,

　　　　　　func=関数名（引数の型〔,引数の型…〕）

　　　　　　〔,func=関数名（引数の型〔,引数の型…〕）…〕

(2)　説明

(a)　type=〔認可識別子.〕抽象データ型名

抽象データ型の認可識別子，及び抽象データ型名を指定します。

＜規則＞

認可識別子を省略した場合，抽象データ型を定義したユーザの認可識別子（通常はMASTER）が仮定されます。

認可識別子，及び抽象データ型の名称に小文字，空白を含む場合，引用符（”）で囲んでください。

(b)　func=関数名（引数の型〔,引数の型…〕）

コンストラクタパラメタ逆生成関数の名称，引数の型を指定します。名称，引数の型については，各プラグインのマニュアルを参照してください。

関数名

コンストラクタパラメタ逆生成関数の名称を指定します。

引数の型

コンストラクタパラメタ逆生成関数の引数のデータ型を指定します。引数のデータ型は，次の形式で指定してください。

記述方法

備　考

integer

INT32

smallint

INT16

char

nchar

mchar

CHAR8

varchar

nvarchar

mvarchar

p_pdb_varchar_t

float

DOUBLE64

smallflt

REAL64

blob

BLOB

抽象データ型名

なし

8.10.14　reld_func文（コンストラクタ関数の情報の記述）

リロード時に抽象データ型の値を生成する，コンストラクタ関数の情報を指定します。

＜適用基準＞

アンロード機能を持つ，プラグインが提供している抽象データ型がある表を再編成する場合に指定します。

＜規則＞

reld_func文は，表の列に定義されている抽象データ型の数分指定できます。

-k rorgの場合にreld_func文を指定するときは，同時にunld_func文も指定してください。

(1)　形式

　reld_func type=〔認可識別子.〕抽象データ型名,

　　　　　　func=関数名（引数の型〔,引数の型…〕）

(2)　説明

(a)　type=〔認可識別子.〕抽象データ型名

抽象データ型の認可識別子，及び抽象データ型名を指定します。

＜規則＞

認可識別子を省略した場合，抽象データ型を定義したユーザの認可識別子（通常はMASTER）が仮定されます。

認可識別子，及び抽象データ型の名称に小文字，空白を含む場合，引用符（”）で囲んでください。

(b)　func=関数名（引数の型〔,引数の型…〕）

コンストラクタ関数の名称，引数の型を指定します。名称，引数の型については，各プラグインのマニュアルを参照してください。

関数名

コンストラクタ関数の名称を指定します。

引数の型

コンストラクタ関数の引数のデータ型を指定します。

引数のデータ型の形式については，「unld_func文（コンストラクタパラメタ逆生成関数の情報の記述）」の引数の型を参照してください。ただし，抽象データ型名は指定できません。

8.10.15　constraint文（検査保留状態に関する記述）

検査保留状態に関する指定をします。

検査制約又は参照制約を定義した表の再編成では，UOCを使用して被参照表中の参照表が参照している行を削除した場合を除いて，制約の整合性が保証できるため，検査保留状態は変更しません。UOCを使用して被参照表を再編成する場合だけ検査保留状態を設定します。

また，リロードでは，古いアンロードデータファイルを使用してリロードしたり，別表へのリロードをしたりする場合，制約の整合性が保証できなくなる可能性があります。そのため，該当する表や，その表に関係する参照表を検査保留状態に設定します。

なお，ユーザ自身が制御文を指定して，検査保留状態を変更（設定）しないこともできます。検査保留状態については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

＜適用基準＞

整合性を保証できる場合は，constraint文を指定することをお勧めします（表の検査保留状態を変更（設定）しない運用）。ただし，次に示す条件に該当する場合は，制約の整合性がなくなる可能性があるため，constraint文を省略することをお勧めします。

古いアンロードデータファイルを使用したリロード

参照表，又は被参照表のアンロード後に，アンロードした表のデータが更新された場合，表更新前のアンロードデータファイルを使用してリロードすると，更新前の表データに置き換わるため，被参照表及び参照表間のデータの整合性を保証できないことがあります。

別表又は制約定義を変更した表へのリロード

アンロードした表とは別の表へリロードする場合，pdrorgはデータの整合性チェックをしないため，制約の整合性が保証できないデータをリロードすることがあります。

UOCで行を削除する再編成

被参照表の再編成時にUOCを使用する場合，UOCを使用して行データを削除すると，整合性がなくなる可能性があります。

＜規則＞

constraint文は，再編成（-k rorg）又はリロード（-k reld）で，かつシステム定義のpd_check_pendingオペランドの値がUSEの場合に指定できます。

システム定義のpd_check_pendingオペランドの値がNOUSEの場合，又はほかの機能（アンロード（-k unld）など）の場合は，この制御文の指定は無視され，表の検査保留状態を変更しません。

(1)　形式

　constraint 〔pending=no〕

　　　　　 〔ref_pending=no〕

(2)　説明

(a)　pending=no

参照表又は検査制約を定義した表に対して，再編成又はリロードをする場合，その表の検査保留状態を変更（設定）しないときに指定します。このオペランドを省略した場合の仮定値は，「検査保留状態の設定範囲」を参照してください。

(b)　ref_pending=no

被参照表に対して再編成又はリロードをする場合，その表に関係する参照表の検査保留状態を変更（設定）しないときに指定します。このオペランドを省略した場合の仮定値は，「検査保留状態の設定範囲」を参照してください。

(3)　注意事項

被参照表に対して再編成又はリロードをする場合，その表に関係する参照表を検査保留状態に設定するときの注意事項については，「コマンド実行時のRDエリアの状態」を参照してください。

インナレプリカ機能使用時に被参照表に対して再編成又はリロードをする場合，その表に関係する参照表を検査保留状態に設定するときに，参照表を格納するレプリカRDエリアが-qオプションに指定した世代にないと，カレントRDエリアが検査保留状態となります。

検査保留状態を設定する場合，リロードした件数が0件で，かつ制約の整合性が保証できるときでも，表を検査保留状態に設定します。

検査保留状態を設定する再編成実行時にエラーが発生し，再編成を再実行した場合は，再度，表を検査保留状態に設定します。

検査保留状態を設定する場合，関連する資源に対して排他が掛かります。また，検査保留状態の設定が完了したとき，掛かっていた排他が解除されます。排他制御については，「コマンド実行時の排他制御モード」を参照してください。

(4)　検査保留状態の設定範囲

pdrorg実行条件と検査保留状態の設定有無の関係を次の表に示します。

表8‒24　pdrorg実行条件と検査保留状態の設定有無

実行条件

検査保留状態設定有無

システム定義のpd_check_pendingオペランドの値

実行機能

constraint文のオペランド指定

UOC使用

対象表

被参照表

参照表

検査制約が定義された表

USE

再編成

pending=no

あり

あり

×

×

×

なし

×

×

×

なし

あり

×

×

×

なし

×

×

×

ref_pending=no

あり

あり

×

×

×

なし

×

×

×

なし

あり

○

×

×

なし

×

×

×

リロード

pending=no

あり

−

×

×

×

なし

−

×

○

○

ref_pending=no

あり

−

×

×

×

なし

−

○

×

×

上記以外

−

−

−

×

×

×

USE以外

−

−

−

−

×

×

×

(凡例)

○：検査保留状態を設定します。

×：検査保留状態を変更しません（現在の状態を維持します）。

−：該当しません。

再編成又はリロード実行時の，検査制約の検査保留状態の設定範囲と参照制約の検査保留状態の設定範囲を次の表に示します。

表8‒25　検査制約の検査保留状態の設定範囲

実行単位

検査制約の検査保留状態の設定範囲

ディクショナリ表

RDエリア中の表情報

SQL_TABLES表CHECK_PEND2列

SQL_CHECKS表CHECK_PEND2列

検査制約の状態

表

設定

設定

◎※

RDエリア

設定

設定

○※

サーバ

設定

設定

●※

（凡例）

設定：検査保留状態を設定します。

◎：表を格納するすべてのRDエリア中の表情報（検査制約の状態）を設定します。

○：-rオプションで指定したRDエリア中の表情報（検査制約の状態）を設定します。

●：指定したすべてのunload文中のバックエンドサーバ内の表を格納する，すべてのRDエリア中の表情報（検査制約の状態）を設定します。

注※

インナレプリカ機能を使用している場合，次に示す世代が検査保留状態の設定対象になります。

-qオプションを指定している場合は，-qオプションで指定した世代が設定対象となります。

-qオプションを指定していない場合は，カレントRDエリアの世代が設定対象になります。

表8‒26　参照制約の検査保留状態の設定範囲

実行単位

対象表

被参照表

参照表

被参照表に関連する参照表の検査保留状態

参照表の検査保留状態

ディクショナリ表

RDエリア中の表情報

ディクショナリ表

RDエリア中の表情報

SQL_TABLES表CHECK_PEND列

SQL_REFERENTIAL_CONSTRAINTS表CHECK_PEND列

参照制約の状態

SQL_TABLES表CHECK_PEND列

SQL_REFERENTIAL_CONSTRAINTS表CHECK_PEND列

参照制約の状態

表

設定

設定

◎※

設定

設定

◎※

RDエリア

設定

設定

◎※

設定

設定

○※

スキーマ

設定

設定

◎※

設定

設定

◎※

サーバ

設定

設定

◎※

設定

設定

●※

（凡例）

設定：検査保留状態を設定します。

◎：表を格納するすべてのRDエリア中の表情報（検査制約の状態）を設定します。

○：-rオプションで指定したRDエリア中の表情報（検査制約の状態）を設定します。

●：指定したすべてのunload文内のバックエンドサーバ内の表を格納する，すべてのRDエリア中の表情報（検査制約の状態）を設定します。

注

UOCを使用する場合は検査保留状態を設定します。

注※

インナレプリカ機能を使用している場合，次に示す世代が検査保留状態の設定対象になります。

-qオプションを指定している場合は，-qオプションで指定した世代が設定対象となります。ただし，被参照表に対して再編成又はリロードをする場合，関係する参照表を格納するレプリカRDエリアが，-qオプションに指定した世代にないときは，カレントRDエリアの世代が設定対象となります。

-qオプションを指定していない場合は，カレントRDエリアの世代が設定対象になります。

(5)　検査保留状態の設定可否の例

次に示す表T1〜T5について，constraint文のpending及びref_pendingオペランドを指定した場合の，表の検査保留状態の設定可否について説明します。

（表の説明）

T1：主キーを持つ表（T2に対する被参照表）

T2：T1の主キーを参照する外部キーを持ち，さらに自身が主キーを持つ表（T1への参照表であり，かつT3に対する被参照表である表）

T3：T2の主キーを参照する外部キーを持つ表（T2への参照表）

T4：検査制約を定義した表

T5：制約定義がない表

表T1〜T5に対してリロードを実行したときの表の検査保留状態を次の表に示します。

表8‒27　リロードを実行したときの表の状態

リロード対象表と制約定義有無

constraint文のオペランドの指定有無

表の検査保留状態

表名

参照制約

検査制約

pending

ref_pending

T1

T2

T3

T4

T5

被参照表

参照表

T1

○

×

×

なし

なし

−

P

−

−

−

あり

−

N

−

−

−

あり

なし

−

P

−

−

−

あり

−

N

−

−

−

T2

○

○

×

なし

なし

−

P

P

−

−

あり

−

P

N

−

−

あり

なし

−

N

P

−

−

あり

−

N

N

−

−

T3

×

○

×

なし

なし

−

−

P

−

−

あり

−

−

P

−

−

あり

なし

−

−

N

−

−

あり

−

−

N

−

−

T4

×

×

○

なし

なし

−

−

−

P

−

あり

−

−

−

P

−

あり

なし

−

−

−

N

−

あり

−

−

−

N

−

T5

×

×

×

なし

なし

−

−

−

−

−

あり

−

−

−

−

−

あり

なし

−

−

−

−

−

あり

−

−

−

−

−

（凡例）

P：検査保留状態を設定します。

N：検査保留状態を変更しません（現在の状態を維持します）。

−：該当しません（pending及びref_pendingオペランドの指定を無視します）。

○：定義あり。

×：定義なし。

(6)　検査保留状態を設定するタイミング

再編成又はリロードの対象となる表や，該当する表に関係する参照表には，再編成又はリロード処理を実行する前に，検査保留状態を設定します。なお，表の検査保留状態を設定した後，エラーの発生などによってpdrorgがロールバックした場合でも，表の検査保留状態の設定は完了（コミットが完了）しているため，表は検査保留状態となります。

スキーマ単位の場合は，再編成又はリロード処理を実行する前に，対象となるすべての表を一つずつ検査保留状態に設定します。そのため，表の検査保留状態の設定処理がエラーとなった場合，pdrorgはエラー終了するため，エラーになった表以前に処理した表は検査保留状態になりますが，エラーになった表より後の表は検査保留状態に変更されません。

8.10.16　option文（データ処理に関する情報の記述）

データ処理に関するオプション機能を使用する場合に指定します。

＜適用基準＞

次のどれかのオプション機能を使用したい場合に指定します。

空白変換レベルの指定（spacelvlオペランド）

リロード時の，空き領域比率の変更（tblfreeオペランド）

インデクス作成時の，空き領域比率の変更（idxfreeオペランド）

同期点指定の再編成，又は同期点指定のリロード（jobオペランド）

pdrorgの実行時間の監視（exectimeオペランド）

表の再編成の再実行時に，表のステータスを強制的に通常状態に戻す指定（tblstatusオペランド）

アンロードする表の排他制御モードの変更（unldenqオペランド）

UTF-8の列データを，UTF-16のアンロードデータファイルでアンロードする場合の指定（charsetオペランド）

(1)　形式

　option 〔spacelvl=｛0｜1｜3｝〕
　　　　 〔tblfree=｛未使用領域比率｜（〔未使用領域比率〕，セグメント内空きページ比率）｝〕
　　　　 〔idxfree=未使用領域比率〕
　　　　 〔job=｛ジョブ名〔，同期点行数〕〔，CLR〕｜，，CLR｝〕
　　　　 〔exectime=pdrorgの実行監視時間〕
　　　　 〔tblstatus=clear〕
　　　　 〔unldenq=｛tblenq｜rdenq｜nowait｝〕
　　　　 〔charset=｛utf-16be｜utf-16le｝〕

(2)　説明

(a)　spacelvl=｛0｜1｜3｝

再編成するときに，データの空白変換をするかどうかを指定します。0，1，及び3のことを空白変換レベルといいます。

0：

データの空白変換をしません。

1：

リロード時にアンロードデータの空白変換をします。

＜適用基準＞

次のような場合に指定します。

既存データの空白文字を統一したい場合

別システムに表データを移行する場合に，移行先システムで空白文字を統一したいとき

3：

1と同様の空白変換をして，更に-Wオプション指定のアンロード時にアンロードデータの空白変換をします。

＜適用基準＞

-Wオプション指定で出力したアンロードデータをUAPなどで使用する場合に，そのアンロードデータの空白文字を統一したいとき

＜注意事項＞

各指定値による空白変換の有無を次に示します。

pdrorgの処理内容

オプション

spacelvlの指定値

-c

-k

-W

0

1

3

再編成

user

rorg

−

×

○※1

○※1

アンロード

user

unld

あり

×

×

○※2

なし

×

×

×

リロード

user

reld

−

×

○※1

○※1

ディクショナリ表の再編成

dic

rorg

−

×

×

×

（凡例）

○：空白変換をします。

×：空白変換をしません。

−：該当しません。

注※1

処理対象の表の列が各国文字列型，又は混在文字列型の場合，リロード時に次のようにアンロードデータの空白変換をします。

各国文字列型の列の場合：

アンロードデータ中の連続する半角空白2バイトを，全角空白1文字に変換します。

ただし，先頭から２バイト単位で変換します。

混在文字列型の列の場合：

アンロードデータ中の全角空白1文字を，半角空白2バイトに変換します。

文字コードがutf-8の場合，全角空白1文字（3バイト）を半角空白2バイトに変換します。MCHARの場合は，データ長が短くなった分，定義長まで後ろから半角空白が埋められます。MVARCHARの場合は，データ長が短くなったままとなります。

注※2

処理対象の表の列が各国文字列型の場合，アンロード時にアンロードデータ中の全角空白1文字を，半角空白2バイトに変換します。

抽象データ型がある表の場合，抽象データ型のリロード方式によって，次のように空白変換をします。

抽象データ型のリロード方式

コンストラクタ関数の引数のデータ型

option文のspacelvlオペランドの指定値

省略，又は0

1，又は3

プラグインのアンロード機能を使用してアンロードしたアンロードデータファイルからリロードする

−

×

×

プラグインのコンストラクタパラメタ逆生成関数を使用したアンロードデータファイルから，コンストラクタ関数を使用してリロードする

NCHAR，NVARCHAR，MCHAR，MVARCHAR

×

○※

上記以外

×

×

上記の機能を使用しないでリロードする

−

×

×

（凡例）

○：空白変換をします。

×：空白変換をしません。

−：該当しません。

注※

コンストラクタ関数の引数のデータ型（対応する抽象データ型のreld_func文のfuncオペランドで指定した引数の型）に対して，空白変換をします。

クラスタキー，又はインデクスキーの構成列に各国文字列型を含む場合に，キー順アンロードをするときは，spacelvlの指定に関係なくデータベースに格納されているデータの値の順にアンロードします。そのため，-Wオプション指定のアンロードで空白変換をした場合，出力後のデータはキー順にならないことがあります。この場合，データロード後に，再度，空白変換をしない再編成をすれば，キー順に格納されます。

また，サーバ間の横分割表の場合，空白変換の有無に関係なくクラスタキー，又はインデクスキー順のアンロードと同様に，必ずキー順にアンロードされるとは限らないので，キー順にデータを格納したいときは，アンロード後にユーザがソートをする必要があります。

空白文字コードが統一されていないデータベースに対して，option文にspacelvl=1，又は3を指定して再編成する場合，次のような現象が発生します。

キー順アンロードしたデータが，キー順にならないことがあります。この場合，再度，空白変換をしない再編成をすれば，キー順に格納されます。

空白変換対象の列が，ユニークキーインデクス又は主キーインデクスの構成列の場合，重複キーが発生することがあります。この場合，ユニークキー又は主キーでなければならないか検討し，必要ならば，空白変換をする前にデータを修正（キー値の修正，又は不要な行の削除など）してください。

空白変換対象の列が分割キーの構成列の場合，分割条件の振り分けで格納RDエリアが変わることがあります。この場合，データの格納位置が変わっても処理ができるように，-gオプションを指定します。また，LOB列を含む場合は，-gオプション，及び-jオプションを指定します。

(b)　tblfree=｛未使用領域比率｜（〔未使用領域比率〕，セグメント内空きページ比率）｝

リロードのときに，CREATE TABLEで指定した空き領域比率（PCTFREEの指定値）を変更してデータを格納したい場合に指定します。

スキーマ単位の再編成の場合，指定した値がすべての表に対して適用されます。

＜適用基準＞

表定義時に空き領域比率に0以外を指定した表の場合，この表の運用中に空き領域がなくなったとします。

この場合，満杯状態になったRDエリアの表に対してpdrorgを実行したときは，定義時の空き領域比率が適用されて，pdrorg実行時にRDエリアの容量不足が発生することがあります。その場合に，暫定的にRDエリアを拡張しないで，pdrorgの処理を完了できます。

未使用領域比率

0〜99の値を指定できます。

セグメント内空きページ比率

0〜50の値を指定できます。

(c)　idxfree=未使用領域比率

インデクスを作成する場合に，CREATE INDEXで指定した空き領域比率（PCTFREEの指定値）を変更してインデクスを作成したいときに指定します。指定できる値は，0〜99です。

スキーマ単位の再編成の場合，指定した値がすべての表に対して適用されます。

＜適用基準＞

インデクス定義時に空き領域比率に0以外を指定したインデクスの場合，この表の運用中に空き領域がなくなったとします。この場合，満杯状態になったRDエリアのインデクスに対してpdrorgを実行したときは，定義時の空き領域比率が適用されて，pdrorg実行時にRDエリアの容量不足が発生することがあります。その場合に，暫定的にRDエリアを拡張しないで，pdrorgの処理を完了できます。

(d)　job=｛ジョブ名〔，同期点行数〕〔，CLR〕｜，，CLR｝

同期点指定の再編成，又は同期点指定のリロードをする場合に指定します。

同期点指定の再編成，及び同期点指定のリロードとは，任意の件数のデータを格納するごとに，トランザクションを決着する再編成及びリロードのことをいいます。ログ取得方式がログ取得モード（-l a）又は更新前ログ取得モード（-l p）の場合，データの格納途中で障害が発生したときでも，データを最初から格納し直す必要がなく，短時間でデータベースを回復できます。この場合の対処方法については，マニュアル「HiRDB システム運用ガイド」の「同期点指定の再編成実行中にユティリティが異常終了したときの対処方法」を参照してください。

ジョブ名　〜〈英数字〉((1〜3))

同期点指定の再編成，又は同期点指定のリロードを実行する場合のジョブ名を指定します。

ここで指定したジョブ名は，再編成又はリロード実行中にユティリティが異常終了した場合，後から再実行するときの名称となります。また，このジョブ名はほかのpdrorgのジョブ名と重複すると，再実行時に誤動作する原因になります。したがって，ジョブ名はHiRDBシステムでユニークになる名称を指定してください。

同期点行数　〜((1〜1000))《100》

何万件格納するごとにトランザクションを決着するか，データ件数を指定します。例えば，100を指定すると，100万件ごとに同期点が取得されます。

ここで小さな値を指定した場合，少ない件数でトランザクションが決着するので，異常終了時のロールバック処理は短くなります。しかし，トランザクションの生成，決着や，プロセスの再起動が頻繁に発生するため，オーバヘッドが大きくなります。一方，大きな値を指定した場合，処理性能の劣化は少なくなりますが，障害発生時の回復時間は長くなります。

ジョブ名を指定しないで同期点行数だけを指定した場合，エラーとなります。

CLR

pdrorgの再実行が必要ない場合，又は現在データベース中にある同期点情報をクリアして再度pdrorgを実行する場合に指定します。

ユティリティが異常終了した場合，同期点情報がデータベースに残ります。この情報が残ったままだと，次に実行したユティリティが動作できない場合があります。

CLRを指定した場合，ほかのユーザやユティリティが設定した同期点情報をクリアしてしまうため，注意して使用してください。

データベース中に同期点情報が設定されているかどうかは，データベース状態解析ユティリティ（pddbst）の表単位の状態解析で確認できます。

＜適用基準＞

大量データの再編成，リロードをする場合など，格納時間が長くなるときに有効となります。ただし，同期点処理が実行される分，処理性能は悪くなります。また，データページについては，同期点のたびに新たなページから格納を開始するため，データ格納に必要なページ数が通常の再編成よりも多くなります。そのため，RDエリアの空き容量が少ない場合は，適用しない方がよいです。

＜jobオペランドの指定例＞

100万件単位に同期点指定の再編成，又は同期点指定のリロードをする場合

job=JOB,100　又は　job=JOB

現在設定されている同期点情報をクリアして，新たに100万件単位の同期点指定の再編成，又は同期点指定のリロードをする場合

job=JOB,100,CLR　又は　job=JOB,,CLR

現在設定されている同期点情報をクリアして通常の再編成又はリロードをする場合

job=,,CLR

＜注意事項＞

ディクショナリ表に対しては，同期点指定の再編成はできません。

同期点情報は，ジョブ名で管理されます。例えば，同期点指定の再編成，又は同期点指定のリロードを実行していたpdrorg(A)が異常終了した場合，その表に対して同じジョブ名を指定したpdrorg(B)を実行すると，pdrorg(A)が残した同期点情報を引き継いでpdrorg(B)が動作してしまいます。このため，ジョブ名が重複しないように管理する必要があります。

同期点指定の再編成，又は同期点指定のリロードが異常終了した場合，そのときのジョブ名の同期点指定の再編成，又は同期点指定のリロードを再実行するまでは，その表に対して通常の再編成又はリロードも実行できません。

同期点情報はRDエリア単位に管理されます。このため，横分割した表の場合，次の条件では表全体の同期点情報が不一致となります。

・一部のRDエリアだけ再初期化された場合

・RDエリア単位の同期点指定の再編成，又は同期点指定のリロードでエラーが発生した場合

各RDエリアが管理している同期点情報は，ジョブ名が同じ場合でも行数が不一致の場合は，再実行できません。しかし，同期点情報を保持しているRDエリアと保持していないRDエリアが混在する場合は，保持されている同期点情報で再実行できます。同期点情報のジョブ名が同じで行数が異なる場合の動作を次に示します。

保持している同期点情報（同期点行数）

表単位の同期点指定の再編成，又は同期点指定のリロードをした場合の入力開始行

RDエリア1

RDエリア2

RDエリア3

0

0

0

0件目

0

n

0

n件目

n

0

m

実行できません。

n

m

p

実行できません。

（凡例）

0：同期点情報を保持していない状態

n，m，p：保持している同期点行数

次の条件をすべて満たす場合，同期点指定の再編成，又は同期点指定のリロードはお勧めできません。

・HiRDB/パラレルサーバ

・表を複数のサーバに横分割している

・-gオプションを指定していない

この場合，サーバごとに別々の制御で処理がされます。このため，障害発生時には，サーバごとにアンロード中やリロード中であったり，一部のサーバの処理が終了していることがあります。この状態では，異常終了後にサーバごとに異なる再実行方法をユーザが指示する必要があり，運用が複雑になります。

同期点指定の再編成，又は同期点指定のリロードが異常終了した場合，再実行時のインデクス作成方法（-iオプション）は変更できません。

同期点指定の再編成，又は同期点指定のリロードの実行中に，異常終了する前にリマウント操作をした場合，再実行するときは1巻目からマウントし直して実行してください。

同期点指定の再編成，又は同期点指定のリロードが異常終了してから再実行するまでに，RDエリアの再初期化，及びPURGE TABLE文を実行すると，設定されていた同期点情報が削除されます。

LOB列構成基表に対してだけ同期点指定の再編成，又は同期点指定のリロードをする場合，異常終了後の再実行時にはCLRを指定してください。CLRを指定しない場合，再編成したのにLOB列の検索性能が劣化したりすることがあります。

同期点指定の再編成，又は同期点指定のリロードで制御できるデータ件数の上限は4,294,960,000件です。これ以上のデータ件数の再編成をする場合は，次のどちらかの運用を検討してください。

・RDエリア単位に再編成する。

・-W指定でpdload用入力データファイルを複数個に分けて出力し，複数回pdloadで同期点指定のデータロードをする。

(e)　exectime=pdrorgの実行監視時間

　　　〜＜符号なし整数＞((0〜35791394))

pdrorgの実行時間を監視する場合に，その監視時間を分単位で指定します。0を指定した場合は，実行時間の監視はしません。指定した監視時間内にpdrorgの処理が終了しなかった場合，pdrorg制御プロセスを強制終了し，無応答原因の調査用に障害情報を取得します。

＜pdrorgの実行時間の監視＞

pdrorg実行時，次の2つの処理に対して実行時間を監視できます。

表，インデクスのメンテナンス前準備で，ディクショナリを操作する時間（-Xオプション）

実際に表，インデクスのメンテナンスをする時間（option文のexectimeオペランド）

-Xオプション，及びoption文のexectimeで設定する監視時間の関係については，次の図を参照してください。

図8‒24　pdrorg実行時の監視時間範囲の関係

このオペランドを省略した場合は，次の優先順位でシステム定義の指定値に従います。

pd_utl_exec_time

pd_cmd_exec_time

＜適用基準＞

夜間バッチなどで監視時間を設定しておけば，pdrorg実行中に何らかの障害（通信障害（一時的な障害を含む），ディスク障害など）が発生し，pdrorgが無応答状態になった場合は異常終了するため，早期に異変を検知できて，早期に回復処理に着手できます。

＜指定値の目安＞

このオペランドは無応答障害検知を目的とするもので，長大トランザクション実行時間を監視するものではありません。したがって，指定値は，該当する表の処理時間に余裕をもたせた値にする必要があります。例えば，7，8分程度で終了するpdrorgの実行時間を監視する場合は，exectime=10と指定しないで，exectime=20と指定するようにしてください。なお，データ量が単調に増加する表の場合，適時指定値を見直す必要があります。

(f)　tblstatus=clear

表の再編成の再実行時に，強制的に表のステータスモードを通常状態にする場合に指定します。この場合，表の再編成処理は再開始しません。

＜適用基準＞

データ未完状態となったRDエリア（表）をSQLで参照したい場合など，強制的に表のステータスモードを通常状態に戻すときに指定します。

再編成（-k rorg）実行時，インデクスの一括作成中にユティリティが異常終了した場合に，再編成（-k rorg）を再実行しないでインデクス一括作成（-k ixmk）やインデクス再作成（-k ixrc）でインデクス作成だけを行って表とインデクスの状態を回復したとき，表のステータスモードを通常状態に戻すときに指定します。

＜注意事項＞

このオペランドは，-k rorgの場合にだけ指定できます。そのほかの場合に指定するとエラーになります。

このオペランドを指定して表のステータスを通常状態に戻した後，表の再編成をしても再編成処理は再開始されません。この場合，バックアップから表を回復する必要があります。表を回復しないで表の再編成をすると，アンロードデータファイルの上書き，及びデータ件数不正（データが0件）となります。

(g)　unldenq=｛tblenq｜rdenq｜nowait｝

アンロード時に，他トランザクションに更新を許可するかどうかを指定します（アンロードする表の排他制御モードを変更します）。なお，更新できるのは，アンロード処理でアクセスしていない部分だけです。

tblenq：

他トランザクションに，表に対する参照だけを許可する場合に指定します。この場合，表に共用モード，RDエリアに意図共用モードの排他が掛かります。

rdenq：

他トランザクションに，RDエリアに対する参照だけを許可する場合に指定します。この場合，表に意図共用モード，RDエリアに共用モードの排他が掛かります。

nowait：

他トランザクションに参照，及びアンロード処理対象外のRDエリアの更新を許可する場合に指定します。この場合，RDエリアにだけ意図共用モードの排他が掛かるため，アンロード中の表が更新できてしまいます。更新処理と同時にアンロードして作成したアンロードデータファイルを使用して，データロードやリロードをすると，データの重複や喪失の原因となるため，アンロード対象表（RDエリア）の更新がないことが保証できる場合にだけ使用してください。

＜適用例＞

次のような表，RDエリアの配置構成で，RDエリア1の表T1だけ（網掛け部分だけ）アンロードする場合，オペランドの指定によって他トランザクションの更新実行可否が変わります。

〔説明〕

他トランザクションの更新実行可否を次に示します。

unldenqの指定値

アンロード時の順序

排他制御モード

他トランザクションの実行可否

RDエリア

表

表

（NOWAIT検索時）

表T1

表T2

表

インデクス

RDエリア1

RDエリア2

RDエリア1

RDエリア2

参照

更新

参照

更新

参照

更新

参照

更新

tblenq

キー順

SR

SR

PR

−

○

×

○

×

○

○

○

○

物理順

−

rdenq

キー順

PR

PR

SR

−

○

×

○

○

○

×

○

○

物理順

−

nowait

キー順

SR

SR

−

SR

○

×※

○

○

○

○

○

○

物理順

−

（凡例）

SR：意図共用モードの排他が掛かります。

PR：共用モードの排他が掛かります。

−：排他は掛かりません。

○：実行できます。

×：実行できません。

注※

表T1のRDエリア1のデータを更新しないように，ユーザが制御する必要があります。

(h)　charset=｛utf-16be｜utf-16le｝

UTF-8の列データを，UTF-16のアンロードデータファイルでアンロードする場合，アンロードデータファイルのエンディアンを指定します。このオペランドは次の条件を満たす場合に指定できます。

-Wオプションを指定している。

アンロードデータファイルが，拡張DAT形式又は固定長データ形式のpdload用アンロードファイルである。

utf-16be：エンディアンがビッグエンディアンの場合に指定します。

utf-16le：エンディアンがリトルエンディアンの場合に指定します。

このオペランドを省略した場合，アンロードデータファイルの文字コードをUTF-8にしてアンロードします。

また，このオペランドを指定した場合，UTF-8の列データをUTF-16としてアンロードするため，pdrorgが文字コード変換をします。文字コード変換が発生するデータ型について次に示します。

項番

データ型

文字コード変換とcharsetオペランド指定の関係

指定なし

指定あり

utf-16be

utf-16le

1

CHAR，VARCHAR

文字集合指定なし

×

○

○

2

文字集合EBCDIK

◎

×

×

3

文字集合UTF-16

○

×

◎

4

NCHAR，NVARCHAR

×

×

×

5

MCHAR，MVARCHAR

×

○

○

6

BINARY型

×

×

×

7

BLOB

×

×

×

8

抽象データ型

CHAR，VARCHAR

×

○

○

9

NCHAR，NVARCHAR

×

×

×

10

MCHAR，MVARCHAR

×

○

○

11

BINARY型

×

×

×

12

BLOB

×

×

×

13

上記以外

×

×

×

14

上記以外

×

×

×

（凡例）

○：文字コードを変換します（変換後にデータ長が変わります）。

◎：文字コードを変換します（変換後もデータ長は変わりません）。

×：文字コードを変換しません。

変換前と変換後でデータ長が変わる場合，次のようにpdrorgがデータ長を調整します。

変換前と変換後でデータ長が変わらない場合

拡張DAT形式のpdload用アンロードファイル（固定長文字属性列）のとき

データを左詰めにし，列定義長まで空白文字を埋めてアンロードします。

拡張DAT形式のpdload用アンロードファイル（可変長文字属性列）のとき

変換後のデータをそのままアンロードします。

固定長データ形式のpdload用アンロードファイルのとき

データを左詰めにし，列定義長までパディング文字を埋めてアンロードします。

変換前と変換後でデータ長が変わる場合

拡張DAT形式のpdload用アンロードファイル（固定長文字属性列）のとき

データを左詰めにし，列定義長の2倍まで空白文字を埋めてアンロードします。

拡張DAT形式のpdload用アンロードファイル（可変長文字属性列）のとき

変換後のデータをそのままアンロードします。

固定長データ形式のpdload用アンロードファイルのとき

データを左詰めにし，列定義長の2倍までパディング文字を埋めてアンロードします。

8.10.17　blobtovarchar文（データ変換をする列の記述）

BLOB属性の抽象データ型の列をVARCHAR型に変換してアンロードする場合，そのBLOB属性の抽象データ型の列名を指定します。

＜適用基準＞

BLOB属性の抽象データ型の列をVARCHAR型でアンロードしたい場合に指定します。ただし，コンストラクタパラメタ逆生成関数の戻り値の型がBLOB型の抽象データ型の場合に指定できます。

＜規則＞

blobtovarchar文は一つだけ指定できます。

blobtovarchar文は，-W bin指定のアンロードの場合に指定できます。

32キロバイト（VARCHAR型で定義できる最大長）以上のデータがある場合は，データ変換エラーとなります。

(1)　形式

　blobtovarchar 列名〔，列名〕…

(2)　説明

(a)　列名

コンストラクタパラメタ逆生成関数を持つ抽象データ型の列名を指定します。

列名を引用符で囲んだ場合は，英大文字と英小文字が区別されます。囲まない場合は，すべて英大文字として扱われます。

指定できる列名は，コンストラクタパラメタ逆生成関数の戻り値がBLOB型の抽象データ型の列です。それ以外の列を指定するとエラーになります。

8.10.18　fixtext_option文（固定長データ形式の入力データファイル生成時の出力データに関する記述）

-W fixtextオプションを指定して，固定長データ形式の入力データファイルを生成する場合，出力データについての情報を指定します。

＜適用基準＞

固定長データ形式の入力データファイルを生成する場合（-W fixtextオプションを指定する場合），出力データを編集するときに指定します。

＜規則＞

fixtext_option文は一つだけ指定できます。

オペランドを二つ以上指定する場合，オペランド間を空白文字（0x20）で区切ってください。

オペランドの指定がない場合，fixtext_option文は指定しないでください。

(1)　形式

　fixtext_option 〔cntlcode=｛nocheck｜check｜replace〔，置き換え文字〕｝〕

　　　　　　　 〔enclose=囲み文字〕

　　　　　　　 〔format=データ型，出力形式〕

(2)　説明

(a)　cntlcode=｛nocheck｜check｜replace〔，置き換え文字〕｝

データ型が文字データ型，各国文字データ型，及び混在文字データ型の場合，文字データ中に制御文字（ASCIIコード0x00〜0x1f）を含む列があるときの，データ出力の制御方法を指定します。

nocheck：

制御文字があるかどうかをチェックしないで，DB中の列データをそのまま出力します。DB中の列データをそのまま出力する場合に指定します。

check：

制御文字があるかどうかをチェックします。列データ中に制御文字が含まれている場合，該当行はアンロードデータファイルに出力しません。制御文字を含む行の出力を抑止したい場合に指定します。

replace[，置き換え文字]：

制御文字があるかどうかをチェックします。列データ中に制御文字が含まれている場合，制御文字を置き換え文字に変換し，該当行をアンロードデータファイルに出力します。列データ中に制御文字があっても，テキストビューアなどで参照できる形式で出力する場合に指定します。

置き換え文字は，1バイトの文字で指定してください。

＜置き換え文字の指定規則＞

置き換え文字を省略した場合，コロンが仮定されます。

次の文字は，置き換え文字に指定できません。

空白，タブ，アスタリスク，下線

次の文字は，出力データのコードと重なる可能性があるため，置き換え文字には適していません。

・出力データ中にある文字

・数値データの符号（＋，−）

・マルチバイト文字に文字コードが重なる文字（｜，￥，［，］，（，），｛，｝，￣）

・日間隔，時間隔，及び時刻印データのハイフン

・時間，及び時刻印データのコロン

・数値，日間隔，時間隔，及び時刻印データのピリオド

＜cntlcodeオペランドの規則＞

cntlcodeオペランド，又はfixtext_option文を省略した場合，cntlcode=nocheckが仮定されます。

cntlcodeオペランドは，fixtext_option文中に一つだけ指定できます。

列データ中の制御文字有無，及びcntlcodeオペランドの指定値と，pdrorgの動作の関係を次に示します。

条件

pdrorgの動作

列データ中の制御文字有無

cntlcodeオペランドの指定値

制御文字のチェック

データ出力方法

あり

check

○※

該当する行を出力しないで処理を続行します（pdrorgはリターンコード4で正常終了します）。

replace

制御文字を置き換えて出力します。

nocheck

×

DB中のデータをそのまま出力します。

なし

check

○※

DB中のデータをそのまま出力します。

replace

nocheck

×

（凡例）

○：制御文字をチェックします。

×：制御文字をチェックしません。

注※

1バイト文字をチェックします。マルチバイト文字はチェックしません。

(b)　enclose=囲み文字

列データの前後に囲み文字を付ける場合，データを区別するために1バイトの囲み文字を指定します。囲み文字の規則については，cntlcodeオペランドの置き換え文字と同じです。

＜適用基準＞

列データの前後に囲み文字を付けたい場合に指定します。また，可変長文字列（文字データ型，各国文字データ型，及び混在文字データ型）の列データ長が定義長より短い場合，又はナル値の場合，定義長までパディング文字（デフォルトでは空白文字）を埋めます。そのため，列データ長が0バイトの場合は，0バイト文字データ，ナル値データ，及び空白文字だけのデータの区別ができません。このような場合にencloseオペランドを指定すると，データに囲み文字が付くため，これらを区別できるようになります。

データ型がvarchar(8)，パディング文字が空白文字の場合の，データ出力例を次に示します。

データ

出力されるデータ

encloseオペランドなし

enclose="

0バイト文字

△△△△△△△△

""△△△△△△△△

ナル値

△△△△△△△△

△△△△△△△△△△

すべて空白文字

△△△△△△△△

"△△△△△△△△"

（凡例）

△：空白文字

＜encloseオペランドの規則＞

encloseオペランドは，fixtext_option文中に一つだけ指定できます。

encloseオペランドを指定した場合の囲み文字の有無を次に示します。

列のデータ型

列のデータ値

囲み文字の有無

CHAR，VARCHAR，NCHAR，NVARCHAR，MCHAR，及びMVARCHR

ナル値

囲み文字は付きません（囲み文字ではなく，パディング文字が付きます）。※

実値

囲み文字が付きます。※

上記以外

ナル値

囲み文字は付きません。

実値

注※

出力長が2バイト増加します。

(c)　format=データ型，出力形式

列データの出力形式を変更する場合に指定します。変更できるデータ型はINTEGER及びSMALLINTです。

データ型：

出力形式を変更する列又はパラメタ（コンストラクタパラメタ逆生成関数）のデータ型を指定します。integer又はsmallintを指定してください。

＜規則＞

データ型の指定値には，同じデータ型を複数指定できません。

指定したデータ型の列が表にない場合，指定が無視されます。

出力形式：

データ型の出力形式を指定します。type1又はtype2を指定してください。

省略した場合，type1が仮定されます。なお，INTEGER及びSMALLINT以外のデータ型の場合，type1となります。

type1，及びtype2については，「出力形式」を参照してください。

8.11　処理性能情報ファイル

$PDDIR/spool/utlrptディレクトリ下に内部的な情報を出力します。

8.12　UOCを利用した再編成

UOCを利用して再編成すると，データベースから検索したデータをUOCに渡して，編集してアンロードデータファイルへ出力できます。

8.12.1　再編成時のUOCの利用方法

UOCを利用した再編成は，主に次の場合に適用してください。

不要データの削除

表の再編成とデータ削除を同時にしたい場合，不要なデータを削除したアンロードデータファイルを使用して別表へリロードしたい場合などに，利用します。

アプリケーション向けデータ更新

データを更新してpdloadの入力データファイルにしたい場合，アプリケーション用に任意のフォーマットで出力したい場合などに，利用します。

(1)　不要データの削除

表の再編成でのアンロード時，又は表のアンロード時に，UOCでデータの要否を判定してpdrorgに指示することで，必要なデータだけをアンロードデータファイルに出力できます。

UOCを利用した再編成の概要（不要データの削除）を次の図に示します。

図8‒25　UOCを利用した再編成の概要（不要データの削除）

(2)　アプリケーション向けデータ更新

表のアンロード（-k unld指定）時に，UOCでアンロードするデータを更新又は編集して，次のフォーマットで出力できます。

pdloadの入力データファイル（-W指定時）

UOCデータファイル（ユーザ任意のフォーマット）

UOCを利用した再編成の概要（アプリケーション向けデータ更新）を次の図に示します。

図8‒26　UOCを利用した再編成の概要（アプリケーション向けデータ更新）

pdrorgでの更新後データのチェック

pdrorgは，UOCから返されたUOCインタフェース領域の更新後データアドレスリストに設定されたデータ値のチェックをします。チェックの結果，不正なデータがあった場合には，pdrorgは処理を中断してリターンコード8で終了します。

更新後データの各データ型のチェック項目を次の表に示します。

表8‒28　更新後データの各データ型のチェック項目

データ型

チェック項目

可変長の長さ※１

符号※２

データ範囲※３

繰返し列

要素数

ナル値

INTEGER，SMALLINT，FLOAT，SMALLFLT

−

×

×

○

○

DECIMAL

−

○

○

○

○

CHAR，MCHAR，NCHAR

−

−

×

○

○

DATE，TIME

−

−

○※４

○

○

INTERVAL YEAR TO DAY，INTERVAL HOUR TO SECOND

−

○

○※４

○

○

VARCHAR，MVARCHAR，NVARCHAR

○

−

×

○

○

TIMESTAMP

−

−

○※４

○

○

BINARY

○

−

×

−

−

BLOB（BLOB属性）

○

−

×

−

−

抽象データ型（パラメタ値）

各パラメタのデータ型に従います。

（凡例）

○：チェックします。

×：チェックしません。

−：該当しません。

注※1

可変長文字列型，BINARY型，又は長大データ型の長さ部の内容をチェックします。長さ部の値がマイナスの場合はエラーとなります。

可変長文字列の場合は，長さ部の値が32,000バイトを超えるときはエラーとなります。

列のデータ型が長大データ型の場合，又はunld_func文で指定したコンストラクタパラメタ逆生成関数の戻り値が長大データ型の場合，unlduoc文でbloblimitを指定したときは，指定したメモリ領域確保サイズを超えるとエラーとなります。unlduoc文でbloblimitを指定していない場合は，2ギガバイトを超えるときはエラーとなります。

注※2

パック形式の符号部（4ビット）をチェックします。符号部が0xC，0xD，及び0xF以外の場合は，エラーとなります。

注※3

パック形式の場合，パックデータ（4ビット）が0x0〜0x9以外のときはエラーとなります。そのほかの形式の場合，データ値の内容のチェックはしません。

注※4

日付データ，時刻データ，又は時刻印データとしてあり得ない値（日付データの月が12を超えるなど）の場合は，エラーとなります。

8.12.2　オプションと制御文の関係

(1)　UOCを利用した再編成で指定するオプション及び制御文

UOCを利用した再編成で指定するオプション及び制御文を次の表に示します。

表8‒29　UOCを利用した再編成で指定するオプション及び制御文

種別

オプション

制御文

ファイルへの出力

-k

-W

unload文

unlduoc文

pdrorg

UOC

不要データの削除※１

表の再編成

rorg

×

○※３

○

出力します。

任意です。

表のアンロード＋リロード

アンロード

unld

−

○※３

○

出力します。

任意です。

リロード

reld

−

○※３

−

−

−

アプリケーション向けデータ更新※２

pdrorgがファイルを出力

unld

○

○※３

○

出力します。

任意です。

UOCがファイルを出力

unld

×

○※４

○

該当しません。

必要です。

（凡例）

○：指定してください。

×：指定できません（エラーとなります）。

−：指定しても無視されます。

注※1

表に抽象データ型の列がある場合，unld_func文にコンストラクタパラメタ逆生成関数を指定した抽象データ型の列だけ，UOCにデータが渡ります。unld_func文の指定がない抽象データ型の列については，ナル値のデータが渡ります。この場合，UOCにはナル値を渡しますが，アンロードデータファイルには検索したデータを格納します。したがって，UOCでのデータ要否判定はできません。

注※2

表に抽象データ型の列がある場合，すべての抽象データ型の列に対してunld_func文を指定してください。指定しないとエラーになります。

注※3

unload文にアンロードデータファイル名を指定します。

注※4

unload文に(uoc)を指定します。

(2)　UOCを利用した再編成でのオプション指定規則

UOCを利用した再編成でのオプション指定規則を次に示します。

UOCを利用した再編成は，表の再編成（-k rorg），又は表のアンロード（-k unld）のときに実行できます。

表に長大データ型の列，又は長大データ属性を持つ抽象データ型の列がある場合，-jオプションを指定する必要があります。-jオプションを指定しないとエラーになります。

-cオプションに，dic（処理対象がディクショナリ表）は指定できません。指定するとエラーになります。

unload文に(uoc)を指定した場合，-Wオプションは指定できません。指定するとエラーになります。

unload文に(uoc)を指定した場合，-fオプションを指定するとエラーになります。

(3)　UOCを利用した再編成での制御文指定規則

UOCを利用した再編成での制御文指定規則を次に示します。

UOCを利用した再編成では，次の二つの制御文を必ず指定する必要があります。

unlduoc文

unload文

lobunld文は指定できません。

(4)　UOCを呼び出すサーバとホストの関係

UOCを呼び出すサーバとホストの関係を次の表に示します。UOCを格納している共用ライブラリを，次の表の該当するホストに用意してください。

表8‒30　UOCを呼び出すサーバとホストの関係

実行環境

サーバ

ホスト

HiRDB/シングルサーバ

-gなし

シングルサーバ

シングルサーバがあるホスト

-gあり

ユティリティサーバ（pdrorgm）

unload文で指定したホスト

HiRDB/パラレルサーバ

-gなし

表単位

非分割表

バックエンドサーバ

表が格納されているサーバがあるホスト

分割表

unload文で指定したサーバがあるすべてのホスト

RDエリア単位

指定したRDエリアを持つサーバがあるホスト

-gあり

ユティリティサーバ（pdrorgm）

unload文で指定したホスト

(5)　UOCに渡すデータとpdrorgのデータ変換契機

pdrorgには，オプション及び制御文の指定でデータ変換をする機能があります。UOCを利用した再編成でも，この機能を使用できます。なお，データ変換は，UOCに変換しないデータを渡して，アンロードデータファイル出力前にデータの変換をします。UOCに渡すデータとpdrorgのデータ変換契機を次の表に示します。

表8‒31　UOCに渡すデータとpdrorgのデータ変換契機

種別

データ変換ができるオプション又は制御文

UOCに渡すデータ

データ変換契機

不要データの削除（表の再編成）

-S

空白を取り除いていないデータ

アンロードデータファイル出力時

-W

−

−

-W dat,sup又は

-W extdat,sup

−

−

option文のspacelvl

空白変換していないデータ

表のリロード時

blobtovarchar文

−

−

不要データの削除（表のアンロード＋リロード）

-S

空白を取り除いていないデータ

アンロードデータファイル出力時

-W

−

−

-W dat,sup又は

-W extdat,sup

−

−

option文のspacelvl

空白変換していないデータ

表のリロード時

blobtovarchar文

−

−

アプリケーション向けデータ更新（pdrorgがファイルを出力）

-S

−

−

-W

DAT形式又はバイナリ形式に変換する前のデータ

アンロードデータファイル出力時※

-W dat,sup又は

-W extdat,sup

空白を取り除いていないデータ

アンロードデータファイル出力時※

option文のspacelvl

空白変換していないデータ

アンロードデータファイル出力時※

blobtovarchar文

BLOB形式のデータ

アンロードデータファイル出力時※

アプリケーション向けデータ更新（UOCがファイルを出力）

-S

空白を取り除いていないデータ

−

-W

−

−

-W dat,sup又は

-W extdat,sup

−

−

option文のspacelvl

空白変換していないデータ

−

blobtovarchar文

−

−

文字コード変換

option文のcharset

指定した文字コードに変換したデータ

アンロードデータ取得時（UOCコール前）

（凡例）−：該当しません。

注

表定義時にSUPPRESS指定のDECIMAL型の列がある場合，UOCには拡張後のデータを渡します。また，データ変換契機はリロード時となります。

注※

UOCの編集後のデータに対して，データ変換をします。

8.12.3　UOCの処理概要

UOCの処理概要を次の図に示します。

図8‒27　UOCの処理概要

［説明］

pdrorgからUOCに制御が渡り，処理を開始します。処理が終了したら，pdrorgに制御を返します。

UOCインタフェース領域の，pdrorgが設定した呼び出し種別を判定します。

初期化処理，UOCデータファイルのオープンなど，開始処理をします。

UOCインタフェース領域の，pdrorgが設定したデータを更新又は編集します。

データがすべてなくなった場合に，UOCデータファイルのクローズなどの終了処理をします。

pdrorgの処理でエラーとなった場合，又はUOC内でエラーとなった場合に，UOCデータファイルのクローズ，不要なUOCデータファイルの削除など，終了処理をします。

行データをチェックして，必要なデータかどうかを判定します。必要な場合は，データの更新又は編集をして，UOCインタフェース領域の格納フラグにYを設定します。必要でない場合は，UOCインタフェース領域の格納フラグにNを設定します。また，UOCでUOCデータファイルを作成する場合は，データを更新又は編集した行データをUOCデータファイルへ出力します。

UOCインタフェース領域のリターンコードを設定します。

また，pdrorg，UOC間の呼び出しシーケンスを次の図に示します。

図8‒28　pdrorg，UOC間の呼び出しシーケンス

［説明］

スキーマ単位の再編成，又はスキーマ単位のアンロードの場合は，スキーマ内の表数分1〜11を繰り返します。なお，該当する表の処理中にエラーが発生した場合は，直ちにpdrorgの処理を中断します。

pdrorgは，呼び出し種別に開始要求を設定してUOCを呼び出します。

pdrorgからの呼び出し種別が開始要求の場合，UOCは次の処理をします。

UOCでUOCデータファイルを出力する場合は，UOCデータファイルを作成（オープン）します。

各種領域の確保など，開始準備をします。

開始準備が正常に終了した場合はUOCインタフェース領域のリターンコードに0を設定し，正常に終了しなかった場合は８を設定してリターンします。

リターンコードに8を設定した場合，この呼び出し以降はUOCを呼び出せない（停止要求をしない）ため，ここでUOCデータファイルのクローズなどの後処理をする必要があります。

pdrorgは，UOCから返却されたUOCインタフェース領域のリターンコードを判定し，0又は4以外の場合は直ちにpdrorgの処理を中断します。

pdrorgは，データベースからデータを検索します。

pdrorgは，表のデータが検索できた場合は，データアドレスリストに検索したデータを設定し，呼び出し種別にデータ更新要求を設定してUOCを呼び出します。検索するデータがなくなった場合は10の処理（終了処理）をします。

なお，データ更新要求は，次の条件のどれかに該当するまで処理を繰り返します。

表のデータがなくなる。

UOCがUOCインタフェース領域のリターンコードに０又は４以外を設定する。

pdrorg内で処理エラーが発生する。

pdrorgからの呼び出し種別がデータ更新要求の場合，UOCは次の処理をします。

各処理が正常終了した場合はUOCインタフェース領域のリターンコードに0を設定し，異常終了した場合は8を設定してリターンします。

(a) 表の再編成，表のアンロードでの不要データの削除の場合

pdrorgがUOCインタフェース領域のデータアドレスリストに渡したデータを参照し，データが必要であればUOCインタフェース領域の格納フラグにYを設定します。データが不要な場合はNを設定します。

(b) アプリケーション向けデータ更新の場合

データの更新などの処理をします。

データを更新した場合は，UOCインタフェース領域に更新後データアドレスリストを設定し，格納フラグにYを設定します。

不要なデータの場合は，UOCインタフェース領域の格納フラグにNを設定します。

UOCデータファイルを出力する場合は，UOCデータファイルに必要なデータを出力します。

UOCから返却されたUOCインタフェース領域のリターンコードが８の場合，pdrorgは呼び出し種別に停止要求を設定してUOCを呼び出します。

pdrorgからの呼び出し種別が停止要求の場合，UOCは終了処理をします。なお，この呼び出し以降はUOCを呼び出せません。

UOCデータファイルを作成した場合は，UOCデータファイルをクローズしてください。なお，作成したUOCデータファイルが不要な場合は，ここで削除してください。

確保したメモリの解放などをしてください。

pdrorgがアンロードデータファイルを出力する場合，UOCインタフェース領域の格納フラグがYのときは，データをアンロードデータファイルに出力します。Nのときは出力しません。なお，データ更新（-Wオプション指定）では，UOCインタフェース領域の更新後データアドレスリストを参照して，UOCが更新したデータを-Wオプション指定のフォーマットでアンロードデータファイルに出力します。

次の条件をすべて満たす場合，pdrorgは呼び出し種別に終了要求を設定してUOCを呼び出します。

該当する表のデータをすべて検索した場合

pdrorg内でエラーが発生しなかった場合

UOCから返却されたUOCインタフェース領域のリターンコードがすべて正常（0又は4）の場合

pdrorgからの呼び出し種別が終了要求の場合，UOCは終了処理をします。

UOCデータファイルを作成した場合は，UOCデータファイルをクローズしてください。

確保したメモリの解放などをしてください。

8.12.4　UOCインタフェース

(1)　UOCインタフェース領域の構造と内容

pdrorgとUOCとの連絡は，インタフェース領域を使用して情報の入出力をします。これをUOCインタフェース領域といいます。

この領域は，更新バッファを除いて，すべてpdrorgが確保します。UOCは，呼び出す関数の第1引数にこの領域のアドレスを受け取って，参照及び更新をします。

UOCインタフェース領域の構造を次の図に示します。

図8‒29　UOCインタフェース領域の構造（1/2）

注1

[ ]内は，64ビットモードのHiRDBの場合の数値となります。

注2

UOCインタフェース領域の内容については表「UOCインタフェース領域の内容」を，列定義情報アドレスリストの内容については表「列定義情報アドレスリストの内容」を，列定義情報領域の内容については表「列定義情報領域の内容」を，抽象データ型逆生成パラメタ情報領域の内容については表「抽象データ型逆生成パラメタ情報領域の内容」を参照してください。

図8‒30　UOCインタフェース領域の構造（2/2）

注1

[ ]内は，64ビットモードのHiRDBの場合の数値となります。

注2

データアドレスリストの内容については表「データアドレスリストの内容」を，更新後データアドレスリストの内容については表「更新後データアドレスリストの内容」を参照してください。

表8‒32　UOCインタフェース領域の内容

相対位置

フィールド名

長さ（単位：バイト）

属性

値の設定元

内容

32

64

32

64

0

0

アイキャッチャ

8

8

char

pdrorg

インタフェース領域('*UOCINF*')

8

8

実行中プログラム

4

4

int

pdrorg

制御が渡っているプログラム

0：pdrorg

1：UOC

12

12

呼び出し種別

4

4

int

pdrorg

UOCに対する処理要求種別

o：開始要求

e：データ更新要求

c：終了要求

t：停止要求

16

16

認可識別子の長さ

2

2

short

pdrorg

対象表の所有者名の長さ

18

18

認可識別子

30

30

char

pdrorg

対象表の所有者名

48

48

表識別子の長さ

2

2

short

pdrorg

対象表の名称の長さ

50

50

表識別子

30

30

char

pdrorg

対象表の名称

80

80

行長

4

8

long

pdrorg

データ格納方法がYの場合，行長を設定します。

84

88

データアドレスリストのアドレス

4

8

void*

pdrorg

pdrorgが検索したデータのアドレスを格納している，データアドレスリストの先頭アドレス

88

96

システムが使用する情報

4

8

long

pdrorg

システムが使用する情報（UOC側では使用しないでください）

92

104

更新後データアドレスリストのアドレス

4

8

void*

UOC

UOCで更新したデータをpdrorgに返却する場合は，UOC内で作成したデータのアドレスを格納している更新後データアドレスリストの先頭アドレスを設定します。データを更新しない場合は，０を設定します。

96

112

ユーザパラメタのアドレス

4

8

void*

pdrorg

unlduoc文のparamオペランドに指定した文字列のアドレスを設定します（文字列の末尾は¥0）。paramオペランドを省略した場合は，ナル値を設定します。

100

120

列定義情報アドレスのアドレス

4

8

void*

pdrorg

対象表の列定義情報アドレスリストの先頭アドレス

104

128

予備

1

1

char

pdrorg

予備領域（UOC側では使用しないでください）

105

129

表の属性

1

1

char

pdrorg

対象表の表属性

F：FIX表

空白：非FIX表

106

130

列数

2

2

short

pdrorg

対象表の列数

108

132

格納フラグ

1

1

char

UOC

格納フラグを設定します。

Y：アンロードデータファイルに格納します。

N：アンロードデータファイルに格納しません。

pdrorg側でアンロードデータファイルを作成する場合，必ず設定してください（UOCでUOCデータファイルを作成する場合は指定しなくてもかまいません）。

109

133

データ格納方法

1

1

char

pdrorg

FIX表の場合，unlduoc文のfixrowオペランドに指定した値（fixrow省略時はN）を設定します。

Y：列定義順にデータを詰めて（連続して）渡します。

N：データ型のバウンダリに従ってデータの開始アドレスを補正して渡します。

110

134

予備

10

10

char

pdrorg

予備領域（UOC側では使用しないでください）

120

144

リターンコード

4

4

int

UOC

リターンコードを設定します。

pdrorgから制御を受け取ったUOCは，次の基準でリターンコードをコールごとに戻してください。

0：

各要求に対する処理が正常に実行された場合に設定します。

4：

デバッグなどで，正常時もメッセージを出力したい場合に設定します。内容は0と同じです。リターンコードに4を設定した場合，メッセージは3回まで出力されます。ただし，メッセージが3回出力された後に4を設定しても無視され，メッセージは出力されません。

8：

UOCの処理中にエラーが発生した場合に設定します。

上記以外のリターンコードが設定された場合，pdrorgは処理を中断し終了します。また，リターンコードに4又は8を設定すると，メッセージ埋め込み領域の内容を標準出力及びメッセージログに出力します。メッセージは，末尾に¥0を付けて131バイト以内の文字列にしてください。先頭データが¥0の場合はメッセージは出力しません。

124

148

メッセージ埋め込み領域

132

132

char

pdrorg

UOC

標準出力及びメッセージログに出力するメッセージの格納領域（pdrorgは先頭データを¥0にして渡します）

（凡例）

32：32ビットモードのHiRDBの相対位置，及び長さを示します。

64：64ビットモードのHiRDBの相対位置，及び長さを示します。

注1

先頭アドレスは，32ビットモードのHiRDBの場合は4バイトのバウンダリ，64ビットモードのHiRDBの場合は8バイトのバウンダリを保証します。

注2

各フィールドに対する参照，更新可否を次に示します。

フィールド名

呼び出し種別

開始要求

データ更新要求

終了要求

停止要求

アイキャッチャ

△

△

△

△

実行中プログラム

△

△

△

△

呼び出し種別

△

△

△

△

認可識別子の長さ

△

△

△

△

認可識別子

△

△

△

△

表識別子の長さ

△

△

△

△

表識別子

△

△

△

△

行長

×

△

×

×

データアドレスリストのアドレス

×

△

×

×

更新後データアドレスリストのアドレス

×

○

×

×

ユーザパラメタのアドレス

△

△

△

△

列定義情報アドレスのアドレス

△

△

△

△

表の属性

△

△

△

△

列数

△

△

△

△

データ格納方法

×

○

×

×

メッセージ埋め込み領域

○

○

○

○

リターンコード

○

○

○

○

格納フラグ

×

○

×

×

（凡例）

○：値を設定できます。

△：値を参照できます。

×：値を参照できません（値が保証されません）。

表8‒33　列定義情報アドレスリストの内容

相対位置

フィールド名

長さ（単位：バイト）

属性

値の設定元

内容

32

64

32

64

0

0

列ID1の定義情報アドレス

4

8

void*

pdrorg

列ID1の列定義情報のアドレスが設定されます。

4

8

列ID2の定義情報アドレス

4

8

void*

pdrorg

列ID2の列定義情報のアドレスが設定されます。

(n-1)×4

(n-1)×8

列IDnの定義情報アドレス

4

8

void*

pdrorg

列IDnの列定義情報のアドレスが設定されます。

（凡例）

32：32ビットモードのHiRDBの相対位置，及び長さを示します。

64：64ビットモードのHiRDBの相対位置，及び長さを示します。

注1

先頭アドレスは，32ビットモードのHiRDBの場合は4バイトのバウンダリ，64ビットモードのHiRDBの場合は8バイトのバウンダリを保証します。

注2

列定義情報アドレスリストの内容は，列の定義順に連続して渡します。

表8‒34　列定義情報領域の内容

相対位置

フィールド名

長さ（単位：バイト）

属性

値の設定元

内容

32

64

32

64

0

0

列名長

2

2

short

pdrorg

列名の長さが設定されます。

2

2

列名

30

30

char

pdrorg

列名が設定されます。

32

32

列ID

2

2

short

pdrorg

列のIDが設定されます。

34

34

予備1

1

1

−

−

−

35

35

データ型

1

1

unsigned char

pdrorg

列のデータ型が設定されます。各データ型のデータコードとデータ値のバウンダリについては，表「各データ型のデータコードとデータ値のバウンダリ」を参照してください。

36

36

定義長

2

2

short

pdrorg

列の定義長が設定されます。列の定義長領域の長さと内容については，表「列の定義長領域の長さと内容」を参照してください。

38

38

繰り返し回数

2

2

short

pdrorg

列の繰り返し回数が設定されます。

40

40

BLOB長，又はBINARY長

8

8

int[2]

pdrorg

列のデータ型が長大データ型，又はBINARY型の場合に設定されます。上位4バイトには0，下位4バイトには長大データ型の定義長がバイト単位で設定されます。

48

48

パラメタ数

2

2

short

pdrorg

抽象データ型の場合，該当するunld_func文の関数の数（パラメタ数）が設定されます。なお，次の場合は，0が設定されます。

列のデータ型が抽象データ型以外の場合

unld_func文を指定していない抽象データ型の場合

50

50

予備2

6

6

char

pdrorg

予備領域

56

56

拡張アドレス

4

8

void*

pdrorg

抽象データ型逆生成パラメタ情報の先頭アドレスが設定されます。なお，パラメタ数が0の場合は，0が設定されます。

60

64

予備3

64

64

char

pdrorg

予備領域

（凡例）

32：32ビットモードのHiRDBの相対位置，及び長さを示します。

64：64ビットモードのHiRDBの相対位置，及び長さを示します。

−：該当する内容はありません。

注

先頭アドレスは，32ビットモードのHiRDBの場合は4バイトのバウンダリ，64ビットモードのHiRDBの場合は8バイトのバウンダリを保証します。

表8‒35　抽象データ型逆生成パラメタ情報領域の内容

相対位置

フィールド名

長さ（単位：バイト）

属性

値の設定元

内容

0

パラメタ番号

2

short

pdrorg

パラメタ番号（1が先頭）

2

データ型

1

unsigned char

pdrorg

パラメタのデータ型が設定されます。各データ型のデータコードとデータ値のバウンダリについては，表「各データ型のデータコードとデータ値のバウンダリ」を参照してください。

3

予備1

3

char

pdrorg

予備領域

6

定義長

2

short

pdrorg

パラメタの定義長が設定されます。列の定義長領域の長さと内容については，表「列の定義長領域の長さと内容」を参照してください。

8

BLOB長，又はBINARY長

8

int[2]

pdrorg

パラメタのデータ型が長大データ型，又はBINARY型の場合，BLOB長が設定されます。上位4バイトには0，下位4バイトには長大データ型の定義長がバイト単位で設定されます。

16

予備2

112

char

pdrorg

予備領域

注1

先頭アドレスは，32ビットモードのHiRDBの場合は4バイトのバウンダリ，64ビットモードのHiRDBの場合は8バイトのバウンダリを保証します。

注2

抽象データ型逆生成パラメタ情報領域の内容は，unld_func文で指定した関数（パラメタ）の順に連続して渡します。

表8‒36　列の定義長領域の長さと内容

データ型

領域長

内容

DECIMAL，LARGE DECIMAL，

INTERVAL YEAR TO DAY，及び

INTERVAL HOUR TO SECOND

上位1バイト

定義で指定した精度です。

下位1バイト

定義で指定した位取りです。

TIMESTAMP(p)

2バイト

7＋↑p/2↑

BLOB，抽象データ型，及びBINARY

2バイト

値は保証されません。

上記以外

2バイト

定義長です。

表8‒37　各データ型のデータコードとデータ値のバウンダリ

データ型

データコード(16進数)

バウンダリ(単位：バイト)

非ナル値制約指定なし

非ナル値制約指定あり

MVARCHAR

A1

A0

2

MCHAR

A5

A4

−

NVARCHAR

B1

B0

2

NCHAR

B5

B4

−

VARCHAR

C1

C0

2

CHAR

C5

C4

−

FLOAT

E1

E0

8

SMALLFLT

E3

E2

4

DECIMAL

E5

E4

−

INTEGER

F1

F0

4

SMALLINT

F5

F4

2

INTERVAL YEAR TO DAY

65

64

−

DATE

71

70

−

TIME

79

78

−

INTERVAL HOUR TO SECOND

6F

6E

−

TIMESTAMP

7D

7C

−

BINARY

91

90

4

BLOB

93

92

4

抽象データ型

抽象データ型パラメタのアドレスリスト

83

82

32ビットモードのHiRDBの場合は4，64ビットモードのHiRDBの場合は8

パラメタのデータ

パラメタの各データ型に従います。

（凡例）−：アドレスのバウンダリを調整しません。

表8‒38　データアドレスリストの内容

相対位置

フィールド名

長さ（単位：バイト）

属性

値の設定元

内容

32

64

32

64

0

0

列ID1のデータ格納アドレス

4

8

void*

pdrorg

列ID1のデータのアドレスが設定されます。

4

8

列ID2のデータ格納アドレス

4

8

void*

pdrorg

列ID2のデータのアドレスが設定されます。

(n-1)×4

(n-1)×8

列IDnのデータ格納アドレス

4

8

void*

pdrorg

列IDnのデータのアドレスが設定されます。

（凡例）

32：32ビットモードのHiRDBの相対位置，及び長さを示します。

64：64ビットモードのHiRDBの相対位置，及び長さを示します。

注1

先頭アドレスは，32ビットモードのHiRDBの場合は4バイトのバウンダリ，64ビットモードのHiRDBの場合は8バイトのバウンダリを保証します。

注2

データアドレスリストの内容は，列の定義順に連続して渡します。

注3

列値がナル値の場合は，0が設定されます。

注4

FIX表の場合，UOCインタフェース領域のデータ格納方法がYのときは，データバッファは列ID1のデータ格納アドレスが示すアドレスから，UOC情報の行長分連続した領域で格納します。このとき，列ID順に格納します。

注5

UOCインタフェース領域のデータ格納方法がNの場合，データ型ごとに設定されたバウンダリで，データの開始アドレスを調整して設定します。なお，列ごとにデータは連続していません。

注6

列定義情報領域のパラメタ数が0の場合は，0が設定されます。

表8‒39　更新後データアドレスリストの内容

相対位置

フィールド名

長さ（単位：バイト）

属性

値の設定元

内容

32

64

32

64

0

0

列ID1のデータ格納アドレス

4

8

void*

UOC

列ID1のデータのアドレスを設定します。

4

8

列ID2のデータ格納アドレス

4

8

void*

UOC

列ID2のデータのアドレスを設定します。

(n-1)×4

(n-1)×8

列IDnのデータ格納アドレス

4

8

void*

UOC

列IDnのデータのアドレスを設定します。

（凡例）

32：32ビットモードのHiRDBの相対位置，及び長さを示します。

64：64ビットモードのHiRDBの相対位置，及び長さを示します。

注1

先頭アドレスは，32ビットモードのHiRDBの場合は4バイトのバウンダリ，64ビットモードのHiRDBの場合は8バイトのバウンダリを保証してください。

注2

データ更新後のデータアドレスリストは，列の定義順に連続した領域で設定してください。

注3

データのアドレス値として，データアドレスリストのデータ格納アドレスを設定してもかまいません。ただし，データ値は更新しないでください。

注4

データのアドレスは，バウンダリを保証しなくてもかまいません。

注5

列定義で非ナル値制約指定なしの列の列値を，ナル値に変更する場合は0を設定してください。非ナル値制約指定有無によるデータ変更可否を次に示します。

列の属性

更新前のデータ

更新後のデータ

非ナル値

ナル値

非ナル値制約指定なし

ナル値

○

○

非ナル値

○

○

非ナル値制約指定あり

非ナル値

○

×

（凡例）

○：変更できます。

×：変更できません。

注6

予備列が定義されたFIX表の場合，予備列の値を更新しても，アンロードファイルには反映されません。予備列にデータを格納してアンロードしたい場合は，UOCを利用してファイルを出力してください。UOCを利用したファイル出力については，「unload文（アンロードデータファイルの情報の記述）」を参照してください。

(2)　データ値の形式

各データ型のデータ値の形式を次に示します。

(a)　INTEGER又はSMALLINT

AIX版の場合

Linux版の場合

(b)　FLOAT又はSMALLFLT

AIX版の場合

Linux版の場合

(c)　DECIMAL

(d)　CHAR，MCHAR，VARCHAR，又はMVARCHAR

文字コード変換なし又は変換後もデータ長が変化しない文字コード変換をした場合の形式を次に示します。

(e)　CHAR又はVARCHAR

文字コード変換後にデータ長が変化する場合の形式を次に示します。

(f)　NCHAR又はNVARCHAR

(g)　DATE

(h)　TIME

(i)　INTERVAL YEAR TO DAY

(j)　INTERVAL HOUR TO SECOND

(k)　TIMESTAMP

(l)　BINARY

(m)　BLOB

(n)　抽象データ型

抽象データ型の場合は，抽象データ型パラメタのアドレスリストが格納されます。抽象データ型パラメタのアドレスリストの構造を次の図に示します。

図8‒31　抽象データ型パラメタのアドレスリストの構造

注

[ ]内は，64ビットモードのHiRDBの場合の数値となります。

また，抽象データ型パラメタのアドレスリストの内容を次の表に示します。

表8‒40　抽象データ型パラメタのアドレスリストの内容

相対位置

フィールド名

長さ（単位：バイト）

属性

値の設定元

内容

32

64

32

64

0

0

第1パラメタのデータのアドレス

4

8

void*

pdrorg

第1パラメタのデータのアドレスが設定されます。

4

8

第2パラメタのデータのアドレス

4

8

void*

pdrorg

第2パラメタのデータのアドレスが設定されます。

(n-1)×4

(n-1)×8

第nパラメタのデータのアドレス

4

8

void*

pdrorg

第nパラメタのデータのアドレスが設定されます。

（凡例）

32：32ビットモードのHiRDBの相対位置，及び長さを示します。

64：64ビットモードのHiRDBの相対位置，及び長さを示します。

注1

先頭アドレスは，32ビットモードのHiRDBの場合は4バイトのバウンダリ，64ビットモードのHiRDBの場合は8バイトのバウンダリを保証します。

注2

パラメタのデータの開始アドレスは，データ型ごとに設定したバウンダリで調整したアドレスが設定されます。

注3

抽象データ型パラメタのアドレスリストの内容は，unld_func文で指定した関数（パラメタ）の順に連続して渡します。

(o)　繰返し列の場合

8.12.5　UOCの使用例

ここでは，UOCを使用した表の再編成，及び表のアンロードの例について説明します。

なお，使用例中のUOCコーディング例は，サンプルデータべースとして提供されています。格納ディレクトリは，$PDDIR/sample/sampleUOCです。

(1)　UOCを使用した表の再編成の例

表の再編成をするときに，データベースに登録された日時が2001年以前のデータを削除します。

(a)　データべースの表定義

  CREATE TABLE 会員名簿 (会員番号 INTEGER,
                     会員名 NCHAR(20),
                     会員住所 NVARCHAR(100),
                     入会日時 DATE NOT NULL WITH DEFAULT);

(b)　コマンド形式

 pdrorg -k rorg -t 会員名簿 制御情報ファイル

(c)　制御情報ファイルの内容

 unload アンロードデータファイル名 uoc_lib=ライブラリ名
 unlduoc entry=old_data_delete

(d)　UOCコーディング例

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <pdutluoc.h>   ..........................................................1

void old_data_delete (
    UTL_UOC_INF         *uocinf             /* A(UOC interface area)      */   ...2
) {
    UTL_UOC_DATA_BUF    *addr_list;         /* A(data address list)       */
    unsigned char       *date_adr;          /* A(DATE)                    */
    static unsigned char cyear[2];          /* compare year               */

    switch(uocinf->req_cd){   ....................................................3
    case UTL_UOC_START:
/*------------------------------------------------------------------------*/
/*  START                                                                 */
/*------------------------------------------------------------------------*/
        cyear[0] = 0x20;                    /* The 21th century           */
        cyear[1] = 0x01;                    /* (2001)                     */
        uocinf->rtn_code = UTL_UOC_NML;
        break;
    case UTL_UOC_EDIT:
/*------------------------------------------------------------------------*/
/*  EDIT                                                                  */
/*------------------------------------------------------------------------*/
        addr_list = uocinf->data_adr;
        date_adr = addr_list->data[3];
        if (memcmp(date_adr,cyear,sizeof(cyear)) < 0){
            uocinf->unload_flg = UTL_UOC_ROWNOPUT;
        }else{
            uocinf->unload_flg = UTL_UOC_ROWPUT;
        }   ......................................................................4
        uocinf->rtn_code = UTL_UOC_NML;
        break;
    case UTL_UOC_END:
    case UTL_UOC_TERM:
/*----------------------------------------------------------------------*/
/*  END                                                                 */
/*----------------------------------------------------------------------*/
        uocinf->rtn_code = UTL_UOC_NML;
        break;
    default:
        strcpy(uocinf->err_msg,"Invalid request code");
        uocinf->rtn_code = UTL_UOC_ERR;
    }
    return;
}

［説明］

HiRDBが提供する，UOC作成用のヘッダを引き込みます。

UOCインタフェース領域のアドレスを引数として受け取ります。

呼び出し種別を判定して，それぞれの処理をします。

データ（日付）を判定して，格納フラグを設定します。

(2)　UOCを使用した表のアンロードの例

表のアンロード時に，BLOBデータをCSV形式に編集します。このとき，1データ1ファイルでUOCデータファイルを作成します。

(a)　データべースの表定義

  CREATE TABLE IMAGE_TBL
           (COL1 INTEGER NOT NULL,
            COL2 CHAR(20) NOT NULL,
            COL3 INTEGER NOT NULL,
            COL4 CHAR(5) NOT NULL,
            COL5 BLOB(100K) IN (LOB_AREA) NOT NULL)
           IN DATA_AREA;

(b)　コマンド形式

 pdrorg -k unld -j -t IMAGE_TBL 制御情報ファイル

(c)　制御情報ファイルの内容

 unload (uoc) uoc_lib=ライブラリ名 param='/usr/tmp/lob,/tmp/uoc_file'
 unlduoc entry=blob_file_create

(d)　UOCコーディング例

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <fcntl.h>
#include <pdutluoc.h>

#define     INT         0xf0                /* INTEGER                   */
#define     CHAR        0xc4                /* CHAR                      */
#define     BLOB        0x92                /* BLOB                      */

void blob_file_create (
    UTL_UOC_INF         *uocinf             /* A(UOC interface area)     */
) {
    static  char         token[] = ",";     /* parameter token           */
    static  char         prefix[40];        /* path name prefix          */
    static  char         filename[80];      /* CSV file name             */
    static  char        *buff = NULL;       /* row edit buffer           */
    static  int          counter = 0;       /* row counter               */
    static  int          file_id = 0;       /* CSV file file ID          */
    int                  lobfid;            /* BLOB file                 */
    int                  leng;              /* total length              */
    int                  int_len;           /* INTEGER length            */
    int                  i;                 /* counter for column        */
    int                  rc;                /* return code               */
    int                 *nagasa;            /* BLOB size                 */
    void                *blobadr;           /* A(BLOB data)              */
    char                *wkadr;             /* work address              */
    UTL_UOC_DATA_BUF    *addr_list;         /* A(data address list)      */
    UTL_UOC_COLUMN_INFO *col_inf;           /* A(column information)     */
    char                *sepachr = ",";     /* separator character       */
    char                *linechr = "¥n";    /* line field character      */
    char                 dmyname[16];       /* temporary name            */
    char                 blobfile[128];     /* BLOB file name            */

    switch(uocinf->req_cd){
    case UTL_UOC_START:
/*-----------------------------------------------------------------------*/
/*  START                                                                */
/*-----------------------------------------------------------------------*/
        if (uocinf->user_param == NULL){
            strcpy(uocinf->err_msg,"Required parameter not specified");
            goto OWARI;
        }

       wkadr = strtok(uocinf->user_param,token);
        if ((wkadr == NULL) ||
            (strlen(wkadr) >= sizeof(prefix))){
            strcpy(uocinf->err_msg,"Invalid parameter");
            goto OWARI;
        }
        strcpy(prefix,wkadr);   ...................................................1
        wkadr = strtok(NULL,token);
        if ((wkadr == NULL) ||
            (strlen(wkadr) >= sizeof(filename))){
            strcpy(uocinf->err_msg,"Invalid parameter");
            goto OWARI;
        }
        strcpy(filename,wkadr);   .................................................1

        file_id = creat(filename,0666);
        if (file_id == -1){
            strcpy(uocinf->err_msg,strerror(errno));
            goto OWARI;
        }
        buff = malloc(1024);
        if (buff == NULL){
            strcpy(uocinf->err_msg,strerror(errno));
            goto OWARI;
        }

        counter = 0;
        strcpy(uocinf->err_msg,"FILE NAME:");
        strcat(uocinf->err_msg,filename);
        uocinf->rtn_code = UTL_UOC_DBG;
        break;
    case UTL_UOC_EDIT:
/*----------------------------------------------------------------------*/
/*  EDIT                                                                */
/*----------------------------------------------------------------------*/
        counter++;
        col_inf = uocinf->dic_inf;
        addr_list = uocinf->data_adr;
        leng = 0;
        wkadr = buff;
        for(i = 0; i < uocinf->col_num; i++){
            switch(col_inf->colinf[i]->clm_type){
            case INT:   ..........................................................2
                int_len = sprintf(wkadr,"%d",*((int*)addr_list->data[i]));
                leng += int_len;
                wkadr += int_len;
                break;
            case CHAR:   .........................................................2
                strncpy(wkadr,addr_list->data[i],col_inf->colinf[i]->clm_len);
                leng += col_inf->colinf[i]->clm_len;
                wkadr += col_inf->colinf[i]->clm_len;
                break;

            case BLOB:   .........................................................3
                sprintf(dmyname,"%010d",counter);
                strcpy(blobfile,prefix);
                strcat(blobfile,dmyname);
                lobfid = creat(blobfile,0666);
                if (lobfid == -1){
                    strcpy(uocinf->err_msg,strerror(errno));
                    goto OWARI;
                }
                nagasa = (int *)((int)(addr_list->data[i]) + sizeof(int));
                blobadr = (void *)((int)(addr_list->data[i]) +
                                                        (sizeof(int) * 2));
                rc = write(lobfid,blobadr,*nagasa);
                if (rc != *nagasa){
                    strcpy(uocinf->err_msg,strerror(errno));
                    goto OWARI;
                }
                rc = close(lobfid);
                if (rc == -1){
                    strcpy(uocinf->err_msg,strerror(errno));
                    goto OWARI;
                }
                strcpy(wkadr,blobfile);
                leng += strlen(blobfile);
                wkadr += strlen(blobfile);
                break;
            default:
                strcpy(uocinf->err_msg,"Not support data type");
                goto OWARI;
            }
            strcpy(wkadr,sepachr);
            leng += 1;
            wkadr++;
        }
        wkadr--;
        strcpy(wkadr,linechr);

        rc = write(file_id,buff,leng);
        if (rc != leng){
            strcpy(uocinf->err_msg,strerror(errno));
            goto OWARI;
        }
        uocinf->rtn_code = UTL_UOC_NML;
        break;

    case UTL_UOC_END:
    case UTL_UOC_TERM:
/*----------------------------------------------------------------------*/
/*  END                                                                 */
/*----------------------------------------------------------------------*/
        if (buff != NULL){
            free(buff);
            buff = NULL;
        }
        if (file_id != 0){
            rc = close(file_id);
            file_id = 0;
            if (rc == -1){
                strcpy(uocinf->err_msg,strerror(errno));
                goto OWARI;
            }
        }
        uocinf->rtn_code = UTL_UOC_NML;
        break;
    default:
        strcpy(uocinf->err_msg,"Invalid request code");
        goto OWARI;
    }
    return;

OWARI:
    uocinf->rtn_code = UTL_UOC_ERR;
    return;
}

［説明］

制御情報ファイルに指定したユーザパラメタを，UOC内の変数に展開します。

INTEGER，CHARの列データは，文字形式でUOCデータファイルに出力します。

BLOB列のデータは，行単位にファイルに出力し，ファイル名をUOCデータファイルに出力します。

8.13　特殊な表に対してpdrorgを実行する場合の注意事項

8.13.1　抽象データ型がある表

(1)　表のアンロード

抽象データ型がある表をアンロードする場合の注意事項を次に示します。

(a)　LOB属性の抽象データ型が定義されている表のアンロードだけをする場合

抽象データ型の列に定義されたプラグインがアンロード機能，又はコンストラクタ逆生成関数を持つ場合だけアンロードできます。

アンロードだけをする場合は-jオプションを指定してください。

(b)　別表，又は別システムへ表を移行するためのアンロードの場合

同一システム内の別表へデータを移行する場合，移行元の表をアンロードしますが，プラグインによってはアンロード機能，又はコンストラクタパラメタ逆生成機能を持つときだけ移行できることがあります。移行可否については，各プラグインマニュアルを参照してください。

別システムの表へデータを移行する場合，プラグインがコンストラクタパラメタ逆生成関数を持つときだけ移行できることがあります。移行可否については，各プラグインマニュアルを参照してください。

プラグインがコンストラクタ逆生成関数を持っている場合にアンロードするときは，unld_func文にコンストラクタ逆生成関数を指定する必要があります。

(c)　抽象データ型がある表の分割条件変更をする場合

表の分割条件を変更する場合，まず変更前の表をアンロードします。プラグインによっては，アンロード機能，又はコンストラクタ逆生成機能を持つ場合にだけ，表の分割条件の変更ができることがあります。表の分割条件の変更可否については，各プラグインのマニュアルを参照してください。

プラグインがコンストラクタ逆生成関数を持っている場合にアンロードするときは，unld_func文にコンストラクタ逆生成関数を指定する必要があります。

(2)　表へのリロード

抽象データ型がある表をリロードする場合の注意事項を次に示します。

(a)　LOB属性の抽象データ型が定義されている表の場合

アンロード時に-jオプションを指定している場合，リロード時も必ず-jオプションを指定してください。

(b)　別表，又は別システムの表の場合

別表，又は別システムの表へリロードする場合，tblname文を指定します。

アンロード時にコンストラクタパラメタ逆生成関数を指定してアンロードしたアンロードデータファイルを使用する場合，reld_func文にコンストラクタ関数を指定する必要があります。コンストラクタ関数は，アンロード時に指定したコンストラクタパラメタ逆生成関数に対応していなければなりません。コンストラクタ関数とコンストラクタパラメタ逆生成関数の対応については，各プラグインのマニュアルを参照してください。

(c)　抽象データ型がある表の分割条件変更をする場合

アンロード時にコンストラクタパラメタ逆生成関数を指定してアンロードした場合，表の分割条件の変更後に，reld_func文にコンストラクタ関数を指定してリロードします。コンストラクタ関数を指定してリロードする場合，コンストラクタパラメタ逆生成関数を指定してアンロードしたアンロードデータファイルだけ使用できます。

なお，指定するコンストラクタ関数は，アンロード時に指定したコンストラクタパラメタ逆生成関数に対応していなければなりません。コンストラクタ関数とコンストラクタパラメタ逆生成関数の対応については，各プラグインのマニュアルを参照してください。

(3)　pdrorgの機能と制御情報ファイルとの関係

pdrorgの機能と制御情報ファイルとの関係を次の表に示します。

表8‒41　pdrorgの機能と制御情報ファイルとの関係

pdrorgの機能

-kオプション

-jオプション

制御情報ファイル

unload文

lobunld文

tblname文

unld_func文

reld_func文

LOB列構成基表だけの再編成（1）

rorg

−

◎

×

×

×

×

unld

reld

LOB列だけの再編成（3）

rorg

−

×

◎

×

×

×

reld

LOB列構成基表，LOB列格納用RDエリア，及びLOB属性格納用RDエリアの再編成（1，2，及び3）

rorg

◎

◎

×

×

○※２

○※２

unld

○※３

×

reld

×

○※３

表の分割条件変更※１（1，2，及び3）

unld

◎

◎

×

×

○

×

reld

×

○

別表，又は別システムへの移行※１（1，2，及び3）

unld

◎

◎

×

×

○

×

reld

◎

×

○

（凡例）

◎：必ず指定します。

○：任意に指定できます。

×：指定できません。

−：該当しません。

注

pdrorgの機能の括弧内の数字は，対象となるRDエリアを示しています。次の表定義の番号と対応しています。

CREATE TABLE …
    C1 INT,
    C2 SGMLTEXT ALLOCATE(sgmltext IN lob01)     2
    C3 BLOB(10K) IN LOB02                       3
    IN USER01                                   1

注※1

HiRDB/パラレルサーバの場合で，表を複数のバックエンドサーバに分割しているときは，-gオプションを指定する必要があります。

注※2

unld_func文，及びreld_func文を同時に指定する必要があります。

注※3

アンロード時に指定した場合は，リロード時にも必ず指定してください。

(4)　アンロード元の表とリロード先の表で抽象データ型定義が異なる場合のリロード

別表への移行，又はプラグインのバージョンアップによる抽象データ型変更などで，アンロード元の表とリロード先の表とで抽象データ型定義が異なる場合があります。このような場合にリロードするときの注意事項を次に示します。

次の条件をすべて満たす場合はリロードできます。

アンロード時にunld_func文でコンストラクタパラメタ逆生成関数を指定してアンロードしたアンロードデータファイルを使用する場合

アンロード時に指定したコンストラクタパラメタ逆生成関数で逆生成されるパラメタ数とパラメタ属性がすべて一致したコンストラクタ関数を，reld_func文に指定する場合

コンストラクタ関数を指定していない場合，アンロード表とリロード表とで次の項目が一致しているときはリロードできます。

抽象データ型の名称

プラグインID

属性の数

属性のデータ型，及び定義長

LOB属性格納用RDエリア

(5)　表の分割条件を変更した場合のリロード

表の分割条件を変更してリロードする場合，プラグインによってはアンロード時にコンストラクタパラメタ逆生成関数を指定しなければならないものもあります。この場合，unld_func文にコンストラクタパラメタ逆生成関数を指定してアンロードし，表の分割条件を変更した後，reld_func文にコンストラクタ関数を指定してリロードする必要があります。

注意事項を次に示します。

HiRDB/パラレルサーバの場合に複数のバックエンドサーバに分割しているときは，アンロード，リロード共に-gオプションを指定してください。

RDエリア単位にリロードする場合，表の分割条件が異なるとエラーとなります。

LOB列，又はLOB属性を含む抽象データ型がある表の場合，-jオプションを指定してください。

(6)　コンストラクタパラメタ逆生成関数を使用しないでアンロードした場合

コンストラクタパラメタ逆生成関数を使用しないでアンロードした場合，リロードが完了するまでプラグインの登録，及び削除はしないでください。

8.13.2　改竄防止表

(1)　制限事項

行削除禁止期間が指定されていても，pdrorgはデータの再配置をするため，行データはいったん削除されます。アンロード処理とリロード処理とを連続して行うことで，データの改竄を防止します。したがって，改竄防止表に対しては，表の再編成（-k rorg）だけ実行できます。表のアンロード（-k unld），及び表へのリロード（-k reld）は，ある条件下でだけ実行できます。

(a)　表の再編成（-k rorg）の場合

表の再編成をする場合に，使用できない機能を次に示します。

UOCを利用した再編成

同期点指定の再編成

(b)　表のアンロード（-k unld）の場合

基本的には，改竄防止表に対して表のアンロードはできません。ただし，-Wオプションを指定した表のアンロードはできます。

(c)　表のリロード（-k reld）の場合

基本的には，改竄防止表に対して表へのリロードはできません。ただし，表の再編成（-k rorg）のリロード処理が異常終了した場合，それを再実行するためのリロード（-k reld）は実行できます。なお，再実行する場合，-kオプション以外のオプション，及び制御文は変更しないでください（unload文とlobunld文を同時に指定してエラーとなった場合は，unload文又はlobunld文のどちらか一つを指定して再実行してください）。

(2)　実行条件

表の再編成（-k rorg），及び表へのリロード（-k reld）をする場合，改竄防止表を格納しているRDエリアをpdholdコマンドで閉塞しておく必要があります（データの改竄を防止するため）。

(3)　データ未完状態

改竄防止表に対して表の再編成をする場合，エラーなどによってリロード処理が完了していない状態のことをデータ未完状態といいます。

RDエリアがデータ未完状態かどうかを調べるには，pddbstでのRDエリアの論理的解析，又は表単位の解析の実行結果で確認できます。RDエリアがデータ未完状態の場合は，表へのリロード（-k reld）を実行する必要があります。RDエリアがデータ未完状態だと，pdrorgの次の機能を実行できません。

表の再編成（-k rorg）

インデクスの一括作成（-k ixmk）

インデクスの再作成（-k ixrc）

インデクスの再編成（-k ixor）

8.14　規則及び注意事項

8.14.1　規則

(1)　ユティリティの実行について

pdrorgは，HiRDBが稼働中のときだけ実行できます。

pdrorgは，シングルサーバ，又はシステムマネジャがあるサーバマシンで実行してください。

pdrorgを実行する場合，LANG環境変数を設定してください。また，pdrorgの実行環境で，OSがサポートしていない文字コードを使用する場合，PDLANG環境変数を設定する必要があります。LANG，及びPDLANGについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(2)　ユティリティの実行可否について

再編成する表，インデクス，及びLOB列が格納されているRDエリアのオープン属性，RDエリアの状態によって，pdrorgの実行可否が変わります。pdrorgの実行可否については，「コマンド実行時のRDエリアの状態」を参照してください。

また，ディクショナリ表を再編成する場合は，ディクショナリ表が格納されているRDエリアを，pdholdコマンドで閉塞状態にしてください。

(3)　ユティリティの最大同時実行数

pdrorgの最大同時実行数は，システム共通定義のpd_utl_exec_modeオペランドの指定値によって異なります。

pd_utl_exec_mode=0の場合：

最大同時実行数は32です。

pd_utl_exec_mode=1の場合：

最大同時実行数はpd_max_usersオペランドの指定値です。

なお，pdreclaim及びpdpgbfonは内部でpdrorgを呼び出しているため，pdreclaim及びpdpgbfon実行中はpdrorgの最大同時実行数は少なくなります。例えば，pd_utl_exec_mode=0の場合，pdrorgの最大同時実行数は32ですが，pdreclaimが10個起動中のときは，pdrorgの最大同時実行数は22となります。

(4)　ユティリティで処理中の表，インデクスについて

pdrorgで処理中の表やインデクスは，対象資源に対して排他を掛けるため，ほかのUAPやユティリティからアクセスできません。なお，-k unldの場合は，option文のunldenqオペランドの指定によって，アクセス可否が変わります。詳細については，「option文（データ処理に関する情報の記述）」を参照してください。

再編成する表が格納されているRDエリアをpdholdコマンドで閉塞しておけば，UAPが閉塞エラーとなるため，UAPの実行によってユティリティの実行が排他待ちになることや，ユティリティの実行によってUAPの実行が排他待ちになることを防止できます。pdrorgの排他制御モードについては，「ユティリティの排他制御モード」を参照してください。

再編成中の表やインデクスに対して，定義系SQLは実行しないでください。実行すると，pdrorgが異常終了します。スキーマ単位の再編成をしている場合は，該当スキーマが持つすべての表とインデクスが対象となります。再編成中の定義系SQL実行を防止するためには，再編成する表，及びインデクスを格納したRDエリアを，pdholdコマンドで閉塞状態にしておく必要があります。なお，再編成中に同一RDエリア内の別の表を参照する場合には，pdholdコマンドで参照可能な閉塞状態にしておきます。

定義系SQLを実行中のRDエリアにある表やインデクスに対して，データベース作成ユティリティを実行すると，排他待ちとなります。

再編成実行中の表に対して，定義変更や，UAP，他ユティリティを同時に実行しないでください。実行すると，UAP，他ユティリティが排他待ちエラーとなります。また，シェルなどでアンロードとリロードの処理を分けて実行する場合，表のデータが0件になったり，更新結果が無効になったりします。

(5)　分割キーのレンジ変更について

リロード処理の前に分割キーのレンジを変更したとき，再定義したレンジの範囲にアンロードしたデータが納まらない場合，リロード中にそのデータを見付けた時点でエラーとなり，処理を終了します。この場合，アンロードしたデータがすべて納まるように，分割キーのレンジを定義し直し，再度リロード処理をしてください。

(6)　データ連動の対象となる抽出側データべースに対するユティリティを実行時のログ取得モードについて

データ連動の対象となる抽出側データべースに対してpdrorgを実行する場合，-lオプションにはn又はpを指定してください（ログレスモード又は更新前ログ取得モードで実行してください）。ログ取得モードで実行した場合，抽出側データべースに対して実行された一部の更新情報だけが反映側データべースに転送されるため，抽出側と反映側のデータべースの内容が不整合になります。

(7)　DECIMAL型の符号正規化機能について

pdrorgでは，DECIMAL型の符号正規化機能の使用有無に関係なく，DECIMAL型の符号部の正規化はしません。したがって，DECIMAL型の符号正規化機能を使用しないHiRDBシステムで作成したアンロードデータファイルを使用して，DECIMAL型の符号正規化機能を使用するHiRDBシステムへのリロードはできません。

データベース中の正規化されていないDECIMAL型の符号部を正規化する場合は，-Wオプション指定のアンロードデータファイルを作成し，データベース作成ユティリティでデータを格納し直してください。DECIMAL型の符号正規化機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(8)　インデクス作成時のファイルの出力先について

インデクス作成時，制御情報ファイルでファイルの出力先を指定しない場合，次の表に示すディレクトリにファイルを出力します。

表8‒42　pdrorgがファイルを出力するディレクトリ

制御文※１の指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIR※２の指定

あり

なし

あり

制御文に指定したディレクトリ又はファイル

なし

pd_tmp_directoryに指定したディレクトリ

TMPDIRに指定したディレクトリ

/tmpディレクトリ

注※1　

idxwork文，sort文

注※2　

init（OSのプロセス）から起動されたプロセスサーバプロセス（pdprcd）に設定される環境変数

(9)　インデクス情報ファイルの出力先について

pdrorgの処理内容と制御文の指定によって，インデクス情報ファイルの出力先が変わります。インデクス情報ファイルの出力先を次の表に示します。

表8‒43　インデクス情報ファイルの出力先

pdrorgの処理内容

制御文

インデクス情報ファイルの出力先

index文

idxname文

idxwork文

-k rorg，

-k reld，

-k ixmk

あり※

×

−

index文で指定したインデクス情報ファイル

なし

×

あり

idxwork文で指定したディレクトリ

なし

×

なし

表「pdrorgがファイルを出力するディレクトリ」参照

-k ixrc，

-k ixor

×

あり

あり

idxwork文で指定したディレクトリ

×

あり

なし

表「pdrorgがファイルを出力するディレクトリ」参照

あり

×

−

index文で指定したインデクス情報ファイル

（凡例）

×：指定できません。

−：指定の有無は，インデクス情報ファイルの出力先に関係しません。

注※

横分割表の場合は，指定したRDエリアだけが対象であるため，指定していないRDエリアについてはindex文なしの項目が該当します。

(10)　リバランス表の再編成

リバランス表にRDエリアを追加した場合，そのリバランス表に対してpdrbalを実行（リターンコード=0）していないと，追加したRDエリアの再編成（RDエリア単位の再編成）はできません。

リバランス表にRDエリアを追加した場合，追加したRDエリアに対するpdrorgの実行可否を次の表に示します。

表8‒44　リバランス表に追加したRDエリアに対するpdrorgの実行可否

-kオプション

表の状態

RDエリアの追加〜pdrbal実行前

pdrbal途中※

（リターンコード4）

pdrbal完了後

（リターンコード0）

既存

追加

既存

追加

unld

○

×

○

○

○

rorg，reld

表単位

○

×

○※

○※

○

RDエリア単位

○

×

×

×

○

ixmk

○

○

○

○

○

ixrc

○

○

○

○

○

ixor

○

○

○

○

○

（凡例）

既存：表定義（CREATE TABLE）で指定している既存のRDエリア

追加：ALTER TABLE ADD RDAREAで追加したRDエリア

○：pdrorgを実行できます。

×：pdrorgは実行できません。

注※

リバランス途中にリロードする場合は，-gオプションを指定してください。また，LOB列，及びLOB属性の抽象データ型列がある場合は，同時に-jオプションも指定してください。-gオプションを指定して再編成をすると，データの再配置はされますが，そのリバランス表はまだリバランス完了となっていないため，リロード後に必ずpdrbalを実行してリターンコード=0になることを確認してください。

表をアンロードした後に，その表にRDエリアを追加し，リロードする場合の手順を次に示します。

pdrorgを実行（-k unld）

ALTER TABLE ADD RDAREAでRDエリアを追加

PURGE TABLEで全行削除

pdrbalを実行

pdrorgを実行（-k reld）

上記の手順を実行する場合，pdrorgには必ず-gオプションを指定してください。-gオプションを指定しないとエラーとなります。また，LOB列又はLOB属性の抽象データ型列があるリバランス表の場合は，同時に-jオプションも指定してください。

(11)　更新凍結状態のRDエリアに対する処理

更新凍結状態のRDエリアにある表に対して，-k rorg（再編成）又はreld（リロード）を実行する場合，ユーザLOB用RDエリアの管理領域を更新できないため，エラーとなります。また，LOB列構成基表だけを再編成又はリロードする場合も，同様にエラーとなります。

(12)　SEGMENT REUSE指定の表に対するリロード

SEGMENT REUSE指定の表にリロードする場合，SEGMENT REUSEの指定は無効となります。

(13)　32bit版と64bit版のHiRDBのアンロードデータファイルの互換性について

32bit版，又は64bit版のHiRDBでアンロードしたアンロードデータファイルは，お互いのbitモードのHiRDBでリロードし，データを移行できます。移行できる条件は，同一のbitモードのHiRDB間で移行できる条件と同じです。

(14)　一時表に対するpdrorgの実行

一時表に対して，pdrorgは実行できません。-tオプションに一時表を指定して実行すると，pdrorgはKFPL15231-Eメッセージを出力して，エラー終了します。スキーマ単位の再編成（-tオプションにallを指定）の場合，pdrorgはスキーマに定義された一時表の処理をスキップします。

(15)　再編成によってRDエリアの格納不足が発生するケースについて

次のケースでは，再編成のリロード時にRDエリアの容量不足が発生するおそれがあります。容量不足が発生した場合は，リロードの再実行前にRDエリアを拡張してください。

リバランス機能を持つハッシュ関数で横分割された表の場合

リバランス機能を持つハッシュ関数でFIXハッシュ分割した表を再編成する場合に，アンロードとリロードの間に分割条件を変更すると，表格納RDエリアに空きページがあっても，空きセグメントがないためにRDエリアの容量が不足することがあります。これは，格納条件の変更によって，アンロードしたときに格納されていたセグメントとは別のセグメントにリロードする必要が生じたが，新たなセグメントを確保できないためです。

定義時に空き領域比率（PCTFREEオペランド）に0以外を指定した表，インデクスの場合

表の運用中に空き領域がなくなり，満杯状態になったRDエリアの表又はインデクスに対して再編成をした場合に，定義時の空き領域比率が適用されてRDエリアの容量不足が発生することがあります。

このケースで，暫定的にRDエリアの拡張をしないでリロード処理を完了させたい場合，option制御文のtblfree，idxfreeオペランドを指定すると，一時的に空き領域比率を変更できます。詳細については，「option文（データ処理に関する情報の記述）」を参照してください。

データが格納されている表にON ROW EXISTS指定の列追加をした場合

表に追加した列の既定値が格納されるため，表容量が増加し，RDエリアの容量不足が発生することがあります。これは，列を追加した時点では，表に既定値データが実際に格納されていない状態となり，行の更新や再編成のタイミングで追加列のデータが格納されるためです。

(16)　再編成によってDB行長が伸長するケースについて

次のケースでは，再編成のリロード時にDB行長が伸長し，行長がRDエリアのページ長を超えてエラーとなるおそれがあります。エラーが発生した場合は，KFPA11809-Iメッセージに従って，RDエリアのページ長を拡張してください。

データが格納されている表にON ROW EXISTS指定の列追加をした場合

8.14.2　注意事項

(1)　リターンコードについて

pdrorgのリターンコードを次に示します。

0：正常終了。

4：正常終了（処理を一部スキップしました）。

8：異常終了。

(2)　シンクポイントダンプの取得について

再編成処理（pdrorg -k rorg）の実行中は，一つの処理が完了するまでトランザクションが決着しないため，シンクポイントを取得できません。一つの処理とは，アンロード処理，リロード処理，及びインデクス作成処理のことをいいます。

このため，pdrorgコマンドとともにほかのUAPなどを実行した場合に，システム障害が発生したとき，再開始に要する時間が長くなるため，できるだけpdrorgコマンドとほかのUAPなどは同時に実行しないようにしてください。

同期点指定の再編成，及び同期点指定のリロードの場合，任意の行数単位にシンクポイントを取得できます。このため，通常のシンクポイントを取得しない再編成及びリロードに比べると，異常終了時の再開始に要する時間は短くなります。

なお，アンロード処理だけ（pdrorg -k unld）の場合はデータベースを更新しないため，pdrorgコマンドの実行中でもシンクポイントが取得できます。

(3)　ユティリティ実行中の処理の中断について

pdrorg実行中に処理を中断したい場合は，pdcancelコマンドを使用します。なお，pdrorgが無応答障害（定例ジョブなど，一定時間で再編成処理が終わるはずなのに終わらない）と判断して強制終了させる場合は，pdlsコマンド（-d rpc -a指定）の表示結果をリダイレクトでファイルに取得した後，pdcancel -dコマンドを実行してください。

この場合，処理はロールバックされます。このときのデータベースの状態，及び回復方法については，「エラー時のデータベースの状態とその回復方法」を参照してください。

再編成時期予測機能を使用している場合，pdrorgをkillコマンドなどのシグナル割り込みで強制終了すると，運用履歴表が更新できません。再編成時期予測機能を使用している場合にpdrorgを終了させるときは，必ずpdcancelコマンドを使用してください。

(4)　ユティリティ実行中の定義情報の変更について

表をアンロードしてからリロードするまでの間に，次の定義系SQLは実行しないでください。

ALTER TABLE

DROP TABLE，CREATE TABLEによる表定義の再作成

ただし，分割キーの分割条件を変更する場合及びハッシュ関数を変更する場合は実行できます。

(5)　ユティリティ実行後の結果について

pdrorgの結果は，データベース状態解析ユティリティで確認できます。

(6)　リロード時の分割キーの分割条件の変更について

リロード時に分割キーの分割条件を変更する場合，次の指定をするとエラーとなります。

-kオプションでのrorgの指定

-rオプションの指定

(7)　マルチボリュームMTを使用する場合について

マルチボリュームMTを使用する場合，ボリュームの切り替え操作にMTguideを使用しますので，サーバマシンにMTguideが組み込まれている必要があります。

(8)　RDエリア再初期化時のインデクスの状態について

データベース構成変更ユティリティでRDエリアを再初期化した場合，再初期化対象のRDエリアに関連するインデクスが未完状態となることがあります。再初期化によって非分割キーインデクスが未完状態となった場合は，必ずインデクス一括作成モードで表単位に再編成してください。RDエリアの再初期化前に出力されたインデクスファイルでインデクスを一括作成すると，データベースが破壊されることがあります。

(9)　系切り替え機能を利用する場合について

系切り替え機能を利用する場合，-k rorgで再編成するのではなく，-k unldと-k reldに分けて再編成することをお勧めします。この場合，アンロード処理が完了したアンロードデータファイルを使用して，系切り替え先でリロードが続行できます。このとき，アンロードデータファイルはDATなどの磁気テープ装置，又はキャラクタ型スペシャルファイルで作成したHiRDBファイルを使用してください。ブロック入出力をする通常ファイルでアンロードデータファイルを作成すると，系切り替えでOSのバッファが破棄されるため，アンロード処理がリターンコード0で終了していても，アンロードデータファイルに出力されている内容は保証されません。

(10)　アンロードデータファイル作成時，pdrorgが異常終了した場合について

アンロードデータファイル作成時，pdrorgが異常終了した場合，不正なファイルが残っていることがあります。このとき，pdrorgを再実行すれば，残っているファイルに上書きされます。そのため，再実行しない場合はそのファイルを削除してください。ファイルが通常ファイルの場合は，OSのrmコマンドで削除してください。HiRDBファイルの場合は，pdfrmコマンドで削除してください。

表の再編成中，リロード処理でpdrorgが異常終了した場合，ロールバックされてデータベース中のデータが消失した状態になります。これを回復する場合は，アンロード処理で作成されたアンロードデータファイルを使用して，リロード処理だけを実行します。このとき，複数の表を一つのアンロードデータファイルに連続して出力するような実行方法にすると，異常終了したpdrorgの後に続く別の表のアンロード処理でアンロードデータファイルが上書きされ，アンロードデータファイル中にもデータベース中にもデータがない状態になります。そのため，バックアップからの回復ができない場合は，必ず表ごとに別々のアンロードデータファイルを指定してください。

(11)　システム間のアンロード，リロードについて

システム間のアンロード，及びリロードをする場合の注意事項を次に示します。

異なるバイトオーダのシステム間でのアンロード及びリロードはできません。

異なる文字体系のシステム間でのアンロード及びリロードはできません。

アンロードデータファイル中には，行データ以外にHiRDBのバージョン固有の制御情報が入っています。このため，あるバージョンのHiRDBでアンロードしたアンロードデータファイルを，異なるバージョンのHiRDBへリロードする場合，上位互換は保証されますが，下位互換は保証されません。下位バージョンのHiRDBへデータをリロードする場合は，-Wオプションを指定してアンロードしたアンロードデータファイルを使用してください。

表に抽象データ型列が定義されている場合，アンロードするときにコンストラクタパラメタ逆生成関数を使用する必要があります。

アンロード元の表とリロード先の表の表定義が異なる場合，条件によってリロードができないことがあります。リロードができない条件については，「アンロード元の表とリロード先の表の表定義が異なる場合のリロード実行可否」を参照してください。

(12)　分割キーのレンジ，又はハッシュ関数を変更した場合について

分割キーのレンジを変更した場合，又はハッシュ関数を変更した場合は，次に示すときだけ変更した分割条件に対応して，RDエリアにデータを振り分けて格納します。ただし，分割キーの列を変更した場合，及びLOB列がある表で-jオプションを指定していない場合を除きます。

HiRDB/シングルサーバでリロードする場合

HiRDB/パラレルサーバで，-gオプション指定のアンロードデータファイルからリロードする場合

また，キーレンジ分割，フレキシブルハッシュ分割，又はFIXハッシュ分割をそれぞれ別の分割方法に変更する手順については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(13)　表定義が同じ場合のアンロード，リロードについて

表定義が同じ場合，HiRDB/シングルサーバの表をアンロードしてHiRDB/パラレルサーバの表へリロード，又はその逆にHiRDB/パラレルサーバの表をアンロードしてHiRDB/シングルサーバの表へリロードできます。ただし，LOB列がある表の場合は，-jオプションを指定してアンロード・リロードする必要があります。

HiRDB/パラレルサーバの表をアンロードしてHiRDB/シングルサーバにリロードする場合，複数サーバに分割格納された表をアンロードするときには-gオプションを指定して1個のアンロードデータファイルを作成する必要があります。

表定義が異なる場合や，サーバ単位に出力されるアンロードデータファイルを使用したい場合は，-Wオプション指定のアンロードをして，pdloadでデータロードしてください。また，横分割表にクラスタキーインデクスを定義している場合，アンロードデータファイル中のデータはRDエリア単位にはクラスタキー順に並んでいますが，表全体としてはクラスタキー順に並んでいない状態となります。この場合，クラスタリング順序エラーとして扱われます。したがって，pdloadで-xオプションを指定するか，又はRDエリア単位に処理をする必要があります。

(14)　ラージファイルの利用について

ラージファイルを利用すると，1ファイル2ギガバイトを超えるファイルを使用できます。pdrorgで使用するファイルのラージファイル利用可否を次の表に示します。なお，プロセスが生成できるファイルサイズの上限は，OSの設定値が有効となります。

HiRDB管理者及びルートユーザでのシステム資源の制限値は，生成するファイルサイズより大きな値，又は無制限にしてください。特に，AIXはデフォルトのファイルサイズが1ギガバイトのため，注意が必要です。システム資源の制限値は，OSのlimitコマンド又はulimitコマンドで確認できます。AIXでファイルサイズ制限を変更する場合，/etc/security/limitsファイルの修正も必要です。詳細については，各OSのマニュアル，及びシェルのマニュアルを参照してください。なお，HiRDBはOSのinitから起動されるプロセスのため，ルートユーザが変更した値を有効にするにはOSの再起動が必要です。

表8‒45　pdrorgで使用するファイルのラージファイル利用可否

ファイル種別

ラージファイルの利用可否

アンロードデータファイル

○

LOBデータのアンロードファイル

○

インデクス情報ファイル

○

ソート用ワークファイル

○

MT属性定義ファイル

×

処理結果ファイル

○

（凡例）

○：利用できます。

×：利用できません。

(15)　抽象データ型の列を持つ表へのリロード処理について

LOB列構成基表格納RDエリア，LOB列格納RDエリア，又はLOB属性格納RDエリアのどれかを再初期化した場合，-j指定でアンロードしたアンロードデータファイルだけリロードできます。このとき，リロード時にも-jオプションを指定してください。

-gオプションを指定しないで表単位に処理をする場合，表があるバックエンドサーバ数分のディクショナリサーバプロセスが必要になります。

(16)　プラグインインデクスに対するインデクスの一括作成及びインデクスの再作成の実行可否について

プラグインインデクスに対するインデクスの一括作成及びインデクスの再作成の実行可否を次に示します。

提供機能

インデクスの一括作成

インデクスの再作成

プラグインインデクス遅延一括作成機能

実行できます

実行できます

プラグインインデクス一括作成部分回復機能

実行できます

実行できます

上記機能なし

実行できません

実行できます

プラグインインデクスに対してインデクスの一括作成（-k ixmk指定）を実行する場合は，プラグインが「インデクス一括作成部分回復機能」を提供している必要があります。提供していない場合は実行できないため，インデクスの再作成（-k ixrc指定）でインデクスを作り直す運用となります。

「プラグインインデクス遅延一括作成機能」を使用して作成されたインデクス情報ファイルを指定してのインデクス一括作成を実行して正常終了した場合，指定したインデクス情報ファイルを削除します。また，この機能で使用するインデクス情報ファイル出力ディレクトリ（サーバ定義のpd_plugin_ixmk_dir指定ディレクトリ）は，インデクス一括作成（-k ixmk指定）処理以外ではpdrorgが使用するファイル入出力領域として使用しないでください。

(17)　HiRDB Text Search Plug-inの差分インデクス機能を使用している場合のユティリティが更新するインデクスについて

HiRDB Text Search Plug-inの差分インデクス機能を使用している場合，pdrorgが更新するインデクスを次に示します。

インデクス作成方法

環境変数PDPLUGINNSUBの指定

Y

N

設定なし

インデクス再作成の場合（-k ixrc指定）

Ｍ

Ｍ

Ｍ

全インデクスを作成する場合（-k ixmk指定）

Ｍ

Ｍ

Ｍ

追加データのインデクスを作成する場合（-k ixmk指定）

Ｓ

Ｍ

Ｓ

（凡例）

Ｍ：MASTERインデクスを更新

Ｓ：差分インデクスを更新

(18)　再編成，又はリロード対象の表を基にリストを作成している場合について

再編成，又はリロード対象の表を基にリストを作成している場合，再編成後，又はリロード後にリストを使用して検索したときには，次のような現象が発生します。

誤った行を取り出す。

検索した行が見付からない。

このような場合，リストを使用して検索する前に，リストを再作成する必要があります。

(19)　DVD-RAM装置の使用について

pdrorgのアンロードデータファイルとして，DVD-RAM装置を利用できます。ただし，使用するOSで各装置が使用できる場合に限ります。

通常ファイルとして使用する場合，磁気ディスクなどのデバイスと同様に，媒体上にファイルシステムを作成して使用できます。

HiRDBファイルとして使用する場合，HiRDBファイルシステム領域作成時（pdfmkfsコマンド実行時）にセクタ長を指定する必要があります。

(20)　ユティリティ実行時に使用できるファイルの媒体について

pdrorg実行時に使用できるファイルの媒体を次に示します。なお，通常ファイルを使用する場合，ファイルのオープン処理に伴い，OSのオペレーティングシステムパラメタ（カーネルパラメタ）のmaxfiles，nfile，及びnflocksを消費します。

ファイル

通常ファイル

HiRDBファイル

固定長ブロックテープ

可変長ブロックテープ

アンロードデータファイル

○

○

○

○

LOBデータのアンロードファイル

○

○

○

○

インデクス情報ファイル

○

△

×

×

ソート用ワークファイル

○

×

×

×

処理結果ファイル

○

×

×

×

（凡例）

○：使用できます。

△：インデクス遅延一括作成機能を利用するときだけ使用できます。

×：使用できません。

(21)　コマンド実行画面に出力されるメッセージ

pdrorgは，標準出力に経過メッセージを出力しながら処理をします。また，エラー発生時は，標準エラー出力にエラーメッセージを出力します。標準出力や標準エラー出力への出力が抑止されている環境でpdrorgを実行した場合，メッセージ出力待ちでpdrorgが無応答状態となったり，メッセージログファイルにKFPL20003-Eメッセージを出力してpdrorgが異常終了したりすることがあります。そのため，標準出力や標準エラー出力への出力ができない環境ではpdrorgを実行しないでください。なお，標準出力，及び標準エラー出力に出力するメッセージの順序や数は，メッセージログファイルやsyslogfileと一致しないことがあります。正確にメッセージを把握したい場合は，メッセージログファイル又はsyslogfileを参照してください。

(22)　共用表の再編成

共用表を再編成する場合，共用表，及び処理対象の表に定義した共用インデクスを格納しているRDエリアに対して，EXモードで排他を掛けます。そのため，該当するRDエリアに定義したほかの表やインデクスも参照，及び更新ができません。共用表を再編成する場合の排他制御モードについては，「ユティリティの排他制御モード」を参照してください。

(23)　参照制約又は検査制約を定義した表の再編成

参照制約又は検査制約を定義した表に対して，再編成又はリロードを実行する場合の検査保留状態の設定可否については，「constraint文（検査保留状態に関する記述）」を参照してください。また，検査保留状態については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

なお，次の条件をすべて満たす場合は，検査保留状態となった表の再編成（-k rorg）は実行できません。

表単位に再編成を実行する（-rオプションを指定しない）。

フレキシブルハッシュ分割，又はフレキシブルハッシュ分割を含むマトリクス分割で分割された表である。

HiRDB/シングルサーバである，又はHiRDB/パラレルサーバで-gオプションを指定している。

表が検査保留状態かどうかは，ディクショナリ表（SQL_TABLES表）のCHECK_PEND列，又はCHECK_PEND2列の値から判断します（列値が'C'の場合は検査保留状態）。

(24)　再編成時期予測機能との関係

表やインデクスを再編成した運用履歴は，再編成時期予測結果に反映されます。

また，pdrorgが異常終了した状態のまま，pddbstの状態解析結果蓄積機能を実行すると，再編成完了後の状態で再編成時期を予測できないため，予測結果が不正※となります。したがって，pdrorgが異常終了した場合は，pdrorgを再実行して正常終了させた状態で，pddbstの状態解析結果蓄積機能を実行してください。

注※

例えば，リロード中に異常終了してロールバックした状態のDBの情報を蓄積すると，空のDBを基に予測してしまいます。

(25)　BLOB列を含む表を再編成する場合

BLOB列を含む表の再編成をする場合，データをアンロードしてからリロードするまでの間に，RDエリアの名称を変更しないでください。RDエリアの名称を変更する前に取得したアンロードデータファイルを，名称を変更したRDエリアの表にリロードするとエラーとなります。

(26)　文字集合UTF-16を指定したCHAR型の列を分割キーとした表のエクスポート

文字集合UTF-16を指定したCHAR型の列を，キーレンジ分割又はマトリクス分割（境界値指定のキーレンジ分割）の分割キーとして指定した表の場合，分割キーの長さが列の定義長を超えるときは，その表をエクスポートできません。

(27)　FLOAT，SMALLFLT列を含む表のアンロードについて

FLOAT型・SMALLFLT型の列を含む表のpdload用アンロードファイルを作成する場合，バージョン10-05以前と比較して，次の変更点があります。

dat，extdat，fixtext形式でのアンロード時，FLOAT型・SMALLFLT型の出力値の形式が変わります。

詳細はマニュアル「HiRDB システム導入・設計ガイド」の「バージョン10-05以前とのFLOAT型・SMALLFLT型の差異について」を参照してください。

なお，作成したpdload用アンロードファイルをデータベース作成ユティリティによってロードした際の格納結果については，バージョン10-05以前と差異はありません。

8.14.3　BOMを持つファイルの使用

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdrorgの入力ファイルには，BOMを持つファイルを使用できることがあります。pdrorgでのBOMを持つファイルの使用可否を次の表に示します。なお，pdrorgの入力ファイルとしてBOMを持つファイルを使用しても，BOMは読み飛ばされます。また，pdrorgで出力されるファイルにはBOMは付きません。

表8‒46　pdrorgでのBOMを持つファイルの使用可否（UTF-8の場合）

制御文

入力ファイル

BOMを持つファイルの使用

−

制御情報ファイル

○

emtdef

MT属性定義ファイル

×

unload

アンロードデータファイル

×

EasyMT情報ファイル

×

index

インデクス情報ファイル

×

lobunld

LOBデータのアンロードファイル

×

EasyMT情報ファイル

×

（凡例）

○：使用できます。

×：使用できません。

−：該当しません。

8.15　エラー時のデータベースの状態とその回復方法

pdrorg実行時にエラーが発生した場合は，次の表を参照し，どこまで処理がされているかを調べて，該当する参照先の対処を実施してください。

アンロード処理とリロード処理を連続して実行する再編成（-k rorg）では，リロード中にエラーが発生した表はデータ未完状態となり，pdrorgの再実行はリロード（-k reld）だけ実行できます。また，データ未完状態の表は，pdloadでの追加モードのデータロード，及びpdrbalでのリバランス処理はできません。なお，アンロードデータファイルを削除してリロードができない状態の場合は，PURGE TABLE文を実行するか，又は作成モードのpdloadを実行することでデータ未完状態は解除できます。

対処の実施は，発生したエラー原因を取り除いた後に行ってください。

表8‒47　pdrorg実行時に出力されるメッセージと対処方法（1/2）

pdrorg実行時のオプション指定値

pdrorg実行時に出力されるメッセージ

KFPL

00712-I，KFPL

00732-I

KFPL

00714-I，KFPL

00734-I

KFPL

00721-I

KFPL

00712-I，KFPL

00732-I

KFPL

00714-I，KFPL

00734-I

KFPL

00725-I

KFPL

00715-I

KFPL

00716-I

アンロード

開始

アンロード

完了

データ

削除

リロード

開始

リロード

完了

インデクス

情報検索

インデクス

作成開始

インデクス

作成完了

-k rorg -jなし

「アンロード時」

「アンロード時」

「リロード時」

「リロード時」

「リロード時」

−

「リロード時」

「リロード時」

-k rorg -jあり

-k unld -jなし

−

−

−

−

−

-k unld -jあり

-k reld -jなし

−

−

「リロード時」

「リロード時」

「リロード時」

「リロード時」

「リロード時」

-k reld -jあり

-k ixmk

−

−

−

「インデクスの一括作成，及びインデクスの再作成実行時」

「インデクスの一括作成，及びインデクスの再作成実行時」

-k ixrc

「インデクスの一括作成，及びインデクスの再作成実行時」

-k ixor

「インデクスの再編成実行時」

「インデクスの再編成実行時」

「インデクスの再編成実行時」

（凡例）−：該当しません。

表8‒48　pdrorg実行時に出力されるメッセージと対処方法（2/2）

pdrorg実行時のオプション指定値

pdrorg実行時に出力されるメッセージ

KFPL00712-I，KFPL00732-I

KFPL00714-I，KFPL00734-I

KFPL00721-I

KFPL00712-I，KFPL00732-I

KFPL00714-I，KFPL00734-I

LOBデータアンロード開始

LOBデータアンロード完了

LOBデータ削除

LOBデータリロード開始

LOBデータリロード完了

-k rorg -jなし

「LOBデータのアンロード時」

「LOBデータのアンロード時」

「LOBデータのリロード時」

「LOBデータのリロード時」

「LOBデータのリロード時」

-k rorg -jあり

−

−

−

−

−

-k unld -jなし

「LOBデータのアンロード時」

「LOBデータのアンロード時」

-k unld -jあり

−

−

-k reld -jなし

「LOBデータのアンロード時」

「LOBデータのアンロード時」

「LOBデータのリロード時」

「LOBデータのリロード時」

「LOBデータのリロード時」

-k reld -jあり

−

−

−

−

−

-k ixmk

-k ixrc

-k ixor

（凡例）−：該当しません。

8.15.1　アンロード時

アンロード処理中には，エラーが発生してもデータベースの内容はアンロード前と変わりません。したがって，エラーが発生した場合は，エラー要因を取り除いた後に再度アンロードしてください。

8.15.2　リロード時

リロード中にエラーが発生したときの，データベースの状態とその回復方法を次の表に示します。pdrorg実行時のオプションの指定によって回復方法が異なります。リロード中にエラーが発生したときは，そのときに指定したオプションとエラー発生直前に出力されたメッセージを次の表で調べて，回復してください。

表8‒49　リロード中にエラーが発生したときのデータベースの状態とその回復方法

オプション

区分

エラー発生直前の出力メッセージ

-l

指定

-i

指定

なし

KFPL00721-I

KFPL00712-I，KFPL00732-I

KFPL00714-I，KFPL00734-I

KFPL00715-I

KFPL00716-I

行データ削除完了

リロード開始

リロード完了

インデクス作成開始

インデクス作成完了

a

s

状態

実行前状態

空※２

空※２※４

表作成完了

−

−

回復

再実行

リロード再実行※１

リロード再実行※１

不要

c

状態

実行前状態

空※２

空※２※４

表作成完了

インデクス未作成

インデクス作成完了

回復

再実行

リロード再実行※１

リロード再実行※１

インデクス作成

インデクス作成

不要

p

s

状態

実行前状態

空※２

空※２※４

表作成完了

−

−

回復

再実行

リロード再実行※１

リロード再実行※１

不要

c

状態

実行前状態

空※２

空※２※４

表作成完了

インデクス未作成

インデクス作成完了

回復

再実行

リロード再実行※１

リロード再実行※１

インデクス作成

インデクス作成

不要

n

s

状態

保証なし

空※２

保証なし

表作成完了

−

−

回復

DB回復後再実行

DB回復後リロード再実行

DB回復後リロード再実行

不要

c

状態

保証なし

空※２

保証なし

表作成完了

インデクス未作成

インデクス作成完了

回復

DB回復後再実行

DB回復後リロード再実行

DB回復後リロード再実行

DB回復後リロード再実行※３

DB回復後リロード再実行※３

不要

（凡例）

−：

該当しません。

区分：

状態　エラー発生時のデータベースの状態

回復　回復方法

注※1

ログ取得モード又は更新前ログ取得モード実行時にエラーが発生した場合，表データが空になっている場合があるので注意してください。この場合，アンロードから再実行すると空のデータをアンロードするため，表データがなくなります。したがって，この場合はリロードだけ再実行してください。

また，-jオプションなしでunload文及びlobunld文を指定して再編成をしている場合に，リロード再実行となったときは，次の手順で実行してください。

unload文だけを指定してLOB列構成基表へリロードをする。

lobunld文だけを指定して表の再編成をする。

注※2

KFPL00721-Iメッセージで出力されたRDエリアだけデータが空になります。

注※3

表格納用RDエリアとインデクス格納用RDエリアが異なる場合，表格納用RDエリアの閉塞を解除した後，インデクス格納用RDエリアを再初期化して，インデクスの再作成（-k ixrc）だけ実行する方法もあります。詳細については，マニュアル「HiRDB システム運用ガイド」のインデクスの一括作成処理中にエラーが発生したときの対処方法を参照してください。

注※4

同期点指定の場合，KFPL00800-Iメッセージに出力されている行数までデータは格納されます。

8.15.3　インデクスの一括作成，及びインデクスの再作成実行時

インデクスの一括作成，及びインデクスの再作成時にエラーが発生したときの，データベースの状態とその回復方法を次の表に示します。

表8‒50　インデクスの一括作成，及びインデクスの再作成時にエラーが発生したときのデータベースの状態とその回復方法

-lオプション

区分

エラー発生直前の出力メッセージ

なし

KFPL00725-I

KFPL00715-I

KFPL00716-I

インデクスアンロード開始

インデクス一括作成開始

インデクス一括作成完了

a又はp

状態

実行前状態

実行前状態

インデクス未作成状態

インデクス作成完了

回復

再作成を再実行

再作成を再実行

一括作成実行※

不要

n

状態

表

実行前状態

実行前状態

実行前状態

実行前状態

インデクス

実行前状態

実行前状態

保証なし

作成完了

回復

表

不要

不要

不要

不要

インデクス

再作成を再実行

再作成を再実行

DB回復後に一括作成を再実行※

不要

（凡例）

区分：

状態　エラー発生時のデータベースの状態

回復　回復方法

注※

対象インデクスがプラグインインデクスの場合，「プラグインインデクス一括作成部分回復機能」が提供されている場合だけ実行できます。提供されていない場合は，インデクス再作成を再実行します。

8.15.4　インデクスの再編成実行時

インデクスの再編成時にエラーが発生したときの，データベースの状態とその回復方法を次の表に示します。

表8‒51　インデクスの再編成時にエラーが発生したときのデータベースの状態とその回復方法

-lオプション

区分

エラー発生直前の出力メッセージ

なし

KFPL00725-I

KFPL00715-I

KFPL00716-I

インデクスアンロード開始

インデクス一括作成開始

インデクス一括作成完了

a又はp

状態

実行前状態

実行前状態

インデクス未作成状態

インデクス作成完了

回復

再編成を再実行

再編成を再実行

一括作成実行※

不要

n

状態

表

実行前状態

実行前状態

実行前状態

実行前状態

インデクス

実行前状態

実行前状態

保証なし

作成完了

回復

表

不要

不要

不要

不要

インデクス

再編成を再実行

再編成を再実行

DB回復後に一括作成を再実行※

不要

（凡例）

区分：

状態　エラー発生時のデータベースの状態

回復　回復方法

注※

インデクス格納用RDエリアをバックアップからではなく，RDエリアの再初期化で回復した場合は，インデクスの再作成を再実行してください。

8.15.5　LOBデータのアンロード時

LOBデータのアンロード処理中にエラーが発生しても，データベースの内容はアンロード前と変わりません。したがって，エラーが発生した場合は，エラー要因を取り除いた後，再度LOB列だけアンロードしてください。LOB列構成基表とLOB列を別々に再編成する場合はunload文とlobunld文を両方指定しますが，LOBデータのアンロード中にエラーとなったときは，LOBデータのアンロードから開始するために，unload文を削除し，lobunld文だけ指定して再度アンロードしてください。

8.15.6　LOBデータのリロード時

LOBデータのリロード処理時にエラーが発生したときのデータベースの状態とその回復方法を次の表に示します。

表8‒52　LOBデータのリロード処理時にエラーが発生したときのデータベースの状態とその回復方法

-lオプション

区分

エラー発生直前の出力メッセージ

なし

KFPL00721-I

KFPL00712-I，KFPL00732-I

KFPL00714-I，KFPL00734-I

LOBデータ削除

LOBデータリロード開始

LOBデータリロード完了

a又はp

状態

表，インデクス

実行前状態

LOB列構成基表再編成完了

LOB列構成基表再編成完了

表再編成完了

LOB列

実行前状態

空

空

LOB列再編成完了

回復

表，インデクス

不要

不要

不要

不要

LOB列

LOB列だけリロード再実行

LOB列だけリロード再実行

LOB列だけリロード再実行

不要

n

状態

表，インデクス

ログレス閉塞

ログレス閉塞

ログレス閉塞

表再編成完了

LOB列

保証なし

保証なし

保証なし

LOB列再編成完了

回復

表，インデクス

DB回復後再実行※

DB回復後再実行※

DB回復後再実行※

不要

LOB列

DB回復後再実行※

DB回復後再実行※

DB回復後再実行※

不要

（凡例）

区分：

状態　エラー発生時のデータベースの状態

回復　回復方法

注

-jオプション指定なしでLOB列構成基表とLOB列を同時に再編成する場合，unload文とlobunld文を指定します。LOB列へのアンロード，リロード処理中にエラーが発生して再実行する場合は，LOB列構成基表の再編成処理は完了しているため，unload文は削除し，lobunld文だけにする必要があります。また，アンロード処理中の異常終了での再実行の場合は-k rorgのままでよいですが，リロード処理中の異常終了での再実行の場合は-k reldに変更する必要があります。

注※

ログレスモードの場合，LOB列へのリロード中に異常終了した場合でも，表（LOB列構成基表，LOB列，LOB属性の抽象データ型列，及びインデクス）をバックアップから回復した後，再度表の再編成をする必要があります。

8.15.7　ディクショナリ表のメンテナンス実行時

ディクショナリ表のメンテナンス処理時にエラーが発生したときのデータベースの状態とその回復方法を次の表に示します。

表8‒53　ディクショナリ表のメンテナンス処理時にエラーが発生したときのデータベースの状態とその回復方法

エラー発生直前の出力メッセージ

状態

回復

なし

実行前状態

ディクショナリ表のメンテナンスを再実行

KFPL00717-I

実行前状態

ディクショナリ表のメンテナンスを再実行

KFPL00743-I

インデクス未作成状態

ディクショナリ表のメンテナンスを再実行

KFPL00719-I

ディクショナリ表のメンテナンス完了

不要

9　ディクショナリ搬出入ユティリティ（pdexp）

この章では，HiRDBシステム間で表の定義情報，トリガ定義情報，又はストアドプロシジャの情報を移行するディクショナリ搬出入ユティリティ（pdexp）について説明します。

なお，IVS対応UTF-8文字コード及びIVS対応UTF-16文字集合を使用する場合は，この章の記載を次のように読み替えてください。

UTF-8 -> IVS対応UTF-8

UTF-16 -> IVS対応UTF-16

9.1　概要

ディクショナリ搬出入ユティリティは，HiRDBシステム間で表の定義情報，トリガ定義情報，又はストアドプロシジャの情報を移行するユティリティです。

ディクショナリ搬出入ユティリティは，表の定義情報，トリガ定義情報，又はストアドプロシジャの情報を搬出ファイルに出力し，任意のHiRDBシステムに入力することで移行します。表の定義情報，トリガ定義情報，又はストアドプロシジャの情報を搬出ファイルに出力することを搬出といい，搬出ファイルの内容をHiRDBシステムに入力することを搬入といいます。また，搬出ファイルの定義情報を基にして，定義系SQLの生成もします。

ディクショナリ搬出入ユティリティ（pdexp）の概要（表定義情報，トリガ定義情報，又はストアドプロシジャ情報の搬出入）を図「ディクショナリ搬出入ユティリティ（pdexp）の概要（表定義情報，トリガ定義情報，又はストアドプロシジャ情報の搬出入）」に，（定義系SQLの生成）を図「ディクショナリ搬出入ユティリティ（pdexp）の概要（定義系SQLの生成）」に示します。

表定義情報，トリガ定義情報，又はストアドプロシジャ情報の搬出入は次のような場合に使用します。

同一の表，トリガ，又はストアドプロシジャを，複数のHiRDBで使用する場合

テスト用システムから本番用システムへ移行する場合

システムの再構築などをする場合，いったん既存の表，トリガ，又はストアドプロシジャを搬出し，その後搬入するとき

定義系SQLの生成は次のような場合に使用します。

既に定義されている表，トリガ，又はストアドプロシジャの定義系SQLを，別の表，トリガ，又はストアドプロシジャを定義するために使用（流用）したいとき

図9‒1　ディクショナリ搬出入ユティリティ（pdexp）の概要（表定義情報，トリガ定義情報，又はストアドプロシジャ情報の搬出入）

図9‒2　ディクショナリ搬出入ユティリティ（pdexp）の概要（定義系SQLの生成）

9.1.1　表定義情報の搬出入

表定義情報の搬出入では表定義情報を移行します。移行後も，表定義情報は搬出元のディクショナリ表に残ります。搬出入の対象となる表定義情報を，次に示します。

実表の表定義情報

インデクスの定義情報

ビュー表の表定義情報

実表及びビュー表のコメント情報

表定義情報の搬出入では情報だけを移行するため，表のデータを移行する場合はデータベース再編成ユティリティ（pdrorg）を使用してください。また，搬出ファイルの定義情報を基に，定義系SQLを生成できます。

参照制約が定義されている表を搬出入する場合，参照関係を考慮してユーザが搬出順序を決めなくても，搬出時にHiRDBが自動的に搬出順序を決定します。ただし，HiRDBが自動的に搬出順序を決定する方式の場合，メモリ使用量が増えます。自動決定にするか，ユーザ指定にするかは，オプションで指定できます。

9.1.2　トリガ定義情報の搬出入

トリガ定義情報の搬出入では，トリガ定義の情報を移行します。移行後も，トリガ定義情報は搬出元のディクショナリ表に残ります。また，搬出ファイルの定義情報を基に，定義系SQLを生成できます。

9.1.3　ストアドプロシジャ情報の搬出入

ストアドプロシジャ情報の搬出入では，ストアドプロシジャの定義ソース文を移行します。移行後も，ストアドプロシジャ情報は搬出元のディクショナリ表に残ります。

搬出ではストアドプロシジャの定義ソース文を搬出し，搬入ではストアドプロシジャの定義ソース文を基にしてHiRDBがオブジェクトを作成します。

また，搬出ファイルの定義情報を基に，定義系SQLを生成できます。

参考

パブリックプロシジャの定義者情報は，パブリックプロシジャの搬入先でも引き継がれます。

9.1.4　定義系SQLの生成

搬出ファイルの定義情報を基に定義系SQLを生成し，ファイルに出力します。生成される定義系SQLを次に示します。

種別

インデクス定義

コメント定義

生成される定義系SQL

実表

あり

あり

CREATE TABLE

CREATE INDEX

COMMENT

なし

CREATE TABLE

CREATE INDEX

なし

あり

CREATE TABLE

COMMENT

なし

CREATE TABLE

ビュー表

−

あり

CREATE VIEW

COMMENT

なし

CREATE VIEW

トリガ

−

−

CREATE TRIGGER

ストアドプロシジャ

−

−

CREATE PROCEDURE

（凡例）−：該当しません。

9.1.5　実行者

pdexpの機能を実行する場合に必要となる権限を次に示します。

搬出，及び定義系SQLの生成をする場合

DBA権限所有者，又は表の所有者が実行できます。

搬入をする場合

DBA権限所有者が実行できます。

9.2　コマンドの形式

9.2.1　形式

表定義情報，トリガ定義情報，又はストアドプロシジャ情報の搬出入の場合

　pdexp ｛-e 搬出ファイル名｜-i 搬出ファイル名｝
　　　　 〔-v〕
　　　　 〔-f 制御文ファイル名〕 〔-u 認可識別子〕
　　　　 〔-W 実行監視時間〕

定義系SQLの生成の場合

　pdexp -i 搬出ファイル名 〔-f 制御文ファイル名〕

　　　　-o 定義系SQL出力ファイル名 〔-a〕 〔-u 認可識別子〕
　　　　 〔-W 実行監視時間〕

9.2.2　オプション

-e 搬出ファイル名　〜＜〔識別子：〕パス名＞((1023バイト以内))

表定義情報，トリガ定義情報，又はストアドプロシジャ情報を搬出する場合：

搬出ファイルの名称を指定します。

定義系SQLを生成する場合：

生成したい表定義情報，トリガ定義情報，又はストアドプロシジャ情報を搬出した搬出ファイルの名称を指定します。

搬出ファイルがあるホストの名称と絶対パス名をコロン（：）で結んで指定します。識別子を省略した場合は，ディクショナリ搬出入ユティリティを実行したサーバマシン（pdexpコマンドを入力したサーバマシン）のホスト名が仮定されます。指定した搬出ファイルがない場合は，HiRDBの起動者のものとして新規に作成します。

-i 搬出ファイル名　〜＜〔識別子：〕パス名＞((1023バイト以内))

表定義情報，トリガ定義情報，ストアドプロシジャ情報を搬入する場合，又は定義系SQLを生成する場合に，搬出ファイルの名称を指定します。

搬出ファイルがあるホストの名称と絶対パス名をコロン（：）で結んで指定します。識別子を省略した場合は，ディクショナリ搬出入ユティリティを実行したサーバマシン（pdexpコマンドを入力したサーバマシン）のホスト名が仮定されます。

-v

参照制約が定義されている表の搬出入時，HiRDBが自動的に搬出順序を解析することによって増大するメモリ使用量を抑えたい場合に指定します。この場合，制御文ファイルに指定した表の順序で搬出します。

＜注意＞

このオプションを指定して参照制約が定義されている表を搬出する場合，制御文で被参照表を先に指定してください。搬入時には，搬出順に表が搬入されます。なお，被参照表が定義されていない場合に参照表を搬入すると，CREATE TABLEのSQLエラーとなります。この場合，途中で搬入処理が終了します。

-f 制御文ファイル名　〜＜パス名＞((1023バイト以内))

ディクショナリ搬出入ユティリティの制御文があるファイルの名称を指定します。

制御文ファイルは，ディクショナリ搬出入ユティリティを実行するサーバマシン（pdexpコマンドを入力するサーバマシン）に作成してください。搬入時，搬出ファイル中のすべての表定義情報，トリガ定義情報，又はストアドプロシジャ情報を対象とする場合は，指定を省略できます。また，定義系SQL生成時，搬出ファイル中のすべての定義情報を対象とする場合も，指定を省略できます。

＜制御文についての規則＞

搬出入で指定できる表，トリガ，又はストアドプロシジャは，最大10,000個です。

1行に複数の指定はできません。

一つの指定は複数行にわたってはなりません。

空行は無視されます。

スキーマ名にMASTER，ALL，及びHiRDBは指定できません（トリガ定義情報の搬出の場合はPUBLICも指定できません）。

表の指定（-t），トリガの指定（-g），及びストアドプロシジャの指定（-p）は混在して指定できません。

一つの制御文ファイル中で実表とビュー表を指定する場合は，実表を先に指定してください。

制御文ファイル中にコメントは記述できません。

＜表定義情報の搬出入，又は定義系SQLの生成の場合＞

　　-t スキーマ名.表識別子 〔-w〕
　〔-t スキーマ名.表識別子 〔-w〕〕

＜トリガ定義情報の搬出入，又は定義系SQLの生成の場合＞

　　-g スキーマ名.トリガ識別子 〔-w〕
　〔-g スキーマ名.トリガ識別子 〔-w〕〕

＜ストアドプロシジャ情報の搬出入，又は定義系SQLの生成の場合＞

　　-p スキーマ名.ルーチン識別子
　〔-p スキーマ名.ルーチン識別子〕

-t スキーマ名.表識別子

搬出入する表，又は定義系SQLを生成する表を指定します。

同一の表は重複して指定できません。

パブリックビューを搬出入する場合，スキーマ名にPUBLICを指定してください。

スキーマ名　〜＜識別子＞((1〜30))

スキーマ名を指定します。スキーマ名を引用符（"）で囲んだ場合は，英大文字と小文字が区別されますが，引用符で囲まない場合はすべて英大文字として扱われます。

表識別子　〜＜識別子＞((1〜30))

表識別子を指定します。表識別子を引用符（"）で囲んだ場合は，英大文字と小文字が区別されますが，引用符で囲まない場合はすべて英大文字として扱われます。また，表識別子に空白を含む場合も引用符で囲んでください。

-w

WITH PROGRAM指定なしの参照表の表定義を，WITH PROGRAM指定ありの参照表の表定義にして搬入する場合に指定します。-wオプションを省略した場合，及び参照表以外の表定義の場合，WITH PROGRAM指定なしの表定義として搬入します。なお，搬出時には，このオプションの指定は無効となります。

-g スキーマ名.トリガ識別子〔-w〕

搬出入するトリガ，又は定義系SQLを生成するトリガを指定します。

同一のトリガは重複して指定できません。

スキーマ名　〜＜識別子＞((1〜30))

スキーマ名を指定します。スキーマ名を引用符（"）で囲んだ場合は，英大文字と英小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。

トリガ識別子　〜＜識別子＞((1〜30))

トリガ識別子を指定します。トリガ識別子を引用符（"）で囲んだ場合は，英大文字と英小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。また，トリガ識別子に空白を含む場合も引用符で囲んでください。

-w

WITH PROGRAM指定なしのトリガ定義を，WITH PROGRAM指定ありのトリガ定義にして搬入する場合に指定します。-wオプションを指定し，WITH PROGRAM指定ありのトリガ定義にして搬入した場合，そのトリガが使用する表に対する関数及び手続きの有効なSQLオブジェクトがあるときは，そのSQLオブジェクトは無効になります。

＜一つの表に複数のトリガを定義している場合の注意事項＞

一つの表に複数のトリガを定義している場合，トリガはトリガ定義順に動作します。搬入時のトリガ定義順が搬出前の順番と異なる場合，搬出前のトリガ定義と異なる順番でトリガが動作するため，搬出前と搬入後とで結果が異なります。搬出前と搬入後とで同じトリガ動作をさせるためには，制御文にトリガ定義順にトリガ名を記述する必要があります。

トリガの定義順に制御文を作成する方法を次に示します。

特定の表に定義しているトリガすべてを搬出入する場合：

次のSQLを実行すると，表に定義されているトリガ所有者，トリガ識別子，及びトリガ定義時刻が，トリガ定義順に求められます。

  SELECT TRIGGER_SCHEMA,TRIGGER_NAME,CREATE_TIME
    FROM "MASTER".SQL_TRIGGERS
    WHERE TABLE_SCHEMA='所有者' AND TABLE_NAME='表名称'
    ORDER BY CREATE_TIME WITHOUT LOCK NOWAIT;

制御文には，トリガ定義時刻の早い順にスキーマ名とトリガ識別子を記述します。

定義しているすべてのトリガを搬出入する場合：

次のSQLを実行すると，表に定義されているトリガ所有者，トリガ識別子，及びトリガ定義時刻が，トリガ定義順に求められます。

  SELECT TRIGGER_SCHEMA,TRIGGER_NAME,CREATE_TIME
    FROM "MASTER".SQL_TRIGGERS
    ORDER BY CREATE_TIME WITHOUT LOCK NOWAIT;

制御文には，トリガ定義時刻の早い順にスキーマ名とトリガ識別子を記述します。

-p スキーマ名.ルーチン識別子

搬出入するストアドプロシジャ，又は定義系SQLを生成するストアドプロシジャを指定します。

同一のストアドプロシジャは重複して指定できません。

スキーマ名　〜＜識別子＞((1〜30))

スキーマ名を指定します。スキーマ名を引用符（"）で囲んだ場合は，英大文字と英小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。

パブリックプロシジャを搬出する場合はスキーマ名にPUBLICを指定してください。

ルーチン識別子　〜＜識別子＞((1〜30))

ルーチン識別子を指定します。ルーチン識別子を引用符（"）で囲んだ場合は，英大文字と英小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。また，ルーチン識別子に空白を含む場合も引用符で囲んでください。

-u 認可識別子　〜＜識別子＞((1〜30))

ディクショナリ搬出入ユティリティを実行するユーザの認可識別子を指定します。このオプションを指定した場合，パスワード入力要求の応答付きメッセージが表示されます。そこで応答した認可識別子/パスワードでHiRDBシステムに接続し，その認可識別子についてHiRDBへのCONNECT権限及びDBA権限があるかどうかがチェックされます。

このオプションは，シェルで&を付けてバックグラウンドで実行する場合や，リモートシェルなどのパスワードを応答できない環境では指定しないでください。

省略した場合，次の方法で認可識別子/パスワードが仮定されます。

ディクショナリ搬出入ユティリティ実行時の環境変数PDUSERの設定値が仮定されます。シェルで&を付けてバックグラウンドで実行する場合や，リモートシェル環境で実行する場合などパスワードの応答ができない環境で実行するときは，PDUSERを必ず設定してください。

環境変数PDUSERが設定されていない場合，ログインウィンドウのユーザ名が仮定されます。パスワードについては，入力要求の応答付きメッセージが表示されるので，そこで応答してください。

認可識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

-o 定義系SQL出力ファイル名　〜＜パス名＞((1023バイト以内))

生成した定義系SQLを出力するファイルの名称を指定します。指定したファイルが既にある場合は上書きし，ない場合は新規に作成します。

-a

定義系SQLの生成と搬入を同時にする場合に指定します。-oオプションを指定しないで-aオプションを指定した場合は，搬入だけをします。

-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

ディクショナリ搬出入ユティリティの実行時間を監視する場合に，その監視時間を分単位で指定します。

このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

オプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

9.3　規則及び注意事項

9.3.1　規則

ディクショナリ搬出入ユティリティは，HiRDBが稼働中のときだけ実行できます。ただし，HiRDB/シングルサーバの場合，シングルサーバが起動していなければなりません。また，HiRDB/パラレルサーバの場合は，次に示すサーバが起動していなければなりません。

＜表定義情報の搬出入の場合＞

搬出時：フロントエンドサーバ，ディクショナリサーバ，及びすべてのバックエンドサーバ

搬入時：フロントエンドサーバ，ディクショナリサーバ，及び対象となるバックエンドサーバ

搬出時及び搬入時のマスタディレクトリ用RDエリア，データディレクトリ用RDエリア，及びデータディクショナリ用RDエリア，オープン状態，かつ閉塞解除でなければなりません。

＜ストアドプロシジャ情報及びトリガ情報の搬出入の場合＞

搬出時：フロントエンドサーバ，及びディクショナリサーバ

搬入時：フロントエンドサーバ，及びディクショナリサーバ

搬入時には，データディクショナリLOB用RDエリアを定義しておく必要があります。

ディクショナリ搬出入ユティリティは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

ディクショナリ搬出入ユティリティ実行後，パスワード入力要求の応答付きメッセージが表示された場合，パスワードを入力してください（入力したパスワードは表示されません）。パスワードに英小文字を含む場合は，引用符（''）で囲んでください。

ディクショナリ搬出入ユティリティを実行する場合のRDエリアの状態については，「コマンド実行時のRDエリアの状態」を参照してください。

ディクショナリ搬出入ユティリティを実行する場合，LANG環境変数を設定してください。また，ディクショナリ搬出入ユティリティの実行環境で，OSがサポートしていない文字コードを使用する場合，PDLANG環境変数を設定する必要があります。LANG，及びPDLANGについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

搬出時，指定した搬出ファイルがない場合，HiRDBの起動者のものとして新規に作成します。そのため，HiRDBの起動者にはファイルの作成権限が必要です。

搬入時は，搬出処理で正常に作成した搬出ファイルを指定してください。また，HiRDB管理者には，その搬出ファイルの参照権限が必要です。

HiRDB/パラレルサーバの場合，サーバとRDエリアの対応を搬出前システムと搬入後システムとで同じにしてください。

異なるバイトオーダのシステム間，及び異なる文字体系のシステム間での搬出入はできません。

SQL予約語削除機能を使用している場合，コマンド実行画面でクライアント環境定義PDDELRSVWDFILEを設定してから，ディクショナリ搬出入ユティリティを実行してください。なお，PDDELRSVWDFILEの設定値の長さが9バイト以上の場合は，PDDELRSVWDFILEの設定が無視されます。また，次の条件を満たしていないと，搬入時にSQLの文法エラーになることがあります。

クライアント環境定義PDDELRSVWDFILEの値が，表などを定義したときの値と同じである。

搬出側と搬入側の，システム共通定義pd_delete_reserved_word_fileオペランドの指定値が同じである。

搬出側と搬入側の，$PDDIR/conf/pdrsvwd以下のファイルが同じである。

搬出時，搬出側システムで定義系SQLを発行しないでください。

9.3.2　表定義情報，トリガ定義情報，及びストアドプロシジャ情報の搬出入についての規則

搬出と搬入は，１回の実行で同時に指定できません。

トリガ定義情報，又はストアドプロシジャ情報の搬出順序は，制御文ファイルでの-g，又は-pオプションの指定順になります。搬入時の搬入順序は，-g，又は-pオプションの指定に関係なく，搬出時の搬出順序と同じになります。

搬出入の処理は，一つの表ごと，一つのトリガごと，又は一つのストアドプロシジャごとに処理が完結します。

搬入先に同一の表（認可識別子．表識別子が同じ表），トリガ（認可識別子．トリガ識別子），又はストアドプロシジャ（認可識別子．ルーチン識別子が同じストアドプロシジャ）がある場合，その表，トリガ，又はストアドプロシジャは搬入エラーとなります。エラーになった表以外の搬出処理は続行されます。

搬入前には，搬入先システムを初期設定し，搬入する表，トリガ，又はストアドプロシジャのスキーマを定義しておいてください。

ディクショナリ搬出入ユティリティは，搬出元の表定義をそのまま搬入先に移行します。そのため，対象となる表の格納RDエリアは，搬出元と同じ名称のものを搬入先にも定義しておく必要があります。

搬入する表，トリガ，又はストアドプロシジャの所有者には，表，トリガ，又はストアドプロシジャを格納するRDエリアの利用権限が必要です。

ストアドプロシジャの搬入時，ストアドプロシジャが使用する表は搬入先に定義しておく必要があります。該当する表が定義されていない場合は，ストアドプロシジャの搬入はできません。

制御文ファイルに，-tオプション，-gオプション，及び-pオプションは混在して指定できません。

搬入時に，2,000,000バイトを超えるSQL文を実行する場合（表，トリガ，又はストアドプロシジャを定義するSQL文の長さが2,000,000バイトを超える場合），搬入はできません。

次に示す表の定義情報，及びストアドプロシジャの情報は，搬出できません。

抽象データ型を含む表定義（CREATE TABLE）

インデクス型を指定したインデクス定義（CREATE INDEX）

関数定義（CREATE FUNCTION，及びシステム定義スカラ関数）

抽象データ型定義（CREATE TYPE）

抽象データ型を含むストアドプロシジャ（CREATE PROCEDURE）

抽象データ型内で宣言されているストアドプロシジャ（CREATE TYPE）

手続き定義の中から手続きを呼び出している手続き（CREATE PROCEDURE）

手続き定義の中から関数定義（CREATE FUNCTION，及びシステム定義スカラ関数）を呼び出している手続き（CREATE PROCEDURE）

TABLEに指定した表に抽象データ型の列を持つ注釈付加（COMMENT）

COLUMNに指定した列が抽象データ型である注釈付加（COMMENT）

HiRDB/パラレルサーバで共用表を搬入する場合，搬入先の環境の共用表，及び共用表に定義した共用インデクスを格納するRDエリアは，すべて共用RDエリアである必要があります。共用RDエリアでない場合，SQLエラーとなります。また，共用表でない表を搬入する場合，及び表の格納RDエリアが共用RDエリアの場合，SQLエラーとなります。共用表と搬入先のRDエリアとの関係を次に示します。なお，HiRDB/シングルサーバの共用表の場合，共用RDエリアを作成しないため，該当しません。

搬入元の表の種別

搬入先のRDエリアの定義

定義の実行可否

エラー後のpdexpの処理※

表格納用RDエリア

表に定義したインデクスの格納RDエリア

表

インデクス

共用表

共用RDエリア

共用RDエリア

○

○

該当しません。

共用RDエリア

非共用RDエリア

○

△

処理を中断し，表定義は無効となります。

非共用RDエリア

共用RDエリア

△

×

処理を中断します。

非共用RDエリア

非共用RDエリア

△

×

非共用表

共用RDエリア

共用RDエリア

△

×

共用RDエリア

非共用RDエリア

△

×

非共用RDエリア

共用RDエリア

○

△

処理を中断し，表定義は無効となります。

非共用RDエリア

非共用RDエリア

○

○

該当しません。

（凡例）

○：定義をします。

△：定義をしますが，SQLエラーとなります。

×：定義をしません。

注※

pdexpは，定義系SQLの内部COMMITを抑止し，処理途中でエラーが発生した場合はロールバックします。

参照表定義時に内部的に作成されるトリガは搬出できません。搬出時にそのトリガを指定した場合，KFPX28504-Wメッセージが出力されます（該当するトリガの処理はスキップし，次のトリガの搬出をします）。

9.3.3　定義系SQLの生成についての規則

搬出時（-eオプション）に，定義系SQLの生成（-oオプション）を指定した場合，定義系SQLの生成はしません。

定義系SQLを生成する場合，SQL文の生成順序は搬出順となります。

次に示す表，手続き，及び関数の定義系SQLは生成されません。

抽象データ型を含む表定義（CREATE TABLE）

手続きのパラメタのデータ型として抽象データ型を指定している手続き（CREATE PROCEDURE）

手続き定義中の手続き（CREATE PROCEDURE）

抽象データ型内で宣言されている手続き及び関数（CREATE TYPE）

インデクス型を指定したインデクス定義（CREATE INDEX）

関数定義（CREATE FUNCTION）

生成された定義系SQLには，データベース定義ユティリティの入力ファイルとして利用できるように，行の最後にセミコロン（；）が付きます。ただし，CREATE PROCEDURE，及びCREATE TRIGGERの場合はend_proc;が付きます。

CREATE PROCEDURE，及びCREATE TRIGGERを生成する場合，SQL最適化オプション，及びSQL拡張最適化オプションの指定値は，数値に変換された形になります。

表の定義系SQLを生成する場合，その表に外部キー，又は検査制約が定義されているときは，表の定義系SQLと同時に，外部キー，及び検査制約の定義系SQLも生成します。この外部キー，及び検査制約の定義系SQLを生成する場合，外部キー，及び検査制約の制約名の定義位置は，クライアント環境定義のPDCNSTRNTNAMEとシステム定義のpd_constraint_nameオペランドの指定値によって決まります。PDCNSTRNTNAMEについてはマニュアル「HiRDB UAP開発ガイド」を，pd_constraint_nameオペランドについてはマニュアル「HiRDB システム定義」を参照してください。

生成された定義系SQLの改行条件を次に示します。

生成された定義系SQL

改行条件

CREATE TABLE

CREATEから表識別子まで

列定義ごと

表格納用RDエリアごと

表オプションごと

外部キーごと

検査制約定義ごと

WITH PROGRAM

1行が80バイトを超える場合は，80バイトごと※

CREATE INDEX

CREATEからインデクス識別子まで

ONから表識別子まで

列定義ごと

インデクス格納用RDエリアごと

インデクスオプションごと

1行が80バイトを超える場合は，80バイトごと※

COMMENT

1行が80バイトを超える場合は，80バイトごと※

CREATE VIEW

CREATEからASまで

1行が80バイトを超える場合は，80バイトごと※

CREATE PROCEDURE

CREATEからパラメタモード指定まで

定義ソース文中にある改行記号

SQLコンパイルオプション

SQL手続き文

1行が80バイトを超える場合は，80バイトごと※

CREATE TRIGGER

CREATEからトリガ動作

定義ソース文中にある改行記号

SQLコンパイルオプション

WITH PROGRAM

1行が80バイトを超える場合は，80バイトごと※

注※

システム共通定義pdsysのpd_sql_simple_comment_useオペランドの値による動作を次の表に示します。

項番

システム共通定義pdsysの pd_sql_simple_comment_useオペランドの値

動作

1

N

改行する

2

Y

改行しない

単純注釈を使用するには，pd_sql_simple_comment_useオペランドをYにする必要があります。搬出したSQL文中の単純注釈の有無と，pd_sql_simple_comment_useオペランドに対する指定が合っていない場合，搬入時にSQL構文エラーとなります。

これらの組み合わせについて次に示します。

項番

搬出したSQL文中の単純注釈有無

搬入時のpd_sql_simple_comment_useの値

Y

N

1

なし

○

○

2

あり

○

×

（凡例）

○：SQL構文エラーにはなりません。

×：SQL構文エラー（KFPA11105-E）となります。

文字集合UTF-16を指定したCHAR型の列を，キーレンジ分割又はマトリクス分割（境界値指定のキーレンジ分割）の分割キーとして指定した表の場合，分割キーの長さが列の定義長を超えるときは，その表の定義系SQLは生成できません。

DEFAULT句のON ROW EXISTS指定がある表の定義系SQLを生成する場合は，ON ROW EXISTS指定なしの表を生成します。

9.3.4　参照制約を定義した表の搬出入の規則について

(1)　搬出

参照表，及び被参照表を搬出すると，無条件に主キー，及び外部キーの定義も搬出します。

表定義情報は，制御文ファイルに指定した順序に関係なく，HiRDBが搬出順序を決定して被参照表を先に搬出します。-vオプションを指定した場合は，制御文ファイルに指定した順序で搬出します。

トリガ定義情報，又はストアドプロシジャ情報は，制御文ファイルに指定した順序で搬出します。

(2)　搬入

参照表，及び被参照表を搬入すると，無条件に主キー，及び外部キーの定義も搬入します。

搬入先に同一名称の制約がある場合，CREATE TABLEのSQLエラーとなります。この場合，次の表の処理をしないで，搬入処理を終了します。

主キー，並びにクラスタキーのインデクス番号，及び表番号は，搬入先で新たに割り当てられます。

主キーのインデクス識別子は，搬入時の表の表番号を基に決まります。したがって，搬出元と同じになるとは限りません。

参照表を搬入する場合の，被参照表を使用するSQLオブジェクトの扱いを次に示します。

表定義時の参照動作

-wオプション

被参照表を使用するSQLオブジェクトの扱い

備考

CASCADE

指定あり

参照表と被参照表の整合性を保つために，内部的にトリガが定義されます。このとき，SQLオブジェクトが作成されるため，被参照表を使用する関数，手続き，及びトリガのSQLオブジェクトが無効になります。

被参照表を使用する関数，手続き，及びトリガのSQLオブジェクトが既にある場合，そのSQLオブジェクトは無効な状態となっています。そのため，参照表を搬入した後に，SQLオブジェクトを再作成する必要があります。

指定なし

被参照表を使用する関数，手続き，及びトリガのSQLオブジェクトが無効になります。そのため，そのSQLオブジェクトを再作成しないと，参照表と被参照表の整合性が保たれないため，CREATE TABLEのSQLエラーとなります。

−

RESTRICT

指定あり

被参照表を使用する関数，手続き，及びトリガのSQLオブジェクトが有効な場合，被参照表の行を更新又は削除してしまうため，整合性が保てなくなります。そのため，そのSQLオブジェクトは無効となります。

被参照表を使用する関数，手続き，及びトリガのSQLオブジェクトが既にある場合，そのSQLオブジェクトは無効な状態となっています。そのため，参照表を搬入した後に，SQLオブジェクトを再作成する必要があります。

指定なし

被参照表を使用する関数，手続き，及びトリガのSQLオブジェクトが無効になります。そのため，そのSQLオブジェクトを再作成しないと，参照表と被参照表の整合性が保たれないため，CREATE TABLEのSQLエラーとなります。

−

（凡例）−：特にありません。

9.3.5　注意事項

ディクショナリ搬出入ユティリティの結果は，ユティリティ実行時のリターンコード，又はエラーメッセージの有無で確認できます。ユティリティ実行時のリターンコードを次に示します。

0：正常終了です。

4：警告レベルのエラーです。

8：正常に終了したものと，一部処理をスキップしたものとがあります。

12：正常な処理は１件も完了しないで処理を終了しました。

表のアクセス権限は，搬入後に定義系SQLのGRANTで設定してください。

ビュー表を搬入する場合，ビュー表の搬入前に，基となる実表を搬入又は定義し，アクセス権限を設定しておいてください。

ディクショナリ搬出入ユティリティは，同時に複数実行できません。既に処理を実行している場合は，その処理が終了してから次の処理を実行してください。

搬入処理は，搬入先システムで次に示す定義系SQLを実行するのと同様の機能です。各SQLの仕様を確認してから搬入を実行してください。

＜表定義情報の搬出入の場合＞

ALTER TABLE

COMMENT

CREATE INDEX

CREATE TABLE

CREATE VIEW

＜トリガ定義情報の搬出入の場合＞

CREATE TRIGGER

＜ストアドプロシジャ情報の搬出入の場合＞

CREATE PROCEDURE

SQLの仕様については，マニュアル「HiRDB SQLリファレンス」を参照してください。

ディクショナリ搬出入ユティリティの強制終了，又はサーバの停止などによって，搬出処理が中断された場合，KFPX28402-Iメッセージが出力されていても，搬出ファイルに表定義情報，トリガ定義情報，又はストアドプロシジャ情報が搬出されていないことがあります。この場合には，再度ディクショナリ搬出入ユティリティを実行し，搬出処理を正常に終了させてください。

pdexpを実行する場合，搬出ファイルと定義系SQL出力ファイルのアクセス権限を，HiRDB管理者に対して与えておく必要があります。

9.3.6　搬入時に作成される定義系SQLが2,000,000バイトを超えた場合の修正例

pdexpで搬入をする場合，定義系SQLが作成され，その定義系SQLが実行されます。その際，次に示す原因によって，作成されるSQL文が，SQL文の最大長2,000,000バイトを超えることがあります。

次に示す構文，及び識別子が省略された表をpdexpで搬入する場合

表9‒1　定義系SQL文に記述される構文及び識別子の，デフォルト値及び引用符

項番

構文及び識別子

デフォルト値及び引用符

1

列制約定義

PARTIAL

2

PCTFREE（未使用領域の比率）

30

3

PCTFREE（セグメント内の空きページ比率）

10

4

削除動作

RESTRICT

5

更新動作

RESTRICT

6

制約名定義

制約定義時のタイムスタンプ

7

識別子

大文字，小文字を区別するため引用符が付与されます

8

バージョン09-50より前のCREATE TABLEでのSEGMENT REUSE

SEGMENT REUSE NO

9

バージョン09-50以降のCREATE TABLEでのSEGMENT REUSE

SEGMENT REUSE

デフォルト値の構文や識別子の引用符が定義系SQL文に記述されるため，2,000,000バイトを超えるおそれがあります。

定義系SQLが2,000,000バイトを超えた場合の修正例を次に示します。ここでは，CREATE TABLEを例に説明します。

＜CREATE TABLEが2,000,000バイトを超えた場合の例＞

CREATE TABLEが2,000,000バイトを超えた場合，2,000,000バイト以内に収まるように，列IDの大きいものから列定義部分を削除した状態でCREATE TABLEが作成されます。このとき，削除された列定義部分を追加する必要があるため，削除された列定義部分を追加するALTER TABLEが作成されます。例を次に示します。

CREATE TABLE "root"."T1"
("C1" INTEGER NOT NULL,
"C2" CHAR(100),
     ：
     ：
"C98" VARCHAR(100)
) IN (("RDUSER01") "C100" < 1500
("RDUSER02"))
PCTFREE=(30,10)
FOREIGN KEY ("C1","C2") REFERENCES "root"."T2"
  ON DELETE RESTRICT ON UPDATE RESTRICT CONSTRAINT CNST01
;   ........................................................1
ALTER TABLE "root"."T1"
ADD "C99" INTEGER
;   ........................................................2
ALTER TABLE "root"."T1"
ADD "C100" INTEGER NOT NULL
;   ........................................................2

［説明］

列C99，及び列C100が除かれた状態のCREATE TABLEが作成されます。

CREATE TABLEから削除された列C99，及び列C100を追加するALTER TABLEが作成されます。

［ALTER TABLEの列定義部分に追加されたことによって発生するSQLエラー］

2.で追加される列が，次のどれかに該当する場合，SQLエラーとなります。

分割キー

クラスタキー

参照制約で指定した列

検査制約の探索条件で指定した列

この例では，分割キーである列C100が追加されているため，作成されるALTER TABLEはSQLエラーとなります。

＜SQLエラーを回避する方法＞

SQLエラーとなる場合，次の手順で回避できます。

搬入時に-oオプションを指定し，定義系SQLを生成します（定義系SQLをファイルに出力します）。

1.で出力した定義系SQLの，先頭のALTER TABLEから，該当するALTER TABLE（SQLエラーとなる列定義）までを，CREATE TABLEの列定義に移動します。

1.で出力した定義系SQLの，CREATE TABLEの省略時仮定値の部分を削除し，2,000,000バイト以内に収まるようにします。

編集した定義系SQLを，pddefで実行します。

上記の定義系SQLの編集例を次に示します。

CREATE TABLE "root"."T1"
("C1" INTEGER NOT NULL,
"C2" CHAR(100),
     :
     :
"C98" VARCHAR(100)，
"C99" INTEGER，   ...............上記手順2.で追加
"C100" INTEGER NOT NULL   .....上記手順2.で追加
) IN (("RDUSER01") "C100" < 1500
("RDUSER02"))
PCTFREE=(30,10)
FOREIGN KEY ("C1","C2") REFERENCES "root"."T2"
  CONSTRAINT CNST01   .........上記手順の3.で一部分を削除
;

9.3.7　BOMを持つファイルの使用

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdexpの入力ファイルには，BOMを持つファイルを使用できることがあります。pdexpでのBOMを持つファイルの使用可否を次の表に示します。なお，pdexpの入力ファイルとしてBOMを持つファイルを使用しても，BOMは読み飛ばされます。また，pdexpで出力されるファイルにはBOMは付きません。

表9‒2　pdexpでのBOMを持つファイルの使用可否（UTF-8の場合）

オプション

入力ファイル

BOMを持つファイルの使用

-l

搬出ファイル

×

-f

制御文ファイル

○

（凡例）

○：使用できます。

×：使用できません。

9.3.8　単純注釈を使用する場合の搬出入

単純注釈を含む定義も搬出入できます。また，定義系SQLも生成できます。

SQL文中に単純注釈が含まれるかどうか，及び含まれる箇所を次に示します。

項番

SQL文

単純注釈

単純注釈が含まれる箇所

1

CREATE TABLE

○

検査制約定義の中

2

CREATE INDEX

×

−

3

COMMENT

×

−

4

CREATE PROCEDURE

○

CREATE以降のすべての箇所

5

CREATE TRIGGER

○

CREATE以降のすべての箇所

6

CREATE VIEW

○

CREATE以降のすべての箇所

（凡例）

○：単純注釈が含まれます。

×：単純注釈が含まれません。

−：該当しません。

なお，単純注釈を含む場合で，次のユティリティ及びPPの実行時，システム定義のpd_sql_simple_comment_useオペランドがYでない場合は，エラーになります。

データベース定義ユティリティ（pddef）

データベース作成ユティリティ（pdload）

HiRDB SQL Executer

9.4　使用例

ディクショナリ搬出入ユティリティの使用例を，例1〜例4に示します。

例1

次に示す表の定義情報を搬出します（スキーマ名：USER01）。
・TABLE1
・TABLE2

［概要］

［コマンド実行例］

 pdexp -e host1:/usr/export_file1
       -f /usr/seifile/expfl01

［説明］

搬出ファイルの名称　host1:/usr/export_file1

制御文ファイルの名称　/usr/seifile/expfl01

制御文ファイル（/usr/seifile/expfl01）の内容

 -t USER01.TABLE1
 -t USER01.TABLE2

［説明］

表定義情報を搬出する表の名称　USER01.TABLE1

表定義情報を搬出する表の名称　USER01.TABLE2

例2

搬出ファイルのすべての表定義情報を搬入します。

［概要］

［コマンド実行例］

 pdexp -i host2:/usr/export_file1

［説明］

搬出ファイルの名称　/usr/export_file1

例3

次に示すストアドプロシジャの定義情報を搬出します（スキーマ名：USER01）。
・PROC1
・PROC2

［概要］

［コマンド実行例］

 pdexp -e host1:/usr/export_file1
       -f /usr/seifile/expfl02

［説明］

搬出ファイルの名称　host1:/usr/export_file1

制御文ファイルの名称　/usr/seifile/expfl01

制御文ファイル（/usr/seifile/expfl02）の内容

 -p USER01.PROC1
 -p USER01.PROC2

［説明］

ストアドプロシジャの定義情報を搬出するルーチン名称　USER01.PROC1

ストアドプロシジャの定義情報を搬出するルーチン名称　USER01.PROC2

例４

搬出ファイルのすべての表定義情報を搬入し，同時に搬出ファイルの定義情報を基に定義系SQLを生成します。

［概要］

［コマンド実行例］

 pdexp -i host2:/usr/export_file1   .................1
       -o /usr/defsql_file   ........................2
       -a   .........................................3

［説明］

搬出ファイルの名称　host2:/usr/export_file1

定義系SQL出力ファイルの名称　/usr/defsql_file

搬入と定義系SQLの生成を同時にする場合の指定

10　リバランスユティリティ（pdrbal）

この章では，ハッシュ分割された表に対してリバランスをするリバランスユティリティ（pdrbal）について説明します。リバランスとは，データ量の増加に備えて新たにRDエリアを追加する場合に，既存のRDエリアと追加したRDエリアとの間でデータの再配置をすることをいいます。

10.1　概要

10.1.1　リバランスユティリティの機能

ハッシュ分割表のデータ量が増加した場合にRDエリアを追加すると，既存のRDエリアと追加したRDエリアとの間でデータ量の偏りが生じます。リバランスユティリティ（pdrbal）は，このデータ量の偏りを修正するためのユティリティです。リバランスユティリティを実行してハッシュ分割表のデータ量の偏りを修正することを，ハッシュ分割表のリバランス機能といいます。

リバランスユティリティを実行すると，ハッシュグループ単位にデータを再配置します。これを表のリバランスといいます。また，ハッシュ関数（HASHA〜HASHF）で分割した表のことをリバランス表といいます。

リバランスユティリティの概要とリバランスの概念を次の図に示します。

図10‒1　リバランスユティリティの概要

図10‒2　リバランスの概念

［説明］

リバランス開始：

リバランス表に対して，RDエリアの追加（ALTER TABLE ADD RDAREA）をした後，最初にpdrbalを実行した時点をいいます。

リバランス初期化処理：

RDエリア追加後，最初にpdrbalを実行したときの初期化処理をいいます。

リバランス完了処理：

pdrbalがリターンコード0で終了したときの完了処理をいいます。

リバランス終了：

すべての表データのリバランスが完了（pdrbalがリターンコード0で終了）した時点をいいます。

リバランス中：

リバランス開始からリバランス終了までの間のことをいいます。

10.1.2　リバランスユティリティの動作モード

リバランスユティリティの動作モードを次の表に示します。

表10‒1　リバランスユティリティの動作モード

動作モード

説　　明

共有モード

pdrbal実行中に表をアクセスできます。

24時間運転などでオンライン業務を停止できないシステムの場合に適用してください。

占有モード

pdrbal実行中は表をアクセスできません。

表に対するアクセスを停止できて，夜間にバッチ処理が実行できるシステムの場合に適用してください。

(1)　共有モード

共有モードの場合，リバランスユティリティの実行中でも，その表に対してほかからアクセスできます。共有モードで実行する場合は，-kオプションにshareを指定します。

共有モードの場合，ログの取得が必要となります。また，同時実行するSQLなどと競合する資源の確保，解放処理が複数回必要となるため，リバランス処理に掛かる時間は占有モードより長くなります。

共有モードで圧縮表のリバランスを実行する場合も，圧縮列がない場合に比べてリバランス処理に掛かる時間が長くなることがあります。これは，圧縮列のデータを移動するときにデータの伸張及び圧縮を行うためです。この場合，KFPL33509-Wメッセージが出力されますが，リバランス処理は続行されます。実行時間を短縮したい場合は，pdcancelコマンドで共有モードのリバランス処理を中断し，占有モードで実行し直してください。

＜推奨する運用方法＞

共有モードでリバランスユティリティを実行する場合，リバランス表へのトラフィックの少ない時間帯を選ぶようにしてください。共有モードでのリバランスユティリティの運用例を次の図に示します。

図10‒3　共有モードでのリバランスユティリティの運用例

(2)　占有モード

占有モードの場合，リバランスユティリティ実行中はその表に対してアクセスできません。占有モードで実行する場合は，-kオプションにexclusiveを指定します。

占有モードの場合，ログの取得は任意となります。また，資源の確保，解放処理は1回だけとなり，更にインデクス一括作成もできるため，リバランス処理に掛かる時間は共有モードに比べると短くなります。

＜推奨する運用方法＞

占有モードでリバランスユティリティを実行する場合，リバランス表へのアクセスのない時間帯を選ぶようにしてください。占有モードでのリバランスユティリティの運用例を次の図に示します。

図10‒4　占有モードでのリバランスユティリティの運用例

10.1.3　実行環境

リバランスユティリティは，HiRDBが稼働中のときだけ実行できます。

リバランスユティリティは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行できます。

リバランスユティリティを実行する場合，環境変数LANGを設定してください。また，リバランスユティリティの実行環境で，OSがサポートしていない文字コードを使用する場合，PDLANG環境変数を設定する必要があります。LANG，及びPDLANGについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

リバランスユティリティは，ユティリティ専用ユニットは使用できません。

リバランス表，及びインデクスが格納されているRDエリアの，オープン属性及びRDエリアの状態によってリバランスユティリティの実行可否が変わります。リバランスユティリティの実行可否については，「コマンド実行時のRDエリアの状態」を参照してください。

リバランスユティリティ実行時，制御情報ファイルでファイル出力先を指定しない場合，次の表に示すディレクトリにファイルを出力します。

表10‒2　pdrbalがサーバでファイルを出力するディレクトリ

制御文※１の指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIR※２の指定

あり

なし

あり

制御文に指定したディレクトリ又はファイル

なし

pd_tmp_directoryに指定したディレクトリ

TMPDIRに指定したディレクトリ

/tmpディレクトリ

注※1　index文，idxwork文，又はsort文

注※2　init（OSのプロセス）から起動されたプロセスサーバプロセス（pdprcd）に設定される環境変数

表10‒3　コマンド実行環境でファイルを出力するディレクトリ

report文の指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIR※の指定

あり

なし

あり

制御文に指定したディレクトリ又はファイル

なし

pd_tmp_directoryに指定したディレクトリ

TMPDIRに指定したディレクトリ

/tmpディレクトリ

注※　コマンド実行環境の環境変数の指定

回復不要FESがある場合，回復不要FESの適用有無とフロントエンドサーバの稼働状態によってpdrbalの実行可否が異なります。pdrbalの実行可否を次に示します。

回復不要FES

pdrbalの実行可否

適用していないフロントエンドサーバ

適用しているフロントエンドサーバ

すべて稼働中

なし

○

一部停止中

×（フロントエンドサーバが停止中のため）

すべて停止中

×（表定義が取得できないため）

すべて稼働中

すべて稼働中

○

一部停止中

○

すべて停止中

○

なし

すべて稼働中

○

一部停止中

○

すべて停止中

×（表定義が取得できないため）

（凡例）

○：実行できます。

×：実行できません。

10.1.4　実行者

リバランスユティリティは，次のユーザが実行できます。

DBA権限を持っているユーザ

SELECT権限，INSERT権限，及びDELETE権限を持っているユーザ

10.2　使用例

リバランスユティリティの使用例を示します。

10.2.1　共有モードの場合

例１：

HiRDB/シングルサーバの場合に，表（reb_table）にRDエリア（user03）を追加して，共有モードでリバランスユティリティを実行します。
・表定義
  CREATE TABLE reb_table(hkeys INT NOT NULL,names CHAR(30))
      FIX HASH HASHA BY hkeys IN (user01,user02)
・インデクス定義
  CREATE INDEX idx1 ON reb_table(hkeys) IN ((idx01),(idx02))

●ALTER TABLEでのRDエリアの追加

 ALTER TABLE reb_table ADD RDAREA user03 FOR INDEX idx1 in idx03

［説明］

表reb_tableにRDエリアuser03を追加します。また，インデクスidx1に対してもRDエリアidx03を追加します。

●pdrbalのコマンド

 pdrbal -k share -t reb_table control_file

［説明］

-k share：動作モード（共用モード）

-t reb_table：リバランス表の名称

control_file：制御情報ファイル

●制御情報ファイル（control_file）の内容

 execstop time,9:00    [1]
 report /dsk01/rest_file    [2]

［説明］

9時間後にpdrbalを停止させます。

処理結果ファイル（/dsk01/rest_file）にpdrbalの実行結果を出力します。

例２：

HiRDB/シングルサーバの場合に，表（sgml_table）にRDエリア（user03）を追加して，共有モードでリバランスユティリティを実行します。なお，表sgml_tableにはプラグインが提供する抽象データ型の列があるものとします。
・表定義
  CREATE TABLE sgml_table (
      hkeys INT NOT NULL,
      doctext SGMLTEXT ALLOCATE (sgmltext IN ((LOB1D),(LOB2D)))
      PLUGIN '<DTD>新聞</DTD><EXTRACTparm>extract.prm</EXTRACTparm>'
      )
      FIX HASH HASHA BY hkeys IN (user01,user02)
・インデクス定義
  CREATE INDEX idx1 ON sgml_table(hkeys) IN ((idx01),(idx02))
  CREATE INDEX ngram_index USING TYPE MASTER.NGRAM on sgml_table(doctext)
      in ((LOB1I),(LOB2I))

●ALTER TABLEでのRDエリアの追加

 ALTER TABLE sgml_table ADD RDAREA user03
     FOR COLUMN doctext ALLOCATE(sgmltext IN LOB3D)
     FOR INDEX idx1 in idx03,ngram_index in LOB3I

［説明］

表sgml_tableにRDエリアuser03を追加します。また，インデクスidx1に対してRDエリアidx03を，プラグインインデクスngram_indexに対してRDエリアLOB3Iを追加します。

●pdrbalのコマンド

 pdrbal -k share -t sgml_table control_file

［説明］

-k share：動作モード（共用モード）

-t sgml_table：リバランス表の名称

control_file：制御情報ファイル

●制御情報ファイル（control_file）の内容

 execstop time,12:00    [1]
 unld_func type=sgmltext,func=unsgmltext(sgmltext)    [2]
 reld_func type=sgmltext,func=sgmltext(blob)    [3]
 report /dsk01/rest_file    [4]

［説明］

12時間後にpdrbalを停止させます。

コンストラクタパラメタ逆生成関数を指定します。

sgmltext：抽象データ型の名称

unsgmltext：コンストラクタパラメタ逆生成関数の名称

sgmltext：引数の型

コンストラクタ関数を指定します。

sgmltext：抽象データ型の名称

sgmltext：コンストラクタ関数の名称

blob：引数の型

処理結果ファイル（/dsk01/rest_file）にpdrbalの実行結果を出力します。

10.2.2　占有モードの場合

例３：

HiRDB/シングルサーバの場合に，表（reb_table）にRDエリア（user03）を追加して，占有モードでリバランスユティリティを実行します。
・表定義
  CREATE TABLE reb_table(hkeys INT NOT NULL,names CHAR(30))
      FIX HASH HASHA BY hkeys IN (user01,user02)
・インデクス定義
  CREATE INDEX idx1 ON reb_table(hkeys) IN ((idx01),(idx02))

●ALTER TABLEでのRDエリアの追加

 ALTER TABLE reb_table ADD RDAREA user03 FOR INDEX idx1 in idx03

［説明］

表reb_tableにRDエリアuser03を追加します。また，インデクスidx1に対してもRDエリアidx03を追加します。

●pdrbalのコマンド

 pdrbal -k exclusive -t reb_table -l n control_file

［説明］

-k exclusive：動作モード（占有モード）

-t reb_table：リバランス表の名称

-l n：ログレスモード

control_file：制御情報ファイル

●制御情報ファイル（control_file）の内容

 idxwork /idxwork1    [1]
 sort /sortwork    [2]
 report /dsk01/rest_file    [3]

［説明］

インデクス情報ファイル用ディレクトリ（/idxwork1）を指定します。

ソート用ワークディレクトリ（/sortwork）を指定します。

処理結果ファイル（/dsk01/rest_file）にpdrbalの実行結果を出力します。

例４：

HiRDB/パラレルサーバの場合に，表（reb_table）にRDエリア（user03）を追加して，占有モードでリバランスユティリティを実行します。
・表定義
  CREATE TABLE reb_table(hkeys INT NOT NULL,names CHAR(30))
      FIX HASH HASHA BY hkeys IN (user01,user02)
・インデクス定義
  CREATE INDEX idx1 ON reb_table(hkeys) IN ((idx01),(idx02))

●サーバ，RDエリア，表，及びインデクスの関連

●ALTER TABLEでのRDエリアの追加

 ALTER TABLE reb_table ADD RDAREA user03 FOR INDEX idx1 in idx03

［説明］

表reb_tableにRDエリアuser03を追加します。また，インデクスidx1に対してもRDエリアidx03を追加します。

●pdrbalのコマンド

 pdrbal -k exclusive -t reb_table -l n control_file

［説明］

-k exclusive：動作モード（占有モード）

-t reb_table：リバランス表の名称

-l n：ログレスモード

control_file：制御情報ファイル

●制御情報ファイル（control_file）の内容

 idxwork bes2 /idxwork_bes2    [1]
 sort bes2 /sortwork_bes2    [2]
 report /dsk01/rest_file      [3]

［説明］

バックエンドサーバbes2のインデクス情報ファイル用ディレクトリ（/idxwork_bes2）を指定します。

バックエンドサーバbes2のソート用ワークディレクトリ（/sortwork_bes2）を指定します。

処理結果ファイル（/dsk01/rest_file）にpdrbalの実行結果を出力します。

例５：

HiRDB/パラレルサーバの場合に，表（reb_table）に既存と同じRDエリアを追加して，占有モードでリバランスユティリティを実行します。なお，表はホスト（NODE24）上のバックエンドサーバ（bes1）とホスト（NODE25）上のバックエンドサーバ（bes2）に分割格納されています。
・表定義
  CREATE TABLE reb_table (hkeys INT NOT NULL,names CHAR(30))
      FIX HASH HASHF BY hkeys IN (user01,user02)
・インデクス定義
  CREATE INDEX idx1 ON reb_table(hkeys) IN ((idx01),(idx02))

●サーバ，RDエリア，表，及びインデクスの関連

●ALTER TABLEでのRDエリアの追加

 ALTER TABLE reb_table ADD RDAREA user01 FOR INDEX idx1 in idx01
 ALTER TABLE reb_table ADD RDAREA user02 FOR INDEX idx1 in idx02

［説明］

表reb_tableに既存と同じRDエリア（user01，user02）を追加します。また，インデクスidx1に対しても既存と同じRDエリア（idx01，idx02）を追加します。

●pdrbalのコマンド

 pdrbal -k exclusive -t reb_table -i c control_file

［説明］

-k exclusive：動作モード（占有モード）

-t reb_table：リバランス表の名称

-i c：インデクス作成モード（一括作成モード）

control_file：制御情報ファイル

●制御情報ファイル（control_file）の内容

 report /dsk01/rest_file    [1]
 idxwork bes1 /idxwork_bes1    [2]
 sort bes1 /sort_work_bes1    [2]
 idxwork bes2 /idxwork_bes2    [3]
 sort bes2 /sort_work_bes2    [3]

［説明］

処理結果ファイル（/dsk01/rest_file）にpdrbalの実行結果を出力します。

追加したRDエリア（idx01）に対するバックエンドサーバbes1の情報を指定します。

インデクス情報ファイル用ディレクトリ名：/idxwork_bes1

ソート用ワークディレクトリ名：/sort_work_bes1

追加したRDエリア（idx02）に対するバックエンドサーバbes2の情報を指定します。

インデクス情報ファイル用ディレクトリ名：/idxwork_bes2

ソート用ワークディレクトリ名：/sortwork_bes2

10.3　コマンドの形式

10.3.1　形式

　pdrbal 〔-k 動作モード〕
　　　　 -t 〔認可識別子.〕表識別子
　　　　 〔-i インデクス作成方法〕※
　　　　 〔-l ログ取得方式〕※
　　　　 〔-u 認可識別子〕
　　　　 〔-c コミット単位〕
　　　　 〔-n 〔一括入出力用ローカルバッファ面数〕，〔ランダムアクセス用ローカルバッファ面数〕〕※
　　　　 〔-m 〔経過メッセージ出力間隔〕〔,インフォメーションメッセージ出力抑止レベル〕〕
　　　　 〔-W 実行監視時間〕
　　　　 〔制御情報ファイル名〕

注

制御情報ファイル名を指定する場合，必ずオプションの最後に指定してください。

注※

共有モード（-k share）の場合は，指定しても無視されます。

10.3.2　オプション

(1)　-k 動作モード

　　　〜≪share≫

pdrbalの動作モードを指定します。

share

pdrbal実行中でも，他ユーザが表を参照，更新できるモード（共有モード）です。

共有モードは，表に対するオンライン業務を停止しないで，pdrbalを実行する場合に適用してください。

exclusive

pdrbal実行中は，他ユーザに表を参照，更新させないモード（占有モード）です。

占有モードは，表に対するオンライン業務を停止して，pdrbalを実行する場合に適用してください。

(2)　-t 〔認可識別子.〕表識別子

リバランスユティリティを実行するリバランス表の名称を指定します。

認可識別子を省略した場合，HiRDBに接続したユーザの認可識別子が仮定されます。

＜規則＞

次の表は指定できません。

ビュー表

リバランス表（HASH関数（HASHA〜HASHF）で分割した表）以外の表

認可識別子又は表識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Kシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

抽象データ型を含むリバランス表に対するpdrbalの実行可否を次の表に示します。

表10‒4　抽象データ型を含むリバランス表に対するpdrbalの実行可否

抽象データ型の内容

pdrbal実行可否

ユーザが定義した抽象データ型

×

プラグインが提供する抽象データ型

BLOB属性あり

○※

BLOB属性なし

○

（凡例）

○：実行できます。

×：実行できません。

注※

プラグインによっては，データベース再編成用のコンストラクタ逆生成関数を指定したときだけ実行できます。

(3)　-i インデクス作成方法

　　　〜≪c≫

インデクスの作成方法を指定します。

なお，共有モードの場合は指定しても無視されます（sが仮定されます）。

c

インデクス一括作成モードを示します。このモードを指定した場合，行データをリバランスした後，インデクスを一括作成します。

＜適用基準＞

占有モードでリバランスした行データのインデクスを，インデクス情報ファイル，ソート用ワークファイルを使用して高速に作成したいときに指定してください。なお，execstop文を指定した場合，データ移動後にインデクスの一括作成をするため，移動したデータのインデクスが作成されるまでpdrbalが停止できないことがあります。

s

インデクス更新モードを示します。このモードでは，行データを移動するごとにインデクスを更新します。

＜適用基準＞

占有モードでリバランスした行データが少ない場合，又はインデクス情報ファイル，ソート用ワークファイルが確保できない場合に指定してください。また，execstop文に指定したpdrbal実行時間でpdrbalを確実に停止させたい場合にも指定してください。

＜注意事項＞

-i cを指定すると，「インデクス数×追加した表格納用RDエリア数」のインデクス情報ファイルを作成します。このファイルは，データ格納時に同時にオープンするため，ファイル数が多いと1プロセスで使用できるファイル数の上限を超えることがあります。ファイル数の上限を超える場合，システム定義のpd_max_open_fdsオペランドの指定値を大きくしてください。ただし，pd_max_open_fdsオペランドの上限値を超える場合は，1サーバ内の表の分割数，定義しているインデクス数を見直すか，又は-i sを指定するかで対処してください。

index文，及びidxwork文を省略すると，既定の出力先ディレクトリにインデクス情報ファイルを出力します。pdrbalが異常終了すると，このインデクス情報ファイルが不完全な状態で残ります。このため，pdrbalの異常終了を何度も繰り返すと不完全なインデクス情報ファイルが増加し，ディスク容量などOSの資源を圧迫することになります。したがって，既定の出力先ディレクトリに出力した必要のないインデクス情報ファイルについては削除するようにしてください。

index文を省略してidxwork文だけを指定した場合に，idxwork文に指定したディレクトリ下に出力するインデクス情報ファイルについても同様です。

既定の出力先ディレクトリについては「注意事項」の表「 pdrbalがファイルを出力するディレクトリ」を参照してください。

また，インデクス情報ファイルは，次の名称規則で出力します。

INDEX-インデクス名-インデクス格納用RDエリア名-一意となる文字列

(4)　-l ログ取得方式

　　　〜《a》

pdrbal実行時の，データベースの更新ログの取得方法を指定します。

なお，占有モードの場合は必ず-lオプションを指定してください。また，共有モードの場合は指定できません（aが仮定されます）。

a

ログ取得モードを示します。ロールバック，及びロールフォワードに必要なデータベースの更新ログを取得します。

＜適用基準＞

リバランスの行データが少ない場合，又はpdrbalの実行前，実行後にバックアップを取得したくない場合に指定します。

ログ取得モードで実行した場合，pdrbalの実行前，実行後のバックアップは取得する必要はありませんが，ログレスモードと比べて処理性能は劣ります。

n

ログレスモードを示します。データベースの更新ログは取得しません。

＜適用基準＞

リバランスの行データが大量の場合に指定します。

ログレスモードで実行した場合，ログ取得モードに比べると実行時間は短縮できます。ただし，pdrbal実行中の異常終了に備えて，pdrbalの実行前にバックアップを取得する必要があります。また，データベースの更新ログが取得されていないためpdrbal実行後にもバックアップの取得が必要です。

なお，pdrbalが異常終了した場合，表格納用RDエリアは障害閉塞となるため，pdrbal実行前に取得したバックアップで回復する必要があります。

＜規則＞

以前に取得したバックアップから回復できるときは，pdrbal実行前のバックアップ取得は不要です。

ログレスモードでは，データベースの更新ログの代わりに，1サーバ当たり次の量のENQログを出力します。

　ENQログ＝（p＋q＋r）×T

p：表格納用RDエリア数

q：LOB列（LOB属性）格納用RDエリア数

r：インデクス格納用RDエリア数

T：トランザクション数（-cオプションの説明を参照してください）

ログレスモードの運用方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

execstop文を指定してpdrbalを数回に分けて実行する場合，実行するごとにバックアップを取得する必要があります。

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，業務サイトで-l n指定のpdrbalを実行したときは，システムログ適用化を実施してください。システムログ適用化については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

(5)　-u 認可識別子

pdrbalを実行するユーザの認可識別子を指定します。

省略した場合の仮定値については，＜省略時仮定値＞を参照してください。

このオプションを指定した場合，パスワード入力要求の応答付きメッセージが表示されます。パスワードが不要な場合は，応答付きメッセージに対して空送信してください。

ここで指定した認可識別子でHiRDBに接続し，実行権限のチェックをします。

＜適用基準＞

環境変数PDUSERに設定されている認可識別子ではない，別の認可識別子で実行したい場合に指定します。

＜省略時仮定値＞

省略した場合，次の方法で認可識別子/パスワードが仮定されます。

pdrbal実行時の環境変数PDUSERの設定値が仮定されます。シェルで&を付けてバックグラウンドで実行する場合や，リモートシェル環境で実行する場合など，パスワードの応答ができない環境で実行するときは，PDUSERを必ず設定してください。環境変数PDUSERの指定例を次に示します。

（例）Cシェルの場合

パスワードありの場合　setenv PDUSER '"認可識別子"/"パスワード"'

パスワードなしの場合　setenv PDUSER '"認可識別子"'

環境変数PDUSERが設定されていない場合，ログインウィンドウのユーザ名が仮定されます。パスワードについては，入力要求の応答付きメッセージが表示されるので，そこで応答してください。パスワードが不要な場合は，応答付きのメッセージに対して空送信してください。

＜規則＞

このオプションは，シェルで&を付けてバックグラウンドで実行する場合や，リモートシェルなどの応答できない環境では指定しないでください。

認可識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Kシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

(6)　-c コミット単位

　　　〜＜符号なし整数＞((0〜1000000))

　　　　≪共有モードの場合は10，占有モードの場合は100000≫

リバランス処理でデータを再配置するための行データの移動で，何行移動したときにコミットするかを行数で指定します。

0を指定した場合は，1トランザクション当たりの移動行数を制限しません（リバランスが終了するまで，又はexecstop文で指定した時間までを1トランザクションとして移動処理をします）。

HiRDB/パラレルサーバの場合，各RDエリアに格納されている行数によっては，ここで指定したコミット単位より少ない行数でコミットすることがあります。

＜推奨値＞

共用モードの場合，pdrbalでは行データ移動のときに移動元と移動先のRDエリアに対して排他を掛けます。そのため，該当する移動元，移動先RDエリアに対して，移動が終了するまで（コミットするまで）アクセスできなくなります。したがって，共有モードの場合には，コミット単位に小さい値を指定することでほかからの排他待ち時間を短くできます。

UAPなどの動作を優先したい場合は小さい値を指定し，リバランス処理を優先したい場合は大きな値を指定してください。

占有モードで，かつログレスモードの場合，処理対象となる表にインデクスが定義しているときは，コミット単位に0を指定することで処理性能を向上できます（コミット時のインデクスメンテナンス処理で更新したグローバルバッファのフラッシュ処理が1回になるため，性能向上が期待できます。また，コミット数も削減できます）。ただし，1トランザクションで処理するため，処理行数の増加に伴い，排他資源数が増加します。また，シンクポイントダンプを取得しない期間も長くなります。

＜注意事項＞

オンライン業務でのトランザクション数が比較的多い場合，100以下を指定することをお勧めします。

コミット単位に小さい値を指定した場合，リバランス処理の時間は長くなり，また，コミット回数の増加に伴い多量のトランザクションログが出力されます。トランザクションログは，-lオプションの指定値に関係なく必ず出力されるログで，次の計算式から求められます。

　トランザクションログ量（単位：バイト）

　　＝（1328＋176×3）×T

　T：(a÷b＋1024÷c)

　a：リバランス対象のデータ件数

　b：-cオプションの指定値

　c：表格納用RDエリアの数

トランザクションログは，コミットするごとに上記の計算式のログを，各サーバのシステムログファイルに出力します。各サーバとは，すべてのフロントエンドサーバ，及び表格納用RDエリアがあるバックエンドサーバのことです。また，抽象データ型がある表の場合は，ディクショナリサーバも含まれます。

コミット単位に大きい値を指定した場合，シンクポイントを取得できない期間が長くなり，ほかのUAPと同時実行中に障害が発生したときは，再開始に要する時間が増大します。

占有モードで，かつログレスモードの場合，コミット単位に0を指定できます。それ以外の場合は0を指定できません。

(7)　-n 〔一括入出力用ローカルバッファ面数〕，〔ランダムアクセス用ローカルバッファ面数〕

占有モードでリバランスをする場合，ローカルバッファを使用するときに指定します。このオプションを指定すると，ローカルバッファを使用してDBアクセスができるようになり，一括入出力によって入出力回数を削減できます。

このオプションを省略した場合は，グローバルバッファを使用して1ページ単位に入出力をします。

一括入出力用ローカルバッファ面数　〜＜符号なし整数＞((2〜4096))

一括入出力用ローカルバッファの面数を指定します。一括入出力用ローカルバッファは，データページに対して使用します。

一括入出力用ローカルバッファ面数には，16〜32面を指定することをお勧めします。184キロバイト÷ページ長を上限に指定値を決めてください。

ランダムアクセス用ローカルバッファ面数　〜＜符号なし整数＞((4〜125000))

ランダムアクセス用ローカルバッファの面数を指定します。ランダムアクセス用ローカルバッファは，インデクスページに対して使用します。

一括入出力用ローカルバッファ面数，及びランダムアクセス用ローカルバッファ面数は，表定義によって指定の組み合わせを変更することをお勧めします。推奨する-nオプションの指定を次の表に示します。

表10‒5　推奨する-nオプションの指定（pdrbal）

表種別

列定義

-nオプションの指定

FIX表，又は非FIX表

すべての列がNULLである

-n ランダムアクセス用ローカルバッファ面数

非FIX表

可変長データ型の列が定義されている

-n ランダムアクセス用ローカルバッファ面数

抽象データ型列が定義されている

BINARY列が定義されている

FIX表，又は非FIX表

上記以外

-n 一括入出力用ローカルバッファ面数

＜pdrbalが使用するバッファについて＞

-nオプションを省略した場合，グローバルバッファを使用します。この場合，リバランス時に大量のグローバルバッファを使用するため，そのグローバルバッファを使用するUAPのトランザクション性能が劣化します。-nオプションを指定すると，このようなバッファ競合はなくなります。pdrbalとバッファの関係を次の図に示します。

図10‒5　pdrbalとバッファの関係

〔説明〕

グローバルバッファだけを使用する場合（-nオプションを省略した場合），pdrbalとUAPとでバッファの競合が発生します。

ローカルバッファとグローバルバッファを使用する場合（-nオプションを指定した場合），pdrbalとUAPとのバッファの競合は発生しません。ただし，LOB列がある表のリバランスの場合は，-nオプションを指定してもグローバルバッファを使用します。

＜規則＞

このオプションを省略した場合は１を仮定して，グローバルバッファを使用します。したがって，一括入出力はしません。

FIXハッシュ分割のリバランス表に対してこのオプションを指定する場合，ハッシュグループごとに指定したページ数のバッファを確保するため，フレキシブルハッシュ分割のリバランス表に比べてメモリ消費量が大きくなります。なお，ハッシュグループとは，分割キーをハッシュした結果を基にHiRDBがデータを1024のグループに分けるときの，このグループのことをいいます。リバランス中は，このグループごとにRDエリアのセグメントを割り当ててデータを格納します。

このオプションを省略した場合（グローバルバッファを使用する場合），次の計算式以上のバッファ面数がないと十分な性能は得られません。

1RDエリアに必要なバッファ面数

＝1024÷リバランス表が格納されているRDエリア数×2＋3

(8)　-m 〔経過メッセージ出力間隔〕〔,インフォメーションメッセージ出力抑止レベル〕

経過メッセージ出力間隔　〜＜符号なし整数＞((1〜1000))《10》

処理の実行状況を出力するメッセージの出力間隔を，1万行単位で指定します。

実行状況のメッセージはRDエリアごとに出力されます。なお，このメッセージは，-mオプションにlvl2を指定すると，トラブルシュート情報を出力するワークファイルにも出力されます。

インフォメーションメッセージ出力抑止レベル　〜《lvl0》

実行した端末の標準出力，syslogfile，及びメッセージログファイルへのインフォメーションメッセージの出力を抑止します。標準出力，syslogfile，及びメッセージログファイルのすべての出力を抑止する場合，トラブルシュート情報はワークファイルに出力します。指定できるオプションとメッセージの出力先を次の表に示します。

表10‒6　オプションの指定値とメッセージの出力先

オプションの指定値

意味

出力先

標準出力

syslogfile及びメッセージログファイル

ワークファイル

lvl0

出力を抑止しない

○

○

×

lvl1

標準出力への出力を抑止する

×

○

×

lvl2

標準出力，syslogfile及びメッセージログファイルへの出力を抑止する

×

×

○

（凡例）

○：メッセージを出力します。

×：メッセージを出力しません。

ワークファイルにメッセージを出力するのはトラブルシュート目的（ユティリティの動作を確認するため）であり，通常，メッセージを確認する必要がない場合はlvl1を指定することをお勧めします。

＜ワークファイル＞

ワークファイルは，-mオプションにlvl2を指定すると，ユティリティを実行するごとに各サーバに作成されます。このため，pdcspoolコマンドでHiRDBによって定期的に削除されるように，pd_tmp_directoryオペランドにディレクトリを指定しておくことをお勧めします。ワークファイルの出力先を次の表に示します。

表10‒7　ワークファイルの出力先

システム定義のpd_tmp_directoryオペランドの指定

環境変数TMPDIRの指定

ワークファイルの出力先

あり

−

pd_tmp_directoryオペランドに指定したディレクトリ

なし

あり

環境変数TMPDIRに指定したディレクトリ

なし

/tmpディレクトリ

（凡例）

−：該当しません。

なお，ファイルオープンエラーやI/Oエラーなどのためにインフォメーションメッセージがワークファイルへ出力できない場合は，エラーメッセージが出力されますが，処理は続行します。

ワークファイルは，HiRDBが自動で作成します。ファイル名称は，PDRBAL-aa-bbの形式で決められます。それぞれの意味について説明します。

PDRBAL：pdrbalが出力したファイルであることを示す固定のプリフィクスです。

aa：プロセスのサーバ名称です。

bb：ファイル作成時間，及びプロセスIDです。

(9)　-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

リバランスユティリティの実行時間を監視する場合に，その監視時間を分単位で指定します。

このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

オプションを省略した場合は， システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(10)　制御情報ファイル名

　　　〜＜パス名＞

pdrbalの制御文を記述した制御情報ファイルの名称を指定します。

制御情報ファイルに記述できる制御文を次の表に示します。各制御文については，10.3.3〜10.3.10を参照してください。なお，制御情報ファイル中にコメントは記述できません。

表10‒8　制御情報ファイルに記述できる制御文

制御文（記述する内容）

動作モード（-kオプション）

共用モード

（share）

占有モード

（exclusive）

index文

（インデクス情報ファイルの情報の記述）

×

○

idxwork文

（インデクス情報ファイル用ディレクトリの情報の記述）

×

○

sort文

（ソート用ワークディレクトリの情報の記述）

×

○

execstop文

（pdrbal実行時間の情報の記述）

○

○

unld_func文

（コンストラクタパラメタ逆生成関数の情報の記述）

○※

○※

reld_func文

（コンストラクタ関数の情報の記述）

○※

○※

report文

（実行結果ファイルの情報の記述）

○

○

option文

（オプション機能の記述）

○

○

（凡例）

○：任意に指定できます。

×：指定できません。

注※

プラグインによっては，指定しなければならないものもあります。詳細については，各プラグインマニュアルを参照してください。

制御文で記述するファイル，及びディレクトリの規則を次に示します。

HiRDB管理者に対してアクセス権限を与えておく必要があります。

10.3.3　index文（インデクス情報ファイルの情報の記述）

インデクス一括作成モード（-i c）でインデクスを作成する場合，インデクス情報を出力するインデクス情報ファイルの情報を指定します。

＜適用基準＞

システム定義のpd_tmp_directoryオペランド及び環境変数TMPDIRを指定していない場合，index文は，/tmpディレクトリの容量不足を発生させないようにするため，できるだけ指定してください。

インデクスの数，又はインデクスの格納RDエリア数が多い場合は，idxwork文を指定すると便利です。

＜規則＞

index文は，ALTER TABLEで追加したインデクス格納用RDエリアごとに1文指定します。

インデクスを定義していない表の場合，index文を指定する必要はありません。

index文を省略し，かつidxwork文も省略しているときは，インデクスが格納されているサーバの，表「pdrbalがサーバでファイルを出力するディレクトリ」に示すディレクトリ下にインデクス情報ファイルが作成されます。

index文とidxwork文を同時に指定した場合，index文の指定が有効となります。

指定したインデクス情報ファイルが既にある場合，上書きされます。

インデクスの作成が正常終了した場合，指定したインデクス情報ファイルは自動的に削除されます。

(1)　形式

　index インデクス識別子 RDエリア名 インデクス情報ファイル名

(2)　説明

(a)　インデクス識別子

　　　〜＜識別子＞((1〜30))

インデクスのインデクス識別子を指定します。

インデクス識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符で囲まない場合は，すべて英大文字として扱われます。また，インデクス識別子に空白が含まれている場合は，引用符で囲んでください。

(b)　RDエリア名

　　　〜＜識別子＞((1〜30))

ALTER TABLEで追加したインデクス格納用RDエリアの名称を指定します。

RDエリア名を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符で囲まない場合は，すべて英大文字として扱われます。また，RDエリア名に空白が含まれている場合は，引用符で囲んでください。

(c)　インデクス情報ファイル名

　　　〜＜パス名＞

インデクス情報を出力するインデクス情報ファイルの名称を絶対パス名で指定します。

インデクス情報ファイルは，通常ファイルのファイル名を指定してください。

10.3.4　idxwork文（インデクス情報ファイル用ディレクトリの情報の記述）

インデクス一括作成モード（-i c）でindex文を省略した場合，自動的にインデクス情報ファイルが作成されるディレクトリの名称を指定します。

＜適用基準＞

システム定義のpd_tmp_directoryオペランド及び環境変数TMPDIRを指定していない場合，idxwork文は，/tmpディレクトリの容量不足を発生させないようにするため，できるだけ指定してください。

＜規則＞

index文，及びidxwork文の両方を省略した場合，ALTER TABLEで追加したインデクス格納RDエリアがあるサーバの，表「pdrbalがサーバでファイルを出力するディレクトリ」に示すディレクトリにインデクス情報ファイルが作成されます。

HiRDB/シングルサーバの場合，一つだけidxwork文を指定します。

HiRDB/パラレルサーバの場合，ALTER TABLEで追加したインデクス格納用RDエリアがあるサーバの数だけidxwork文を指定します。指定するサーバ名は，インデクス格納RDエリアがあるサーバの名称を指定します。

idxwork文とindex文を同時に指定した場合，index文の指定が有効となり，idxwork文の指定は無視されます。

インデクスの作成が正常終了した場合，指定したディレクトリ下のインデクス情報ファイルは自動的に削除されます。

(1)　形式

　idxwork 〔サーバ名〕 ディレクトリ名

(2)　説明

(a)　サーバ名

　　　〜＜識別子＞((1〜8))

インデクス情報ファイル用ディレクトリを作成するサーバの名称を指定します。

なお，HiRDB/シングルサーバの場合はサーバ名を指定しないでください。

(b)　ディレクトリ名

　　　〜＜パス名＞((1〜255))

インデクス情報ファイルを作成するディレクトリの名称を絶対パス名で指定します。

(3)　作成されるインデクス情報ファイルの名称

作成されるインデクス情報ファイルの名称は次の形式で作成されます。

ディレクトリ名/INDEX-インデクス名-インデクス格納用RDエリア名
  -一意となる文字列

例を次に示します。

条件

インデクス名：IDX1

インデクス格納用RDエリア：USER01

idxwork文の内容：idxwork /hd0400

作成されるインデクス情報ファイルの名称

/hd0400/INDEX-IDX1-USER01-aaaa00001

10.3.5　sort文（ソート用ワークディレクトリの情報の記述）

インデクス一括作成モード（-i c）の場合，インデクスを作成するために使用するソート用ワークファイルの情報を指定します。

＜適用基準＞

システム定義のpd_tmp_directoryオペランド及び環境変数TMPDIRを指定していない場合，sort文は，/tmpディレクトリの容量不足を発生させないようにするため，できるだけ指定してください。

＜規則＞

sort文を省略した場合，インデクス格納RDエリアがあるサーバの，表「pdrbalがサーバでファイルを出力するディレクトリ」に示すディレクトリが仮定されます。

ソート用ワークファイルは，pdrbalの処理終了後に自動的に削除されます。

HiRDB/シングルサーバの場合，一つだけsort文を指定します。

HiRDB/パラレルサーバの場合，ALTER TABLEで追加したインデクス格納用RDエリアがあるサーバの数だけsort文を指定します。

(1)　形式

　sort 〔サーバ名〕　ディレクトリ名

(2)　説明

(a)　サーバ名

　　　〜＜識別子＞((1〜8))

ソート用ワークファイルを作成するサーバの名称を指定します。

HiRDB/シングルサーバの場合，サーバ名は指定しないでください。

(b)　ディレクトリ名

　　　〜＜パス名＞

ソート用ワークファイルを作成するディレクトリの名称を，絶対パス名で指定します。

10.3.6　execstop文（pdrbal実行時間の情報の記述）

意図的にpdrbalを停止させたい場合，pdrbalの実行時間を指定します。

＜適用基準＞

営業時間中など，オンライン処理が比較的混み合う時間帯に，pdrbalを実行しないでオンライン処理を優先させたい場合に指定してください。

＜規則＞

execstop文を省略した場合，リバランスが完了するまで処理を続行します。

予定終了時間になっても，リバランス中の行データ（インデクスも含まれます）が完全に移動するまで処理を続行します。したがって，予定終了時間で終わらない場合もあります。特に，インデクス一括作成モードの場合はデータ移動後にインデクスの一括作成をするため，これらを考慮した終了時間を指定してください。

(1)　形式

　execstop time,pdrbal実行時間

(2)　説明

(a)　pdrbal実行時間

pdrbalの実行時間（HH:MM）を指定します。

HH：時間（00〜168）

MM：分（00又は30）

168時間（1週間）を超える値は指定できません。また，HH及びMMに00を指定した場合，リバランスはしないですぐに終了します（pdrbal開始時の検索・削除・更新のアクセス手順，SQLオブジェクトの削除，及びSQLオブジェクトが無効となっている手続き・関数のリコンパイルはします）。

（例）

比較的トラフィックが少ない21時から9時までの間（12時間），pdrbalを実行する場合は次のように指定します。

execstop time, 12:00

10.3.7　unld_func文（コンストラクタパラメタ逆生成関数の情報の記述）

抽象データ型の列がある表に対してpdrbalを実行する場合，プラグインのアンロード機能を使用してリバランスをします。このとき，アンロードで抽象データ型のデータ値を逆生成する，コンストラクタパラメタ逆生成関数の情報を指定します。

＜適用基準＞

アンロード機能を持つ，プラグインが提供している抽象データ型がある表をリバランスする場合に指定します。

＜規則＞

アンロード機能を持つ，プラグインが提供している抽象データ型がある表の場合は，unld_func文を必ず指定してください。

unld_func文は，表の列に定義されている抽象データ型の数分指定できます。

unld_func文を指定するときは，対でreld_func文も指定してください。

(1)　形式

　unld_func type=〔認可識別子.〕抽象データ型名,

　　　　　　func=関数名（引数の型〔,引数の型…〕）

　　　　　　〔,func=関数名（引数の型〔,引数の型…〕）…〕

(2)　説明

(a)　type=〔認可識別子.〕抽象データ型名

抽象データ型の認可識別子，及び抽象データ型名を指定します。

＜規則＞

認可識別子を省略した場合，抽象データ型を定義したユーザの認可識別子（通常はMASTER）が仮定されます。

認可識別子，及び抽象データ型の名称に小文字，空白を含む場合，引用符（”）で囲んでください。

(b)　func=関数名（引数の型〔,引数の型…〕）

コンストラクタパラメタ逆生成関数の名称，引数の型を指定します。名称，引数の型については，各プラグインのマニュアルを参照してください。

関数名

コンストラクタパラメタ逆生成関数の名称を指定します。

引数の型

コンストラクタパラメタ逆生成関数の引数のデータ型を指定します。引数のデータ型を次の表に示します。

表10‒9　引数のデータ型（pdrbal）

記述方法

備考

integer

INT32

smallint

INT16

char

nchar

mchar

CHAR8

varchar

nvarchar

mvarchar

p_pdb_varchar_t

float

DOUBLE64

smallflt

REAL64

blob

BLOB

抽象データ型名

なし。

binary

p_pdb_binary_t

10.3.8　reld_func文（コンストラクタ関数の情報の記述）

抽象データ型の列がある表に対してpdrbalを実行する場合，プラグインのアンロード機能を使用してリバランスをします。このとき，リロード時に抽象データ型の値を生成する，コンストラクタ関数の情報を指定します。

＜適用基準＞

アンロード機能を持つ，プラグインが提供している抽象データ型がある表をリバランスする場合に指定します。

＜規則＞

アンロード機能を持つ，プラグインが提供している抽象データ型がある表の場合は，reld_func文を必ず指定してください。

reld_func文は，表の列に定義されている抽象データ型の数分指定できます。

reld_func文を指定するときは，対でunld_func文も指定してください。

(1)　形式

　reld_func type=〔認可識別子.〕抽象データ型名,

　　　　　　func=関数名（引数の型〔,引数の型…〕）

(2)　説明

(a)　type=〔認可識別子.〕抽象データ型名

抽象データ型の認可識別子，及び抽象データ型名を指定します。

＜規則＞

認可識別子を省略した場合，抽象データ型を定義したユーザの認可識別子（通常はMASTER）が仮定されます。

認可識別子，及び抽象データ型の名称に小文字，空白を含む場合，引用符（”）で囲んでください。

(b)　func=関数名（引数の型〔,引数の型…〕）

コンストラクタ関数の名称，引数の型を指定します。名称，引数の型については，各プラグインのマニュアルを参照してください。

関数名

コンストラクタ関数の名称を指定します。

引数の型

コンストラクタ関数の引数のデータ型を指定します。

引数のデータ型の形式については，「unld_func文（コンストラクタパラメタ逆生成関数の情報の記述）」の引数の型を参照してください。ただし，抽象データ型名は指定できません。

10.3.9　report文（処理結果ファイルの情報の記述）

pdrbalの処理結果を出力するファイルの情報を指定します。

＜適用基準＞

pdrbal実行ホストの，表「コマンド実行環境でファイルを出力するディレクトリ」に示すディレクトリ以外に処理結果ファイルを作成したい場合に指定してください。

＜規則＞

report文を省略した場合，pdrbalを実行したホストの，表「コマンド実行環境でファイルを出力するディレクトリ」に示すディレクトリ下に処理結果ファイルが作成されます。

pdrbalが終了するまで，処理結果ファイルの内容は保証されません。

pdrbalがリターンコード=8で終了した場合，「移動した行データの情報」以降の情報が出力されないことがあります。出力された場合は，その情報はロールバック後（エラーが発生する直前のコミット時）のものとなります。

(1)　形式

　report 処理結果ファイル名

(2)　説明

(a)　処理結果ファイル名

　　　〜＜パス名＞

処理結果を出力するファイルの名称を，絶対パス名で指定します。

処理結果ファイルは，pdrbalを実行したホストの，通常ファイルのファイル名を指定してください。

(3)　システム定義のpd_tmp_directoryオペランド，環境変数TMPDIR，及びreport文省略時に作成される処理結果ファイルの名称

作成される処理結果ファイルの名称は次の形式で作成されます。

/tmp/REPORT-表識別子-一意となる文字列

表がTABLE1の場合，作成される処理結果ファイルの名称は次のようになります。

/tmp/PEPORT-TABLE1-aaaa00001

(4)　出力形式

pdrbalの処理結果ファイルの出力形式を次に示します。

pdrbal VV-RR(Object Option) *** DB REBALANCE *** yyyy-mm-dd HH:MM:SS [1]
------------------------------------------------------------------------

*** Table rebalance processing list ***

 Schema name  : tanaka  [2]
 Table name   : rev_table  [3]
 Table status : completed  [4]

 ** Moved data information **
 [5]  [6]           [7]                           [8]            [9]
 No. Server   Table rdarea name                Remove row     Insert row
   1 sds      user01                            1,000,000              0
   2 sds      user02                            2,000,000              0
   3 sds      user03                                    0      3,000,000
                                       Total    3,000,000      3,000,000
                                                  [10]           [11]
 ** Rebalance information **
 [12] [13]          [14]                        [15]
 No. Server   Table rdarea name                 Status
   1 sds      user01                            finished
   2 sds      user02                            finished
   3 sds      user03

 *** Exclusive execute information ***

  Start time : 2000-05-05 11:12:13  [16]
  End   time : 2000-05-05 19:20:21  [17]

 pdrbal terminated, return code=0  [18]

［説明］

処理結果のヘッダ情報

VV-RR：バージョン番号

yyyy-mm-dd HH:MM:SS：pdrbalを開始した日付と時刻

スキーマ名

表識別子

表のリバランス状態

completed：リバランス完了

processing：リバランス中

移動元RDエリア又は移動先RDエリアの通番

移動元RDエリア又は移動先RDエリアがあるサーバ名

移動元RDエリア名又は移動先RDエリア名

移動元RDエリアから移動した（削除した）行数

移動先RDエリアに移動した（追加した）行数

移動元RDエリアから移動した（削除した）行数の合計

移動先RDエリアに移動した（追加した）行数の合計

表格納用RDエリアの通番

表格納用RDエリアがあるサーバ名

表格納用RDエリア名

RDエリアのリバランス状況

finished：リバランス完了

processing：リバランス中

error：エラー終了

空白：追加したRDエリア

リバランスを開始した日付と時刻

リバランスが終了した日付と時刻

pdrbalのリターンコード

注

項番5〜9及び12〜15は，表定義で指定した表格納用RDエリア，次にALTER ADD RDAREAで追加したRDエリアの順で出力します。

10.3.10　option文（オプション機能の記述）

pdrbalのオプション機能を指定します。

＜適用基準＞

共用モードのpdrbalが動作できるかどうかをチェックする間隔を，変更する場合に指定します。

＜規則＞

option文は一つだけ指定できます。

(1)　形式

　option 〔check_itv=実行可否チェック間隔〕

(2)　説明

(a)　check_itv=実行可否チェック間隔

　　　〜＜符号なし整数＞((10〜180000))《10》

共用モード（-k share）の場合，pdrbalは処理対象表をアクセスするUAPがあるかどうかをチェックし，アクセスするUAPがないときにデータを移動します。実行可否チェック間隔には，このチェック間隔をミリ秒単位で指定します。

占有モード（-k exclusive）の場合は指定できません。

＜適用基準＞

通常はデフォルト値で運用します。

pdrbalの負荷が大きく，オンライン業務に影響がある場合は，デフォルト値よりも大きい値を指定することで，pdrbalがUAPの動作をチェックする監視間隔が長くなり，オンライン業務を優先できます。

10.4　リバランス中のFIXハッシュ分割表に対してSQLを実行する場合の注意事項

FIXハッシュ分割表の場合は，SQLのアクセス手順を決定するとき，ハッシュキー値によってデータを格納又は検索するRDエリアを特定できます。しかし，HASHA〜HASHFのFIXハッシュ分割表に対してRDエリアの追加をした場合，リバランスが完了するまで，検索のアクセス手順がフレキシブルハッシュ分割表とした検索のアクセス手順に変更になります。このようにフレキシブルハッシュ分割表の検索アクセス手順に変更になると，次のSQLの検索性能が劣化します。

分割キーに条件を指定した検索

GROUP BY句の列が分割キーをすべて含む検索

リバランス処理と検索性能が劣化する期間の関係を次の図に示します。この場合，リバランス中はSQLを実行するためのプロセス数が増加します。

図10‒6　リバランス処理と検索性能が劣化する期間の関係

なお，フレキシブルハッシュ分割表の場合は，リバランス処理によって検索のアクセス手順が変更になることはありません。

10.5　リバランス中のSQL実行可否

リバランス中のSQL実行可否を次の表に示します。

表10‒10　リバランス中のSQL実行可否

SQL文

リバランス処理中

リバランス途中，及びリバランス停止中

共用モード

占有モード

SELECT文

○

×

○

UPDATE文

○※１

×

○※１

INSERT文

○※２

×

○※２

DELETE文

○

×

○

LOCK文

○

×

○

PURGE TABLE文※３

×※４

×

○

DROP TABLE

×※４

×

○

CREATE INDEX

×※４

×

○

DROP INDEX

×※４

×

○

ALTER TABLE

×※４

×

×

（凡例）

○：実行できます。

×：実行できません。

注※1

ユニークキーインデクスを構成する列の更新はできません（エラーとなります）。

注※2

リバランス対象表にユニークキーインデクスが定義されている場合は実行できません（エラーとなります）。

注※3

RDエリア追加後，pdrbal実行前にPURGE TABLE文又はRDエリアの再初期化をした場合，リバランス初期化処理がされていないため，追加したRDエリアに対する格納処理は実行されません。

また，pdrbalがリターンコード0で終了する前に，PURGE TABLE文又はRDエリアの再初期化をした場合，リバランス完了処理がされていないため，FIXハッシュ分割表のSQL検索性能が劣化したままとなります。このような場合には，PURGE TABLE文又はRDエリアの再初期化をした後の状態で，pdrbalを実行してください。これによって，リバランス初期化処理，又はリバランス完了処理が実行されます。

注※4

回復不要FESを適用している場合，pdrbal実行中に定義系SQLやPURGE TABLE文が実行できてしまうことがあります（回復不要FESを適用していない場合は，不当に定義系SQLやPURGE TABLE文が実行されないように，フロントエンドサーバが排他資源を確保して防いでいます）。このため，pdrbal実行中は定義系SQLやPURGE TABLE文を実行しないでください。なお，占有モードでpdrbalを実行する場合は，バックエンドサーバで表に排他制御が掛かっているため，定義系SQLは排他待ちとなります。

10.6　注意事項

pdrbalのリターンコードを次に示します。

0：正常終了（リバランス完了）

4：正常終了（リバランスの途中）

8：異常終了

リバランス中の表に対して定義系SQLは実行できません。

占有モード（-k exclusive）の場合，リバランス中の表やインデクスは，ほかのUAPやユティリティからアクセスできません。

リバランス表を基にリストを作成している場合，リバランス中はリストを使用した検索結果が不正になるときがあります。この場合，リストを使用して検索する前に，リストを再作成してください。

共有モードでのリバランス中に，UAPで行識別子を使用した検索，更新，又は削除をする場合，行識別子の取得と実際のデータ操作との間にコミットを入れると，結果不正になることがあります。

リバランス表に表格納用RDエリアの数と一致しないインデクス格納用RDエリアがある場合（サーバ内分割していない非分割キーインデクスの場合），pdrbalは実行できません。このような表をリバランスするためには，サーバ内分割していない非分割キーインデクスをいったん削除し，pdrbalを実行してください。そして，リバランス終了後に，再度インデクスを定義してください。なお，このようなインデクスはリバランス中には定義できません。リバランス表に非分割キーインデクスを定義する場合は，同一サーバ内の表格納用RDエリアと同じ数のインデクス格納用RDエリアに格納するようにしてください。

pdrbalが出力するデータベースの更新ログは，HiRDB Datareplicatorでのデータ連動機能の対象とはなりません。

リバランスをするデータのインデクス削除，作成では，-nオプションの指定に関係なく，必ずグローバルバッファを使用します。そのため，十分に余裕のあるグローバルバッファを割り当てた環境でpdrbalを実行してください。特に，データの移動元となるRDエリア側では，インデクスごとにグローバルバッファを割り当てると効果的です。グローバルバッファに余裕がない場合，バッファ競合が発生して入出力BUSY状態となり，性能が悪くなります。

インナレプリカ機能を使用していて，複数世代のRDエリアがある場合，pdrbalはエラー終了します。

更新凍結状態のユーザLOB用RDエリアを含む表をリバランスすると，pdrbalがエラー終了します。

pdrbalは，リバランス初期化処理時及びリバランス完了処理時にSQLオブジェクトが無効となっている，データベースにあるすべての手続き，関数をリコンパイルします。そのため，SQLオブジェクトが無効で，かつリコンパイルができない手続き，関数がデータベースにある場合，pdrbalがリコンパイルできなくなるため，エラーとなります。エラーとなった場合，エラーメッセージを確認し，対策してからALTER PROCEDURE又はALTER ROUTINEで手続き，関数をリコンパイルしてください（pdrbalを再実行しても，リコンパイルはされません）。

SQLオブジェクトが無効で，かつリコンパイルできない手続き，関数をpdrbal実行前に調べたい場合，SQL Executerを使用します。SQLオブジェクトが無効で，かつリコンパイルできない手続き，関数の調査方法を次の図に示します。

図10‒7　SQLオブジェクトが無効で，かつリコンパイルできない手続き，関数の調査方法

pdrbalで使用するファイルの媒体とラージファイルの利用可否を次の表に示します。

表10‒11　pdrbalで使用するファイルの媒体とラージファイルの利用可否

ファイル

媒体

ラージファイルの利用可否

通常ファイル

固定長又は可変長ブロックテープ

制御情報ファイル

○

×

○

インデクス情報ファイル

○

×

○

ソート用ワークファイル

○

×

○

処理結果ファイル

○

×

○

（凡例）

○：利用できます。

×：利用できません。

リバランスする表が改竄防止表で，かつその改竄防止表がデータ未完状態の場合，pdrbalは実行できません。

HiRDB/パラレルサーバの場合で，かつ共有モードでpdrbalを実行する場合，回復不要FESを適用していないフロントエンドサーバはすべて稼働している必要があります。

表が検査保留状態の場合（ディクショナリ表SQL_TABLESのCHECK_PEND列又はCHECK_PEND2列の値がC（検査保留状態）），pdrbalは実行できません。

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdrbalの入力ファイルには，BOMを持つファイルを使用できることがあります。pdrbalでのBOMを持つファイルの使用可否を次の表に示します。なお，pdrbalの入力ファイルとしてBOMを持つファイルを使用しても，BOMは読み飛ばされます。また，pdrbalで出力されるファイルにはBOMは付きません。

表10‒12　pdrbalでのBOMを持つファイルの使用可否（UTF-8の場合）

制御文

入力ファイル

BOMを持つファイルの使用

−

制御情報ファイル

○

index

インデクス情報ファイル

×

（凡例）

○：使用できます。

×：使用できません。

−：該当しません。

pdrbalはリバランス対象表の分割数によってハッシングします。そのため，表格納用RDエリアに重複したRDエリアが存在すると，重複したRDエリアに行データが偏って格納される場合があります。

制御文で指定しない場合のファイル出力先ディレクトリ

pdrbal実行時，制御情報ファイルでファイル出力先を指定しない場合，次の表に示すディレクトリにファイルを出力します。

表10‒13　 pdrbalがファイルを出力するディレクトリ

制御文※1の指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIR※2の指定

あり

なし

あり

制御文に指定したディレクトリ又はファイル

なし

pd_tmp_directoryに指定したディレクトリ

TMPDIRに指定したディレクトリ

/tmpディレクトリ

注※1　index文，idxwork文，又はsort文

注※2　init（OSのプロセス）から起動されたプロセスサーバプロセス（pdprcd）に設定される環境変数

ON ROW EXISTS指定の列を追加した表の場合，pdrbalは実行できません。

10.7　エラー時の対処方法

pdrbalのリターンコードが8の場合，エラーメッセージを参照して回復した後に，再度pdrbalを実行してください。

pdrbal実行中にKFPL33003-Iメッセージ（STATUS=END）が出力された場合，表のリバランス処理は正常に終了しています。したがって，このメッセージ出力以降にエラーが発生してもpdrbalを再実行する必要はありません。

占有モードでのインデクス一括作成処理でエラー（リターンコード=8）となった場合，エラー要因を取り除いた後，エラーとなったインデクスのインデクス情報ファイルを使用してpdrorgのインデクスの一括作成（-k ixmk）を実行してください。その後，pdrbalを実行してください。

占有モードで圧縮表のリバランスを実行中，KFPL15240-Eメッセージ（メモリ不足）が出力された場合，共有モードで必要なメモリ容量を確保できるときは，共有モードで再実行してください。実行に必要なメモリ容量については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

pdrbal実行中にロールバックが発生した場合，ログ取得方式（-lオプション）によって対処方法が異なります。pdrbal実行中にロールバックが発生した場合の対処方法を次の表に示します。

表10‒14　pdrbal実行中にロールバックが発生した場合の対処方法

ログ取得方式

（-lオプション）

pdrbalの処理内容

リバランス

インデクスの一括作成（占有モードの場合）

a

データベースの状態

ロールバックされた行データは移動していない状態です。ロールバック直前までの行データは移動完了しています。

インデクスは未完状態となります。

対処方法

pdrbalを再実行してください。

pdrorgのインデクスの一括作成（-k ixmk）を実行してください。このとき，エラーとなったインデクス情報ファイルを使用してください。

n

データベースの状態

保証されません。

保証されません。

対処方法

バックアップから回復した後，pdrbalを再実行してください。

該当するインデクス格納用RDエリアを再初期化して，pdrorgのインデクスの再作成（-k ixrc）を実行してください。

11　空きページ解放ユティリティ（pdreclaim）

この章では，オンライン中に空きページ（使用中空きページ）の解放ができる空きページ解放ユティリティ（pdreclaim）について説明します。

11.1　概要

11.1.1　空きページとは

pdreclaimについて説明する前に，ページ及びセグメントについて説明します。ページ及びセグメントには次の表に示す状態があります。

表11‒1　ページ及びセグメントの状態

ページ及びセグメントの状態

説明

未使用ページ

まだ割り当てられていないページです。

使用中空きページ

データの削除※１によって，データが格納されていないページです。

使用中ページ

データが格納されていて，データを追加できる空き領域があるページです。

空き領域の再利用機能を使用している表の場合は，データの削除※１によってページ内の空き領域が使用できないために，データを追加できなかったページを含みます。

使用中満杯ページ

データが格納されていて，データを追加できる空き領域がないページです。

空き領域の再利用機能を使用していない表及びインデクスの場合は，データの削除※１によってページ内の空き領域が使用できないために，データを追加できなかったページを含みます。

使用中セグメント※２

表又はインデクスのデータを格納しているセグメントです。データが満杯でセグメント内にデータを追加できないセグメントを満杯セグメント，それ以外の使用中セグメントを空きありセグメントといいます。

空きありセグメントのうち，データの削除でセグメント内の全ページが空きページ（使用中空きページ又は未使用ページ）のセグメントを使用中空きセグメントといいます。

未使用セグメント

使用されたことがないセグメントです。このセグメントはRDエリア内のすべての表（又はインデクス）が使用できます。

空きセグメント

データを格納していないセグメントです。使用中空きセグメントと未使用セグメントは空きセグメントになります。

注※1

データの削除を実行したトランザクションがCOMMITするまで，データの削除によって発生した空き領域は使用できません。

注※2

使用中セグメントを使用できるのは，このセグメントにデータを格納した表又はインデクスだけです。ほかの表又はインデクスはこのセグメントを使用できません。

11.1.2　pdreclaimの概要

データベースの運用を続けると，データの追加，更新，及び削除を繰り返すことによって，データベース中のデータ，インデクスの配置に乱れが生じ，格納効率の低下や性能劣化を引き起こします。この場合，データベース再編成ユティリティ（pdrorg）を実行して，データ，インデクスの配置の乱れを修復しますが，pdrorg実行中の表は参照，及び更新ができなくなるため，pdrorgを実行するためにオンラインサービスを停止する時間を確保する必要があります（インナレプリカ機能使用時を除く）。

これに対して，空きページ解放ユティリティ（pdreclaim）は，オンラインサービス中に，pdrorgでの再編成処理の一部である使用中空きページの解放ができます（pdreclaimは，内部的にpdrorgを実行して動作します）。なお，表を排他モード（EX）で排他するAPや，ユティリティを実行しているときは，使用中空きページの解放はできません。また，空きセグメントの解放は，APやユティリティが該当するRDエリアをアクセスしていない状態のときだけ実行できます。

pdreclaimは，次のような場合に実行してください。

オンラインサービスを停止できないシステムでの，データベースの再編成をしない運用の場合※

格納効率の低下を抑えて，データベースの再編成の実行間隔（運用サイクル）を延ばしたい場合

注※

pdreclaimでデータベースの再編成をしない運用をする場合の制限については，「pdrorgとの機能差」を参照してください。制限に該当してpdreclaimが実行できない場合は，pdrorgとインナレプリカ機能を組み合わせたオンライン中の再編成機能を使用する必要があります。

11.1.3　pdreclaimの機能

pdreclaimには，次の二つの機能があります。

表の使用中空きページ解放

インデクスの使用中空きページ解放

-j又は-aオプションなしでpdreclaimを実行すると，使用中空きページの解放をします。その結果，使用中空きセグメントが発生した場合に，-jオプションありのpdreclaimを実行すると，使用中空きセグメントの解放をします。また，-aオプションありのpdreclaimを実行した場合は，使用中空きページの解放，及び使用中空きセグメントの解放をします。

-j又は-aオプション有無によるpdreclaimの実行可否を次に示します。

pdreclaimのオプション指定

使用中空きページの解放

使用中空きセグメントの解放

-j又は-aオプションなし

○

×

-jオプションあり

×

○

-aオプションあり

○

○

（凡例）

○：実行します。

×：実行しません。

したがって，使用中空きページの解放をしないで，使用中空きセグメントの解放だけをすることはできません。ただし，次の操作をした場合，-j又は-aオプションなしのpdreclaimで使用中空きページの解放をしなくても使用中空きセグメントが発生するため，-jオプションありのpdreclaimで使用中空きセグメントの解放ができます。

表に排他が掛かった状態で，データを削除した場合

pdload（option文のnowaitオペランドにyesを指定）が，データロード中に異常終了してロールバックした場合

表の使用中空きページ解放の効果

表の使用中空きページ解放をすると，次の効果があります。

全件検索性能の改善

全件検索実行時に参照していた使用率0％のページが未使用ページとなるため，参照をスキップするようになり，全件検索の性能が向上します。

分岐行のINSERT文，UPDATE文実行時のエラー回避

未使用ページがなくなると，分岐行のINSERT文，UPDATE文はエラー（KFPA11756-E）となりますが，使用率0％のページを未使用ページにすることでエラーを回避できます。

INSERT文，UPDATE文実行時のページコンパクション処理の回避

すべての使用中空きページについてページコンパクションを一括して実行するため，INSERT文，UPDATE文の延長で実行されるページコンパクションを回避できます。

インデクスの使用中空きページ解放の効果

インデクスの使用中空きページ解放をすると，次の効果があります。

使用中空きページがあるのにエリア不足となる現象を回避できます。

インデクス検索実行時に，使用中空きページを参照するために発生する性能劣化を回避できます。

インデクスの使用中空きページ解放実行後の，未使用ページ割り当て処理は，使用中空き領域サーチ処理で解放した未使用ページを優先して割り当てます。使用中セグメント内の未使用ページを優先して割り当てるため，領域が有効活用できて，使用中空き領域サーチ処理時のオーバヘッドも削減できます。

(1)　表の使用中空きページ解放

表の使用中空きページ解放の概要を次の図に示します。

図11‒1　表の使用中空きページ解放の概要

表の使用中空きページ解放では，使用中空きセグメントの解放，使用中空きページの解放，及びページコンパクションの実行有無を選択できます。なお，LOB列，及びLOB属性の抽象データ型列に対して，表の使用中空きページ解放は適用できません。

使用中空きセグメントの解放，及び使用中空きページの解放

データを大量に削除した場合，格納データが1件もないのに割り当てられたままとなる使用中空きページが発生します。SEGMENT REUSE表（CREATE TABLE又はALTER TABLEでSEGMENT REUSEオプションを指定した表）でない場合，HiRDBは未使用ページ，及び未使用セグメントを使用する格納方式となっています。この新規領域が確保できなくなると使用中空きページを再利用しますが，再利用する場合は使用中ページ内の空き領域をサーチするオーバヘッドが発生し，新規領域確保に比べて性能が劣化します。また，SEGMENT REUSE表であっても，使用中空きページがある状態では全件検索などでむだなページを検索していることになります。さらに，再利用できるのは該当する使用中セグメントの表，又はインデクスに限ります。

pdreclaimを実行すると，すぐには再利用されない使用中空きページが解放されるため，次の効果があります。

すべてのデータが削除されたセグメントは未使用セグメントとなり，すべての表及びインデクスで再利用できるようになります。

すべてのデータが削除されたページは未使用ページとなるため，該当する使用中セグメントの表で再利用できます。特に，SEGMENT REUSE表の場合，再利用するページをサーチするオーバヘッドが削減されるため，効果が大きいです。

1.の効果として，同一RDエリアに複数の表を格納している場合，表Aがデータを格納していない使用中空きセグメントを保持しているために，表Bが新たな未使用セグメントを確保できないでRDエリアの容量不足となることを回避できます。同一RDエリアに複数の表を格納している場合のpdreclaimの効果を次の図に示します。

図11‒2　同一RDエリアに複数の表を格納している場合のpdreclaimの効果

表のぺージコンパクション

表のページコンパクションの概要を次の図に示します。

図11‒3　表のページコンパクションの概要

〔説明〕

pdreclaim実行前の状態では，削除された行2及び行5より長いデータは，行2及び行5の削除で発生した空き領域をそのまま使用して格納することはできません。この場合，空き領域を連続領域にすれば格納できます。この散在している空き領域を連続領域に詰め替える動作を，ページコンパクションといいます。ページコンパクションは，SQLの延長でも実行されます。ただし，SQLの延長で実行される場合は，オンライン性能が劣化するため，事前にpdreclaimでページコンパクションをしておくことで，オンライン中の性能劣化を回避できます。なお，ページコンパクションが発生すると，入出力処理の負荷が高くなります。

(2)　インデクスの使用中空きページ解放

インデクスの使用中空きページ解放の概要を次の図に示します。

図11‒4　インデクスの使用中空きページ解放の概要

インデクスの使用中空きページ解放では，使用中空きセグメントの解放，又は使用中空きページの解放のどちらを行うか選択できます。なお，プラグインインデクスに対して，インデクスの使用中空きページ解放は適用できません。

使用中空きセグメントの解放，及び使用中空きページの解放

インデクスの場合も表と同様に，大量にデータを削除すると，再利用できない使用中空きページが発生します。特に，過去のキー値の小さいデータを削除して使用中空きページになった領域は，再度同じキー値が格納された場合に備えて確保状態（ポインタでつながったまま）が続くため，新規のキー値の大きいデータを追加するときに使用中空きページの再利用もされません。このため，単調に格納データのキー値が増加し，過去のデータを削除する運用形態では，再利用できない使用中空きページが大量に発生します。このインデクスに対してpdreclaimを実行すると，使用中空きページを解放して未使用ページとするため，大きいキー値のデータを格納できるようになります。また，下位ページポインタを持たない中間ページも未使用ページにできます。

インデクスのページコンパクション

インデクスのページコンパクションの概要を次の図に示します。

図11‒5　インデクスのページコンパクションの概要

〔説明〕

pdreclaim実行前の状態では，削除されたキー2及びキー5は残存エントリとして残っています。この残存エントリを解放して，連続領域に詰め替える動作をページコンパクションといいます。ページコンパクションはSQLの延長でも実行されます。ただし，SQLの延長で実行される場合は，オンライン性能が劣化するため，事前にpdreclaimでページコンパクションを実行しておくことで，オンライン中の性能劣化を回避できます。なお，ページコンパクションが発生すると，入出力処理の負荷が高くなります。

また，残存エントリがあると，排他待ち又はデッドロックが発生することがあります。pdreclaimでページコンパクションを実行しておくことで，排他待ち又はデッドロックも回避できます。

インデクスの残存エントリ，及びユニークインデクスの残存エントリについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

11.1.4　pdrorgとの機能差

オンラインを停止する時間を確保できる場合，及びインナレプリカ機能を使用したオンライン中の再編成ができる場合は，pdrorgで再編成をする方がよいです。理由は，pdreclaimよりpdrorgの再編成の方がデータを再配置する機能が多いためです。pdrorgを実行すると，次の図のように再配置されるため，より多くの使用中空きページ，及び使用中空きセグメントが解放されます。

図11‒6　pdrorgを実行した場合の使用中空きページ，及び使用中空きセグメントの解放

ただし，pdreclaimは，pdrorgと比較して次の利点があります。

UAPから，ユティリティ実行中の表及びインデクスを参照，更新できます（インナレプリカ機能使用時を除く）。

アンロードデータファイル，ワークファイルなどが不要です。

したがって，次の条件をすべて満たす場合は，pdreclaimの実行を推奨します。

可変長文字列の更新がない（分岐行が発生しない）。

繰返し列の要素数の変更がない（分岐行が発生しない）。

ナル値を実データ，又は実データをナル値に変更しない（分岐行が発生しない）。

クラスタキーインデクスを定義していない（クラスタキーを意識して配置する必要がない）。

LOB列，及びLOB属性の抽象データ型列がない。

データを削除する場合，物理的に格納位置が近いデータを一度に大量に削除する（使用中空きページとなる）。又は，SEGMENT REUSE表である。

クラスタキーインデクスを定義していないFIX属性のSEGMENT REUSE表は，pdreclaimで運用するのに最適な表となります。また，上記の条件を満たさない表でも，pdreclaimを実行することで使用中空きページの解放はされるため，使用中ページ内の空き領域サーチ処理で発生する極端な性能劣化は回避できます。これによって，毎週末にpdrorgを実行していた運用を，月末にだけ実行する運用に変えることもできます。

インデクスについては，削除したキー値を再度登録することがない場合は，pdreclaimでの運用は最適です。また，キー値の更新，削除が多い場合は，pdrorgでのインデクスの再編成をしなくても，インデクス格納用RDエリアの容量不足が発生しにくくすることができます。

pdrorg，又はpdreclaimのどちらを実行するかについては，データベース状態解析ユティリティの結果を参照して決めてください。ページ使用率が0％のページが大量にある場合はpdreclaimを実行してください。CREATE TABLEのPCTFREEで指定した値と，大きく異なるページ使用率のページが大量にある場合は，pdrorgを実行してください。

11.1.5　実行環境

pdreclaimは，HiRDBが稼働中のときだけ実行できます。

pdreclaimは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdreclaimを実行する場合，LANG環境変数を設定してください。また，pdreclaimの実行環境で，OSがサポートしていない文字コードを使用する場合，PDLANG環境変数を設定する必要があります。LANG，及びPDLANGについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

処理対象RDエリアは，オープン状態であればpdreclaimは実行できます。なお，-jオプションを指定する場合は，RDエリアをオープン状態，かつコマンド閉塞状態にすることをお勧めします。pdreclaimの実行可否については，「コマンド実行時のRDエリアの状態」を参照してください。

同一の表，インデクスに対して，pdreclaimを複数同時には実行できません（エラーとなります）。なお，表，インデクスを格納しているRDエリア単位に同時実行することはできます。

11.1.6　実行者

ディクショナリ表を処理対象とする場合

DBA権限が必要となります。

そのほかの場合

DBA権限（監査証跡表が処理対象の場合は監査権限），又は処理対象表に対するINSERT権限，及びDELETE権限が必要です。

11.1.7　pdreclaimと他機能との同時実行

pdreclaimと他機能との同時実行性について説明します。

(1)　pdreclaimと運用コマンドの同時実行可否

pdreclaimと運用コマンドの同時実行可否を次の表に示します。

表11‒2　pdreclaimと運用コマンドの同時実行可否

運用コマンド

条件

pdreclaim

-j及び-aオプションなし（空きページ解放）

-jオプションあり（空きセグメント解放）

-aオプションあり（空きページ及び空きセグメント解放）

pdclose

−

×

×

×

pddbchg

−

×

×

×

pddbfrz

−

×

×

×

pddbls

-a

○

×

○

-a以外

○

○

○

pdhold

-bu

○

○

○

-bu以外

×

×

×

pdopen

−

×

×

×

pdorbegin

−

×

×

×

pdorchg

−

×

×

×

pdorend

−

×

×

×

pdrels

RDエリアが更新可能バックアップ閉塞

○

○

○

RDエリアが更新可能バックアップ閉塞以外

×

×

×

（凡例）

○：同時実行できます。

×：同時実行できません（排他待ちとなります）。

−：該当しません。

(2)　pdreclaimとユティリティの同時実行可否

pdreclaimとユティリティの同時実行可否を次の表に示します。

表11‒3　pdreclaimとユティリティの同時実行可否

ユティリティ

条件

pdreclaim

-j及び-aオプションなし（空きページ解放）

-jオプションあり（空きセグメント解放）

-aオプションあり（空きページ及び空きセグメント解放）

異なる表（インデクス)

同一表（インデクス)

異なる表（インデクス)

同一表（インデクス)

異なる表（インデクス)

同一表（インデクス)

pdload

表単位のデータロード

○

×

×

×

○

×

RDエリア単位のデータロード

×

×

×

×

×

×

LOB列だけのデータロード

○

○

×

×

○

△

pdmod

−

×

×

×

×

×

×

pdrorg

アンロード（unldenq=tblenq又はunldenq=nowait）

○

○（インデクスは△）

×

×

○

△

アンロード（unldenq=rdenq）

×

×

×

×

×

×

表単位のリロード又は表単位の再編成

○

×

×

×

○

×

RDエリア単位のリロード，又はRDエリア単位の再編成

×

×

×

×

×

×

インデクスの一括作成

○

×

×

×

○

×

インデクスの再作成（index文指定，かつ横分割インデクス）

×

×

×

×

×

×

インデクスの再作成（index文指定，かつ非横分割インデクス）

○

×

×

×

○

×

インデクスの再作成（idxname文指定）

○

×

×

×

○

×

インデクスの再編成（インデクス格納RDエリアをコマンド閉塞している場合）

○

×

×

×

○

×

インデクスの再編成（インデクス格納RDエリアをコマンド閉塞していない場合）

×

×

×

×

×

×

LOB列だけのリロード

○

○

×

×

○

△

LOB列だけの再編成

○

×

×

×

○

×

pdrbal

−

×

×

×

×

×

×

pdreclaim

空きページ解放

○

×

×

×

○

×

空きセグメント解放

×

×

×

×

×

×

空きページ及び空きセグメント解放

○

×

×

×

○

×

pdpgbfon

データページの読み込み

○

○

×

×

○

△

インデクスページの読み込み

○

×

×

×

○

×

pdconstck

−

○

×

×

×

○

×

pddbst

−

○

○（インデクスは△）

×

×

○

△

pdgetcst

最適化情報の取得

○

○（インデクスは△）

×

×

○

△

最適化情報の削除

○

○

○

○

○

○

pdcopy

参照・更新不可能モード又は参照可能モード

×

×

×

×

×

×

更新可能モード

○

○

○

○

○

○

pdrstr

−

×

×

×

×

×

×

（凡例）

○：同時実行できます。

×：同時実行できません（排他待ちとなります）。

△：pdreclaimが，同時実行するユティリティのトランザクションの完了を待ちます。

−：該当しません。

(3)　pdreclaimとSQLの同時実行可否

pdreclaimとSQLの同時実行可否を次の表に示します。

表11‒4　pdreclaimとSQLの同時実行可否

SQL

LOCK文

pdreclaim

-j及び-aオプションなし（空きページ解放）

-jオプションあり（空きセグメント解放）

-aオプションあり（空きページ及び空きセグメント解放）

異なる表（インデクス)

同一表（インデクス)

異なる表（インデクス)

同一表（インデクス)

異なる表（インデクス)

同一表（インデクス)

SELECT文，UPDATE文，INSERT文，DELETE文

使用しない 又はIN SHARE MODEを使用する

○

○（インデクスは△）

×

×

○

△

IN EXCLUSIVE MODEを使用する

○

○（インデクスは△）

×

×

○

×

PURGE TABLE文

−

○

×

×

×

○

×

DROP TABLE

−

○

×※

×

×※

○

×※

CREATE INDEX

−

○

×

×

×

○

×

DROP INDEX

−

○

×※

×

×※

○

×※

ALTER TABLE

−

○

×※

×

×※

○

×※

（凡例）

○：同時実行できます。

×：同時実行できません（排他待ちとなります）。

△：pdreclaimが，同時実行するSQLのトランザクションの完了を待ちます。

−：該当しません。

注※

このユティリティ実行中に，処理中の表又はインデクスに対する表削除，インデクス削除，及び表定義変更は実行できません。しかし，タイミングによっては実行できる場合があり，次のように動作します。

表定義変更で追加した対象はpdreclaimの実行対象になりません。しかし，pdreclaimで対象とする表，インデクス又はRDエリアを削除する表定義変更をしたとき，KFPA11815-Eが出力されます。

(4)　pdreclaimとローカルバッファを指定したUAPの同時実行可否

pdreclaimとローカルバッファを指定したUAPの同時実行可否を次の表に示します。

表11‒5　pdreclaimとローカルバッファを指定したUAPの同時実行可否

ローカルバッファの指定方法

同一RDエリアの操作対象

-j及び-aオプションなし（空きページ解放）

-jオプションあり（空きセグメント解放）

-aオプションあり（空きページ及び空きセグメント解放）

pd_uap_waitオペランド

pdlbufferオペランド

異なる表

異なるインデクス

同一表

同一インデクス

異なる表

異なるインデクス

同一表

同一インデクス

異なる表

異なるインデクス

同一表

同一インデクス

Y指定

-r指定

×※1

×※1

×※1

×※1

×※1

×※1

×※1

×※1

×※1

×※1

×※1

×※1

-i指定

○

○

○

×※1

×※1

×※1

×※1

×※1

○

○

×※1

×※1

N指定

-r指定

×※2

×※2

×※2

×※2

×※2

×※2

×※2

×※2

×※2

×※2

×※2

×※2

-i指定

○

○

○

×※2

×※2

×※2

×※2

×※2

○

○

×※2

×※2

（凡例）

○：同時実行できます。

×：同時実行できません。

注※1

排他待ちとなります。

注※2

UAPがエラー終了となります。

11.2　使用例

pdreclaimの使用例を次に示します。

11.2.1　HiRDB/シングルサーバの場合

例１：

表（TBL1）の使用中空きページ解放をします。表，及びインデクスは次のように定義されているものとします。
・表定義
  CREATE FIX TABLE TBL1(C1 INTEGER,C2 CHAR(10),C3 DEC(15))
      IN ((USER01) C1>0,(USER02))
・インデクス定義
  CREATE INDEX IDX01 ON TBL1(C1) IN ((USER01),(USER02))
  CREATE INDEX IDX02 ON TBL1(C3) IN USER03

［概要］

●pdreclaimのコマンド

 pdreclaim -k table -t TBL1

［説明］

-k table：表の使用中空きページ解放をする指定

-t TBL1：使用中空きページ解放の対象となる表

例２：

表（TBL1）に定義されている，すべてのインデクスの使用中空きページ解放をします。表，及びインデクスは次のように定義されているものとします。
・表定義
  CREATE FIX TABLE TBL1(C1 INTEGER,C2 CHAR(10),C3 DEC(15))
      IN ((USER01) C1>0,(USER02))
・インデクス定義
  CREATE INDEX IDX01 ON TBL1(C1) IN ((USER01),(USER02))
  CREATE INDEX IDX02 ON TBL1(C3) IN USER03

［概要］

●pdreclaimのコマンド

 pdreclaim -k index -t TBL1

［説明］

-k index：インデクスの使用中空きページ解放をする指定

-t TBL1：使用中空きページ解放の対象となる表

11.2.2　HiRDB/パラレルサーバの場合

例３：

表（TBL1）の使用中空きページ解放をします。表，及びインデクスは次のように定義されているものとします。
・表定義
  CREATE FIX TABLE TBL1(C1 INTEGER,C2 CHAR(10),C3 DEC(15))
      IN ((USER11) C1>0,(USER21))
・インデクス定義
  CREATE INDEX IDX01 ON TBL1(C1) IN ((USER12),(USER22))
  CREATE INDEX IDX02 ON TBL1(C3) IN ((USER13),(USER23))

［概要］

●pdreclaimのコマンド

 pdreclaim -k table -t TBL1

［説明］

-k table：表の使用中空きページ解放をする指定

-t TBL1：使用中空きページ解放の対象となる表

例４：

表（TBL1）に定義されているインデクス（IDX01）の使用中空きページ解放をします。表，及びインデクスは次のように定義されているものとします。
・表定義
  CREATE FIX TABLE TBL1(C1 INTEGER,C2 CHAR(10),C3 DEC(15))
      IN ((USER11) C1>0,(USER21))
・インデクス定義
  CREATE INDEX IDX01 ON TBL1(C1) IN ((USER12),(USER22))
  CREATE INDEX IDX02 ON TBL1(C3) IN ((USER13),(USER23))

［概要］

●pdreclaimのコマンド

 pdreclaim -k index -t TBL1 control_file

［説明］

-k index：インデクスの使用中空きページ解放をする指定

-t TBL1：使用中空きページ解放の対象となる表

control_file：制御情報ファイル

●制御情報ファイル（control_file）の内容

 idxname name=IDX01    [1]

［説明］

使用中空きページ解放の対象となるインデクスを指定します。

例５：

表（TBL1）に定義されているインデクス（IDX01）の，インデクス格納用RDエリア（USER12）の使用中空きページ解放をします。表，及びインデクスは次のように定義されているものとします。
・表定義
  CREATE FIX TABLE TBL1(C1 INTEGER,C2 CHAR(10),C3 DEC(15))
      IN ((USER11) C1>0,(USER21))
・インデクス定義
  CREATE INDEX IDX01 ON TBL1(C1) IN ((USER12),(USER22))
  CREATE INDEX IDX02 ON TBL1(C3) IN ((USER13),(USER23))

［概要］

●pdreclaimのコマンド

 pdreclaim -k index -t TBL1 control_file

［説明］

-k index：インデクスの使用中空きページ解放をする指定

-t TBL1：使用中空きページ解放の対象となる表

control_file：制御情報ファイル

●制御情報ファイル（control_file）の内容

 idxname name=IDX01 rdarea=USER12    [1]

［説明］

使用中空きページ解放の対象となるインデクスとインデクス格納用RDエリアを指定します。

11.3　コマンドの形式

11.3.1　形式

　pdreclaim -k 対象資源
　　　　　　〔-t ｛〔認可識別子.〕表識別子｜〔認可識別子.〕all｝〕
　　　　　　〔-r RDエリア名〕
　　　　　　〔-c 処理対象〕
　　　　　　〔-m 〔空きページ解放のコミット間隔〕〔，空きセグメント解放のコミット間隔〕〕
　　　　　　〔-u 認可識別子〕
　　　　　　〔-w 同時実行トランザクション決着待ち時間〕
　　　　　　〔-X サーバ間通信の応答監視時間〕
　　　　　　〔-q 世代番号〕
　　　　　　〔｛-Z｜-j｜-a｝〕
　　　　　　〔-x〕
　　　　　　〔-p〕
　　　　　　〔-n 排他制御リトライ回数〕
　　　　　　〔-s サーバ名〕
　　　　　　〔制御情報ファイル名〕

注

制御情報ファイル名を指定する場合，必ずオプションの最後に指定してください。

各オプションの関係

-c user指定時の各オプションの関係と-c dic指定時の各オプションの関係を次の表に示します。

表11‒6　-c user指定時の各オプションの関係

オプション

-kオプション

-tオプション

table

index

表識別子

all

-r RDエリア名

○

×

○

×

-m コミット間隔

○

○

○

○

-u 認可識別子

○

○

○

○

-w 同時実行トランザクション決着待ち時間

○

○

○

○

-X サーバ間通信の応答監視時間

○

○

○

○

-q 世代番号

○

○

○

○

｛-Z｜-j｜-a｝

○

○

○

○

-x

×

○

○

○

-p

○

○

○

○

-n 排他制御リトライ回数

○

○

○

○

-s サーバ名

○

○

○

○

制御情報ファイル名

○

○

○

○

（凡例）

○：指定できます。

×：指定できません。

表11‒7　-c dic指定時の各オプションの関係

オプション

-kオプション

table

index

-t ｛〔認可識別子.〕表識別子｜〔認可識別子.〕all｝

×

×

-r RDエリア名

×

×

-m コミット間隔

○

○

-u 認可識別子

○

○

-w 同時実行トランザクション決着待ち時間

○

○

-X サーバ間通信の応答監視時間

○

○

-q 世代番号

×

×

｛-Z｜-j｜-a｝

○

○

-x

×

○

-p

○

○

-n 排他制御リトライ回数

○

○

-s サーバ名

×

×

制御情報ファイル名

○

○

（凡例）

○：指定できます。

×：指定できません。

11.3.2　オプション

(1)　-k 対象資源

使用中空きページ解放の処理対象とする資源（表又はインデクス）を指定します。

table：

処理対象が表の場合に指定します。

index：

処理対象がインデクスの場合に指定します。

(2)　-t ｛〔認可識別子.〕表識別子｜〔認可識別子.〕all｝

　　　〜＜識別子＞

使用中空きページ解放の対象となる表名を指定します。

認可識別子を省略した場合，HiRDBに接続したときのユーザの名称が仮定されます。

allを指定した場合，認可識別子をスキーマ名とした，該当スキーマが持つすべての表，又はインデクスを処理対象とします。この場合，idxname文は指定できません。

(3)　-r RDエリア名

　　　〜＜識別子＞

-tオプションに指定した表を格納するRDエリアのうち，ある特定のRDエリアだけを処理対象としたい場合，そのRDエリア名を指定します。

このオプションは，-k tableの場合に指定できます。-k indexの場合は，idxname文で指定します。

RDエリア名には，ユーザ用RDエリアだけ指定できます。また，一括指定は指定できません。

(4)　-c 処理対象

　　　〜《user》

処理対象（ユーザ用RDエリア，又はデータディクショナリ用RDエリア）を指定します。

user：

ユーザ用RDエリアを処理対象とします。

dic：

データディクショナリ用RDエリアを処理対象とします。

(5)　-m 〔空きページ解放のコミット間隔〕〔，空きセグメント解放のコミット間隔〕

空きページ解放，又は空きセグメント解放のコミット間隔を指定します。

空きページ解放のコミット間隔　〜＜符号なし整数＞((0〜100000))《1000》

使用中空きページ解放処理のトランザクション決着間隔を，解放したページ数で指定します。表又はインデクスの1RDエリア単位での解放ページ数が指定値以上になると，トランザクションを決着します。解放したページ数には，ページコンパクションだけ実行され，使用中空きページにできなかったページも含まれます。

0を指定した場合，該当するRDエリアにあるすべての使用中空きページ解放が完了してから，トランザクションを決着します。

指定値を大きくすると，トランザクションログ量を削減できます。しかし，その反面，pdreclaimが長時間トランザクションとなり，シンクポイント有効化のタイミングがなくなります。また，同時に-pオプションを指定する場合，シンクポイントダンプ取得前にトランザクション決着できるようにコミット間隔を指定する必要があります。-pオプション指定時のコミット間隔の目安は，pdreclaimがアクセスするグローバルバッファのシンクポイント出力ページ数の総和の50％以下としてください。シンクポイント出力ページ数は「グローバルバッファプールに関する統計情報」のSYNCWで確認できます。

空きセグメント解放のコミット間隔　〜＜符号なし整数＞((0〜10000000))《0》

空きセグメント解放のコミット間隔の指定は，同時に-aオプションを指定しているときだけ有効となります。

使用中空きセグメント解放処理のトランザクション決着間隔を，解放したセグメント数で指定します。表又はインデクスの1RDエリア単位での解放セグメント数が指定値以上になると，トランザクションを決着します。

0を指定した場合，該当するRDエリアにあるすべての使用中空きセグメント解放が完了してから，トランザクションを決着します。

指定値を大きくすると，トランザクションログ量を削減できます。しかし，その反面，pdreclaimが長時間トランザクションとなり，シンクポイント有効化のタイミングがなくなります。また，同時に-pオプションを指定する場合，シンクポイントダンプ取得前にトランザクション決着できるようにコミット間隔を指定する必要があります。-pオプション指定時のコミット間隔の目安は，「pdreclaimがアクセスするグローバルバッファのシンクポイント出力ページ数の総和÷2×60」以下としてください。シンクポイント出力ページ数は「グローバルバッファプールに関する統計情報」のSYNCWで確認できます。

(6)　-u 認可識別子

pdreclaimを実行するユーザの認可識別子を指定します。

認可識別子については，「-u 認可識別子」を参照してください。

(7)　-w 同時実行トランザクション決着待ち時間

　　　〜＜符号なし整数＞((0〜3600))《0》

空きページ解放又は空きセグメント解放をする表やインデクスは，UAPやユティリティから同時にアクセスされると，pdreclaimは排他解除待ち，又はトランザクション決着待ちとなります。-wオプションには，このpdreclaimの待ち時間を秒単位で指定します。

なお，pdreclaimは次の場合に待ち状態になります。

排他解除待ち：

次のどちらかのときに排他解除待ちになります。

同じRDエリアを参照又は更新するUAPやユティリティが実行中のとき

RDエリア単位のデータロードや，ローカルバッファを使用したUAPが実行中のとき

トランザクション決着待ち：

次のどちらかのときにトランザクション決着待ちになります。

空きページ解放するインデクス，及びそのインデクスが定義されている表に対して，次の操作がトランザクション決着待ちのとき

・SQL文（SELECT文，UPDATE文，INSERT文，及びDELETE文）

・pdrorgのアンロード

・pddbst（表単位の状態解析，インデクス単位の状態解析，クラスタキー及びクラスタリングデータページの格納状態解析，状態解析結果蓄積機能，及び再編成時期予測機能）

空きセグメント解放する表又はインデクスに対して，次の操作がトランザクション決着待ちのとき

・SQL文（SELECT文，UPDATE文，INSERT文，及びDELETE文）

・pdrorgのアンロード

・pdpgbfon

・pddbst（表単位の状態解析，インデクス単位の状態解析，クラスタキー及びクラスタリングデータページの格納状態解析，状態解析結果蓄積機能，及び再編成時期予測機能）

ホールダブルカーソルを使用した検索の実行待ち：

空きセグメント解放する表又はインデクスに対して，ホールダブルカーソルを使用して検索するUAPがある場合，ホールダブルカーソルを使用した検索の実行待ちとなります（ホールダブルカーソルを使用した検索が，カーソルをクローズしてトランザクションを決着するまで待ちます）。なお，pdreclaim実行中にホールダブルカーソルをクローズしても，同一UAPで同じ表又は同じインデクスに対して再度ホールダブルカーソルをオープンすれば，そのカーソルのクローズ，及びトランザクションの決着を待ちます。

-wオプション指定の有無とpdreclaimの待ち時間の関係を次の表に示します。

表11‒8　-wオプション指定の有無とpdreclaimの待ち時間の関係

処理

-wオプションの指定

排他解除待ちの時間

トランザクション決着待ちの時間

ホールダブルカーソルを使用した検索の実行待ちの時間

表の空きページ解放

あり

-wオプション指定値だけ待つ

−

−

なし

排他待ち状態が解除されるまで待つ

−

−

インデクスの空きページ解放

あり

-wオプション指定値だけ待つ

-wオプション指定値だけ待つ

−

なし

排他待ち状態が解除されるまで待つ

他トランザクションが決着するまで待つ

−

表の空きセグメント解放（-j）

あり

-wオプション指定値だけ待つ

−

−

なし

排他待ち状態が解除されるまで待つ

−

−

インデクスの空きセグメント解放（-j）

あり

-wオプション指定値だけ待つ

−

−

なし

排他待ち状態が解除されるまで待つ

−

−

表の空きページ解放，表の空きセグメント解放（-a）

あり

-wオプション指定値だけ待つ

-wオプション指定値だけ待つ

-wオプション指定値だけ待つ

なし

排他待ち状態が解除されるまで待つ

他トランザクションが決着するまで待つ※1

ホールダブルカーソルを使用した検索のカーソルがクローズしてトランザクションを決着するまで待つ※2

インデクスの空きページ解放，インデクスの空きセグメント解放（-a）

あり

-wオプション指定値だけ待つ

-wオプション指定値だけ待つ

-wオプション指定値だけ待つ

なし

排他待ち状態が解除されるまで待つ

他トランザクションが決着するまで待つ※1

ホールダブルカーソルを使用した検索のカーソルがクローズしてトランザクションを決着するまで待つ※2

（凡例）

−：該当しません。

注※1

トランザクションが決着する契機を次に示します。

COMMIT

ROLLBACK

内部ROLLBACK

空きページ解放の場合，UNTIL DISCONNECT指定で検索していて，かつCOMMITの操作をしたときは，次のどちらかの操作も必要となります。

カーソルをクローズしてからCOMMIT

次のデータをFETCH

注※2

ホールダブルカーソルを使用した検索の実行待ちが決着する契機を次に示します。

ROLLBACK

内部ROLLBACK

カーソルをクローズしてからCOMMIT

＜規則＞

pdreclaimが待ち状態になってから，指定時間以内にUAP側のトランザクションが決着しない場合，及びホールダブルカーソルを使用した検索がカーソルをクローズしてトランザクションを決着しない場合，pdreclaimはリターンコード4で処理を打ち切ります。また，排他解除待ち状態が解除されない場合，pdreclaimはリターンコード8で処理を打ち切ります。

＜pdreclaimの排他解除待ち＞

pdreclaimの排他解除待ちは，-aオプションの指定有無によって変わります。

-aオプションなしの場合

pdreclaimの排他制御の流れ（-aオプションなし）を次の図に示します。

図11‒7　pdreclaimの排他制御の流れ（-aオプションなし）

注※1

表の空きページ解放の場合は表格納用RDエリア，インデクスの空きページ解放の場合はインデクス格納用RDエリアが対象となります。

注※2

空きページ解放の排他対象資源，排他モードについては，「ユティリティの排他制御モード」を参照してください。

注※3

-wオプションで指定した待ち時間を超える場合は，KFPA11770-Iメッセージを出力してpdreclaimの処理を打ち切ります。

注※4

-wオプションで指定した待ち時間を超える場合は，KFPL27500-E，及びKFPH25002-Eメッセージを出力してRDエリアの処理を打ち切り，次のRDエリアの処理をします。処理を打ち切るときには，KFPH25004-Iメッセージを出力してすべての待ち対象のトランザクション情報を表示します。

注※5

インデクスの空きページ解放のときだけ該当します。

注※6

pdreclaimが排他を掛ける区間です。

注※7

待ち時間が10分を経過した場合，KFPH25004-Iメッセージを出力してすべての待ち対象のトランザクション情報を表示します。トランザクションの決着待ち要因ごとにトランザクション情報を出力するため，KFPH25004-Iメッセージが複数回出力されることがあります。

-aオプションありの場合

pdreclaimの排他制御の流れ（-aオプションあり）を次の図に示します。

図11‒8　pdreclaimの排他制御の流れ（-aオプションあり）

注※1

表の空きページ解放の場合は表格納用RDエリア，インデクスの空きページ解放の場合はインデクス格納用RDエリアが対象となります。

注※2

空きページ解放の排他対象資源，排他モードについては，「ユティリティの排他制御モード」を参照してください。

注※3

-wオプションで指定した待ち時間を超える場合は，KFPA11770-Iメッセージを出力してpdreclaimの処理を打ち切ります。

注※4

-wオプションで指定した待ち時間を超える場合は，KFPL27500-E，及びKFPH25002-Eメッセージを出力してRDエリアの処理を打ち切り，次のRDエリアの処理をします。処理を打ち切るときには，KFPH25004-Iメッセージを出力してすべての待ち対象のトランザクション情報を表示します。

注※5

インデクスの空きページ解放のときだけ該当します。

注※6

pdreclaimが排他を掛ける区間です。

注※7

待ち時間が10分を経過した場合，KFPH25004-Iメッセージを出力してすべての待ち対象のトランザクション情報を表示します。トランザクションの決着待ち要因ごとにトランザクション情報を出力するため，KFPH25004-Iメッセージが複数回出力されることがあります。

＜KFPH25004-Iメッセージの対処方法＞

-wオプションに1以上を指定した場合

タイムアウトが発生したときに待ち対象となっているトランザクションが出力されます。メッセージに出力されたトランザクションがすべて完了した後でpdreclaimを再実行してください。トランザクションが完了しているかどうかは，次の図を参照して確認してください。

-wオプションに0を指定又は省略した場合

待ち対象になっているトランザクションが出力されます。次の図を参照して待ち対象になっているトランザクションを特定し，不要なトランザクションが残っている場合は終了させてください。そうでない場合は，トランザクションが終了するまで待ってください。なお，トランザクションが待ち状態になる要因は複数あるため，最初のメッセージに出力されたトランザクションがすべて終了した後で，更に別のトランザクションが出力されることがあります。トランザクションが終了する前にpdreclaimを終了させたい場合は，pdreclaimをキャンセルしてください。

図11‒9　KFPH25004-Iメッセージの対処方法

(8)　-X サーバ間通信の応答監視時間

　　　〜＜符号なし整数＞　((1〜65535))　《300》

コマンドを実行したサーバで通信障害などの障害が発生した場合，コマンドは無応答となり，業務が停止するおそれがあります。pdreclaimでは障害を検知するために，コマンドで実施されるディクショナリ操作についての通信の応答時間を監視できます。

-Xオプションには，ディクショナリ操作での応答監視時間を秒数で設定します。ディクショナリ操作時の実行時間が，-Xオプションに設定した時間を超えた場合は，pdreclaimはディクショナリアクセスで障害が発生したと判断し，リターンコード8で処理を打ち切ります。

＜適用基準＞

通信障害やユニットダウンによってサーバから応答が返らない状態となった場合に，300秒より早く障害を検知したいとき，-Xオプションに300より小さい値を指定してください。

系切り替え機能を使用している場合，系切り替えが完了しているにもかかわらず，コマンドが応答を待ち続けることがあります。その場合は，監視時間を短く設定することで，コマンドを即時終了できます。

同時実行するアプリケーションやユティリティの多重度が高い場合など，ディクショナリからの応答が遅延し，-Xオプションのデフォルトである300秒以内にユティリティの前処理が完了しないときは，監視時間でタイムアウトするおそれがあります。このような環境では，-Xオプションには300より大きい値を指定してください。

(9)　-q 世代番号

　　　〜＜符号なし整数＞((0〜10))

インナレプリカ機能を使用している場合，処理対象となるRDエリアの世代番号を指定します。

世代番号は次のように指定します。

0：オリジナルRDエリアを対象とする場合

1〜10：指定した世代のレプリカRDエリアを対象とする場合

＜適用基準＞

インナレプリカ機能を使用していて，カレントRDエリア以外のRDエリアを処理対象にする場合に指定します。

＜規則＞

このオプションを省略した場合，カレントRDエリアが対象となります。

処理対象がレプリカRDエリアの場合，-rオプションにオリジナルRDエリア名を指定し，-qオプションに対象となる世代番号を指定します。

pdreclaimは，処理対象となるRDエリアの世代が一致しているかどうかをチェックします。pdreclaimの世代チェック対象となるRDエリアを次の表に示します。

表11‒9　pdreclaimの世代チェック対象となるRDエリア

処理種別

対象RDエリア

オプション，又は制御情報ファイルの指定

表格納用

インデクス格納用

表の使用中空きページ解放

表単位

○

−

-k table

RDエリア単位

○

−

-k table -r RDエリア

インデクスの使用中空きページ解放

インデクス単位

○

○

-k index

サーバ単位

○

○

-k index

idxname文（server指定）

RDエリア単位

○

○

-k index

idxname文（rdarea指定）

（凡例）

○：チェック対象となります。

−：チェック対象ではありません。

(10)　｛-Z｜-j｜-a｝

空きページ，及び空きセグメントの解放方法を指定します。省略値は推奨モード又は互換モードによって次のように異なります。

省略値の動作モード

省略値

推奨モード

-a

互換モード

-Z

＜適用基準＞

空きセグメント解放が不要な場合は-Zを指定してください。空きセグメント解放をする場合，オンラインサービス停止中に，-jオプション指定のpdreclaimの実行時間を確保できるときは，-jを指定してください。実行時間を確保できない場合は-aを指定してください。

＜注意事項＞

空きセグメント解放をする場合で，使用中セグメント内のページがすべて未使用ページであっても，解放されないケースがあります。

-jオプション指定の場合，1表に対して，表格納用RDエリアごとに解放しないセグメントが一つあります。

-aオプション指定の場合，1表に対して，表格納用RDエリアごとに解放しないセグメントが二つ（リバランス表の場合は1,024個）あります。

-jオプションを指定して空きセグメントを解放すると，グローバルバッファ上にある解放対象の表又はインデクスの更新バッファがDBに書き込まれ，更新バッファ及び参照バッファはグローバルバッファ上から削除されます。そのため，pdreclaim実行直後は該当する表又はインデクスのバッファヒット率が低くなります。バッファヒット率を上げたい場合，pdpgbfonを使用して，再度グローバルバッファ上へデータを読み込んでください。

-Z：

-Zオプションを指定した場合，空きページだけ解放し，空きセグメントは解放しません。

-j：

-jオプションを指定した場合，処理中の表，インデクスはアクセスできなくなります。したがって，次のような使い方をしてください。

昼のオンライン中には-Zオプションを指定（0904互換モードの場合は-a，-jともに指定なし）のpdreclaimを実行する。

夜の夜間バッチで，-j指定のpdreclaimを実行する。

-jオプションを指定すると，解放した未使用セグメントは，以前確保していた表，インデクス以外でも使用できるようになります。ただし，-k tableの場合は表格納用RDエリア，-k indexの場合はインデクス格納用RDエリアにEXモードの排他が掛かるため，pdreclaimとUAPとの同時実行ができなくなります。

-a：

-aオプションを指定した場合，pdreclaimが表，インデクスを処理中であっても，UAPや他ユティリティからアクセスできます。ただし，空きセグメント解放の処理時間は長くなり，システムログファイルのログ量も増加します。システムログファイルの見積もりについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

また，-aオプションを指定すると，一つの表又はインデクスの格納RDエリアごとに，最大2個の解放しないセグメントが発生します。リバランス表の場合は，格納RDエリアごとに最大1,024個の解放しないセグメントが発生します。

(11)　-x

インデクスキー値無排他を使用している場合又はコミットしていない削除データに排他を掛ける場合，インデクスの空きページ解放時にページコンパクションを実行して，インデクスの残存エントリを解放したい場合に指定します。ページコンパクションを実行することで，オンライン性能を維持したり，排他待ち及びデッドロックを回避したりできます。-xオプションは，-k indexの場合に指定できます。

ページコンパクションを実行すると，残存エントリを解放するときに，解放されるキーの量に比例してデータベース更新ログ（FJ）が出力されます。

＜適用基準＞

-xオプションを指定すると，ページコンパクションのオーバヘッドが発生します。このため，データベース更新ログ（FJ）の出力量を抑えたい場合，又は性能を優先したい場合は，-xオプションを指定しないでください。

(12)　-p

コミット時点で更新バッファをデータベースに反映する場合に指定します。UAPと同時に実行する場合に-pオプションを指定すると，シンクポイント処理の負荷を軽減できるので，ほかのトランザクション性能に与える影響を小さくできます。ただし，pdreclaimの性能は-pオプションを指定しない場合より悪くなります。

また，シンクポイントダンプ取得前に，コミットが取得されるように，-mオプションを指定してコミット間隔を設定してください。

なお，-pオプション指定のpdreclaimを，サーバ当たり10個まで同時実行できます。上限を超えたpdreclaimはエラー終了します。

(13)　-n 排他制御リトライ回数

　　　〜＜符号なし整数＞((0〜3600))《0》

-nオプションには，空きセグメント解放の排他取得要求を解除する上限の回数を指定します。なお，-nオプションは空きセグメント解放の場合だけ有効となります。このため，-nオプションを指定する場合は，-jオプションも併せて指定してください。

空きセグメント解放の排他取得要求の解除について説明します。

-jオプションを指定して空きセグメント解放をすると，RDエリアにEXモードの排他を掛けます。このため，ほかのトランザクションで処理中のRDエリアに対して空きセグメント解放を実行すると，排他解除待ちになるおそれがあります。

空きセグメント解放が排他解除待ち状態のときに，更にほかのトランザクションがRDエリアに対して排他を取得すると，最初にRDエリアに対して排他取得したトランザクションと空きセグメント解放が，排他解除をするまで待ち状態となります。

この場合に，-nオプションを指定していると，-wオプションに指定した時間が経過すると，空きセグメント解放の排他取得要求を解除し，ほかのトランザクションの排他解除待ちを優先できます。空きセグメント解放は，-wオプションに指定した値までの時間，排他が解除されるのを待ちます。このため，-nオプションを指定する場合，-wオプションの指定も必要になります。

なお，空きセグメントが解除されない場合，いったん，空きセグメント解放の排他取得要求を解除し，再度，空きセグメント解放の排他取得要求をします。

排他取得要求と排他待ちキューの関係を，次の図に示します。

図11‒10　排他取得要求と排他待ちキューの関係

また，-nオプションを指定することで，最大「-wオプションの指定値×-nオプションの指定値」の時間だけ排他解除待ちをします。この「-wオプションの指定値×-nオプションの指定値」の時間が，option文のexectimeオペランドのpdreclaim実行監視時間を超える場合，排他解除待ち中にKFPL11111-Eメッセージを出力して，pdreclaimは強制終了します。このため，-nオプションには次の内容を考慮して，適切な値を設定してください。

-nオプションとpdreclaim実行監視時間の関係

A＋B＋C ＜ Ｄ×60

（凡例）

A：トランザクション決着待ち時間（-wオプションの指定値）

B：空きセグメント解放の排他待ち時間（-wオプションの指定値×-nオプションの指定値）

C：空きセグメント解放の実行時間

D：option文のexectimeオペランドのpdreclaim実行監視時間

(14)　-s サーバ名

　　　〜＜識別子＞

このオプションはHiRDB/パラレルサーバの場合に指定できます（HiRDB/シングルサーバの場合に指定しても無視されます）。

pdreclaimの実行制御をするバックエンドサーバの名称を指定します。

＜適用基準＞

省略した場合でも，自動的にどれかのバックエンドサーバが選択されるため，通常時は指定する必要はありません。

pdreclaimを大量に同時実行する場合に，1サーバ内でpdrorg用ユティリティサーバプロセス「0mrorg」が32個以上となる場合に指定してください。0mrorgの個数は，pdls -d prc -aコマンドの結果のプロセスID（0mrorg）が何個開始されているかを調べれば分かります。

(15)　制御情報ファイル名

　　　〜＜パス名＞

pdreclaimの制御文を記述した制御情報ファイルの名称を指定します。

制御情報ファイルには，次に示す制御文を記述できます。各制御文については，「idxname文（インデクスの情報の記述）」，「option文（オプションの情報の記述）」を参照してください。なお，制御情報ファイル中にコメントは記述できません。

idxname文

option文

11.3.3　idxname文（インデクスの情報の記述）

インデクスの使用中空きページ解放（-k index）の場合，対象とするインデクスの情報を指定します。

＜適用基準＞

-k index場合，-tオプションに指定した表に定義されているすべてのインデクスが処理対象になりますが，特定のインデクス，サーバ，又はRDエリアだけを処理対象にするとき，idxname文を指定します。

＜規則＞

nameオペランドは，server及びrdareaオペランドよりも前に指定してください。

識別子に空白及び英小文字を含む場合は，引用符（"）で囲んで指定してください。英小文字が引用符で囲まれていない場合，英大文字として扱われます。

rdareaオペランドを指定したidxname文を指定し，ほかにもidxname文を指定する場合，nameオペランドだけを指定したidxname文，及びserverオペランドを指定したidxname文は指定できません。

同じインデクス識別子を指定したidxname文は複数個指定できません。ただし，rdareaオペランドを指定する場合は複数個指定できます。

(1)　形式

　idxname name=｛インデクス識別子｜*｝

　　　　　〔｛server=サーバ名〔，サーバ名〕…

　　　　　　　｜rdarea=RDエリア名〔，RDエリア名〕…｝〕

(2)　説明

(a)　name=｛インデクス識別子｜*｝

インデクス識別子　〜＜識別子＞

インデクスの使用中空きページ解放の対象となるインデクス識別子を指定します。

認可識別子は，-tオプションに指定した表の認可識別子を仮定するため，ここでは指定する必要はありません。

*

表に定義されているすべてのインデクスを対象にする場合，*を指定します。

*指定のidxname文（serverオペランドなし）と，idxname文を省略した場合とでは，両方とも表のすべてのインデクスが処理対象となります。ただし，*を指定してserverオペランドも指定したidxname文の場合は，表のすべてのインデクスのうち，serverオペランドに指定したバックエンドサーバにあるインデクスだけを処理対象にできます。

*を指定した場合，idxname文は1個だけ指定できます。

(b)　server=サーバ名〔，サーバ名〕…

　　　〜＜識別子＞

このオペランドは，HiRDB/パラレルサーバの場合に指定できます。nameオペランドに指定したインデクスに対して，特定サーバのインデクスを対象とする場合に，そのサーバ名（バックエンドサーバ名）を指定します。省略した場合は，インデクスが格納されているすべてのサーバを対象とします。

(c)　rdarea=RDエリア名〔，RDエリア名〕…

　　　〜＜識別子＞

nameオペランドに指定したインデクスに対して，特定のインデクス格納用RDエリアを対象とする場合に，そのRDエリア名を指定します。

省略した場合は，インデクスが格納されているすべてのRDエリアを対象とします。また，nameオペランドに*を指定している場合，このオペランドは指定できません。

11.3.4　option文（オプションの情報の記述）

pdreclaimの実行時間監視の情報を指定します。

＜適用基準＞

pdreclaimの実行時間を監視する場合に指定します。

(1)　形式

　option 〔exectime=pdreclaimの監視時間〕
       〔globalbuffer_lru=｛yes｜no｝〕

(2)　説明

(a)　exectime=pdreclaimの監視時間

　　　〜＜符号なし整数＞((0〜35791394))

pdreclaimの実行時間を監視する場合に，その監視時間を分単位で指定します。

＜指定値の目安＞

このオペランドは，無応答障害の検知を目的とするもので，長時間トランザクションの実行時間を監視するものではありません。したがって，指定値は，該当する表の処理時間に余裕を持たせた値にする必要があります。例えば，7〜8分程度で終了するpdreclaimの実行時間を監視する場合は，exectime=10ではなく，exectime=20と指定してください。

＜規則＞

このオペランドに0を指定した場合，実行時間の監視はしません。

このオペランドを省略した場合は，次の優先順位でシステム定義の指定値に従います。

1.　pd_utl_exec_time

2.　pd_cmd_exec_time

指定時間以内に処理が終了しない場合，pdreclaimは強制終了し，無応答原因の調査用に障害情報を取得します。なお，実行時間の監視対象は，実際に使用中空きページ解放をするpdrorg用ユティリティサーバプロセス（0mrorg）とシングルサーバ（又はバックエンドサーバ）であり，コマンドのプロセス（pdreclaim及びpdrorg）に障害が発生した場合は強制終了できません。取得する障害情報については，マニュアル「HiRDB システム定義」のpd_utl_exec_timeオペランドを参照してください。

(b)　globalbuffer_lru=｛yes｜no｝

pdreclaimが読み込んだページをLRU管理するかどうかを指定します。省略値は推奨モード又は互換モードによって次のように異なります。

省略値の動作モード

省略値

推奨モード

no

互換モード

yes

このオペランドがnoの場合，pdreclaimの使用するグローバルバッファをLRU管理せずに，読み込んだページを常に最古のページとして扱います。この結果，グローバルバッファ不足時にはpdreclaimが読み込んだページが最初に追い出されるページとなり，アプリケーション側の性能劣化が抑止されます。yesの場合，pdreclaimの使用するグローバルバッファをLRU管理します。この結果，グローバルバッファ不足時には先にアプリケーションで読み込んでいたページがグローバルバッファから追い出され，アプリケーションの性能が劣化します。pdreclaimと同時実行中又はpdreclaim 実行後のアプリケーションの性能劣化を許容して，pdreclaimの実行速度を優先する場合はyesを指定してください。

＜指定値の目安＞

アプリケーションと同時に実行する場合は，アプリケーションの性能が安定するため，noにしてください。

アプリケーションと同時に実行しない場合，次に示す条件では，noにしてください。

・-jを指定したセグメント解放の場合

・使用中空きページ解放の処理対象が表であり，システム共通定義pd_dbreuse_remaining_entriesオペランドがALLの場合

・全データをバッファ上に読み込んでいる場合

次に示す条件で，pdreclaimの実行時間を短くしたい場合は，yesを指定してください※。

・使用中空きページ解放の処理対象が表であり，システム共通定義pd_dbreuse_remaining_entriesオペランドにALL以外を指定している場合

・使用中空きページ解放の処理対象がインデクスの場合

注※

pdreclaim終了後は，アプリケーションで以前使用したグローバルバッファ上のページを置き換えてしまうため，アプリケーション側のバッファヒット率が低下し，アプリケーション性能が遅延するおそれがあります。

11.4　pdreclaimの処理結果

pdreclaimのリターンコードが0又は4の場合，標準出力にpdreclaimの処理結果が表示されます。

11.4.1　pdreclaim（-j及び-aなし）の処理結果（表の使用中空きページ解放）

pdreclaim VV-RR         *** DB RECLAIM ***         YYYY-MM-DD hh:mm:ss [1]

TABLE NAME : USERA.TBL01 [2]
[3]     [4]                                [5]            [6]            [7]
No.  RDAREA NAME                        PAGE COUNT  SEGMENT COUNT   ACCESS COUNT
  1  USER01                                 11,832            250         51,051
  2  USER02                                 10,452            242         51,051

     18244 11:02:08 un01          KFPL00739-I Pdreclaim terminated, return code=0

［説明］

処理結果のヘッダ。

VV-RR：バージョン，リビジョン番号

YYYY-MM-DD hh:mm:ss：pdreclaim開始日時

処理対象の表名。

スキーマ単位に処理した場合は，この項目から繰り返して表示されます。

通番。

表格納用RDエリア名。

解放したページ数。

解放できるセグメント数。

解放できるセグメント数は，pdreclaimの使用中空きページ解放で未使用セグメント化ができるようになったセグメント数だけでなく，LOCK文を実行した表に対するDELETE文によって未使用セグメント化ができるようになるセグメント数も含みます（ログレスモードでDELETE文を実行すると，自動的にLOCK文を実行した状態となります）。

グローバルバッファを使用してアクセスしたページ数。

解放したページ数だけでなく，解放処理の延長で実際にアクセスしたページ数も含まれます。なお，解放対象のページ以外の管理ページをアクセスすることもあります。このため，表示される値は該当資源を格納したページ数より多くなります。

11.4.2　pdreclaim（-j又は-aあり）の処理結果（表の使用中空きセグメント解放）

pdreclaim VV-RR         *** DB RECLAIM ***         YYYY-MM-DD hh:mm:ss [1]

TABLE NAME : USERA.TBL01 [2]
[3]      [4]                               [5]            [6]            [7]
No.  RDAREA NAME                        PAGE COUNT  SEGMENT COUNT   ACCESS COUNT
  1  USER01                                      -            250         17,017
  2  USER02                                      -            242         17,017

     18250 11:03:20 un01          KFPL00739-I Pdreclaim terminated, return code=0

［説明］

処理結果のヘッダ。

VV-RR：バージョン，リビジョン番号

YYYY-MM-DD hh:mm:ss：pdreclaim開始日時

処理対象の表名。

スキーマ単位に処理した場合は，この項目から繰り返して表示されます。

通番。

表格納用RDエリア名。

-jオプション指定時は−（固定）。-aオプション指定時は解放したページ数。

解放したセグメント数。

グローバルバッファを使用してアクセスしたページ数。

解放したページ数だけでなく，解放処理の延長で実際にアクセスしたページ数も含まれます。なお，解放対象のページ以外の管理ページをアクセスすることもあります。このため，表示される値は該当資源を格納したページ数より多くなります。

11.4.3　pdreclaim（-j及び-aなし）の処理結果（インデクスの使用中空きページ解放）

pdreclaim VV-RR         *** DB RECLAIM ***         YYYY-MM-DD hh:mm:ss [1]

INDEX NAME : USERA.(PRIMARY0000131193)  [2]
[3]      [4]                        [5]            [6]            [7]            [8]
No.  RDAREA NAME                 PAGE COUNT  SEGMENT COUNT   ACCESS COUNT     COMPACTION
  1  USER01                              32              0            227             58
  3  USER02                              32              0            227             58

INDEX NAME : USERA.IDX01
No.  RDAREA NAME                 PAGE COUNT  SEGMENT COUNT   ACCESS COUNT     COMPACTION
  1  USER01                             891             16          6,259          1,595
  3  USER02                             891             16          6,259          1,595

INDEX NAME : USERA.IDX02
No.  RDAREA NAME                 PAGE COUNT  SEGMENT COUNT   ACCESS COUNT     COMPACTION
  1  USER01                              97             14            682            174

     18246 11:04:10 un01          KFPL00739-I Pdreclaim terminated, return code=0

［説明］

処理結果のヘッダ。

VV-RR：バージョン，リビジョン番号

YYYY-MM-DD hh:mm:ss：pdreclaim開始日時

処理対象のインデクス名。

複数のインデクスを処理した場合は，この項目から繰り返して表示されます。

通番。

インデクス格納用RDエリア名。

解放したページ数。

解放できるセグメント数。

解放できるセグメント数は，pdreclaimの使用中空きページ解放で未使用セグメント化ができるようになるセグメント数だけでなく，LOCK文を実行した表に対するDELETE文によって未使用セグメント化ができるようになるセグメント数も含みます（ログレスモードでDELETE文を実行すると，自動的にLOCK文を実行した状態となります）。

グローバルバッファを使用してアクセスしたページ数。

解放したページ数だけでなく，解放処理の延長で実際にアクセスしたページ数も含まれます。なお，解放対象のページ以外の管理ページをアクセスしたり，上位ページに戻って解放処理をしたりすることもあります。このため，表示される値は該当資源を格納したページ数より多くなります。

該当資源を格納するページ内でページコンパクションをしたページ数。

残存エントリがあるページだけがページコンパクション対象となります。

11.4.4　pdreclaim（-j又は-aあり）の処理結果（インデクスの使用中空きセグメント解放）

pdreclaim VV-RR         *** DB RECLAIM ***         YYYY-MM-DD hh:mm:ss [1]

INDEX NAME : USERA.(PRIMARY0000131193)  [2]
[3]       [4]                       [5]           [6]            [7]             [8]
No.  RDAREA NAME                 PAGE COUNT  SEGMENT COUNT   ACCESS COUNT     COMPACTION
  1  USER01                               -              0             44              -
  3  USER02                               -              0             44              -

INDEX NAME : USERA.IDX01
No.  RDAREA NAME                 PAGE COUNT  SEGMENT COUNT   ACCESS COUNT     COMPACTION
  1  USER01                               -             16          1,204              -
  3  USER02                               -             16          1,204              -

INDEX NAME : USERA.IDX02
No.  RDAREA NAME                 PAGE COUNT  SEGMENT COUNT   ACCESS COUNT     COMPACTION
  1  USER01                               -             14            131              -

     18252 11:05:25 un01          KFPL00739-I Pdreclaim terminated, return code=0

［説明］

処理結果のヘッダ。

VV-RR：バージョン，リビジョン番号

YYYY-MM-DD hh:mm:ss：pdreclaim開始日時

処理対象のインデクス名。

複数のインデクスを処理した場合は，この項目から繰り返して表示されます。

通番。

インデクス格納用RDエリア名。

-jオプション指定時は−（固定）。-aオプション指定時は解放したページ数。

解放したセグメント数。

グローバルバッファを使用してアクセスしたページ数。

解放したページ数だけでなく，解放処理の延長で実際にアクセスしたページ数も含まれます。なお，解放対象のページ以外の管理ページをアクセスしたり，上位ページに戻って解放処理をしたりすることもあります。このため，表示される値は該当資源を格納したページ数より多くなります。

-jオプション指定時は−（固定）。

11.4.5　処理結果についての注意事項

処理結果の出力順序は，完了した資源の順番となります。

なお，-j又は-aオプション指定ありの場合，pdreclaimが処理結果に表示する「解放したページ数」と，pddbstでの解析結果の「解放できるページ数（Collect Prearranged Page）」は一致しないことがあります。また，解放できるセグメント数（-j及び-aオプション指定なしのpdreclaimの処理結果）と，解放したセグメント数（-j又は-aオプション指定ありのpdreclaimの処理結果）も一致しないことがあります。一致しない理由を次に示します。

(1)　解放できると予測しながらpdreclaimで解放できない場合

pdreclaimは，ほかのUAPやユティリティでの更新処理を同時実行できるようにするため，同時更新の可能性がある使用中空きページ及び使用中空きセグメントは解放しません。また，インデクスの段数を減らす解放はしません。

同期点指定のpdload，pdrorgが異常終了した場合，同期点情報を保持するため，該当する表が確保している先頭のセグメントは，データがない状態でも解放はしません。

pdreclaimと更新処理を同時実行した場合，解放できると判断した使用中空きページ，及び使用中空きセグメントが，更新処理に使用されることがあります。

インデクスリーフページのインデクスエントリ数が0の場合（ページ使用率を0％と扱う），pddbstは解放できると予測します。ただし，インデクスの中間ページからポイントする，下位のリーフページの中で最も大きいキー値を持つリーフページの場合は，インデクスエントリ数が0となっていても，同じ中間ページからポイントするほかの下位のリーフページがすべて解放された状態になるまで解放しません。

(2)　解放できないと予測しながらpdreclaimで解放できる場合

pddbst実行時，B-treeインデクスの構造を形成するインデクスの中間ページは，解放できるページ数としてカウントしません（下位にリーフページが存在するため）。しかし，pdreclaimは下位のリーフページをすべて解放した場合，中間ページも同時に解放します。

キー値が201件以上重複したインデクスの場合，キー値を管理する特殊なページが作成されます。pddbst実行時，この管理ページも解放できるページ数としてカウントしません（下位に重複キーの情報を保持するページが存在するため）。しかし，pdreclaimは下位の重複キーの情報を保持するページをすべて解放した場合，管理ページも同時に解放します。

11.5　注意事項

pdreclaimは内部的にpdrorgを実行するため，同時実行可能数はpdrorgの上限と同じになります。つまり，pdreclaimの同時実行可能数は，「pdrorgの同時実行可能数−実行中のpdrorg数」となります。

ビュー表，及び一時表は処理対象外です。-tオプションにビュー表又は一時表を指定して実行すると，pdreclaimはKFPL15231-Eメッセージを出力して，エラー終了します。また，-tオプションにallを指定した場合，pdreclaimは該当する表の処理をスキップします。

LOB用RDエリアは処理対象外です。したがって，抽象データ型，及びプラグインインデクスを格納しているLOB用RDエリアも処理対象外となります。

インデクスの使用中空きページ解放をする場合，解放中のページをUAPがアクセスしているときは，該当するUAPのトランザクションが決着するまでpdreclaimが待ち状態になります。このpdreclaimの待ち時間は，-wオプションで指定できます。

実行中のpdreclaimを強制終了させる場合は，pdcancelコマンドで強制終了させてください。OSのkillコマンドなどで強制終了しても，pdreclaimは終了しません。

-jオプションを指定したpdreclaimを実行する場合，UAPが不当に排他待ちとならないように，pdholdコマンドでRDエリアを閉塞しておくことをお勧めします。

pdreclaimに-jオプションを指定すると，表及びインデクスを格納しているRDエリアに対してEXモードの排他を掛けるため，表及びインデクスを格納しているRDエリア全体がアクセスできなくなります。この排他制御は，-wオプション，及び-nオプションの指定によって，次の表に示すように動作します。

表11‒10　空きセグメント解放時の排他制御の動作

オプションの指定値

1回の排他待ち時間

排他エラー発生時

-w

-n

排他待ちタイムアウトエラー

タイムアウト以外のエラー

排他のリトライ

リトライ回数

対処

対処

指定なし

−

無限

−

−

−

−

指定あり

指定なし

-wオプションに指定した時間

なし

0

エラーメッセージを出力して処理を打ち切ります。

エラーメッセージを出力して処理を打ち切ります。

指定あり

あり

-nオプションに指定した回数

-nオプションに指定した回数まで排他リトライをします。

-nオプションに指定した回数で，タイムアウトした場合は，メッセージを出力して処理を打ち切ります。

（凡例）

−：該当しません。

空きセグメント解放で排他する資源を次の表に示します。

表11‒11　空きセグメント解放で排他する資源

資源名称

資源番号

モード

排他の目的

排他リトライの有無

pdreclaim

5006

EX

同一資源へのpdreclaim同時実行抑止

pdreclaim実行中の場合は，処理を打ち切るため，排他リトライはありません。

RDエリア名

0001

EX

空きセグメント解放中のRDエリアへのアクセス抑止

-nオプションを指定しているときに，排他待ちタイムアウトエラーが発生すると，排他リトライをします。

表名

0002

SR

pdreclaim実行中の場合は，処理を打ち切るため，排他リトライはありません。

インデクス名

0003

SU

表名（NOWAIT検索時）

000B

SR

RRAMB

0102

SR

RDエリアへのEXモードの排他が成功した後に確保する資源のため，タイムアウトエラーは発生しません。このため，排他リトライはありません。

pdreclaimのリターンコードを次の表に示します。

表11‒12　pdreclaimのリターンコード

リターンコード

意味

対処方法

0

使用中空きページ，使用中空きセグメントの解放が完了しました。

なし。

4

UAPのトランザクション決着待ち時間，又はホールダブルカーソルを使用した検索の実行待ち時間のタイムオーバーが発生したため，処理を中断しました。

タイムオーバーで使用中空きページ解放，又は使用中空きセグメント解放を中断した状態のため，表，及びインデクスの状態は保証されます。したがって，このままでも表，及びインデクスはUAPからアクセスできます。

未解放の使用中空きページを解放するには，pdreclaimを再度実行してください。

インデクスの空きページ解放を行った場合，及び-aオプション指定のpdreclaimを実行した場合は，pddbstで解放途中のセグメント及びページがないことを確認してください。インデクスの空きページ解放の場合，解放途中のページがあるときは，pdreclaimを再実行するか，又はpdrorgでインデクスの再編成を実行してください。-aオプション指定のpdreclaimの場合，解放途中セグメントがあるときは，pdreclaimを再実行するか，又はpdrorgで表の再編成を実行してください。

8

異常終了しました。

エラーによって使用中空きページ解放を中断した状態のため，表，及びインデクスの状態は保証されます。したがって，異常終了後でも表，及びインデクスはUAPからアクセスできます。

pdreclaimを再度実行する場合は，出力されたエラーメッセージを参照してエラー原因を取り除いてください。

-aオプションを指定している場合は，解放途中セグメントが残ることがあるため，pdreclaimを再度実行してください。

インデクスの空きページ解放を行った場合，及び-aオプション指定のpdreclaimを実行した場合は，pddbstで解放途中のセグメント及びページがないことを確認してください。インデクスの空きページ解放の場合，解放途中のページがあるときは，pdreclaimを再実行するか，又はpdrorgでインデクスの再編成を実行してください。-aオプション指定のpdreclaimの場合，解放途中セグメントがあるときは，pdreclaimを再実行するか，又はpdrorgで表の再編成を実行してください。

処理対象の表に，ユーザが定義した抽象データ型列がある場合，pdreclaimは実行できません。

共用表，又は共用インデクスに対してpdreclaimを実行する場合，共用表，又は共用インデクスを格納しているRDエリアに対してEXモードで排他を掛けます。そのため，該当するRDエリアに定義したほかの表やインデクスも参照，及び更新ができません。共用表に対してpdreclaimを実行する場合の排他制御モードについては，「ユティリティの排他制御モード」を参照してください。

HiRDB/パラレルサーバの場合，通信回線の混雑によってバックエンドサーバからpdreclaimに対する送信電文が1秒以上遅れたときは，該当するバックエンドサーバの処理結果が標準出力に表示されないことがあります。この場合，メッセージログファイル又はsyslogfileに出力されるKFPL00714-Iメッセージで処理結果を確認してください。

pdreclaimを実行している表やインデクスに対して，定義系SQLは実行しないでください。実行すると，pdreclaimが異常終了します。スキーマ単位にpdreclaimを実行している場合は，該当スキーマが持つすべての表とインデクスが対象となります。

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdreclaimの制御情報ファイルには，BOMを持つファイルを使用できますが，BOMは読み飛ばされます。

12　グローバルバッファ常駐化ユティリティ（pdpgbfon）

この章では，HiRDB開始直後，オンライン業務開始前などに，表のデータページ，インデクスページをグローバルバッファに読み込むグローバルバッファ常駐化ユティリティ（pdpgbfon）について説明します。

12.1　概要

12.1.1　pdpgbfonの概要

DBにアクセスする場合，物理的な入出力動作なしでグローバルバッファ上から目的の情報が見付かることをバッファヒットといいます。このバッファヒットの確率（バッファヒット率）が高いと，DBアクセスの性能は安定します。しかし，HiRDB開始直後の場合など，表やインデクスの情報はグローバルバッファ上にはないため，バッファヒット率が低い状態となり，DBアクセス性能は安定しません。

グローバルバッファ常駐化ユティリティ（pdpgbfon）を実行すると，あらかじめ表やインデクスの情報をグローバルバッファに読み込んでおくことができます。したがって，HiRDB開始直後，オンライン業務開始前などにpdpgbfonを実行しておけば，安定したDBアクセスの性能が期待できます。

例えば，DBのすべての表，インデクスをグローバルバッファに読み込める環境の場合，物理的な入出力動作が発生しない高速なDBとして運用できます。

pdpgbfonの効果を次の図に示します。

図12‒1　pdpgbfonの効果

［説明］

pdpgbfonを実行しない場合：

表をアクセスします。

グローバルバッファにページ情報がないため，表からページ情報を読み込みます（物理的な入出力が発生します）。

結果が返ります。以降，このページ情報をアクセスする場合は，グローバルバッファに読み込まれているため，表からの読み込みは発生しません。ただし，ほかのページ情報をアクセスする場合は，2.の読み込み処理が発生します。

pdpgbfonを実行する場合：

あらかじめpdpgbfonを実行して，表のページ情報をグローバルバッファに読み込みます。

表をアクセスします。

既にグローバルバッファにページ情報があるため，表からページ情報を読み込まないで結果が返ります。以降，この表をアクセスする場合は，表からの読み込みはありません（物理的な入出力は発生しません）。

12.1.2　pdpgbfonの機能

(1)　機能概要

pdpgbfonは，該当する資源（表又はインデクス）のページをグローバルバッファに読み込むことによって，オンライン業務開始直後でもバッファヒット率を上げる目的で使用します。この場合，既にグローバルバッファに対象となるページが読み込まれていたときは，ページの読み込み処理は発生しません。

pdpgbfonを実行する場合，グローバルバッファの面数は対象資源が格納されているページ数より多く必要です（pdpgbfon実行前に，対象資源の全データが読み込めるだけのグローバルバッファを，表やインデクスに割り当てていることが前提です）。

pdpgbfonの処理方式は格納ページ順の読み込みとなるため，プリフェッチ機能が有効となります。したがって，グローバルバッファを定義する場合，プリフェッチ数を指定することで実行時間の短縮が図れます。

グローバルバッファの面数が十分でない場合，LRU管理方式によってグローバルバッファから古いページ情報が追い出されます（システム定義のpd_dbbuff_lru_optionオペランドの値に従って，アクセスしたグローバルバッファ中の最も古いページが追い出されます）。グローバルバッファの面数が十分でない場合，pdpgbfonを実行しても意味がありません。なお，グローバルバッファ面数はpdbuflsコマンドで，対象資源の格納ページ数はデータベース状態解析ユティリティ（pddbst）で確認できます。

pdpgbfonを実行した結果，該当する資源の全ページがグローバルバッファ上に読み込まれたかどうかは，pdpgbfonのリターンコード，又はコマンドを実行した標準出力に処理結果（参照バッファフラッシュ回数）が出力されます。なお，pdpgbfonが出力する処理結果は，pdpgbfonで処理した資源の情報だけです。グローバルバッファ全体の処理結果や，詳細なグローバルバッファの状態については，pdbuflsコマンドで確認してください。

(2)　運用方法

pdpgbfonの運用方法の例を次の図に示します。

図12‒2　pdpgbfonの運用方法の例

［説明］

pdbuflsコマンドを実行し，グローバルバッファの統計情報を表示します。これによって，統計情報を初期化しておきます（表示結果は使用しません）。

グローバルバッファに読み込む資源（表のデータページ，又はインデクスページ）の数だけ，pdpgbfonを実行します。この場合，実行したすべてのpdpgbfonのリターンコードが0であれば，3.は実行する必要はありません。

再度pdbuflsコマンドを実行し，グローバルバッファの統計情報を表示します。表示された参照バッファフラッシュ回数（RFFLS），又は更新バッファフラッシュ回数※１（UPFLS）が0以外の場合，そのグローバルバッファには追い出されたページがあることを意味するため，該当するグローバルバッファを大きくするか，又は表の再編成※２を検討してください。なお，参照GET回数（REFGET）には，管理ページの再読み込みの回数も含まれるため，実際のデータ格納ページ数よりも大きい値が表示されます。

注※1

pdpgbfonがデータを更新することはありません。グローバルバッファは複数のプロセスで使用されるため，pdpgbfon以外にグローバルバッファをアクセスしたプロセスがある場合，この項目を確認する必要があります。

注※2

DBに格納されているデータ件数の増加が原因の場合，グローバルバッファを大きくしてください。DBの配置乱れによる格納ページ数の増加が原因の場合，空きページ解放ユティリティ（pdreclaim），又はデータベース再編成ユティリティ（pdrorg）を実行して，格納ページ数を適正化してください。

12.1.3　実行環境

pdpgbfonは，HiRDBが稼働中のときだけ実行できます。

pdpgbfonは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdpgbfonを実行する場合，LANG環境変数を設定してください。また，pdpgbfonの実行環境で，OSがサポートしていない文字コードを使用する場合，PDLANG環境変数を設定する必要があります。LANG，及びPDLANGについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

処理対象RDエリアは，オープン状態，又は参照可能閉塞状態であればpdpgbfonは実行できます。pdpgbfonの実行可否については，「コマンド実行時のRDエリアの状態」を参照してください。

pdpgbfonを実行する場合，読み込み対象となる表のデータページ，インデクスページの全データを読み込めるだけのグローバルバッファ面数を割り当てておいてください。グローバルバッファが不足すると，最初に読み込んだページがグローバルバッファから追い出されます。

12.1.4　実行者

スキーマ単位に読み込む場合

DBA権限所有者，又はスキーマの所有者が実行できます。

そのほかの場合

DBA権限所有者，又は表のSELECT権限所有者が実行できます。

監査証跡表についても，DBA権限があれば処理できます。

12.1.5　pdpgbfonと他機能との同時実行

pdpgbfonと他機能との同時実行性について説明します。

(1)　pdpgbfonとSQLの同時実行可否

pdpgbfonとSQLの同時実行可否を次の表に示します。

表12‒1　pdpgbfonとSQLの同時実行可否

SQL文

同一RDエリアの操作対象

異なる表（インデクス）

同一表（インデクス）

検索

NOWAIT指定

○

○

WITH SHARE指定

○

○

WITH EXCLUSIVE指定

○

○

FOR UPDATE句指定

○

○

上記以外

○

○

更新

NEXT VALUE句指定

○

○

上記以外

○

○

追加

NEXT VALUE句指定

○

○

上記以外

○

○

削除

○

○

LOCK文

SHARE指定

○

○

EXCLUSIVE指定（非共用表）

○

○

EXCLUSIVE指定（共用表）

×

×

表削除

○

×※

インデクス

定義

○

○

削除

○

×※

全行削除

○

×

表定義変更

○

×※

順序数生成子定義

○（順序数生成子定義は表に対して行うSQLではないため，同一表かどうかの区別は不要）

順序数生成子削除

○（順序数生成子定義は表に対して行うSQLではないため，同一表かどうかの区別は不要）

（凡例）

○：同時実行できます。

×：同時実行できません（排他待ちとなります）。

注※

このユティリティを実行中に，処理中の表又はインデクスに対する，表削除，インデクス削除及び表定義変更は実行できません。しかし，タイミングによっては実行できる場合があり，次のように動作します。

表定義変更で追加した対象はpdpgbfonの実行対象になりません。しかし，pdpgbfonで対象とする表，インデクス又はRDエリアを削除する表定義変更をしたとき，KFPA11815-Eが出力されます。

(2)　pdpgbfonとローカルバッファを指定したUAPの同時実行可否

pdpgbfonとローカルバッファを指定したUAPの同時実行可否を次の表に示します。

表12‒2　pdpgbfonとローカルバッファを指定したUAPの同時実行可否

ローカルバッファの指定方法

同一RDエリアの操作対象

pd_uap_waitオペランド

pdlbufferオペランド

異なる表

異なるインデクス

同一表

同一インデクス

Y指定

-r指定

×※1

×※1

×※1

×※1

-i指定

○

○

○

×※1

N指定

-r指定

×※2

×※2

×※2

×※2

-i指定

○

○

○

×※2

（凡例）

○：同時実行できます。

×：同時実行できません。

注※1

排他待ちとなります。

注※2

UAPがエラー終了となります。

12.2　使用例

pdpgbfonの使用例を示します。

12.2.1　HiRDB/シングルサーバの場合

例１：

表（TBL1）のデータページをグローバルバッファに読み込みます。表，及びインデクスは次のように定義されているものとします。
・表定義
  CREATE FIX TABLE TBL1(C1 INTEGER,C2 CHAR(10),C3 DEC(15))
      IN ((USER01) C1>0,(USER02))
・インデクス定義
  CREATE INDEX IDX01 ON TBL1(C1) IN ((USER01),(USER02))
  CREATE INDEX IDX02 ON TBL1(C3) IN USER03

［概要］

●pdpgbfonのコマンド

 pdpgbfon -k table -t TBL1

［説明］

-k table：表のデータページを読み込む場合に指定します。

-t TBL1：読み込み対象となる表を指定します。

例２：

表（TBL1）のインデクスページをグローバルバッファに読み込みます。表，及びインデクスは次のように定義されているものとします。
・表定義
  CREATE FIX TABLE TBL1(C1 INTEGER,C2 CHAR(10),C3 DEC(15))
      IN ((USER01) C1>0,(USER02))
・インデクス定義
  CREATE INDEX IDX01 ON TBL1(C1) IN ((USER01),(USER02))
  CREATE INDEX IDX02 ON TBL1(C3) IN USER03

［概要］

●pdpgbfonのコマンド

 pdpgbfon -k index -t TBL1

［説明］

-k index：表のインデクスページを読み込む場合に指定します。

-t TBL1：読み込み対象となる表を指定します。

12.2.2　HiRDB/パラレルサーバの場合

例３：

表（TBL1）のデータページをグローバルバッファに読み込みます。表，及びインデクスは次のように定義されているものとします。
・表定義
  CREATE FIX TABLE TBL1(C1 INTEGER,C2 CHAR(10),C3 DEC(15))
      IN ((USER11) C1>0,(USER21))
・インデクス定義
  CREATE INDEX IDX01 ON TBL1(C1) IN ((USER12),(USER22))
  CREATE INDEX IDX02 ON TBL1(C3) IN ((USER13),(USER23))

［概要］

●pdpgbfonのコマンド

 pdpgbfon -k table -t TBL1

［説明］

-k table：表のデータページを読み込む場合に指定します。

-t TBL1：読み込み対象となる表を指定します。

例４：

表（TBL1）のインデクスページを，インデクス単位でグローバルバッファに読み込みます。表，及びインデクスは次のように定義されているものとします。
・表定義
  CREATE FIX TABLE TBL1(C1 INTEGER,C2 CHAR(10),C3 DEC(15))
      IN ((USER11) C1>0,(USER21))
・インデクス定義
  CREATE INDEX IDX01 ON TBL1(C1) IN ((USER12),(USER22))
  CREATE INDEX IDX02 ON TBL1(C3) IN ((USER13),(USER23))

［概要］

●pdpgbfonのコマンド

 pdpgbfon -k index -t TBL1 control_file

［説明］

-k index：表のインデクスページを読み込む場合に指定します。

-t TBL1：読み込み対象となる表を指定します。

control_file：制御情報ファイル

●制御情報ファイル（control_file）の内容

 idxname name=IDX01    [1]

［説明］

グローバルバッファへの読み込み対象となるインデクス名を指定します。

例５：

表（TBL1）のインデクスページを，RDエリア単位でグローバルバッファに読み込みます。表，及びインデクスは次のように定義されているものとします。
・表定義
  CREATE FIX TABLE TBL1(C1 INTEGER,C2 CHAR(10),C3 DEC(15))
      IN ((USER11) C1>0,(USER21))
・インデクス定義
  CREATE INDEX IDX01 ON TBL1(C1) IN ((USER12),(USER22))
  CREATE INDEX IDX02 ON TBL1(C3) IN ((USER13),(USER23))

［概要］

●pdpgbfonのコマンド

 pdpgbfon -k index -t TBL1 control_file

［説明］

-k index：表のインデクスページを読み込む場合に指定します。

-t TBL1：読み込み対象となる表を指定します。

control_file：制御情報ファイル

●制御情報ファイル（control_file）の内容

 idxname name=IDX01 rdarea=USER12    [1]

［説明］

グローバルバッファへの読み込み対象となるインデクス名，及びRDエリア名を指定します。

12.3　コマンドの形式

12.3.1　形式

　pdpgbfon -k 対象資源
　　　　　　-t ｛〔認可識別子.〕表識別子｜〔認可識別子.〕all｝
　　　　　　〔-r RDエリア名〕
　　　　　　〔-u 認可識別子〕
　　　　　　〔-X サーバ間通信の応答監視時間〕
　　　　　　〔-q 世代番号〕
　　　　　　〔-s サーバ名〕
　　　　　　〔-b〕
　　　　　　〔制御情報ファイル名〕

注

制御情報ファイル名を指定する場合，必ずオプションの最後に指定してください。

各オプションの関係

各オプションの関係を次の表に示します。

表12‒3　各オプションの関係（pdpgbfon）

オプション

-kオプション

-tオプション

table

index

表識別子

all

-k 対象資源

−

−

◎

◎

-t ｛〔認可識別子.〕表識別子｜〔認可識別子.〕all｝

◎

◎

−

−

-r RDエリア名

○

×

○

×

-u 認可識別子

○

○

○

○

-X サーバ間通信の応答監視時間

○

○

○

○

-q 世代番号

○

○

○

○

-s サーバ名

○

○

○

○

-b

○

×

○

○

制御情報ファイル名

○

○

○

○

（凡例）

◎：必ず指定してください。

○：指定できます。

×：指定できません。

−：該当しません。

12.3.2　オプション

(1)　-k 対象資源

グローバルバッファへ読み込む資源（データページ又はインデクスページ）を指定します。

table：

読み込み対象がデータページの場合に指定します。

index：

読み込み対象がインデクスページの場合に指定します。

(2)　-t ｛〔認可識別子.〕表識別子｜〔認可識別子.〕all｝

　　　〜＜識別子＞

対象となる資源の表名を指定します。

認可識別子を省略した場合，HiRDBに接続したときのユーザの名称が仮定されます。

allを指定した場合，その認可識別子（スキーマ）が持つすべての表，又はすべてのインデクスを読み込みます（ただし，一時表及び一時インデクスを除きます）。この場合，idxname文は指定できません。

ディクショナリ表，ビュー表，一時表，及びユーザが定義した抽象データ型列がある表は指定できません。

(3)　-r RDエリア名

　　　〜＜識別子＞

-tオプションに指定した表を格納するRDエリアのうち，ある特定のRDエリアだけを読み込む場合，そのRDエリア名を指定します。

このオプションは，-k tableの場合に指定できます。-k indexの場合は，idxname文で指定します。

LOB用RDエリアは指定できません。また，一括指定は指定できません。

＜適用基準＞

HiRDB/パラレルサーバのサーバ間横分割表の場合，このオプションを指定しなくても複数のサーバプロセスでRDエリア単位に並行して処理がされます。しかし，HiRDB/シングルサーバの場合，及びHiRDB/パラレルサーバのサーバ内横分割表の場合，一つのサーバプロセスで1RDエリアずつ処理がされるため，並行して処理されません。後者の場合に，RDエリア単位に複数のサーバプロセスを使用して並行に処理するときにこのオプションを指定します。

(4)　-u 認可識別子

pdpgbfonを実行するユーザの認可識別子を指定します。

認可識別子については，「-u 認可識別子」を参照してください。

(5)　-X サーバ間通信の応答監視時間

　　　〜＜符号なし整数＞　((1〜65535))　《300》

コマンドを実行したサーバで通信障害などの障害が発生した場合，コマンドは無応答となり，業務が停止するおそれがあります。pdpgbfonでは障害を検知するために，コマンドで実施されるディクショナリ操作についての通信の応答時間を監視できます。

-Xオプションには，ディクショナリ操作での応答監視時間を秒数で設定します。ディクショナリ操作時の実行時間が，-Xオプションに設定した時間を超えた場合は，pdpgbfonはディクショナリアクセスで障害が発生したと判断し，リターンコード8で処理を打ち切ります。

＜適用基準＞

通信障害やユニットダウンによってサーバから応答が返らない状態となった場合に，300秒より早く障害を検知したいとき，-Xオプションに300より小さい値を指定してください。

系切り替え機能を使用している場合，系切り替えが完了しているにもかかわらず，コマンドが応答を待ち続けることがあります。その場合は，監視時間を短く設定することで，コマンドを即時終了できます。

同時実行するアプリケーションやユティリティの多重度が高い場合など，ディクショナリからの応答が遅延し，-Xオプションのデフォルトである300秒以内にユティリティの前処理が完了しないときは，監視時間でタイムアウトするおそれがあります。このような環境では，-Xオプションには300より大きい値を指定してください。

(6)　-q 世代番号

　　　〜＜符号なし整数＞((0〜10))

インナレプリカ機能を使用している場合，読み込み対象となるRDエリアの世代番号を指定します。

世代番号は次のように指定します。

0：オリジナルRDエリアを対象とする場合

1〜10：指定した世代のレプリカRDエリアを対象とする場合

規則については，「-q 世代番号」を参照してください。

(7)　-s サーバ名

　　　〜＜識別子＞

このオプションはHiRDB/パラレルサーバの場合に指定できます（HiRDB/シングルサーバの場合に指定しても無視されます）。

pdpgbfonの実行制御をするバックエンドサーバの名称を指定します。

＜適用基準＞

省略した場合でも，自動的にどれかのバックエンドサーバが選択されるため，通常時は指定する必要はありません。

pdpgbfonを大量に同時実行して，最大同時起動サーバプロセス数の上限を超えたときに指定します。

(8)　-b

読み込み対象が表のデータページで，その表に定義長256バイト以上のBINARY型の列がある場合，別セグメントに分岐格納されたBINARY型列の格納データも読み込むときに指定します。

定義長256バイト以上のBINARY型の列がある表の場合にこのオプションを省略したときは，BINARY型列以外のデータ型の列と同じセグメントに格納されたBINARY型列は読み込みますが，別セグメントに分岐格納されたBINARY型列は読み込みません。

(9)　制御情報ファイル名

　　　〜＜パス名＞

pdpgbfonの制御文を記述した制御情報ファイルの名称を指定します。

制御情報ファイルには，次に示す制御文を記述できます。各制御文については，「idxname文（インデクスの情報の記述）」，「option文（オプションの情報の記述）」を参照してください。なお，制御情報ファイル中にコメントは記述できません。

idxname文

option文

12.3.3　idxname文（インデクスの情報の記述）

グローバルバッファへの読み込み対象がインデクスページ（-k index）の場合，対象とするインデクスの情報を指定します。

＜適用基準＞

-k index場合，-tオプションに指定した表に定義されているすべてのインデクスを読み込みますが，特定のインデクス，サーバ，又はRDエリアだけを読み込み対象にするとき，idxname文を指定します。

＜規則＞

nameオペランドは，server及びrdareaオペランドよりも前に指定してください。

識別子に空白及び英小文字を含む場合は，引用符（"）で囲んで指定してください。英小文字が引用符で囲まれていない場合，英大文字として扱われます。

rdareaオペランドを指定したidxname文を指定し，ほかにもidxname文を指定する場合，nameオペランドだけを指定したidxname文，及びserverオペランドを指定したidxname文は指定できません。

同じインデクス識別子を指定したidxname文は複数個指定できません。ただし，rdareaオペランドを指定する場合は複数個指定できます。

(1)　形式

　idxname name=｛インデクス識別子｜*｝

　　　　　〔｛server=サーバ名〔，サーバ名〕…

　　　　　　　｜rdarea=RDエリア名〔，RDエリア名〕…｝〕

(2)　説明

(a)　name=｛インデクス識別子｜*｝

インデクス識別子　〜＜識別子＞

グローバルバッファに読み込むインデクス識別子を指定します。

認可識別子は，-tオプションに指定した表の認可識別子を仮定するため，ここでは指定する必要はありません。

*

表に定義されているすべてのインデクスを対象にする場合，*を指定します。

*指定のidxname文（serverオペランドなし）と，idxname文を省略した場合とでは，両方とも表のすべてのインデクスを読み込みます。ただし，*を指定してserverオペランドも指定したidxname文の場合は，表のすべてのインデクスのうち，serverオペランドに指定したバックエンドサーバにあるインデクスだけを読み込み対象にできます。

*を指定した場合，idxname文は1個だけ指定できます。

(b)　server=サーバ名〔，サーバ名〕…

　　　〜＜識別子＞

このオペランドは，HiRDB/パラレルサーバの場合に指定できます。nameオペランドに指定したインデクスに対して，特定サーバのインデクスを対象とする場合に，そのサーバ名（バックエンドサーバ名）を指定します。省略した場合は，インデクスが格納されているすべてのサーバを対象とします。

共用インデクスの場合，このオペランドの指定有無に関係なく，更新可能バックエンドサーバ，及びすべての参照専用バックエンドサーバで処理をします。

(c)　rdarea=RDエリア名〔，RDエリア名〕…

　　　〜＜識別子＞

nameオペランドに指定したインデクスに対して，特定のインデクス格納用RDエリアを対象とする場合に，そのRDエリア名を指定します。省略した場合は，インデクスが格納されているすべてのRDエリアを対象とします。

nameオペランドに*を指定した場合，このオペランドは指定できません。

12.3.4　option文（オプションの情報の記述）

pdpgbfonの実行時間監視の情報を指定します。

＜適用基準＞

pdpgbfonの実行時間を監視する場合に指定します。

(1)　形式

　option exectime=pdpgbfonの監視時間

(2)　説明

(a)　exectime=pdpgbfonの監視時間　〜＜符号なし整数＞((0〜35791394))

pdpgbfonの実行時間を監視する場合に，その監視時間を分単位で指定します。

＜指定値の目安＞

このオペランドは，無応答障害の検知を目的とするもので，長時間トランザクションの実行時間を監視するものではありません。したがって，指定値は，該当する表の処理時間に余裕を持たせた値にする必要があります。例えば，7〜8分程度で終了するpdpgbfonの実行時間を監視する場合は，exectime=10ではなく，exectime=20と指定してください。

＜規則＞

このオペランドに0を指定した場合，実行時間の監視はしません。

このオペランドを省略した場合は，次の優先順位でシステム定義の指定値に従います。

1.　pd_utl_exec_time

2.　pd_cmd_exec_time

指定時間以内にpdpgbfonの処理が終了しない場合，ユティリティのプロセスを強制終了し，無応答原因の調査用に障害情報を取得してください。なお，実行時間の監視対象は，実際にグローバルバッファにアクセス要求をするシングルサーバ（又はバックエンドサーバ）と，pdrorg用ユティリティサーバプロセス（0mrorg）であり，コマンドのプロセス（pdpgbfon及びpdrorg）に障害が発生した場合は強制終了できません。取得する障害情報については，マニュアル「HiRDB システム定義」のpd_utl_exec_timeオペランドを参照してください。

12.4　pdpgbfonの処理結果

12.4.1　pdpgbfonの処理結果の詳細

pdpgbfonが正常終了した場合，コマンドを実行した標準出力に処理結果が表示されます。

(1)　グローバルバッファへの読み込み対象がデータページの場合

pdpgbfon VV-RR     *** BUFFER INFORMATION ***     YYYY-MM-DD hh:mm:ss [1]

TABLE NAME : USERA.TBL1 [2]
 [3]  [4]              [5]            [6]           [7]
No.  SERVER           RFGET          READ         RFFLS
  1  bes1             1,275           596             0
  2  bes2             1,271           594             0
  3  bes3             1,273           596             0

 8365 20:03:54 un01          KFPL00738-I Pdpgbfon terminated, return code=0

［説明］

処理結果のヘッダ

VV-RR：バージョン，リビジョン番号

YYYY-MM-DD hh:mm:ss：pdpgbfon開始日時

処理対象の資源名

通番

サーバ名

参照GET回数※

pdpgbfonがグローバルバッファを参照した回数です。

管理（ディレクトリ）ページの参照回数も含まれるため，該当資源の使用ページ数より多い値が表示されます。なお，参照したページが既にグローバルバッファに読み込まれている場合は，実READは発生していません。

実READ回数※

pdpgbfonがグローバルバッファを参照したときに目的のページが見付からなかったために，DBに対して入力要求をした回数です。

参照バッファフラッシュ回数※

pdpgbfonがグローバルバッファ上にページを読み込むとき，グローバルバッファが不足したためにLRU方式で未更新ページをグローバルバッファから追い出した回数です。

グローバルバッファ上に別の資源のページ情報がない状態（例えばHiRDB開始直後など）で実行した場合に，この値が0以外のときは，全ページをメモリに読み込むにはグローバルバッファが不足していることを意味します。

注※

表示できる回数は最大4,294,967,295です。これを超える場合，オーバフローします。

(2)　グローバルバッファへの読み込み対象がインデクスページの場合

pdpgbfon VV-RR     *** BUFFER INFORMATION ***     YYYY-MM-DD HH:MM:SS [1]

INDEX NAME : USERA.(PRIMARY0000131193)[2]
 [3]  [4]              [5]            [6]           [7]
No.  SERVER           RFGET          READ         RFFLS
  1  bes1                75            69             0
  2  bes2                75            69             0
  3  bes3                75            69             0

INDEX NAME : USERA.IDX01
No.  SERVER           RFGET          READ         RFFLS
  1  bes1               525           478             0
  2  bes2               523           476             0
  3  bes3               524           477             0

 8373 20:04:04 un01          KFPL00738-I Pdpgbfon terminated, return code=0

［説明］

「グローバルバッファへの読み込み対象がデータページの場合」の説明を参照してください。なお，インデクス専用のグローバルバッファを割り当てた場合でも，該当するインデクスを格納するRDエリアの管理（ディレクトリ）ページへのアクセスは，RDエリアに割り当てたグローバルバッファ（指定がない場合は-oオプションに指定したグローバルバッファ）を使用します。そのため，インデクス専用のグローバルバッファが十分でも，RDエリアに割り当てたグローバルバッファが不足していると，参照バッファフラッシュ回数が表示されます。

12.5　注意事項

pdpgbfonは内部的にpdrorgを実行するため，同時実行可能数はpdrorgの上限と同じになります。つまり，pdpgbfonの同時実行可能数は，「pdrorgの同時実行可能数−実行中のpdrorg数」となります。

ビュー表，及び一時表は処理対象外です。-tオプションにビュー表又は一時表を指定して実行すると，pdpgbfonはKFPL15231-Eメッセージを出力して，エラー終了します。また，-tオプションにallを指定した場合，pdpgbfonは該当する表の処理をスキップします。

LOB用RDエリアは処理対象外です。したがって，抽象データ型，及びプラグインインデクスを格納しているLOB用RDエリアも処理対象外となります。

実行中のpdpgbfonを強制終了する場合は，pdcancelコマンドで強制終了してください。OSのkillコマンドなどで強制終了しても，pdpgbfonは終了しません。

共用表及び共用インデクスを読み込む場合，更新可能バックエンドサーバ，及びすべての参照専用バックエンドサーバが対象となります。

オープン状態でないSCHEDULE属性のRDエリアに対してpdpgbfonを実行しても意味がありません（処理後にRDエリアがクローズされるため）。

HiRDB/パラレルサーバの場合，通信回線の混雑によってバックエンドサーバからpdpgbfonに対する送信電文が1秒以上遅れたときは，該当するバックエンドサーバの処理結果が標準出力に表示されないことがあります。この場合，メッセージログファイル，又はsyslogfileに出力されるKFPL00714-Iメッセージで処理結果を確認できます。

処理対象表にユーザが定義した抽象データ型列がある場合，pdpgbfonは実行できません。

pdpgbfonのリターンコードを次の表に示します。

表12‒4　pdpgbfonのリターンコード

リターンコード

意味

対処方法

0

グローバルバッファ上への読み込みを完了しました。

なし。

4

グローバルバッファ上への読み込み時にバッファ面数が不足したため，バッファ落ち（読み込みできなかったページがあること）が発生しました。

必要であれば，グローバルバッファ面数を大きくしてください。

なお，一つのグローバルバッファを複数の資源で共有する場合は，pdpgbfon実行前や実行中に別のジョブによって別資源のページがグローバルバッファに読み込まれていたりします。この場合，別資源のページを追い出したときでもバッファ落ちと認識されるため，処理対象資源がバッファ落ちしたのか，又は別資源がバッファ落ちしたのか判断できません。したがって，リターンコードだけで全ページがグローバルバッファに読み込まれたかどうかを判断する場合，pdpgbfonが終了するまで別のジョブは実行しないでください。

8

pdpgbfonが異常終了しました（グローバルバッファへの読み込みを中断しました）。

この場合，表やインデクスの状態は保証されます。異常終了後も，UAPから表やインデクスをアクセスできます。

pdpgbfonを再実行する場合は，出力されたエラーメッセージを参照してエラー要因を取り除いてください。

12

pdrorgが異常終了しました（pdpgbfonの延長で動作するpdrorgが異常終了しました）。

この場合，表やインデクスの状態は保証されます。異常終了後も，UAPから表やインデクスをアクセスできます。

出力されたエラーメッセージを参照してエラー要因を取り除いて，再度pdpgbfonを実行してください。

pdpgbfonを実行している表やインデクスに対して，定義系SQLは実行しないでください。実行すると，pdpgbfonが異常終了します。スキーマ単位にpdpgbfonを実行している場合は，該当スキーマが持つすべての表とインデクスが対象となります。

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdpgbfonの制御情報ファイルには，BOMを持つファイルを使用できます。なお，制御情報ファイルにBOMを持つファイルを使用しても，BOMは読み飛ばされます。

13　整合性チェックユティリティ（pdconstck）

この章では，参照制約又は検査制約が定義された表に対して整合性チェック及び検査保留状態の操作をする，整合性チェックユティリティ（pdconstck）について説明します。

13.1　概要

整合性チェックユティリティ（pdconstck）は，参照制約又は検査制約が定義された表に対して，整合性チェック及び検査保留状態の操作（設定又は解除）をするユティリティです。

13.1.1　前提条件

(1)　動作条件

pdconstck実行時の前提条件を次の表に示します。

表13‒1　pdconstck実行時の前提条件

項目

前提条件

実行権限

DBA権限を持つユーザ，又は表の所有者が実行できます。

RDエリアの状態

pdconstckと処理対象RDエリアの状態の関係については，「コマンド実行時のRDエリアの状態」を参照してください。

同時実行

同一表に対するpdconstckの同時実行はできません。同時実行した場合，該当する表の資源種別名TABL（資源種別：0002）とDICT（資源種別：3005）間でデッドロックとなることがあります。

対象となる表が異なる場合は，pdconstckを同時実行できます。ただし，検査保留状態を変更する場合，排他待ちとなります。

最大同時実行数

pdconstckの最大同時実行数は，pd_max_usersオペランドの指定値÷2となります。

資源数

pdconstckは，対象表及び外部キーが参照する被参照表に対して排他を掛けます。そのため，次のシステム定義の指定値に注意してください。

同時アクセス可能実表数

システム定義のpd_max_access_tablesオペランドには，（対象表の外部キー数＋1）以上の値を指定してください。

1サーバ当たりのUNTIL DISCONNECT指定の排他表及びRDエリア数の総和

システム定義のpd_lck_until_disconnect_cntオペランドには，次の計算式X以上の値を指定してください。

X=（2＋処理対象表の外部キー数＋処理対象表の格納RDエリア数

＋外部キーが参照する主キーの表の格納RDエリアの総数）

サーバ当たりの排他制御用プールサイズ

システム定義のpd_lck_pool_sizeオペランドに記載している計算式を元に設定してください。

検査保留状態の遷移

システム定義のpd_check_pendingオペランドの指定に関係なく，pdconstckの実行によって検査保留状態は遷移します。

インナレプリカ機能

インナレプリカ機能を使用する場合，対象表に関連するすべてのRDエリア（表格納用RDエリア，LOB列格納用RDエリア，及びインデクス格納用RDエリア）のレプリカ定義数を一致させてください。また，レプリカRDエリアの世代番号をすべてそろえてください。なお，対象となる表が参照表の場合，参照表が参照する被参照表に関連するRDエリアは，該当する表とレプリカ定義が異なるときでも，pdconstckを実行できます。

対象表

・表に関連するすべてのレプリカRDエリアが，コマンド閉塞かつクローズ状態の世代の場合，処理対象にはなりません。

・サーバ間の分割をしている場合，サーバ内にレプリカRDエリアがないとき，そのサーバはカレントRDエリアを処理対象とします。

対象表（参照表）が参照する被参照表

・全世代単位の場合は，対象表（参照表）が参照する被参照表に関連するレプリカRDエリアが，対象表に対応するレプリカRDエリアの世代でないとき，カレントRDエリアを整合性チェック対象とします。

・世代単位の場合は，参照表が参照する被参照表に関連するレプリカRDエリアが，指定した世代にないとき，カレントRDエリアを整合性チェック対象とします。

・カレントRDエリアの世代の場合は，参照表が参照する被参照表のカレントRDエリアを整合性チェック対象とします。

(2)　動作環境

pdconstckの動作環境を次の表に示します。

表13‒2　pdconstckの動作環境

項目

動作環境

HiRDB環境

コマンド実行場所

pdconstckは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

サーバの状態

pdconstckを実行する場合，次のサーバが稼働していなければなりません。

HiRDB/シングルサーバの場合：シングルサーバ

HiRDB/パラレルサーバの場合：ディクショナリサーバ，フロントエンドサーバ，及びバックエンドサーバ（マルチフロントエンドサーバの場合，一つ以上のフロントエンドサーバが稼働中である必要があります）

環境変数

PDDIR

PDDIR環境変数に，絶対パス名でHiRDB運用ディレクトリを設定してください。

PDCONFPATH

PDCONFPATH環境変数に，絶対パス名でHiRDBシステム定義ファイルを格納するディレクトリを設定してください。

OS環境

LANG環境変数

pdsetupコマンドで設定した文字コードがutf-8の場合，PDLANG環境変数に，UTF-8を設定してください。LANG環境変数には任意の値を設定してください。

pdsetupコマンドで設定した文字コードがutf-8_ivsの場合，PDLANG環境変数に，UTF-8_IVS又はUTF-8を設定してください。LANG環境変数には任意の値を設定してください。

pdsetupコマンドで設定した文字コードがchinese-gb18030の場合，PDLANG環境変数に，CHINESE-GB18030を設定してください。LANG環境変数には任意の値を設定してください。

上記以外の場合

pdsetupコマンドで指定した文字コード種別に合わせて，LANG環境変数を設定してください。OSがサポートしていない文字コードを使用する場合は，PDLANG環境変数を設定してください。LANG及びPDLANGの設定値については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

-oオプションで指定するファイル及びディレクトリ

pdconstck実行ユーザに対してアクセス権限を与えてください。

なお，-oオプションを省略した場合は，表「pdconstckがファイルを出力するディレクトリ」に示すディレクトリにファイルを作成すると解釈されるため，同様にアクセス権限を与えてください。

表13‒3　pdconstckがファイルを出力するディレクトリ

-oオプションの指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIR※の指定

あり

なし

あり

-oオプションに指定したディレクトリ

なし

pd_tmp_directoryに指定したディレクトリ

TMPDIRに指定したディレクトリ

/tmpディレクトリ

注※　コマンド実行環境の環境変数の指定

13.1.2　pdconstck実行時の認可識別子

pdconstck実行時には，HiRDBに接続する認可識別子，並びに処理対象表及び制約名称の認可識別子を指定できます。HiRDBに接続する認可識別子，並びに処理対象表及び制約名称の認可識別子を次の表に示します。

表13‒4　HiRDBに接続する認可識別子，並びに処理対象表及び制約名称の認可識別子

指定条件

HiRDBとの接続

処理対象表又は制約名称の認可識別子

HiRDBに接続する認可識別子（-uオプション）

環境変数PDUSER

処理対象表又は制約名称の認可識別子（-t又は-cオプション）

認可識別子

パスワード

識別子

パスワード

指定あり

指定あり

指定あり

指定あり

-uオプションで指定した認可識別子

応答付きメッセージに対して入力※

-t又は-cオプションで指定した認可識別子

指定なし

-uオプションで指定した認可識別子

省略

指定あり

-t又は-cオプションで指定した認可識別子

指定なし

-uオプションで指定した認可識別子

環境変数PDUSER省略

指定あり

-t又は-cオプションで指定した認可識別子

指定なし

-uオプションで指定した認可識別子

指定なし

指定あり

指定あり

指定あり

環境変数PDUSERに指定した認可識別子

環境変数PDUSERに指定したパスワード

-t又は-cオプションで指定した認可識別子

指定なし

環境変数PDUSERに指定した認可識別子

省略

指定あり

省略

-t又は-cオプションで指定した認可識別子

指定なし

環境変数PDUSERに指定した認可識別子

識別子，パスワードの両方に簡易認証キーワードを指定

指定あり

簡易認証キーワード

簡易認証キーワード

-t又は-cオプションで指定した認可識別子

指定なし

ログインウィンドウのユーザ名

環境変数PDUSER省略

指定あり

ログインウィンドウのユーザ名（認可識別子）

応答付きメッセージに対して入力※

-t又は-cオプションで指定した認可識別子

指定なし

ログインウィンドウのユーザ名（認可識別子）

注※

パスワード入力要求の応答付きメッセージが表示されます。応答付きメッセージに対して，パスワードを入力してください。なお，応答付きメッセージに対して空送信した場合，パスワードを省略したと解釈されます。

13.2　pdconstckの機能

pdconstckには，次の二つの機能があります。

整合性チェック機能

参照制約又は検査制約が定義された表の，制約の整合性を検査します。また，制約の違反の有無によって，表の検査保留状態を解除又は設定します。

検査保留状態の強制変更機能

表の検査保留状態を強制的に設定又は解除します。

各機能の詳細を次に説明します。

13.2.1　整合性チェック機能

整合性チェック機能は，参照制約又は検査制約の整合性をチェックし，制約に違反する行がない場合は検査保留状態を解除する機能です。

参照制約の整合性チェック

参照制約に基づいて，表の外部キーの値が，その表が参照する表の主キーと同じ値を持つかどうかをチェックします。チェックの結果，制約に違反する行がない場合は，検査保留状態を解除します。制約に違反する行がある場合は，検査保留状態を設定します。ただし，外部キー値にナル値を含む行はチェック対象としません。なお，参照制約の整合性チェックは，データベースの容量によっては時間が掛かることがあります。実行時間については，「参照制約の整合性チェック方法」のSQLから見積もってください。

検査制約の整合性チェック

検査制約の定義に基づいて，行の値が検査制約の範囲内であるかどうかをチェックします。チェックの結果，制約に違反する行がない場合は，検査保留状態を解除します。制約に違反する行がある場合は，検査保留状態を設定します。なお，検査制約の整合性チェックは，データベースの容量によっては時間が掛かることがあります。実行時間については，「検査制約の整合性チェック方法」のSQLから見積もってください。

(1)　整合性チェック機能の実行単位

整合性チェック機能は，次のどちらかの単位で実行します。

表単位

表に定義された参照制約及び検査制約の，すべての制約を対象とします。

制約単位

一つの制約だけを対象とします。

また，インナレプリカ機能を使用して表単位に実行する場合は，次のどれかの単位で実行します。

全世代単位

オリジナルRDエリア及びレプリカRDエリアを作成したすべての世代を対象とします。

世代単位

一つの世代だけを対象とします。

カレントRDエリアの世代単位

カレントRDエリアの世代を対象とします。

(a)　表単位

表に定義された参照制約及び検査制約のうち，検査保留状態となったすべての制約に対して，制約ごとに整合性チェックをします。表単位で整合性チェックをする場合は，-tオプションを指定します。

表単位の整合性チェックは，次の場合に適用します。

表に定義された参照制約及び検査制約のうち，検査保留状態となったすべての制約について，1回のpdconstckで違反があるかどうかを検査し，検査保留状態を解除する場合。

pdmodでRDエリアを再初期化して，ディクショナリ表の検査保留状態が解除されなかった場合など，RDエリアの検査保留状態から，表の検査保留状態及び制約の検査保留状態を解除するとき（詳細については，「再初期化後の表，及びインデクスの状態」を参照してください）。

全世代単位

検査保留状態となった表に定義された，参照制約及び検査制約のすべての制約で，制約ごとに表を格納するオリジナルRDエリア及びレプリカRDエリアを作成したすべての世代に対し，世代ごとに整合性チェックをします。適用基準は表単位と同じです。全世代単位で整合性チェックをする場合は，-q allを指定します。

世代単位

表に定義された参照制約及び検査制約のうち，検査保留状態となったすべての制約について，制約ごとに，-qオプションで指定した世代だけ整合性チェックをします。世代単位で整合性チェックをする場合は，-qオプションで世代番号を指定します。

世代単位の整合性チェックは，検査保留状態となった特定の世代だけ違反があるかどうかを検査し，検査保留状態を解除する場合に適用します。

カレントRDエリアの世代単位

表に定義された参照制約及び検査制約のうち，検査保留状態となったすべての制約について，制約ごとに，カレントRDエリアの世代の整合性チェックをします。カレントRDエリアの世代単位で整合性チェックをする場合は，-qオプションを省略します。

カレントRDエリアの世代単位の整合性チェックは，pdloadなどをカレントRDエリアの世代に対して実行し，表が検査保留状態となった場合，違反があるかどうかカレントRDエリアの世代だけを検査し，検査保留状態を解除するときに適用します。

(b)　制約単位

検査保留状態に関係なく，一つの制約だけの整合性を検査します。制約単位で整合性を検査する場合は，-cオプションを指定します。インナレプリカ機能を使用している場合，指定した制約が定義された表を格納するオリジナルRDエリア及びレプリカRDエリアを作成したすべての世代に対して，世代ごとに整合性チェックをします。

制約単位の整合性チェックは，次の場合に適用します。

個々の制約について，違反があるかどうかをチェックする場合。

(2)　参照制約の整合性チェック

(a)　参照制約の整合性チェック方法

参照制約の整合性チェックでは，制約ごとに次のSQLで整合性をチェックします。インナレプリカ機能を使用する場合は，該当する制約の整合性を世代ごとに検査します。

参照制約の整合性チェックで実行されるSQL

SELECT  DISTINCT "外部キー構成列1", "外部キー構成列2", …, "外部キー構成列n"
FROM "参照表の所有者名"."参照表の表識別子" RIC_REF_TBL
WHERE ("外部キー構成列1" IS NOT NULL AND
    　 "外部キー構成列2" IS NOT NULL AND … "外部キー構成列n" IS NOT NULL)
AND NOT EXISTS (SELECT * FROM "被参照表の所有者名". "被参照表の表識別子" RIC_RFD_TBL
WHERE (RIC_RFD_TBL."主キー構成列1", RIC_RFD_TBL."主キー構成列2",
        …, RIC_RFD_TBL."主キー構成列n") =
      (RIC_REF_TBL."外部キー構成列1", RIC_REF_TBL."外部キー構成列2",
        …, RIC_REF_TBL."外部キー構成列n"))
ORDER BY  "外部キー構成列1" ASC|DESC, "外部キー構成列2" ASC|DESC,
          …, "外部キー構成列n" ASC|DESC
WITHOUT LOCK NOWAIT

注

このSQLでは作業表を作成する場合があるため，シングルサーバ又はバックエンドサーバに，作業表を格納する作業表用ファイルが必要となります。作業表用ファイルの容量見積もりについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

(b)　整合性有無の判断

(a)のSQLの実行結果（SQLCODE）と整合性の有無の関係を，次の表に示します。

表13‒5　SQLの実行結果と整合性の有無の関係（参照制約）

SQLCODE（検索行数）

整合性の有無

100（0件）

整合性あり

0（1件以上）

整合性なし

上記以外

実行エラー

(c)　制約違反となったキー値の出力

(a)のSQLを実行した結果，制約違反となったキー値を処理結果ファイルに出力します。なお，制約違反となったキー値は重複排除して出力します。キー値の出力形式については，「参照制約の整合性チェックの処理結果」を参照してください。

(d)　制約違反キー値の出力数上限値による整合性チェックの中断

制約違反となった行データ数が制約違反キー値の出力数上限値を超えた場合，該当する制約（世代）の整合性チェックを終了します。制約違反キー値の出力数上限値は，-wオプションで変更できます。

(3)　検査制約の整合性チェック

(a)　検査制約の整合性チェック方法

検査制約の整合性チェックでは，制約ごとに次のSQLで整合性をチェックします。インナレプリカ機能を使用する場合は，該当する制約の整合性を世代ごとに検査します。

検査制約の整合性チェックで実行されるSQL

SELECT DISTINCT※ "検査制約の対象列1", "検査制約の対象列2", …， "検査制約の対象列n"
FROM "検査制約を定義した表の所有者名"."検査制約を定義した表の表識別子"
WHERE NOT（検査制約の探索条件） WITHOUT LOCK NOWAIT

注

このSQLでは作業表を作成する場合があるため，シングルサーバ又はバックエンドサーバに，作業表を格納する作業表用ファイルが必要となります。作業表用ファイルの容量見積もりについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

注※

探索条件に指定した列定義がBLOB型又はBINARY型の場合，「DISTINCT」は指定しません。また，この場合は作業表を作成しません。

(b)　整合性有無の判断

(a)のSQLの実行結果（SQLCODE）と整合性の有無の関係を，次の表に示します。

表13‒6　SQLの実行結果と整合性の有無の関係（検査制約）

SQLCODE（検索行数）

整合性の有無

100（0件）

整合性あり

0（1件以上）

整合性なし

上記以外

実行エラー

(c)　制約違反となったキー値の出力

(a)のSQLを実行した結果，制約違反となったキー値を処理結果ファイルに出力します。なお，探索条件に指定した列のデータ型がBLOB型又はBINARY型を含まない場合，制約違反となったキー値は重複排除して出力します。BLOB型又はBINARY型を含む場合は，制約違反となったキー値の重複排除をしません。キー値の出力形式については，「検査制約の整合性チェックの処理結果」を参照してください。

(d)　制約違反キー値の出力数上限値による整合性チェックの中断

制約違反となった行データ数が制約違反キー値の出力数上限値を超えた場合，該当する制約（世代）の整合性チェックを終了します。制約違反キー値の出力数上限値は，-wオプションで変更できます。

(4)　整合性チェック結果による検査保留状態の遷移

pdconstckは，制約ごと（インナレプリカ機能を使用する場合，各制約の世代ごと）に整合性チェックをした結果に基づいて，整合性の有無で表の検査保留状態，制約の検査保留状態，又はRDエリアの検査保留状態を，検査保留状態又は非検査保留状態に設定します。RDエリアの検査保留状態の遷移は，pdconstckの実行単位によって異なります。

次に，制約の検査保留状態の遷移，表の検査保留状態の遷移，及びRDエリアの検査保留状態の遷移について説明します。なお，検査制約と参照制約はそれぞれ別に，表の検査保留状態，制約の検査保留状態，又はRDエリアの検査保留状態を遷移します。

制約の検査保留状態の遷移

制約の検査保留状態は，制約ごと（世代ごと）の整合性チェックの結果によって，制約ごとに遷移します。

制約の検査保留状態の遷移を次の表に示します。

表13‒7　制約の検査保留状態の遷移

インナレプリカ機能

制約の整合性チェック結果※

制約の検査保留状態（設定する値）

使用しない

整合性あり

非検査保留状態（NULL値）

整合性なし

検査保留状態（'C'）

使用する

すべての世代で整合性あり

非検査保留状態（NULL値）

整合性がある世代と整合性がない世代が混在

検査保留状態（'C'）

注※　整合性チェックをしなかった制約（世代）は，整合性ありと判断します。

表の検査保留状態の遷移

表の検査保留状態は各制約の検査保留状態によって遷移します。表の検査保留状態の遷移を次の表に示します。

表13‒8　表の検査保留状態の遷移

制約の検査保留状態

表の検査保留状態（設定する値）

すべての制約が非検査保留状態

非検査保留状態（NULL値）

検査保留状態と非検査保留状態の制約が混在

検査保留状態（'C'）

RDエリアの検査保留状態の遷移

RDエリアの検査保留状態は，各制約（各世代）で行った整合性チェックの結果によって遷移します。RDエリアの検査保留状態の遷移を次の表に示します。

表13‒9　RDエリアの検査保留状態の遷移

整合性チェックの結果

RDエリアの検査保留状態（設定する値）

すべての制約が整合性あり

非検査保留状態（NULL値）

整合性がない制約と，整合性がある制約が混在

検査保留状態（'C'）

(a)　表単位で実行した場合の検査保留状態の遷移

表単位実行時は，制約ごとに整合性チェックをした結果によって，表の検査保留状態，制約の検査保留状態，及びRDエリアの検査保留状態を遷移します。

参照制約が定義された表に対して，表単位に整合性チェックを実行する例を次の図に示します。また，この例の検査保留状態の遷移を次の表に示します。

図13‒1　表単位での整合性チェック実行例

（凡例）

T1，T2：主キーが定義された表

T3：外部キー（REF1，REF2）が定義された表

CHK1，CHK2：参照制約

USR1〜USR4：表を格納しているユーザ用RDエリア

REF1，REF2：ほかの表を参照する外部キー

表13‒10　表単位での検査保留状態の遷移（実行例）

整合性チェックの結果

検査保留状態

REF1の整合性

REF2の整合性

表の検査保留状態

制約の検査保留状態

表格納用RDエリアの検査保留状態

REF1

REF2

USR1

USR2

あり

あり

N

N

N

N

N

なし

P

N

P

P

P

なし

あり

P

P

N

P

P

なし

P

P

P

P

P

（凡例）

P：検査保留状態

N：非検査保留状態

(b)　全世代単位で実行した場合の検査保留状態の遷移

インナレプリカ機能使用時に全世代単位で実行する場合は，制約ごと（世代ごと）に整合性チェックをした結果によって，表の検査保留状態，制約の検査保留状態，及びRDエリアの検査保留状態を遷移します。

検査制約が定義された表が，インナレプリカ機能を使用して1世代のレプリカRDエリアを作成している場合，全世代単位で整合性チェックを実行する例を次の図に示します。また，検査保留状態の遷移を次の表に示します。

図13‒2　全世代単位での整合性チェック実行例

（凡例）

U1，U2：オリジナルRDエリア

U1G1，U2G1：レプリカRDエリア

CHK1，CHK2：表T1の検査制約

表13‒11　全世代単位での検査保留状態の遷移（実行例）

整合性チェックの結果

検査保留状態

CHK1の整合性

CHK2の整合性

表の検査保留状態

制約の検査保留状態

RDエリアの検査保留状態

世代0

世代1

世代0

世代1

CHK1

CHK2

U1

U2

U1G1

U2G1

あり

あり

あり

あり

N

N

N

N

N

N

N

あり

あり

あり

なし

P

N

P

N

N

P

P

あり

あり

なし

あり

P

N

P

P

P

N

N

あり

あり

なし

なし

P

N

P

P

P

P

P

あり

なし

あり

あり

P

P

N

N

N

P

P

あり

なし

あり

なし

P

P

P

N

N

P

P

あり

なし

なし

あり

P

P

P

P

P

P

P

あり

なし

なし

なし

P

P

P

P

P

P

P

なし

あり

あり

あり

P

P

N

P

P

N

N

なし

あり

あり

なし

P

P

P

P

P

P

P

なし

あり

なし

あり

P

P

P

P

P

N

N

なし

あり

なし

なし

P

P

P

P

P

P

P

なし

なし

あり

あり

P

P

N

P

P

P

P

なし

なし

あり

なし

P

P

P

P

P

P

P

なし

なし

なし

あり

P

P

P

P

P

P

P

なし

なし

なし

なし

P

P

P

P

P

P

P

（凡例）

Ｐ：検査保留状態

Ｎ：非検査保留状態

(c)　世代単位での検査保留状態の遷移

インナレプリカ機能使用時に世代単位で実行する場合，制約ごとに指定世代の整合性チェックをした結果によって，表の検査保留状態，制約の検査保留状態，及び指定した世代のRDエリアの検査保留状態を遷移します。

世代単位での整合性チェック結果による制約とRDエリアの検査保留状の遷移を次の表に示します。

表13‒12　世代単位での整合性チェック結果による制約とRDエリアの検査保留状の遷移

実行結果

制約の検査保留状態

RDエリアの検査保留状態

該当世代のチェック結果

他世代のRDエリア中の検査保留状態

すべての制約が整合性あり

すべて非検査保留状態

すべての制約を非検査保留状態にします。

該当する世代を非検査保留状態にします。

上記以外

遷移しません。

該当する世代を非検査保留状態にします。

上記以外

整合性ありの制約

−

遷移しません。

該当する世代を検査保留状態にします。

整合性なしの制約

−

検査保留状態にします。

該当する世代を検査保留状態にします。

（凡例）

−：該当しません。

図「全世代単位での整合性チェック実行例」の実行例について，世代1に対して世代単位に整合性チェックをした場合の検査保留状態の遷移を次の表に示します。

表13‒13　世代単位での検査保留状態の遷移（実行例）

整合性チェックの結果

RDエリアの検査保留状態

検査保留状態

表の検査保留状態

制約の検査保留状態

RDエリアの検査保留状態

CHK1の整合性

CHK2の整合性

世代0

CHK1

CHK2

U1G1

U2G1

U1

U2

あり

あり

非検査保留状態

N

N

N

N

N

(N)

(N)

あり

あり

検査保留状態

(P)

(P)

(P)

N

N

(P)

(P)

あり

なし

非検査保留状態

P

(P)

P

P

P

(N)

(N)

あり

なし

検査保留状態

P

(P)

P

P

P

(P)

(P)

なし

あり

非検査保留状態

P

P

(P)

P

P

(N)

(N)

なし

あり

検査保留状態

P

P

(P)

P

P

(P)

(P)

なし

なし

非検査保留状態

P

P

P

P

P

(N)

(N)

なし

なし

検査保留状態

P

P

P

P

P

(P)

(P)

（凡例）

Ｐ：検査保留状態

Ｎ：非検査保留状態

(P)：遷移なし（検査保留状態のまま）

(N)：遷移なし（非検査保留状態のまま）

(d)　カレントRDエリアの世代単位での検査保留状態の遷移

インナレプリカ機能使用時にカレントRDエリアの世代単位で実行する場合は，制約ごとに指定世代の整合性チェックをした結果によって，表の検査保留状態，制約の検査保留状態，及び指定した世代のRDエリアの検査保留状態を遷移します。

カレントRDエリアの世代単位に整合性チェックをしたときの検査保留状態の遷移は，「(c)世代単位での検査保留状態の遷移」と同じです。

(e)　制約単位での検査保留状態の遷移

制約単位実行時は，指定した制約の整合性チェックをした結果によって，表の検査保留状態，指定した制約の検査保留状態，及びRDエリアの検査保留状態を遷移します。検査保留状態の遷移を次に説明します。

検査保留状態の遷移（インナレプリカ機能を使用しない場合）

インナレプリカ機能を使用しない場合，指定した制約の整合性結果によって，制約の検査保留状態を遷移します。

図「表単位での整合性チェック実行例」の実行例について，制約CHK1に対して制約単位に整合性チェックをした場合の検査保留状態の遷移を次の表に示します。

表13‒14　制約単位での検査保留状態の遷移（実行例）

整合性チェックの結果

制約の検査保留状態

検査保留状態

CHK1の整合性

CHK2

表の検査保留状態

制約の検査保留状態

RDエリアの検査保留状態

CHK1

CHK2

U1

U2

あり

非検査保留状態

N

N

−

N

N

あり

検査保留状態

P

N

−

P

P

なし

非検査保留状態

P

P

−

P

P

なし

検査保留状態

P

P

−

P

P

（凡例）

P：検査保留状態

N：非検査保留状態

−：状態を変更しません

検査保留状態の遷移（インナレプリカ機能を使用する場合）

インナレプリカ機能を使用する場合，指定した制約の世代ごとの整合性チェック結果によって，制約の検査保留状態，各世代のRDエリアの検査保留状態，及び表の検査保留状態を遷移します。図「全世代単位での整合性チェック実行例」に示した実行例について，制約CHK1に対して制約単位に整合性チェックをした場合の検査保留状態の遷移を次の表に示します。

表13‒15　インナレプリカ機能使用時の制約単位での検査保留状態の遷移（実行例）

整合性チェックの結果

ほかの検査保留状態

検査保留状態

表の検査保留状態

制約の検査保留状態

RDエリアの検査保留状態

CHK1の世代0整合性

CHK1の世代1整合性

CHK2

CHK1

CHK2

U1

U2

U1G1

U2G1

あり

あり

非検査保留状態

N

N

−

N

N

N

N

あり

あり

検査保留状態

P

N

−

P

P

P

P

あり

なし

非検査保留状態

P

P

−

P

P

P

P

あり

なし

検査保留状態

P

P

−

P

P

P

P

なし

あり

非検査保留状態

P

P

−

P

P

P

P

なし

あり

検査保留状態

P

P

−

P

P

P

P

なし

なし

非検査保留状態

P

P

−

P

P

P

P

なし

なし

検査保留状態

P

P

−

P

P

P

P

（凡例）

P：検査保留状態

N：非検査保留状態

−：状態を変更しません

(5)　整合性チェックの順番と実行有無

(a)　表単位

整合性チェックの順番

表単位で整合性チェックをする場合，整合性チェックの順番は次のようになります。

参照制約と検査制約の順番

-tオプションで指定した表に参照制約及び検査制約の両方が定義されている場合，参照制約（外部キー），検査制約の順で整合性をチェックします。

同一制約内の順番

-tオプションで指定した表に同一制約が複数定義されている場合は，同一制約内の制約名称順に整合性をチェックします。

表単位の整合性チェックでの順番の例を次の表に示します。

表13‒16　表単位の整合性チェックでの順番の例

表の制約

整合性チェックの順番

参照制約（外部キー）

検査制約

参照制約（外部キー）

検査制約

F1

F2

C1

C2

あり

あり

1.

2.

3.

4.

なし

1.

2.

−

−

なし

あり

−

−

1.

2.

なし

−

−

−

−

（凡例）

F1，F2：参照制約（外部キー）の制約名

C1，C2：検査制約の制約名

1.〜4.：整合性チェックの検査順番

−：該当しません

インナレプリカ使用時の世代ごとの整合性チェックの順番と，世代ごとの実行可否

表単位の整合性チェック（全世代単位）の場合，制約ごとにオリジナルRDエリア（世代番号0），世代番号1から昇順に整合性チェックをします。

整合性チェックの実行有無

表単位の整合性チェックは，検査保留状態となった制約だけ整合性を検査します。なお，インナレプリカ機能を使用する場合は，検査保留状態となった制約の世代だけ整合性をチェックします。整合性をチェックする条件と整合性チェック実行有無を次の表に示します。

表13‒17　整合性をチェックする条件と整合性チェック実行有無

検査保留状態

整合性チェック実行有無

備考

表の検査保留状態

制約の検査保留状態

表格納用RDエリアの検査保留状態※1

検査保留状態（'C'）

検査保留状態（'C'）

検査保留状態

あり

pdconstckは正常状態と判断します（検査保留状態）。

非検査保留状態

あり

RDエリアが非検査保留状態であるが，ディクショナリ表が検査保留状態のため，整合性をチェックします。

非検査保留状態（NULL値）※2

検査保留状態

なし

pdconstckは正常状態と判断します（他制約が検査保留状態）。

非検査保留状態

あり

RDエリアが非検査保留状態であるが，ディクショナリ表が検査保留状態のため，整合性をチェックします。

非検査保留状態（NULL値）

検査保留状態（'C'）

検査保留状態

なし

ディクショナリ表が不正のため，pdconstckをエラー終了します。

非検査保留状態

なし

非検査保留状態（NULL値）※2

検査保留状態

あり

RDエリアが検査保留状態のため，整合性をチェックします。

非検査保留状態

なし

pdconstckは正常状態と判断します（非検査保留状態）。

注※1　

分割表の場合，表を格納する各RDエリア中の表情報によって，検査保留状態又は非検査保留状態になります。各表格納用RDエリア中の表情報による検査保留状態を次の表に示します。

また，インナレプリカ機能を使用している場合，世代ごとに検査保留状態又は非検査保留状態となります。世代中の各表格納用RDエリア中の表情報による検査保留状態を表「世代中の各表格納用RDエリア中表情報による検査保留状態」に示します。

表13‒18　各表格納用RDエリア中の表情報による検査保留状態

条件

表格納RDエリアの表情報

すべての格納RDエリアのRDエリアの検査保留状態が検査保留状態

検査保留状態

格納RDエリアのRDエリアの検査保留状態が検査保留状態と非検査保留状態が混在

検査保留状態

すべての格納RDエリアがRDエリアの検査保留状態が非検査保留状態

非検査保留状態

表13‒19　世代中の各表格納用RDエリア中表情報による検査保留状態

条件

表格納RDエリアの表情報

世代中の処理対象格納RDエリアすべてRDエリアの検査保留状態が検査保留状態

検査保留状態

世代中の処理対象格納RDエリアの検査保留状態が非検査保留状態

検査保留状態

世代中の処理対象格納RDエリアすべてRDエリアの検査保留状態が非検査保留状態

非検査保留状態

注※2　

表の検査保留状態と制約の検査保留状態の整合性が取れていない場合は，pdconstckはエラーで終了します。ディクショナリ表の検査保留状態でのpdconstckの動作を次の表に示します。

表13‒20　ディクショナリ表の検査保留状態でのpdconstckの動作

検査保留状態

pdconstckの動作

表の検査保留状態

制約の検査保留状態

検査保留状態

検査保留状態となった制約がある

処理続行

すべての制約が非検査保留状態

エラー終了

非検査保留状態

検査保留状態となった制約がある

エラー終了

すべての制約が非検査保留状態

処理続行

(b)　制約単位

整合性チェックの順番

制約単位の場合は，制約だけ整合性を検査するため，チェックの順番はありません。ただし，インナレプリカ機能を使用する場合は，次に示す順番で整合性をチェックします。

インナレプリカ使用時の世代ごとのチェック順番

制約単位の整合性チェックの場合，オリジナルRDエリア（世代番号0），世代番号1から昇順に整合性をチェックします。

整合性チェックの実行有無

制約単位の整合性チェックでは，表の検査保留状態に関係なく，上記の順に整合性をチェックします。

13.2.2　検査保留状態の強制変更機能

(1)　機能概要

検査保留状態の強制変更機能は，参照制約又は検査制約の整合性を検査しないで，検査保留状態を強制的に変更する機能です。検査保留状態の強制変更機能には，検査保留状態の強制設定，又は強制解除の二つがあります。

検査保留状態の強制設定

検査保留状態の強制設定は，表の検査保留状態を強制的に検査保留状態に設定する機能です。この機能を使用する場合は，-k setを指定します。

検査保留状態の強制設定は，次の場合に適用します。

システム定義のpd_check_pendingオペランドの指定値をNOUSEからUSEに変更した場合，参照制約又は検査制約の制約の整合性が不明確なとき。

システム定義のpd_check_pendingオペランドを指定していないシステムで，バージョン07-03以降のHiRDBにバージョンアップした場合に，参照制約又は検査制約の整合性が不明確なとき。

一時的に，ユーザが表を操作できないように規制する場合。

整合性チェックの結果，制約違反があった場合に，検査保留状態の強制解除で検査保留状態を解除して，SQLで制約違反となったデータを修正した後，再度整合性チェックをするとき。

検査保留状態の強制解除

検査保留状態の強制解除は，表の検査保留状態を強制的に非検査保留状態に設定する（検査保留状態を解除する）機能です。この機能を使用する場合は，-k releaseを指定します。

検査保留状態の強制解除は，次の場合に適用します。

ユーザ側で制約の整合性を確認できていて，整合性チェックが不要な場合など，強制的に検査保留状態を解除し運用する場合。

参照制約で違反した行を，SQLで参照表の外部キーの更新又は削除によって修正する場合。

検査制約で違反した行をSQLで修正する場合。

(2)　検査保留状態の強制変更機能の実行単位

検査保留状態の強制変更は，表に定義された参照制約及び検査制約のすべての制約を更新対象とする「表単位」，又は一つの制約だけを更新対象とする「制約単位」に実行できます。なお，インナレプリカ機能を使用して表単位に実行する場合，オリジナルRDエリア及びレプリカRDエリアを作成したすべての世代を対象とする「全世代単位」，一つの世代だけを対象とする「世代単位」，及びカレントRDエリアの世代を対象とする「カレントRDエリアの世代単位」に実行できます。なお，制約単位で実行する場合は，全世代単位で実行します。

検査保留状態の強制変更を実行すると，ディクショナリ表の検査保留状態の情報が変更されます。ディクショナリ表の検査保留状態の変更箇所を次の表に示します。

表13‒21　ディクショナリ表の検査保留状態の変更箇所（インナレプリカ機能を使用しない場合）

実行単位

-cオプションの指定

表の制約

ディクショナリ表の検査保留状態の変更箇所

参照制約

検査制約

SQL_TABLES表

SQL_REFERENTIAL_CONSTRAINTS表

SQL_CHEKS表

CHECK_PEND列

CHECK_PEND2列

CHECK_PEND列

CHECK_PEND2列

表単位

該当しません

なし

あり

−

○

−

○※1

あり

なし

○

−

○※1

−

あり

あり

○

○

○※1

○※1

制約単位

参照制約

あり

なし

○

−

○※2

−

あり

あり

○

−

○※2

−

検査制約

なし

あり

−

○

−

○※2

あり

あり

−

○

−

○※2

（凡例）

○：検査保留状態を変更します。

−：検査保留状態を変更しません（現在の状態を維持します）。

注※1　

表に定義されたすべての参照制約又は検査制約の検査保留状態を変更します。

注※2　

-cオプションに指定した制約だけ検査保留状態を変更します。

表13‒22　ディクショナリ表の検査保留状態の変更箇所（インナレプリカ機能を使用する場合）

実行単位

-cオプションの指定

表の制約

ディクショナリ表の検査保留状態の変更箇所

参照制約

検査制約

SQL_TABLES表

SQL_REFERENTIAL_CONSTRAINTS表

SQL_CHEKS表

CHECK_PEND列

CHECK_PEND2列

CHECK_PEND列

CHECK_PEND2列

全世代単位，世代単位，又はカレントRDエリアの世代単位

該当しません

なし

あり

−

○

−

○※1

あり

なし

○

−

○※1

−

あり

あり

○

○

○※1

○※1

制約単位

参照制約

あり

なし

○

−

○※2

−

あり

あり

○

−

○※2

−

検査制約

なし

あり

−

○

−

○※2

あり

あり

−

○

−

○※2

（凡例）

○：検査保留状態を変更します。

−：検査保留状態を変更しません（現在の状態を維持します）。

注※1　

表に定義されたすべての参照制約又は検査制約の検査保留状態を変更します。

注※2　

-cオプションに指定した制約だけ検査保留状態を変更します。

RDエリア中の表情報の検査保留状態の変更箇所を次の表に示します。

表13‒23　RDエリア中の表情報の検査保留状態の変更箇所（インナレプリカ機能を使用しない場合）

実行単位

-cオプションの指定

表の制約

RDエリア中の表情報の検査保留状態の変更箇所

参照制約

検査制約

参照制約の状態

検査制約の状態

表単位

該当しません

なし

あり

−

○

あり

なし

○

−

あり

あり

○

○

制約単位

参照制約

あり

なし

○

−

あり

あり

○

−

検査制約

なし

あり

−

○

あり

あり

−

○

（凡例）

○：検査保留状態を変更します。なお，対象となるレプリカRDエリアがない場合は「−」となります。

−：検査保留状態を変更しません（現在の状態を維持します）。

表13‒24　RDエリア中の表情報の検査保留状態の変更箇所（インナレプリカ機能を使用する場合）

実行単位

-cオプション指定制約

表の制約

RDエリア中の表情報の検査保留状態の変更箇所※2

参照制約

検査制約

世代0（オリジナルRDエリア）

世代1（レプリカRDエリア）

世代n（レプリカRDエリア）

参照制約の状態

検査制約の状態

参照制約の状態

検査制約の状態

参照制約の状態

検査制約の状態

全世代単位

該当しません

なし

あり

−

○

−

○

−

○

あり

なし

○

−

○

−

○

−

あり

あり

○

○

○

○

○

○

世代単位※1

該当しません

なし

あり

−

−

−

○

−

−

あり

なし

−

−

○

−

−

−

あり

あり

−

−

○

○

−

−

カレントRDエリアの世代

該当しません

なし

あり

−

−

−

−

−

○

あり

なし

−

−

−

−

○

−

あり

あり

−

−

−

−

○

○

制約単位

参照制約

あり

なし

○

−

○

−

○

−

あり

あり

○

−

○

−

○

−

検査制約

なし

あり

−

○

−

○

−

○

あり

あり

−

○

−

○

−

○

（凡例）

○：検査保留状態を変更します。なお，対象となるレプリカRDエリアがない場合は「−」となります。

−：検査保留状態を変更しません（現在の状態を維持します）。

注※1　-q 1を指定します（1世代を指定）。

注※2　表を格納するすべてのRDエリアが該当します（オリジナルRDエリア又はレプリカRDエリア）。

(a)　表単位

表単位の場合，定義された参照制約又は検査制約のすべてを変更対象とします。表単位で実行する場合は，-tオプションを指定します。

表単位は次の場合に適用します。

表に定義された参照制約及び検査制約のすべての制約について，1回のpdconstckで検査保留状態を変更する場合。

インナレプリカ機能使用時に表単位で実行する場合は，更に次の単位でも実行できます。

全世代単位

表に定義された参照制約又は検査制約すべての制約について，表を格納するオリジナルRDエリア，及びレプリカRDエリアを作成したすべての世代を変更対象とします。適用基準は表単位と同じです。全世代単位に実行する場合は，-q allを指定します。

世代単位

表に定義された参照制約又は検査制約すべての制約について，制約ごとに，-qオプションで指定した世代を変更対象とします。世代単位に実行する場合は，-qオプションで世代番号を指定します。

世代単位は，特定の世代だけ検査保留状態を変更する場合に適用します。

カレントRDエリアの世代単位

表に定義された参照制約又は検査制約すべての制約について，制約ごとに，カレントRDエリアの世代を変更対象とします。カレントRDエリアの世代単位に実行する場合は，-qオプションを省略してください。

カレントRDエリアの世代単位は，pdloadなどをカレントRDエリアの世代に対して実行し，表が検査保留状態となった場合，カレントRDエリアの世代だけの検査保留状態を解除するときに適用します。

(b)　制約単位

表に定義された参照制約又は検査制約のうち，一つの制約だけ変更対象とします。制約単位に実行する場合，-cオプションを指定します。また，インナレプリカ機能を使用している場合，表を格納するオリジナルRDエリア及びレプリカRDエリアを作成したすべての世代を変更対象とします。

制約単位は，個々の制約について検査保留状態を変更する場合に適用します。

(3)　検査保留状態の強制設定

表の検査保留状態，制約の検査保留状態，及びRDエリアの検査保留状態を検査保留状態に設定します。

(4)　検査保留状態の強制解除

表の検査保留状態，制約の検査保留状態，及びRDエリアの検査保留状態を非検査保留状態に設定します。なお，pdconstckの実行単位，表の検査保留状態，制約の検査保留状態，及びRDエリアの検査保留状態によって，設定内容（解除可否）が変わります。実行単位ごとの説明を次に示します。

(a)　インナレプリカ機能を使用しない場合

表単位での検査保留状態の強制解除

表単位の場合，無条件に表の検査保留状態，制約の検査保留状態，及びRDエリアの検査保留状態を非検査保留状態に設定します。

制約単位での検査保留状態の強制解除

制約単位の場合，-cオプションで指定した制約の検査保留状態を非検査保留状態に設定します。また，ほかの制約の検査保留状態によって，表及びRDエリアの検査保留状態は変わらないこともあります。検査保留状態の遷移を次の表に示します。

表13‒25　制約単位での検査保留状態の遷移（検査保留状態の強制解除）

条件

検査保留状態（表及びRDエリア）

-cオプションに指定した制約以外の制約が定義されている場合

検査保留状態の制約があるとき

遷移なし

すべての制約が非検査保留状態のとき

非検査保留状態

-cオプションに指定した制約だけ表に定義されている場合

非検査保留状態

(b)　インナレプリカ機能を使用する場合

全世代単位での検査保留状態の強制解除

全世代単位の場合，無条件に表の検査保留状態，制約の検査保留状態，及びRDエリアの検査保留状態を非検査保留状態に設定します。

世代単位又はカレントRDエリアの世代単位での検査保留状態の強制解除

世代単位又はカレントRDエリアの世代単位の場合，-qオプションに指定した世代のRDエリアの検査保留状態を，非検査保留状態に設定します。また，他世代のRDエリアの検査保留状態によって，表の検査保留状態，及び制約の検査保留状態を非検査保留状態に設定します。表の検査保留状態，及び制約の検査保留状態の遷移を次の表に示します。

表13‒26　世代単位又はカレントRDエリアの世代単位の検査保留状態の遷移（検査保留状態の強制解除）

条件

検査保留状態の遷移

-qオプションに指定した世代以外のRDエリアの検査保留状態

表の検査保留状態

制約の検査保留状態

検査保留状態の世代あり

遷移なし

遷移なし

すべての世代が非検査保留状態

非検査保留状態

非検査保留状態

制約単位での検査保留状態の強制解除

制約単位（全世代単位）の場合は，インナレプリカ機能を使用しない場合と同様です。

13.3　使用例

pdconstckの使用例を次に示します。

13.3.1　表単位での整合性チェック

表T2に定義されたすべての制約（CST1及びCST2）に対して，整合性チェックをします。なお，表T2は検査保留状態になっていると仮定します。
・表定義
T1:  CREATE TABLE T1(C1 INT PRIMARY KEY)
T3:  CREATE TABLE T3(C2 INT PRIMARY KEY)
T2:  CREATE TABLE T2(C1 INT, C2 INT,
                    CONSTRAINT CST1 FOREIGN KEY (C1) REFERENCES T1,
                    CONSTRAINT CST2 FOREIGN KEY (C2) REFERENCES T3)

［概要］

●実行するコマンド

  pdconstck -k check -t T2

［説明］

-k check：整合性チェック機能の実行

-t T2：整合性チェック機能の対象となる表名の指定

13.3.2　制約単位での整合性チェック

表T2に定義された制約（CST2）の整合性チェックをします。なお，表定義は前述の例と同じで，表T2は検査保留状態となっていると仮定します。

［概要］

●実行するコマンド

  pdconstck -k check -c CST2

［説明］

-k check：整合性チェック機能の実行

-c CST2：整合性チェック機能の対象となる制約名の指定

13.3.3　表単位での検査保留状態の強制設定

表T2に定義されたすべての制約（CST1，CST2）を検査保留状態に設定します。なお，表T2は非検査保留状態になっていると仮定します。
・表定義
  T1:  CREATE TABLE T1(C1 INT PRIMARY KEY)
  T2:  CREATE TABLE T2(C1 INT, C2 INT,
                         CONSTRAINT CST1 FOREIGN KEY (C1) REFERENCES T1,
                         CONSTRAINT CST2 CHECK (c2 > 10))

［概要］

●実行するコマンド

  pdconstck -k set -t T2

［説明］

-k set：検査保留状態の強制設定機能の実行

-t T2：検査保留状態の強制設定機能の対象となる表名の指定

13.3.4　制約単位での検査保留状態の強制解除

表T2の制約（CST2）の検査保留状態を強制解除します。なお，表定義は前述の例と同じで，制約（CST2）は検査保留状態になっていると仮定します。

［概要］

●実行するコマンド

  pdconstck -k release -c CST2

［説明］

-k release：検査保留状態の強制解除機能

-c CST2：検査保留状態の強制解除機能の対象となる制約名の指定

13.4　コマンドの形式

13.4.1　形式

pdconstck -k ｛check｜set｜release｝
　　　　　｛-t 〔認可識別子.〕表識別子
　　　　　　｜-c 〔認可識別子.〕制約名｝
　　　　　〔-u 認可識別子〕
　　　　　〔-o 処理結果ファイル名〕
　　　　　〔-q ｛世代番号｜all｝〕
　　　　　〔-w 制約違反キー値の出力数上限値〕
　　　　　〔-x 整合性チェックの実行監視時間〕

13.4.2　オプション

(1)　-k ｛check｜set｜release｝

pdconstckの機能を指定します。

check

整合性チェック機能を使用する場合に指定します。

set

検査保留状態の強制変更機能（検査保留状態の強制設定）を使用する場合に指定します。

release

検査保留状態の強制変更機能（検査保留状態の強制解除）を使用する場合に指定します。

(2)　-t 〔認可識別子.〕表識別子

　　　〜＜識別子＞

処理対象とする参照表又は検査制約表の表識別子を指定します。

認可識別子を省略した場合は，HiRDBに接続したときのユーザの認可識別子が仮定されます。HiRDBに接続したときのユーザの認可識別子ついては，「pdconstck実行時の認可識別子」を参照してください。

＜適用基準＞

整合性チェック機能，又は検査保留状態の強制変更機能を，表単位に実行する場合に指定します。

＜規則＞

参照制約（外部キー），又は検査制約が定義されている表だけ指定できます。

ビュー表は指定できません。

認可識別子，又は表識別子を引用符（"）で囲んだ場合，英大文字と英小文字が区別されます。引用符で囲んでいない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Kシェル）の場合は，更にアポストロフィ（'）で囲みます。

(3)　-c 〔認可識別子.〕制約名

　　　〜＜識別子＞

処理対象とする制約の制約名を指定します。

認可識別子を省略した場合は，HiRDBに接続したときのユーザの認可識別子が仮定されます。HiRDBに接続したときのユーザの認可識別子ついては，「pdconstck実行時の認可識別子」を参照してください。

＜適用基準＞

整合性チェック機能，又は検査保留状態の強制変更機能を，制約単位に実行する場合に指定します。

＜規則＞

認可識別子，又は制約名称を引用符（"）で囲んだ場合，英大文字と英小文字が区別されます。引用符で囲んでない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Kシェル）の場合は，更にアポストロフィ（'）で囲みます。

(4)　-u 認可識別子

　　　〜＜識別子＞

HiRDBに接続する認可識別子を指定します。

このオプションを指定した場合，パスワード入力要求の応答付きメッセージが表示されます。パスワードが不要な場合には，応答付きメッセージに対して空送信してください。このオプションを省略した場合の認可識別子，及びパスワードの仮定値については，「pdconstck実行時の認可識別子」を参照してください。

＜適用基準＞

環境変数PDUSERに設定されている認可識別子ではなく，別の認可識別子でHiRDBに接続する場合に指定します。

＜規則＞

認可識別子を引用符（"）で囲んだ場合は，英大文字と英小文字が区別されます。引用符で囲んでない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Kシェル）の場合は，更にアポストロフィ（'）で囲みます。

＜注意事項＞

シェルで&を付けてバックグラウンドで実行する場合や，リモートシェル環境で実行する場合など，パスワードの応答ができない環境で実行するときは，必ずPDUSERを設定してください。

(5)　-o 処理結果ファイル名

　　　〜＜パス名＞

処理結果を出力する処理結果ファイルのファイル名を指定します。

＜適用基準＞

意図したディレクトリに処理結果ファイルを作成したい場合に指定します。

＜規則＞

pdconstckを実行するホスト上のパス名を指定します。

パス名に指定したファイル（上位ディレクトリ）には，pdconstck実行者から書き込み権限が与えられている必要があります。

＜省略時仮定値＞

このオプションを省略した場合，次のファイル名で処理結果ファイルが作成されます。

処理結果ファイルが作成されるディレクトリ

/tmpディレクトリ

処理結果ファイルのファイル名

CONSTCK-REPORT-表名称-xxxxxxxxx

表名称：

-tオプションに指定した表識別子，又は-cオプションに指定した制約が定義されている表識別子（1〜30文字）

xxxxxxxxx：

OS関数（tmpnam関数）で得られたユニークな文字（9文字）

(6)　-q ｛世代番号｜all｝

　　　〜＜符号なし整数＞((1〜10))

インナレプリカ機能を使用している場合，処理対象とする世代を指定します。

0：オリジナルRDエリアを対象とする場合に指定します。

1〜10：指定した世代のレプリカRDエリアを対象とする場合に指定します。

all：オリジナルRDエリア及び全世代のレプリカRDエリアを対象とする場合に指定します。

＜適用基準＞

このオプションは，インナレプリカ機能を使用している場合で，世代ごとに整合性チェック機能，又は検査保留状態の強制変更機能を実行するときに指定します。

＜規則＞

インナレプリカ機能を使用している場合だけ，このオプションを指定できます。

-cオプションを指定している場合，世代番号は指定できません（allだけ指定できます）。

-tオプションで指定した表，又は-cオプションで指定した制約が定義された表の，表格納用RDエリアに対応するレプリカRDエリアが定義されている世代番号だけ指定できます。

インナレプリカ機能使用時にこのオプションを省略した場合の仮定値を次に示します。

-tオプション指定

-cオプション指定

仮定値

あり

なし

カレントRDエリアの世代

なし

あり

all

(7)　-w 制約違反キー値の出力数上限値

　　　〜＜符号なし整数＞((1〜30000))≪60≫

整合性チェック機能では，制約違反となったキー値を処理結果ファイルに出力します。このオプションでは，制約違反となったキー値の数について，制約ごと（インナレプリカ機能を使用する場合は世代ごと）に出力する件数の上限値を指定します。

＜適用基準＞

制約違反となったキー値の出力を抑止し，ファイル容量を削減したい場合に指定します。

＜規則＞

制約違反となったキー値は，重複排除して出力されます。ただし，検査制約の場合に，検査制約に関連する列のデータ型がBLOB又はBINARYの列を含む場合は，重複排除しません。

制約違反となったキー値の数が指定値，又は仮定値を超えた場合，以降の制約違反となったキー値は，処理結果ファイルに出力されません。また，該当する制約（該当する世代）の整合性チェックを中止して，次の制約（世代）の整合性チェックをします。

(8)　-x 整合性チェックの実行監視時間

　　　〜＜符号なし整数＞((0〜65535))≪0≫

整合性チェックの前処理，及び1制約（1世代）に対する整合性チェックの実行監視時間を秒単位で指定します。整合性チェックの前処理，又は1制約（1世代）に対する整合性チェックの実行時間が，このオプションで指定した実行監視時間を超えた場合，次のどちらかのメッセージを出力してpdconstckはリターンコード8で終了します。

KFPL24512-E（整合性チェックの前処理）

KFPA11732-E（1制約（1世代）に対する整合性チェック）

＜適用基準＞

次のような障害が発生すると，pdconstckが無応答状態になることがあるため，運用上，実行時間の監視が必要な場合にこのオプションを指定してください。

通信障害（pdconstckとHiRDBサーバ，及びHiRDBサーバ間の通信障害）

ディスク障害などでのプロセスの沈み込み

＜規則＞

システム定義のpd_lck_wait_timeoutオペランドと-xオプションとの組み合わせによって，pdconstckの動作が変わります。組み合わせとpdconstckの動作を次に示します。

pd_lck_wait_timeoutオペランドの指定値

-xオプションの指定値

pdconstckの動作

0

0

HiRDBサーバから応答が返るまで待ち続けます。

上記以外

-xオプションの指定値を超えた場合，リターンコード8で終了します。

上記以外

0

pd_lck_wait_timeoutオペランドの指定値を超えた場合，リターンコード8で終了します。

pd_lck_wait_timeoutオペランドの指定値より小さい

-xオプションの指定値を超えた場合，リターンコード8で終了します。

pd_lck_wait_timeoutオペランドの指定値と同じ

pd_lck_wait_timeoutオペランドの指定値を超えた場合，リターンコード8で終了します。

pd_lck_wait_timeoutオペランドの指定値より大きい

13.5　処理結果

pdconstckの処理結果を次に示します。

13.5.1　pdconstckの処理結果

pdconstckの処理結果には，整合性チェックの処理結果，及び検査保留状態の情報が出力されます。pdconstckの処理結果を次に示します。

            [1]                                  [2]       [3]
 pdconstck VV-RR *** DB VALIDATION CHECK *** yyyy-mm-dd hh:mm:ss
 整合性チェックの処理結果 [4]
 検査保留状態の情報 [5]
 pdconstck TERMINATED, RETURN CODE=0[6]

［説明］

HiRDBのバージョン番号

pdconstck開始日付

pdconstck開始時刻

整合性チェックの処理結果

検査保留状態の情報

pdconstckのリターンコード

13.5.2　整合性チェックの処理結果

整合性チェックの処理結果には，整合性チェック機能の実行結果が出力されます。この情報は，-k checkを指定した場合に出力されます。

整合性チェックの処理結果の出力例を次に示します。

 ** DB VALIDATION CHECK INFORMATION **
 参照制約の整合性チェックの処理結果 [1]
 検査制約の整合性チェックの処理結果 [2]

［説明］

参照制約の整合性チェックの処理結果

検査制約の整合性チェックの処理結果

検査制約の整合性チェックを実行した処理結果が出力されます。この情報は，-tオプションを指定した場合，表に検査制約が定義されている場合，又は-cオプションに検査制約の制約名を指定した場合に出力されます。

(1)　参照制約の整合性チェックの処理結果

参照制約の整合性チェックの処理結果は，-tオプションを指定して表に参照制約が定義されている場合，又は-cオプションに参照制約の制約名を指定した場合に，制約名の順に出力されます。

参照制約の整合性チェックの処理結果の出力例を次に示します。

   　 ** REFERENTIAL CONSTRAINT INFORMATION **
   　 CONSTRAINT    = SCHEMA1.CONST1 [1]
   　 REFERENCED  TABLE = SCHEMA1.P1 [2]
   　 REFERENCING TABLE = SCHEMA1.F1 [3]
   　 [5]              [6]
[4]┌ NO.  FOREIGN KEY COLUMN NAME
   │ ---- ------------------------------
   │  1   COL1
   └  2   COL2

   　 実行結果  [7]

［説明］

制約名（認可識別子.制約名）

被参照表の表名称（認可識別子.表識別子）

参照表の表名称（認可識別子.表識別子）

外部キーの列情報

定義順番

列名（外部キー構成列の定義順）

実行結果

整合性チェックをした制約の実行結果です。整合性チェックをしなかった制約については出力されません。

インナレプリカ機能を使用しない場合は一つ，インナレプリカ機能を使用している場合は整合性チェックを実行した世代について，オリジナルRDエリアの世代，1世代から10世代の順番で出力されます。参照制約の整合性チェックの結果，違反するキーがなかった場合の実行結果，及び違反するキーがあった場合の実行結果の出力例を次に示します。

違反するキーがなかった場合の実行結果

 GENERATION    = 0 [1]
 NO ERROR FOREIGN KEY [2]

［説明］

整合性をチェックした世代番号

インナレプリカ機能を使用しない場合は出力されません。カレントRDエリア単位に実行した場合は「CUR」が出力されます。

違反する外部キーがないことを示す情報

違反するキーがあった場合の実行結果

   　 GENERATION    = 0 [1]
   　 [3]          [4]
[2]┌ NO.   ERROR FOREIGN KEY
   │----- -----------------
   │   1   1234567890
   │       tanaka
   │   2   777
   └       yamada
   　 PROCESSING DISCONTINUED [5]
   　 EXIST ERROR FOREIGN KEY [6]

［説明］

整合性を検査した世代番号

インナレプリカ機能を使用しない場合は出力されません。カレントRDエリア単位に実行した場合は「CUR」が出力されます。

違反キー値の情報（外部キーが参照する主キーのキー順）

違反キーの通番（1から昇順）

外部キーの列名順に違反キーが出力されます。外部キーの構成列が複数ある場合は，最初のキー値だけ出力されます。

違反キーの値

違反キー値は既定文字集合の文字形式で出力されます（文字集合が指定された文字データ型の場合は，既定文字集合に変換して出力されます）。

なお，文字データ型の場合は，違反キー値の先頭から最大70バイト分だけ出力されます。各国文字が71バイト目になる場合は，その各国文字は出力されません。

整合性チェックの処理の中止を示す情報

違反する外部キーがあることを示す情報

(2)　検査制約の整合性チェックの処理結果

検査制約の整合性チェックの処理結果は，-tオプションを指定して表に検査制約が定義されている場合，又は-cオプションに検査制約の制約名を指定した場合に出力されます。

検査制約の整合性チェック処理結果の出力例を次に示します。

   　 ** CHECK CONSTRAINT INFORMATION **
   　 CONSTRAINT = SCHEMA1.CONST2 [1]
   　 TABLE      = SCHEMA1.TABLE1 [2]
   　 [4]            [5]
[3]┌ NO.    CHECK KEY COLUMN NAME
   │ ---- ------------------------------
   │  1   COL1
   └  2   COL2

   　 実行結果 [6]

［説明］

制約名（認可識別子.制約名）

表名（認可識別子.表識別子）

探索条件中の列情報（ディクショナリ表SQL_CHECK_COLUMNSの格納順）

列情報の通番

列名

実行結果

整合性チェックをした制約の実行結果です。整合性チェックをしなかった制約については出力されません。

インナレプリカ機能を使用しない場合は一つ，インナレプリカ機能を使用している場合は整合性チェックを実行した世代について，オリジナルRDエリアの世代，1世代から10世代の順番で出力されます。

検査制約の整合性チェックの結果，違反するキーがなかった場合の実行結果，及び違反するキーがあった場合の実行結果の出力例を次に示します。

違反するキーがなかった場合の実行結果

 GENERATION    = 0 [1]
 NO ERROR CHECK KEY [2]

［説明］

整合性を検査した世代番号

インナレプリカ機能を使用しない場合は出力されません。カレントRDエリ単位に実行した場合は「CUR」が出力されます。

違反する外部キーがないことを示す情報

違反するキーがあった場合の実行結果

   　 GENERATION    = 0 [1]
   　 [3]          [4]
[2]┌ NO.   ERROR CHECK KEY
   │----- -----------------
   │   1   1234567890
   │       tanaka
   │   2   777
   └       yamada
   　 PROCESSING DISCONTINUED [5]
   　 EXIST ERROR CHECK KEY [6]

［説明］

整合性を検査した世代番号

インナレプリカ機能を使用しない場合は出力されません。カレントRDエリ単位に実行した場合は「CUR」が出力されます。

違反キーの値（検査制約の整合性チェック順）

違反キーの通番（1から昇順）

違反キーの値

違反キー値は既定文字集合の文字形式で出力されます（文字集合が指定された文字データ型の場合は，既定文字集合に変換して出力されます）。

検査制約を構成する列のデータ型がBLOB及びBINARYの場合，違反キー値は16進数文字形式で，違反キー値の先頭から最大35バイト分だけ出力されます。検査制約を構成する列のデータ型がBLOB型及びBINARY型以外の場合は，違反キー値は文字形式で出力されます。

なお，文字データ型の場合は，違反キー値の先頭から最大70バイト分だけ出力されます。各国文字が71バイト目になる場合は，その各国文字は出力されません。

整合性チェックの処理の中止を示す情報

違反する外部キーがあることを示す情報

13.5.3　検査保留状態情報

-kオプションの指定に関係なく，表の検査保留状態，及び制約の検査保留状態が出力されます。検査保留状態情報の出力例を次に示します。なお，各RDエリアの検査保留状態は出力されません。各RDエリアの検査保留状態については，pddbstのRDエリア単位の状態解析（論理的解析），又は表単位の状態解析で確認してください。

 ** CHECK PENDING STATUS INFORMATION **
                                                [2]            [3]
 TABLE                                   CONSTRAINT TYPE PENDING STATUS
 SCHEMA1.T5 [1]
                                         REFERENCE       PENDING
                                         CHECK           RELEASE
                                                [2]            [3]
 CONSTRAINT                              CONSTRAINT TYPE PENDING STATUS
 SCHEMA1.CONST1 [4]                      REFERENCE       PENDING
 SCHEMA2.CONST2 [4]                      CHECK           RELEASE

［説明］

表名

制約の種別

REFERENCE：参照制約（参照制約が定義されていない場合は出力されません）

CHECK：検査制約（検査制約が定義されていない場合は出力されません）

検査保留状態

PENDING：検査保留状態

RELEASE：非検査保留状態

制約名

該当表に定義している参照制約，検査制約の順で，かつ制約名の昇順に出力されます。

13.6　注意事項

pdconstckのリターンコードの意味と対処方法を次の表に示します。

表13‒27　pdconstckのリターンコードの意味と対処方法

リターンコード

意味

対処方法

0

正常終了しました。

なし。

4

正常終了しましたが，整合性チェックの結果，整合性を満たさない制約がありました（制約違反となったキー値の数が上限値を超えて，制約の整合性チェックを中止した場合も含みます）。

検査保留状態となっている制約の整合性を修正して，再実行してください。

8

異常終了しました。

必要に応じて，エラーの原因を取り除いて，再実行してください。

注

KFPL50001-Iメッセージでリターンコードが0又は4を出力後，pdconstckの終了処理で異常が発生した場合，リターンコードは8ではなく，0又は4が出力されます。

セキュリティ監査機能使用時にpdconstckを実行した場合，実行後のリターンコードによって取得される監査証跡が異なります。

0又は4の場合：

CREATE AUDITのWHENEVERにSUCCESSFUL又はANYを指定している場合，監査証跡が取得されます。

8の場合：

CREATE AUDITのWHENEVERにUNSUCCESSFUL又はANYを指定している場合，監査証跡が取得されます。

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdconstckで出力されるファイルにはBOMは付きません。

14　統計解析ユティリティ（pdstedit）

この章では，HiRDBシステムの稼働情報などの統計情報を編集する統計解析ユティリティ（pdstedit）について説明します。

14.1　概要

14.1.1　統計解析ユティリティ（pdstedit）の概要

実行者　HiRDB管理者が実行できます

統計解析ユティリティは，統計入力アンロードファイル，及びシステムログファイルから情報を入力し，統計情報を編集するユティリティです。

HiRDBシステムの処理効率を向上させるには，データベースを最適に設計する必要があり，その際にはHiRDBシステムの稼働状況が容易に分かると便利です。

統計解析ユティリティを使用すれば，編集開始位置と終了位置を指定することで必要な統計情報だけを編集，出力できます。ユーザは，この統計情報を解析することでHiRDBシステムの稼働状況を知ることができます。また，標準出力には統計情報の編集結果を出力し，DAT形式ファイルには編集前の統計情報を出力します。したがって，DAT形式ファイルの情報を利用し，ユーザ任意の統計レポートも作成できます。

統計解析ユティリティ（pdstedit）の概要を次の図に示します。

図14‒1　統計解析ユティリティ（pdstedit）の概要

(1)　統計情報の基になるファイル

統計解析ユティリティが入力するファイルには，次に示す三つのファイルがあります。

・アンロード統計ログファイル

統計ログファイルをアンロードしたファイルのことをいいます。OSのcpコマンド又はHiRDBが提供するシェルスクリプト（pdstjacm）でアンロード統計ログファイルを作成します。

・アンロードログファイル

システムログファイルをアンロードしたファイルのことをいいます。

・システムログのファイルグループ

システムログファイルの論理的な単位のことをいいます。統計解析ユティリティを起動するホストから参照できる，物理ファイルを持つファイルグループが入力対象となります。

(2)　統計情報の種類

統計解析ユティリティが編集する統計情報の種類を次の表に示します。なお，統計情報（CONNECT/DISCONNECTに関する統計情報を除く）は，システム定義のpdstbeginオペランドを指定するか，又はpdstbeginコマンドを実行すると取得されます。CONNECT/DISCONNECTに関する統計情報は，システム定義のpdhibegin -k cncオペランドを指定して取得します。

表14‒1　統計解析ユティリティが編集する統計情報の種類

統計情報の種別

概要

システムの稼働に関する統計情報

HiRDBシステムでのプロセス，RPC，ログなど，システムの稼働に関する稼働情報を，HiRDBシステム単位及びサーバ単位に編集し，出力します。

UAPに関する統計情報※１

検索行数，各SQL実行回数など，UAPに関する情報を，編集時間単位に編集し，UAP又はサービスごとに出力します。

SQLに関する統計情報※１

検索行数，作業表作成回数，SQL内分割コマンドを発行したバックエンドサーバ数など，SQLの発行に関する情報をUAP又はサービスごとに編集し，出力します。

グローバルバッファに関する統計情報※２

バッファヒット率，実入出力回数など，グローバルバッファのアクセスに関する情報を，編集時間単位に編集し，サーバ単位及びグローバルバッファ単位に出力します。

データベース操作に関するHiRDBファイルの統計情報※２

同期入出力回数，入出力エラー回数など，HiRDBファイルへのアクセスに関する情報を編集時間単位に編集し，サーバ単位，HiRDBファイル単位，及びRDエリア単位に出力します。

デファードライト処理に関する統計情報

デファードライト処理の回数，動作要因，入出力並列度など，デファードライト処理に関する情報を編集時間単位に編集し，サーバ単位に出力します。

インデクスに関する統計情報※３

統計ログ及びシステムログを基にして，インデクスキー排他情報，インデクススプリット情報など，インデクスに関する情報を編集時間単位に編集し，サーバ単位及びインデクス単位に出力します。なお，この情報は，DAT形式ファイルには出力されません。

SQL静的最適化に関する統計情報

SQLの静的最適化情報を出力します。なお，この情報は，DAT形式ファイルにだけ出力します。

SQL動的最適化に関する統計情報

SQLの動的最適化情報を出力します。なお，この情報は，DAT形式ファイルにだけ出力します。

SQLオブジェクト実行に関する統計情報

SQLオブジェクトの実行情報を出力します。なお，この情報は，DAT形式ファイルにだけ出力します。

SQL文の履歴に関する統計情報

発行された操作系SQL，定義系SQL，及びLOCK文の情報，並びにSQLに関する情報を出力します。なお，この情報は，DAT形式ファイルにだけ出力します。

CONNECT/DISCONNECTに関する統計情報※４

CONNECT/DISCONNECTに関する情報を出力します。なお，この情報は，DAT形式ファイルにだけ出力します。

SQLオブジェクト転送に関する統計情報

SQLオブジェクトの転送情報を出力します。なお，この情報は，DAT形式ファイルにだけ出力します。

データベースの入出力に関する統計情報

データベースの入出力に関する統計情報を出力します。なお，この情報は，DAT形式ファイルにだけ出力します。

注※1

UAPに関する統計情報とSQLに関する統計情報は，pdstbegin，pdstendコマンドを入力するタイミングによっては情報が一致しない場合があります。また，UAPから実際に発行しているSQLの数と表示する数とが一致しない場合があります。

注※2

-tオプションの時間範囲内にシンクポイントが発生していない場合又はシンクポイントが1回だけ発生している場合，その時間帯に対しての情報は出力されません。このような場合には，-tオプションの時間範囲を大きく設定する必要があります。

注※3

インデクスに関する統計情報の，インデクススプリットの情報は，アンロードログファイル，又はシステムログのファイルグループから情報を取得します。したがって，インデクススプリットの情報を編集したい場合は，アンロードログファイル，又はシステムログのファイルグループを入力としてください。そのほかの情報はアンロード統計ログファイルから情報を取得します。

注※4

CONNECT/DISCONNECTに関する統計情報は，アンロードログファイル，又はシステムログのファイルグループから情報を取得します。このため，アンロードログファイル，又はシステムログのファイルグループを入力としてください。なお，この統計情報は，システム定義のpdhibegin -k cncオペランドを指定した場合，シングルサーバ，又はフロントエンドサーバがあるサーバに出力されます。

(3)　統計解析ユティリティ実行時の条件

統計解析ユティリティは，HiRDBの稼働に関係なく実行できます。

統計解析ユティリティは，任意のサーバマシンで実行してください。

14.2　コマンドの形式

14.2.1　形式

pdstedit 〔-k 編集項目〔，編集項目〕…〕
　　　　〔-m 時間間隔〕
　　　　〔-t 〔開始時刻〕〔，終了時刻〕〕
　　　　〔-u UAP名〔，UAP名〕…〕
　　　　〔-x ホスト名〔，ホスト名〕…〕
　　　　〔-s サーバ名〔，サーバ名〕…〕
　　　　〔-i ｛統計入力アンロードファイル名｜HiRDBファイルシステム領域名｜統計入力アンロードファイル格納ディレクトリ名｝〕
　　　　〔-o DAT形式ファイル出力先ディレクトリ名〕
　　　　〔-w ワーク用一時ファイル作成ディレクトリ名〕
　　　　〔-d 制御文ファイル名〕
　　　　〔-b〕
　　　　〔-e 拡張フォーマット指定値〔，拡張フォーマット指定値〕〕
　　　　〔-y〕

14.2.2　オプション

(1)　-k 編集項目〔，編集項目〕…

　　　〜《sys》

編集する項目を指定します。

sop，dop，pcd，obj，sqh，cnc，及びdioを指定した場合，必ず-oオプションも指定してください（指定しなかった場合はエラーとなります）。

sop，dop，pcd，obj，sqh，cnc，及びdioを指定した場合，DAT形式ファイルには統計情報を出力しますが，統計情報の編集出力はしません。また，allを指定して-oオプションを指定しなかった場合，エラーにはならないで処理は続行します。

sys：

システムの稼働に関する統計情報

svr：

サーバごとのシステムの稼働に関する統計情報

uap：

UAPに関する統計情報

sql：

SQLに関する統計情報

buf：

グローバルバッファプールに関する統計情報

fil：

データベース操作に関するHiRDBファイルの統計情報

dfw：

デファードライト処理に関する統計情報

idx：

インデクスに関する統計情報

sop：

SQL静的最適化に関する統計情報

dop：

SQL動的最適化に関する統計情報

pcd：

SQLオブジェクト実行に関する統計情報

obj：

SQLオブジェクト転送に関する統計情報

sqh：

SQL文の履歴に関する統計情報

cnc：

CONNECT/DISCONNECTに関する統計情報

dio：

データベースの入出力に関する統計情報

all：

上記のすべての統計情報（ただし，sop，dop，pcd，obj，sqh，cnc，及びdioについては，DAT形式ファイルへの出力だけとなります）

(2)　-m 時間間隔

　　　〜＜符号なし整数＞((1〜1440))《60》

統計情報を編集するときに，各統計情報の合計値を出す時間間隔を，分単位で指定します。ここで指定した時間間隔で各統計情報の合計値を出力します。

なお，標準出力に統計情報の編集結果を出力する場合に，このオプションの指定値が有効になります。DAT形式ファイルに出力する場合は，このオプションの指定は無視されます。

(a)　注意事項

このオプションには，統計情報を統計ログファイルに出力する間隔と同じ値か又は倍数での指定を推奨します。統計ログファイルに出力する間隔より小さい値を指定すると，該当する編集時間範囲内に解析対象のログレコードがない場合，NO DATAが出力されます。統計ログファイルに出力する間隔については，システム定義のpd_statistics，pdstbeginオペランド，及びpdstbeginコマンドを参照してください。

(3)　-t 〔開始時刻〕〔，終了時刻〕

統計情報の出力範囲を，ログレコードの出力時刻の開始時刻と終了時刻で指定します。開始時刻及び終了時刻の指定範囲は，1970年1月1日0時0分0秒から当年当月当日の現在時刻までです。

このオプションを省略した場合，統計入力アンロードファイル，及びシステムログファイル内のすべての統計情報が編集されます。

開始時刻を省略した場合，統計入力アンロードファイル，及びシステムログファイルの先頭から指定した終了時刻までが編集対象となります。終了時刻を省略した場合，指定した開始時刻から統計入力アンロードファイル，及びシステムログファイルの最後までが編集対象となります。

オプションフラグを指定した場合は，開始時刻か終了時刻のどちらかは必ず指定してください。

開始時刻及び終了時刻は，hhmmss〔MMDD〔YYYY〕〕の形式で指定してください。

hh：

時((00〜23))

mm：

分((00〜59))

ss：

秒((00〜59))

MM：

月((01〜12))

省略した場合，当月とみなされます。

DD：

日((01〜31))

省略した場合，当日とみなされます。また，その月にあり得ない日付を指定した場合（30日までの月に31日を指定するなど），その超過分の日数を繰り上げて，次の月の日付が指定されたものと判断します。

例えば，00000006312000と指定した場合，2000年7月1日0時0分0秒と判断します。

YYYY：

年((1970〜9999))

省略した場合，当年とみなされます。

(4)　-u UAP名〔，UAP名〕…

　　　〜＜文字列＞((1〜30))

UAPに関する統計情報，又はSQLに関する統計情報を編集する場合，編集対象とするUAP名（クライアント環境定義のPDCLTAPNAMEで指定したUAPの識別名称）を指定します。

UAP名は最大16個指定できます。省略した場合，-tオプションで指定した範囲のUAPに関する統計情報又はSQLに関する統計情報が編集されます。

(5)　-x ホスト名〔，ホスト名〕…

　　　〜＜識別子＞((1〜32))

編集対象のホストの名称を指定します。ホスト名は最大32個指定できます。省略した場合，標準ホスト名を指定して，すべてのホストが編集対象となります。なお，pdunitオペランドの-xオプションで指定したホスト名を変更した場合は，変更前と変更後の両方のホスト名が編集対象になります。統計情報は，変更前のホスト名と変更後のホスト名に分けて出力されます。

(6)　-s サーバ名〔，サーバ名〕…

　　　〜＜識別子＞((1〜8))

編集対象のサーバの名称を指定します。サーバ名は最大32個指定できます。省略した場合，すべてのサーバが編集対象となります。

(7)　-i ｛統計入力アンロードファイル名｜HiRDBファイルシステム領域名｜統計入力アンロードファイル格納ディレクトリ名｝

統計解析の入力情報となる統計入力アンロードファイルを指定します。

統計入力アンロードファイルは，pdsteditを実行するホストから参照できるファイルでなければなりません。なお，統計入力アンロードファイルとは，アンロード統計ログファイル又はアンロードログファイルのことをいいます。

このオプションを省略した場合，標準入力からの入力とみなされます。

統計入力アンロードファイル名　〜＜パス名＞

統計入力アンロードファイルの名称を指定します。

HiRDBファイルシステム領域名　〜＜パス名＞((165文字以内))

統計入力アンロードファイルがHiRDBファイルシステム領域にある場合，そのHiRDBファイルシステム領域の名称を指定します。

指定したHiRDBファイルシステム領域にあるすべての統計入力アンロードファイルが解析対象となります。

統計入力アンロードファイル格納ディレクトリ名　〜＜パス名＞

統計入力アンロードファイルがあるディレクトリの名称を指定します。

ディレクトリ名を指定した場合，そのディレクトリの子又は孫の位置にあるファイル（HiRDBファイルシステム領域があるときは，その領域にあるファイル）が編集対象となります。

(a)　注意事項

相対パスの指定

-iオプションに相対パス（/以外の文字で始まるパス）を指定した場合，実行者の環境変数PDDIRと相対パスを連結したパスのファイル又はディレクトリを解析対象とします。連結したパスのファイル又はディレクトリがない場合は，カレントディレクトリ下のファイル又はディレクトリを解析対象とします。

アンロード統計ログファイルの出力モード

64ビットモードのHiRDBで出力したアンロード統計ログファイルを使用して，32ビットモードのHiRDBの統計解析ユティリティを実行すると，そのファイルは編集されません。

ファイル種別

-iオプションに指定したファイル又はディレクトリ下のファイルの種別によっては，解析処理が待ち状態になったり，該当するファイルの解析をスキップしたりすることがあります。ファイル種別による解析処理の可否を次に示します。

-iオプション指定値

ファイル種別

解析処理

ファイル

通常ファイル

処理を続行します。

RAWファイル

処理を続行します。

パイプファイル（FIFO）※

別プロセスがライトモードで該当するファイルをオープンするまで待ち状態となります。

上記以外

該当するファイルの解析処理をスキップします。

ディレクトリ

ディレクトリ下のファイル

通常ファイル

処理を続行します。

RAWファイル

処理を続行します。

パイプファイル（FIFO）

ワーニングメッセージが出力されます。

上記以外

該当するファイルの解析処理をスキップします。

注※　統計ログファイルが一つだけの場合，パイプファイル（FIFO）で指定できます。

(b)　アンロードログファイルを入力する場合の注意事項

システムログファイルをpdlogunldコマンドでアンロードする場合は，-nオプションを指定してください（システムログのステータスが変更されないようにするためです）。システムログのステータスを変更してしまうと，次のようにシステムログファイルのアンロードができなくなることがあります。

システムログファイルの自動ログアンロード機能を使用している場合，アンロード済みと判断されるため，自動アンロードがされません。

システムログのステータスがアンロード済みになると，HiRDBは上書きしてもよいと判断するため，アンロードする前に上書きされてしまう可能性があります。

(c)　キャラクタ型スペシャルファイルのHiRDBファイルシステム領域のアンロードログファイルを入力する場合の注意事項

pdsteditを実行するホスト以外のホストへ，アンロードログファイルを転送する場合の運用

キャラクタ型スペシャルファイルのHiRDBファイルシステム領域のアンロードログファイルは，rcpなどで他ホストに転送できないため，解析用に一箇所に集めることが困難です。この場合，次の方法でアンロードログファイルを他ホストに転送します。

pdfbkupコマンドで，HiRDBファイルシステム領域内の解析対象となる，HiRDBファイルのバックアップファイルを作成します。

バックアップファイルを，rcpなどでpdsteditを実行するホストに転送します。

pdfmkfsコマンドで，統計解析入力用のHiRDBファイルシステム領域を通常ファイルで作成します。ほかのファイルも同時に解析したい場合には，それらのファイルと同じディレクトリに作成します。

pdfrstrコマンドで，2.で転送したバックアップファイルの内容を3.で作成したHiRDBファイルシステム領域にリストアします。

pdsteditを実行する場合，4.でリストアしたHiRDBファイルシステム領域，又はHiRDBファイルシステム領域を作成したディレクトリ名を-iオプションに指定します。

pdsteditを実行するホストでアンロードログファイルを入力する場合の運用

pdsteditで複数のファイルを入力する場合，解析対象のファイルを同じディレクトリ下に集めて，ディレクトリ指定で解析します。しかし，キャラクタ型スペシャルファイルのHiRDBファイルシステム領域のアンロードログファイルの場合は，cpコマンドなどでコピーできないため，ほかのファイルと同時に入力することが困難となります。

この場合，解析対象のファイルがあるディレクトリ下から，アンロードログファイルがあるキャラクタ型スペシャルファイルのHiRDBファイルシステム領域へシンボリックリンクを張ることで，コピーしなくても解析できるようになります。

(8)　-o DAT形式ファイル出力先ディレクトリ名

　　　〜＜パス名＞((1〜128))

統計入力アンロードファイルから統計情報を収集し，DAT形式ファイルを作成したい場合，そのDAT形式ファイルを作成するディレクトリの名称を指定します。

(9)　-w ワーク用一時ファイル作成ディレクトリ名

　　　〜＜パス名＞((1〜128))

統計解析ユティリティで使用する，ワーク用一時ファイルを作成するディレクトリの名称を指定します。省略した場合，次の表に示すディレクトリが仮定されます。

表14‒2　pdsteditがワーク用一時ファイルを出力するディレクトリ

-wオプションの指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIR※の指定

あり

なし

あり

-wオプションに指定したディレクトリ

なし

pd_tmp_directoryに指定したディレクトリ

TMPDIRに指定したディレクトリ

/tmpディレクトリ

注※　コマンド実行環境の環境変数の指定

何らかの要因で表「pdsteditがワーク用一時ファイルを出力するディレクトリ」に示すディレクトリにワーク用一時ファイルが作成できない場合は，エラーとなります。

統計解析ユティリティの実行中にプロセスを強制終了したり，異常終了したりするなど，統計解析ユティリティの実行が途中で中断したとき，ワーク用一時ファイルのディレクトリ下にファイルが残ることがあります。ワーク用一時ファイルが不要な場合は，ユーザがそのファイルを削除する必要があります。ワーク用一時ファイルのディレクトリ下に作成されるファイル名を次に示します。

-kオプションの指定値

作成されるファイルの名称

sys

PID.syi，PID.syo

uap

PID.uai，PID.uao

sql

PID.sqi，PID.sqo

buf

PID.bui，PID.buo

fil

PID.fii，PID.fio

dfw

PID.dfi，PID.dfo

idx

PID.ixi，PID.ixo，PID.isi，PID.iso

sop

PID.soi，PID.soo

dop

PID.doi，PID.doo

pcd

PID.pci，PID.pco

obj

PID.obi，PID.obo

sqh

PID.qhi，PID.qho

cnc

PID.cni，PID.cno

dio

PID.dii，PID.dio

（凡例）

PID：プロセスID

注

-k allの場合，すべてのファイルが作成されます。

(10)　-d 制御文ファイル名

　　　〜＜パス名＞

統計解析ユティリティの入力情報のシステムログが格納されたファイルグループ名を記述した制御文ファイルの名称を指定します。

-dオプションが指定されていても，-iオプションが指定されていない場合，標準入力待ち状態になります。

制御文(file_group文）のファイルの形式を次に示します。なお，制御文は，最大34個指定できます。

　file_group サーバ名：ファイルグループ名〔，ファイルグループ名〕…

サーバ名　〜＜識別子＞((1〜8))

ファイルグループに対応するサーバ名を指定します。-sオプションを指定した場合，-sオプションで指定したサーバ名と異なるサーバ名を指定したときには，解析対象外として無視されます。また，制御文ファイル中のサーバ名が重複している場合は，エラーとなります。

ファイルグループ名　〜＜識別子＞((1〜8))

統計解析ユティリティを起動するホストから参照できる物理ファイルのファイルグループを指定します。

ファイルグループ名は最大200個指定できます。

別のホストにあるファイルグループを指定した場合には，エラーとなります。ただし，ファイルグループが共用ディスクにあるファイルの場合には，解析対象となります。

＜規則＞

制御文1文は1行で記述してください。

指定値の間にスペース及びタブを指定しないでください。

"/＊"から"＊/"まではコメントとみなします。

現用ファイルグループを指定した場合，又は不整合な状態のファイルグループを指定した場合，警告メッセージを出力し，エラー検出直前までの統計情報を編集します（二重化指定の場合には，警告メッセージを二つ出力することがあります）。

警告エラーの原因としては，次のことが考えられます。

ファイルの最後を検出

ファイルの内容が不正

初期化後，未使用のファイルグループを指定した場合，統計情報の編集をしないで，警告メッセージを出力します（二重化指定の場合には，警告メッセージを二つ出力することがあります）。

指定したファイルがシステムログファイルでない場合，そのファイルグループは解析しないで警告メッセージを出力します。

-iオプションと-dオプションを同時に指定して，-dオプションで指定した制御文ファイル中のファイルグループがアンロード済みのファイルで，そのアンロードログファイルを-iオプションに指定している場合，指定したファイルグループの情報が二重に編集されます。

(11)　-b

DAT形式ファイルにタイトルバーを出力する場合に指定します。このオプションを指定する場合，同時に-oオプションも指定する必要があります。-oオプションを指定していない場合，このオプションの指定は無視されます。

(12)　-e 拡張フォーマット指定値〔，拡張フォーマット指定値〕

DAT形式ファイル出力時に，出力フォーマットを変更する場合に指定します。このオプションを指定する場合，同時に-oオプションも指定する必要があります。

拡張フォーマット指定値には，「sec」及び「er1」を指定できます。

sec：

secを指定した場合，次の統計情報の統計ログ取得時刻に秒値が出力されます。

グローバルバッファプールに関する統計情報

データベース操作に関するHiRDBファイルの統計情報

デファードライト処理に関する統計情報

このオプションを指定しない場合，統計ログ取得時刻の出力形式は「MM/DD/hh:mm」となります。このオプションを指定した場合，統計ログ取得時刻の出力形式は「MM/DD/hh:mm:ss」となります。

なお，このオプションは-yオプションを指定した場合は無効となります。

er1：

er1は，オーバフローデータ※１及び編集できないデータ※２を，有効けた数以上出力しない場合に指定します。er1を指定すると，オーバフローデータ及び編集できないデータの格納値が，1個のアスタリスク（*）になります。

注※1

マイクロ秒単位の時間を出力する場合，時間が4,200秒を超えているときのエラーデータを示します。

注※2

pdsteditを実行するHiRDBのバージョンより，入力する統計ログを取得したHiRDBのバージョンが古い場合，出力対象項目の情報が統計ログ内にないことがあります。統計ログ内にない項目の情報を，「編集できないデータ」といいます。

(13)　-y

DAT形式ファイル出力時，日付時刻の出力形式を「YYYY/MM/DD hh:mm:ss」とする場合に指定します。このオプションを指定していても，-oオプションが指定されていない場合は無視します。このオプションを指定した場合は，-e secの指定は無効となります。

14.2.3　各オプション指定時の留意事項

統計情報は，-kオプションとそのほかのオプションの指定によって情報を絞り込めます。-kオプションとそのほかのオプションとの関係を次の表に示します。

表14‒3　-kオプションとそのほかのオプションとの関係

-kオプション（内容）

そのほかのオプション

-t 開始時刻，終了時刻

-u UAP名

-x ホスト名

-s サーバ名

sys（システムの稼働に関する統計情報）

○

×

○

×

svr（サーバごとのシステムの稼働に関する統計情報）

○

×

○

○

uap（UAPに関する統計情報）

○

○

○

×

sql（SQLに関する統計情報）

○

○

○

×

buf（グローバルバッファプールに関する統計情報）

○

×

○

○

fil（データベース操作に関するHiRDBファイルの統計情報）

○

×

○

○

dfw（デファードライト処理に関する統計情報）

○

×

○

○

idx（インデクスに関する統計情報）

○

×

×

○

sop（SQL静的最適化に関する統計情報）

○

○

○

×

dop（SQL動的最適化に関する統計情報）

○

○

○

×

pcd（SQLオブジェクト実行に関する統計情報）

○

○

○

×

obj（SQLオブジェクト転送に関する統計情報）

○

○

○

×

sqh（SQL文の履歴に関する統計情報）

○

○

○

○

cnc（CONNECT/DISCONNECTに関する統計情報）

○

○

○

○

dio（データベースの入出力に関する統計情報）

○

×

○

○

all（上記のすべての統計情報）

○

○

○

○

（凡例）

○：指定できます。指定した場合，その情報は絞り込めます。

×：指定しても無視されます。その情報は絞り込めません。

-k idxの場合，-oオプションを指定しても無視されます。

-k idx，-k allの場合，-dオプションを指定すると，その情報が絞り込めます。

-kオプションにsop，dop，又はpcdを指定した場合，同時に-oオプションも指定してください。

-i，又は-dオプション指定時に入力できるファイルと，解析できる統計情報を次に示します。

オプション

入力できるファイル

解析できる統計情報

-i

アンロードログファイル

インデクスに関する統計情報のスプリットに関する情報

CONNECT/DISCONNECTに関する統計情報

アンロード統計ログファイル

上記以外のすべての統計情報

-d

システムログファイル

インデクスに関する統計情報のスプリットに関する情報

CONNECT/DISCONNECTに関する統計情報

-k uapの場合，UAPの実行環境によって，統計情報の取得単位が変わります。UAP実行時のクライアント環境定義（PDSTJTRNOUT）と，統計情報の取得単位の関係を次に示します。

PDSTJTRNOUTの内容

UAPの種類

OLTP環境の場合

OLTP環境以外の場合

YES

トランザクション単位

トランザクション単位

NO

UAP実行単位

UAP実行単位

省略

トランザクション単位

トランザクション単位

14.3　統計情報の詳細

14.3.1　統計情報の出力形式

(1)　編集項目ごとのログレコードサマリ情報

各統計情報出力後，編集項目ごとにログレコードのサマリ情報を出力します。

ただし，SQL静的最適化に関する統計情報，SQL動的最適化に関する統計情報，SQLオブジェクト実行に関する統計情報，SQLオブジェクト転送に関する統計情報，SQL文の履歴に関する統計情報，CONNECT/DISCONNECTに関する統計情報，及びデータベースの入出力に関する統計情報の場合，編集項目ごとのログサマリ情報は出力されません。

          :
      統計情報
          :
 FILE KIND LOG KIND FIRST               LAST                       NUM
 XXX       XXX      XXXX/XX/XX XX:XX:XX XXXX/XX/XX XX:XX:XX XXXXXXXXXX
  :         :                 :                   :             :

［説明］

FILE KIND：

解析対象のログファイル種別を示します。

アンロード統計ログファイルの場合は"STJ"，システムログファイル（アンロードログファイル又はシステムログのファイルグループ）の場合は"FJ"を出力します。

LOG KIND：

解析対象のログレコードの種別を示します。

sys：システムの稼働に関する統計情報

uap：UAPに関する統計情報

sql：SQLに関する統計情報

buf：グローバルバッファプールに関する統計情報

fil：データベース操作に関するHiRDBファイルの統計情報

dfw：デファードライト処理に関する統計情報

idx：インデクスに関する統計情報

FIRST：

解析対象のログレコードの最も古いログ取得時刻を示します。

解析対象のログファイル内に解析対象のログレコードが1件もない場合は，"****/**/** **:**:**"を出力します。

LAST：

解析対象のログレコードの最も新しいログ取得時刻を示します。

解析対象のログファイル内に解析対象のログレコードが1件もない場合は，"****/**/** **:**:**"を出力します。

NUM：

解析対象のログレコードの件数を示します。

(2)　入力ログファイルのサマリ情報

すべての統計情報出力後，入力したすべてのログファイルのサマリ情報を，すべてのログレコード種別ごとに出力します。

システムログのファイルグループを入力とした場合（-dオプション指定時），入力ログファイルのサマリ情報は出力されません。また，アンロードログファイルを入力とした場合，インデクスに関する統計情報の編集項目指定があるときだけ，入力ログファイルのサマリ情報が出力されます。それ以外の統計情報の編集項目を指定した場合は，レコード件数0が表示されます。

                     :
    編集項目ごとのログレコードサマリ情報
                     :
 NO FILE KIND:LOG FILE NAME
  LOG KIND  FIRST                LAST                        NUM
 XX XXX      :XX...X
  XXX       XXXX/XX/XX XX:XX:XX  XXXX/XX/XX XX:XX:XX  XXXXXXXXXX
   :                  :                    :              :

［説明］

NO：

ログファイルの通番を示します。

FILE KIND：

解析対象のログファイル種別を示します。

STJ：

32ビットモードのHiRDBで取得したアンロード統計ログファイル

STJ64：

64ビットモードのHiRDBで取得したアンロード統計ログファイル

FJ：

アンロードログファイル（通常ファイル）

FJIOS：

アンロードログファイル（HiRDBファイル）

LOG FILE NAME：

入力したアンロード統計ログファイル又はアンロードログファイル（インデクスに関する統計情報の場合）の名称を示します。

名称は，最大256バイトの絶対パス名で表示されます。256バイトを超えた場合，最後尾から256バイトまでを表示します。

LOG KIND：

解析対象のログレコードの種別を示します。

sys：システムの稼働に関する統計情報

uap：UAPに関する統計情報

sql：SQLに関する統計情報

buf：グローバルバッファプールに関する統計情報

fil：データベース操作に関するHiRDBファイルの統計情報

dfw：デファードライト処理に関する統計情報

idx：インデクスに関する統計情報

sop：SQL静的最適化に関する統計情報

dop：SQL動的最適化に関する統計情報

pcd：SQLオブジェクト実行に関する統計情報

obj：SQLオブジェクト転送に関する統計情報

sqh：SQL文の履歴に関する統計情報

cnc：CONNECT/DISCONNECTに関する統計情報

dio：データベースの入出力に関する統計情報

FIRST：

ログファイルの最も古いログ取得時刻を示します。

解析対象のログファイル内にログレコードが1件もない場合は，"****/**/** **:**:**"を出力します。

LAST：

ログファイルの最も新しいログ取得時刻を示します。

解析対象のログファイル内にログレコードが1件もない場合は，"****/**/** **:**:**"を出力します。

NUM：

ログレコード種別ごとのレコード件数を示します。

(3)　編集データがないときの出力内容

表示内容

説明

対処方法

"***** NO DATA NOOPT *****"

解析対象の統計入力アンロードファイル内に，該当する編集項目レコードがありません。

オプションの指定誤り，又はログレコード取得時の出力項目の誤りが考えられます。次のどちらかの方法で対処してください。

-x，-s，-t，-u，及び-fオプションの指定値を見直し，誤っていた場合は修正して，再度実行してください。

統計入力アンロードファイルのサマリ情報から編集対象のログレコードが出力されているか，又は統計入力アンロードファイルへの出力時間が正しいか確認してください。また，誤った統計入力アンロードファイルを入力していないか，又は解析対象のログレコードが出力されているか確認してください。

"***** NO DATA HOST *****"

-xオプションで指定したホストから出力された，ログレコードがありません。

"***** NO DATA SERVER *****"

-sオプションで指定したサーバから出力された，ログレコードがありません。

"***** NO DATA TIME *****"

-tオプションで指定した編集時間範囲内に出力された，ログレコードがありません。

"***** NO DATA UAP *****"

-uオプションで指定したUAPから出力された，ログレコードがありません。

"***** NO DATA 1 REC *****"

解析対象の統計入力アンロードファイル内に，差分情報を取得するためのログレコードがなかったため，差分情報が編集できません。編集項目ごとのログサマリ情報，又は統計入力アンロードファイルのサマリ情報にログレコードが2件以上あっても，1回のシンクポイントで出力されたレコード（サマリ情報の最も古いログ取得時刻（FIRST）と最も新しいログ取得時刻（LAST）が同じ時間帯）ならば，差分情報取得のためのログレコードがないことを示します。ただし，グローバルバッファプールに関する統計情報，及びデータベース操作に関するHiRDBファイルの統計情報の場合だけ該当します。

2レコード以上になるように，統計入力アンロードファイルを設定してください。

"***** NO DATA *****"

該当する編集時間範囲内に，解析対象のログレコードがありません。

解析したい時間間隔で，NO DATAが多く出力される場合，編集時間範囲を長くしてください。

該当する編集項目に対して，編集できるログレコードがありません。

編集できるログレコードがあるか，統計入力アンロードファイルサマリ情報を確認してください。

注

SQL静的最適化情報，SQL動的最適化情報，及びSQLオブジェクト実行情報の編集項目の解析対象レコードがなかった場合は，インフォメーションメッセージが出力されます。

(4)　統計情報の数値の形式

統計情報の出力情報に数値がある場合，表示形式は次のようになります。

数値の範囲

表示形式

0〜999

0〜999

1,000〜9,994

1.00k〜9.99k※

9,995〜99,949

10.0k〜99.9k※

99,950〜999,499

100k〜999k※

999,500〜9,994,999

1.00M〜9.99M※

9,995,000〜99,949,999

10.0M〜99.9M※

99,950,000〜999,499,999

100M〜999M※

999,500,000〜9,994,999,999

1.00G〜9.99G※

9,995,000,000〜99,949,999,999

10.0G〜99.9G※

99,950,000,000〜999,499,999,999

100G〜999G※

999,500,000,000〜4,398,046,511,103

1.00T〜4.40T※

（凡例）

k：キロ

M：メガ

G：ギガ

T：テラ

注※

表示けた数の次の位が，四捨五入されます。

(5)　出力される統計情報に関する注意事項

出力される統計情報についての注意事項を次に示します。

数字は右詰め，そのほかの文字は左詰めで出力されます。

出力指定日時は，編集範囲時刻を指定した場合に出力されます。指定しなかった場合には，’＊’が出力されます。

編集時間の範囲は，編集開始時刻を指定した場合に開始時刻を含む時間帯から出力されます。指定しなかった場合には，ファイル中の最も早い時刻を持つ，レコードを含む時間帯から出力されます。

編集時間の範囲は，編集終了時刻を指定した場合に，ファイル内の最も早い時刻を持つレコードを含む時間帯から，指定終了時刻を含む時間帯まで出力されます。

集計中にオーバフローした場合，又は累計を出力しない項目には，’＊＊＊’，’＊＊＊＊’，又は空白が出力されます。

平均値がオーバフローしたデータには，’＊’が出力されます。ただし，このときの最大値及び最小値は保証されます。

取得編集時間帯にデータがない場合は，その時間帯に’＊＊＊＊＊　NO DATA aa...a　＊＊＊＊＊’が出力されます。

項目の単位がバイトの場合，1.00K=2１０バイト，1.00M=2２０バイト，1.00G=2３０バイト，1.00T=2４０バイトが基準になります。

14.3.2　システムの稼働に関する統計情報

システムの稼働に関する統計情報を次に示します。

pdstedit VV-RR(Object Option) ***** SYSTEM INFORMATION *****
INPUT          :/tmp/stjdata [1]
OUTPUT RANGE   :**/**/** **:**:** - **/**/** **:**:** [2]
-----------------------------------------------------------------------------
HOST = test [3]
-----------------------------------------------------------------------------
EDIT TIME 2012/02/03 09:00:00 - 2012/02/03 10:00:00 [4]
SERVER : ******** [5]                              [6]    [7]    [8]    [9]
                                                  FREQ    MAX    MIN    AVG
                                                  -----  -----  -----  -----
<SCHEDULE>[10]     QUEUE LENGTH[11]                 77      1      1      1
                   MESSAGE LENGTH[12]               77    660    432    615
<PROCESS>[13]      # OF USER SERVER ABORT[14]        0
                   # OF SYSTEM SERVER ABORT[15]      0
                   # OF PROCESS[16]                        48     44     44
                   # OF PROCESS ON SERVICE[17]              8      0      0
                   # OF REQ PROCESS OVER MAX[18]     0
<TRANSACTION>[19]  # OF COMMIT[20]                 242
                   # OF ROLLBACK[21]                12
<NAME>[22]         # OF CACHE HIT[23]                0
                   # OF LOCAL HIT[24]              743
                   # OF LOOK-UP[25]                742
<RPC>[26]          # OF TIME OUT[27]                 0
                   # OF ERROR[28]                    0
                   RESPONSE ON OWN UNIT[29]        192  63.6k    192  4.97k
                   RESPONSE TO OTHER UNIT[30]        0      0      0      0
                   EXEC TIME ON OWN UNIT[31]     1.48k  91.2k      0  1.41k
                   EXEC TIME FROM OTHER UNIT[32]     0      0      0      0
                   # OF SEND TO OWN PRCS[33]         0
                   # OF SEND TO OTHER PRCS[34]     200
                   # OF SEND TO OTHER UNIT[35]       0
                   # OF RECV FROM OWN PRCS[36]       0
                   # OF RECV FROM OTHER PRCS[37]    12
                   # OF RECV FROM OTHER UNIT[38]     0
                   # OF REGISTERED PORTS[39]         0       0     0      0
                   # OF ASSIGNED PORTS[40]           0       0     0      0
<LOCK>[41]         WAIT TIME[42]                    30      97     1     27
                   QUEUE LENGTH[43]                 30       4     1      2
                   # OF DEADLOCK[44]                 0
                   % OF USE LOCK TABLE[45]           5       0     0      0
                   # OF REQUEST WAIT QUEUE[124]  9.56k       1     0      0
                   # OF REQUEST[128]             9.60k
                   # OF REQUEST WAIT[129]           27
                   REQUEST WAIT TIME[130]                  363     2     58
<SHARED MEMORY>[46]STATIC GET SIZE[47]               0       0     0      0
                   STATIC POOL SIZE[48]              0       0     0      0
                   DYNAMIC GET SIZE[49]              0       0     0      0
                   DYNAMIC POOL SIZE[50]             0       0     0      0
                   SIZE EXCEPT GLOBAL BUFFER[51] 63.4M
                   STATIC SIZE[52]               9.08M
                   DYNAMIC SIZE[53]              3.90M
                   SIZE FOR GLOBAL BUFFER[54]    1.77M
<SYNC POINT>[55]   SYNC POINT GET INTERVAL[56]      10    169k 21.0k  75.3k
                   SYNC POINT GET TIME[57]          10   3.00k 1.00k  1.40k
<LOG>[58]          # OF BUFFER FULL[59]              0
                   # OF WAIT THREAD[60]              0
                   OUTPUT BLOCK LENGTH[61]         656    121k   340  3.17k
                   NOT BUS LENGTH[62]              656    121k   340  3.04k
                   # OF BUFFER FOR WAIT I/O[63]    139     100   100    100
                   # OF WRITE TO FILE[64]          671
                   # OF WRITE ERROR[65]              0
                   LOG FILE SWAP TIME[66]            5     159    57    116
                   LOG INPUT DATA LENGTH[67]        10    392k 20.0k   258k
                   # OF READ FROM FILE[68]          15
                   # OF READ ERROR[69]               0
                   FILE WRITE TIME[125]            671    115k 2.46k  19.6k
                   FILE READ TIME[126]              15    144k     9  16.5k
                   # OF BUFFERING[127]           10.4k
                   # OF BUF FLUSH WAIT QUEUE[131]   71       1     1      0
                   # OF BUF FLUSH[132]              71
                   # OF BUF FLUSH WAIT[133]         71
                   BUF FLUSH WAIT TIME[134]               169k 22.8k  31.0k
<DICTIONARY>[70]   # OF TBL-DEF GET REQ[71]        295
                   # OF TBL-CACHE HIT[72]          272
                   # OF CACHED TBL-DEF[73]          27      12     1      6
                   USED TBL-DEF SIZE[74]            23   26.0k 5.60k  9.95k
                   TBL-CACHE SIZE[75]               27    118k 26.0k  79.1k
                   # OF ACCESS PRIV CHECK[76]        0
                   # OF CACHE HIT (AP CHECK)[77]     0
                   # OF CON/DBA DEF GET REQ[78]     45
                   # OF CON/DBA CACHE HIT[79]       43
                   # OF CON/DBA CACHED USER[80]      6       1     1      1
                   DICT SERV TRANS DATA SIZE[81]     0       0     0      0
                   # OF TRANS[82]                    0
                   # OF VIEW DEF GET REQ[83]         0
                   # OF VIEW CACHE HIT[84]           0
                   # OF VIEW CACHED DEF[85]          0
                   USED VIEW SIZE[86]                0       0     0      0
                   VIEW CACHE SIZE[87]               0       0     0      0
                   CACHE-MISS VIEW SIZE[88]          0       0     0      0
                   # OF TYPE-DEF GET REQ[89]         0
                   # OF TYPE-DEF CACHE HIT[90]       0
                   # OF CACHED TYPE-DEF[91]          0       0     0      0
                   TYPE-DEF CACHE SIZE[92]           0       0     0      0
                   TYPE-DEF CACHE TOTAL SIZE[93]     0       0     0      0
                   TYPE-DEF CACHE ALLOC SIZE[94]     4       0     0      0
                   # OF RTN-DEF GET REQ[95]          0
                   # OF RTN-DEF CACHE HIT[96]        0
                   # OF CACHED RTN-DEF[97]           0       0     0      0
                   RTN-DEF CACHE SIZE[98]            0       0     0      0
                   RTN-DEF CACHE TOTAL SIZE[99]      0       0     0      0
                   RTN-DEF CACHE ALLOC SIZE[100]     4    100k   100k   100k
                   # OF PLG-RTN GET REQ[101]         0
                   # OF PLG-RTN CACHE HIT[102]       0
                   # OF REGISTRY GET REQ[103]        0
                   # OF REGISTRY CACHE HIT[104]      0
                   # OF CACHED REGISTRY-DEF[105]     0       0     0      0
                   REGISTRY CACHE SIZE[106]          0       0     0      0
                   REGISTRY CACHE TOTAL SIZE[107]    0       0     0      0
                   DIRECTORY USER CHECK TIME[108]    0       0     0      0
                   GROUP CHECK TIME[109]             0       0     0      0
<FES-BES-DIC(SDS)  # OF SQLOBJ INFO GET[111]       240
 INFORMATION>      # OF CACHE HIT (SQLOBJ)[112]     41
 [110]             # OF CACHED SQLOBJ[113]         203      65     1     27
                   CACHED SQLOBJ TOTAL SIZE[114]   203    277k 5.00k   137k
                   # OF SWAP OUT SQLOBJ[115]        36
                   REQUEST SQLOBJ SIZE[116]        163   9.44k 2.02k  4.62k
                   # OF STRT INFO GET[117]           0
                   # OF CACHED HIT (STRT)[118]       0
                   # OF CACHED STRT[119]             0       0     0      0
                   CACHED STRT TOTAL SIZE[120]       0       0     0      0
                   # OF SWAP OUT STRT[121]           0
                   REQUEST STRT SIZE[122]            0       0     0      0
                   # OF STRT RECOMPILE[123]          0
-----------------------------------------------------------------------------
FILE KIND   LOG KIND   FIRST                 LAST                       NUM
STJ         sys        2012/02/03 09:30:49   2012/02/03 09:37:00          5
-----------------------------------------------------------------------------

NO FILE KIND:LOG FILE NAME
  LOG KIND             FIRST                 LAST                       NUM
 1 STJ      :/tmp/stjdata/pdstj01
  sys                  2012/02/03 09:30:49   2012/02/03 09:31:50          4
  uap                  2012/02/03 09:29:26   2012/02/03 09:31:04         26
  sql                  2012/02/03 09:29:25   2012/02/03 09:31:04        440
  sop                  2012/02/03 09:29:27   2012/02/03 09:31:04         98
  dop                  2012/02/03 09:29:27   2012/02/03 09:31:04         92
  pcd                  ****/**/** **:**:**   ****/**/** **:**:**          0
  obj                  ****/**/** **:**:**   ****/**/** **:**:**          0
  sqh                  ****/**/** **:**:**   ****/**/** **:**:**          0
  buf                  2012/02/03 09:30:00   2012/02/03 09:32:24         21
  fil                  2012/02/03 09:30:00   2012/02/03 09:32:24        224
  dfw                  2012/02/03 09:29:30   2012/02/03 09:32:24         71
  idx                  2012/02/03 09:30:00   2012/02/03 09:32:24          7
  fsv                  ****/**/** **:**:**   ****/**/** **:**:**          0
  hba                  ****/**/** **:**:**   ****/**/** **:**:**          0
  dio                  2012/02/03 09:30:00   2012/02/03 09:32:24         77
 2 STJ      :/tmp/stjdata/pdstj02
  sys                  2012/02/03 09:34:58   2012/02/03 09:37:00          6
  uap                  2012/02/03 09:34:00   2012/02/03 09:36:17         19
  sql                  2012/02/03 09:33:59   2012/02/03 09:36:17        456
  sop                  2012/02/03 09:34:02   2012/02/03 09:36:16         65
  dop                  2012/02/03 09:34:02   2012/02/03 09:36:16         96
  pcd                  ****/**/** **:**:**   ****/**/** **:**:**          0
  obj                  ****/**/** **:**:**   ****/**/** **:**:**          0
  sqh                  ****/**/** **:**:**   ****/**/** **:**:**          0
  buf                  2012/02/03 09:34:10   2012/02/03 09:36:19         27
  fil                  2012/02/03 09:34:10   2012/02/03 09:36:19        288
  dfw                  2012/02/03 09:34:04   2012/02/03 09:36:19         41
  idx                  2012/02/03 09:34:10   2012/02/03 09:36:19          9
  fsv                  ****/**/** **:**:**   ****/**/** **:**:**          0
  hba                  ****/**/** **:**:**   ****/**/** **:**:**          0
  dio                  2012/02/03 09:30:00   2012/02/03 09:32:24         77

［説明］

統計入力アンロードファイル名，又は統計入力アンロードファイル格納ディレクトリ名（最大58バイト）

出力指定日時（出力開始日時−出力終了日時）

システムの稼働に関する統計情報の出力要求元ホスト名

編集時間の範囲（取得開始時刻−取得終了時刻）

サーバ名。-kオプションにsysを指定した場合は，"＊＊＊＊＊＊＊＊"を出力します。

各項目の発生回数

各項目の最大値

各項目の最小値

各項目の平均値

スケジュール情報

スケジュール待ち行列数

サーバに対する要求がスケジュールキューに登録された件数と，スケジュールキューへの登録が同時に発生したときの最大，最小，平均値です。

スケジュールメッセージ長（単位：バイト）

サーバに対する処理要求を格納したメッセージの個数と，メッセージ長の最大，最小，平均値です。

プロセス情報

サーバ異常終了回数

シングルサーバ，フロントエンドサーバ，ディクショナリサーバ，及びバックエンドサーバのプロセスが異常終了した回数です。

HiRDBが使用する内部的なサーバが異常終了した回数

HiRDBが使用する内部的なサーバのプロセスが異常終了した回数です。

サーバ，及びHiRDBが使用する内部的なサーバのプロセス個数

シングルサーバ，フロントエンドサーバ，ディクショナリサーバ，バックエンドサーバ，及びHiRDBが使用する内部的なサーバのプロセスの個数です。

サービス実行中のサーバプロセス数

サービス実行中のサーバのプロセス数です。

最大起動プロセス数を超えたサービス要求数

最大起動プロセス数を超えたサービス要求の数です。 最大起動プロセス数は，シングルサーバ及びフロントエンドサーバの場合はpd_max_usersオペランド指定値，バックエンドサーバの場合はpd_max_bes_processオペランド指定値，ディクショナリサーバの場合はpd_max_dic_processオペランド指定値となります。サービス要求数は，サービスを受けられずにリトライした要求も含めた値のため，実際に超えた数より大きくなることがあります。

トランザクション情報

コミット回数

シングルサーバ，フロントエンドサーバ，ディクショナリサーバ，及びバックエンドサーバで処理したトランザクションのうち，コミットしたトランザクションの件数です。

ロールバック回数

シングルサーバ，フロントエンドサーバ，ディクショナリサーバ，及びバックエンドサーバで処理したトランザクションのうち，ロールバックしたトランザクションの件数です。

ネームサーバ情報

システムが使用する情報（ユーザ未使用）

システムが使用する情報（ユーザ未使用）

システムが使用する情報（ユーザ未使用）

RPC情報

システムが使用する情報（ユーザ未使用）

システムが使用する情報（ユーザ未使用）

自ユニットのサーバへのサービスレスポンス時間（単位：100マイクロ秒）※2

自ユニットのサーバへのサービスレスポンス回数と，レスポンス時間の最大，最小，平均値です。

他ユニットのサーバへのサービスレスポンス時間（単位：100マイクロ秒）※2

他ユニットのサーバへのサービスのレスポンス回数と，レスポンス時間の最大，最小，平均値です。

自ユニットのサーバからの1サービス当たりの実行時間（単位：100マイクロ秒）※2

自ユニットのサーバからの1サービス当たりの実行回数と，実行時間の最大，最小，平均値です。

他ユニットのサーバからの1サービス当たりの実行時間（単位：100マイクロ秒）※2

他ユニットのサーバからの1サービス当たりの実行回数と，実行時間の最大，最小，平均値です。

自プロセスへのSEND回数

自プロセスへSEND（メッセージ送信）をした回数です。

自ユニットの他プロセスへのSEND回数

自ユニットの他プロセスへSEND（メッセージ送信）をした回数です。

他ユニットへのSEND回数

他ユニットへSEND（メッセージ送信）をした回数です。

自プロセスからのRECEIVE回数

自プロセスからRECEIVE（メッセージ受信）をした回数です。

自ユニットの他プロセスからのRECEIVE回数

自ユニットの他プロセスからRECEIVE（メッセージ受信）をした回数です。

他ユニットからのRECEIVE回数

他ユニットからRECEIVE（メッセージ受信）をした回数です。

HiRDB予約ポート使用数

HiRDBが予約したポート番号の範囲のうち，実際に使用しているポート番号の数と，ポート番号の最大，最小，平均値です。

HiRDB予約ポートオーバー時のOS自動割り当てポート使用数

HiRDBが予約した範囲のポート番号がすべて使用済みの場合に，OSが自動的に割り当てたポート番号の数と，ポート番号の最大，最小，平均値です。

排他制御情報

排他待ち時間（単位：ミリ秒）※2

サーバ内で発生した排他取得要求に対して，ほかのユーザが排他を取得しているために排他取得待ちとなった件数と，待ち時間の最大，最小，平均値です。

排他待ち数（ユーザ数）

サーバ内で発生した排他取得要求に対して，ほかのユーザが排他を取得しているために排他取得待ちとなった件数と，ユーザ数の最大，最小，平均値です。

デッドロック件数

サーバ内で発生した排他取得要求に対して，デッドロックとなった件数です。

排他制御用プールパーティションの使用率（％）

排他制御用プールパーティションの使用率を取得した回数と，その事象が発生したときの排他制御用プールパーティションの使用率の最大，最小，平均値です。排他制御用プールパーティションの使用率は，次に示すタイミングで取得されます。

システムの稼働に関する統計情報を統計ログファイルに出力したときから，一定時間経過したとき（条件によって経過時間が異なります）

・pdstbeginオペランドを指定している，又はpdstbeginコマンドで統計情報の取得を開始した場合は，pdstbeginオペランド又はpdstbeginコマンドの-mオプションで指定した時間（単位：分）が経過すると，排他制御用プールパーティションの使用率が取得されます。

・pd_statisticsオペランドにYを指定し，pdstbeginオペランドを指定していない場合は，10分経過すると排他制御用プールパーティションの使用率が取得されます。

前回取得した排他制御用プールパーティションの使用率から，5％使用率が増加したとき

HiRDBを正常終了したとき

pdstjsyncコマンドを実行したとき

なお，排他制御用プールパーティションが複数ある場合（pd_lck_pool_partition又はpd_fes_lck_pool_partitionオペランドに2以上を指定した場合）は，排他制御用プールパーティションごとに計算した使用率を出力します。

共用メモリ情報

システムが使用する情報（ユーザ未使用）

システムが使用する情報（ユーザ未使用）

システムが使用する情報（ユーザ未使用）

システムが使用する情報（ユーザ未使用）

サーバ用，及びHiRDBが使用する内部的なサーバ用に確保した共用メモリのサイズ（単位：バイト）

ユニットで確保したサーバ用，及びHiRDBが使用する内部的なサーバ用の共用メモリサイズです。

静的共用メモリ確保サイズ（単位：バイト）

ユニットで確保したサーバ用，及びHiRDBが使用する内部的なサーバ用の共用メモリサイズのうち，静的共用メモリとして確保したサイズです。

動的共用メモリ確保サイズ（単位：バイト）

ユニットで確保したサーバ用，及びHiRDBが使用する内部的なサーバ用の共用メモリサイズのうち，動的共用メモリとして確保したサイズです。

グローバルバッファプール用共用メモリ確保サイズ（単位：バイト）

サーバ内で確保した，グローバルバッファプールのサイズ（グローバルバッファプールが複数の共用メモリセグメントを使用している場合は，その合計値）です。

シンクポイント情報

シンクポイントダンプ取得間隔時間（単位：ミリ秒）※2

シンクポイントダンプの取得件数と，シンクポイントダンプを取得してから次のシンクポイントダンプを取得するまでの経過時間の最大，最小，平均値です。

シンクポイントダンプ取得時間（単位：ミリ秒）※2

シンクポイントダンプの取得件数と，処理に要した時間の最大，最小，平均値です。

この時間が長い場合，長いトランザクションが並行して実行されているためにシンクポイントダンプが有効になるまで時間が掛かったという要因が考えられます。

ログ情報

バッファ満杯回数

HiRDBシステム又はサーバで，ログ出力バッファが満杯となった回数です。

カレントバッファなしによる待ち回数

HiRDBシステム又はサーバで，ログ入出力バッファへの出力時に，該当するログ入出力バッファがシステムログファイルへの出力中のため，待ち状態となった回数です。

出力したブロック長（単位：バイト）

HiRDBシステム又はサーバで，ログ入出力バッファからシステムログファイルに出力した回数と，ブロック長の最大，最小，平均値です。

バス出力の場合は，その合計の長さとなります。HiRDBのシステムログ出力制御では，現在ファイルに出力中のログバッファが解放されるまでの間，ほかのログバッファに対してファイル出力要求が発生した場合でも，ファイル出力要求が発生したバッファ中に後続のシステムログを格納します。そして，現在出力中のログバッファが解放された後で一緒に出力します。これをバス出力といいます。

非バス部分のデータ長（単位：バイト）

HiRDBシステム又はサーバで，ログ入出力バッファからシステムログファイルにバス出力以外で出力した回数と，ログブロック長の最大，最小，平均値です。

出力待ちバッファ面数

HiRDBシステム又はサーバで，システムログファイルへの出力完了時に，システムログファイルへの出力完了待ちをしているログ出力バッファがあった件数と，バッファの面数の最大×100，最小×100，平均値×100です。

表示されている最大，最小，平均値をそれぞれ100で除算した値が，バッファ面数の最大，最小，平均値（単位：面数）となります。

ファイルへの書き込み回数

HiRDBシステム又はサーバで，システムログファイルへ書き込みをした回数です。

システムログのファイル出力以外にも，システムログファイルの状態を変更するときの書き込み回数が加算されます。システムログファイルを二重化している場合には，系ごとの書き込み回数が加算されます。また，システムログブロックの書き込み回数だけでなく，システムログファイルのスワップなどでファイルの状態が変化する場合に発生する，ファイルの書き込み回数も含まれます。システムログの並列出力機能を使用している場合は，二重化されたシステムログファイルに対して並列に書き込みを行うので，両系に対して書き込みを終えた段階で，1回として計算します。

書き込みエラー回数

HiRDBシステム又はサーバで，システムログファイルへの書き込み時にエラーが発生した回数です。

ログファイルスワップ時間（単位：ミリ秒）※2

HiRDBシステム又はサーバで，システムログファイルがスワップした回数と，スワップするまでに要した経過時間の最大，最小，平均値です。

ログ入力データ長（単位：バイト）

HiRDBシステム又はサーバで，ロールバックのときにシステムログファイルから入力したログの件数と，ログデータ長の最大，最小，平均値です。

ファイルからの読み出し回数

HiRDBシステム又はサーバで，ロールバックのときにシステムログファイルからログを入力した回数です。

読み出しエラー回数

HiRDBシステム又はサーバで，システムログファイルからのログの読み込み時にエラーが発生した回数です。

ディクショナリ情報

表定義情報取得要求回数

シングルサーバ及びフロントエンドサーバで，表操作の処理をした回数です。自動採番機能使用時は順序数生成子も含まれます。

表定義情報用バッファヒット回数

シングルサーバ及びフロントエンドサーバで，取得要求した表定義情報が表定義情報用バッファ内で見付かった回数です。自動採番機能使用時は順序数生成子も含まれます。

表定義情報用バッファヒット回数が表定義情報取得要求回数より少ない場合は，表定義情報用バッファ長を見直す必要があります。

表定義情報用バッファ中の表定義情報数

シングルサーバ及びフロントエンドサーバで，表定義情報用バッファ内にバッファリングされた表定義情報の数と，表定義情報数の最大，最小，平均値です。自動採番機能使用時は順序数生成子も含まれます。

表定義情報用バッファに取得した1表定義情報当たりの表定義情報用バッファ使用領域長（単位：バイト）

シングルサーバ及びフロントエンドサーバで，表定義情報用バッファに取得された表定義情報の件数と，1表定義情報当たりの表定義情報用バッファ使用領域長の最大，最小，平均値です。自動採番機能使用時は順序数生成子も含まれます。

表定義情報用バッファ使用領域長（単位：バイト）

シングルサーバ及びフロントエンドサーバで，表定義情報用バッファ上に取得された表定義情報の件数と，表定義情報全体の長さの最大，最小，平均値です。自動採番機能使用時は順序数生成子も含まれます。

この値のうち，最大値が表定義情報用バッファ長より極端に少ない場合は，表定義情報用バッファ長が大き過ぎて無駄な領域を確保していると考えられるため，表定義情報用バッファ長の値を見直す必要があります。

表アクセス権限情報取得回数

シングルサーバ及びフロントエンドサーバで，表操作のために表のアクセス権限を取得した回数です。

表アクセス権限情報用バッファヒット回数

シングルサーバ及びフロントエンドサーバで，取得要求した表のアクセス権限が表アクセス権限情報用バッファ内で見付かった回数です。

この回数が取得回数より極端に少ない場合，一つの表に対して100を超えるユーザに権限を与えていると考えられます。その場合には，該当する表に対してPUBLICで権限を与えられないか検討する必要があります。

ユーザ権限情報取得要求回数

UAPから，シングルサーバ及びフロントエンドサーバに対してCONNECT要求をした回数です。

ユーザ権限情報用バッファヒット回数

UAPからシングルサーバ及びフロントエンドサーバに対してCONNECT要求をした回数に伴って，取得要求したユーザ権限情報がユーザ権限情報用バッファ内で見付かった回数です。

この回数がユーザ権限情報取得要求回数より少ない場合，ユーザ権限情報用バッファ長を見直す必要があります。

ユーザ権限情報用バッファ使用ユーザ数

UAPから，シングルサーバ及びフロントエンドサーバに対してCONNECT要求をした回数に伴って，取得要求したユーザ権限情報がユーザ権限情報用バッファ上に取得された件数と，ユーザの数の最大，最小，平均値です。

この数値うち，最大値×34（バイト）がユーザ権限情報用バッファ長より極端に小さい場合は，ユーザ権限情報用バッファ長を見直す必要があります。

ディクショナリサーバとの通信長（単位：バイト）

フロントエンドサーバで，取得要求した表定義情報が表定義情報用バッファ内で見付からなかった場合の表定義情報取得の要求件数と，ディクショナリサーバに対して通信をした通信長の最大，最小，平均値です。

ディクショナリサーバとの通信回数

フロントエンドサーバで取得要求した表定義情報が表定義情報用バッファ内で見付からなかった場合，ディクショナリサーバに対して表定義情報取得の通信をしたときの通信回数です。

ビュー解析情報取得要求回数

シングルサーバ及びフロントエンドサーバで，ビュー操作のためにビュー解析情報を取得した回数です。

ビュー解析情報用バッファヒット回数

シングルサーバ及びフロントエンドサーバで取得要求したビュー解析情報がビュー解析情報用バッファ内で見付かった回数です。

ビュー解析情報用バッファヒット回数がビュー解析情報取得要求回数より少ない場合は，ビュー解析情報用バッファ長を見直す必要があります。

ビュー解析情報用バッファ中の解析情報数

ビュー解析情報用バッファ上に取得したビュー解析情報の数です。

ビュー解析情報用バッファに取得した1ビュー定義情報当たりのビュー解析情報用バッファ使用領域長（単位：バイト）

ビュー解析情報をビュー解析情報用バッファに取得した回数と，1ビュー解析情報当たりのビュー解析情報用バッファ使用領域長の最大，最小，平均値です。ビュー解析情報をビュー解析情報用バッファに取得した回数とバッファミスの発生回数（「VIEW DEF GET REQ−VIEW CACHE HIT」）が一致しない場合は，ビュー解析情報用バッファ長が不足しています。マニュアル「HiRDB システム運用ガイド」の「ビュー解析情報用バッファ長のチューニング」を参考にしてチューニングしてください。

使用したビュー解析情報用バッファ長（単位：バイト）

ビュー解析情報用バッファ上にあったビュー解析情報の件数と，長さの最大，最小，平均値です。

この数値のうち，最大値がビュー解析情報用バッファ長より極端に少ない場合は，ビュー解析情報用バッファ長が大き過ぎて無駄な領域を確保していると考えられます。この場合，ビュー解析情報用バッファ長の値が妥当か検討する必要があります。

バッファミスとなったビュー解析情報長（単位：バイト）

発生回数，最大，最小，平均値には0を出力します。バッファミスしたビュー解析情報長は，チューニング要素として使用することはないため，考慮する必要はありません。なお，バッファミスの発生回数を確認する場合は，「VIEW DEF GET REQ−VIEW CACHE HIT」で求めてください。

型定義情報取得要求回数

シングルサーバ及びフロントエンドサーバで，型定義を参照した回数です。

ユーザ定義型情報用バッファヒット回数

シングルサーバ及びフロントエンドサーバで，取得要求した型定義情報がユーザ定義型情報用バッファ内で見付かった回数です。

ユーザ定義型情報用バッファ中の型定義情報数

シングルサーバ及びフロントエンドサーバで，ユーザ定義型情報用バッファ内にバッファリングされた型定義情報の数と，型定義情報数の最大，最小，平均値です。

ユーザ定義型情報用バッファに取得した１型定義情報当たりのユーザ定義型情報用バッファ使用領域長（単位：バイト）

シングルサーバ及びフロントエンドサーバで，ユーザ定義型情報用バッファに型定義情報が取得された件数と，１型定義情報当たりのユーザ定義型情報用バッファ使用領域長の最大，最小，平均値です。

ユーザ定義型情報用バッファ総使用領域長（単位：バイト）

シングルサーバ及びフロントエンドサーバで，型定義情報を取得した件数と，ユーザ定義型情報用バッファ長の最大，最小，平均値です。

この値の最大値が確保したユーザ定義型情報用バッファ長より小さい場合は，無駄な領域を確保していることが考えられるため，ユーザ定義型情報用バッファサイズの値を見直す必要があります。

確保したユーザ定義型情報用バッファ長（単位：バイト）

シングルサーバ及びフロントエンドサーバで，確保したユーザ定義型情報用バッファの個数と，ユーザ定義型情報用バッファ長の最大，最小，平均値です。この値の最大，最小，平均値はすべて同じ値になります。

ルーチン定義情報取得要求回数

シングルサーバ及びフロントエンドサーバで，ルーチン定義を参照した回数です。

ルーチン定義情報用バッファヒット回数

シングルサーバ及びフロントエンドサーバで，取得要求したルーチン定義情報がルーチン定義情報用バッファ内で見付かった回数です。

ルーチン定義情報用バッファヒット回数がルーチン定義情報取得回数より少ない場合，ルーチン定義情報用バッファサイズの値を見直す必要があります。

ルーチン定義情報用バッファ中のルーチン定義情報数

シングルサーバ及びフロントエンドサーバで，ルーチン定義情報用バッファ内にバッファリングされたルーチン定義情報の数と，ルーチン定義情報数の最大，最小，平均値です。

ルーチン定義情報用バッファに取得した１ルーチン定義情報当たりのルーチン定義情報用バッファ使用領域長（単位：バイト）

シングルサーバ及びフロントエンドサーバで，ルーチン定義情報用バッファにルーチン定義情報が取得された件数と，１ルーチン定義情報当たりのルーチン定義情報用バッファ使用領域長の最大，最小，平均値です。

ルーチン定義情報用バッファ総使用領域長（単位：バイト）

シングルサーバ及びフロントエンドサーバで，ルーチン定義情報用バッファに取得された件数と，使用したルーチン定義情報用バッファ長の最大，最小，平均値です。

確保したルーチン定義情報用バッファ長（単位：バイト）

シングルサーバ及びフロントエンドサーバで，確保したルーチン定義情報用バッファの個数と，ルーチン定義情報用バッファ長の最大，最小，平均値です。この値の最大，最小，平均値はすべて同じ値になります。

プラグイン提供関数のルーチン定義取得要求回数

シングルサーバ及びフロントエンドサーバで，プラグイン提供関数のルーチンを参照した回数です。

プラグイン提供関数のルーチン定義情報用バッファヒット回数

シングルサーバ及びフロントエンドサーバで，取得要求したプラグイン提供関数のルーチン情報がルーチン定義情報用バッファ内で見付かった回数です。

プラグイン提供関数のルーチン定義情報用バッファヒット回数がプラグイン提供関数のルーチン定義情報取得要求回数より少ない場合，ルーチン定義情報用バッファサイズを見直す必要があります。

レジストリ情報取得要求回数

シングルサーバ及びフロントエンドサーバで，レジストリ情報を参照した回数です。

レジストリ情報用バッファヒット回数

シングルサーバ及びフロントエンドサーバで，取得要求したレジストリ情報がレジストリ情報用バッファ内で見付かった回数です。

レジストリ情報用バッファヒット回数がレジストリ情報取得要求回数より少ない場合，レジストリ情報用バッファサイズの値を見直す必要があります。

レジストリ情報用バッファ中のレジストリ情報数

シングルサーバ及びフロントエンドサーバで，レジストリ情報用バッファ内にバッファリングされたレジストリ情報の数と，レジストリ情報数の最大，最小，平均値です。

1レジストリ情報当たりのレジストリ情報用バッファ長（単位：バイト）

シングルサーバ及びフロントエンドサーバで，レジストリ情報用バッファにレジストリ情報が取得された件数と，１レジストリ情報当たりのレジストリ情報用バッファ長の最大，最小，平均値です。

レジストリ情報用バッファ総使用領域長（単位：バイト）

シングルサーバ及びフロントエンドサーバで，レジストリ情報用バッファにレジストリ情報が取得された件数と，使用したレジストリ情報用バッファ長の最大，最小，平均値です。

ディレクトリ登録のユーザ認証時間（単位：マイクロ秒）※2

システムで使用する内部情報です。

グループ判定実行時間（単位：マイクロ秒）※2

システムで使用する内部情報です。

シングルサーバ，フロントエンドサーバ，バックエンドサーバ，及びディクショナリサーバのSQLオブジェクト情報

SQLオブジェクト取得要求回数

シングルサーバ，フロントエンドサーバ，バックエンドサーバ，及びディクショナリサーバで実行したSQLオブジェクトの取得回数です。

SQLオブジェクト用バッファヒット回数

シングルサーバ，フロントエンドサーバ，バックエンドサーバ，及びディクショナリサーバで，取得要求したSQLオブジェクトがSQLオブジェクト用バッファ内で見付かった回数です。

SQLオブジェクト用バッファヒット回数がSQLオブジェクト取得要求回数より少ない場合は，SQLオブジェクト用バッファ長を見直す必要があります。

SQLオブジェクト用バッファ中のSQLオブジェクト数

シングルサーバ，フロントエンドサーバ，バックエンドサーバ，及びディクショナリサーバの，SQLオブジェクト用バッファにあるSQLオブジェクトの個数，SQLオブジェクト数の情報更新回数，最大，最小，平均値です。情報更新回数とは，このSQLオブジェクト数の最大，最小，平均値のどれかが更新された回数のことです。

SQLオブジェクト用バッファ中のSQLオブジェクトの合計長（単位：バイト）

シングルサーバ，フロントエンドサーバ，バックエンドサーバ，及びディクショナリサーバで，SQLオブジェクト用バッファにあるSQLオブジェクト合計長の情報更新回数，最大，最小，平均値です。情報更新回数とは，このSQLオブジェクト合計長の最大，最小，平均値のどれかが更新された回数のことです。

注

HiRDBでは，SQLオブジェクト用バッファの管理を，1キロバイト単位で行います。このため，各SQLオブジェクトは，キロバイト単位に切り上げられたSQLオブジェクト長以上のサイズの領域を，SQLオブジェクト用バッファで占有します。ここで出力されるSQLオブジェクト合計長は，SQLオブジェクトが占有した領域のサイズの合計ではありません。SQLオブジェクト合計長が，SQLオブジェクト用バッファ長の指定値より小さい場合でも，SQLオブジェクト用バッファに空きがないことがあります。

SQLオブジェクト用バッファから出されたSQLオブジェクトの数

シングルサーバ，フロントエンドサーバ，バックエンドサーバ，及びディクショナリサーバで，新たに要求されたSQLオブジェクトを作成及び入力する空きバッファ作成のために，参照した後に使用されていないSQLオブジェクトをメモリ上で無効にした数です。

SQLオブジェクト長（単位：バイト）

シングルサーバ，フロントエンドサーバ，バックエンドサーバ，及びディクショナリサーバで，SQLオブジェクト用バッファ内に取得したSQLオブジェクトの件数と，SQLオブジェクトの長さの最大，最小，平均値です。

ストアドプロシジャのオブジェクトの取得要求回数

シングルサーバ及びフロントエンドサーバで，SQLオブジェクト用バッファに対してストアドプロシジャのオブジェクトを取得要求した回数です。

バックエンドサーバ及びディクショナリサーバの場合は，SQLオブジェクト取得要求回数に値が含まれます。

ストアドプロシジャのオブジェクトの，SQLオブジェクト用バッファヒット回数

シングルサーバ及びフロントエンドサーバで，取得要求したストアドプロシジャのオブジェクトがSQLオブジェクト用バッファ内で見付かった回数です。

シングルサーバ及びフロントエンドサーバで，ストアドプロシジャのオブジェクトのSQLオブジェクト用バッファヒット回数がストアドプロシジャのオブジェクトの取得要求回数より少ない場合は，SQLオブジェクト用バッファ長を見直す必要があります。

バックエンドサーバ及びディクショナリサーバの場合は，SQLオブジェクト用バッファヒット回数に値が含まれます。

SQLオブジェクト用バッファ中の，ストアドプロシジャのオブジェクト数

シングルサーバ及びフロントエンドサーバで，SQLオブジェクト用バッファ内に取得したストアドプロシジャのオブジェクトの件数と，オブジェクト数の最大，最小，平均値です。

バックエンドサーバ及びディクショナリサーバの場合は，SQLオブジェクト用バッファ中のSQLオブジェクト数に値が含まれます。

SQLオブジェクト用バッファ中の，ストアドプロシジャのオブジェクトの合計長（単位：バイト）

シングルサーバ及びフロントエンドサーバで，SQLオブジェクト用バッファにあるストアドプロシジャのオブジェクトを取得した回数と，オブジェクトの長さの最大，最小，平均値です。

バックエンドサーバ及びディクショナリサーバの場合は，SQLオブジェクト用バッファ中のSQLオブジェクトの合計長に値が含まれます。

SQLオブジェクト用バッファから出された，ストアドプロシジャのオブジェクトの数

シングルサーバ及びフロントエンドサーバで，新たに要求されたストアドプロシジャのオブジェクトを作成及び入力する空きバッファ作成のために，参照した後に使用されていないストアドプロシジャのオブジェクトをメモリ上で無効にした数です。

バックエンドサーバ及びディクショナリサーバの場合は，SQLオブジェクト用バッファから出されたSQLオブジェクトの数に値が含まれます。

ストアドプロシジャのオブジェクト長（単位：バイト）

シングルサーバ及びフロントエンドサーバで，SQLオブジェクト用バッファ内に取得したストアドプロシジャのオブジェクトの件数と，オブジェクトの長さの最大，最小，平均値です。

バックエンドサーバ及びディクショナリサーバの場合は，SQLオブジェクト長に値が含まれます。

ストアドプロシジャのオブジェクトのリコンパイル回数

シングルサーバ及びフロントエンドサーバで，インデクスが変更されたときにストアドプロシジャのオブジェクトをリコンパイルした回数です。

バックエンドサーバ及びディクショナリサーバの場合は該当しません。

排他制御用プールパーティションのスレッド間ロック待ち数

排他制御用プールパーティションが複数ある場合（pd_lck_pool_partitionオペランド又はpd_fes_lck_pool_partitionオペランドに2以上を指定した場合）は，排他制御用プールパーティションごとに求めたスレッド間ロック待ち数を集計して，最大，最小，平均値を出力します。

ファイルへの書き込み時間※2

HiRDBシステム又はサーバで，システムログファイルへ書き込みをした時間の最大，最小，及び平均値です。

システムログのファイル出力以外にも，システムログファイルの状態を変更するときの書き込み時間が加算されます。システムログファイルを二重化している場合には，系ごとの書き込み時間が加算されます。また，システムログブロックの書き込み時間だけでなく，システムログファイルのスワップなどでファイルの状態が変化する場合に発生する，ファイルの書き込み時間も含まれます。システムログの並列出力機能を使用している場合は，二重化されたシステムログファイルに対して並列に書き込みを行うので，どちらかの系に書き込みを始めてから，両系への書き込みを終えるまでの時間で計算します。HiRDBのバージョンが08-04より前の場合に取得した統計入力アンロードファイルを，08-04以降の統計解析ユティリティで実行すると，平均値及び最大値に0を，最小値に4.29Gを表示します。

ファイルからの読み出し時間※2

HiRDBシステム又はサーバで，ロールバックのときにシステムログファイルから読み出しをした時間の最大，最小，及び平均値です。HiRDBのバージョンが08-04より前の場合に取得した統計入力アンロードファイルを，08-04以降の統計解析ユティリティで実行すると，平均値及び最大値に0を，最小値に4.29Gを表示します。

ログ出力バッファへの書き込み回数

HiRDBシステム又はサーバで，ログ出力バッファへ書き込みをした回数です。HiRDBのバージョンが08-04より前の場合に取得した統計入力アンロードファイルを，08-04以降の統計解析ユティリティで実行すると，発生回数に0を表示します。

排他制御用プールパーティションのスレッド間ロック要求回数

排他制御用プールパーティションが複数ある場合（pd_lck_pool_partitionオペランド又はpd_fes_lck_pool_partitionオペランドに2以上を指定した場合）は，排他制御用プールパーティションごとに求めたスレッド間ロック待ち数を集計して，最大，最小，平均値を出力します。

排他制御用プールパーティションのスレッド間ロック待ち回数

排他制御用プールパーティションが複数ある場合（pd_lck_pool_partitionオペランド又はpd_fes_lck_pool_partitionオペランドに2以上を指定した場合）は，排他制御用プールパーティションごとに求めたスレッド間ロック待ち数を集計して，最大，最小，平均値を出力します。

排他制御用プールパーティションのスレッド間ロック待ち時間（単位：マイクロ秒）※1※2

pdstbegin -wコマンドを実行して，スレッド間ロック待ち時間を取得している場合に出力します。スレッド間ロック待ち時間を取得していない場合は，0を出力します。

排他制御用プールパーティションが複数ある場合（pd_lck_pool_partitionオペランド又はpd_fes_lck_pool_partitionオペランドに2以上を指定した場合）は，排他制御用プールパーティションごとに求めたスレッド間ロック待ち数を集計して，最大，最小，平均値を出力します。

ログフラッシュ待ち行列数

ログフラッシュ要求回数

ログフラッシュ待ち回数

ログフラッシュ要求時間※1※2

pdstbegin -wコマンドを実行して，スレッド間ロック待ち時間を取得している場合に出力します。スレッド間ロック待ち時間を取得していない場合は，0を出力します。

注※1

表示する値の精度は，使用するOS及びハードウェアに依存します。そのため，表示される値は実際の値より小さい場合があります。

注※2

求めた時間がOSの時刻戻しなどによって負の値となる場合は，値が0の統計情報として出力します。そのため，表示する値は実際の値より小さいことがあります。

14.3.3　UAPに関する統計情報

UAPに関する統計情報を次に示します。

pdstedit VV-RR(Object Option) ***** UAP INFORMATION *****
INPUT          :/tmp/stjdata [1]
OUTPUT RANGE   :**/**/** **:**:** - **/**/** **:**:** [2]
-----------------------------------------------------------------------------
HOST = test [3]
-----------------------------------------------------------------------------
EDIT TIME 2003/04/03 22:00:00 - 2003/04/03 23:00:00 [4]
UAP NAME [5]
  SERVICE NAME [6]               [7]   [8]   [9]   [10]  [11]  [12]  [13]
                                 EXEC  NORM  ERROR TTIME TAVG  CACHE LOCK
------------------------------   ----- ----- ----- ----- ----- ----- -----
                                 [14]  [15]  [16]  [17]  [18]  [19]
                                 LMAX  LAVG  CTIME CTAVG SVEXT SVEXA
                                 ----- ----- ----- ----- -----
                                 [20]  [21]  [22]  [23]  [24]  [25]  [26]
   *SQL OBJECT*                  REQ   RAVG  HITS  HAVG  CRT   CAVG  SMAX
                                 ----- ----- ----- ----- ----- ----- -----
         [27]  [28]  [29]  [30]  [31]  [32]  [33]  [34]  [35]  [36]  [37]
   *LN1* COMT  ROLB  FROW  DROW  IROW  UROW  SET   OPEN  FETC  CLOS  DESC
         ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
         [38]  [39]  [40]  [41]  [42]  [43]  [44]  [45]  [46]  [47]  [48]
   *LN2* SEL   INS   UPD   DEL   LOCK  CRTT  DRPT  ALTT  CRTI  DRPI  CMTT
         ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
         [49]  [50]  [51]  [52]  [53]  [54]  [55]  [56]  [57]  [58]  [59]
   *LN3* CMTC  CRTS  DRPS  GRTR  GRTS  GRTA  GRTC  GRTD  RVKR  RVKS  RVKA
         ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
         [60]  [61]  [62]  [63]  [64]  [65]  [66]  [67]  [68]  [69]  [70]
   *LN4* RVKC  RVKD  CRTV  DRPV  PRGT  CRTP  DRPP  ALTP  CALL  DESI  MISC
         ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
                                 [71]  [72]  [73]  [74]
   *STORED ROUTINE OBJECT*       REQ   RAVG  HITS  HAVG
                                 ----- ----- ----- -----
                                 [75]  [76]  [77]  [78]  [79]
   *DB ACCESS*                   MAXIO MINIO MWFN  MWFEC MWFVL
                                 ----- ----- ----- ----- -----
                                 [80]  [81]  [82]  [83]
                                 MWHTS MBSL1 MBSL2 MBSL3
                                 ----- ----- ----- -----
         [84]  [85]  [86]  [87]  [88]  [89]  [90]  [91]  [92]  [93]  [94]
   *LN1* IOTIM DIDRC DIDUC DIDHC DIDHR DIDRD DIDWT LBRFC LBUPC LBRHC LBUHC
         ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
         [95]  [96]  [97]  [98]  [99]  [100] [101] [102] [103] [104] [105]
   *LN2* LRFHR LUPHR LBRDC LBWTC BFSHC BRDWC BWTWC BLKWC WFRDC WFWTC WBFOC
         ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
         [106] [107] [108] [109] [110] [111] [112] [113]  [114] [115] [116]
   *LN3* SCHSK SCHCH LDIRC LDIUC LDIHC LDIRD LDIWT LBFSHC ARREQ ARWC  ARWT
         ----- ----- ----- ----- ----- ----- ----- -----  ----- ----- -----
         [117] [118] [119] [120] [121] [122] [123] [124] [125] [126]
   *LN4* ARSTA HJMAX HJAVG TUSEG COMPC COMPT CMPMT EXTEC EXTET EXTMT
         ----- ----- ----- ----- ----- ----- ----- -----  ----- -----
   *THREAD LOCK*
         [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
   *LN1* LCKTC LCKWC LCKWT LCKTM LCKWQ LCKQM JBFTC JBFWC JBFWT JBFTM JBFWQ
         ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
         [141] [142] [143] [144] [145] [146] [147]
   *LN2* JBFQM BUFTC BUFWC BUFWT BUFTM BUFWQ BUFQM
         ----- ----- ----- ----- ----- ----- -----
uap01
  service01
                                      12    12     0 1.70k   142 26.0k    111
                                      37     9   260    22 1.58k   132
   *SQL OBJECT*                      108     9     0     0   108     9  9.19k
   *LN1*     96      0   168     0     0     0   108   108   204   108      0 [127]
      **      8      0    14     0     0     0     9     9    17     9      0 [128]
   *LN2*      0      0     0     0     0     0     0     0     0     0      0
      **      0      0     0     0     0     0     0     0     0     0      0
   *LN3*      0      0     0     0     0     0     0     0     0     0      0
      **      0      0     0     0     0     0     0     0     0     0      0
   *LN4*      0      0     0     0     0     0     0     0     0     0      0
      **      0      0     0     0     0     0     0     0     0     0      0
   *STORED ROUTINE OBJECT*             0     0     0     0
   *DB ACCESS*                         8     0     0     0     0
                                       0     0     0     0
   *LN1*     41  2.32k     0 2.26k    97    64     0     0     0     0      0
      **      3    194     0   188           5     0     0     0     0      0
   *LN2*      0      0     0     0    64     0     0     0     0     0      0
      **                   0     0     5     0     0     0     0     0      0
   *LN3*      0      0     0     0     0     0     0     0     0     0      0
      **                   0     0     0     0     0     0     0     0      0
   *LN4*      0      0     0
      **      0      0     0
   *THREAD LOCK*
   *LN1*  1.31k      8   542   140     0     0    84    38  466k 26.5k      7
      **                  68           0                   12.3k            0
   *LN2*      1  4.71k     1    74    74     0     0
      **                        74           0
uap02
  service02
                                       8     8     0 3.43k   428 5.93k    676
                                     150    85   140    18 3.36k   420
   *SQL OBJECT*                       56     7     5     1    51     6  3.02k
   *LN1*     96     0   204     0     12     0   124   124   256   124     16
      **      5     0    10     0      1     0     6     6    13     6      1
   *LN2*      0     0    36     0     12     0    16    16    52    16     16
      **      0     2     0     0      0     0     0     0     0     0      0
   *LN3*      0     0     0     0      0     0     0     0     0     0      0
      **      0     0     0     0      0     0     0     0     0     0      0
   *LN4*      0     0     0     0      0     0     0     0     0     0      0
      **      0     0     0     0      0     0     0     0     0     0      0
   *STORED ROUTINE OBJECT*             0     0     0     0
   *DB ACCESS*                        83     0     0     0     0
                                       0     0     0     0
   *LN1*   906 2.44k   156 1.60k      66   833    66     0     0     0      0
      **     3   259     0   224            35     0     0     0     0      0
   *LN2*     0     0     0     0     900     0     1    10     0     0      0
      **                 0     0      45     0     0     1     0     0      0
   *LN3*     0     0     0     0       0     0     0     0     0     0      0
      **                 0     0       0     0     0     0     0     0      0
   *LN4*     0     0     0    14       0     0     0    24     0     0
      **     0     0     0
   *THREAD LOCK*
   *LN1* 2.34k     8   310    62       0     0    35     1  121k  121k      0
      **                39             0                    121k            0
   *LN2*     0 5.83k     2 7.54k   7.48k     0     0
      **                   3.77k             0
*TOTAL* [129]                         33    33     0 11.6k   351  4.36k     0
                                       0     0 1.88k    57 10.9k    330
   *SQL OBJECT*                      242     7    66     2   176      5 4.13k
   *LN1*   233     0   993     0       0     0   242   242 1.02k    225     0
      **   113   306    20   200           104     8     0     0      0     0
   *LN2*     0     0     0     0     836     0     1    10     0      0     0
      **                 0     0     105     0     0     1     0      0     0
   *LN3*     0     0     0     0       0     0     0     0     0      0     0
      **     0     0     0     0       0     0     0     0     0      0     0
   *LN4*     0     0     0    14       0     0     0    24     0      0     0
      **     0     0     0     0       0     0     0     0     0      0     0
   *STORED ROUTINE OBJECT*             0     0     0     0
   *DB ACCESS*                        83     0     0     0     0
                                       0     0     0     0
   *LN1*   948 4.77k   156 3.86k      81   897    66     0     0      0     0
      **    47   238     8   193            45     3     0     0      0     0
   *LN2*     0     0     0     0     900     0     1    10     0      0     0
      **                 0     0      45     0     0     1     0      0     0
   *LN3*     0     0     0     0       0     0     0     0     0      0     0
      **                 0     0       0     0     0     0     0      0     0
   *LN4*     0     0     0    14       0     0     0    24     0      0
      **     0     0     0
   *THREAD LOCK*
   *LN1* 3.65k    16   852   140       0     0   119    39  586k   121k     7
      **                53             0                   15.0k            0
   *LN2*     1 10.5k     3 7.62k   7.48k     0     0
      **                   2.54k             0
-----------------------------------------------------------------------------
FILE KIND   LOG KIND   FIRST                 LAST                         NUM
STJ         uap        2012/02/03 09:29:28   2012/02/03 09:35:13           20
-----------------------------------------------------------------------------

NO FILE KIND:LOG FILE NAME
  LOG KIND             FIRST                 LAST                         NUM
 1 STJ      :/tmp/stjdata/pdstj1
  sys                  2003/04/03 22:46:30   2003/04/03 22:46:30            2
  uap                  2003/04/03 22:45:56   2003/04/03 22:47:53           32
  sql                  2003/04/03 22:45:56   2003/04/03 22:47:53          898
  sop                  2012/02/03 09:29:27   2012/02/03 09:31:04           98
  dop                  2012/02/03 09:29:27   2012/02/03 09:31:04           92
  pcd                  ****/**/** **:**:**   ****/**/** **:**:**            0
  obj                  ****/**/** **:**:**   ****/**/** **:**:**            0
  sqh                  ****/**/** **:**:**   ****/**/** **:**:**            0
  buf                  2012/02/03 09:30:00   2012/02/03 09:32:24           21
  fil                  2012/02/03 09:30:00   2012/02/03 09:32:24          224
  dfw                  2012/02/03 09:29:30   2012/02/03 09:32:24           71
  idx                  2012/02/03 09:30:00   2012/02/03 09:32:24            7
  fsv                  ****/**/** **:**:**   ****/**/** **:**:**            0
  hba                  ****/**/** **:**:**   ****/**/** **:**:**            0
 2 STJ      :/tmp/stjdata/pdstj2
  sys                  2012/02/03 09:34:58   2012/02/03 09:37:00            6
  uap                  2012/02/03 09:34:00   2012/02/03 09:36:17           19
  sql                  2012/02/03 09:33:59   2012/02/03 09:36:17          456
  sop                  2012/02/03 09:34:02   2012/02/03 09:36:16           65
  dop                  2012/02/03 09:34:02   2012/02/03 09:36:16           96
  pcd                  ****/**/** **:**:**   ****/**/** **:**:**            0
  obj                  ****/**/** **:**:**   ****/**/** **:**:**            0
  sqh                  ****/**/** **:**:**   ****/**/** **:**:**            0
  buf                  2012/02/03 09:34:10   2012/02/03 09:36:19           27
  fil                  2012/02/03 09:34:10   2012/02/03 09:36:19          288
  dfw                  2012/02/03 09:34:04   2012/02/03 09:36:19           41
  idx                  2012/02/03 09:34:10   2012/02/03 09:36:19            9
  fsv                  ****/**/** **:**:**   ****/**/** **:**:**            0
  hba                  ****/**/** **:**:**   ****/**/** **:**:**            0

［説明］

統計入力アンロードファイル名，又は統計入力アンロードファイル格納ディレクトリ名（最大58バイト）

出力指定日時（出力開始日時−出力終了日時）

UAP又はサービスに関する統計情報の出力要求元ホスト名

編集時間の範囲（取得開始時刻−取得終了時刻）

UAP名称

統計情報を編集したUAPの名称です。

サービス名称

統計情報を編集したサービスの名称です。HiRDBにアクセスしたUAPの種類によって，出力されるサービス名称は異なります。※１

UAP又はトランザクションの実行回数

統計ログから集計した同一UAP又はトランザクションの実行回数です。

UAP実行単位にUAP統計情報を取得する場合，UAPがDISCONNECTを発行した回数を実行回数としてカウントしています。

UAP又はトランザクションの正常終了回数

統計ログから集計した同一UAP又はトランザクションの正常終了回数です。

UAP又はトランザクションの異常終了回数

統計ログから集計した同一UAP又はトランザクション内で最後に実行したトランザクションがロールバックした状態で終了した回数です。

UAP又はトランザクションの実行時間（単位：ミリ秒）

統計ログから集計した同一UAP又はトランザクションの実行時間の合計値です。

UAP実行単位にUAP統計情報を取得する場合，UAPがCONNECTを発行してからDISCONNECTを発行するまでの経過時間を実行時間としています。

UAP又はトランザクションの平均実行時間（単位：ミリ秒）

統計ログから集計した同一UAP又はトランザクションの実行時間の平均値です。

UAP実行単位にUAP統計情報を取得する場合，UAPがCONNECTを発行してからDISCONNECTを発行するまでの経過時間を実行時間としています。

表定義情報用バッファ使用サイズ（単位：バイト）

統計ログから集計した同一UAP又はトランザクションで取得した表定義情報の，表定義情報用バッファの使用サイズの平均値です。

UAP，又はトランザクションの排他待ち時間の合計値（単位：ミリ秒）※２

UAP，又はトランザクションでの排他待ち時間の合計値です。

UAP，又はトランザクションの排他待ち時間の最大値（単位：ミリ秒）※２

UAP，又はトランザクションでの排他待ち時間の最大値です。

1UAP，又は1トランザクション当たりの排他待ち時間の平均値（単位：ミリ秒）※２

1UAP，又は1トランザクション当たりの排他待ち時間の平均値です。

トランザクション内のすべてのサーバのCPU時間の合計値（単位：ミリ秒）

CPU時間の精度は，使用しているOS，及びハードウェアに依存します。したがって，CPU時間の精度が1ミリ秒より大きい環境の場合，実際の値より小さい値が表示されることがあります。

1UAP又は1トランザクション当たりのCPU時間の平均値（CTIME÷EXEC）（単位：ミリ秒）

CPU時間の精度は，使用しているOS，及びハードウェアに依存します。したがって，CPU時間の精度が1ミリ秒より大きい環境の場合，実際の値より小さい値が表示されることがあります。

UAP又はトランザクションの，シングルサーバ又はフロントエンドサーバの処理時間の合計（単位：ミリ秒）

1UAP又は1トランザクション当たりの，シングルサーバ又はフロントエンドサーバの処理時間の平均値（SVEXT÷EXEC）（単位：ミリ秒）

SQLオブジェクト取得要求回数

集計した時間内の，同一UAP又はトランザクションで発行したSQL文に対して，SQLオブジェクトの取得要求をした回数です。

UAP又はトランザクション単位のSQLオブジェクト取得要求回数

集計した時間内の，同一UAP又はトランザクションで発行したSQL文に対して，SQLオブジェクトの取得要求をした1回のUAP又はトランザクション実行単位の平均取得要求回数です。

SQLオブジェクト用バッファヒット回数

集計した時間内の，同一UAP又はトランザクションで発行したSQL文に対して，取得要求したSQLオブジェクトがSQLオブジェクト用バッファ内で見付かった回数です。

UAP又はトランザクション単位のSQLオブジェクト用バッファヒット回数

集計した時間内の，同一UAP又はトランザクションで発行したSQL文に対して，取得要求したSQLオブジェクトがSQLオブジェクト用バッファで見付かった，1回のUAP又はトランザクション実行単位の平均ヒット回数です。

SQLオブジェクト作成回数

集計した時間内の，同一UAP又はトランザクションで発行したSQL文に対してSQLオブジェクトを作成した回数です。

UAP又はトランザクション単位のSQLオブジェクト作成回数

集計した時間内の，同一UAP又はトランザクションで発行したSQL文に対して，SQLオブジェクトを作成した1回のUAP又はトランザクション実行単位の平均作成回数です。

この値が大きい場合は，SQLオブジェクト用バッファ長を大きくする必要があります。

作成したSQLオブジェクトの最大長（単位：バイト）

集計した時間内の，同一UAP又はトランザクションで発行したSQL文に対して作成したSQLオブジェクトの最大長です。

COMMIT文実行回数

集計した時間内の，同一UAP又はトランザクションで発行したCOMMIT文の実行回数です。

ROLLBACK文実行回数

集計した時間内の，同一UAP又はトランザクションで発行したROLLBACK文の実行回数です。

実検索行数

集計した時間内の，同一UAP又はトランザクションで発行したFETCH文及びSELECT文の実行によって，UAP又はトランザクションに返した検索行数です。

実削除行数

集計した時間内の，同一UAP又はトランザクションで発行したDELETE文の実行によって削除した行数です。

実挿入行数

集計した時間内の，同一UAP又はトランザクションで発行したINSERT文の実行によって挿入した行数です。

実更新行数

集計した時間内の，同一UAP又はトランザクションで発行したUPDATE文の実行によって更新した行数です。

SETUP実行回数

集計した時間内の，同一UAP又はトランザクションでの前処理実行回数です。

OPEN文実行回数

集計した時間内の，同一UAP又はトランザクションでのOPEN文の実行回数です。

FETCH文実行回数

集計した時間内の，同一UAP又はトランザクションでのFETCH文の実行回数です。

CLOSE文実行回数

集計した時間内の，同一UAP又はトランザクションでのCLOSE文の実行回数です。

DESCRIBE文実行回数

集計した時間内の，同一UAP又はトランザクションでのDESCRIBE文の実行回数です。

SELECT文実行回数

集計した時間内の，同一UAP又はトランザクションでのSELECT文の実行回数です。

INSERT文実行回数

集計した時間内の，同一UAP又はトランザクションでのINSERT文の実行回数です。

UPDATE文実行回数

集計した時間内の，同一UAP又はトランザクションでのUPDATE文の実行回数です。

DELETE文実行回数

集計した時間内の，同一UAP又はトランザクションでのDELETE文の実行回数です。

LOCK文実行回数

集計した時間内の，同一UAP又はトランザクションでのLOCK文の実行回数です。

CREATE TABLE実行回数

集計した時間内の，同一UAP又はトランザクションでのCREATE TABLEの実行回数です。

DROP TABLE実行回数

集計した時間内の，同一UAP又はトランザクションでのDROP TABLEの実行回数です。

ALTER TABLE実行回数

集計した時間内の，同一UAP又はトランザクションでのALTER TABLEの実行回数です。

CREATE INDEX実行回数

集計した時間内の，同一UAP又はトランザクションでのCREATE INDEXの実行回数です。

UAP又はトランザクションで発行したDROP INDEXの実行回数

集計した時間内の，同一UAP又はトランザクションでのDROP INDEXの実行回数です。

COMMENT（TABLE）実行回数

集計した時間内の，同一UAP又はトランザクションでのCOMMENT（TABLE）の実行回数です。

COMMENT（COLUMN）実行回数

集計した時間内の，同一UAP又はトランザクションでのCOMMENT（COLUMN）の実行回数です。

CREATE SCHEMA実行回数

集計した時間内の，同一UAP又はトランザクションでのCREATE SCHEMAの実行回数です。

DROP SCHEMA実行回数

集計した時間内の，同一UAP又はトランザクションでのDROP SCHEMAの実行回数です。

GRANT RDAREA実行回数

集計した時間内の，同一UAP又はトランザクションでのGRANT RDAREAの実行回数です。

GRANT SCHEMA実行回数

集計した時間内の，同一UAP又はトランザクションでのGRANT SCHEMA及びGRANT SCHEMA OPERATIONの実行回数です。

GRANT アクセス権限実行回数

集計した時間内の，同一UAP又はトランザクションでのGRANT アクセス権限の実行回数です。

GRANT CONNECT実行回数

集計した時間内の，同一UAP又はトランザクションでのGRANT CONNECTの実行回数です。

GRANT DBA実行回数

集計した時間内の，同一UAP又はトランザクションでのGRANT DBAの実行回数です。

REVOKE RDAREA実行回数

集計した時間内の，同一UAP又はトランザクションでのREVOKE RDAREAの実行回数です。

REVOKE SCHEMA実行回数

集計した時間内の，同一UAP又はトランザクションでのREVOKE SCHEMA及びREVOKE SCHEMA OPERATIONの実行回数です。

REVOKE アクセス権限実行回数

集計した時間内の，同一UAP又はトランザクションでのREVOKE アクセス権限の実行回数です。

REVOKE CONNECT実行回数

集計した時間内の，同一UAP又はトランザクションでのREVOKE CONNECTの実行回数です。

REVOKE DBA実行回数

集計した時間内の，同一UAP又はトランザクションでのREVOKE DBAの実行回数です。

CREATE VIEW実行回数

集計した時間内の，同一UAP又はトランザクションでのCREATE VIEWの実行回数です。

DROP VIEW実行回数

集計した時間内の，同一UAP又はトランザクションでのDROP VIEWの実行回数です。

PURGE TABLE文実行回数

集計した時間内の，同一UAP又はトランザクションでのPURGE TABLE文の実行回数です。

CREATE PROCEDURE実行回数

集計した時間内の，同一UAP又はトランザクションでのCREATE PROCEDUREの実行回数です。

DROP PROCEDURE実行回数

集計した時間内の，同一UAP又はトランザクションでのDROP PROCEDUREの実行回数です。

ALTER PROCEDURE実行回数

集計した時間内の，同一UAP又はトランザクションでのALTER PROCEDUREの実行回数です。

CALL文実行回数

集計した時間内の，同一UAP又はトランザクションでのCALL文の実行回数です。

DESCRIBE文（INPUT）実行回数

集計した時間内の，同一UAP又はトランザクションでのDESCRIBE文（INPUT）の実行回数です。

そのほかの実行回数

集計した時間内の，同一UAP又はトランザクションでのそのほかの実行回数です。

ストアドプロシジャのオブジェクトの取得要求回数

集計した時間内の，同一UAP又はトランザクションで発行したSQL文に対してストアドプロシジャのオブジェクトの取得要求をした回数です。

UAP又はトランザクション単位の，ストアドプロシジャのオブジェクトの取得要求回数

集計した時間内で，同一UAP又はトランザクションで発行したSQL文に対してストアドプロシジャのオブジェクトの取得要求をした場合の，1回のUAP又はトランザクション実行単位の平均取得要求回数です。

SQLオブジェクト用バッファヒット回数

集計した時間内の，同一UAP又はトランザクションで発行したSQL文に対して取得要求したストアドプロシジャのオブジェクトが，SQLオブジェクト用バッファ内で見付かった回数です。

UAP又はトランザクション単位のSQLオブジェクト用バッファヒット回数

集計した時間内で，同一UAP又はトランザクションで発行したSQL文に対して取得要求したストアドプロシジャのオブジェクトが，SQLオブジェクト用バッファ内で見付かった場合の，1回のUAP又はトランザクション実行単位の平均ヒット回数です。

1回のデータベースの入出力に掛かった最大時間（単位：ミリ秒）

1回のデータベースの入出力に掛かった最小時間（単位：ミリ秒）

UAPでの作業表用ファイルの最大使用数

UAPでの作業表用ファイルの最大増分数

UAPでの作業表用ファイルの最大容量（単位：メガバイト）

ハッシュジョイン，副問合せのハッシュ実行で，処理したハッシュデータを一度に展開するために必要なハッシュサイズの推定値（単位：キロバイト）

ハッシュジョイン，副問合せのハッシュ実行で，1レベルバケット分割の後の最大バケットサイズ（単位：キロバイト）

ハッシュジョイン，副問合せのハッシュ実行で，2レベルバケット分割の後の最大バケットサイズ（単位：キロバイト）

ハッシュジョイン，副問合せのハッシュ実行で，3レベルバケット分割の後の最大バケットサイズ（単位：キロバイト）

データベースに対する入出力時間の合計（単位：ミリ秒）※３

データページ，インデクスページ，及びディレクトリページを参照した回数※３

データページ，インデクスページ，及びディレクトリページを更新した回数※３

データページ，インデクスページ，及びディレクトリページがバッファヒットした回数※３

データページ，インデクスページ，及びディレクトリページのバッファヒット率（DIDHC÷DIDRC）（単位：％）

データページ，インデクスページ，及びディレクトリページの実READ数※３

データページ，インデクスページ，及びディレクトリページを実WRITE数※３

LOB列のデータページを参照した回数※３

LOB列のデータページを更新した回数※３

LOB列のデータページの参照でバッファヒットした回数※３

LOB列のデータページの更新でバッファヒットした回数※３

LOB列のデータページの参照でのバッファヒット率（LBRHC÷LBRFC）（単位：％）

LOB列のデータページの更新でのバッファヒット率（LBUHC÷LBUPC）（単位：％）

LOB列のデータページの実READ回数※３

LOB列のデータページの実WRITE回数※３

グローバルバッファフラッシュ回数※３

グローバルバッファREAD待ち発生回数※３

グローバルバッファWRITE待ち発生回数※３

グローバルバッファ排他待ち発生回数※３

作業表のデータを，作業表用ファイルからグローバルバッファへ読み込んだ回数※３

作業表のデータを，グローバルバッファから作業表用ファイルへ書き込んだ回数※３

作業表用バッファが不足したため，使用中の作業表用バッファを強制的に作業表用ファイルへ出力した回数※３

SEGMENT REUSE指定の表で，新規ページ追加モードから空きページ再利用モードに切り替わった直後のページサーチで，再利用できる空き領域がなく，再度新規ページ追加モードへ戻った回数※３

SEGMENT REUSE指定の表で，新規ページ追加モードから空きページ再利用モードに切り替わった回数※３

該当するUAPから，ローカルバッファを使用してデータページ，及びインデクスページを参照した回数※３

該当するUAPから，ローカルバッファを使用してデータページ，及びインデクスページを更新した回数※３

ローカルバッファでのデータページ，及びインデクスページのバッファヒット回数※３

ランダムアクセスするUAPで，バッファヒット率（LDIHC÷LDIRC×100）が低い場合は，そのローカルバッファのチューニングをする必要があります。

該当するUAPからの，ローカルバッファを使用したデータページ，及びインデクスページの実READ回数※３

プリフェッチ機能を使用している場合，プリフェッチで先読みしたREAD回数も含まれます。バッファヒット率（LDIHC÷LDIRC×100）が低い場合，実READ回数も多くなります。

該当するUAPからの，ローカルバッファを使用したデータページ，及びインデクスページの実WRITE回数※３

ローカルバッファフラッシュ回数（新たなページを入力する空きバッファを作成するために，バッファを無効にした回数）※３

非同期READ機能使用時，非同期READプロセスに一括先読み処理を要求した回数※３

非同期READ機能使用時，非同期READプロセスの一括先読み処理での同期待ち発生回数※３

非同期READ機能使用時，非同期READプロセスの一括先読み処理での同期待ち時間（単位：ミリ秒）※３

非同期READ機能使用時，最初の先頭ページ一括読み込みでの同期READ時間（単位：ミリ秒）※３

ハッシュジョイン，副問合せのハッシュ実行でのハッシュ分割表検索時の最大比較回数

ハッシュジョイン，副問合せのハッシュ実行でのハッシュ分割表検索時の平均比較回数※３

一時表を使用するSQL実行時の使用セグメント数の合計

データ圧縮処理の総実行回数※４

圧縮列にデータを挿入，及び圧縮列のデータを更新するときに発生したデータ圧縮処理の総実行回数です。

データ圧縮処理の総実行時間（単位：ミリ秒）※４

圧縮列にデータを挿入，及び圧縮列のデータを更新するときに発生した，すべてのデータ圧縮処理に掛かった時間です。

データ圧縮処理の最大実行時間（単位：ミリ秒）※４

圧縮列にデータを挿入，又は圧縮列のデータを更新するときに発生した，データ圧縮処理1件ごとに掛かった時間の最大値です。

データ伸張処理の総実行回数※４

圧縮列のデータを検索，又は更新するときに発生したデータ伸張処理の総実行回数です。

データ伸張処理の総実行時間（単位：ミリ秒）※４

圧縮列のデータを検索，又は更新するときに発生した，すべてのデータ伸張処理に掛かった時間（概算値）です。

データ伸張処理の最大実行時間（単位：ミリ秒）※４

圧縮列のデータを検索，又は更新するときに発生した，データ伸張処理1件ごとに掛かった時間の最大値です。

1回のUAP又はトランザクション実行ごとの，各項目の合計値

1回のUAP又はトランザクション実行ごとの，各項目の平均値

全体の各項目の合計値

排他制御用プールパーティションのスレッド間ロック要求回数

排他制御用プールパーティションのスレッド間ロック待ち回数

排他制御用プールパーティションのスレッド間ロック待ち時間の合計値（単位：マイクロ秒）※５※６

このUAPの排他制御用プールパーティションのスレッド間ロック待ち時間の合計値を表示します。平均値は排他制御用プールパーティションのスレッド間ロック待ち1件の待ち時間です。

排他制御用プールパーティションのスレッド間ロック待ち時間の最大値※５※６

このUAPの排他制御用プールパーティションのスレッド間ロック待ち時間の最大値を表示します。

排他制御用プールパーティションのスレッド間ロック待ち行列数の合計値

このUAPの排他制御用プールパーティションのスレッド間ロック待ち行列数を表示します。平均値は，排他制御用プールパーティションのスレッド間ロック1件の待ち時間です。

排他制御用プールパーティションの待ち行列数の最大値

このUAPの排他制御用プールパーティションのスレッド間ロック待ち行列数の最大値を表示します。

ログフラッシュ要求回数

ログフラッシュ待ち回数

ログフラッシュ待ち時間の合計値（単位：マイクロ秒）※５※６

このUAPのログフラッシュのスレッド間ロック待ち時間の合計値を表示します。平均値は，ログフラッシュのスレッド間ロック1件の待ち時間です。

ログフラッシュ待ち時間の最大値（単位：マイクロ秒）※５※６

このUAPのログフラッシュのスレッド間ロック待ち時間の最大値を表示します。

ログフラッシュ待ち行列数の合計値

このUAPのログフラッシュのスレッド間ロック待ち行列数の合計値を表示します。平均値は，ログフラッシュのスレッド間ロック1件の待ち行列数です。

ログフラッシュ待ち行列数の最大値

このUAPのログフラッシュ待ち行列数の最大値を表示します。

グローバルバッファプールのスレッド間ロック要求回数

グローバルバッファプールのスレッド間ロック待ち回数

グローバルバッファプールのスレッド間ロック待ち時間の合計値（単位：マイクロ秒）※５※６

このUAPのグローバルバッファの排他獲得処理によるスレッド間ロック待ち時間の合計値を表示します。平均値は，グローバルバッファプールのスレッド間ロック待ち1件の待ち時間です。

グローバルバッファプールのスレッド間ロック待ち時間の最大値（単位：マイクロ秒）※５※６

このUAPのグローバルバッファの排他獲得処理によるスレッド間ロック待ち時間の最大値を表示します。

グローバルバッファプールのスレッド間ロック待ち行列数

このUAPのグローバルバッファの排他獲得処理によるスレッド間ロック待ち行列数の合計値を表示します。平均値は，グローバルバッファプールのスレッド間ロック待ち1件の待ち行列数です。

グローバルバッファプールのスレッド間ロック待ち行列数の最大値

このUAPのグローバルバッファの排他獲得処理によるスレッド間ロック待ち行列数の最大値を表示します。

注※1

UAPの種類と出力されるサービス名称を次に示します。

UAPの種類

出力されるサービス名称

OpenTP1のUAP

OpenTP1のSUP（サービス利用プログラム）がSPP（サービス提供プログラム）に要求したサービス

該当するサービス名称

TP1/Message ControlがMHP（メッセージ処理プログラム）に要求したサービス

上記以外

連続した31個の＊（アスタリスク）

OpenTP1以外のUAP

注※2

HiRDB/パラレルサーバの場合，トランザクション内で発生したすべての排他待ち時間（並列処理も含む）の合計値となります。

注※3

トランザクション単位に情報を出力する場合は，CONNECTからの累積値となります。

注※4

この項目はBINARY型のデータに対する情報です。

注※5

pdstbeginコマンドの-wオプションを指定し，スレッド間ロック待ち時間を取得している場合に出力します。pdstbeginコマンドの-wオプションについては，「pdstbegin（統計情報の出力開始）のオプション」を参照してください。

注※6

表示する値の精度は，使用するOS及びハードウェアに依存します。そのため，表示される値は実際の値より小さい場合があります。

14.3.4　SQLに関する統計情報

SQLに関する統計情報を次に示します。

pdstedit VV-RR          ***** SQL INFORMATION *****
INPUT          :/tmp/pdstj1 [1]
OUTPUT RANGE   :**/**/** **:**:** - **/**/** **:**:** [2]
-----------------------------------------------------------------------------
HOST = test [3]
-----------------------------------------------------------------------------
FES = fes01 [4]
-----------------------------------------------------------------------------
EDIT TIME 2001/09/30 00:00:00 - 2001/09/31 00:00:00 [5]
UAP NAME [6]
  SERVICE NAME [7]                 [8]   [9]   [10]  [11]
                                   PDATA PDAVG BES#  B#AVG
------------------------------     ----- ----- ----- -----
         [12] [13]     [14]  [15]  [16]  [17]  [18]  [19]  [20]  [21]
         KIND SERV     EXEC  TTIME FTCR  INSR  UPDR  DELR  CRTL  DRPL
         ---- -------- ----- ----- ----- ----- ----- ----- ----- -----

uap01
  service01
                                    745k   270     0     0
   *CNT* SQL           2.82k  272M     0   532     0     0     0     0 [22]
      **                     96.5k     0     0     0     0     0     0 [23]
   *CNT* FSQL              0     0     0     0     0     0 [22]
      **                         0     0     0     0     0 [23]
uap02
  service02
                                    467k    60     0     0
   *CNT* SQL           7.90k 79.0M 7.55k     0     0     0     0     0
      **                     10.0k     1     0     0     0     0     0
   *CNT* FSQL              0     0     0     0     0     0
      **                         0     0     0     0     0
uap03
  service03
                                   11.2M   461     0     0
   *CNT* SQL           25.5k  310M 5.39k     0     0     0     0     0
      **                     12.2k     0     0     0     0     0     0
   *CNT* FSQL              0     0     0     0     0     0
      **                         0     0     0     0     0
uap04
  service04
                                   7.50M   534     0     0
   *CNT* SQL           14.7k  192M 5.99k   716   728   716     0     0
      **                     13.1k     0     0     0     0     0     0
   *CNT* FSQL              0     0     0     0     0     0
      **                         0     0     0     0     0
*TOTAL*[24]                        19.9M   410     0     0
   *CNT* SQL           51.0k  854M 18.9k 1.25k   728   716     0     0
      **                     16.8k     0     0     0     0     0     0
   *CNT* FSQL              0     0     0     0     0     0
      **                         0     0     0     0     0
-----------------------------------------------------------------------------
FILE KIND   LOG KIND   FIRST                 LAST                         NUM
STJ         sql        2001/09/30 10:36:37   2001/09/30 12:34:03        50971
-----------------------------------------------------------------------------

［説明］

統計入力アンロードファイル名，又は統計入力アンロードファイル格納ディレクトリ名（最大58バイト）

出力指定日時（出力開始日時−出力終了日時）

SQLに関する統計情報の出力要求元ホスト名

SQLを実行したフロントエンドサーバの名称

編集時間の範囲（取得開始時刻−取得終了時刻）

UAP名称

統計情報を編集したUAPの名称です。

サービス名称

統計情報を編集したサービスの名称です。HiRDBにアクセスしたUAPの種類によって，出力されるサービス名称は異なります。※

作成したSQLオブジェクトの長さ（単位：バイト）

UAP又はサービス内で発行したSQL文の実行によって作成した，SQLオブジェクトの長さです。

作成したSQLオブジェクトの長さの平均値（単位：バイト）

UAP又はサービス内で発行したSQL文に対して作成した，SQLオブジェクトの長さの平均値です。

この値は，作成したSQLオブジェクトの長さ÷SQL実行回数で算出した値です。

使用したバックエンドサーバの数

UAP又はサービス内で発行したSQL文に対して使用した，バックエンドサーバの数です。

使用したバックエンドサーバの数の平均値

UAP又はサービス内で発行したSQL文に対して使用した，バックエンドサーバの数の平均値です。

出力情報の種別

SQLの欄には，SQLの情報が表示されます。

FSQLの欄は，確認する必要はありません。この欄には，0又は****が表示されます。

システムが使用する情報（ユーザ未使用）

SQL実行回数

UAP又はサービス内で発行したSQL文の実行回数です。

SQL実行時間（単位：マイクロ秒）

UAP又はサービス内で発行したSQL文の処理時間の総和です。

検索行数

UAP又はサービス内で発行した，FETCH文及びSELECT文での検索行数です。

挿入行数

UAP又はサービス内で発行した，INSERT文での挿入行数です。

更新行数

UAP又はサービス内で発行した，UPDATE文での更新行数です。

削除行数

UAP又はサービス内で発行した，DELETE文での削除行数です。

作業表作成回数

UAP又はサービス内で発行したSQL文によって，内部処理で作成した作業表の作成回数です。

作業表削除回数

UAP又はサービス内で発行したSQL文によって，内部処理で作成した作業表の削除回数。ただし，エラーが発生した場合は，作業表の削除回数が正しく表示されない場合があります。

各項目の合計値

合計値が表示されます。

平均値（各項目の合計値÷実行回数）が表示されます。

全体の各項目の合計値

注※

UAPの種類と出力されるサービス名称を次に示します。

UAPの種類

出力されるサービス名称

OpenTP1のUAP

OpenTP1のSUP（サービス利用プログラム）がSPP（サービス提供プログラム）に要求したサービス

該当するサービス名称

TP1/Message ControlがMHP（メッセージ処理プログラム）に要求したサービス

上記以外

連続した31個の＊（アスタリスク）

OpenTP1以外のUAP

14.3.5　グローバルバッファプールに関する統計情報

グローバルバッファプールに関する統計情報を次に示します。

参考

グローバルバッファプールに関する統計情報には，インメモリデータバッファの情報も出力されますが，各項目の出力値は概算値となります。

pdstedit VV-RR(Object Option) ***** GLOBAL BUFFER INFORMATION *****
INPUT          :/tmp/stjdata [1]
OUTPUT RANGE   :**/**/** **:**:** - **/**/** **:**:** [2]
-----------------------------------------------------------------------------
HOST = test [3]
-----------------------------------------------------------------------------
EDIT TIME 2003/04/03 22:00:00 - 2003/04/03 23:00:00 [4]
               [5]   [6]   [7]   [8]  [9]    [10]  [11]  [12] [13]  [14]
         *LN1* SYNCW MAXB  UPGET UPHIT(HIT)  UPFLS RFGET RFHIT(HIT) RFFLS
               ----- ----- ----- ----- ---   ----- ----- ----- ---  -----
               [15]  [16]  [17]  [18]  [19]  [20]  [21]  [22] [23]  [24]
         *LN2* READ  WRITE WAITR WAITW WAITL BFINS PRRED PRHIT(HIT) PRINS
               ----- ----- ----- ----- ----- ----- ----- ----- ---  -----
               [25]  [26]  [27]  [28]  [29]  [30]  [31]  [32]       [33]
         *LN3* GBHIT CURRF CURUP TRGUP SYNCC PRRDR LRDRC LWTRC      LBBKR
               ----- ----- ----- ----- ----- ----- ----- -----      -----
               [34]  [35]  [36]  [37]  [38]     [39]  [40]     [41]  [42]
         *LN4* LBBKW CINSM CFMAX CFAVG SLEPC    SLEPR SLEPA    SPINR SPINA
               ----- ----- ----- ----- -------- ----- -------- ----- -----
               [43]  [44]  [45]  [46]  [51]  [52]
         *LN5* SYNCL SYNCB ALTRW ALTUW BUFWT BUFWQ
               ----- ----- ----- ----- ----- -----
SERVER :  sds [47]
  *BUFFER NAME:bp01 [48]            BUFFER:   100 [49]
         *LN1*     0     3 2.19k 1.55k( 37)    264 2.04k 1.42k( 33)   702
         *LN2*   663   692     0     6     0     0     0     0(  0)     0
         *LN3*    70 1.60k     0   800     4     0     0     0          0
         *LN4*     0     0     0  ****  0.0e+00   0.0  *******   0.8  277
         *LN5*  178k     0     0     0    57     0
  *BUFFER NAME:bp02                 BUFFER:   100
         *LN1*     0     4 2.19k 1.56k( 37)    302 2.04k 1.44k( 34)   640
         *LN2*   638   692     0     5     0     0     0     0(  0)     0
         *LN3*    71 1.60k     0   800     4     0     0     0          0
         *LN4*     0     0     0  ****  2.0e+00   0.0  1.5e+00   1.0  356
         *LN5*  178k     0     0     0 3.07k     0
  *BUFFER NAME:bp03                 BUFFER:   100
         *LN1*     0     3 2.61k 2.38k( 24)      0 7.35k 7.16k( 72)   184
         *LN2*   372 1.15k     0     1    10     0     0     0(  0)     0
         *LN3*    96 1.60k     0   800     8     0     0     0          0
         *LN4*     0     0     0  ****  5.0e+00   0.0  1.2e+00   0.5  481
         *LN5*  259k     0     0     0 8.70k     1
  *TOTAL* [50]
         *LN1*     0     4 7.00k 5.49k( 30)    566 11.4k 10.0k( 54) 1.53k
         *LN2* 1.67k 2.54k     0    12    10     0     0     0(  0)     0
         *LN3*    84 4.79k     0 2.40k    16     0     0     0          0
         *LN4*     0     0     0  ****  7.0e+00   0.0  1.3e+00   0.7  380
         *LN5*  205k           0     0 11.8k     1
-----------------------------------------------------------------------------
FILE KIND   LOG KIND   FIRST                 LAST                         NUM
STJ         buf        2012/02/03 09:30:00   2012/02/03 09:36:19           48
-----------------------------------------------------------------------------

NO FILE KIND:LOG FILE NAME
  LOG KIND             FIRST                 LAST                         NUM
 1 STJ      :/tmp/stjdata/pdstj01
  sys                  2012/02/03 09:30:49   2012/02/03 09:31:50            4
  uap                  2012/02/03 09:29:26   2012/02/03 09:31:04           26
  sql                  2012/02/03 09:29:25   2012/02/03 09:31:04          440
  sop                  2012/02/03 09:29:27   2012/02/03 09:31:04           98
  dop                  2012/02/03 09:29:27   2012/02/03 09:31:04           92
  pcd                  ****/**/** **:**:**   ****/**/** **:**:**            0
  obj                  ****/**/** **:**:**   ****/**/** **:**:**            0
  sqh                  ****/**/** **:**:**   ****/**/** **:**:**            0
  buf                  2012/02/03 09:30:00   2012/02/03 09:32:24           21
  fil                  2012/02/03 09:30:00   2012/02/03 09:32:24          224
  dfw                  2012/02/03 09:29:30   2012/02/03 09:32:24           71
  idx                  2012/02/03 09:30:00   2012/02/03 09:32:24            7
  fsv                  ****/**/** **:**:**   ****/**/** **:**:**            0
  hba                  ****/**/** **:**:**   ****/**/** **:**:**            0
 2 STJ      :/tmp/stjdata/pdstj02
  sys                  2012/02/03 09:34:58   2012/02/03 09:37:00            6
  uap                  2012/02/03 09:34:00   2012/02/03 09:36:17           19
  sql                  2012/02/03 09:33:59   2012/02/03 09:36:17          456
  sop                  2012/02/03 09:34:02   2012/02/03 09:36:16           65
  dop                  2012/02/03 09:34:02   2012/02/03 09:36:16           96
  pcd                  ****/**/** **:**:**   ****/**/** **:**:**            0
  obj                  ****/**/** **:**:**   ****/**/** **:**:**            0
  sqh                  ****/**/** **:**:**   ****/**/** **:**:**            0
  buf                  2012/02/03 09:34:10   2012/02/03 09:36:19           27
  fil                  2012/02/03 09:34:10   2012/02/03 09:36:19          288
  dfw                  2012/02/03 09:34:04   2012/02/03 09:36:19           41
  idx                  2012/02/03 09:34:10   2012/02/03 09:36:19            9
  fsv                  ****/**/** **:**:**   ****/**/** **:**:**            0
  hba                  ****/**/** **:**:**   ****/**/** **:**:**            0

［説明］

統計入力アンロードファイル名，又は統計入力アンロードファイル格納ディレクトリ名（最大58バイト）

出力指定日時（出力開始日時−出力終了日時）

グローバルバッファプールに関する統計情報の出力要求元ホスト名

編集時間の範囲（取得開始時刻−取得終了時刻）

シンクポイント出力ページ数

シンクポイント取得時にグローバルバッファプールからHiRDBファイルに出力したページ数の最大値です。

この値が大きい場合，該当するグローバルバッファプールに対しての更新ページの発生が多く，かつデファードライトトリガ時の更新ページ出力比率が低いために，出力されていないページがグローバルバッファプール上に多く残っていると考えられます。デファードライトトリガ時の更新ページ出力比率を高くできないか検討してください。

最大同時要求バッファ面数

グローバルバッファプールに対して，複数のトランザクションから同時に要求したグローバルバッファプールの取得要求回数です。

この値がグローバルバッファ面数とほぼ同じで，かつバッファ不足発生回数が0でない場合，バッファが不足していると考えられます。

更新GET回数

グローバルバッファプールに対して，更新のためのバッファ取得を要求した回数です。

更新バッファヒット回数

グローバルバッファプールに対するバッファ取得の要求ページが，更新されたバッファとして見付かった回数です。

更新バッファヒット率（単位：％）

更新GET回数と参照GET回数の合計に対する更新バッファヒット回数の割合です。更新GET回数と参照GET回数に対して，目的のページが既に更新されたバッファとして物理的な入出力なしにグローバルバッファプール上で見付かった確率を示します。

この値は，次の計算式から求めています。

　更新バッファヒット率＝
　　（更新バッファヒット回数÷（参照GET回数＋更新GET回数））
　　×100

更新バッファフラッシュ回数

参照終了したバッファが更新されている場合，その内容をHiRDBファイルへ出力してから新たなページを入力する空きバッファを作成するために，そのバッファを無効にした回数です。

この回数が多い場合，デファードライト処理の効果がないと考えられます。この場合，グローバルバッファプールの面数を大きくするか，又はデファードライトトリガ時の更新ページ出力比率を小さくする必要があります。

参照GET回数

グローバルバッファプールに対して，参照のためのバッファ取得を要求した回数です。

参照バッファヒット回数

グローバルバッファプールにするバッファ取得要求のページが，参照された（更新されていない）バッファとして見付かった回数です。

参照バッファヒット率（単位：％）

参照GET回数と更新GET回数の合計に対する参照バッファヒット回数の割合です。参照GET回数と更新GET回数に対して，目的のページが物理的な入出力なしにグローバルバッファプール上で見付かった確率を示します。

この値は，次の計算式から求めています。

　参照バッファヒット率＝
　　（参照バッファヒット回数÷（参照GET回数＋更新GET回数））
　　×100

参照バッファフラッシュ回数

参照終了したバッファがその後使用されていないので，新たなページを入力する空きバッファを作成するために，そのバッファを無効にした回数です。

実READ回数

HiRDBファイルからページを入力した回数です。

実WRITE回数

HiRDBファイルへページを出力した回数です。

入力待ち発生回数

バッファ上のページが，ほかのユーザによってHiRDBファイルからの入力中であったため，待ち状態になった回数です。

出力待ち発生回数

バッファ上のページが，ほかのユーザによってHiRDBファイルへの出力中であったため，待ち状態になった回数です。

バッファ排他待ち発生回数

バッファ上のページが，ほかのユーザによって使用中であったため，待ち状態になった回数です。

バッファ不足発生回数

バッファ（定義したバッファ面数）が，すべて参照中又は更新中で使用されているため，空きバッファのない状態が発生した回数です。

この回数は，0にする必要があります。

プリフェッチ入力ページ数

プリフェッチ対象としてメモリに入力したページ数です。

プリフェッチヒット回数

プリフェッチ対象として入力したページがメモリ上でヒットした回数です。

プリフェッチヒット率（単位：％）

プリフェッチ入力ページ数に対するプリフェッチヒット回数の割合です。

プリフェッチ実行資源不足発生回数

プリフェッチ実行のための資源が不足した回数です。

グローバルバッファのヒット率（単位：％）

グローバルバッファのヒット率は80％を目安とします。80％以下の場合は，バッファ面数を増やす必要があります。

カレントの参照バッファ数

カレントの更新バッファ数

デファードライトトリガ時の出力契機となる更新バッファ数

シンクポイントの発生回数

プリフェッチのREAD要求回数

LOB用グローバルバッファのREAD要求回数

LOB用グローバルバッファのWRITE要求回数

LOB用グローバルバッファの一括入力ページ数

LOB用グローバルバッファの一括出力ページ数

システムが使用する情報（ユーザ未使用）

システムが使用する情報（ユーザ未使用）

システムが使用する情報（ユーザ未使用）

グローバルバッファプール（一つのpdbufferで定義したバッファ全体）の排他処理での，排他競合待ちとなった回数

グローバルバッファプール（一つのpdbufferで定義したバッファ全体）の排他処理での，排他競合待ち発生率（単位：％）

スリープ処理実行での，グローバルバッファプール（一つのpdbufferで定義したバッファ全体）の排他処理のスリープ処理実行回数の平均値

スピン処理実行での，グローバルバッファプール（一つのpdbufferで定義したバッファ全体）の排他処理発生率（単位：％）

グローバルバッファプール（一つのpdbufferで定義したバッファ全体）の排他処理中の，スピンループの実行回数の平均値

シンクポイント時のバッファプール排他占有時間（単位：マイクロ秒）

シンクポイント時のバッファプール排他占有時間内の処理バッファ数

シンクポイント時の参照要求ヒットによるデータベース書き込み処理代行回数

シンクポイント時の更新要求ヒットによるデータベース書き込み処理代行回数

サーバ名

グローバルバッファプールに関する統計情報の出力要求元サーバです。

グローバルバッファプール名

統計情報を編集したグローバルバッファプールの名称です。

グローバルバッファプールのバッファ面数

該当するグローバルバッファプールのバッファ面数です。

各項目の合計値

グローバルバッファの排他獲得処理での排他競合待ち時間（単位：マイクロ秒）※1※2

グローバルバッファの排他獲得処理での排他競合待ち行列数

注※1

表示する値の精度は，使用するOS及びハードウェアに依存します。そのため，表示される値は実際の値より小さい場合があります。

注※2

pdstbeginコマンドに-wオプションを指定し，スレッド間ロック待ち時間を取得している場合に出力します。pdstbeginコマンドの-wオプションについては，「pdstbegin（統計情報の出力開始）のオプション」を参照してください。

14.3.6　データベース操作に関するHiRDBファイルの統計情報

データベース操作に関するHiRDBファイルの統計情報を次に示します。

pdstedit VV-RR          ***** HiRDB FILE INFORMATION *****
INPUT          :/tmp/pdstj1 [1]
OUTPUT RANGE   :**/**/** **:**:** - **/**/** **:**:** [2]
-----------------------------------------------------------------------------
HOST = test [3]
-----------------------------------------------------------------------------
EDIT TIME 1996/10/30 00:00:00 - 1996/10/31 00:00:00 [4]
               [5]    [6]    [7]    [8]    [9]    [10]   [11]   [12]
         *LN1* SYNC-R SYNC-W AIO-R  AIO-W  LISTIO OPEN   CLOSE  IOERR
               -----  -----  -----  -----  -----  -----  -----  -----
SERVER : sds [13]
 *FILE NAME : /tmp/si1/kado/single/pddir/iospt0/h001 [14]
   *RDAREA NAME :RDMASTER [15]
         *LN1*    67    142      0     85     85      8      7      0
 *FILE NAME : /tmp/si1/kado/single/pddir/iospt0/h002
   *RDAREA NAME :RDDIR01
         *LN1*    67    116      0     81     81      8      7      0
 *FILE NAME : /tmp/si1/kado/single/pddir/iospt0/h003
   *RDAREA NAME :RDDIC01
         *LN1*   824  2.15k      0  2.00k  2.00k     19     19      0
 *FILE NAME : /tmp/si1/kado/single/pddir/iospt1/u001
   *RDAREA NAME :RU01
         *LN1*   256    483      0    401    401     23     22      0
 *FILE NAME : /tmp/si1/kado/single/pddir/iospt2/u002
   *RDAREA NAME :RU02
         *LN1*   261    501      0    416    416     26     25      0
 *FILE NAME : /tmp/si1/kado/single/pddir/iospt3/u003
   *RDAREA NAME :RU03
         *LN1*   254    467      0    384    384     23     22      0
 *FILE NAME : /tmp/si1/kado/single/pddir/iospt4/u001
   *RDAREA NAME :RULOB01
         *LN1*    16     43      0     33     33      4      4      0
 *FILE NAME : /tmp/si1/kado/single/pddir/iospt4/u002
   *RDAREA NAME :RULOB02
         *LN1*    16     43      0     33     33      4      4      0
 *FILE NAME : /tmp/si1/kado/single/pddir/iospt4/u011
   *RDAREA NAME :RUBLOB01
         *LN1*    30     59      0      0      0      7      7      0
 *FILE NAME : /tmp/si1/kado/single/pddir/iospt4/u012
   *RDAREA NAME :RUBLOB02
         *LN1*     0      0      0      0      0      0      0      0
 *TOTAL* [16]
         *LN1* 1.79k  4.00k      0  3.43k  3.43k    122    117      0
-----------------------------------------------------------------------------
FILE KIND   LOG KIND   FIRST                 LAST                         NUM
STJ         fil        1996/10/30 10:38:19   1996/10/30 12:31:45          440
-----------------------------------------------------------------------------

［説明］

統計入力アンロードファイル名，又は統計入力アンロードファイル格納ディレクトリ名（最大58バイト）

出力指定日時（出力開始日時−出力終了日時）

データベース操作に関するHiRDBファイルの統計情報の出力要求元ホスト名

編集時間の範囲（取得開始時刻−取得終了時刻）

同期READ回数

HiRDBファイルから同期モードでページを入力した回数です。

同期WRITE回数

HiRDBファイルへ同期モードでページを出力した回数です。

非同期READ回数

非同期READ機能を使用した場合に，HiRDBファイルから非同期モードでページを入力した回数です。

非同期WRITE回数

HiRDBファイルへ非同期モードでページを出力した回数です。

この回数は，次の回数を合計した値です。

デファードライトトリガ時にHiRDBファイルへ出力した回数

シンクポイント時にHiRDBファイルへ出力した回数

システムが使用する情報（ユーザ未使用）

オープン発行回数

HiRDBファイルのオープン処理をした回数です。

クローズ発行回数

HiRDBファイルのクローズ処理をした回数です。

入出力エラー発生回数

HiRDBファイルの入出力時に発生したエラーの回数です。

サーバ名

データベース操作に関するHiRDBファイルの統計情報の出力要求元サーバです。

HiRDBファイル名※

統計情報を編集したHiRDBファイルの名称です。

RDエリア名

該当するHiRDBファイルを使用するRDエリアの名称です。

各項目の合計値

注※

15に示すRDエリアのオープン属性がINITIAL以外で，一度もこのRDエリアにアクセスしていない場合は空白になるときがあります。空白になっているレコードは無視してください。なお，RDエリアを構成するHiRDBファイルはデータベース状態解析ユティリティで-k phys -fを指定すると確認できます。

14.3.7　デファードライト処理に関する統計情報

デファードライト処理に関する統計情報を次に示します。

pdstedit VV-RR(Object Option) ***** DEFERRED WRITE INFORMATION *****
INPUT          :/tmp/pdstj1 [1]
OUTPUT RANGE   :**/**/** **:**:** - **/**/** **:**:** [2]
-----------------------------------------------------------------------------
HOST = test [3]
-----------------------------------------------------------------------------
EDIT TIME 2004/03/11 10:00:00 - 2004/03/11 12:00:00 [4]
 [5]       [6]         [7]   [8]   [9]   [10]  [11]        [12]  [13]
 SERVER    EXEC        TRG   PRSYC SYNC  DBSYC RDSYC       END   CANCL
           -----       ----- ----- ----- ----- -----       ----- -----
                       [14]  [15]  [16]        [17]  [18]
                       PMAX  PMIN  PAVG        TOTAL AVG
                       ----- ----- -----       ----- -----
 sds         103          15    44    44     0     0          32    12
                           1     1     1       3.56k    35
-----------------------------------------------------------------------------
FILE KIND   LOG KIND   FIRST                 LAST                         NUM
STJ         dfw        2004/03/11 10:15:08   2004/03/11 12:33:31          103
-----------------------------------------------------------------------------

［説明］

統計入力アンロードファイル名，又は統計入力アンロードファイル格納ディレクトリ名（最大58バイト）

出力指定日時（出力開始日時−出力終了日時）

デファードライト処理に関する統計情報の出力要求元ホスト名

編集時間の範囲（取得開始時刻−取得終了時刻）

デファードライト処理に関する統計情報の出力要求元サーバ名

デファードライト要求回数

集計した時間内にデファードライト（遅延書き込み処理）をした回数です。

トリガ回数

集計した時間内に，グローバルバッファ内の更新ページ比率（総バッファ面数に占める更新バッファ数の比率）が，ある一定値に達した場合にデファードライト処理を要求した回数です。

プレシンク回数

集計した時間内に，シンクポイントダンプ出力間隔に達する前の，ある一定値に達した場合（次のシンクポイントまでにシステムログファイルへの出力回数が，ある一定値に達した場合）にデファードライト処理を要求した回数です。

シンクポイント発生回数

集計した時間内に発生したDBシンクポイント回数（データベース整合性保証のため同期点を取った回数）です。

データベースのシンクポイント発生回数

シンクポイント処理を有効化できないシンクポイント契機で，更新バッファをデータベースに反映する処理の回数です。

RDエリアのシンクポイント発生回数

RDエリアに対応するすべての更新ページを，ディスクへ出力する処理の回数です。

プレシンク完了状態（出力回数）

集計した時間内に，シンクポイントダンプ出力間隔に達する前の，ある一定値に達した場合（次のシンクポイントまでにシステムログファイルへの出力回数が，ある一定値に達した場合）にデファードライト処理を要求したとき，シンクポイントに達するまでにバッファ上のすべての更新バッファをHiRDBファイルに出力できた回数です。

プレシンク完了状態（キャンセル回数）

集計した時間内に，シンクポイントダンプ出力間隔に達する前の，ある一定値に達した場合（次のシンクポイントまでにシステムログファイルへの出力回数が，ある一定値に達した場合）にデファードライト処理を要求したとき，すべての更新バッファをHiRDBファイルに出力できないままシンクポイント処理が発生したため，途中でキャンセルした回数です。

ディスクボリューム単位の並列度（最大値）

集計した時間内に発生したデファードライト処理によって更新があったディスクボリューム（HiRDBファイルシステム領域）数の最大値です。ただし，通常ファイルにHiRDBファイルシステム領域を作成している場合は，HiRDBファイルシステム領域が複数でもまとめて1としてカウントされます。

最大値及び最小値が1の場合は，特定のディスクボリューム（HiRDBファイルシステム領域）にだけ出力が集中していることを意味します。そのため，更新が発生するRDエリアを作成するディスクボリューム（HiRDBファイルシステム領域）を分けることをお勧めします。また，デファードライト処理の並列WRITE機能使用時は最大値がpd_dfw_awt_process指定値以上がよいです。

ディスクボリューム単位の並列度（最小値）

集計した時間内に発生したデファードライト処理によって更新があったディスクボリューム（HiRDBファイルシステム領域）数の最小値です。

最大値及び最小値が1の場合は，特定のディスクボリューム（HiRDBファイルシステム領域）にだけ入出力が集中しているので，更新が発生する一つ又は複数のRDエリアを作成するディスクボリューム（HiRDBファイルシステム領域）を分けることをお勧めします。

ディスクボリューム単位の並列度（平均値）

集計した時間内に発生したデファードライト処理によって更新があったディスクボリューム（HiRDBファイルシステム領域）数の平均値です。

出力ページ数（合計）

集計した時間内にバックグラウンドで動作するデファードライト（遅延書き込み処理）によって，HiRDBファイルへ出力したページ数の合計値です。

出力ページ数（平均）

集計した時間内にバックグラウンドで動作するデファードライト（遅延書き込み処理）によって，HiRDBファイルへ出力したページ数の平均値です。

14.3.8　インデクスに関する統計情報

インデクスに関する統計情報を次に示します。

pdstedit VV-RR          ***** INDEX INFORMATION *****
INPUT          :/tmp/pdstj1 [1]
OUTPUT RANGE   :**/**/** **:**:** - **/**/** **:**:** [2]
CONTROL FILE     :CONTROL1 [18]
                                      [19]
FILE GROUP     :SERV1  : FILE1 FILE2 FILE3 FILE4 FILE5
                         FILE6 FILE7 FILE8 FILE9 FILE10
-----------------------------------------------------------------------------
EDIT TIME 1996/10/30 00:00:00 - 1996/10/31 00:00:00 [3]
             [4]   [5]   [6]   [7]   [8]   [9]   [10]  [11]
    *LN1*    C_SLK W_SLK XLOCK DEADL UNQCK UNQER REPOS REPG
             ----- ----- ----- ----- ----- ----- ----- -----
             [12]  [13] [14]
    *LN2*    SP_NM LVL ( NUM )
             ----- ---  -----
SERVER : sds [15]
 *INDEX_ID :     196611 [16]
  *RDID    :          3 [17]
    *LN1*    4.32k     0     0     0     0     0     0     0
    *LN2*        0
 *INDEX_ID :     196612
  *RDID    :          3
    *LN1*    5.31k     0     0     0     0     0     0     0
    *LN2*        0
 *INDEX_ID :     196613
  *RDID    :          3
    *LN1*    4.64k     0 1.35k     0   684     0     0     0
    *LN2*        0
 *INDEX_ID :     196614
  *RDID    :          3
    *LN1*       12     0 2.03k     0   684     0     0     0
    *LN2*        0
 *INDEX_ID :     196615
  *RDID    :          3
    *LN1*    4.86k     0 1.94k     0     0     0     0     0
    *LN2*        0
-----------------------------------------------------------------------------
FILE KIND   LOG KIND   FIRST                 LAST                         NUM
STJ         idx        1996/10/30 10:38:19   1996/10/30 12:31:45           44
FJ          idx        ****/**/** **:**:**   ****/**/** **:**:**            0
-----------------------------------------------------------------------------
NO FILE KIND:LOG FILE NAME
  LOG KIND             FIRST                 LAST                         NUM
 1 STJ      :/tmp/pdstj1
  sys                  1996/10/30 10:37:33   1996/10/30 12:33:07          112
  uap                  1996/10/30 10:36:38   1996/10/30 12:34:04         1854
  sql                  1996/10/30 10:36:37   1996/10/30 12:34:03        50971
  sop                  ****/**/** **:**:**   ****/**/** **:**:**            0
  dop                  ****/**/** **:**:**   ****/**/** **:**:**            0
  pcd                  ****/**/** **:**:**   ****/**/** **:**:**            0
  buf                  1996/10/30 10:38:19   1996/10/30 12:31:45           44
  fil                  1996/10/30 10:38:19   1996/10/30 12:31:45          440
  dfw                  1996/10/30 10:38:12   1996/10/30 12:33:31          103
  idx                  1996/10/30 10:38:19   1996/10/30 12:31:45           44

［説明］

統計入力アンロードファイル名，又は統計入力アンロードファイル格納ディレクトリ名（最大58バイト）

出力指定日時（出力開始日時−出力終了日時）

編集時間の範囲（取得開始時刻−取得終了時刻）

CHECKモード・キー値参照排他発行回数

CHECKモード（ほかのユーザが排他を取得している場合は待たないモード）で，キー値に対して参照の排他（PR）を取得した回数です。

WAITモード・キー値参照排他発行回数

WAITモード（ほかのユーザが排他を取得している場合は待つモード）で，キー値に対して参照の排他（PR）を取得した回数です。

キー値更新排他発行回数

キー値に対して更新の排他（EX）を取得した回数です。

キー値排他のデッドロック回数

キー値に対して更新の排他（EX）を取得したことによって発生した，デッドロックの回数です。

ユニークチェック回数

INSERT文やUPDATE文によって，値の一意性をチェックする処理をした回数です。なお，この値はユニークインデクスの場合にだけ統計情報が取得されます。

ユニークエラー発生回数

INSERT文やUPDATE文によって，値の一意性をチェックする処理をした結果，既に同じ値を持ったキー値があるため，エラーとなった回数です。なお，この値はユニークインデクスの場合にだけ統計情報が取得されます。

この回数が多い場合は，ユニークインデクスが必要かどうか再検討する必要があります。

リポジショニング（カレントポジション）回数

インデクスページ内のキー値を参照している間に，ほかのユーザによって同じページ内にほかの異なるキー値が追加されたり，削除されたりした場合に，参照しているキー値のページ内の位置が変わってしまったときのリポジショニング（補正処理）をした回数です。

リポジショニング（カレントページ）回数

インデクス内でキー値を探している途中に，目的のキー値があるページでほかのユーザによってスプリットが発生した場合，探しているキー値があるページが変わってしまったときにリポジショニング（補正処理）をした回数です。

スプリット（インデクス分割処理）回数※2

スプリット（インデクス分割処理）※1した回数です。

この回数が多い場合は，インデクスのPCTFREEの比率を高くする必要があります。また，大量にデータを追加する場合は，データベース作成ユティリティ（pdload）を使用した方がよいです。

スプリットが波及した段数※2

スプリットが波及した段数別スプリット回数

スプリット発生によって，スプリット処理が波及した上位ページへの段数ごとのスプリット回数の合計です。

波及した段数が大きいところでスプリット回数が多い場合は，インデクスページの大きさに比べてキー値が大きいか，又はインデクスのPCTFREEの比率が高過ぎると考えられます。

サーバ名

インデクスに関する統計情報の出力要求元サーバです。

インデクスID

統計情報を編集したインデクスのインデクス番号です。

出力されたインデクス番号を基にディクショナリ表（SQL_INDEXES表）を検索すれば，インデクス名称を知ることができます。

RDエリアID

統計情報を編集したインデクスを格納しているRDエリアのRDエリア番号です。

出力されたRDエリア番号を基にディクショナリ表（SQL_RDAREAS表）を検索すれば，RDエリア名称を知ることができます。

制御文ファイル名（最大58バイト）

-dオプションで指定した制御文ファイルの名称です。

サーバ名及びファイルグループ名

-dオプションで指定した制御文ファイル中のサーバ名（解析対象※3のサーバ名を表示），及び対応するファイルグループ名です。

注1

13，14は，スプリットが発生した最大インデクス段数分繰り返し表示されます。

注2

12〜14は，アンロードログファイル，又は-dオプション指定でシステムログファイルを入力したときだけ表示されます。

注3

4〜11は，シンクポイント間で回数をカウントし，各シンクポイント間の合計値を表示します。シンクポイント間でカウントされる回数の最大値は65535のため，実際は表示されている数よりも多く発生している可能性があります。

注4

スプリットが波及した段数について説明します。

［説明］

最初にスプリットが発生するのは，リーフページです。リーフページでスプリットが発生した場合，スプリットによって新しいページが作成されるので，上位ページ（中間ページ）にその新ページを登録する処理がされ，スプリット処理が完了するとします。そうすると，この場合のスプリットが波及した段数は2（LVL）となり，スプリットが波及した段数を2として回数（NUM）をカウントします。

スプリットの発生によって，インデクスの段数が2の上位ページに対してスプリットが波及した場合，更に新ページを上位ページに登録しようとしたときに上位ページに空きがなければ，その上位ページに対してスプリットが発生することになります。そうすると，この場合のスプリットが波及した段数は3（LVL）となり，スプリットが波及した段数を3として回数（NUM）をカウントします。

注※1

スプリットとは，キー値を追加しようとしたときにそのインデクスを格納するRDエリア内の使用中ページに空きがなかったため，空き領域を確保するためにその使用中ページの内容を分割し，後ろ半分を未使用ページへ追加する処理のことをいいます。

注※2

システムログを入力したときだけ出力されます。

注※3

次に示すサーバは解析対象になります。

-sオプションで指定したサーバ名と制御文ファイル中のサーバ名が同じ場合のサーバ

-sオプションを指定していない場合の制御文ファイルの全サーバ

14.4　DAT形式ファイルへの統計情報出力

DAT形式ファイルへ出力した統計情報は，ほかの表計算ソフトの入力ファイルとして利用できます。

14.4.1　DAT形式ファイルのデータ格納形式

DAT形式ファイルへ出力した統計情報は，次の表のように編集し，格納されます。なお，DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

表14‒4　DAT形式ファイルのデータ編集形式

データ形式

格納方法

オーバフローデータ

連続した4個のアスタリスク（*）※を格納します。

編集できないデータ

連続した10個のアスタリスク（*）※を格納します。

注※

-eオプションにer1を指定した場合，1個のアスタリスク（*）を格納します。

14.4.2　DAT形式ファイルの単位

DAT形式ファイルへ統計情報を出力する場合，統計情報ごとにファイルを作成します。ファイルはユーザが指定したディレクトリ下に作成します。DAT形式ファイルのファイル名称一覧を次の表に示します。

表14‒5　DAT形式ファイルのファイル名称一覧

編集項目

出力単位

ファイル名称

システムの稼働に関する統計情報

ログ内1システム稼働情報

sys_DAT

UAPに関する統計情報

1UAP又は1サービス実行単位

uap_DAT

SQLに関する統計情報

1SQL実行単位

sql_DAT

グローバルバッファに関する統計情報

シンクポイントごと

buf_DAT

データベース操作に関するHiRDBファイルの統計情報

シンクポイントごと

fil_DAT

デファードライト処理に関する統計情報

デファードライト処理用並列WRITEプロセス起動ごと

dfw_DAT

静的最適化に関する統計情報

1SQL前処理単位

sop_DAT

動的最適化に関する統計情報

1SQL内の1割り当てサーバ単位

dop_DAT

SQLオブジェクト実行に関する統計情報

1SQL並列単位

pcd_DAT

SQLオブジェクト転送に関する統計情報

1SQL並列単位

obj_DAT

SQL文の履歴に関する統計情報

1SQL実行単位

sqh_DAT

CONNECT/DISCONNECTに関する統計情報

CONNECT/DISCONNECT単位

cnc_DAT

データベースの入出力に関する統計情報

情報出力時間間隔ごとに入出力があったRDエリアを構成するHiRDBファイル単位

dio_DAT

注1

各ファイルはファイル名が固定のため，ユーザ指定のディレクトリ下に既に同一名称のファイルがある場合は，上書きされる可能性があります。上書きを防ぐためには，既にあるファイル名称を変更するか，又は既にファイルを出力したディレクトリを指定しないように注意する必要があります。

注2

DAT形式ファイルには，2ギガバイトを超えるデータは格納できません。大量のシステムログファイルを使用する場合には，オプションの指定などで出力するデータを絞り込み，出力データが2ギガバイトを超えないようにしてください。

注3

システムの稼働に関する統計情報は列が多いため，そのままではExcelへの入力ができません。そのため，cutコマンドで不要な列を削除してから入力するようにしてください。

例を次に示します。

cut -d "," -f1-256 /tmp/sys_DAT > /tmp/sys_DAT.out

14.4.3　DAT形式ファイルのレコード形式

DAT形式ファイルのレコード形式を，次の表に示します。

表「DAT形式ファイルのレコード形式（システムの稼働に関する統計情報（その1））」

表「DAT形式ファイルのレコード形式（システムの稼働に関する統計情報（その2））」

表「DAT形式ファイルのレコード形式（システムの稼働に関する統計情報（その3））」

表「DAT形式ファイルのレコード形式（UAPに関する統計情報）」

表「DAT形式ファイルのレコード形式（SQLに関する統計情報）」

表「DAT形式ファイルのレコード形式（グローバルバッファプールに関する統計情報）」

表「DAT形式ファイルのレコード形式（データベース操作に関するHiRDBファイルの統計情報）」

表「DAT形式ファイルのレコード形式（デファードライト処理に関する統計情報）」

表「DAT形式ファイルのレコード形式（SQL静的最適化に関する統計情報）」

表「DAT形式ファイルのレコード形式（SQL動的最適化に関する統計情報）」

表「DAT形式ファイルのレコード形式（SQLオブジェクト実行に関する統計情報）」

表「DAT形式ファイルのレコード形式（SQLオブジェクト転送に関する統計情報）」

表「DAT形式ファイルのレコード形式（SQL文の履歴に関する統計情報）」

表「DAT形式ファイルのレコード形式（CONNECT/DISCONNECTに関する統計情報）」

表「DAT形式ファイルのレコード形式（データベースの入出力に関する統計情報）」

表の見方についての注意事項を次に示します。

表中のタイトルバーは-bオプションを指定した場合に出力され，システムの稼働に関する統計情報のときは，ファイルの先頭3行に出力されます。それ以外の統計情報の場合は，ファイルの先頭1行に出力されます。

各フィールドのタイトルバーの長さは，表中に示す最大長の値には入っていません。そのため，タイトルバーを含めてDAT形式ファイルのデータを処理する場合は注意してください。

備考の−は，特に注意する点はないことを示しています。

最大長は，属性が文字列の場合，文字列データを囲む""は最大長の値に入っていません。また，属性が数値の項目で，編集できないデータを検知した場合は，**********を出力します。この場合，表中の最大長（3，5，又は6バイト）の値を超えて，10個の「*」を出力します。

表14‒6　DAT形式ファイルのレコード形式（システムの稼働に関する統計情報（その1））

項番

フィールド名（タイトルバー）

属性

最大長

備考

1

ホスト名(HOST)

文字

32

−

2

サーバ名(SERVER)

8

全体の統計情報の場合は，’＊＊＊＊＊＊＊＊’

3

編集開始時刻(START)

19

"MM/DD/hh:mm"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

4

スケジュール情報(SCHEDULE)

スケジュール待ち行列数(QUEUE LEN(SCH))

発生件数(FREQ)

数値

10

−

5

最大値(MAX)

6

最小値(MIN)

7

平均値(AVG)

8

スケジュールメッセージ長(MESSAGE LEN)

発生件数(FREQ)

9

最大値(MAX)

単位：バイト

10

最小値(MIN)

11

平均値(AVG)

12

プロセス情報(PROCESS)

サーバの異常終了回数(SERVER ABORT)

発生件数(FREQ)

数値

10

項番174〜177にプロセス情報の続きがあります。

13

HiRDBが使用する内部的なサーバの異常終了回数(SYSTEM SERVER ABORT)

発生件数(FREQ)

−

14

プロセス個数(PROCESS COUNT)

最大値(MAX)

15

最小値(MIN)

16

平均値(AVG)

17

トランザクション情報(TRANSACTION)

コミット回数(COMMIT)

発生件数(FREQ)

数値

10

−

18

ロールバック回数(ROLLBACK)

発生件数(FREQ)

19

ネームサーバ情報(NAME)

システム固有情報(CACHE HIT)

発生件数(FREQ)

数値

10

−

20

システム固有情報(LOCAL HIT)

発生件数(FREQ)

21

システム固有情報(LOOK UP)

発生件数(FREQ)

22

RPC情報(RPC)

システム固有情報(RESPONSE TIME)

発生回数(FREQ)

数値

10

ユーザが使用するRPC情報は項番178〜199，252〜259にあります。

23

最大値(MAX)

−

24

最小値(MIN)

25

平均値(AVG)

26

システム固有情報(USER SERVICE TIME)

発生回数(FREQ)

27

最大値(MAX)

28

最小値(MIN)

29

平均値(AVG)

30

システム固有情報(TIME OUT)

発生回数(FREQ)

31

システム固有情報(ERROR)

発生回数(FREQ)

32

システム固有情報(SEND)

発生件数(FREQ)

33

システム固有情報(RECEIVE)

発生件数(FREQ)

34

排他制御情報(LOCK)

排他待ち時間(WAIT TIME)※３

発生件数(FREQ)

数値

10

排他制御情報は項番268〜271，281〜285に続きがあります。

35

最大値(MAX)

単位：ミリ秒

36

最小値(MIN)

37

平均値(AVG)

38

排他待ち数(ユーザ数)

(QUEUE LEN)

発生件数(FREQ)

−

39

最大値(MAX)

40

最小値(MIN)

41

平均値(AVG)

42

デッドロック件数(DEADLOCK)

発生件数(FREQ)

43

排他制御用プールパーティションの使用率(USE LOCK TABLE)※１

発生件数(FREQ)

44

最大値(MAX)

3

単位：％

45

最小値(MIN)

46

平均値(AVG)

47

共用メモリ情報(SHARED MEMORY)

システム固有情報(STATIC GET SIZE)

発生件数(FREQ)

数値

10

−

48

最大値(MAX)

単位：バイト

49

最小値(MIN)

50

平均値(AVG)

51

システム固有情報(STATIC POOL SIZE)

発生件数(FREQ)

−

52

最大値(MAX)

単位：バイト

53

最小値(MIN)

54

平均値(AVG)

55

システム固有情報(DYNAMIC GET SIZE)

発生件数(FREQ)

−

56

最大値(MAX)

単位：バイト

57

最小値(MIN)

58

平均値(AVG)

59

システム固有情報(DYNAMIC POOL SIZE)

発生件数(FREQ)

−

60

最大値(MAX)

単位：バイト

61

最小値(MIN)

62

平均値(AVG)

63

サーバ用，及びHiRDBが使用する内部的なサーバ用に確保した共用メモリのサイズ(SEGMENT SIZE)

平均値(AVG)

単位：キロバイト

64

静的共用メモリ確保サイズ(STATIC SIZE)

平均値(AVG)

65

動的共用メモリ確保サイズ(DYNAMIC SIZE)

平均値(AVG)

66

グローバルバッファ用共用メモリ確保サイズ(SIZE FOR BUFFER)

平均値(AVG)

67

シンクポイント情報(SYNC POINT)

シンクポイントダンプ取得間隔時間(GET INTERVAL TIME)※３

発生件数(FREQ)

数値

10

−

68

最大値(MAX)

単位：ミリ秒

69

最小値(MIN)

70

平均値(AVG)

71

シンクポイントダンプ取得時間(GET TIME)※３

発生件数(FREQ)

−

72

最大値(MAX)

単位：ミリ秒

73

最小値(MIN)

74

平均値(AVG)

75

ログ情報(LOG)

バッファ満杯回数(BUFFER FULL)

発生件数(FREQ)

数値

10

項番272〜280，286〜294にログ情報の続きがあります。

76

カレントバッファなしによる待ち回数(WAIT THREAD)

発生件数(FREQ)

77

出力ブロック長(OUTPUT BLOCK LEN)

発生件数(FREQ)

−

78

最大値(MAX)

単位：バイト

79

最小値(MIN)

80

平均値(AVG)

81

非バス部分のデータ長(NOT BUS LEN)

発生件数(FREQ)

−

82

最大値(MAX)

単位：バイト

83

最小値(MIN)

84

平均値(AVG)

85

入出力待ちバッファ面数(WAIT BUFFER FOR IO)

発生件数(FREQ)

−

86

最大値(MAX)

87

最小値(MIN)

88

平均値(AVG)

89

ファイルへの書き込み回数(WRITE TO FILE)※２

発生件数(FREQ)

−

90

書き込みエラー回数(WRITE ERROR)

発生件数(FREQ)

−

91

ログファイルスワップ時間(LOG FILE SWAP TIME)※３

発生件数(FREQ)

−

92

最大値(MAX)

単位：ミリ秒

93

最小値(MIN)

94

平均値(AVG)

95

ログ入力データ長(LOG INPUT DATA)

発生件数(FREQ)

−

96

最大値(MAX)

単位：バイト

97

最小値(MIN)

98

平均値(AVG)

99

ファイルからの読み出し回数(READ FROM FILE)

発生件数(FREQ)

−

100

読み出しエラー回数(READ ERROR)

発生件数(FREQ)

−

注※1

排他制御用プールパーティションが複数ある場合（pd_lck_pool_partitionオペランド又はpd_fes_lck_pool_partitionオペランドに2以上を指定した場合）は，排他制御用プールパーティションごとに求めた使用率を集計して，最大，最小，平均値を出力します。

注※2

システムログのファイル出力以外にも，システムログファイルの状態を変更するときの書き込み回数が加算されます。システムログファイルを二重化している場合には，系ごとの書き込み回数が加算されます。また，システムログブロックの出力回数だけでなく，システムログファイルのスワップなどでファイルの状態が変化する場合に発生する，ファイルの書き込み回数も含まれます。システムログの並列出力機能を使用している場合は，二重化されたシステムログファイルに対して並列に書き込みを行うので，両系に対して書き込みを終えた段階で，1回として計算します。

注※3

求めた時間がOSの時刻戻しなどによって負の値となる場合は，値が0の統計情報として出力します。そのため，表示する値は実際の値より小さいことがあります。

表14‒7　DAT形式ファイルのレコード形式（システムの稼働に関する統計情報（その2））

項番

フィールド名（タイトルバー）

属性

最大長

備考

101

ディクショナリ情報(DICTIONARY)

表定義情報取得要求回数(TBL-DEF GET REQ)※1

発生件数(FREQ)

数値

10

項番200〜251，260〜267にディクショナリ情報の続きがあります。

102

表定義情報用バッファヒット回数(TABLE CACHE HIT)※1

発生件数(FREQ)

−

103

表定義情報用バッファ中の定義情報数(CASHED TBL-DEF)※1

発生件数(FREQ)

−

104

最大値(MAX)

105

最小値(MIN)

106

平均値(AVG)

107

表定義情報用バッファに取得した1表定義情報当たりの表定義情報用バッファ使用領域長(USE TBL-DEF SIZE)※1

発生件数(FREQ)

−

108

最大値(MAX)

単位：バイト

109

最小値(MIN)

110

平均値(AVG)

111

表定義情報用バッファ使用領域長(CACHED TBL-DEF SIZE)※1

発生件数(FREQ)

−

112

最大値(MAX)

単位：バイト

113

最小値(MIN)

114

平均値(AVG)

115

表アクセス権限情報取得回数(ACCESS PRIV CHECK)

発生件数(FREQ)

−

116

表アクセス権限情報用バッファヒット回数(CACHE HIT(ACCESS))

発生件数(FREQ)

−

117

ユーザ権限情報取得要求(CON/DBA DEF GET REQ)

発生件数(FREQ)

−

118

ユーザ権限情報用バッファヒット回数(CON/DBA CACHE HIT)

発生件数(FREQ)

−

119

ユーザ権限情報用バッファ使用ユーザ数(CON/DBA CACHED USER)

発生件数(FREQ)

−

120

最大値(MAX)

121

最小値(MIN)

122

平均値(AVG)

123

ディクショナリサーバとの通信長(DIC TRANS DATA LEN)

発生件数(FREQ)

−

124

最大値(MAX)

単位：バイト

125

最小値(MIN)

126

平均値(AVG)

127

ディクショナリサーバとの通信回数(TRANS)

発生件数(FREQ)

−

128

ビュー解析情報取得要求回数(VIEW DEF GET REQ)

発生件数(FREQ)

−

129

ビュー解析情報用バッファヒット回数(VIEW DEF CACHE HIT)

発生件数(FREQ)

−

130

ビュー解析情報用バッファ中の解析情報数(VIEW CACHED DEF)

発生件数(FREQ)

−

131

ビュー解析情報用バッファに取得した1ビュー解析情報当たりのビュー解析情報用バッファ使用領域長(USED VIEW SIZE)

発生件数(FREQ)

−

132

最大値(MAX)

単位：バイト

133

最小値(MIN)

134

平均値(AVG)

135

使用したビュー解析情報用バッファ長(VIEW CACHE SIZE)

発生件数(FREQ)

−

136

最大値(MAX)

単位：バイト

137

最小値(MIN)

138

平均値(AVG)

139

バッファミスとなったビュー解析情報長(CACHE MISS VIEW SIZE)

発生件数(FREQ)

−

140

最大値(MAX)

単位：バイト

141

最小値(MIN)

142

平均値(AVG)

143

シングルサーバ，フロントエンドサーバ，バックエンドサーバ，及びディクショナリサーバのSQLオブジェクト情報(FES-BES-DIC(SDS) INFORMATION)

SQLオブジェクト取得要求回数(SQLOBJ GET REQ)

発生件数(FREQ)

数値

10

−

144

SQLオブジェクト用バッファヒット回数(SQLOBJ CACHE HIT)

発生件数(FREQ)

−

145

SQLオブジェクト用バッファ中のSQLオブジェクト数(CACHED SQLOBJ)

発生件数(FREQ)

−

146

最大値(MAX)

147

最小値(MIN)

148

平均値(AVG)

149

SQLオブジェクト用バッファ中のSQLオブジェクトの合計長(CACHED SQLOBJ SIZE)

発生件数(FREQ)

−

150

最大値(MAX)

単位：キロバイト

151

最小値(MIN)

152

平均値(AVG)

153

SQLオブジェクト用バッファから出されたSQLオブジェクトの数(SWAP OUT SQLOBJ)

発生件数(FREQ)

−

154

SQLオブジェクト長(SQLOBJ LEN)

発生件数(FREQ)

−

155

最大値(MAX)

単位：バイト

156

最小値(MIN)

157

平均値(AVG)

158

ストアドプロシジャのオブジェクトの取得要求回数(STROBJ GET REQ)

発生件数(FREQ)

−

159

ストアドプロシジャのオブジェクトのSQLオブジェクト用バッファヒット回数(STROBJ CACHE HIT)

発生件数(FREQ)

−

160

SQLオブジェクト用バッファ中の，ストアドプロシジャのオブジェクト数(CACHED STROBJ)

発生件数(FREQ)

−

161

最大値(MAX)

162

最小値(MIN)

163

平均値(AVG)

164

SQLオブジェクト用バッファ中の，ストアドプロシジャのオブジェクトの合計長(CACHED STROBJ SIZE)

発生件数(FREQ)

−

165

最大値(MAX)

単位：キロバイト

166

最小値(MIN)

167

平均値(AVG)

168

SQLオブジェクト用バッファから出されたストアドプロシジャのオブジェクトの数(SWAP OUT STROBJ)

発生件数(FREQ)

−

169

ストアドプロシジャのオブジェクト長(STROBJ LEN)

発生件数(FREQ)

−

170

最大値(MAX)

単位：バイト

171

最小値(MIN)

172

平均値(AVG)

173

ストアドプロシジャのオブジェクトのリコンパイル回数(STROBJ RECOMPILE)

発生件数(FREQ)

−

174

プロセス情報(PROCESS)

サービス実行中のサーバプロセス数(SERVICE COUNT)

最大値(MAX)

数値

10

−

175

最小値(MIN)

176

平均値(AVG)

177

最大起動プロセス数を超えたサービス要求数(REQUEST OVER)

要求回数(FREQ)

178

RPC情報(RPC)

自ユニットサーバへのサービスレスポンス時間(RESPONSE ON OWN UNIT)※2

発生件数(FREQ)

数値

10

−

179

最大値(MAX)

単位：100マイクロ秒

180

最小値(MIN)

181

平均値(AVG)

182

他ユニットのサーバへのサービスレスポンス時間(RESPONSE TO OTHER UNIT)※2

発生件数(FREQ)

−

183

最大値(MAX)

単位：100マイクロ秒

184

最小値(MIN)

185

平均値(AVG)

186

自ユニットのサーバからの1サービス当たりの実行時間(EXEC TIME ON OWN UNIT)※2

発生件数(FREQ)

−

187

最大値(MAX)

単位：100マイクロ秒

188

最小値(MIN)

189

平均値(AVG)

190

他ユニットのサーバからの1サービス当たりの実行時間(EXEC TIME FROM OTHER UNIT)※2

発生件数(FREQ)

−

191

最大値(MAX)

単位：100マイクロ秒

192

最小値(MIN)

193

平均値(AVG)

194

自プロセスへのSEND回数(SEND TO OWN PRCS)

発生件数(FREQ)

−

195

自ユニットの他プロセスへのSEND回数(SEND TO OTHER PRCS)

発生件数(FREQ)

−

196

他ユニットへのSEND回数(SEND TO OTHER UNIT)

発生件数(FREQ)

−

197

自プロセスからのRECEIVE回数(RECEIVE FROM OWN PRCS)

発生件数(FREQ)

−

198

自ユニットの他プロセスからのRECEIVE回数(RECEIVE FROM OTHER PRCS)

発生件数(FREQ)

−

199

他ユニットからのRECEIVE回数(RECEIVE FROM OTHER UNIT)

発生件数(FREQ)

−

注※1

自動採番機能使用時は順序数生成子も含まれます。

注※2

求めた時間がOSの時刻戻しなどによって負の値となる場合は，値が0の統計情報として出力します。そのため，表示する値は実際の値より小さいことがあります。

表14‒8　DAT形式ファイルのレコード形式（システムの稼働に関する統計情報（その3））

項番

フィールド名（タイトルバー）

属性

最大長

備考

200

ディクショナリ情報(DICTIONARY)

型定義情報取得要求回数(TYPE-DEF GET REQ)

発生件数(FREQ)

数値

10

−

201

ユーザ定義型情報用バッファヒット回数(TYPE-DEF CACHE HIT)

発生件数(FREQ)

−

202

ユーザ定義型情報用バッファ中の型定義情報数(CACHED TYPE-DEF)

発生件数(FREQ)

−

203

最大値(MAX)

204

最小値(MIN)

205

平均値(AVG)

206

ユーザ定義型情報用バッファに取得した１型定義情報当たりのユーザ定義型情報用バッファ使用領域長(TYPE-DEF CACHE SIZE)

発生件数(FREQ)

−

207

最大値(MAX)

単位：バイト

208

最小値(MIN)

209

平均値(AVG)

210

ユーザ定義型情報用バッファ総使用領域長(TYPE-DEF CACHE TOTAL SIZE)

発生件数(FREQ)

−

211

最大値(MAX)

単位：バイト

212

最小値(MIN)

213

平均値(AVG)

214

確保したユーザ定義型情報用バッファ長(TYPE-DEF CACHE ALLOC SIZE)

発生件数(FREQ)

−

215

最大値(MAX)

単位：バイト

216

最小値(MIN)

217

平均値(AVG)

218

ルーチン定義情報取得要求回数(RTN-DEF GET REQ)

発生件数(FREQ)

−

219

ルーチン定義情報用バッファヒット回数(RTN-DEF CACHE HIT)

発生件数(FREQ)

−

220

ルーチン定義情報用バッファ中のルーチン定義情報数(CACHED RTN-DEF)

発生件数(FREQ)

−

221

最大値(MAX)

222

最小値(MIN)

223

平均値(AVG)

224

ルーチン定義情報用バッファに取得した１ルーチン定義情報当たりのルーチン定義情報用バッファ使用領域長(RTN-DEF CACHE SIZE)

発生件数(FREQ)

−

225

最大値(MAX)

単位：バイト

226

最小値(MIN)

227

平均値(AVG)

228

ルーチン定義情報用バッファ総使用領域長(RTN-DEF CACHE TOTAL SIZE)

発生件数(FREQ)

−

229

最大値(MAX)

単位：バイト

230

最小値(MIN)

231

平均値(AVG)

232

確保したルーチン定義情報用バッファ長(RTN-DEF CACHE ALLOC SIZE)

発生件数(FREQ)

−

233

最大値(MAX)

単位：バイト

234

最小値(MIN)

235

平均値(AVG)

236

プラグイン提供関数のルーチン定義取得要求回数(PLG-RTN GET REQ)

発生件数(FREQ)

−

237

プラグイン提供関数のルーチン定義情報用バッファヒット回数(PLG-RTN CACHE HIT)

発生件数(FREQ)

−

238

レジストリ情報取得要求回数(REGISTRY GET REQ)

発生件数(FREQ)

−

239

レジストリ情報用バッファヒット回数(REGISTRY CACHE HIT)

発生件数(FREQ)

−

240

レジストリ情報用バッファ中のレジストリ情報数(CACHED REGISTRY-DEF)

発生件数(FREQ)

−

241

最大値(MAX)

242

最小値(MIN)

243

平均値(AVG)

244

1レジストリ情報当たりのレジストリ情報用バッファ長(REGISTRY CACHE SIZE)

発生件数(FREQ)

−

245

最大値(MAX)

単位：バイト

246

最小値(MIN)

247

平均値(AVG)

248

レジストリ情報用バッファ総使用領域長(REGISTRY CACHE TOTAL SIZE)

発生件数(FREQ)

−

249

最大値(MAX)

単位：バイト

250

最小値(MIN)

251

平均値(AVG)

252

RPC情報(RPC)

HiRDB予約ポートの使用数(REGISTERED PORTS)

発生件数(FREQ)

数値

10

−

253

最大値(MAX)

254

最小値(MIN)

255

平均値(AVG)

256

HiRDB予約ポートオーバー時のOS自動割り当てポート使用数(ASSIGNED PORTS)

発生件数(FREQ)

257

最大値(MAX)

258

最小値(MIN)

259

平均値(AVG)

260

ディクショナリ情報(DICTIONARY)

ディレクトリ登録のユーザ認証時間(DIRECTORY USER CHECK TIME)※7

発生件数(FREQ)

数値

10

−

261

最大値(MAX)

単位：マイクロ秒

262

最小値(MIN)

263

平均値(AVG)

264

グループ判定実行時間(GROUP CHECK TIME)※7

発生件数(FREQ)

−

265

最大値(MAX)

単位：マイクロ秒

266

最小値(MIN)

267

平均値(AVG)

268

排他制御情報(LOCK)

排他制御用プールパーティションのスレッド間ロック待ち数(REQUEST WAIT QUEUE)※1

発生件数(FREQ)

数値

10

−

269

最大値(MAX)

270

最小値(MIN)

271

平均値(AVG)

272

ログ情報(LOG)

ファイルへの書き込み時間(FILE WRITE TIME)※2※7

発生件数(FREQ) ※2

数値

10

−

273

最大値(MAX) ※2※3

単位：マイクロ秒

274

最小値(MIN) ※2※3

275

平均値(AVG) ※2※3

276

ファイルからの読み出し時間(FILE READ TIME)※7

発生件数(FREQ)

−

277

最大値(MAX) ※3

単位：マイクロ秒

278

最小値(MIN) ※3

279

平均値(AVG) ※3

280

バッファリング回数(BUFFERING)

発生件数(FREQ) ※4

−

281

排他制御情報(LOCK)

スレッド間ロック要求回数(REQUEST)※1

発生件数(FREQ)

−

282

スレッド間ロック待ち回数(REQUEST WAIT)※1

発生件数(FREQ)

−

283

スレッド間ロック待ち時間(REQUEST WAIT TIME)※1※5※6※7

最大値(MAX)

単位：マイクロ秒

284

最小値(MIN)

285

平均値(AVG)

286

ログ情報(LOG)

ログフラッシュ待ち行列数(BUF FLUSH WAIT QUEUE)

発生件数(FREQ)

−

287

最大値(MAX)

−

288

最小値(MIN)

−

289

平均値(AVG)

−

290

ログフラッシュ要求回数(BUF FLUSH)

発生件数(FREQ)

−

291

ログフラッシュ待ち回数(BUF FLUSH WAIT)

発生件数(FREQ)

−

292

ログフラッシュ待ち時間(BUF FLUSH WAIT TIME)※5※6※7

最大値(MAX)

単位：マイクロ秒

293

最小値(MIN)

294

平均値(AVG)

注※1

排他制御用プールパーティションが複数ある場合（pd_lck_pool_partitionオペランド又はpd_fes_lck_pool_partitionオペランドの値に2以上を指定した場合）は，排他制御用プールパーティションごとに求めたスレッド間ロック待ち数を集計して，最大，最小，平均値を出力します。

注※2

システムログのファイル出力以外にも，システムログファイルの状態を変更するときの書き込み回数及び書き込み時間が加算されます。システムログファイルを二重化している場合には，系ごとの書き込み回数及び書き込み時間が加算されます。また，システムログブロックの書き込み回数及び書き込み時間だけでなく，システムログファイルのスワップなどでファイルの状態が変化する場合に発生する，ファイルの書き込み回数及び書き込み時間も含まれます。システムログの並列出力機能を使用している場合は，二重化されたシステムログファイルに対して並列に書き込みを行うので，書き込み回数は両系に対して書き込みを終えた段階で，1回として計算します。書き込み時間は，どちらかの系に書き込みを始めてから，両系に書き込みを終えるまでの時間で計算します。

注※3

HiRDBのバージョンが08-04より前の場合に取得した統計入力アンロードファイルを，08-04以降の統計解析ユティリティで実行すると，平均値及び最大値に0，最小値に4,294,967,295が表示されます。

注※4

HiRDBのバージョンが08-04より前の場合に取得した統計入力アンロードファイルを，08-04以降の統計解析ユティリティで実行すると，発生件数に0を表示します。

注※5

pdstbeginコマンドの-wオプションを指定し，スレッド間ロック待ち時間を取得している場合に出力します。待ち時間を取得しない場合は，0を表示します。pdstbeginコマンドの-wオプションについては，「pdstbegin（統計情報の出力開始）のオプション」を参照してください。

注※6

表示する値の精度は，使用するOS及びハードウェアに依存します。そのため，表示される値は実際の値より小さい場合があります。

注※7

求めた時間がOSの時刻戻しなどによって負の値となる場合は，値が0の統計情報として出力します。そのため，表示する値は実際の値より小さいことがあります。

表14‒9　DAT形式ファイルのレコード形式（UAPに関する統計情報）

項番

フィールド名（タイトルバー）

属性

最大長

備考

1

ホスト名(HOST)

文字

32

−

2

UAP名称(UAP NAME)

3

UAP又はトランザクション実行開始時刻(START)

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

4

項番3のマイクロ秒(START(MICRO))

数値

6

秒値は含みません。

5

UAP又はトランザクション実行終了時刻(END)

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

6

項番5のマイクロ秒(END(MICRO))

数値

6

秒値は含みません。

7

終了状態(STATUS)

文字

1

"N"正常終了

"E"ロールバックをして終了

8

UAP又はトランザクションの実行時間(UAP EXEC TIME(S))

数値

10

単位：秒（秒値未満は四捨五入）

9

表定義情報用バッファ使用サイズ(CACHE SIZE)

単位：バイト

10

SQLオブジェクト取得要求回数(REQ(SQL))

−

11

SQLオブジェクト用バッファヒット回数(HITS(SQL))

−

12

SQLオブジェクト作成回数(CREATE)

−

13

作成した最大SQLオブジェクトサイズ(SQL MAX)

単位：バイト

14

COMMIT文実行回数(COMMIT)

−

15

ROLLBACK文実行回数(ROLLBACK)

−

16

FETCH/SELECT文で実際に検索した行数(FETCH ROW)

−

17

DELETE文で実際に削除した行数(DELETE ROW)

−

18

INSERT文で実際に挿入した行数(INSERT ROW)

−

19

UPDATE文で実際に更新した行数(UPDATE ROW)

−

20

SQL文の前処理回数(SET)

−

21

OPEN文実行回数(OPEN)

−

22

FETCH文実行回数(FETCH)

−

23

CLOSE文実行回数(CLOSE)

−

24

DESCRIBE文実行回数(DESCRIBE)

−

25

SELECT文実行回数(SELECT)

−

26

INSERT文実行回数(INSERT)

−

27

UPDATE文実行回数(UPDATE)

−

28

DELETE文実行回数(DELETE)

−

29

LOCK文実行回数(LOCK)

−

30

CREATE TABLE実行回数(CREATE TABLE)

−

31

ALTER TABLE実行回数(ALTER TABLE)

−

32

DROP TABLE実行回数(DROP TABLE)

−

33

CREATE INDEX実行回数(CREATE INDEX)

−

34

DROP INDEX実行回数(DROP INDEX)

−

35

COMMENT TABLE実行回数(COMMENT TABLE)

−

36

COMMENT COLUMN実行回数(COMMENT COLUMN)

−

37

CREATE SCHEMA実行回数(CREATE SCHEMA)

−

38

DROP SCHEMA実行回数(DROP SCHEMA)

−

39

GRANT RDAREA実行回数(GRANT RDAREA)

−

40

GRANT SCHEMA及びGRANT SCHEMA OPERATIONの実行回数(GRANT SCHEMA)

−

41

GRANT アクセス権限実行回数(GRANT ACCESS)

−

42

GRANT CONNECT実行回数(GRANT CONNECT)

−

43

GRANT DBA実行回数(GRANT DBA)

−

44

REVOKE RDAREA実行回数(REVOKE RDAREA)

−

45

REVOKE SCHEMA及びREVOKE SCHEMA OPERATIONの実行回数(REVOKE SCHEMA)

−

46

REVOKE アクセス権限実行回数(REVOKE ACCESS)

−

47

REVOKE CONNECT実行回数(REVOKE CONNECT)

−

48

REVOKE DBA実行回数(REVOKE DBA)

−

49

CREATE VIEW実行回数(CREATE VIEW)

−

50

DROP VIEW実行回数(DROP VIEW)

−

51

システム固有情報(UNUSED)

−

52

システム固有情報(UNUSED)

−

53

PURGE TABLE文実行回数(PURGE TABLE)

−

54

そのほかの実行回数(MISC)

−

55

ストアドプロシジャのオブジェクトの取得要求回数(SQLOBJ GET REQ)

−

56

ストアドプロシジャのオブジェクトのSQLオブジェクト用バッファヒット回数(SQLOBJ CACHE HIT)

−

57

CREATE PROCEDURE実行回数(CREATE PROCEDURE)

−

58

DROP PROCEDURE実行回数(DROP PROCEDURE)

−

59

CALL文実行回数(CALL)

−

60

DESCRIBE文(INPUT)実行回数(DESCRIBE INPUT)

−

61

ALTER PROCEDURE実行回数(ALTER PROCEDURE)

−

62

UAP，又はトランザクション実行時間(UAP EXEC TIME(MS))

単位：ミリ秒（秒値を含みます。ミリ秒未満は四捨五入）

63

サービス名称(SERVICE NAME)

文字

31

−

64

排他待ち時間(LOCK TIME)※１

数値

10

単位：秒

65

項番64のマイクロ秒(LOCK TIME(MICRO))※１

6

秒値は含みません。

66

該当する行の出力タイミング(OUTPUT TIMMING)

文字

1

C：UAP実行単位

T：トランザクション単位

67

フロントエンドサーバの名称(FES NAME)

8

シングルサーバの場合は，シングルサーバの名称

68

コネクト通番(CONNECT NO)

数値

10

1フロントエンドサーバ内の1接続ごとの通番

69

フロントエンドサーバのプロセスID(FES PROCESS ID)

シングルサーバの場合は，シングルサーバのプロセスID

70

CPU時間(CPU TIME)※４

単位：ミリ秒

71

シングルサーバ又はフロントエンドサーバの処理時間(SERV EXEC TIME)※２

単位：秒

72

項番71のマイクロ秒(SERV EXEC TIME(MICRO))

6

秒値は含みません。

73

入出力時間の合計値(IO TIME)※５

10

単位：秒

74

項番73のマイクロ秒(IO TIME(MICRO))※５

6

秒値は含みません。

75

入出力時間の最大値(MAX IO TIME)※３

10

単位：秒

76

項番75のマイクロ秒(MAX IO TIME(MICRO))

6

秒値は含みません。

77

入出力時間の最小値(MIN IO TIME)※３

10

単位：秒

78

項番77のマイクロ秒(MIN IO TIME(MICRO))

6

秒値は含みません。

79

データページ，インデクスページ，及びディレクトリページの参照回数(DID RF CNT)※５

10

−

80

データページ，インデクスページ，及びディレクトリページの更新回数(DID UPD CNT)※５

−

81

データページ，インデクスページ，及びディレクトリページのバッファヒット回数(DID HIT CNT)※５

−

82

データページ，インデクスページ，及びディレクトリページのバッファヒット率(DID BUF HIT RATIO)

3

単位：％

83

データページ，インデクスページ，及びディレクトリページの実READ回数(DID READ CNT)※５

10

−

84

データページ，インデクスページ，及びディレクトリページの実WRITE回数(DID WRITE CNT)※５

−

85

LOB列のデータページの参照回数(LOB RF CNT)※５

−

86

LOB列のデータページの更新回数(LOB UPD CNT)※５

−

87

LOB列のデータページの参照バッファヒット回数(LOB RF HIT CNT)※５

−

88

LOB列のデータページの更新バッファヒット回数(LOB UPD HIT CNT)※５

−

89

LOB列のデータページの参照バッファヒット率(LOB RF BUF HIT RATIO)

3

単位：％

90

LOB列のデータページの更新バッファヒット率(LOB UPD BUF HIT RATIO)

91

LOB列のデータページの実READ回数(LOB READ CNT)※５

10

−

92

LOB列のデータページの実WRITE回数(LOB WRITE CNT)※５

−

93

グローバルバッファフラッシュ回数(BUF FLASH CNT)※５

−

94

グローバルバッファのREAD待ち回数(BUF READ WAIT CNT)※５

−

95

グローバルバッファのWRITE待ち回数(BUF WRITE WAIT CNT)※５

−

96

グローバルバッファの排他待ち発生回数(BUF LOCK WAIT CNT)※５

−

97

作業表用ファイル数の最大値(MAX WKFILE NUM)

−

98

作業表用ファイル増分数の最大値(MAX WKFILE EXP CNT)

−

99

作業表用ファイル容量の最大値(MAX WKFILE VOLUME)

単位：メガバイト

100

作業表用ファイルのREAD回数(WKFILE READ CNT)※５

−

101

作業表用ファイルのWRITE回数(WKFILE WRITE CNT)※５

−

102

作業表用バッファの強制出力回数(WKFILE BUF FORCED OUT CNT)※５

−

103

一括で処理する場合のハッシュ表サイズの最大値(MAX WHOLE HASH TABLE SIZE)

単位：キロバイト

104

1レベルバケットサイズの最大値(MAX BUCKET SIZE LEVEL 1)

105

2レベルバケットサイズの最大値(MAX BUCKET SIZE LEVEL 2)

106

3レベルバケットサイズの最大値(MAX BUCKET SIZE LEVEL 3)

107

空き領域の再利用のページサーチ空回り回数(REUSE FAILURE CNT)※５

−

108

SEGMENT REUSE指定の表で，新規ページ追加モードから空きページ再利用モードに切り替わった回数(REUSE CHANGE CNT)※５

−

109

ローカルバッファを使用してデータページ，及びインデクスページを参照した回数(LOCAL BUF RF CNT)※５

−

110

ローカルバッファを使用してデータページ，及びインデクスページを更新した回数(LOCAL BUF UPD CNT)※５

−

111

ローカルバッファでのデータページ，及びインデクスページのバッファヒット回数(LOCAL BUF HIT CNT)※５

−

112

ローカルバッファ使用時のデータページ，及びインデクスページの実READ回数(LOCAL BUF READ CNT)※５

−

113

ローカルバッファ使用時のデータページ，及びインデクスページの実WRITE回数(LOCAL BUF WRITE CNT)※５

−

114

ローカルバッファフラッシュ回数(LOCAL BUF FLUSH CNT)※５

−

115

非同期READ要求回数(AR REQ CNT)※５

−

116

非同期READ時の同期待ち回数(AR SYNC WAIT CNT)※５

−

117

非同期READ時の同期待ち時間の合計値(AR SYNC WAIT TIME TOTAL)※５

単位：秒

118

項番117のマイクロ秒(AR SYNC WAIT TIME TOTAL(MICRO))※５

6

秒値は含みません。

119

非同期READ時の同期待ち時間の平均値(AR SYNC WAIT TIME AVERAGE)

10

単位：秒

120

項番119のマイクロ秒(AR SYNC WAIT TIME AVERAGE (MICRO))

6

秒値は含みません。

121

非同期READ時の同期入出力時間の合計値(AR SYNC IO TIME TOTAL)※５

10

単位：秒

122

項番121のマイクロ秒(AR SYNC IO TIME TOTAL (MICRO))※５

6

秒値は含みません。

123

非同期READ時の同期入出力時間の平均値(AR SYNC IO TIME AVERAGE)

10

単位：秒

124

項番123のマイクロ秒(AR SYNC IO TIME AVERAGE(MICRO))

6

秒値は含みません。

125

ハッシュジョイン，副問合せのハッシュ実行でのハッシュ分割表検索時の最大比較回数（MAX HASH COMP COUNT）※３

10

−

126

ハッシュジョイン，副問合せのハッシュ実行でのハッシュ分割表検索時の総比較回数（HASH COMP COUNT）※５

10

−

127

ハッシュジョイン，副問合せのハッシュ実行での総ハッシュ分割表検索回数（HASH HIT COUNT）※５

10

−

128

一時表を使用するSQL実行時の使用セグメント数の合計（TOTAL SEGMENTS USED FOR TEMP TABLE）

10

−

129

データ圧縮処理の総実行回数（COMPRESSION CNT）※６

10

−

130

データ圧縮処理の総実行時間（COMPRESSION TIME）※６

10

単位：秒

131

項番130のマイクロ秒（COMPRESSION TIME(MICRO)）※６

6

秒値は含みません。

132

データ圧縮処理の最大実行時間（MAX COMPRESSION TIME）※６

10

単位：秒

133

項番132のマイクロ秒（MAX COMPRESSION TIME(MICRO)）※６

6

秒値は含みません。

134

データ伸張処理の総実行回数（EXTENSION CNT）※６

10

−

135

データ伸張処理の総実行時間（EXTENSION TIME）※６

10

単位：秒

136

項番135のマイクロ秒（EXTENSION TIME(MICRO)）※６

6

秒値は含みません。

137

データ伸張処理の最大実行時間（MAX EXTENSION TIME）※６

10

単位：秒

138

項番137のマイクロ秒（MAX EXTENSION TIME(MICRO)）※６

6

秒値は含みません。

139

排他制御用プールパーティションのスレッド間ロック総要求回数（LOCK POOL REQ CNT）

10

−

140

排他制御用プールパーティションのスレッド間ロック総待ち回数（LOCK POOL WAIT CNT）

−

141

排他制御用プールパーティションのスレッド間ロック待ち時間の累計（LOCK POOL WAIT TIME）※７※８

単位：秒

142

項番141のマイクロ秒（LOCK POOL WAIT TIME(MICRO)）※７※８

6

秒値は含みません。

143

排他制御用プールパーティションのスレッド間ロック待ち時間の最大値（LOCK POOL MAX WAIT TIME）※７※８

10

単位：秒

144

項番143のマイクロ秒（LOCK POOL MAX WAIT TIME(MICRO)）※７※８

6

秒値は含みません。

145

排他制御用プールパーティションのスレッド間ロック待ち行列数の累計（LOCK POOL WAIT QUEUE）

10

−

146

排他制御用プールパーティションのスレッド間ロック待ち行列数の最大値（LOCK POOL MAX WAIT QUEUE）

−

147

ログフラッシュ総要求回数（BUF FLUSH REQ CNT）

−

148

ログフラッシュ総待ち回数（BUF FLUSH WAIT CNT）

−

149

ログフラッシュ待ち時間の累計（BUF FLUSH WAIT TIME）※７※８

単位：秒

150

項番149のマイクロ秒（BUF FLUSH WAIT TIME(MICRO)）※７※８

6

秒値は含みません。

151

ログフラッシュ待ち時間の最大値（BUF FLUSH MAX WAIT TIME）※７※８

10

単位：秒

152

項番151のマイクロ秒（BUF FLUSH MAX WAIT TIME(MICRO)）※７※８

6

秒値は含みません。

153

ログフラッシュ待ち行列数の累計（BUF FLUSH WAIT QUEUE）

10

−

154

ログフラッシュ待ち行列数の最大値（BUF FLUSH MAX WAIT QUEUE）

−

155

グローバルバッファプールロック総要求回数（BUF POOL LOCK REQ CNT）

−

156

グローバルバッファプールのスレッド間ロック総待ち回数（BUF POOL LOCK WAIT CNT）

−

157

グローバルバッファプールのスレッド間ロック待ち時間の累計（BUF POOL LOCK WAIT TIME）※７※８

単位：秒

158

項番157のマイクロ秒（BUF POOL LOCK WAIT TIME(MICRO)）※７※８

6

秒値は含みません。

159

グローバルバッファプールのスレッド間ロック待ち時間の最大値（BUF POOL LOCK MAX WAIT TIME）※７※８

10

単位：秒

160

項番159のマイクロ秒（BUF POOL LOCK MAX WAIT TIME(MICRO)）※７※８

6

秒値は含みません。

161

グローバルバッファプールのスレッド間ロック待ち行列数の累計（BUF POOL LOCK WAIT QUEUE）

10

−

162

グローバルバッファプールのスレッド間ロック待ち行列数の最大値（BUF POOL LOCK MAX WAIT QUEUE）

−

注

HiRDB/パラレルサーバの場合，項番73，74，79〜102，126，127はすべてのバックエンドサーバの合計値となります。項番139〜162は集計中にオーバフローした場合，‘****’が出力されます。

注※1

HiRDB/パラレルサーバの場合，トランザクション内で発生したすべての排他待ち時間（並列処理も含む）の合計値となります。

注※2

コネクション中又はトランザクション中にpdstbeginコマンドを実行した場合，そのコネクション又はトランザクションの情報は取得されないで，次のコネクション又はトランザクションから情報が取得されます。

注※3

HiRDB/パラレルサーバの場合，すべてのバックエンドサーバを対象とした値となります。

注※4

トランザクション内のすべてのサーバのCPU時間の合計値となります。

注※5

トランザクション単位に情報を出力する場合は，CONNECTからの累積値となります。

注※6

この項目はBINARY型のデータに対する情報です。

注※7

pdstbeginコマンドの-wオプションを指定し，スレッド間ロック待ち時間を取得している場合に取得します。pdstbeginコマンドの-wオプションについては，「pdstbegin（統計情報の出力開始）のオプション」を参照してください。

注※8

表示する値の精度は，使用するOS及びハードウェアに依存します。そのため，表示される値は実際の値より小さい場合があります。

表14‒10　DAT形式ファイルのレコード形式（SQLに関する統計情報）

項番

フィールド名（タイトルバー）

属性

最大長

備考

1

ホスト名(HOST)

文字

32

−

2

UAP名称(UAP NAME)

3

SQL実行開始時刻(START)

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

4

項番3のマイクロ秒(START(MICRO))

数値

6

秒値は含みません。

5

SQL実行終了時刻(END)

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

6

項番5のマイクロ秒(END(MICRO))

数値

6

秒値は含みません。

7

作成したSQLオブジェクトの長さ(PDATA)

10

単位：バイト

8

SQLオブジェクトを送信したバックエンドサーバの数(BES COUNT)

−

9

SQL実行時間(SQL EXEC TIME(MICRO))

単位：マイクロ秒（秒値を含みます）

10

検索行数(FETCH ROW)

−

11

挿入行数(INSERT ROW)

12

更新行数(UPDATE ROW)

13

削除行数(DELETE ROW)

14

作業表作成回数(CREATE LIST)

15

作業表削除回数(DROP LIST)

16

SQL実行時間(SQL EXEC TIME(SEC))

単位：秒（秒値未満は切り捨て）

17

サービス名称(SERVICE NAME)

文字

31

−

18

フロントエンドサーバの名称(FES NAME)

8

シングルサーバの場合は，シングルサーバの名称

19

コネクト通番(CONNECT NO)

数値

10

1フロントエンドサーバ内の，1コネクトごとの通し番号

20

SQLカウンタ(SQL COUNTER)

−

21

フロントエンドサーバのプロセスID(FES PROCESS ID)

シングルサーバの場合は，シングルサーバのプロセスID

22

オペレーションコード(OPERATION CODE)※１

文字

4

−

23

セクション番号(SECTION NO)

数値

5

24

SQLタイプコード(SQL TYPE CODE)※２

文字

4

25

SQLコード(SQLCODE)

数値

10

26

サーバ名(SERVER NAME)

文字

8

27

システム固有情報(FOREIGN REQUEST COUNT)

数値

10

−

28

システム固有情報(FOREIGN EXEC TIME)

29

システム固有情報(FOREIGN EXEC TIME(MICRO))

30

システム固有情報(FOREIGN FETCH ROW)

31

ハッシュジョイン，副問合せのハッシュ実行でのハッシュ分割表検索時の総比較回数(HASH COMP COUNT）

数値

10

−

32

ハッシュジョイン，副問合せのハッシュ実行での総ハッシュ分割表検索回数(HASH HIT COUNT)

数値

10

−

33

システム固有情報(FOREIGN INSERT ROW)

数値

10

−

34

システム固有情報(FOREIGN UPDATE ROW)

数値

10

35

システム固有情報(FOREIGN DELETE ROW)

数値

10

注※1

オペレーションコードを表「オペレーションコード」に示します。

注※2

SQLタイプコードを表「SQLタイプコード」に示します。

表14‒11　オペレーションコード

オペレーションコード

対応するSQL文

ALCR

ALLOCATE CURSOR文

AUI2

DELETE文（静的SQL），INSERT文（静的SQL），UPDATE文（静的SQL），LOCK文（静的SQL），PURGE TABLE文（静的SQL），1行SELECT文（静的SQL），FREE LOCATOR文（静的SQL）

AUI3

代入文（静的SQL）

AUX

EXECUTE文

AUXI

EXECUTE IMMEDIATE文，すべての定義系SQL

AUXO

EXECUTE文（INTO指定）

CALL

CALL文

CLIN

INSTALL CLIB

CLRP

REPLACE CLIB

CLRM

REMOVE CLIB

CLOS

CLOSE文

CMIT

COMMIT文

CNCT

CONNECT文

CPRP

コミットプリペア※

DESC

DESCRIBE文（OUTPUT指定）

DEST

DESCRIBE TYPE文

DISC

DISCONNECT文，COMMIT文（RELEASE指定）

DISR

ROLLBACK文（RELEASE指定）

DIST

Disconnect＋Tran Check※

DSCM

システムが使用

DSET

DEALLOCATE PREPARE文

DSPR

システムが使用

DSRL

システムが使用

FETC

FETCH文

GETD

GET DIAGNOSTICS

HVAR

DESCRIBE文（INPUT指定）

JARI

INSTALL JAR

JARR

REPLACE JAR

JARU

REMOVE JAR

OPEN

OPEN文（動的SQL）

OPN2

OPEN文（静的SQL）

OPNR

OPEN文（動的SQL(複数カーソル)）

RENV

システムが使用

RNCN

CONNECT文（TO指定）

RNDS

DISCONNECT文（TO指定）

ROLL

ROLLBACK文

RSDC

DESCRIBE文（OUTPUT，RESULT SET指定）

RSFT

FETCH文（RESULT SET指定）

RSCL

CLOSE文（RESULT SET指定）

SAUH

SET SESSION AUTHORIZATION文

SET

PREPARE文

SINF

システムが使用

SOPT

システムが使用

SVLS

システムが使用

THRE

システムが使用

THSU

システムが使用

TRCK

システムが使用

TRC2

システムが使用

TRST

システムが使用

TSCM

システムが使用

TSRL

Transfer Rollback※

TSPR

Transfer Prepare※

注※　XAインタフェースを使用した場合だけ出力されます。

表14‒12　SQLタイプコード

項番

SQL文

SQLタイプコード（16進数）

1

CREATE TABLE

1038

2

DROP TABLE

103C

3

ALTER TABLE

1040

4

CREATE INDEX

1044

5

DROP INDEX

1048

6

COMMENT ON TABLE

104C

7

COMMENT ON COLUMN

1050

8

CREATE SCHEMA

1054

9

DROP SCHEMA

1058

10

GRANT RDAREA

105C

11

GRANT SCHEMA及びGRANT SCHEMA OPERATION

1060

12

GRANT ACCESS

1064

13

REVOKE RDAREA

1068

14

REVOKE SCHEMA及びREVOKE SCHEMA OPERATION

106C

15

REVOKE ACCESS

1070

16

CREATE VIEW

1074

17

DROP VIEW

1078

18

ALTER INDEX

1079

19

GRANT CONNECT

1098

20

GRANT DBA

109C

21

REVOKE CONNECT

10A0

22

REVOKE DBA

10A4

23

CREATE PROCEDURE

10B0

24

DROP PROCEDURE

10B4

25

ALTER PROCEDURE

10B8

26

CREATE TYPE

10C0

27

DROP DATA TYPE

10C4

28

CREATE FUNCTION

10C8

29

DROP FUNCTION

10CC

30

ALTER ROUTINE

10E8

31

LOCK文

2134

32

SELECT文

4000，4900，4100，4A04，4204

33

INSERT文

4108

34

UPDATE文

4114

35

DELETE文

411C

36

ASSIGN LIST文

4224，4324

37

DROP LIST文

422C

38

PURGE TABLE文

4184

39

CALL PROCEDURE

40BC

40

GET DIAGNOSTICS

40C0

41

代入文

40C4

42

FREE LOCATOR文

40C8

表14‒13　DAT形式ファイルのレコード形式（グローバルバッファプールに関する統計情報）

項番

フィールド名（タイトルバー）

属性

最大長

備考

1

ホスト名(HOST)

文字

32

−

2

サーバ名(SERVER)

8

3

グローバルバッファ名称(BUFFER NAME)

16

4

統計ログ取得時刻(LOG GET TIME)

19

-y省略時

"MM/DD/hh:mm"形式（-e sec省略時）

"MM/DD/hh:mm:ss"形式（-e sec指定時）

-y指定時

"YYYY/MM/DD hh:mm:ss"形式

5

グローバルバッファプールのバッファ面数(BUFFER COUNT)

数値

10

−

6

シンクポイント出力ページ数(SYNC POINT)

7

最大同時要求バッファ面数(BUFFER MAX)

8

更新GET回数(UPDATE GET)

9

更新バッファヒット回数(UPDATE HIT)

10

更新バッファヒット率(UPDATE HIT RATIO)

3

単位：％

11

更新バッファフラッシュ回数(UPDATE FLUSH)

10

−

12

参照GET回数(REF GET)

13

参照バッファヒット回数(REF HIT)

14

参照バッファヒット率(REF HIT RATIO)

3

単位：％

15

参照バッファフラッシュ回数(REF FLUSH)

10

−

16

実READ回数(READ)

17

入力待ち発生回数(WAIT READ)

18

実WRITE回数(WRITE)

19

出力待ち発生回数(WAIT WRITE)

20

バッファ排他待ち発生回数(WAIT EXCLUSIVE)

（バッファ上のページが，ほかのユーザによって使用中であったため，待ち状態になった回数）

21

バッファ不足発生回数(BUFFER INSUFFICIENCY)

22

プリフェッチ入力ページ数(PRRED)

23

プリフェッチヒットページ数(PRHIT)

24

プリフェッチヒット率(PRHIT RATIO)

3

単位：％

25

プリフェッチ実行資源不足発生回数

(PR INSUFFICIENCY)

10

−

26

グローバルバッファのヒット率(BUFHIT RATIO)

3

単位：％

27

カレントの参照バッファ数(CUR REF BUFNUM)

10

−

28

カレントの更新バッファ数(CUR UPDATE BUFNUM)

29

デファードライトトリガ時の出力契機となる更新バッファ数(TRG UPDATE BUFNUM)

30

シンクポイントの発生回数(SYNC COUNT)

31

プリフェッチのREAD要求回数(PR READ REQ CNT)

32

LOB用グローバルバッファのREAD要求回数(LOB READ REQ CNT)

33

LOB用グローバルバッファのWRITE要求回数(LOB WRITE REQ CNT)

34

LOB用グローバルバッファの一括入力ページ数(LOB BLK READ PGNUM)

35

LOB用グローバルバッファの一括出力ページ数(LOB BLK WRITE PGNUM)

36

システム固有情報(CACHE BUFFER INSUFFICIENCY)

37

システム固有情報(CACHE BUFFER FLUSH MAX)

38

システム固有情報(CACHE BUFFER FLUSH AVERAGE)

39

グローバルバッファプール（一つのpdbufferで定義したバッファ全体）の排他競合待ち回数(LOCK WAIT CNT)

指数表示

40

グローバルバッファプール（一つのpdbufferで定義したバッファ全体）の排他競合待ち発生率(LOCK WAIT RATIO)

5

単位：％（小数点1けたまで）

41

スリープ処理実行回数の平均値(SLEEP EXEC AVERAGE)

10

指数表示

42

スピンループ発生率(SPIN EXEC RATIO)

5

単位：％（小数点1けたまで）

43

スピンループ回数の平均値(SPIN EXEC AVERAGE)

10

指数表示

44

シンクポイント時のグローバルバッファプール（一つのpdbufferで定義したバッファ全体）の排他占有時間(SYNC LOCK)

10

−

45

項番44のマイクロ秒(SYNC LOCK(MICRO))

6

秒値を含みません。

46

シンクポイント時のグローバルバッファプール（一つのpdbufferで定義したバッファ全体）の排他占有時間内の処理バッファ数(SYNC BUFF)

10

−

47

シンクポイント時の参照要求ヒットによるデータベース書き込み処理代行回数(REF ALTWRITE)

48

シンクポイント時の更新要求ヒットによるデータベース書き込み処理代行回数(UPD ALTWRITE)

49

排他競合待ち時間の累計(LOCK WAIT TIME)※１※２

単位：秒

50

項番49のマイクロ秒(LOCK WAIT TIME(MICRO))※１※２

6

秒値は含みません。

51

排他競合待ち行列数の累計(LOCK WAIT QUEUE)

10

−

注※1

pdstbeginコマンドの-wオプションを指定し，スレッド間ロック待ち時間を取得している場合に取得します。pdstbeginコマンドの-wオプションについては，「pdstbegin（統計情報の出力開始）のオプション」を参照してください。

注※2

表示する値の精度は，使用するOS及びハードウェアに依存します。そのため，表示される値は実際の値より小さい場合があります。

参照GET回数と更新GET回数の合計が4,294,967,295回を超えるグローバルバッファが検出されると，該当するグローバルバッファの統計情報はリセットされます。詳細は，「pdbufls （グローバルバッファ情報の表示）の注意事項」を参照してください。

グローバルバッファプールに関する統計情報には，インメモリデータバッファの情報も出力されますが，各項目の出力値は概算値となります。

表14‒14　DAT形式ファイルのレコード形式（データベース操作に関するHiRDBファイルの統計情報）

項番

フィールド名（タイトルバー）

属性

最大長

備考

1

ホスト名(HOST)

文字

32

−

2

サーバ名(SERVER)

8

3

HiRDBファイル名称(FILE NAME)※

167

4

RDエリア名称(RDAREA NAME)

30

5

統計ログ取得時刻(LOG GET TIME)

19

-y省略時

"MM/DD/hh:mm"形式（-e sec省略時）

"MM/DD/hh:mm:ss"形式（-e sec指定時）

-y指定時

"YYYY/MM/DD hh:mm:ss"形式

6

同期READ発生回数(SYNC READ)

数値

10

−

7

同期WRITE発生回数(SYNC WRITE)

8

システム固有情報(AIO READ)

9

非同期WRITE発生回数(AIO WRITE)

10

システム固有情報(LIST IO)

11

オープン発行回数(OPEN)

12

クローズ発行回数(CLOSE)

13

入出力エラー発生回数(IO ERROR)

注※

項番4に示すRDエリアのオープン属性がINITIAL以外で，一度もこのRDエリアにアクセスしていない場合は空白になるときがあります。空白になっているレコードは無視してください。なお，RDエリアを構成するHiRDBファイルはデータベース状態解析ユティリティで-k phys -fを指定すると確認できます。

表14‒15　DAT形式ファイルのレコード形式（デファードライト処理に関する統計情報）

項番

フィールド名（タイトルバー）

属性

最大長

備考

1

ホスト名称(HOST)

文字

32

−

2

サーバ名(SERVER)

8

3

ログ取得時刻(LOG GET TIME)

19

-y省略時

"MM/DD/hh:mm"形式（-e sec省略時）

"MM/DD/hh:mm:ss"形式（-e sec指定時）

-y指定時

"YYYY/MM/DD hh:mm:ss"形式

4

動作要因(CAUSE)

1

トリガ："T"

プレシンク："P"

シンクポイント："S"

データベースのシンクポイント："D"

RDエリアのシンクポイント："R"

5

プレシンク完了状態(STATUS)※

プレシンク完了："P"

完全終了　　　："E"

6

入出力並列度(PARALLEL)

数値

10

−

7

出力ページ総数(OUT PAGE)

動作要因ごとにデファードライトで出力したページの総数

8

WRITE回数(DWEXEC)

−

9

WRITE単価の最小値(DWMIN)

単位：秒（秒値未満は切り捨て）

10

項番9のマイクロ秒(DWMINM)

6

秒値を含みません。

11

WRITE単価の最大値(DWMAX)

10

単位：秒（秒値未満は切り捨て）

12

項番11のマイクロ秒(DWMAXM)

6

秒値を含みません。

13

WRITE単価の平均値(DWAVG)

10

単位：秒（秒値未満は切り捨て）

14

項番13のマイクロ秒(DWAVGM)

6

秒値を含みません。

15

合計WRITE時間(DWSUM)

10

単位：秒（秒値未満は切り捨て）

16

項番15のマイクロ秒(DWSUMM)

6

秒値を含みません。

17

並列WRITE時間(DWPARA)

10

単位：秒（秒値未満は切り捨て）

18

項番17のマイクロ秒(DWPARAM)

6

秒値を含みません。

19

実行時間(DWTOTAL)

10

単位：秒（秒値未満は切り捨て）

20

項番19のマイクロ秒(DWTOTALM)

6

秒値を含みません。

21

システム固有情報(DWLSNGET)

10

単位：秒（秒値未満は切り捨て）

22

システム固有情報(DWLSNGETM)

6

秒値を含みません。

23

システム固有情報(DWSYNCLIST)

10

単位：秒（秒値未満は切り捨て）

24

システム固有情報(DWSYNCLISTM)

6

秒値を含みません。

25

システム固有情報(DWSEMOP)

10

単位：秒（秒値未満は切り捨て）

26

システム固有情報(DWSEMOPM)

6

秒値を含みません。

27

更新要求操作完了待ちページ数

10

シンクポイント取得処理中のバッファ更新要求時の代行処理抑止機能使用時の出力対象ページが，更新要求中のため，完了を待ったページ数

28

更新要求操作完了待ちループ回数

10

シンクポイント取得処理中のバッファ更新要求時の代行処理抑止機能使用時の出力対象ページが，更新要求中のため，完了待ち処理をループした回数

注

出力ページ総数(OUT PAGE)よりWRITE回数が少ない場合，情報が一括出力されます。一括出力された場合，一括出力しないときと比べて，項番9〜14のWRITE単価が増加することがあります。

注※

動作要因がプレシンク"P"の場合に出力されます。そのほかの場合はナル値が出力されます。

表14‒16　DAT形式ファイルのレコード形式（SQL静的最適化に関する統計情報）

項番

フィールド名（タイトルバー）

属性

最大長

備考

1

ホスト名(HOST)

文字

32

−

2

UAP名称(UAP NAME)

3

サービス名称(SERVICE NAME)

31

4

フロントエンドサーバの名称(FES NAME)

8

シングルサーバの場合は，シングルサーバの名称

5

コネクト通番(CONNECT NO)

数値

10

1フロントエンドサーバ内の，コネクトごとの通し番号

6

SQLカウンタ(SQL COUNTER)

−

7

フロントエンドサーバのプロセスID(FES PROCESS ID)

シングルサーバの場合は，シングルサーバのプロセスID

8

オペレーションコード(OPERATION CODE)

文字

4

オペレーションコードについては，表「オペレーションコード」を参照してください。

9

セクション番号(SECTION NO)

数値

5

−

10

SQLタイプコード(SQL TYPE CODE)

文字

4

SQLタイプコードについては，表「SQLタイプコード」を参照してください。

11

サーバ名(SERVER NAME)

8

−

12

構文解析実行開始時刻(PARSE START(S))

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

13

項番12のマイクロ秒(PARSE START(MICRO))

数値

6

秒値は含みません。

14

構文解析実行終了時刻(PARSE END(S))

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

15

項番14のマイクロ秒(PARSE END(MICRO))

数値

6

秒値は含みません。

16

構文解析実行時間(PARSE EXEC TIME(SEC))

10

単位：秒（秒値未満は切り捨て）

17

項番16のマイクロ秒(PARSE EXEC TIME(MICRO))

秒値を含みます。

18

意味解析実行開始時刻(SEMAN START(S))

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

19

項番18のマイクロ秒(SEMAN START(MICRO))

数値

6

秒値は含みません。

20

意味解析実行終了時刻(SEMAN END(S))

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

21

項番20のマイクロ秒(SEMAN END(MICRO))

数値

6

秒値は含みません。

22

意味解析実行時間(SEMAN EXEC TIME(SEC))

10

単位：秒（秒値未満は切り捨て）

23

項番22のマイクロ秒(SEMAN EXEC TIME(MICRO))

秒値を含みます。

24

最適化実行開始時刻(OPT START(S))

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

25

項番24のマイクロ秒(OPT START(MICRO))

数値

6

秒値は含みません。

26

最適化実行終了時刻(OPT END(S))

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

27

項番26のマイクロ秒(OPT END(MICRO))

数値

6

秒値は含みません。

28

最適化実行時間(OPT EXEC TIME(SEC))

10

単位：秒（秒値未満は切り捨て）

29

項番28のマイクロ秒(OPT EXEC TIME(MICRO))

秒値を含みます。

30

SQLオブジェクト生成実行開始時刻(SQLOBJ GEN START(S))

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

31

項番30のマイクロ秒(SQLOBJ GEN START(MICRO))

数値

6

秒値は含みません。

32

SQLオブジェクト生成実行終了時刻(SQLOBJ GEN END(S))

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

33

項番32のマイクロ秒(SQLOBJ GEN END(MICRO))

数値

6

秒値は含みません。

34

SQLオブジェクト生成実行時間(SQLOBJ GEN EXEC TIME(SEC))

10

単位：秒（秒値未満は切り捨て）

35

項番34のマイクロ秒(SQLOBJ GEN EXEC TIME(MICRO))

秒値を含みます。

36

SQLオブジェクト登録実行開始時刻(SQLOBJ ENT START(S))

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

37

項番36のマイクロ秒(SQLOBJ ENT START(MICRO))

数値

6

秒値は含みません。

38

SQLオブジェクト登録実行終了時刻(SQLOBJ ENT END(S))

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

39

項番38のマイクロ秒(SQLOBJ ENT END(MICRO))

数値

6

秒値は含みません。

40

SQLオブジェクト登録実行時間(SQLOBJ ENT EXEC TIME(SEC))

10

単位：秒（秒値未満は切り捨て）

41

項番40のマイクロ秒(SQLOBJ ENT EXEC TIME(MICRO))

秒値を含みます。

表14‒17　DAT形式ファイルのレコード形式（SQL動的最適化に関する統計情報）

項番

フィールド名（タイトルバー）

属性

最大長

備考

1

ホスト名(HOST)

文字

32

−

2

UAP名(UAP NAME)

3

サービス名称(SERVICE NAME)

31

4

フロントエンドサーバの名称(FES NAME)

8

シングルサーバの場合は，シングルサーバの名称

5

コネクト通番(CONNECT NO)

数値

10

1フロントエンドサーバ内の，1コネクトごとの通し番号

6

SQLカウンタ(SQL COUNTER)

−

7

フロントエンドサーバのプロセスID(FES PROCESS ID)

シングルサーバの場合は，シングルサーバのプロセスID

8

オペレーションコード(OPERATION CODE)

文字

4

オペレーションコードについては，表「オペレーションコード」を参照してください。

9

セクション番号(SECTION NO)

数値

5

−

10

SQLタイプコード(SQL TYPE CODE)

文字

4

SQLタイプコードについては，表「SQLタイプコード」を参照してください。

11

サーバ名(SERVER NAME)

8

−

12

動的最適化実行開始時刻(DYNAMIC START)

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

13

項番12のマイクロ秒(START(MICRO))

数値

6

秒値は含みません。

14

動的最適化実行終了時刻(DYNAMIC END)

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

15

項番14のマイクロ秒(END(MICRO))

数値

6

秒値は含みません。

16

動的最適化実行時間(DYNAMIC EXEC TIME(SEC))

10

単位：秒（秒値未満は切り捨て）

17

項番16のマイクロ秒(DYNAMIC EXEC TIME(MICRO))

秒値を含みます。

18

システム固有情報(SUB SECTION COUNT)

5

−

19

システム固有情報(SUB SECTION NO)

20

SQLオブジェクト種別(SQLOBJ KIND)

文字

1

'F'：フロントエンド

'J'：ソート/ジョイン

'T'：実表スキャン

21

要求サーバ数(REQ SERVER)

数値

10

−

22

割り当てサーバ数(ALC SERVER)

23

割り当てサーバ名(ALC SERVER NAME)

文字

8

24

RDエリアID(RDAREA ID)

数値

10

表14‒18　DAT形式ファイルのレコード形式（SQLオブジェクト実行に関する統計情報）

項番

フィールド名（タイトルバー）

属性

最大長

備考

1

ホスト名(HOST)

文字

32

−

2

UAP名(UAP NAME)

3

サービス名称(SERVICE NAME)

31

4

フロントエンドサーバの名称(FES NAME)

8

シングルサーバの場合は，シングルサーバの名称

5

コネクト通番(CONNECT NO)

数値

10

1フロントエンドサーバ内の，1コネクトごとの通し番号

6

SQLカウンタ(SQL COUNTER)

−

7

フロントエンドサーバのプロセスID(FES PROCESS ID)

シングルサーバの場合は，シングルサーバのプロセスID

8

サーバ名(SERVER NAME)

文字

8

−

9

スレッド番号(THREAD NO)

数値

5

10

オペレーションコード(OPERATION CODE)

文字

4

オペレーションコードについては，表「オペレーションコード」を参照してください。

11

セクション番号(SECTION NO)

数値

5

−

12

システム固有情報(SUB SECTION NO)

13

SQLコード(SQLCODE)

10

14

SQLオブジェクト実行開始時刻(SQLOBJ START)

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

15

項番14のマイクロ秒(START(MICRO))

数値

6

秒値は含みません。

16

SQLオブジェクト実行終了時刻(SQLOBJ END)

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

17

項番16のマイクロ秒(END(MICRO))

数値

6

秒値は含みません。

18

SQLオブジェクト実行時間(SQLOBJ EXEC TIME(SEC))

10

単位：秒（秒値未満は切り捨て）

19

項番18のマイクロ秒(SQLOBJ EXEC TIME(MICRO))

秒値を含みます。

20

SQLオブジェクト検索行数(FETCH ROW)

−

21

SQLオブジェクト挿入行数(INSERT ROW)

22

SQLオブジェクト更新行数(UPDATE ROW)

23

SQLオブジェクト削除行数(DELETE ROW)

24

作業表作成行数(CREATE LIST)

25

作業表削除行数(DROP LIST)

26

送信回数(SEND)

27

送信データ長(SEND DATA SIZE)

28

受信回数(RECEIVE)

29

受信データ長(RECEIVE DATA SIZE)

30

作業表作成回数(CREATE TMP LIST)

31

作業表削除回数(DROP TMP LIST)

32

HiRDBファイル出力回数(IOS OUTPUT)

33

バッファ入力回数(BUFFER INPUT)

34

SELECT APSLの番号(SEL APSL NO)

35

SQLオブジェクトの種別(SQLOBJ KIND)

文字

1

'F'：フロントエンド

'J'：ソート/ジョイン

'T'：実表スキャン

36

システム固有情報(FOREIGN REQUEST COUNT)

数値

10

−

37

システム固有情報(FOREIGN EXEC TIME)

38

システム固有情報(FOREIGN EXEC TIME(MICRO))

39

システム固有情報(FOREIGN FETCH ROW)

40

システム固有情報(FOREIGN INSERT ROW)

41

システム固有情報(FOREIGN UPDATE ROW)

42

システム固有情報(FOREIGN DELETE ROW)

表14‒19　DAT形式ファイルのレコード形式（SQLオブジェクト転送に関する統計情報）

項番

フィールド名（タイトルバー）

属性

最大長

備考

1

ホスト名(HOST)

文字

32

−

2

UAP名(UAP NAME)

3

フロントエンドサーバの名称(FES NAME)

8

シングルサーバの場合は，シングルサーバの名称

4

コネクト通番(CONNECT NO)

数値

10

−

5

フロントエンドサーバのプロセスID(FES PROCESS ID)

シングルサーバの場合は，シングルサーバのプロセスID

6

サーバ名(SERVER)

文字

8

−

7

システム固有情報(SERVICE KIND)

1

8

オペレーションコード(OPERATION CODE)

4

オペレーションコードについては，表「オペレーションコード」を参照してください。

9

セクション番号(SECTION NO)

数値

5

−

10

システム固有情報(SUB SECTION NO)

11

SQLタイプコード(SQL TYPE CODE)

文字

4

SQLタイプコードについては，表「SQLタイプコード」を参照してください。

12

SQLコード(SQLCODE)

数値

10

−

13

サービス開始時刻(SERVICE START)

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

14

項番13のマイクロ秒(SERVICE START(MICRO))

数値

6

秒値は含みません。

15

サービス終了時刻(SERVICE END)

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

16

項番15のマイクロ秒(SERVICE END(MICRO))

数値

6

秒値は含みません。

17

サービス実行時間(SERVICE EXEC TIME(SEC))

10

単位：秒（秒値未満は切り捨て）

18

項番17のマイクロ秒(SERVICE EXEC TIME(MICRO))

秒値を含みます。

19

SQLオブジェクトの転送開始時刻(TRANSFER START)

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

20

項番19のマイクロ秒(TRANSFER START(MICRO))

数値

6

秒値は含みません。

21

SQLオブジェクトの転送終了時刻(TRANSFER END)

文字

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

22

項番21のマイクロ秒(TRANSFER END(MICRO))

数値

6

秒値は含みません。

23

SQLオブジェクトの転送時間(TRANSFER TIME(SEC))

10

単位：秒（秒値未満は切り捨て）

24

項番23のマイクロ秒(TRANSFER TIME(MICRO))

秒値を含みます。

25

SQLオブジェクトの転送量(TRANSFER SIZE)

10

単位：バイト

注1

次の場合，項番8〜11にはNULL（0，又は" "）を設定します。

SERVICE KINDが'N'，'P'，又は'R'の場合

注2

次の場合，項番19〜25にはNULL（0，又は" "）を設定します。

SQLオブジェクトがSQLオブジェクト用バッファ上で見付かった場合

SQLオブジェクトの転送前にエラーが発生した場合（SQLコードには，0以外の値が設定されています）

表14‒20　DAT形式ファイルのレコード形式（SQL文の履歴に関する統計情報）

項番

フィールド名（タイトルバー）

属性

最大長

備考

1

ホスト名(HOST)

文字

32

−

2

UAP名(UAP NAME)

3

モジュール名(MODULE NAME)

4

サービス名(SERVICE NAME)

31

5

フロントエンドサーバの名称(FES NAME)

8

シングルサーバの場合は，シングルサーバの名称

6

コネクト通番(CONNECT NO)

数値

10

１フロントエンドサーバ内の１コネクトごとの通し番号

7

SQLカウント(SQL COUNTER)

−

8

フロントエンドサーバのプロセスID(FES PROCESS ID)

シングルサーバの場合は，シングルサーバのプロセスID

9

オペレーションコード(OPERATION CODE)

文字

4

オペレーションコードについては，表「オペレーションコード」を参照してください。

10

セクション番号(SECTION NO)

数値

5

−

11

SQL長(SQL LENGTH)

10

12

SQL文(SQL STRING)

文字

2M

SQL文は先頭から最大30Kバイトまでしか出力しません。

注

SQL文の履歴に関する統計情報は，オペレーションコードが，"AUXI"，"OPN2"，"CALL"，"AUI2"，"SET"のどれかの場合だけ出力します。

表14‒21　DAT形式ファイルのレコード形式（CONNECT/DISCONNECTに関する統計情報）

項番

フィールド名（タイトルバー）

属性

最大長

備考

1

ホスト名(HOST)

文字

32

−

2

UAP名(UAP NAME)

3

コネクト・ディスコネクト時間(CONNECT/DISCONNECT TIME)

19

"MM/DD/hh:mm:ss"形式（-y省略時）

"YYYY/MM/DD hh:mm:ss"形式（-y指定時）

4

項番３のマイクロ秒(CONNECT/DISCONNECT TIME(MICRO))

数値

6

秒値は含みません。

5

フロントエンドサーバのプロセスID(FES PROCESS ID)

10

シングルサーバの場合は，シングルサーバのプロセスID

6

SQLコード(SQLCODE)

−

7

コネクト・ディスコネクト状態(CONNECT/DISCONNECT STATUS)

文字

1

'C'：CONNECT

'D'：DISCONNECT

8

クライアントグループID(CLT GROUP)

'1'：WSクライアント

'2'：PCクライアント

'8'：X/Open XAインタフェース

'0'：ユティリティ

'#'：その他

' '：なし(スペース：0x20)

9

権限情報(PRIVILEGE)

'C'：CONNECT権限

'D'：DBA権限

' '：なし(スペース：0x20)

10

コネクト・ディスコネクト種別(CONNECT/DISCONNECT KIND)

'N'：Normal(CONNECT/DISCONNECT)

'S'：set session authorization

'I'：内部ディスコネクト

'T'：トランザクション解決(OLTPだけ)

11

認可識別子(USER NAME)

30

−

12

パスワード(PASSWORD)

KFPA11560-Eエラー(パスワード不正)時だけ

13

CLT IPアドレス(CLT IP ADDRESS)

15

XXX.XXX.XXX.XXX形式

表14‒22　DAT形式ファイルのレコード形式（データベースの入出力に関する統計情報）

項番

フィールド名（タイトルバー）

属性

最大長

備考

1

ホスト名(HOST)

文字

32

−

2

サーバ名(SERVER)

8

−

3

入出力が発生したRDエリアの名称(RDAREA NAME)

30

−

4

項番3に示すRDエリアを構成するHiRDBファイルの通番(FILE NUMBER)

数値

2

−

5

統計ログを取得した時刻(LOG GET TIME)

文字

19

"YYYY/MM/DD hh:mm:ss"形式

6

HiRDBファイルのページ長(PAGE SIZE(K))

数値

6

単位：キロバイト

7

取得時間間隔内に発生したread回数(READ CNT)

10

−

8

取得時間間隔内に発生したreadのうち，時間を計測した回数(READ MEASURE CNT)

−

9

時間を計測したreadの時間のマイクロ秒(READ TIME(MICRO))

合計値(SUM)

12

秒値を含みます。

10

最大値(MAX)

11

取得時間間隔内に発生したwrite回数(WRITE CNT)

10

−

12

取得時間間隔内に発生したwriteのうち，時間を計測した回数(WRITE MEASURE CNT)

−

13

時間を計測したwriteの時間のマイクロ秒(WRITE TIME(MICRO))

合計値(SUM)

12

秒値を含みます。

14

最大値(MAX)

−

15

ランク種別(RANK KIND)

文字

2

上位10件を選定した項目

read回数 ：RC

read合計時間：RS

read最大時間：RM

write回数 ：WC

write合計時間：WS

write最大時間：WM

選定項目なし※：*

注※

pdstbegin -D everyfile指定時

14.5　注意事項

pdstedit実行時のリターンコードは，0の場合は正常終了又は警告終了，1の場合は異常終了となります。

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdsteditの入力ファイルには，BOMを持つファイルを使用できることがあります。pdsteditでのBOMを持つファイルの使用可否を次の表に示します。なお，pdsteditの入力ファイルとしてBOMを持つファイルを使用しても，BOMは読み飛ばされます。

表14‒23　pdsteditでのBOMを持つファイルの使用可否（UTF-8の場合）

オプション

入力ファイル

BOMを持つファイルの使用

-l

統計入力アンロードファイル

×

-d

制御文ファイル

○

（凡例）

○：使用できます。

×：使用できません。

14.6　使用例

統計解析ユティリティの使用例を次に示します。

例1

統計入力アンロードファイルから情報を入力し，すべての統計情報を編集します。また，DAT形式ファイルにも情報を出力します。

［概要］

［コマンド実行例］

 pdstedit -k all   ......................1
          -i /usr/unfile   ..............2
          -o /usr/datfile   .............3

［説明］

すべての統計情報を編集する場合の指定

統計入力アンロードファイルがある統計入力アンロードファイル格納ディレクトリの名称　/usr/unfile

統計情報を格納するDAT形式ファイル格納ディレクトリの名称　/usr/datfile

例２

pdstedit実行ホストから参照できる次の解析対象ファイルを入力して，統計情報を編集します。また，DAT形式ファイルにも情報を出力します。
・一つのディレクトリ下に集めた複数のアンロード統計ログファイル及びアンロードログファイル
・アンロード前のシステムログファイル

［概要］

［コマンド実行例］

 pdstedit -k all   ..........................1
          -i /usr/unfile   ..................2
          -d /usr/ctl_file   ................3
          -o /usr/datfile   .................4

［説明］

すべての統計情報を編集する場合の指定

統計入力アンロードファイルがある統計入力アンロードファイル格納ディレクトリの名称/usr/unfile

制御文ファイルの名称　　/usr/ctl_file

統計情報を格納するDAT形式ファイル格納ディレクトリの名称　/usr/datfile

［制御文ファイル（/usr/ctl_file）の内容］

 file_group bes1:logfg01,logfg02
 file_group bes2:logfg01,logfg02

［説明］

bes1，bes2：

指定したファイルグループに対応するサーバ名

logfg01，logfg02：

解析対象のシステムログファイルがあるファイルグループ名

15　データベース状態解析ユティリティ（pddbst）

この章では，データベースの状態解析，状態解析結果の蓄積，及び再編成時期を予測するデータベース状態解析ユティリティ（pddbst）について説明します。

15.1　概要

実行者　DBA権限を持っているユーザが実行できます

pddbstには，次の三つの機能があります。

DB状態解析機能

状態解析結果蓄積機能

再編成時期予測機能

15.1.1　DB状態解析機能

DB状態解析機能とは，HiRDBのディレクトリを参照して，ディクショナリ表，又はユーザ用RDエリアの表とインデクスの格納状態を解析し，これらの解析結果を集計して表示する機能です。

DB状態解析機能は，次の単位で実行できます。

RDエリア単位の状態解析

表又はインデクス単位の状態解析

RDエリア単位でのクラスタキー及びクラスタリングデータページの格納状態解析

(1)　RDエリア単位の状態解析

RDエリア単位の状態解析には，論理的解析と物理的解析があります。

RDエリア単位の状態解析（論理的解析）と（物理的解析）を次の図に示します。

図15‒1　RDエリア単位の状態解析（論理的解析）

図15‒2　RDエリア単位の状態解析（物理的解析）

(2)　表単位又はインデクス単位の状態解析

表単位の状態解析とインデクス単位の状態解析を次の図に示します。

図15‒3　表単位の状態解析

図15‒4　インデクス単位の状態解析

(3)　RDエリア単位でのクラスタキー及びクラスタリングデータページの格納状態解析

クラスタキーを解析し，インデクス及び表の乱れ具合を示す格納不正率を表示します。

解析結果としては，クラスタキーの並びの解析結果とクラスタリングデータページの並びの解析結果を，格納RDエリアごとに表示します。

(a)　クラスタキーの並び解析

クラスタキーをキー順に検索し，次の解析結果を表示します。

格納位置がページ，又はセグメントにわたって格納されている格納位置変更回数を表示します。

格納位置変更回数のうち，格納順序がページ（セグメント）の昇順に対し，逆方向に格納されている格納順序不正回数（率）を，ページ単位/セグメント単位に表示します。ページ分割の発生によって，格納順序不正率は上昇します。

格納位置変更回数と格納順序不正回数（率）を次の図に示します。

図15‒5　格納位置変更回数と格納順序不正回数（率）

(b)　クラスタリングデータページの並び解析

クラスタリングデータページとは，クラスタキーの付けられた表のデータページのことをいいます。クラスタキー中の行データの格納位置情報を基に，クラスタキー順に検索した場合の行データの格納位置変更回数と格納順序不正回数（率）を，ページ単位/セグメント単位に表示します。

行の追加及び更新によって格納状態が乱れると，格納順序不正率か格納位置変更回数のどちらか，又は両方が増加します。

15.1.2　状態解析結果蓄積機能

状態解析結果蓄積機能とは，再編成時期予測機能を使用する場合に必要となる，DBの状態解析結果を蓄積するための機能です。

状態解析結果蓄積機能では，DB状態解析機能のRDエリア単位の論理的解析を実行し，解析結果を編集して解析情報表に格納します。状態解析結果蓄積機能は，毎日実行することをお勧めします。

状態解析結果蓄積機能の概要を次の図に示します。

図15‒6　状態解析結果蓄積機能の概要

状態解析結果蓄積機能には，予測レベル1，予測レベル2の二つのレベルがあります。これらのレベルは，再編成時期予測機能の予測レベル1，予測レベル2にそれぞれ対応しています。なお，予測レベル2の場合，より詳細な予測をするため，予測レベル1に比べて実行時間が長くなります。予測レベル2の状態解析結果蓄積機能を実行する場合は，「予測レベル2での状態解析結果蓄積機能の実行方法」を参照してください。

なお，この機能で蓄積されるデータ量の見積もりについては，マニュアル「HiRDB システム導入・設計ガイド」の「解析情報表及び運用履歴表を格納するデータディクショナリ用RDエリアの容量の見積もり」を参照してください。

状態解析結果蓄積機能を使用する場合の前提条件：

状態解析結果蓄積機能を使用する場合，次の準備をしておく必要があります。

システム定義にpd_rorg_predict=Yを設定する。

pdmodで解析情報表及び運用履歴表を格納するデータディクショナリ用RDエリアを作成する。

15.1.3　再編成時期予測機能

(1)　再編成時期予測機能とは

再編成時期予測機能とは，状態解析結果蓄積機能で蓄積した情報（解析情報表）と運用履歴表の情報を分析して，RDエリアのメンテナンスが必要となる時期（DBメンテナンス予定日）を予測し，メンテナンスの予定日と方法を通知する機能です。再編成時期予測機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

再編成時期予測機能の概要を次の図に示します。

図15‒7　再編成時期予測機能の概要

注

RDエリア内にリソースが一つだけある場合（例えば，1RDエリアに1表だけ格納されているなど），解析情報表及び運用履歴表の情報から予測します。RDエリア内にリソースが複数ある場合，解析情報表の情報から予測します。

再編成時期予測機能には，次の二つのレベルがあります。

予測レベル1

RDエリアの容量不足を予測する方法です。

予測レベル2

RDエリアの容量不足のほかに，表及びインデクスの格納効率の悪化を予測する方法です。

(2)　再編成時期予測機能を使用する場合の前提条件

再編成時期予測機能を使用する場合，次の準備をしておく必要があります。

システム定義にpd_rorg_predict=Yを設定する。

pdmodで解析情報表及び運用履歴表を格納するデータディクショナリ用RDエリアを作成する。

状態解析結果蓄積機能で4回分以上の解析情報を蓄積する。

(3)　再編成時期の予測の仕方

再編成時期の予測の仕方を次に示します。

(a)　予測レベル1の場合

予測レベル1では，RDエリアの使用中セグメント数の比率が，基準値を超える時期（DBメンテナンス予定日）を予測します。指定した日数以内（監視期間※１）に，その基準値に到達すると予測されたRDエリアについて，メンテナンスが必要であると判断します。メンテナンスが必要な場合，そのメンテナンス方法も通知します。メンテナンス方法は，メンテナンス延長期間※1の指定値によって，再編成した方がよいのか，又はRDエリアの拡張をした方がよいのかを判断します。

なお，基準値については，基準値定義ファイル※２を指定することで変更できます。

注※1

監視期間，及びメンテナンス延長期間は，-Rオプションで指定します。

注※2

基準値定義ファイルは，-cオプションで指定します。

RDエリアの使用中セグメント数の比率と，メンテナンス予定日，監視期間，及びメンテナンス延長期間の関係を次の図に示します。

図15‒8　RDエリアの使用中セグメント数の比率と，メンテナンス予定日，監視期間，及びメンテナンス延長期間の関係

（凡例）

▲：状態解析結果蓄積機能の実行

●：状態解析結果蓄積機能の実行時に取得した使用中セグメント数の比率

t1：再編成時期予測機能の実行

t2：使用中セグメント数の比率の予測線が，基準値に到達する予測日

t3：メンテナンス後に，使用中セグメント数の比率の予測線が，基準値に到達する予測日

(b)　予測レベル2の場合

予測レベル2では，予測レベル1のRDエリアの容量不足の予測のほかに，表及びインデクスの格納効率の悪化についても予測をします。

(4)　障害発生時にデータベースを最新の状態に回復しない場合の再編成時期予測

障害発生時に，データベースを最新の状態に回復しない場合（バックアップ取得時点への回復，又は範囲指定の回復），そのデータベースの状態で再編成時期予測機能を実行すると，正しい予測ができなくなります。このような運用を行っているシステムで再編成時期予測機能を使用する場合は，状態解析結果蓄積情報のリセットをすれば，正しい予測ができます。

例えば，状態解析結果蓄積機能を実行した後に障害が発生し，バックアップ取得時点（状態解析結果蓄積機能を実行する前の時点）までデータベースを回復したとします。この状態で再編成時期予測機能を実行すると，状態解析結果蓄積情報よりデータベースの内容が古い状態であるため，正しい予測ができなくなります。このような場合に，バックアップ取得時点に回復したときに状態解析結果蓄積情報のリセットを行うと，状態解析結果蓄積情報とデータベースの内容が同じになるため，正しい予測ができるようになります。

状態解析結果蓄積機能のリセットを行う場合，-Iオプションを指定します。

15.2　コマンドの形式

15.2.1　形式

(1)　DB状態解析機能の場合

RDエリア単位の状態解析

　pddbst -r ｛RDエリア名〔，RDエリア名〕…｜ALL｝

　　　　〔-k ｛logi 〔-d〕 〔-z〕｜phys 〔-f〕｝〕

　　　　〔-a 〔-h〕〕 〔-u 認可識別子 〔-p パスワード〕〕

　　　　〔-q 世代番号〕 〔-b〕

　　　　〔-X サーバ間通信の応答監視時間〕

　　　　〔-v 制御文ファイル名〕

　　　　〔-W 実行監視時間〕

表単位の状態解析

　pddbst -t 〔認可識別子．〕表識別子

　　　　〔-s〕 〔-u 認可識別子 〔-p パスワード〕〕 〔-d〕〔-z〕

　　　　〔-q 世代番号〕 〔-b〕

　　　　〔-X サーバ間通信の応答監視時間〕

　　　　〔-v 制御文ファイル名〕

　　　　〔-W 実行監視時間〕

インデクス単位の状態解析

　pddbst -i 〔認可識別子．〕インデクス識別子

　　　　〔-u 認可識別子 〔-p パスワード〕〕 〔-d〕 〔-z〕

　　　　〔-q 世代番号〕 〔-b〕

　　　　〔-X サーバ間通信の応答監視時間〕

　　　　〔-v 制御文ファイル名〕

　　　　〔-W 実行監視時間〕

クラスタキー及びクラスタリングデータページの格納状態解析

　pddbst -t 〔認可識別子．〕表識別子

　　　　〔-u 認可識別子 〔-p パスワード〕〕 -k clus

　　　　〔-q 世代番号〕 〔-b〕

　　　　〔-X サーバ間通信の応答監視時間〕

　　　　〔-v 制御文ファイル名〕

　　　　〔-W 実行監視時間〕

(2)　状態解析結果蓄積機能の場合

　pddbst -r ｛RDエリア名〔，RDエリア名〕…｜ALL｝ 〔-k logi〕 -e 予測レベル

　　　　〔-w 休止時間，セグメント数〕 〔-n 解析分割数〕 〔-I〕

　　　　〔-u 認可識別子 〔-p パスワード〕〕

　　　　〔-X サーバ間通信の応答監視時間〕

　　　　〔-v 制御文ファイル名〕

　　　　〔-W 実行監視時間〕

(3)　再編成時期予測機能の場合

　pddbst 〔-r ALL〕 -k pred -e 予測レベル

　　　　〔-m〕 〔-R 監視期間〔，メンテナンス延長期間〕〕

　　　　〔-c 基準値定義ファイル名〕 〔-u 認可識別子 〔-p パスワード〕〕

　　　　〔-X サーバ間通信の応答監視時間〕

　　　　〔-v 制御文ファイル名〕

　　　　〔-W 実行監視時間〕

15.2.2　オプション

(1)　-r ｛RDエリア名〔，RDエリア名〕…｜ALL｝

　　　〜＜識別子＞((1〜30))

解析するRDエリアの名称を指定します。

指定できるRDエリアを次に示します。

データディクショナリ用RDエリア

データディクショナリLOB用RDエリア

ユーザ用RDエリア（ただし，RDエリアの論理的解析の場合は一時表用RDエリアを除きます）

ユーザLOB用RDエリア

レジストリ用RDエリア

レジストリLOB用RDエリア

RDエリアの指定方法については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

ALLを指定すると，上記のすべてのRDエリアが処理対象になります。上記以外のRDエリアの処理はスキップされます。

＜規則＞

-qオプションと同時に指定する場合は，オリジナルRDエリア名を指定してください。

状態解析結果蓄積機能，及び再編成時期予測機能では，1RDエリアに格納されているすべての表を，1回のトランザクションで解析します。そのため，システム定義のpd_max_access_tablesオペランドの指定値は，解析対象RDエリア内で最も表を多く格納しているRDエリアの，表数以上必要となります。

(2)　-k ｛logi｜phys｜clus｜pred｝

DB状態解析機能，状態解析結果蓄積機能，又は再編成時期予測機能のどれを実行するのかを指定します。

logi：

RDエリアの状態解析（論理的解析），又は状態解析結果蓄積機能を実行する場合に指定します。

phys：

RDエリアの状態解析（物理的解析）を実行する場合に指定します。

clus：

クラスタキー及びクラスタリングデータページの格納状態解析を実行する場合に指定します。

pred：

再編成時期予測機能を実行する場合に指定します。

＜-kオプションとほかのオプションとの組み合わせ＞

-kオプションの指定値よって，-r，-t，及び-iオプションの指定可否が変わります。

-kオプションの指定

オプションの指定可否

備考

-r

-t

-i

logi

○

×

×

RDエリア単位の状態解析（論理的解析）

phys

○

×

×

RDエリア単位の状態解析（物理的解析）

clus

×

○

×

クラスタキー及びクラスタリングデータページの格納状態解析

省略

×

○

×

表単位の状態解析

×

×

○

インデクス単位の状態解析

○

×

×

RDエリア単位の状態解析（論理的解析）

pred

△

×

×

再編成時期予測機能

（凡例）

○：必ず指定してください。

△：指定は任意です。

×：指定できません。

(3)　-d

ページの詳細情報を表示する場合に指定します。このオプションは，論理的解析（-k logi），表単位の状態解析，及びインデクス単位の状態解析の場合に指定できます。ページの詳細情報は，pdrorg，及びpdreclaimの実行要否の基になる情報です。

(4)　-z

ページに格納されている表やインデクスの行の情報を表示する場合に指定します。このオプションで表示した内容を基に，空きページ解放ユティリティ（pdreclaim）を実行して削除状態の管理行を解放するかどうかを判断します。解析対象ごとに表示できる情報を次に示します。

項番

表示情報

RDエリア論理解析

RDエリア物理解析

表単位解析

インデクス解析

クラスタキー解析

1

表情報

削除状態の管理行数※

○

−

○

−

−

2

インデクス情報

残存エントリが管理する行数

○

−

−

○

−

3

インデクスが管理する総行数

○

−

−

○

−

（凡例）

○：表示できます。

−：表示できません。

注※

次の行数の合計値を表示します。

削除中（トランザクション決着待ち）の行数

削除済み（トランザクション決着済み）の行数

＜規則＞

このオプションを指定する場合，同時に-dオプションを指定する必要があります。

(5)　-f

HiRDBファイル情報を表示する場合に指定します。このオプションは，物理的解析（-k phys）の場合に指定できます。

(6)　-a

解析結果をDAT形式で表示する場合に指定します。

なお，RDエリアの状態解析（物理的解析）でこのオプションを指定した場合，-fオプションの指定有無に関係なく，-fオプション指定が仮定されます。

(7)　-h

-aオプション指定時に，ヘッダを付ける場合に指定します。

(8)　-u 認可識別子

pddbstを実行するユーザの，認可識別子を指定します。

＜規則＞

このオプションを省略した場合，クライアント環境定義のPDUSERで定義した認可識別子とパスワードが仮定されます。PDUSERが設定されていない場合，ユティリティを実行するユーザのOS上のユーザIDに対応するユーザ名が仮定されます。

認可識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

(9)　-p パスワード

-uオプションで指定した認可識別子に対応するパスワードを指定します。

＜規則＞

このオプションの指定を省略し，クライアント環境定義のPDUSERにも値が設定されていない場合，ユティリティの実行画面に入力された値が仮定されます。

パスワードを引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

(10)　-t 〔認可識別子.〕表識別子

解析する表の名称を指定します。

＜規則＞

ビュー表，及び一時表は指定できません。このオプションにビュー表又は一時表を指定して実行すると，pddbstはKFPK10106-Wメッセージを出力して，処理を終了します。

認可識別子を省略した場合は，-uオプションで指定した認可識別子が仮定されます。

認可識別子又は表識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。

表識別子に空白が含まれる場合は，引用符（''）で囲んでください。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

(11)　-s

表単位の状態解析で，格納行数を表示する場合に指定します。表の総格納行数及びRDエリアごとの格納行数を表示します。

オンライン業務と同時に実行する場合は-bも指定してください。-bを指定しない場合は，pddbstによるデータベースの読み込み及び参照によって，先にアプリケーションなどで読み込んでいたページがグローバルバッファから追い出されるため，オンライン業務の性能が遅くなる場合があります。

(12)　-i 〔認可識別子.〕インデクス識別子

解析するインデクスの名称を指定します。

＜規則＞

一時インデクスは指定できません。このオプションに一時インデクスを指定して実行すると，pddbstはKFPK10106-Wメッセージを出力して，処理を終了します。

認可識別子を省略した場合は，-uオプションで指定した認可識別子が仮定されます。

認可識別子又はインデクス識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。

インデクス識別子に空白が含まれる場合は，引用符（''）で囲んでください。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

(13)　-q 世代番号

　　　〜＜符号なし整数＞((0〜10))

インナレプリカ機能に関する情報を表示する場合に指定します。

＜規則＞

HiRDB Staticizer Optionが組み込まれていない場合にこのオプションを指定すると，エラーとなります。

このオプションを指定した場合，指定した世代のレプリカ定義が存在するRDエリアを解析対象とします。指定した世代に解析対象となるRDエリアが存在しない場合はエラー（KFPK10102-Wメッセージ）となります。

このオプションを省略した場合，解析対象となるRDエリアは次のようになります。

・RDエリア単位の状態解析で-rオプションにALLを指定した場合は，定義されているRDエリアのうち，「-r ｛RDエリア名〔，RDエリア名〕…｜ALL｝」に示した指定できるRDエリア

・RDエリア単位の状態解析で，-rオプションに一括指定又は直接指定を指定した場合は，-rオプションで指定したRDエリア

・表又はインデクス単位の状態解析と，クラスタキー及びクラスタリングデータページの格納状態解析の場合は，カレントRDエリア

状態解析結果蓄積機能，及び再編成時期予測機能を実行する場合，このオプションは指定できません。インナレプリカ機能を使用している場合は，-q 0を仮定して実行します。

(14)　-b

pddbst実行によるアプリケーションへのオンライン性能劣化を防ぐ場合に指定します。

-sオプションの指定がない場合は，このオプションが指定されたものとして動作します。

-sオプションと同時に指定すると，解析時間が長くなることがあります。また，ディクショナリ表からデータベースの状態解析対象となる表，インデクスの情報を検索する処理や，再編成時期予測機能での運用管理表の検索処理では，-bオプションの指定は無効となります。

＜適用基準＞

pddbstを実行すると，解析対象の資源のページをグローバルバッファに読み込んでから処理をします。このとき，グローバルバッファ不足が発生すると，先にアプリケーションなどで読み込んでいたページがグローバルバッファから追い出されるため，オンライン性能が劣化する可能性があります。この性能劣化を回避する場合，-bオプションを指定します。

-bオプションを指定した場合，pddbstだけが読み込んだページは常に最古のページとして扱い，グローバルバッファ不足時には最初に追い出されるページとなります。-bオプションを指定しない場合はLRU管理方式となります。

＜利点＞

グローバルバッファが不足した場合でも，アプリケーションのオンライン性能への影響がありません。ただし，pddbst実行時に，行数を取得するためのディレクトリページの再読み込みが発生します。

(15)　-e 予測レベル

状態解析結果蓄積機能，又は再編成時期予測機能を実行する場合の予測レベルを指定します。

1：

状態解析結果蓄積機能，又は再編成時期予測機能を予測レベル1で実行する場合に指定します。

2：

状態解析結果蓄積機能，又は再編成時期予測機能を予測レベル2で実行する場合に指定します。

＜規則＞

状態解析結果蓄積機能と再編成時期予測機能の予測レベルは同じにしてください。

-eオプションを指定した場合，-bオプション指定が仮定されます。

(16)　-w 休止時間，セグメント数

予測レベル2の状態解析結果蓄積機能を，インターバル解析で実行する場合に指定します。インターバル解析については，「インターバル解析」を参照してください。指定したセグメント数分の解析をした後，休止時間に指定した時間だけ処理を休止します。

休止時間　　　〜＜符号なし整数＞((10〜60000))

休止時間を10ミリ秒単位に指定します。10ミリ秒単位の指定でない場合，1けた目を切り上げます（例：15→20）。

セグメント数　　　〜＜符号なし整数＞((1〜2147483647))

解析をするセグメント数を指定します。

＜規則＞

-wオプションは，予測レベル2（-e 2）の場合に有効となります。そのほかの場合に指定すると，制御文エラーになります。

HiRDB/パラレルサーバの場合，指定値はサーバごとに有効となります。

グローバルバッファに解析対象のページがない場合，休止時間が来るまで（指定したセグメント数×セグメントサイズ）回の入出力が発生します。

(17)　-n 解析分割数

　　　〜＜符号なし整数＞((2〜10))

予測レベル2の状態解析結果蓄積機能を，マージ解析で実行する場合に指定します。マージ解析については，「マージ解析」を参照してください。

1回の状態解析結果蓄積機能の実行を，指定した解析分割数に分けて行います。ここで指定した解析分割数（n）を分母にして，1/nのデータが1回の解析対象となります。最終的には，n回実行すると，対象となる全データが解析されます。

＜規則＞

-nオプションは，予測レベル2（-e 2）の場合に有効となります。そのほかの場合に指定すると，制御文エラーになります。

-nオプションを指定する場合，指定した回数分pddbstを実行する必要があります。途中で-nオプションの指定値を変更した場合は，前回までに蓄積した解析情報は無効となり，再度最初から解析を始めます。

全体の解析が終わる前の状態（例えば，全体の2/3が完了している状態）で，表やインデクスをメンテナンスした場合は，再度最初から解析を始めます（1/3から開始します）。

(18)　-I

状態解析結果蓄積情報をリセットする場合に指定します。状態解析結果蓄積情報をリセットについては，「障害発生時にデータベースを最新の状態に回復しない場合の再編成時期予測」を参照してください。

＜規則＞

-Iオプションを指定する場合，-r オプションにALLは指定できません。

-Iオプションは，データベースを回復した後の1回目の状態解析結果蓄積機能実行時にだけ指定してください。それ以外のタイミングで-Iオプションを指定すると，状態解析結果蓄積情報がリセットされます。

(19)　-m

再編成時期予測機能で，DBメンテナンス予定日の情報，及びメンテナンス方法の情報を出力する場合に指定します。省略した場合は，DBメンテナンス予定日の情報だけ出力されます。

＜注意事項＞

予測の結果，メンテナンスが必要となるRDエリアが存在した場合，RDエリア及びRDエリア内のリソースの状態を解析します。このため，処理対象となるRDエリア数，RDエリア内の表及びインデクスの総数に応じて，コマンド実行時間が長くなることがあります。

(20)　-R 監視期間〔，メンテナンス延長期間〕

再編成時期予測機能を実行する場合，対象とする期間とメンテナンスの延長期間を指定します。

監視期間　〜＜符号なし整数＞((1〜400))《14》

監視対象期間を日数で指定します。

例えば，この先2週間以内に，DBメンテナンス予定日となるRDエリアを監視したい場合，14と指定します。

メンテナンス延長期間　〜＜符号なし整数＞((0〜400))《監視期間÷2》

DBメンテナンス予定日にメンテナンスをした場合，次のDBメンテナンス予定日を迎えるまでの余裕期間を，日数で指定します。

例えば，DBメンテナンスを実行した後，次のDBメンテナンスまで1週間の余裕を持たせたい場合は，7と指定します。

(21)　-c 基準値定義ファイル名

　　　〜＜パス名＞((1023バイト以内))

再編成時期予測機能を実行する場合，あらかじめ決められた各項目の基準値を基に予測をしています。この各項目の基準値を変更する場合に，基準値定義ファイルを絶対パス名又は相対パス名で指定します。

基準値定義ファイルには，変更後の各項目の基準値を記述します。基準値定義ファイルについては，「基準値定義ファイル（再編成時期予測機能）」を参照してください。

(22)　-X サーバ間通信の応答監視時間

　　　〜＜符号なし整数＞　((1〜65535))　《300》

コマンドを実行したサーバで通信障害などの障害が発生した場合，コマンドは無応答となり，業務が停止するおそれがあります。pddbstでは障害を検知するために，コマンドで実施されるディクショナリ操作についての通信の応答時間を監視できます。

-Xオプションには，ディクショナリ操作での応答監視時間を秒数で設定します。ディクショナリ操作時の実行時間が，-Xオプションに設定した時間を超えた場合は，pddbstはディクショナリアクセスで障害が発生したと判断し，リターンコード8で処理を打ち切ります。

＜適用基準＞

通信障害やユニットダウンによってサーバから応答が返らない状態となった場合に，300秒より早く障害を検知したいとき，-Xオプションに300より小さい値を指定してください。

系切り替え機能を使用している場合，系切り替えが完了しているにもかかわらず，コマンドが応答を待ち続けることがあります。その場合は，監視時間を短く設定することで，コマンドを即時終了できます。

同時実行するアプリケーションやユティリティの多重度が高い場合など，ディクショナリからの応答が遅延し，-Xオプションのデフォルトである300秒以内にユティリティの前処理が完了しないときは，監視時間でタイムアウトするおそれがあります。このような環境では，-Xオプションには300より大きい値を指定してください。

(23)　-v 制御文ファイル名

　　　〜＜パス名＞((1023バイト以内))

pddbstの制御文を指定したファイルを，絶対パス名又は相対パス名で指定します。

このファイルは，pddbstを実行するホストになければなりません。指定できる制御文を次に示します。なお，制御文ファイル中にコメントは記述できません。

predict文

workdir文

option文

(24)　-W 実行監視時間

　　　〜＜符号なし整数＞((0〜3600))

データベース状態解析ユティリティの実行時間を監視する場合に，その監視時間を分単位で指定します。

このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

オプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

15.2.3　predict文

再編成時期予測機能の実行結果をCSV形式でファイル出力する場合に指定します。

＜規則＞

predict文は，再編成時期予測機能を実行するときだけ指定できます。

predict文は，制御文ファイル中に一つだけ指定できます。

(1)　形式

　predict file=CSV出力ファイル名

(2)　説明

(a)　CSV出力ファイル名

　　　〜＜パス名＞((1023バイト以内))

再編成時期予測機能の結果を出力する通常ファイル名を絶対パス名で指定します。

出力されるファイルの形式については，「CSV形式での出力形式」を参照してください。

＜規則＞

HiRDB/パラレルサーバの場合，システムマネジャがあるホストに作成してください。

指定するファイルには，HiRDB管理者のアクセス権限がなければなりません。

ファイル名に空白を含む場合は，引用符（"）で囲んでください。

指定したファイルがない場合はファイルを作成し，既にある場合はファイルが上書きされます。

15.2.4　workdir文

pddbst実行時に使用する作業用ワークファイルの出力先ディレクトリを指定します。作業用ワークファイルは，DB状態解析の実行やソート処理のために，pddbstが使用するファイルです。

＜規則＞

workdir文は，制御文ファイル中に一つだけ指定できます。

workdir文を省略した場合，シングルサーバ又はシステムマネジャのホストの，次の表に示すディレクトリに作業用ワークファイルを作成します。このファイルはpddbst終了後に削除されますが，異常終了した場合などは削除されないことがあります。

表15‒1　pddbstが作業用ワークファイルを出力するディレクトリ

workdir文の指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIR※の指定

あり

なし

あり

workdir文に指定したディレクトリ

なし

pd_tmp_directoryに指定したディレクトリ

TMPDIRに指定したディレクトリ

/tmpディレクトリ

注※　コマンド実行環境の環境変数の指定

(1)　形式

　workdir dir=作業用ワークファイル用ディレクトリ名

(2)　説明

(a)　作業用ワークファイル用ディレクトリ名

　　　〜＜パス名＞((1000バイト以内))

作業用ワークファイルの出力先ディレクトリを絶対パス名で指定します。

＜規則＞

HiRDB/パラレルサーバの場合，システムマネジャがあるホストのディレクトリを指定してください。

指定するディレクトリには，HiRDB管理者のアクセス権限がなければなりません。

ディレクトリ名に空白を含む場合は，引用符（"）で囲んでください。

指定したディレクトリに同一ファイルがない場合はファイルを作成し，既にある場合はファイルが上書きされます。

15.2.5　option文

pddbst実行時のオプションを指定します。

＜規則＞

option文は，制御文ファイル中に一つだけ指定できます。

(1)　形式

　sortbufsize=ソート用バッファサイズ

(2)　説明

(a)　ソート用バッファサイズ

　　　〜＜符号なし整数＞((256〜2097151))《256》

解析結果のソート処理で使用するバッファのサイズを指定します。単位はキロバイトです。

＜規則＞

ソート用バッファサイズは，次の計算式を目安に指定してください。

nは処理対象数です。解析種別によって，次の表のように処理対象数が変わります。

表15‒2　解析種別ごとの処理対象数

解析種別

処理対象数

RDエリアの状態解析（論理的解析）

解析対象となるRDエリアに定義された表，及びインデクスの合計値

RDエリアの状態解析（物理的解析）

解析対象となるRDエリア数

表単位の解析

解析対象となる表が格納されたRDエリア数

インデクス単位の解析

解析対象となるインデクスが格納されたRDエリア数

クラスタキー及びクラスタリングデータページの格納状態解析

解析対象となるクラスタキーインデクスが格納されたRDエリア数

15.3　DB状態解析機能の出力形式

15.3.1　RDエリア単位の状態解析（論理的解析）

RDエリア内の表及びインデクスに対する，全セグメント及び全ページの格納状態を解析します。ただし，複数のRDエリアに分割格納された表及びインデクスは，指定したRDエリアに格納された部分だけ解析します。

(1)　使用目的

一つのRDエリア内の表及びインデクスの乱れの検知，容量の状態が分かります。

(2)　解析結果

RDエリア単位の状態解析（論理的解析）で表示される解析結果を次に示します。

(a)　LOB用RDエリア以外の場合

 pddbst VV-RR(Object Option) ** RD Area Logical Analysis **  2008/12/25 15:54:10 [1]
 RD Area Name   : user_rdarea_1 [2]
  Server        : bes01 [3]
  Total Segment :        150[4] Segment Size :          5 Pages [6]
  Unused Segment:          9[5] Page Size    :       4096 Bytes [7]
  Original RD Area Name : user_rdarea_1 [21]
  Generation Number :  0[22]  Replica RD Area Count :  0 [23]
  [24]     [25]               [26]               [27]
  History1 Hold Status :      Hold Code :     0  Hold Time :
  History2 Hold Status :      Hold Code :     0  Hold Time :
--------------------------------------------------------------------------------

 Table Name : TBL01 [8]
 Auth Id    : user1 [9]
 Status     :   [20]
 Reference Pending Status :   [33]
 Check     Pending Status :   [34]
 Segment Reuse :          - segments [29]
 Segment Reuse Option :          1
  <Base row segment>
  Search Mode : INS [28]
  Branch Row Search Mode :       - [58]
  Reuse Search Failure :          0/         0 [30]
              Used(Full)       Used(      Full)        Sum
              [10]  [11]        [12]       [13]        [14]
  Segment [39]100%(  0%)        107(         0)        107
              [15]  [16]        [17]       [18]        [19]
  Page [40]   100%(  0%)        535(         0)        535
  Collect On Segment :          0 [53]
  Collect Prearranged Page :          0 [31]
  Collect Prearranged Full Page :          0 [59]
  Used Page Ratio       Page(Ratio) [32]
             0% :          0(   0%)
         1- 10% :          1(   1%)
        11- 20% :          0(   0%)
        21- 30% :          0(   0%)
        31- 40% :          0(   0%)
        41- 50% :          0(   0%)
        51- 60% :          0(   0%)
        61- 70% :        118(  22%)
        71- 80% :        416(  78%)
        81- 90% :          0(   0%)
        91-100% :          0(   0%)
  Total                  535
  Del RowID   :                     0 [60]

 Table Name : TBL02
 Auth Id    : user1
 Status     :
 Reference Pending Status :
 Check     Pending Status :
 Segment Reuse :          - segments
 Segment Reuse Option :          - [61]
  <Base row segment>
  Search Mode : INS
  Branch Row Search Mode : -
  Reuse Search Failure :          0/         0
          Used(Full)       Used(      Full)        Sum
  Segment 100%(  0%)          1(         0)          1
  Page     60%(  0%)          3(         0)          5
  Collect On Segment :          0
  Collect Prearranged Page :          0
  Collect Prearranged Full Page :          0
  Used Page Ratio       Page(Ratio)
             0% :          2(  40%)
         1- 10% :          1(  20%)
        11- 20% :          1(  20%)
        21- 30% :          0(   0%)
        31- 40% :          1(  20%)
        41- 50% :          0(   0%)
        51- 60% :          0(   0%)
        61- 70% :          0(   0%)
        71- 80% :          0(   0%)
        81- 90% :          0(   0%)
        91-100% :          0(   0%)
  Total                    5
  Del RowID   :                     0
  <BINARY segment>
  Search Mode : INS
  Branch Row Search Mode : -
  Reuse Search Failure :          0/         0
              Used(Full)       Used(      Full)        Sum
              [41]  [42]        [43]       [44]        [45]
  Segment [46]100%( 93%)         14(        13)         14
              [47]  [48]        [49]       [50]        [51]
  Page  [52]  96%( 95%)         67(        66)         70
  Collect On Segment :          0
  Collect Prearranged Page :          0
  Collect Prearranged Full Page :          0
  Used Page Ratio       Page(Ratio)
             0% :          3(   5%)
         1- 10% :          0(   0%)
        11- 20% :          0(   0%)
        21- 30% :          0(   0%)
        31- 40% :          0(   0%)
        41- 50% :          0(   0%)
        51- 60% :          0(   0%)
        61- 70% :          0(   0%)
        71- 80% :          0(   0%)
        81- 90% :          0(   0%)
        91-100% :         67(  96%)
  Total                   70

 Index Name : IDX_TBL01_C1
 Auth Id    : user1
 Status     :
          Used(Full)       Used(      Full)        Sum
  Segment 100%(  0%)         19(         0)         19
  Page    100%(  0%)         95(         0)         95
  Collect On Segment :          0
  Collect Prearranged Page :          0
  Collect Prearranged Full Page :          0
  Collect On Page :          0 [54]
  Used Page Ratio       Page(Ratio) Del RowID [35]
             0% :          0(   0%)         0
         1- 10% :          0(   0%)         0
        11- 20% :          0(   0%)         0
        21- 30% :          1(   1%)         0
        31- 40% :          1(   1%)         0
        41- 50% :          0(   0%)         0
        51- 60% :          0(   0%)         0
        61- 70% :         93(  98%)         0
        71- 80% :          0(   0%)         0
        81- 90% :          0(   0%)         0
        91-100% :          0(   0%)         0
  Total                   95                0 [36]
  Del RowID   :                     0     (  0%) [37]
  RowID Count :                10,000 [38]

 Sequence Name : SEQ1 [55]
 Auth Id       : user1 [56]
  Current Value :                               10000001 [57]

［説明］

処理対象RDエリアが複数ある場合，次の順序で表示されます。

RDエリア名（昇順）

表名（昇順）

インデクス名（昇順）

順序数生成子識別子（昇順）

状態解析の基になる情報の取得完了年月日時刻を，YYYY/MM/DD hh:mm:ssの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

解析対象のRDエリアの名称を表示します。

RDエリアを管理するサーバの名称を表示します。

RDエリアの総セグメント数（使用中セグメント数＋未使用セグメント数）を表示します。

RDエリアの未使用セグメント数の合計を表示します。

1セグメントのサイズをセグメント内のページ数で表示します。

1ページのサイズをバイト単位で表示します。

RDエリアにある表又はインデクスの名称を表示します。

表又はインデクスの認可識別子を表示します。データディクショナリ用RDエリアの場合は，(Data dictionary)と表示されます。

使用中セグメント数の比率を表示します。

↑使用中セグメント数÷14の値×100↑（％）

満杯セグメント数の比率を表示します。

↑満杯セグメント数÷14の値×100↑（％）

使用中セグメント数を表示します。pdreclaimでの解放途中セグメントは，使用中セグメントとして表示します。

満杯セグメント数を表示します。

表又はインデクスに割り当てられているセグメント数の合計（使用中セグメント数＋未使用セグメント数）を表示します。

使用中ページ数の比率を表示します。

↑使用中ページ数÷19の値×100↑（％）

満杯ページ数の比率を表示します。

↑満杯ページ数÷19の値×100↑（％）

使用中ページ数を表示します。

満杯ページ数を表示します。

表又はインデクスに割り当てられているセグメント中のページ数の合計（使用中ページ数＋未使用ページ数）を表示します。

表の場合は，データ未完状態であるか，又は再編成実行中であるかを表示します。次のどちらでもない場合は，空白を表示します。

DATA_UNFINISH：

データ未完状態です。表の再編成を実行し，途中でエラーなどによってリロード処理が完了していない状態のことをいいます。データ未完状態を解除するためには，表の再編成を再実行するか，又は表へのリロードを実行する必要があります。

ON_RORG：

再編成実行中です。

インデクスの場合は，インデクスの未完状態を表示します。未完状態でない場合は空白を表示します。

UNFINISH_0：

図「表単位のインデクス作成未完状態の種類（1/2）」，図「表単位のインデクス作成未完状態の種類（2/2）」を参照してください。

UNFINISH_1：

図「RDエリア単位のインデクス作成未完状態の種類（1/2）」，図「RDエリア単位のインデクス作成未完状態の種類（2/2）」を参照してください。

UNFINISH_2：

プラグインインデクス遅延更新中。プラグインインデクス遅延一括作成機能を使用したUAPを実行中，又はUAP終了後にpdrorgのインデクス一括作成を実行していない状態です。プラグインインデクスの遅延一括作成については，マニュアル「HiRDB システム運用ガイド」を参照してください。

オリジナルRDエリア名を表示します。

該当するRDエリアの世代番号を表示します。

レプリカRDエリアの数を表示します。

該当するRDエリアの閉塞履歴情報です。

History1：閉塞解除する一つ前の閉塞情報（現時点で閉塞中の場合は現在の閉塞情報）

History2：History1の一つ前の閉塞情報

該当するRDエリアの閉塞種別を表示します。履歴がない場合は空白を表示します。

CMD：HiRDBの障害検知によるコマンド閉塞

FLT：障害閉塞

該当するRDエリアの閉塞要因コードを表示します。履歴がない場合は0を表示します。

0：閉塞解除

10：入出力エラー

20：ページ破壊

40：オープン，確保エラー

70：ロールバックエラー

80：DROP TABLE，DROP INDEX実行時のエラーによる閉塞

90：ログレス閉塞（pdload，pdrorg，及びpdrbal）

92：ログレス閉塞（UAP）

93：LOB用RDエリアの閉塞

96：タイムスタンプ不正

97：オブジェクトID不正

98：リスト用RDエリアの異常

100：ログ取得モード以外を指定したユティリティ（pdload，pdrorg，及びpdrbal）の実行による，ログ適用不可能状態

102：ログ取得モード以外を指定したUAPの実行による，ログ適用不可能状態

104：BLOB列の列回復制約にPARTIAL又はNOを指定した表の更新による，ログ適用不可能状態

110：pdmodの実行によるログ適用不可能状態

120：障害閉塞によるログ適用不可能状態

該当するRDエリアの閉塞時刻を表示します。履歴がない場合は空白を表示します。

ページサーチモードを表示します。

INS：新規ページ追加モード

REU：空きページ再利用モード

CREATE TABLE実行時，又はALTER TABLE実行時のSEGMENT REUSEで指定したセグメント数です。SEGMENT REUSEでセグメント数を指定していない場合は"0"を表示します。また，SEGMENT REUSEにNOを指定している場合，及びSEGMENT REUSEを省略している場合は"-"を表示します。

新規ページ追加モードから空きページ再利用モードに切り替えたときに，再利用できる空き領域がなく，新規ページ追加モードに戻した回数（n/m）を表示します。

n：空回り回数

m：新規ページ追加モードから空きページ再利用モードに切り替えた回数

n及びmは，次の契機でリセットされ，0が設定されます。

RDエリアのクローズ時

HiRDBの再開始時

PURGE TABLE文実行時

pdreclaimで解放できるページ数（使用率0％の使用中空きページの数）を表示します。

使用中ページの比率別ページ数を10％ごとに表示します。括弧内の値は，すべての使用中ページに対する比率を表します。比率は小数点以下を切り上げて表示するため，比率を合計すると100を超えることがあります。注意事項を次に示します。

201件以上重複したキー値を格納するページは，表定義時のPCTFREEの比率が無効となります。そのため，再編成する場合でもPCTFREEの比率どおりに再配置されません。

インデクスキー値無排他を適用したインデクスの場合，削除キー値は空き領域として扱い，使用中ページのすべてが削除キー値のときは，使用率0％となります。

満杯ページであっても，使用率が91−100％であるとは限りません。

行長が短くなる更新をして空いた領域は，空き領域として扱いません。

（100−PCTFREEで指定した空き領域比率）よりも，使用中ページ比率が小さいページが多い場合，格納効率が低下している可能性があります。この場合，pdrorgの実行を検討してください。ただし，分岐行（256バイト以上の可変長文字列データ，繰返し列のデータ，及び抽象データ型列のデータ）を格納している領域は，pdrorgを実行しても格納効率は変わりません。

RDエリア中の表情報の参照制約の検査保留状態を表示します。表に参照制約の定義がない場合は空白を表示します。

P：検査保留状態

空白：非検査保留状態

RDエリア中の表情報の検査制約の検査保留状態を表示します。表に検査制約の定義がない場合は空白を表示します。

P：検査保留状態

空白：非検査保留状態

インデクスキー値無排他を使用している場合又はコミットしていない削除データに排他を掛ける場合，次の数値を表示します。

使用中インデクスページの比率別残存エントリが管理する行数

（残存エントリとは，インデクスキー値の更新や削除によって，キーの削除後も排他制御のためにインデクス上に残っているインデクスエントリ）

表示けた数は3けたで，小数点と単位を含めた最大表示けた数は5けたです。表示する行数が3けたを超える場合に小数点と単位を表示します。その場合，先頭から4けた目を四捨五入します。残存エントリが管理する行数の表示形式を次に示します。

数値の範囲

表示形式

0〜999

0〜999

1,000〜999,499

1.00K〜999K

999,500〜999,499,999

1.00M〜999M

999,500,000〜999,499,999,999

1.00G〜999G

999,500,000,000〜999,499,999,999,999

1.00T〜999T

（凡例）

K：キロ　M：メガ　G：ギガ　T：テラ

使用中ページの比率別ページ数の合計と，残存エントリが管理する行数の合計を表示します。

インデクスの削除状態の，管理行数の合計と，全管理行数に対する割合を表示します。

インデクスが管理する総行数を表示します。15けたまでは整数，16けた以上になると指数で表示します。例えば，1000000000000000は1E+15と表示します。表示形式を次に示します。

数値の範囲

表示形式

0〜999

0〜999

1000〜9999

1,000〜9,999

100000000000000〜999999999999999

100,000,000,000,000〜999,999,999,999,999

1000000000000000〜

z,zzz,zzz,zzz,zzz,zz9E+zz9

（有効けた数16けたの指数形式）

セグメント単位のサマリ情報です。バイナリ専用セグメントの情報は含みません。

ページ単位のサマリ情報です。

使用中バイナリ専用セグメント数の比率を表示します。

↑使用中バイナリ専用セグメント数÷表に割り当てられているバイナリ専用セグメント数の合計×100↑（％）

満杯バイナリ専用セグメント数の比率を表示します。

↑満杯バイナリ専用セグメント数÷表に割り当てられているバイナリ専用セグメント数の合計×100↑（％）

使用中バイナリ専用セグメント数を表示します。pdreclaimでの解放途中セグメントは，使用中バイナリ専用セグメントとして表示します。

満杯バイナリ専用セグメント数を表示します。

表に割り当てられているバイナリ専用セグメント数の合計を表示します。

バイナリ専用セグメント単位のサマリ情報です。

バイナリ専用セグメントの使用中ページ数の比率を表示します。

↑バイナリ専用セグメントの使用中ページ数÷表に割り当てられているバイナリ専用セグメントのページ数の合計×100↑（％）

バイナリ専用セグメントの満杯ページ数の比率を表示します。

↑使用中バイナリ専用セグメントの満杯ページ数÷表に割り当てられているバイナリ専用セグメントのページ数の合計×100↑（％）

バイナリ専用セグメントの使用中ページ数を表示します。

バイナリ専用セグメントの満杯ページ数を表示します。

表に割り当てられているバイナリ専用セグメントのページ数の合計を表示します。

バイナリ専用セグメントのページ単位のサマリ情報です。

-aオプションを指定したpdreclaimが同時実行中，又はエラー終了した場合に，解放途中のセグメント数を表示します。-aオプションを指定したpdreclaimを実行していない場合は0を表示します。

pdreclaimの実行途中，又はpdreclaimがエラーで終了しているために解放処理が途中になっている状態のページ数を表示します。エラーで終了している場合は，pdreclaimを再実行してください（このページ数は0になります）。なお，表示するページ数は，使用中ページの比率別（0％）のページ数にカウントされます。

順序数生成子識別子です。

順序数生成子の認可識別子です。

順序数生成子の現在値です。現在値が設定されていない場合，値を表示しません。順序数生成子にログ出力間隔を指定している場合，サーバの強制停止などによって，表示した現在値と次に使用する順序番号の値が異なることがあります。この場合，現在値の後に"*"を表示しますが，UAPなどで現在値を使用するときに正しい値に補正されるため，その後の論理的解析実行時には正しい値が表示されます。

分岐行に対する空き領域サーチモードを表示します。

INS：新規ページ追加モード

REU：空きページ再利用モード

SEGMENT REUSEの再利用オプション値で「分岐行が多発する表の格納効率向上」を指定していない場合は，"-"が表示されます。

pdreclaim又はpdrorgで解放できる満杯ページ数を表示します。

表の削除状態の，管理行数の合計を表示します。

表定義のSEGMENT REUSEで指定した再利用オプション値を表示します。

注1

21〜23は，HiRDB Staticizer Option使用時に表示される情報です。世代を指定して解析した場合，指定した世代にレプリカRDエリアがないと，警告メッセージが出力され結果は表示されません。

注2

31，及び32は，-dオプションを指定した場合に表示される情報です。

また，35〜38は-dオプションと-zオプションを同時に指定した場合に表示される情報です。

注3

39〜52は，表に，定義長256バイト以上のBINARY型の列，又は抽象データ型の列が定義されている場合に出力されます。

図15‒9　表単位のインデクス作成未完状態の種類（1/2）

図15‒10　表単位のインデクス作成未完状態の種類（2/2）

図15‒11　RDエリア単位のインデクス作成未完状態の種類（1/2）

図15‒12　RDエリア単位のインデクス作成未完状態の種類（2/2）

(b)　LOB用RDエリアの場合

 pddbst VV-RR(Object Option) ** RD Area Logical Analysis **  2003/04/03 12:36:43 [1]
 RD Area Name   : user_rdlob_2 [2]
  Server        : bes1 [3]
  Total Segment :      11000 [4] Segment Size :          1 Pages [6]
  Unused Segment:       9178(      9178) [5]
  Page Size    :       8192 Bytes [7]
  Original RD Area Name : user_rdlob_2 [16]
  Generation Number :  0[17]  Replica RD Area Count :  0 [18]
  [19]     [20]               [21]               [22]
  History1 Hold Status :      Hold Code :     0  Hold Time :
  History2 Hold Status :      Hold Code :     0  Hold Time :
--------------------------------------------------------------------------------
 Table Name : TBL03 [8]
 Auth Id    : user1 [9]
 Status     :   [23]
          Used       Used        Sum
  Segment 100% [10]  1822 [11]  1822 [12]
  Segment Over  : N [13] Last Segment :       1822/     11000 [14]
  Lobmap  Over  : N [15]

［説明］

処理対象RDエリアが複数ある場合，次の順序で表示されます。

RDエリア名（昇順）

表名（昇順）

インデクス名（昇順）

状態解析の基になる情報の取得完了年月日時刻を，YYYY/MM/DD hh:mm:ssの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

解析対象のRDエリアの名称を表示します。

RDエリアを管理するサーバの名称を表示します。

RDエリアの総セグメント数（使用中ページ数＋未使用セグメント数）を表示します。

RDエリアの未使用セグメント数の合計を表示します。括弧内は該当するRDエリア内の，更新凍結状態でないHiRDBファイルの未使用セグメント数の合計となります。

1セグメントのサイズをセグメント内のページ数で表示します。

1ページのサイズをバイト単位で表示します。

RDエリアにある表又はインデクスの名称を表示します。

表の認可識別子を表示します。データディクショナリLOB用RDエリアの場合は，(Data dictionary)と表示されます。

使用中セグメント比率を表示します。

↑11の値÷12の値×100↑（％）

使用中セグメント数を表示します。pdreclaimでの解放途中セグメントは，使用中セグメントとして表示します。

表に割り当てられているセグメント数の合計（使用中セグメント数）を表示します。

LOB用RDエリアが乱れているかどうかを表示します。

Y ：乱れています。

N ：乱れていません。

使用されているセグメントの最後を示す位置情報を表示します。最終位置/総セグメント数の形式で表示します。13がYのときは，常に最後のセグメントを示します。

LOB管理エントリがすべて使用されているかどうかを表示します。

Y ：すべて使用されています。

N ：未使用のエントリが残っています。

オリジナルRDエリア名を表示します。

該当するRDエリアの世代番号を表示します。

レプリカRDエリアの数を表示します。

該当するRDエリアの閉塞履歴情報です。

History1：閉塞解除する一つ前の閉塞情報（現時点で閉塞中の場合は現在の閉塞情報）

History2：History1の一つ前の閉塞情報

該当するRDエリアの閉塞種別を表示します。履歴がない場合は空白を表示します。

CMD：HiRDBの障害検知によるコマンド閉塞

FLT：障害閉塞

該当するRDエリアの閉塞要因コードを表示します。閉塞要因コードについては，「LOB用RDエリア以外の場合」を参照してください。

該当するRDエリアの閉塞時刻を表示します。履歴がない場合は空白を表示します。

表の場合は，データ未完状態であるか，又は再編成実行中であるかを表示します。次のどちらでもない場合は，空白を表示します。

DATA_UNFINISH：

データ未完状態です。表の再編成を実行し，途中でエラーなどによってリロード処理が完了していない状態のことをいいます。データ未完状態を解除するためには，表の再編成を再実行するか，又は表へのリロードを実行する必要があります。

ON_RORG：

再編成実行中です。

インデクスの場合は，インデクスの未完状態を表示します。未完状態でない場合は空白を表示します。

UNFINISH_0：

図「表単位のインデクス作成未完状態の種類（1/2）」，図「表単位のインデクス作成未完状態の種類（2/2）」を参照してください。

UNFINISH_1：

図「RDエリア単位のインデクス作成未完状態の種類（1/2）」，図「RDエリア単位のインデクス作成未完状態の種類（2/2）」を参照してください。

UNFINISH_2：

プラグインインデクス遅延更新中。プラグインインデクス遅延一括作成機能を使用したUAPを実行中，又はUAP終了後にpdrorgのインデクス一括作成を実行していない状態です。プラグインインデクスの遅延一括作成については，マニュアル「HiRDB システム運用ガイド」を参照してください。

注

16〜18は，HiRDB Staticizer Option使用時に表示される情報です。世代を指定して解析した場合，指定した世代にレプリカRDエリアがないと，警告メッセージが出力され結果は表示されません。

(c)　DAT形式の場合（-aオプションを指定した場合）

DAT形式での出力規則を次に示します。

DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

RDエリアごとに，そのRDエリアにある表，インデクス，及び順序数生成子の情報をそれぞれ1行ずつ表示します。

RDエリアの情報は，RDエリア名の昇順に表示します。また，表，インデクス，及び順序数生成子の情報は，それぞれ名称の昇順に表示します。

RDエリア単位の状態解析（論理的解析）のDAT形式出力内容を次の表に示します。

表15‒3　RDエリア単位の状態解析（論理的解析）のDAT形式出力内容

タイトルバー

内容

出力形式

最大長(単位：バイト)※1

LOB用RDエリア以外

LOB用RDエリア

表

インデクス

順序数生成子

表

インデクス

VERSION

HiRDBのバージョン

文字列(vv-rr)

5

◎

◎

◎

◎

◎

INF_GET_TIME

情報取得が完了した年月日時刻

文字列(yyyy/mm/dd hh:mm:ss)

19

◎

◎

◎

◎

◎

RDAREA_NAME

対象となるRDエリア名

文字列

30

◎

◎

◎

◎

◎

SERVER

RDエリアがあるサーバ名

文字列

8

◎

◎

◎

◎

◎

TOTAL_SEGMENT

RDエリア内の総セグメント数

数値

10

◎

◎

◎

◎

◎

UNUSED_SEGMENT

RDエリア内の未使用セグメント数

数値

10

◎

◎

◎

◎

◎

UNUSED_SEGMENT_NOT_FREEZE

RDエリア内の更新凍結状態でない未使用セグメント数

数値

10

−

−

−

◎

◎

SEGMENT_SIZE

セグメントサイズ

数値

10

◎

◎

◎

◎

◎

PAGE_SIZE

ページサイズ

数値

10

◎

◎

◎

◎

◎

ORIGINAL_RDAREA_NAME※2

オリジナルRDエリア名

文字列

30

◎

◎

◎

◎

◎

GENERATION_NUMBER※2

RDエリア世代番号

数値

2

◎

◎

◎

◎

◎

REPLICA_RDAREA_COUNT※2

レプリカRDエリア数

数値

2

◎

◎

◎

◎

◎

HOLD_STATUS(HISTORY1)

RDエリアの閉塞種別（閉塞解除する一つ前の閉塞種別（現在閉塞中であれば現在の閉塞種別））

"CMD"：HiRDBの障害検知によるコマンド閉塞

"FLT"：障害閉塞

文字列

3

◎

◎

◎

◎

◎

HOLD_CODE(HISTORY1)

RDエリアの閉塞要因コード（閉塞解除する一つ前の閉塞要因コード（現在閉塞中であれば現在の閉塞要因コード））

数値

5

◎

◎

◎

◎

◎

HOLD_TIME(HISTORY1)

RDエリアの閉塞時刻（閉塞解除する一つ前の閉塞時刻（現在閉塞中であれば現在の閉塞時刻））

文字列(yyyy/mm/dd hh:mm:ss)

19

◎

◎

◎

◎

◎

HOLD_STATUS(HISTORY2)

RDエリアの閉塞種別（History1の一つ前の閉塞種別）

"CMD"：HiRDBの障害検知によるコマンド閉塞

"FLT"：障害閉塞

文字列

3

◎

◎

◎

◎

◎

HOLD_CODE(HISTORY2)

RDエリアの閉塞要因コード（History1の一つ前の閉塞要因コード）

数値

5

◎

◎

◎

◎

◎

HOLD_TIME(HISTORY2)

RDエリアの閉塞時刻（History1の一つ前の閉塞時刻）

文字列(yyyy/mm/dd hh:mm:ss)

19

◎

◎

◎

◎

◎

INF_KIND

表示情報の種別

"TBL"：RDエリア内の表情報

"IDX"：RDエリア内のインデクス情報

"SEQ"：RDエリア内の順序数生成子情報

"LBT"：LOB用RDエリア内の表情報

"LBX"：LOB用RDエリア内のインデクス情報

文字列

3

◎

◎

◎

◎

◎

TABLE_NAME

表識別子

文字列

30

◎

−

−

◎

−

INDEX_NAME

インデクス識別子

文字列

30

−

◎

−

−

◎

SEQUENCE_NAME

順序数生成子識別子

文字列

30

−

−

◎

−

−

AUTH_ID

表，インデクス，又は順序数生成子の認可識別子（データディクショナリ用RDエリアの場合は(Data dictionary)）

文字列

30

◎

◎

◎

◎

◎

STATUS

表の場合：

次のどれかのステータスとなります。

TA_UNFINISH：データ未完状態

N_RORG：再編成中

空要素：上記以外

インデクスの場合：

次のどれかのステータスとなります。

UNFINISH_0，UNFINISH_1，又はUNFINISH_2：詳細は「LOB用RDエリア以外の場合」のstatusを参照

空要素：上記以外

文字列

13

◎

◎

−

◎

◎

REFERENCE_PENDING_STATUS

RDエリアの表情報で管理している，参照制約の検査保留状態

P：検査保留状態

空白：非検査保留状態（表に参照制約の定義がない場合も含まれます）

文字列

1

◎

−

−

−

−

CHECK_PENDING_STATUS

RDエリアの表情報で管理している，検査制約の検査保留状態

P：検査保留状態

空白：非検査保留状態（表に検査制約の定義がない場合も含まれます）

文字列

1

◎

−

−

−

−

SEGMENT_REUSE

CREATE TABLE実行時，又はALTER TABLE実行時のSEGMENT REUSEで指定したセグメント数

"0"：SEGMENT REUSEでセグメント数を指定していない場合

空要素：SEGMENT REUSEにNOを指定している場合，及びSEGMENT REUSEを省略している場合

数値

10

◎

−

−

−

−

SEARCH_MODE

ページサーチモード

INS：新規ページ追加モード

REU：空きページ再利用モード

文字列

3

◎

−

−

−

−

REUSE_SEARCH_FAILURE

新規ページ追加モードから空きページ再利用モードに切り替えたときに，再利用できる空き領域がなく，新規ページ追加モードに戻した回数（次の契機で0にリセットされます）

・RDエリアのクローズ時

・HiRDBの再開始時

・PURGE TABLE 文実行時

数値

10

◎

−

−

−

−

REUSE_SEARCH

新規ページ追加モードから空きページ再利用モードに切り替えた回数（次の契機で0にリセットされます）

・RDエリアのクローズ時

・HiRDBの再開始時

・PURGE TABLE 文実行時

数値

10

◎

−

−

−

−

USED_SEGMENT

使用中セグメント数

数値

10

◎

◎

−

◎

◎

USED_SEGMENT_RATIO

使用中セグメント比率（単位：％）

↑(使用中セグメント数÷RDエリア内の総セグメント数)×100↑

数値

3

◎

◎

−

◎

◎

FULL_SEGMENT

満杯セグメント数

数値

10

◎

◎

−

−

−

FULL_SEGMENT_RATIO

満杯セグメント比率（単位：％）

↑(満杯セグメント数÷RDエリア内の総セグメント数)×100↑

数値

3

◎

◎

−

−

−

SUM_SEGMENT

RDエリア内の総セグメント数

数値

10

◎

◎

−

◎

◎

SEGMENT_OVER

全セグメントが使用中，又は使用されたかどうかを示す情報

"Y"：使用されています

"N"：使用されていません

文字列

1

−

−

−

◎

◎

LAST_SEGMENT_IN_USE

使用中セグメントの最終位置（SEGMENT_OVERがYの場合は最後のセグメント）

数値

10

−

−

−

◎

◎

TOTAL_SEGMENT_NUMBER

総セグメント数

数値

10

−

−

−

◎

◎

LOBMAP_OVER

LOB管理エントリがすべて使用されたかどうかを示す情報

"Y"：使用されています

"N"：使用されていません

文字列

1

−

−

−

◎

◎

USED_PAGE

使用中ページ数

数値

10

◎

◎

−

−

−

USED_PAGE_RATIO

使用中ページ比率（単位：％）

↑(使用中ページ数÷RDエリア内の総セグメント中のページ数の合計)×100↑

数値

3

◎

◎

−

−

−

FULL_PAGE

満杯ページ数

数値

10

◎

◎

−

−

−

FULL_PAGE_RATIO

満杯ページ比率（単位：％）

↑(満杯ページ数÷RDエリア内の総セグメント中のページ数の合計)×100↑

数値

3

◎

◎

−

−

−

SUM_PAGE

RDエリア内の総セグメント中のページ数の合計

数値

10

◎

◎

−

−

−

COLLECT_ON_SEGMENT

pdreclaimで解放途中のセグメント数

数値

10

◎

◎

−

−

−

COLLECT_PREARRANGED_PAGE

pdreclaimで解放できるページ数

数値

10

○

○

−

−

−

COLLECT_ON_PAGE

pdreclaimで解放途中のページ数

数値

10

−

○

−

−

−

RATIO0_PAGE

使用率0％のページ数

数値

10

○

○

−

−

−

RATIO0_PAGE_RATIO

使用率0％のページ比率（単位：％）

数値

3

○

○

−

−

−

RATIO0_DEL_ROWID

使用率0％のページの，残存エントリが管理する行数

数値

仮数部5，指数部5

−

△

−

−

−

RATIO1_PAGE

使用率1-10％のページ数

数値

10

○

○

−

−

−

RATIO1_PAGE_RATIO

使用率1-10％のページ比率（単位：％）

数値

3

○

○

−

−

−

RATIO1_DEL_ROWID

使用率1-10％のページの，残存エントリが管理する行数

数値

仮数部5，指数部5

−

△

−

−

−

RATIO2_PAGE

使用率11-20％のページ数

数値

10

○

○

−

−

−

RATIO2_PAGE_RATIO

使用率11-20％のページ比率（単位：％）

数値

3

○

○

−

−

−

RATIO2_DEL_ROWID

使用率11-20％のページの，残存エントリが管理する行数

数値

仮数部5，指数部5

−

△

−

−

−

RATIO3_PAGE

使用率21-30％のページ数

数値

10

○

○

−

−

−

RATIO3_PAGE_RATIO

使用率21-30％のページ比率（単位：％）

数値

3

○

○

−

−

−

RATIO3_DEL_ROWID

使用率21-30％のページの，残存エントリが管理する行数

数値

仮数部5，指数部5

−

△

−

−

−

RATIO4_PAGE

使用率31-40％のページ数

数値

10

○

○

−

−

−

RATIO4_PAGE_RATIO

使用率31-40％のページ比率（単位：％）

数値

3

○

○

−

−

−

RATIO4_DEL_ROWID

使用率31-40％のページの，残存エントリが管理する行数

数値

仮数部5，指数部5

−

△

−

−

−

RATIO5_PAGE

使用率41-50％のページ数

数値

10

○

○

−

−

−

RATIO5_PAGE_RATIO

使用率41-50％のページ比率（単位：％）

数値

3

○

○

−

−

−

RATIO5_DEL_ROWID

使用率41-50％のページの，残存エントリが管理する行数

数値

仮数部5，指数部5

−

△

−

−

−

RATIO6_PAGE

使用率51-60％のページ数

数値

10

○

○

−

−

−

RATIO6_PAGE_RATIO

使用率51-60％のページ比率（単位：％）

数値

3

○

○

−

−

−

RATIO6_DEL_ROWID

使用率51-60％のページの，残存エントリが管理する行数

数値

仮数部5，指数部5

−

△

−

−

−

RATIO7_PAGE

使用率61-70％のページ数

数値

10

○

○

−

−

−

RATIO7_PAGE_RATIO

使用率61-70％のページ比率（単位：％）

数値

3

○

○

−

−

−

RATIO7_DEL_ROWID

使用率61-70％のページの，残存エントリが管理する行数

数値

仮数部5，指数部5

−

△

−

−

−

RATIO8_PAGE

使用率71-80％のページ数

数値

10

○

○

−

−

−

RATIO8_PAGE_RATIO

使用率71-80％のページ比率（単位：％）

数値

3

○

○

−

−

−

RATIO8_DEL_ROWID

使用率71-80％のページの，残存エントリが管理する行数

数値

仮数部5，指数部5

−

△

−

−

−

RATIO9_PAGE

使用率81-90％のページ数

数値

10

○

○

−

−

−

RATIO9_PAGE_RATIO

使用率81-90％のページ比率（単位：％）

数値

3

○

○

−

−

−

RATIO9_DEL_ROWID

使用率81-90％のページの，残存エントリが管理する行数

数値

仮数部5，指数部5

−

△

−

−

−

RATIO10_PAGE

使用率91-100％のページ数

数値

10

○

○

−

−

−

RATIO10_PAGE_RATIO

使用率91-100％のページ比率（単位：％）

数値

3

○

○

−

−

−

RATIO10_DEL_ROWID

使用率91-100％のページの，残存エントリが管理する行数

数値

仮数部5，指数部5

−

△

−

−

−

TOTAL_PAGE

使用中ページの比率別ページ数の合計

数値

10

○

○

−

−

−

TOTAL_DEL_ROWID

残存エントリが管理する行数の合計

数値

仮数部5，指数部5

−

△

−

−

−

BINARY_SEARCH_MODE

バイナリ専用セグメントでのページサーチモード

INS：新規ページ追加モード

REU：空きページ再利用モード

文字列

3

◎

−

−

−

−

BINARY_REUSE_SEARCH_FAILURE

バイナリ専用セグメントで新規ページ追加モードから空きページ再利用モードに切り替えたときに，再利用できる空き領域がなく，新規ページ追加モードに戻した回数（次の契機で0にリセットされます）

・RDエリアのクローズ時

・HiRDBの再開始時

・PURGE TABLE 文実行時

数値

10

◎

−

−

−

−

BINARY_REUSE_SEARCH

バイナリ専用セグメントで新規ページ追加モードから空きページ再利用モードに切り替えた回数（次の契機で0にリセットされます）

・RDエリアのクローズ時

・HiRDBの再開始時

・PURGE TABLE 文実行時

数値

10

◎

−

−

−

−

BINARY_USED_SEGMENT

使用中バイナリ専用セグメント数

数値

10

◎

−

−

−

−

BINARY_USED_SEGMENT_RATIO

使用中バイナリ専用セグメント数の比率（単位：％）

↑(使用中バイナリ専用セグメント数÷表に割り当てられているバイナリ専用セグメント数の合計)×100↑

数値

3

◎

−

−

−

−

BINARY_FULL_SEGMENT

満杯バイナリ専用セグメント数

数値

10

◎

−

−

−

−

BINARY_FULL_SEGMENT_RATIO

満杯バイナリ専用セグメント数の比率（単位：％）

↑(満杯バイナリ専用セグメント数÷表に割り当てられているバイナリ専用セグメント数の合計)×100↑

数値

3

◎

−

−

−

−

BINARY_SUM_SEGMENT

表に割り当てられているバイナリ専用セグメント数の合計

数値

10

◎

−

−

−

−

BINARY_USED_PAGE

バイナリ専用セグメントの使用中ページ数

数値

10

◎

−

−

−

−

BINARY_USED_PAGE_RATIO

バイナリ専用セグメントの使用中ページ数の比率（単位：％）

↑(バイナリ専用セグメントの使用中ページ数÷表に割り当てられているバイナリ専用セグメントのページ数の合計)×100↑

数値

3

◎

−

−

−

−

BINARY_FULL_PAGE

バイナリ専用セグメントの満杯ページ数

数値

10

◎

−

−

−

−

BINARY_FULL_PAGE_RATIO

バイナリ専用セグメントの満杯ページ数の比率（単位：％）

↑(使用中バイナリ専用セグメントの満杯ページ数÷表に割り当てられているバイナリ専用セグメントのページ数の合計)×100↑

数値

3

◎

−

−

−

−

BINARY_SUM_PAGE

表に割り当てられているバイナリ専用セグメントのページ数の合計

数値

10

◎

−

−

−

−

BINARY_COLLECT_ON_SEGMENT

pdreclaimで解放途中のバイナリ専用セグメント数

数値

10

◎

−

−

−

−

BINARY_COLLECT_PREARRANGED_PAGE

pdreclaimで解放できるバイナリ専用セグメントのページ数

数値

10

○

−

−

−

−

BINARY_RATIO0_PAGE

バイナリ専用セグメントの使用率0％のページ数

数値

10

○

−

−

−

−

BINARY_RATIO0_PAGE_RATIO

バイナリ専用セグメントの使用率0％のページ比率（単位：％）

数値

3

○

−

−

−

−

BINARY_RATIO1_PAGE

バイナリ専用セグメントの使用率1-10％のページ数

数値

10

○

−

−

−

−

BINARY_RATIO1_PAGE_RATIO

バイナリ専用セグメントの使用率1-10％のページ比率（単位：％）

数値

3

○

−

−

−

−

BINARY_RATIO2_PAGE

バイナリ専用セグメントの使用率11-20％のページ数

数値

10

○

−

−

−

−

BINARY_RATIO2_PAGE_RATIO

バイナリ専用セグメントの使用率11-20％のページ比率（単位：％）

数値

3

○

−

−

−

−

BINARY_RATIO3_PAGE

バイナリ専用セグメントの使用率21-30％のページ数

数値

10

○

−

−

−

−

BINARY_RATIO3_PAGE_RATIO

バイナリ専用セグメントの使用率21-30％のページ比率（単位：％）

数値

3

○

−

−

−

−

BINARY_RATIO4_PAGE

バイナリ専用セグメントの使用率31-40％のページ数

数値

10

○

−

−

−

−

BINARY_RATIO4_PAGE_RATIO

バイナリ専用セグメントの使用率31-40％のページ比率（単位：％）

数値

3

○

−

−

−

−

BINARY_RATIO5_PAGE

バイナリ専用セグメントの使用率41-50％のページ数

数値

10

○

−

−

−

−

BINARY_RATIO5_PAGE_RATIO

バイナリ専用セグメントの使用率41-50％のページ比率（単位：％）

数値

3

○

−

−

−

−

BINARY_RATIO6_PAGE

バイナリ専用セグメントの使用率51-60％のページ数

数値

10

○

−

−

−

−

BINARY_RATIO6_PAGE_RATIO

バイナリ専用セグメントの使用率51-60％のページ比率（単位：％）

数値

3

○

−

−

−

−

BINARY_RATIO7_PAGE

バイナリ専用セグメントの使用率61-70％のページ数

数値

10

○

−

−

−

−

BINARY_RATIO7_PAGE_RATIO

バイナリ専用セグメントの使用率61-70％のページ比率（単位：％）

数値

3

○

−

−

−

−

BINARY_RATIO8_PAGE

バイナリ専用セグメントの使用率71-80％のページ数

数値

10

○

−

−

−

−

BINARY_RATIO8_PAGE_RATIO

バイナリ専用セグメントの使用率71-80％のページ比率（単位：％）

数値

3

○

−

−

−

−

BINARY_RATIO9_PAGE

バイナリ専用セグメントの使用率81-90％のページ数

数値

10

○

−

−

−

−

BINARY_RATIO9_PAGE_RATIO

バイナリ専用セグメントの使用率81-90％のページ比率（単位：％）

数値

3

○

−

−

−

−

BINARY_RATIO10_PAGE

バイナリ専用セグメントの使用率91-100％のページ数

数値

10

○

−

−

−

−

BINARY_RATIO10_PAGE_RATIO

バイナリ専用セグメントの使用率91-100％のページ比率（単位：％）

数値

3

○

−

−

−

−

BINARY_TOTAL_PAGE

バイナリ専用セグメントの使用中ページ数の比率別ページ数合計

数値

10

○

−

−

−

−

DEL_ROWID

表又はインデクスの削除状態の管理行数の合計

数値

仮数部16，指数部5

△

△

−

−

−

DEL_ROWID_RATIO

残存エントリが管理する行数の比率（単位：％）

数値

3

−

△

−

−

−

ROWID_COUNT

インデクスが管理する総行数

数値

仮数部16，指数部5

−

△

−

−

−

SEQUENCE_CURRENT_VALUE

順序数生成子の現在値

数値

39

−

−

◎

−

−

SEQUENCE_CURRENT_VALUE_REVICE

順序数生成子の現在値の補正要否

数値

1

−

−

◎

−

−

SEGMENT_REUSE_OPTION※³

表定義のSEGMENT REUSEで指定した再利用オプション値

数値

10

◎

−

−

−

−

BRANCH_ROW_SEARCH_MODE※⁴

分岐行に対する空き領域サーチモード

文字列

3

◎

−

−

−

−

COLLECT_PREARRANGED_FULL_PAGE

pdreclaimで解放できる満杯ページ数

数値

10

○

−

−

−

−

BINARY_BRANCH_ROW_SEARCH_MODE※⁴

バイナリ専用セグメントの分岐行に対する空き領域サーチモード

文字列

3

◎

−

−

−

−

BINARY_COLLECT_PREARRANGED_FULL_PAGE

バイナリ専用セグメントのpdreclaimで解放できる満杯ページ数

数値

10

○

−

−

−

−

（凡例）

◎：-dオプションの指定に関係なく出力されます（出力データがない場合は空要素となります）。

○：-dオプションを指定した場合に出力されます（出力データがない場合は空要素となります）。

△：-d及び-zオプションを指定した場合に出力されます（出力データがない場合は空要素となります）。

−：空要素が出力されます。

注※1

出力形式が文字列の場合，" "で囲んで表示します。最大長の値には，" "を含みません。

注※2

HiRDB Staticizer Optionがインストールされていない場合，空要素が出力されます。

注※3

表定義のSEGMENT REUSEの指定によって再利用オプション値の出力データが異なります。SEGMENT REUSEの指定値ごとの出力データを次に示します。

項番

SEGMENT REUSEの指定及び指定値

SEGMENT REUSE OPTIONの指定

出力するデータ

1

あり

NO以外

あり

指定した値

2

なし

0

3

NO

−

空データ

4

なし

−

−

空データ

（凡例）

−：該当しません。

注※4

表定義のSEGMENT REUSEの指定によって空きページサーチモードの出力データが異なります。SEGMENT REUSEの指定値ごとの出力データを次に示します。

項番

SEGMENT REUSEの指定及び指定値

SEGMENT REUSE OPTIONの指定値

出力するデータ

1

あり

NO以外

2,3

INS：新規ページ追加モード

REU：空ページ再利用モード

2

2,3以外

空データ

3

NO

−

空データ

4

なし

−

−

空データ

（凡例）

−：該当しません。

(3)　解析結果の分析

RDエリア単位の状態解析（論理的解析）の解析結果は，次の表のように分析できます。

表15‒4　RDエリア単位（論理的解析）の解析結果の分析

RDエリア内の状態

内容

表の総未使用ページ比率が，定義系SQLのCREATE TABLEで指定したセグメント内空きページ比率よりも小さい

表のデータが，次のどちらかの状態であることが考えられます。

データを繰り返して追加したため，未使用ページが少なくなっています。

データの追加，削除，更新を繰り返したため，使用中空きページが散在しています。

このような場合には，必要に応じて，表が格納されているRDエリアを拡張し，その後表を再編成することで，表の乱れを修正できます。※１※２

表の格納行数から算出したインデクスの格納ページ数より，解析結果として表示されたインデクスの総使用中ページ数が多い

インデクスが次の状態であることが考えられます。

特定範囲の行を大量に削除したため，それに対応したインデクスも大量に削除され，使用中空きページとしてそのまま残っています。

このような場合には，インデクスの再編成をすることでインデクスの乱れを修正できます。また，インデクスの空きページ解放をすることで使用ページ数を適正化できます。インデクスの格納ページ数の計算方法については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。※１

使用中ページの比率別ページ数

使用率が0%のページが多い

使用中空きページが総ページ数の30%以上

使用中空きページが多く残っていると，性能劣化の要因になります。使用中空きページの解放が必要です。

同一RDエリアにほかの表又はインデクスを定義している

未使用ページは，そのページを含むセグメントを確保した表又はインデクス以外は使用できないため，同一RDエリアにほかの表又はインデクスを定義している場合，それらの資源に割り当て可能なページ数が減っている状態です。使用中空きセグメントの解放，又は再編成が必要です。なお，未使用ページ数は，使用率が0％のページ数と使用中空きページ数の差です。

使用率が低いページが多い

データの削除や更新で一度割り当てられた領域が未解放のまま空き領域として残っており，再使用できない状態になっています。再編成が必要です。

使用率が高いページが多い

データの追加や更新時に割り当てるページ内の空き領域が少ない状態になっています。次のような処理をする場合，再編成が必要です。

データ長を長くする更新を頻繁に行う場合

クラスタキーを定義している表に挿入処理を頻繁に行う場合

インデクスが管理する総行数に対する，残存エントリが管理する行数の比率

高い

残存エントリが多くなっています。不当な排他待ちや，排他待ちによるデッドロック，さらに検索性能が劣化するため，使用中空きページの解放，又は再編成が必要です。

残存エントリが増えることによる影響については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

低い

残存エントリが少ない場合でも，残存エントリが管理する行数が検索範囲に多いと，検索性能が劣化することがあります。検索実行時のページアクセス量が，検索のHIT件数に比べて多い（性能が劣化）と判断した場合，空きページ解放，又は再編成を実行してください。ページアクセス量は，pdbuflsコマンド，UAP統計レポートなどで判断してください。

クラスタリングありの表

使用中空きページ

多い

CREATE TABLEのセグメント内空きページ比率が大き過ぎます。データの追加，削除，更新によって使用中空きページができているため，必要に応じて表の再編成をしてください。※１

少ない

データの追加がある場合は，表の再編成をした方がよいです。※１

クラスタリングなしの表

使用中空きページ

多い

CREATE TABLEのセグメント内空きページ比率が大き過ぎます。データの追加，削除，更新によって使用中空きページができているため，必要に応じて表の再編成をしてください。※１

少ない

RDエリア内の未使用セグメントが少ない場合，必要に応じてRDエリアの拡張をしてください。※２

セグメントオーバーがYの場合

LOB列に対する検索性能が劣化することがあります。LOB用RDエリアを再編成してください。※１

LobmapオーバーがYの場合

LOB列に対する検索性能が劣化することがあります。LOB列構成基表を再編成してください。※１

注

プラグインが提供する抽象データ型のLOB属性を格納するRDエリア，又はプラグインインデクスを格納するRDエリアの状態を解析した場合，RDエリア内の使用中セグメントの割合は，プラグインのセグメントの割り当て方に依存します。例えば，インデクス定義時にセグメントの割り当てを終えてしまうようなプラグインの場合は，定義直後（データをまだ格納していない状態）でもほとんどのセグメントが使用中セグメントになることがあります。

注※1

表の再編成，及びインデクスの再編成については，「データベース再編成ユティリティ（pdrorg）」を参照してください。インデクスの空きページ解放については，「空きページ解放ユティリティ（pdreclaim）」を参照してください。

注※2

RDエリアの拡張については，「データベース構成変更ユティリティ（pdmod）」を参照してください。

15.3.2　RDエリア単位の状態解析（物理的解析）

表やインデクスを意識しないで，RDエリア内の全セグメント，及び全ページの格納状態を解析します。

(1)　使用目的

一つのRDエリア内の全セグメント，及び全ページの格納状態が表示されます。表示された解析結果の情報から，RDエリアの使用効率，容量の状態が分かります。

(2)　解析結果の情報

RDエリア単位の状態解析（物理的解析）で表示される解析結果を次に示します。

テキスト形式の場合（-aオプションを省略した場合）

 pddbst VV-RR(Object Option) ** RD Area Physical Analysis ** 2002/03/29 16:40:10 [1]
  Max Sum Segment :        150 [2]
  Max Sum Page    :        750 [3]
  RD Area Count   :          1/         1 [4]
--------------------------------------------------------------------------------
 RD Area Name   : USER_RDAREA_1 [5]
  Server        : BES01 [6]
  Original RD Area Name : USER_RDAREA_1 [30]
  Generation Number :  0[31] Replica RD Area Count :  0[32]
    [33]                [34]                [35]            [36]
  History1 Hold Status :      Hold Code :     0  Hold Time :
  History2 Hold Status :      Hold Code :     0  Hold Time :
  Unused Segment:         98 [7]
  Segment Size  :          5 Pages[8] Page Size    :       4096 Bytes[9]
          Used(Full)       Used(      Full)        Sum
           [10] [11]        [12]       [13]       [14]
  Segment  35%(  0%)         52(         0)        150
           [15] [16]        [17]       [18]       [19]
  Page     35%(  0%)        256(         0)        750
  Auto Extend Use    : USE[20]   Auto Extend Segment :     4 [21]
  Auto Extend Status : NOSUP[22] Error Code          :     0 [23]
   HiRDB File Name : /tmp/pddir/ios_area01/u_rd20_1 [24]
    File Size      :        5 segments[25] Extent Count :   1/ 24 [26]  Expand :NOUSE [40]
    Auto Extend Status : SUP     Error Code : -1535
   HiRDB File Name : /tmp/pddir/ios_area01/u_rd20_2
    File Size      :        6 segments     Extent Count :   1/ 24       Expand :NOUSE
    Auto Extend Status : NOSUP   Error Code :     0
   HiRDB File Name : /tmp/pddir/ios_area01/u_rd20_3
    File Size      :       18 segments     Extent Count :   1/ 24       Expand :NOUSE
    Auto Extend Status : NOSUP   Error Code :     0
 RD Area Name   : USER_RDLOB_1
  Server        : BES01
  Original RD Area Name : USER_RDLOB_1
  Generation Number :  0   Replica RD Area Count :  0
  History1 Hold Status :      Hold Code :     0  Hold Time :
  History2 Hold Status :      Hold Code :     0  Hold Time :
  Unused Segment:        770(       770)
  Segment Size  :          1 Pages   Page Size    :       8192 Bytes
          Used       Used        Sum
  Segment  93%      10230      11000
                [27]                         [28]
  Segment Over  : N  Last Segment :      10230/     11000
                [29]
  Lobmap  Over  : N
  Freeze Specified : Y [37]
  Auto Extend Use    : USE     Auto Extend Segment :    10
  Auto Extend Status : NOSUP   Error Code          :     0
   HiRDB File Name : /tmp/pddir/ios_area01/u101
    File Size      :       4000 segments   Extent Count :   1/ 24  Expand :NOUSE
    Segment        :       4000/      4000
    Freeze Status  : U[38] ****/**/**    **:**:** [39]
   HiRDB File Name : /tmp/pddir/ios_area01/u201
    File Size      :       5000 segments   Extent Count :   1/ 24  Expand :NOUSE
    Segment        :       5000/      5000
    Freeze Status  : F    2002/03/29    16:38:19
   HiRDB File Name : /tmp/pddir/ios_area01/u301
    File Size      :       2000 segments   Extent Count :   1/ 24  Expand :NOUSE
    Segment        :       1230/      2000
    Freeze Status  : U    ****/**/**    **:**:**

［説明］

RDエリアの情報は，RDエリア名の昇順に表示します。また，HiRDBファイルの情報は，物理ファイルID順に表示します。

状態解析の基になる情報の取得完了年月日時刻を，YYYY/MM/DD hh:mm:ssの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

解析したRDエリアの中で，最大の総セグメント数を表示します。

解析したRDエリアの中で，最大の総ページ数を表示します。

指定したRDエリア数／その中で正常に解析できたRDエリア数を表示します。

解析したRDエリアの名称を表示します。

RDエリアを管理するサーバの名称を表示します。

RDエリア内の未使用セグメント数の合計を表示します。括弧内は該当するRDエリア内の，更新凍結状態でないHiRDBファイルの未使用セグメント数の合計となります。

1セグメントのサイズをセグメント内のページ数で表示します。

1セグメントのサイズをページ単位で表示します。

使用中セグメント数の比率を表示します。

↑使用中セグメント数÷14の値×100↑（％）

満杯セグメント数の比率を表示します。

↑満杯セグメント数÷14の値×100↑（％）

使用中セグメント数を表示します。pdreclaimでの解放途中セグメントは，使用中セグメントとして表示します。

満杯セグメント数を表示します。

RDエリア内のセグメント数の合計（使用中セグメント数＋未使用セグメント数）を表示します。

使用中ページ数の比率を表示します。

↑使用中ページ数÷19の値×100↑（％）

満杯ページ数の比率を表示します。

↑満杯ページ数÷19の値×100↑（％）

使用中ページ数を表示します。

満杯ページ数を表示します。

RDエリア内のセグメント中のページ数の合計（使用中ページ数＋未使用ページ数）を表示します。

RDエリアの自動増分機能の適用有無を表示します。

USE：RDエリアの自動増分機能を適用しています。

NOUSE：RDエリアの自動増分機能を適用していません。

最後のHiRDB File Nameに表示されているHiRDBファイルが，自動増分の対象となります。

増分セグメント数を表示します。

自動増分可否を表示します。

SUP：抑止されている状態です。

NOSUP：抑止されていない状態です。

自動増分ができなかった場合のエラーコードを表示します。

-1556の場合：

次のどちらかの対策をしてください。

・該当するHiRDBファイルシステムがあるHiRDBファイルシステム領域のエクステントを，pdfbkup，pdfmkfs，及びpdfrstrコマンドで統合する。

・pdmodでRDエリアを拡張する。

上記以外の場合：

マニュアル「HiRDB メッセージ」のHiRDBファイルシステムのエラーコード一覧を参照してください。

該当するRDエリアのHiRDBファイル名称を表示します。

HiRDBファイルの総セグメント数を表示します。

HiRDBファイルの分割格納数／分割格納上限数を表示します。

LOB用RDエリアが乱れているかどうかを表示します。

Y ：乱れています。

N ：乱れていません。

使用されているセグメントの最後を示す位置情報を表示します。最終位置/総セグメント数の形式で表示します。27がYのときは，常に最後のセグメントを示します。

LOB管理エントリがすべて使用されているかどうかを表示します。

Y ：すべて使用されています。

N ：未使用のエントリが残っています。

オリジナルRDエリア名を表示します。

該当するRDエリアの世代番号を表示します。

レプリカRDエリアの数を表示します。

該当するRDエリアの閉塞履歴情報です。

History1：閉塞解除する一つ前の閉塞情報（現時点で閉塞中の場合は現在の閉塞情報）

History2：History1の一つ前の閉塞情報

該当するRDエリアの閉塞種別を表示します。履歴がない場合は空白を表示します。

CMD：HiRDBの障害検知によるコマンド閉塞

FLT：障害閉塞

該当するRDエリアの閉塞要因コードを表示します。閉塞要因コードについては，「LOB用RDエリア以外の場合」を参照してください。

該当するRDエリアの閉塞時刻を表示します。履歴がない場合は空白を表示します。

RDエリアが更新凍結されているかどうかを表示します。

Y：pddbfrzコマンドで更新凍結されています。

N：pddbfrzコマンドで更新凍結されていません。

RDエリアを構成するHiRDBファイルが更新凍結されているかどうかを表示します。

U：

更新凍結されていません。バックアップ取得時には，バックアップ対象にする必要があります。

F：

更新凍結されています。表示された日時以降にバックアップを取得している場合は，新たにバックアップを取得する必要はありません。

更新凍結状態の変更日時です。

****/**/** **:**:**の場合：

該当するRDエリアを作成又は再初期化してから，一度も更新凍結していない場合に表示されます。

上記以外の場合：

更新凍結状態を設定又は解除した日時が表示されます。

RDエリアの自動増分時にHiRDBファイルシステム領域内の空き領域がなくなった場合，HiRDBファイルシステム領域を自動的に拡張するかどうかを表示します。

USE：自動増分機能を使用しています。

NOUSE：自動増分機能を使用していません。

注1

10，11，及び15〜19は，LOB用RDエリアの場合は表示しません。

注2

27〜29，及び37は，LOB用RDエリアの場合に表示します。

注3

30〜32は，HiRDB Staticizer Option使用時に表示される情報です。世代を指定して解析した場合，指定した世代にレプリカRDエリアがないと，警告メッセージが出力され結果は表示されません。

DAT形式の場合（-aオプションを指定した場合）

RDエリア単位の状態解析（物理的解析）のDAT形式出力内容を次の表に示します。

DAT形式での出力規則を次に示します。

DAT形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

1行には，1RDエリアの情報を表示します。ただし，1RDエリアが複数のHiRDBファイルで構成される場合は，そのHiRDBファイル数分の行で表示します。

RDエリアの情報は，RDエリア名の昇順に表示します。また，HiRDBファイルの情報は，物理ファイルID順に表示します。

表15‒5　RDエリア単位の状態解析（物理的解析）のDAT形式出力内容

タイトルバー※1

内容

出力形式

最大長

(単位：バイト)※2

VERSION

HiRDBのバージョン

文字列(vv-rr)

5

INF_GET_TIME

情報取得が完了した年月日時刻

文字列(yyyy/mm/dd hh:mm:ss)

19

RDAREA_NAME

対象となるRDエリア名

文字列

30

SERVER

RDエリアがあるサーバ名

文字列

8

MAX_SUM_SEGMENT

RDエリアの最大総セグメント数

数値

10

MAX_SUM_PAGE

RDエリアの最大総ページ数

数値

10

SPECIFIED_RDAREA_COUNT

解析対象ＲＤエリア数

数値

10

ANALYZED_RDAREA_COUNT

正常に解析できたRDエリアの数

数値

10

SEGMENT_SIZE

セグメント内ページ数

数値

10

PAGE_SIZE

ページサイズ

数値

10

HOLD_STATUS(HISTORY1)※5

RDエリアの閉塞種別（閉塞解除する一つ前の閉塞種別，又は現在閉塞中の場合は現在の閉塞種別）

"CMD"：HiRDBの障害検知によるコマンド閉塞

"FLT"：障害閉塞

文字列

3

HOLD_CODE(HISTORY1)

RDエリアの閉塞要因コード（閉塞解除する一つ前の閉塞要因コード，又は現在閉塞中の場合は現在の閉塞要因コード）。

閉塞要因コードについては，テキスト形式の場合の説明を参照してください。

数値

5

HOLD_TIME(HISTORY1)※5

RDエリアの閉塞時刻（閉塞解除する一つ前の閉塞時刻，又は現在閉塞中の場合は現在の閉塞時刻）

文字列(yyyy/mm/dd hh:mm:ss)

19

HOLD_STATUS(HISTORY2)※5

RDエリアの閉塞種別（History1の一つ前の閉塞種別）

"CMD"：コマンド閉塞

"FLT"：障害閉塞

文字列

3

HOLD_CODE(HISTORY2)

RDエリアの閉塞要因コード（History1の一つ前の閉塞要因コード）。

閉塞要因コードについては，テキスト形式の場合の説明を参照してください。

数値

5

HOLD_TIME(HISTORY2)※5

RDエリアの閉塞時刻（History1の一つ前の閉塞時刻）

文字列(yyyy/mm/dd hh:mm:ss)

19

FREEZE_SPECIFIED※3

RDエリアの更新凍結指定の有無

"Y"：pddbfrzコマンドでの更新凍結指定あり

"N"：pddbfrzコマンドでの更新凍結指定なし

文字列

1

UNUSED_SEGMENT

RDエリア内の未割り当てセグメント数の合計

数値

10

UNUSED_SEGMENT_NOT_FREEZE※3

RDエリア内の更新凍結状態でないHiRDBファイルの未割り当てセグメント数の合計

数値

10

USED_SEGMENT

使用中セグメント数

数値

10

USED_SEGMENT_RATIO

使用中セグメント比率（単位：％）

↑(使用中セグメント数÷RDエリア内の総セグメント数)×100↑

数値

3

FULL_SEGMENT

満杯セグメント数

数値

10

FULL_SEGMENT_RATIO

満杯セグメント比率（単位：％）

↑(満杯セグメント数÷RDエリア内の総セグメント数)×100↑

数値

3

SUM_SEGMENT

RDエリア内の総セグメント数

数値

10

SEGMENT_OVER※3

全セグメントが使用中，又は使用されたかどうかを示す情報

"Y"：使用されています。

"N"：使用されていません。

文字列

1

LAST_SEGMENT_IN_USE※3

使用中セグメントの最終位置（セグメントオーバーがYの場合は最後のセグメント）

数値

10

TOTAL_SEGMENT_ NUMBER※3

総セグメント数

数値

10

LOBMAP_OVER※3

LOB管理エントリがすべて使用されたかどうかを示す情報

"Y"：使用されています。

"N"：使用されていません。

文字列

1

USED_LOB_ MANAGEMENT_ENTRY_NUMBER

システムが使用する情報

数値

10

TOTAL_LOB_ MANAGEMENT_ENTRY_NUMBER

システムが使用する情報

数値

10

USED_PAGE

使用中ページ数

数値

10

USED_PAGE_RATIO

使用中ページ比率（単位：％）

↑(使用中ページ数÷RDエリア内の総セグメント中のページ数の合計)×100↑

数値

3

FULL_PAGE

満杯ページ数

数値

10

FULL_PAGE_RATIO

満杯ページ比率（単位：％）

↑(満杯ページ数÷RDエリア内の総セグメント中のページ数の合計)×100↑

数値

3

SUM_PAGE

RDエリア内の総セグメント中のページ数の合計

数値

10

AUTO_EXTEND_USE

自動増分機能の使用状況

"USE"：使用しています。

"NOUSE"：使用していません。

HiRDBファイルの情報の最後に表示したHiRDBファイルが，自動増分機能を使用するファイルとなります。

文字列

5

AUTO_EXTEND_SEGMENT

増分セグメント数

数値

5

AUTO_EXTEND_STATUS

自動増分機能の抑止状態

自動増分対象ファイルの指示方法（システム定義のpd_rdarea_extension_fileオペランドの値）が"last"の場合

"SUP"：抑止されています。

"NOSUP"：抑止されていません。

自動増分対象ファイルの指示方法（システム定義のpd_rdarea_extension_fileオペランドの値）が"all"の場合※6

文字列

5

ERROR_CODE

自動増分ができなかった場合のエラーコード※7

数値

5

HiRDB_FILE_NAME

RDエリアのHiRDBファイル名（絶対パス名）

文字列

167

FILE_SIZE

HiRDBファイルのサイズ（総セグメント数）

数値

10

EXTENT_COUNT

HiRDBファイルの分割格納数

数値

3

MAX_EXTENT_COUNT

HiRDBファイルの分割格納上限数

数値

3

USED_SEGMENT_IN_FILE※3

HiRDBファイルの使用中セグメント数

数値

10

TOTAL_SEGMENT_IN_FILE※3

HiRDBファイルの総セグメント数

数値

10

FREEZE_STATUS※3

HiRDBファイルの更新凍結状態

"U"：更新凍結されていません。バックアップ取得時には，バックアップ対象にする必要があります。

"F"：更新凍結されています。表示された日時以降にバックアップを取得している場合は，新たに取得する必要はありません。

文字列

1

FREEZE_TIME※3

更新凍結状態の変更日時

"****/**/** **:**:**"の場合：RDエリアを作成，又は再初期化して以降，一度も更新凍結状態にしていません。

上記以外の場合：更新凍結状態を設定，又は解除した日時です。

文字列(yyyy/mm/dd hh:mm:ss)

19

ORIGINAL_RDAREA_NAME※4

オリジナルRDエリア名

文字列

30

GENERATION_NUMBER※4

RDエリアの世代番号

数値

2

REPLICA_RDAREA_COUNT※4

レプリカRDエリアの数

数値

2

AREA_AUTO_EXPAND

RDエリアの自動増分時にHiRDBファイルシステム領域内の空き領域がなくなった場合，HiRDBファイルシステム領域を自動的に拡張するかどうかを示す情報

"USE"：使用しています。

"NOUSE"：使用していません。

文字列

5

注※1

タイトルバーは，-hオプションを指定した場合に表示します。

注※2

出力形式が文字列の場合，""で囲んで表示します。最大長の値には，""を含みません。出力形式が文字列以外の場合は，""で囲まないで表示します。

注※3

LOB用RDエリアの場合だけ表示します。LOB用RDエリアでない場合，データを出力しません（例：...,,...）。

注※4

HiRDB Staticizer Optionを使用している場合だけ表示します。使用していない場合，データを出力しません（例：...,,...）。

注※5

一度も閉塞されていない場合は，データを出力しません（例：...,,...）。

注※6

自動増分抑止状態の出力値を次に示します。

システム定義のpd_rdarea_extension_fileオペランドの指定値

RDエリアの状態

ファイルの状態

出力値

"all"

抑止されている

抑止されている

"RSFS"

抑止されていない

"RSFN"

抑止されていない

抑止されている

"RNFS"

抑止されていない

"RNFN"

"last"

抑止されている

−

"SUP"

抑止されていない

−

"NOSUP"

（凡例）

−：該当しません。

注※7

自動増分エラーコードの出力値を次に示します。

システム定義のpd_rdarea_extension_fileオペランドの指定値

出力値

"all"

HiRDBファイルごとの値を出力します。

"last"

最後に割り当てた，HiRDBファイルの情報を出力します。

(3)　解析結果の分析

RDエリア単位の状態解析（物理的解析）の解析結果は，次の表のように分析できます。

表15‒6　RDエリア単位（物理的解析）の解析結果の分析

RDエリア内の状態

内容

RDエリア全体

未使用セグメント

多い

容量に余裕があります。

少ない

使用中空きページ

多い

RDエリアが効率的に使用されていません。RDエリア単位の状態解析（論理的解析）を実行し，使用中セグメント数が多く，未使用ページ数が多い表又はインデクスがないかを調査し，必要に応じて表若しくはインデクスの再編成，又は空きページの解放をしてください。※１

少ない

容量が不足しています。RDエリアを拡張してください。※２

注※1

表及びインデクスの再編成については，「データベース再編成ユティリティ（pdrorg）」を参照してください。表及びインデクスの空きページ解放については，「空きページ解放ユティリティ（pdreclaim）」を参照してください。

注※2

RDエリアの拡張については，「データベース構成変更ユティリティ（pdmod）」を参照してください。

ユーザLOB用RDエリアの場合は，次のように分析できます。

RDエリア内のセグメントの情報

使用中セグメント比率

セグメントオーバー

内容

大きい（未使用セグメントが少ない）

Y

容量が不足していて，DBへのアクセス性能が劣化しています。ユーザLOB用RDエリアを拡張して，表又はインデクスの再編成をしてください。※１※２

N

容量が不足しています。ユーザLOB用RDエリアを拡張する必要があります。※１

少ない（未使用セグメントが多い）

Y

DBへのアクセス性能が劣化しています。表又はインデクスの再編成をしてください。※２

N

対策する必要はありません。

注

プラグインが提供する抽象データ型のLOB属性を格納するRDエリア，又はプラグインインデクスを格納するRDエリアの状態を解析した場合，RDエリア内の使用中セグメントの割合は，プラグインのセグメントの割り当て方に依存します。例えば，インデクス定義時にセグメントの割り当てを終えてしまうようなプラグインの場合は，定義直後（データをまだ格納していない状態）でもほとんどのセグメントが使用中セグメントになることがあります。

注※1

RDエリアの拡張については，「データベース構成変更ユティリティ（pdmod）」を参照してください。

注※2

表及びインデクスの再編成については，「データベース再編成ユティリティ（pdrorg）」を参照してください。

Lobmapオーバー

Yの場合，LOB列に対する検索性能が劣化することがあります。LOB列構成基表を再編成してください。

15.3.3　表単位又はインデクス単位の状態解析

表又はインデクスの，格納ページのセグメントの状態及び格納ページ全体の状態を，RDエリアごとに解析します。

(1)　使用目的

表又はインデクスの乱れを検知できます。また，複数のRDエリアに分割格納された表又はインデクスは，RDエリアごとに均等に格納されているかなどを確認できます。

(2)　解析結果の情報

表又はインデクス単位の状態解析で表示される解析結果を次に示します。

(a)　表単位の状態解析

LOB用RDエリアを含まない場合

pddbst
 pddbst VV-RR(Object Option) ** Table Analysis **            2008/12/25 15:54:13 [1]
 Table Name     : TBL02 [2]
 Auth Id        : user1 [3]
 Hash           :   [4]
  Total Segment :         15 [5] Max Sum Segment :         15 [7]
  Total Page    :         75 [6] Max Sum Page    :         75 [8]
  Total Row     :                    16 [9]
  RD Area Count :          1/         1 [10]
--------------------------------------------------------------------------------
 RD Area Name   : user_rdarea_1 [11]
  Server        : bes01 [12]
  Status        :   [38]
  Reference Pending Status : [41]
  Check     Pending Status : [42]
  Original RD Area Name : user_rdarea_1 [28]
  Generation Number :  0[29] Replica RD Area Count :  0[30]
  [31]     [32]               [33]               [34]
  History1 Hold Status :      Hold Code :     0  Hold Time :
  History2 Hold Status :      Hold Code :     0  Hold Time :

  Job Name      :   [25]  Line Count :   [26]         Index Method :   [27]
  Unit :     [43] Generation :    [44]
  Unused Segment:          9 [13]
  Segment Reuse :          - segments [36]
  Segment Reuse Option :          - [60]
  Row Count     :                    16 [24]
  <Base row segment>
  Search Mode : INS [35]
  Branch Row Search Mode : - [61]
  Reuse Search Failure :          0/         0 [37]
               Used(Full)       Used(      Full)        Sum
               [14]  [15]        [16]       [17]       [18]
  Segment [45] 100%(  0%)          1(         0)          1
               [19]  [20]        [21]       [22]       [23]
  Page    [46] 60%(  0%)          3(         0)          5
  Collect On Segment :          0 [59]
  Collect Prearranged Page :          0 [39]
  Collect Prearranged Full Page :          0[62]
  Used Page Ratio       Page(Ratio) [40]
             0% :          2(  40%)
         1- 10% :          1(  20%)
        11- 20% :          1(  20%)
        21- 30% :          0(   0%)
        31- 40% :          1(  20%)
        41- 50% :          0(   0%)
        51- 60% :          0(   0%)
        61- 70% :          0(   0%)
        71- 80% :          0(   0%)
        81- 90% :          0(   0%)
        91-100% :          0(   0%)
  Total                    5
  Del RowID   :                     0 [63]
  <BINARY segment>
  Search Mode : INS
  Branch Row Search Mode : -
  Reuse Search Failure :          0/         0
               Used(Full)       Used(      Full)        Sum
               [47]  [48]        [49]       [50]       [51]
  Segment [52] 100%( 93%)         14(        13)         14
               [53]  [54]        [55]       [56]       [57]
  Page    [58]  96%( 95%)         67(        66)         70
  Collect On Segment :          0
  Collect Prearranged Page :          0
  Collect Prearranged Full Page :          0
  Used Page Ratio       Page(Ratio)
             0% :          3(   5%)
         1- 10% :          0(   0%)
        11- 20% :          0(   0%)
        21- 30% :          0(   0%)
        31- 40% :          0(   0%)
        41- 50% :          0(   0%)
        51- 60% :          0(   0%)
        61- 70% :          0(   0%)
        71- 80% :          0(   0%)
        81- 90% :          0(   0%)
        91-100% :         67(  96%)
  Total                   70

［説明］

状態解析の基になる情報の取得完了年月日時刻を，YYYY/MM/DD hh:mm:ssの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

解析対象の表の名称を表示します。

解析対象の表の認可識別子を表示します。

フレキシブルハッシュ分割及びFIXハッシュ分割の場合に，使用しているハッシュ関数の名称を表示します。フレキシブルハッシュ分割の場合は見出しが"Hash"，FIXハッシュ分割の場合は見出しが"Fix Hash"となります。フレキシブルハッシュ分割及びFIXハッシュ分割をしていない場合には，空白を表示します。

表に割り当てられているセグメント数の合計（使用中セグメント数）を表示します。

表に割り当てられているセグメント（使用中セグメント＋未使用セグメント）の中の，ページ数の合計を表示します。

1RDエリア当たりの表に割り当てられている，セグメント数の合計の最大値を表示します。

1RDエリア当たりの表に割り当てられている，セグメント中のページ数の合計の最大値を表示します。

表の総格納行数（RDエリアごとの格納行数の合計）を表示します。この情報は，-sオプションを指定したときだけ表示します。

正常に解析できたRDエリア数／表の格納ページを含むRDエリア数を表示します。

解析対象のRDエリアの名称を表示します。

RDエリアを管理するサーバの名称を表示します。

RDエリア内の未使用セグメント数の合計を表示します。括弧内は該当するRDエリア内の，更新凍結状態でないHiRDBファイルの未使用セグメント数の合計となります。

使用中セグメント数の比率を表示します。

↑使用中セグメント数÷18の値×100↑（％）

満杯セグメント数の比率を表示します。

↑満杯セグメント数÷18の値×100↑（％）

使用中セグメント数を表示します。pdreclaimでの解放途中セグメントは，使用中セグメントとして表示します。

満杯セグメント数を表示します。

RDエリア内の該当する表に割り当てられているセグメント数の合計（使用中セグメント数）を表示します。

使用中ページ数の比率を表示します。

↑使用中ページ数÷23の値×100↑（％）

満杯ページ数の比率を表示します。

↑満杯ページ数÷23の値×100↑（％）

使用中ページ数を表示します。

満杯ページ数を表示します。

RDエリアの該当する表に割り当てられている，セグメント中のページ数の合計（使用中ページ数＋未使用ページ数）を表示します。

該当するRDエリアに格納されている行数を表示します。この情報は，-sオプションを指定したときだけ表示します。また，格納行数のカウントはNOWAIT検索をするため，誤差が生じる場合があります。

同期点指定のデータロード，再編成，及びリロードをしたときに設定されたジョブ名を表示します。括弧内はジョブ名を使用するユティリティ種別です。

L：pdload

R：pdrorg

空白：設定されていません。

同期点指定のデータロード，再編成，及びリロードをしたときに，データベースに格納された行数を表示します。

同期点指定のデータロード，再編成，及びリロードをしたときのインデクス作成方法（-iオプションの指定値）を表示します。

オリジナルRDエリア名を表示します。

該当するRDエリアの世代番号を表示します。

レプリカRDエリアの数を表示します。

該当するRDエリアの閉塞履歴情報です。

History1：閉塞解除する一つ前の閉塞情報（現時点で閉塞中の場合は現在の閉塞情報）

History2：History1の一つ前の閉塞情報

該当するRDエリアの閉塞種別を表示します。履歴がない場合は空白を表示します。

CMD：HiRDBの障害検知によるコマンド閉塞

FLT：障害閉塞

該当するRDエリアの閉塞要因コードを表示します。閉塞要因コードについては，「LOB用RDエリア以外の場合」を参照してください。

該当するRDエリアの閉塞時刻を表示します。履歴がない場合は空白を表示します。

ページサーチモードを表示します。

INS：新規ページ追加モード

REU：空きページ再利用モード

CREATE TABLE実行時，又はALTER TABLE実行時のSEGMENT REUSEで指定したセグメント数です。SEGMENT REUSEでセグメント数を指定していない場合は"0"を表示します。また，SEGMENT REUSEにNOを指定している場合，及びSEGMENT REUSEを省略している場合は"-"を表示します。

新規ページ追加モードから空きページ再利用モードに切り替えたときに，再利用できる空き領域がなく，新規ページ追加モードに戻した回数（n/m）を表示します。

n：空回り回数

m：新規ページ追加モードから空きページ再利用モードに切り替えた回数

n及びmは，次の契機でリセットされ，0が設定されます。

RDエリアのクローズ時

HiRDBの再開始時

PURGE TABLE文実行時

データ未完状態であるか，又は再編成実行中であるかを表示します。次のどちらでもない場合は，空白を表示します。

DATA_UNFINISH：

データ未完状態です。表の再編成を実行し，途中でエラーなどによってリロード処理が完了していない状態のことをいいます。データ未完状態を解除するためには，表の再編成を再実行するか，又は表へのリロードを実行する必要があります。

ON_RORG：

再編成実行中です。

pdreclaimで解放できるページ数（使用率0％の使用中空きページの数）を表示します。

使用中ページの比率別ページ数を10％ごとに表示します。括弧内の値は，すべての使用中ページに対する比率を表します。比率は小数点以下を切り上げて表示するため，比率を合計すると100を超えることがあります。注意事項を次に示します。

満杯ページであっても，使用率が91−100％であるとは限りません。

行長が短くなる更新をして空いた領域は，空き領域として扱いません。

（100−PCTFREEで指定した空き領域比率）よりも，使用中ページ比率が小さいページが多い場合，格納効率が低下している可能性があります。この場合，pdrorgの実行を検討してください。ただし，分岐行（256バイト以上の可変長文字列データ，繰返し列のデータ，及び抽象データ型列のデータ）を格納している領域は，pdrorgを実行しても格納効率は変わりません。

RDエリア中の表情報の参照制約の検査保留状態を表示します。表に参照制約の定義がない場合は空白を表示します。

P：検査保留状態

空白：非検査保留状態

RDエリア中の表情報の検査制約の検査保留状態を表示します。表に検査制約の定義がない場合は空白を表示します。

P：検査保留状態

空白：非検査保留状態

監査証跡表へのデータロード中にpdloadが異常終了したため，監査証跡ファイルのデータロードが完了しているのに，監査証跡ファイルの状態をデータロード済み状態に変更できなかったおそれがあるユニットの識別子を表示します。異常終了していない場合や，異常終了したタイミングが監査証跡ファイルの状態変更と無関係な場合は空白を表示します。

43と同様に，監査証跡ファイルの状態を変更できなかったおそれがある監査証跡ファイルの世代番号（監査証跡ファイル名の後ろから3文字）を表示します。異常終了していない場合や，異常終了したタイミングが監査証跡ファイルの状態変更と無関係な場合は空白を表示します。

セグメント単位のサマリ情報です。バイナリ専用セグメントの情報は含みません。

ページ単位のサマリ情報です。

使用中バイナリ専用セグメント数の比率を表示します。

↑使用中バイナリ専用セグメント数÷表又はインデクスに割り当てられているバイナリ専用セグメント数の合計×100↑（％）

満杯バイナリ専用セグメント数の比率を表示します。

↑満杯バイナリ専用セグメント数÷表又はインデクスに割り当てられているバイナリ専用セグメント数の合計×100↑（％）

使用中バイナリ専用セグメント数を表示します。pdreclaimでの解放途中セグメントは，使用中バイナリ専用セグメントとして表示します。

満杯バイナリ専用セグメント数を表示します。

表又はインデクスに割り当てられているバイナリ専用セグメント数の合計を表示します。

バイナリ専用セグメント単位のサマリ情報です。

バイナリ専用セグメントの使用中ページ数の比率を表示します。

↑バイナリ専用セグメントの使用中ページ数÷表又はインデクスに割り当てられているバイナリ専用セグメントのページ数の合計×100↑（％）

バイナリ専用セグメントの満杯ページ数の比率を表示します。

↑使用中バイナリ専用セグメントの満杯ページ数÷表又はインデクスに割り当てられているバイナリ専用セグメントのページ数の合計×100↑（％）

バイナリ専用セグメントの使用中ページ数を表示します。

バイナリ専用セグメントの満杯ページ数を表示します。

表又はインデクスに割り当てられているバイナリ専用セグメントのページ数の合計を表示します。

バイナリ専用セグメントのページ単位のサマリ情報です。

-aオプションを指定したpdreclaimが同時実行中，又はエラー終了した場合に，解放途中のセグメント数を表示します。-aオプションを指定したpdreclaimを実行していない場合は0を表示します。

表定義のSEGMENT REUSEで指定した再利用オプション値を表示します。

分岐行に対する空き領域サーチモードを表示します。

INS：新規ページ追加モード

REU：空きページ再利用モード

SEGMENT REUSEの再利用オプション値で「分岐行が多発する表の格納効率向上」を指定していない場合は，"-"が表示されます。

pdreclaim又はpdrorgで解放できる満杯ページ数を表示します。

表の削除状態の，管理行数の合計を表示します。

注1

28〜30は，HiRDB Staticizer Option使用時に表示される情報です。世代を指定して解析した場合，指定した世代にレプリカRDエリアがないと，警告メッセージが出力され結果は表示されません。

注2

39及び40は，-dオプションを指定した場合に表示される情報です。

注3

43及び44は，監査証跡表の場合に表示される情報です。

注4

45〜58は，表に，定義長256バイト以上のBINARY型の列，又は抽象データ型の列が定義されている場合に出力されます。

LOB用RDエリアを含む場合

 pddbst VV-RR(Object Option) ** Table Analysis **            2008/12/25 15:54:14 [1]
 Table Name     : TBL03 [2]
 Auth Id        : user1 [3]
 Hash           :    [4]
  Total Segment :       1247 [5] Max Sum Segment :       1234 [7]
  Total Page    :       1299 [6] Max Sum Page    :       1234 [8]
  Total Row     :                 1,234 [9]
  RD Area Count :          2/         2 [10]
--------------------------------------------------------------------------------
 RD Area Name   : user_rdarea_3 [11]
  Server        : bes01 [12]
  Status        :   [42]
  Reference Pending Status :
  Check     Pending Status :
  Original RD Area Name : user_rdarea_3 [32]
  Generation Number :  0 [33]  Replica RD Area Count :  0[34]
  [35]     [36]               [37]               [38]
  History1 Hold Status :      Hold Code :     0  Hold Time :
  History2 Hold Status :      Hold Code :     0  Hold Time :
  Job Name      :   [29]  Line Count :   [30]         Index Method :   [31]
  Unused Segment:        137 [13]
  Segment Reuse :          - segments [40]
  Segment Reuse Option :          - [46]
  Row Count     :                 1,234 [24]
  <Base row segment>
  Search Mode : INS [39]
  Branch Row Search Mode : - [47]
  Reuse Search Failure :          0/         0 [41]
              Used(Full)       Used(      Full)        Sum
              [14]  [15]        [16]       [17]        [18]
  Segment [43]100%( 85%)         13(        11)         13
              [19]  [20]        [21]       [22]        [23]
  Page    [44]100%( 97%)         65(        63)         65
  Collect On Segment :          0 [45]
  Collect Prearranged Page :          0
  Collect Prearranged Full Page :          0 [48]
  Used Page Ratio       Page(Ratio)
             0% :          0(   0%)
         1- 10% :          0(   0%)
        11- 20% :          0(   0%)
        21- 30% :          1(   2%)
        31- 40% :          0(   0%)
        41- 50% :          0(   0%)
        51- 60% :          0(   0%)
        61- 70% :          0(   0%)
        71- 80% :          0(   0%)
        81- 90% :          0(   0%)
        91-100% :         64(  99%)
  Total                   65
  Del RowID   :                     0 [49]
 RD Area Name   : user_rdlob_2
  Server        : bes01
  Status        :
  Column Name   : C4 [25]
  Original RD Area Name : user_rdlob_2
  Generation Number :  0   Replica RD Area Count :  0
  History1 Hold Status :      Hold Code :     0  Hold Time :

  History2 Hold Status :      Hold Code :     0  Hold Time :
  Unused Segment:        266(       266)
          Used       Used        Sum
  Segment 100%       1234       1234
  Segment Over  : N  [26] Last Segment :       1234/      1500 [27]
  Lobmap  Over  : N [28]

［説明］

状態解析の基になる情報の取得完了年月日時刻を，YYYY/MM/DD hh:mm:ssの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

解析対象の表の名称を表示します。

解析対象の表の認可識別子を表示します。

フレキシブルハッシュ分割及びFIXハッシュ分割の場合に，使用しているハッシュ関数の名称を表示します。フレキシブルハッシュ分割の場合は見出しが"Hash"，FIXハッシュ分割の場合は見出しが"Fix Hash"となります。フレキシブルハッシュ分割及びFIXハッシュ分割をしていない場合には，空白を表示します。

表に割り当てられているセグメント数の合計（使用中セグメント数＋未使用セグメント数）を表示します。

表に割り当てられているセグメント（使用中セグメント＋未使用セグメント）の中の，ページ数の合計を表示します。

1RDエリア当たりの表に割り当てられている，セグメント数の合計の最大値を表示します。

1RDエリア当たりの表に割り当てられている，セグメント中のページ数の合計の最大値を表示します。

表の総格納行数（RDエリアごとの格納行数の合計）を表示します。この情報は，-sオプションを指定したときだけ表示します。

正常に解析できたRDエリア数／表の格納ページを含むRDエリア数を表示します。

解析対象のRDエリアの名称を表示します。ユーザLOB用RDエリアがある場合，先にLOB列構成基表のユーザ用RDエリア名を表示し，次にLOBデータのユーザLOB用RDエリア名を表示します。

RDエリアを管理するサーバの名称を表示します。

RDエリア内の未使用セグメント数の合計を表示します。括弧内は該当するRDエリア内の，更新凍結状態でないHiRDBファイルの未使用セグメント数の合計となります。

使用中セグメント数の比率を表示します。

↑使用中セグメント数÷18の値×100↑（％）

満杯セグメント数の比率を表示します。

↑満杯セグメント数÷18の値×100↑（％）

使用中セグメント数を表示します。pdreclaimでの解放途中セグメントは，使用中セグメントとして表示します。

満杯セグメント数を表示します。

RDエリア内の該当する表に割り当てられているセグメント数の合計（使用中セグメント数）を表示します。

使用中ページ数の比率を表示します。

↑使用中ページ数÷23の値×100↑（％）

満杯ページ数の比率を表示します。

↑満杯ページ数÷23の値×100↑（％）

使用中ページ数を表示します。

満杯ページ数を表示します。

RDエリアの該当する表に割り当てられている，セグメント中のページ数の合計（使用中ページ数＋未使用ページ数）を表示します。

該当するRDエリアに格納されている行数を表示します。この情報は，-sオプションを指定したときだけ表示します。また，格納行数のカウントはNOWAIT検索をするため，誤差が生じる場合があります。

LOB列の名称を表示します。

LOB用RDエリアが乱れているかどうかを表示します。

Y ：乱れています。

N ：乱れていません。

使用されているセグメントの最後を示す位置情報を表示します。最終位置/総セグメント数の形式で表示します。26がYのときは，常に最後のセグメントを示します。

LOB管理エントリがすべて使用されているかどうかを表示します。

Y ：すべて使用されています。

N ：未使用のエントリが残っています。

同期点指定のデータロード，再編成，及びリロードをしたときに設定されたジョブ名を表示します。括弧内はジョブ名を使用するユティリティ種別です。

L：pdload

R：pdrorg

空白：設定されていません。

同期点指定のデータロード，再編成，及びリロードをしたときに，データベースに格納された行数を表示します。

同期点指定のデータロード，再編成，及びリロードをしたときのインデクス作成方法（-iオプションの指定値）を表示します。

オリジナルRDエリア名を表示します。

該当するRDエリアの世代番号を表示します。

レプリカRDエリアの数を表示します。

該当するRDエリアの閉塞履歴情報です。

History1：閉塞解除する一つ前の閉塞情報（現時点で閉塞中の場合は現在の閉塞情報）

History2：History1の一つ前の閉塞情報

該当するRDエリアの閉塞種別を表示します。履歴がない場合は空白を表示します。

CMD：HiRDBの障害検知によるコマンド閉塞

FLT：障害閉塞

該当するRDエリアの閉塞要因コードを表示します。閉塞要因コードについては，「LOB用RDエリア以外の場合」を参照してください。

該当するRDエリアの閉塞時刻を表示します。履歴がない場合は空白を表示します。

ページサーチモードを表示します。

INS：新規ページ追加モード

REU：空きページ再利用モード

CREATE TABLE実行時，又はALTER TABLE実行時のSEGMENT REUSEで指定したセグメント数です。SEGMENT REUSEでセグメント数を指定していない場合は"0"を表示します。また，SEGMENT REUSEにNOを指定している場合，及びSEGMENT REUSEを省略している場合は"-"を表示します。

新規ページ追加モードから空きページ再利用モードに切り替えたときに，再利用できる空き領域がなく，新規ページ追加モードに戻した回数（n/m）を表示します。

n：空回り回数

m：新規ページ追加モードから空きページ再利用モードに切り替えた回数

n及びmは，次の契機でリセットされ，0が設定されます。

RDエリアのクローズ時

HiRDBの再開始時

PURGE TABLE文実行時

データ未完状態であるか，又は再編成実行中であるかを表示します。次のどちらでもない場合は，空白を表示します。

DATA_UNFINISH：

データ未完状態です。表の再編成を実行し，途中でエラーなどによってリロード処理が完了していない状態のことをいいます。データ未完状態を解除するためには，表の再編成を再実行するか，又は表へのリロードを実行する必要があります。

ON_RORG：

再編成実行中です。

セグメント単位のサマリ情報です。バイナリ専用セグメントの情報は含みません。

ページ単位のサマリ情報です。

-aオプションを指定したpdreclaimが同時実行中，又はエラー終了した場合に，解放途中のセグメント数を表示します。-aオプションを指定したpdreclaimを実行していない場合は0を表示します。

表定義のSEGMENT REUSEで指定した再利用オプション値を表示します。

分岐行に対する空き領域サーチモードを表示します。

INS：新規ページ追加モード

REU：空きページ再利用モード

SEGMENT REUSEの再利用オプション値で「分岐行が多発する表の格納効率向上」を指定していない場合は，"-"が表示されます。

pdreclaim又はpdrorgで解放できる満杯ページ数を表示します。

表の削除状態の，管理行数の合計を表示します。

注　

32〜34は，HiRDB Staticizer Option使用時に表示される情報です。世代を指定して解析した場合，指定した世代にレプリカRDエリアがないと，警告メッセージが出力され結果は表示されません。

(b)　インデクス単位の状態解析

B-treeインデクスの場合

 pddbst VV-RR(Object Option) ** Index Analysis **            2008/12/25 18:56:00 [1]
 Index Name     : IDX_TBL01_C1 [2]
 Auth Id        : user1 [3]
  Total Segment :         70 [4] Max Sum Segment :         70 [6]
  Total Page    :        700 [5] Max Sum Page    :        700 [7]
  RD Area Count :          1/         1 [8]
--------------------------------------------------------------------------------
 RD Area Name   : user_rdarea_1 [9]
  Server        : bes1 [10]
  Status        :   [22]
  Original RD Area Name : user_rdarea_1 [23]
  Generation Number :  0[24] Replica RD Area Count :  0[25]
  [26]     [27]               [28]               [29]
  History1 Hold Status :      Hold Code :     0  Hold Time :
  History2 Hold Status :      Hold Code :     0  Hold Time :
  Unused Segment:        815 [11]
          Used(Full)       Used(      Full)        Sum
          [12]  [13]        [14]       [15]        [16]
  Segment 100%(  0%)         70(         0)         70
          [17]  [18]        [19]       [20]        [21]
  Page     99%(  0%)        693(         0)        700
  Collect On Segment :          0 [37]
  Collect Prearranged Page :         26 [30]
  Collect On Page :          0 [31]
  Used Page Ratio       Page(Ratio) [32] Del RowID [33]
             0% :         33(   5%)              85
         1- 10% :          1(   1%)              17
        11- 20% :          2(   1%)              52
        21- 30% :          1(   1%)              45
        31- 40% :          0(   0%)              0
        41- 50% :          0(   0%)              0
        51- 60% :          0(   0%)              0
        61- 70% :        663(  95%)              633
        71- 80% :          0(   0%)              0
        81- 90% :          0(   0%)              0
        91-100% :          0(   0%)              0
  Total                  700                     832 [34]
  Del RowID   :                   832          (  1%) [36]
  RowID Count :                95,998 [35]

［説明］

状態解析の基になる情報の取得完了年月日時刻を，YYYY/MM/DD hh:mm:ssの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

解析対象のインデクスの名称を表示します。

解析対象のインデクスの認可識別子を表示します。

インデクスに割り当てられているセグメント数の合計（使用中セグメント数＋未使用セグメント数）を表示します。

インデクスに割り当てられているセグメント（使用中セグメント＋未使用セグメント）の中の，ページ数の合計を表示します。

1RDエリア当たりのインデクスに割り当てられている，セグメント数の合計の最大値を表示します。

1RDエリア当たりのインデクスに割り当てられている，セグメント中のページ数の合計の最大値を表示します。

正常に解析できたRDエリア数／インデクスの格納ページを含むRDエリア数を表示します。

解析対象のRDエリアの名称を表示します。

RDエリアを管理するサーバの名称を表示します。

RDエリア中の未使用セグメント数の合計を表示します。

使用中セグメント数の比率を表示します。

↑使用中セグメント数÷16の値×100↑（％）

満杯セグメント数の比率を表示します。

↑満杯セグメント数÷16の値×100↑（％）

使用中セグメント数を表示します。pdreclaimでの解放途中セグメントは，使用中セグメントとして表示します。

満杯セグメント数を表示します。

RDエリア内の該当するインデクスに割り当てられているセグメント数の合計（使用中セグメント数）を表示します。

使用中ページ数の比率を表示します。

↑使用中ページ数÷21の値×100↑（％）

満杯ページ数の比率を表示します。

↑満杯ページ数÷21の値×100↑（％）

使用中ページ数を表示します。

満杯ページ数を表示します。

RDエリアの該当するインデクスに割り当てられている，セグメント中のページ数の合計（使用中ページ数＋未使用ページ数）を表示します。

インデクス作成時の，インデクスの未完状態を表示します。未完状態でない場合は空白を表示します。

UNFINISH_0：図「表単位のインデクス作成未完状態の種類（1/2）」，図「表単位のインデクス作成未完状態の種類（2/2）」を参照してください。

UNFINISH_1：図「RDエリア単位のインデクス作成未完状態の種類（1/2）」，図「RDエリア単位のインデクス作成未完状態の種類（2/2）」を参照してください。

オリジナルRDエリア名を表示します。

該当するRDエリアの世代番号を表示します。

レプリカRDエリアの数を表示します。

該当するRDエリアの閉塞履歴情報です。

History1：閉塞解除する一つ前の閉塞情報（現時点で閉塞中の場合は現在の閉塞情報）

History2：History1の一つ前の閉塞情報

該当するRDエリアの閉塞種別を表示します。履歴がない場合は空白を表示します。

CMD：HiRDBの障害検知によるコマンド閉塞

FLT：障害閉塞

該当するRDエリアの閉塞要因コードを表示します。閉塞要因コードについては，「LOB用RDエリア以外の場合」を参照してください。

該当するRDエリアの閉塞時刻を表示します。履歴がない場合は空白を表示します。

pdreclaimで解放できるページ数（使用率0％の使用中空きページの数）を表示します。

pdreclaimの実行途中，又はpdreclaimがエラーで終了しているために解放処理が途中になっている状態のページ数を表示します。エラーで終了している場合は，pdreclaimを再実行してください（このページ数は0になります）。なお，表示するページ数は，使用中ページの比率別（0％）のページ数にカウントされます。

使用中ページの比率別ページ数を10％ごとに表示します。括弧内の値は，すべての使用中ページに対する比率を表します。比率は小数点以下を切り上げて表示するため，比率を合計すると100を超えることがあります。注意事項を次に示します。

201件以上重複したキー値を格納するページは，表定義時のPCTFREEの比率が無効となります。そのため，再編成する場合でもPCTFREEの比率どおりに再配置されません。

インデクスキー値無排他を適用したインデクスの場合，削除キー値は空き領域として扱い，使用中ページのすべてが削除キー値のときは，使用率0％となります。

満杯ページであっても，使用率が91−100％であるとは限りません。

行長が短くなる更新をして空いた領域は，空き領域として扱いません。

（100−PCTFREEで指定した空き領域比率）よりも，使用中ページ比率が小さいページが多い場合，格納効率が低下している可能性があります。この場合，pdrorgの実行を検討してください。ただし，分岐行（256バイト以上の可変長文字列データ，繰返し列のデータ，及び抽象データ型列のデータ）を格納している領域は，pdrorgを実行しても格納効率は変わりません。

インデクスキー値無排他を使用している場合又はコミットしていない削除データに排他を掛ける場合，次の数値を表示します。

使用中インデクスページの比率別残存エントリが管理する行数

（残存エントリとは，インデクスキー値の更新や削除によって，キーの削除後も排他制御のためにインデクス上に残っているインデクスエントリ）

表示けた数は3けたで，小数点と単位を含めた最大表示けた数は5けたです。表示する行数が3けたを超える場合に小数点と単位を表示します。その場合，先頭から4けた目を四捨五入します。残存エントリが管理する行数の表示形式については，「LOB用RDエリア以外の場合」を参照してください。

使用中ページの比率別ページ数の合計と，残存エントリが管理する行数の合計を表示します。

インデクスが管理する総行数を表示します。15けたまでは整数，16けた以上になると指数で表示します。例えば，1000000000000000は1E+15と表示します。表示形式については，「LOB用RDエリア以外の場合」を参照してください。

インデクスの，削除状態である管理行数の合計を表示します。又は，インデクスの削除状態である管理行数の，すべての管理行数に対する割合を表示します。

-aオプションを指定したpdreclaimが同時実行中，又はエラー終了した場合に，解放途中のセグメント数を表示します。-aオプションを指定したpdreclaimを実行していない場合は0を表示します。

注1

23〜25は，HiRDB Staticizer Option使用時に表示される情報です。世代を指定して解析した場合，指定した世代にレプリカRDエリアがないと，警告メッセージが出力され結果は表示されません。

注2

30〜32は，-dオプションを指定した場合に表示される情報です。

また，33，34，及び35は-dオプションと-zオプションを同時に指定した場合に表示される情報です。

プラグインインデクスの場合

 pddbst VV-RR(Object Option) ** Index Analysis **            2002/03/29 18:05:06 [1]
 Index Name     : IDX05 [2]
 Auth Id        : MANUAL [3]
  Total Segment :       9501[4] Max Sum Segment :       9501 [6]
  Total Page    :       9501[5] Max Sum Page    :       9501 [7]
  RD Area Count :          1/         1 [8]
--------------------------------------------------------------------------------
 RD Area Name   : USER_RDLOB_10 [9]
  Server        : BES02 [10]
  Status        :     [15]
  Original RD Area Name : USER_RDLOB_10 [19]
  Generation Number :  0[20] Replica RD Area Count :  0 [21]
    [22]                [23]                [24]            [25]
  History1 Hold Status :      Hold Code :     0  Hold Time :
  History2 Hold Status :      Hold Code :     0  Hold Time :
  Unused Segment:        499(       499) [11]
          [12]       [13]       [14]
          Used       Used        Sum
  Segment 100%       9501       9501
                 [16]                        [17]
  Segment Over  : N  Last Segment :       9501/     10000
                 [18]
  Lobmap  Over  : N

［説明］

状態解析の基になる情報の取得完了年月日時刻を，YYYY/MM/DD hh:mm:ssの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

解析対象のインデクスの名称を表示します。

解析対象のインデクスの認可識別子を表示します。

インデクスに割り当てられているセグメント数（使用中セグメント数＋未使用セグメント数）の合計を表示します。

インデクスに割り当てられているセグメント（使用中セグメント＋未使用セグメント）の中の，ページ数の合計を表示します。

1RDエリア当たりのインデクスに割り当てられている，セグメント数の合計の最大値を表示します。

1RDエリア当たりのインデクスに割り当てられている，セグメント中のページ数の合計の最大値を表示します。

正常に解析できたRDエリア数／インデクスの格納ページを含むRDエリア数を表示します。

解析対象のRDエリアの名称を表示します。

RDエリアを管理するサーバの名称を表示します。

RDエリア内の未使用セグメント数の合計を表示します。括弧内は該当するRDエリア内の，更新凍結状態でないHiRDBファイルの未使用セグメント数の合計となります。

使用中セグメント数の比率を表示します。

↑使用中セグメント数÷16の値×100↑（％）

使用中セグメント数を表示します。pdreclaimでの解放途中セグメントは，使用中セグメントとして表示します。

RDエリア内の該当するインデクスに割り当てられているセグメント数の合計（使用中セグメント数）を表示します。

インデクス作成時の，インデクスの未完状態を表示します。未完状態でない場合は空白を表示します。

UNFINISH_0：

図「表単位のインデクス作成未完状態の種類（1/2）」，図「表単位のインデクス作成未完状態の種類（2/2）」を参照してください。

UNFINISH_1：

図「RDエリア単位のインデクス作成未完状態の種類（1/2）」，図「RDエリア単位のインデクス作成未完状態の種類（2/2）」を参照してください。

UNFINISH_2：

プラグインインデクス遅延更新中。プラグインインデクス遅延一括作成機能を使用したUAPを実行中，又はUAP終了後にpdrorgのインデクス一括作成を実行していない状態です。プラグインインデクスの遅延一括作成については，マニュアル「HiRDB システム運用ガイド」を参照してください。

LOB用RDエリアが乱れているかどうかを表示します。

Y：乱れています。

N：乱れていません。

使用されているセグメントの最後を示す位置情報を表示します。最終位置/総セグメント数の形式で表示します。Segment Overの表示がYの場合，常に最後のセグメントを示します。

LOB管理エントリがすべて使用されているかどうかを表示します。

Y ：すべて使用されています。

N ：未使用のエントリが残っています。

オリジナルRDエリア名を表示します。

該当するRDエリアの世代番号を表示します。

レプリカRDエリアの数を表示します。

該当するRDエリアの閉塞履歴情報です。

History1：閉塞解除する一つ前の閉塞情報（現時点で閉塞中の場合は現在の閉塞情報）

History2：History1の一つ前の閉塞情報

該当するRDエリアの閉塞種別を表示します。履歴がない場合は空白を表示します。

CMD：HiRDBの障害検知によるコマンド閉塞

FLT：障害閉塞

該当するRDエリアの閉塞要因コードを表示します。閉塞要因コードについては，「LOB用RDエリア以外の場合」を参照してください。

該当するRDエリアの閉塞時刻を表示します。履歴がない場合は空白を表示します。

注

19〜21は，HiRDB Staticizer Option使用時に表示される情報です。世代を指定して解析した場合，指定した世代にレプリカRDエリアがないと，警告メッセージが出力され結果は表示されません。

(3)　解析結果の分析

表又はインデクス単位の状態解析の解析結果は，RDエリア単位の状態解析（論理的解析）と同じように分析できます。

格納行数がRDエリアごとに均等でない場合，HiRDB/パラレルサーバの性能を最大限に引き出すことができません。この場合，キーレンジ分割の見直しや，フレキシブルハッシュ分割又はFIXハッシュ分割を適用するなど（又はハッシュ関数を変更するなど）してください。これによって，格納行数がRDエリアごとに均等分割されるようになります。

なお，プラグインが提供する抽象データ型のLOB属性を格納するRDエリア，又はプラグインインデクスを格納するRDエリアの状態を解析した場合，RDエリア内の使用中セグメントの割合は，プラグインのセグメントの割り当て方に依存します。

15.3.4　クラスタキー及びクラスタリングデータページの格納状態解析

(1)　使用目的

クラスタキー及びクラスタリングデータページの格納状態の乱れ具合が分かるため，再編成をするかどうかの判断ができます。

(2)　解析結果の情報

クラスタキー及びクラスタリングデータページの格納状態解析で表示される解析結果を次に示します。

 pddbst VV-RR(Object Option) ** Index Status Analysis **     2001/08/22 16:44:01 [1]
 Index Name : (CLUSTER0000131198) [2]
 Auth Id    : MANUAL [3]
 Table Name : TBL06 [4]

 ***** Cluster Key Analysis *****
  RD Area Count :          1/         1 [5]
--------------------------------------------------------------------------------
 RD Area Name : USER_RDAREA_4                    Server : BES01 [6]
  Original RD Area Name : USER_RDAREA_4 [24]
  Generation Number :  0[25] Replica RD Area Count :  0[26]
  Segment Size:          5 Pages   Page Size :       4096 [7]
  Index Level :          1 [8]
                       Total            Repetitional
  Key Count              100 [9]                   0 [10]
  Row Count              100 [11]                  0 [12]
               Total   Disordered
  Segment          0 [13]       0(  0.0%) [14]
  Page             0 [15]       0(  0.0%) [16]

 ***** Clustering Table Analysis *****
  RD Area Count :          1/         1 [17]
--------------------------------------------------------------------------------
 RD Area Name : USER_RDAREA_4                    Server : BES01 [18]
  Original RD Area Name : USER_RDAREA_4
  Generation Number :  0   Replica RD Area Count :  0
  Segment Size:          5 Pages   Page Size :       4096 [19]
               Total   Disordered
  Segment          0 [20]       0(  0.0%) [21]
  Page             0 [22]       0(  0.0%) [23]

［説明］

状態解析の基になる情報の取得完了年月日時刻を，YYYY/MM/DD hh:mm:ssの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

解析対象となるクラスタキーのインデクス名称を表示します。

解析対象となるクラスタキーのインデクス所有者の認可識別子を表示します。

解析対象となるクラスタキーを定義してある表の名称を表示します。

正常に解析できたRDエリアの数／インデクスを格納しているRDエリアの数を表示します。

解析したインデクスを格納しているRDエリアの名称と，そのRDエリアを管理するサーバ名を表示します。

6のRDエリアのセグメントサイズ（１セグメント内のページ数）とページ長（バイト）を表示します。

6のRDエリアのインデクスキーのインデクスの段数を表示します。

6のRDエリアのインデクス中の格納キー数を表示します。値の表示については，15けたまでは整数で表示し，15けたを超えると指数で表示します。

6のRDエリアのインデクス中に重複キー構造※で格納されているキー数（値の表示については9と同様）を表示します。

注※　キー値の重複数が201以上になったとき，インデクスページ中の該当するキー管理情報を複数ページに格納する場合の構造を意味します。

10のRDエリアのインデクス中の格納行数（値の表示については9と同様）を表示します。

6に対応する行数（値の表示については9と同様）を表示します。

6のRDエリアのインデクス中セグメントに対して，格納位置が変更した回数を表示します。

13のうち，格納順序が不正（逆方向）になった回数を表示します。括弧内は，セグメントの格納順序不正率（（14の値÷13の値）×100%）を表します。

6のRDエリアのインデクス中ページに対して，格納位置が変更した回数を表示します。

15のうち，格納順序が不正（逆方向）になった回数を表示します。括弧内は，ページの格納順序不正率（（16の値÷15の値）×100%）を表します。

正常に解析できたRDエリアの数／表を格納しているRDエリアの数を表示します。

解析した表を格納しているRDエリアの名称と，そのRDエリアを管理するサーバ名を表示します。

18のRDエリアのセグメントサイズ（１セグメント内のページ数）とページ長（バイト）を表示します。

18のRDエリアのインデクス中セグメントに対して，格納位置が変更した回数を表示します。

20のうち，格納順序が不正（逆方向）になった回数を表示します。括弧内は，セグメントの格納順序不正率（（21の値÷20の値）×100%）を表します。

18のRDエリアの表格納ページに対して，格納位置が変更した回数を表示します。

22のうち，格納順序が不正（逆方向）になった回数を表示します。括弧内は，ページの格納順序不正率（（23の値÷22の値）×100%）を表します。

オリジナルRDエリア名を表示します。

該当するRDエリアの世代番号を表示します。

レプリカRDエリアの数を表示します。

注1

6〜17は，クラスタキーが複数のRDエリアに分割格納されている場合，分割数分のRDエリアの情報が表示されます。表示順序はRDエリア名の昇順に出力されます。

注2

18〜23は，該当する表が複数のRDエリアに分割格納されている場合，分割数分のRDエリアの情報が表示されます。表示順序はRDエリア名の昇順に出力されます。

注3

24〜26は，HiRDB Staticizer Option使用時に表示される情報です。世代を指定して解析した場合，指定した世代にレプリカRDエリアがないとRDエリア名に*を表示し，オリジナルRDエリア名，世代番号，及びサーバ名だけを表示します。

表格納用RDエリアと対応するクラスタキーインデクス格納用RDエリアのうち，どちらか片方のレプリカRDエリアがない場合，ある方のレプリカRDエリアについてはRDエリア名，オリジナルRDエリア名，世代番号，及びサーバ名だけを表示します。ない方のレプリカRDエリアについては，RDエリア名に*を表示し，オリジナルRDエリア名，世代番号，及びサーバ名だけを表示して，以降の情報は表示されません。ただし，指定した世代にクラスタキーインデクス格納用RDエリアのレプリカRDエリアがない場合，解析結果は表示されないで警告メッセージが出力されます。

(3)　解析結果の分析

インデクスキーの状態解析及びクラスタリング状態解析の結果と対策を，次の表に示します。

なお，行の削除はクラスタリングデータ状態解析結果の不正率に反映されないので，表に対する操作が削除中心の場合は，次に示す処理を実行して，再編成するかどうか判断する必要があります。

表の状態解析による使用中空きページの検知

格納行数と使用中ページ数による空きエリアの算出

2の場合の不当な空きエリア長を次に示します。

（表の現在の使用中ページ数※１−表の格納ページ数※２）×ページサイズ
　　　　　　　　　　　　　　　　　　　　　　　　　（単位：バイト）

注※1

表単位の状態解析の結果から算出してください。

注※2

マニュアル「HiRDB システム導入・設計ガイド」を参照して，算出してください。

表15‒7　インデクスキーの状態解析及びクラスタリング状態解析の結果と対策

対象

解析結果

意味・対策

クラスタキー

インデクス中の格納キー数に比べて行数が多いです。

キーの重複率が高くなっているので，インデクスを使用した検索性能に影響があります。

インデクス定義の列構成を見直してください。

重複キー構造※１で格納されているキーがあります。

重複度の高いキーがある（又は過去にあった）ので，インデクスを使用した検索性能に影響があります。

インデクス定義の列構成を見直してください（過去にあった場合は，pdrorgでインデクスを再編成すると，重複キー構造はなくなります）。※２

格納順序不正率が高いです。

キーの格納順序が乱れているため，検索性能に影響があります。

pdrorgでインデクスを再編成してください。なお，データページの格納順序も乱れている場合は，表を再編成するとインデクスも再編成されます。

クラスタリングデータページ

格納順序不正率が高いです。

データページの格納順序が乱れているため，クラスタキー順アクセス性能に影響があります。

pdrorgで表を再編成してください。

格納位置変更回数＞表単位の状態解析結果の使用セグメント数，又は格納位置変更回数＞ページ数−1となっています。

注※1

キー値の重複数が201以上になったとき，インデクスページ中の該当するキーの管理情報を，複数ページに格納する場合の構造をいいます。一度重複キー構造になると，重複数が201未満になっても情報管理ページは削除されません。

注※2

インデクス構成列中のデータの重複度の高い列を除いて，クラスタ付きの表を再定義してください。

15.4　再編成時期予測機能の実行結果

15.4.1　実行結果の出力形式

再編成時期予測機能の実行結果は，-eオプション及び-mオプションの指定値によって変わります。オプションと出力情報の関係を次の表に示します。

表15‒8　オプションと出力情報の関係（再編成時期予測機能）

-eオプション

-mオプション

DBメンテナンス予定日の情報

メンテナンス方法の情報

各解析項目別情報

1（予測レベル1）

あり

○

○

−

なし

○

−

−

2（予測レベル2）

×

○

○

○

（凡例）

○：該当する情報を出力します。

−：該当する情報は出力されません。

×：指定できません。

(1)　DBメンテナンス予定日の情報

監視期間内にセグメント使用率が基準値を超えるRDエリアを，DBメンテナンス予定日が早い順に出力します。

 pddbst vv-rr       ***** Rdarea resource forecast *****     yyyy/mm/dd hh:mm:ss
No         Date        RdareaName                       ResKind
---------- ----------- -------------------------------- ----------
         1 2005/05/31  "RDUSER01"                       Segment
         2 2005/06/01  "RDUSER12"                       Segment
         3 2005/06/03  "rd0002"                         Segment
         4 2005/06/04  "lobrdarea701"                   Segment
         5 2005/06/11  "RDUSER02"                       Segment
---------- ----------- -------------------------------- ----------

注

HiRDB/パラレルサーバの場合，DBメンテナンス予定日は，ディクショナリサーバの日時を基に予測しています。

［説明］

No：

解析結果番号です（最大10けた）。

Date：

セグメント使用率が基準値を超えると予測した日（DBメンテナンス予定日）です（YYYY/MM/DDの形式）。

RdareaName：

メンテナンスが必要と予測したRDエリアの名称です（最大32文字）。

ResKind：

基準値を超えると予測した項目です（最大10文字）。

Segment：セグメント使用率

(2)　メンテナンス方法の情報

監視期間内にセグメント使用率が基準値を超えるRDエリアを，DBメンテナンス予定日が早い順に出力します。このとき，メンテナンス方法も出力します。また，予測レベル2の場合は，解析項目別情報でメンテナンス要と判断された表，インデクスのうち，RDエリアのメンテナンスに影響のあるものも出力します。

 pddbst vv-rr       ***** Maintenance Information *****       yyyy/mm/dd hh:mm:ss
No          : 1
Rdarea Name : "RDUSER01"
Method      :
Segment     : 42560
--------------------------------------------------------------------------------------
 Reclaim      Reorganize   Type Name                                        Date
------------- ------------ ---- ------------------------------------------- ----------
      28089 *       9363    T   "k1234567"."table01"                        2005/05/31
          0        12342 *  T   "k1234567"."table02"                        2005/05/31
        851         7235 *  I   "k1234567"."index01"                        2005/05/31
          3          -10    T   "k1234567"."table10"                        2005/05/31
======================================================================================
No          : 2
Rdarea Name : "RDUSER12"
Method      :
Segment     : 32985
--------------------------------------------------------------------------------------
 Reclaim      Reorganize   Type Name                                        Date
------------- ------------ ---- ------------------------------------------- ----------
       3628        23749 *  T   "k1234567"."table01"                        2005/06/01
       1319         5937 *  T   "k1234567"."table03"                        2005/06/01
       1649 *       3628    I   "k1234567"."index01"                        2005/06/01
       2638 *        989    T   "k1234567"."table11"                        2005/06/01
======================================================================================
No          : 3
Rdarea Name : "rd0002"
Method      : Expand
Segment     : 1523
--------------------------------------------------------------------------------------
 Reclaim      Reorganize   Type Name                                        Date
------------- ------------ ---- ------------------------------------------- ----------
        228         1035    T   "k1234567"."table01"                        2005/06/03
          0          121    T   "k1234567"."table03"                        2005/06/03
         30           60    I   "k1234567"."index07"                        2005/06/03
======================================================================================
No          : 4
Rdarea Name : "lobrdarea701"
Method      :
Segment     : 2498
--------------------------------------------------------------------------------------
 Reclaim      Reorganize   Type Name                                        Date
------------- ------------ ---- ------------------------------------------- ----------
          0         2764 *  L   "k1234567"."table701"                       2005/06/04
======================================================================================
No          : 5
Rdarea Name : "RDUSER02"
Method      : Expand
Segment     : 31854
--------------------------------------------------------------------------------------
 Reclaim      Reorganize   Type Name                                        Date
------------- ------------ ---- ------------------------------------------- ----------
       3503        23934    T   "k1234567"."table21"                        2005/06/11
       1592         3503    I   "k1234567"."index22"                        2005/06/11
       2548          955    T   "k1234567"."table23"                        2005/06/11
======================================================================================

注

HiRDB/パラレルサーバの場合，DBメンテナンス予定日は，ディクショナリサーバの日時を基に予測しています。

［説明］

No：

解析結果番号です（最大10けた）。DBメンテナンス予定日の情報のNoと対応しています。

Rdarea Name：

メンテナンスが必要と予測したRDエリアの名称です（最大32文字）。

Method：

RDエリアに対するメンテナンス方法です（最大20文字）。

Expand：

RDエリアの拡張をしてください。

なお，該当RDエリアが次の条件をすべて満たす場合，実際には自動増分できるときでも，メンテナンス方法にExpandと表示されることがあります。

HiRDBファイルシステム領域を自動的に拡張する方式によって，RDエリアの自動増分機能を適用している。

上記HiRDBファイルシステム領域を，キャラクタ型スペシャルファイル上に作成している。

このため，上記に該当するRDエリアについてExpandが表示された場合は，該当するHiRDBファイルシステム領域の容量，及び該当する領域を作成したキャラクタ型スペシャルファイルの容量を確認してください。HiRDBファイルシステムの自動増分に必要な容量がキャラクタ型スペシャルファイルに残っている場合は，RDエリアを拡張する必要はありません。

HiRDBファイルシステム領域の容量については，pdfstatfsで確認してください。

キャラクタ型スペシャルファイルの容量については，次のコマンドで確認してください。

AIX：lslv

Linux：fdisk，lvdisplay

コマンドの詳細については，OSのマニュアルを参照してください。

Extend：

メンテナンスは不要です（HiRDBがRDエリアの自動増分をします）。

Reinit：

RDエリアの再初期化をしてください。

空白：

メンテナンスは不要です。

Segment：

解放セグメント数です（最大10けた）。

予測レベル1の場合

メンテナンスで最低限確保する必要があるセグメント数です。

MethodにExpandが表示されている場合，ここに表示されているセグメント数に更に余裕を持たせた値になるように拡張してください。

予測レベル2の場合

メンテナンスで最低限確保する必要があるセグメント数です。ただし，表又はインデクスのメンテナンスが必要と予測した場合は，必要なメンテナンスの実行結果を考慮した値が表示されます。例えば，MethodにExpandが表示されている場合，RDエリアを拡張する前に，必要なメンテナンスを実行していることを前提にして，最低限確保する必要があるセグメント数が表示されます。

Reclaim：

使用中空きページの解放をした後，使用中空きセグメントの解放を実行したときにできる，解放セグメント数の予測値です（最大13けた）。

表又はインデクスのメンテナンス方法として，使用中空きセグメントの解放が必要と予測した場合，この項目の右側に*を出力します。

Reorganize：

再編成を実行した場合にできる解放セグメント数の予測値です（最大13けた）。

表又はインデクスのメンテナンス方法として，再編成が必要と予測した場合，この項目の右側に*を出力します。

なお，再編成をするとデータの格納ページ数が多くなると予測した場合は，負の値を出力します。

Type：

メンテナンス対象の種別です（1文字）。

T：表

I：インデクス

L：LOB用RDエリア

Name：

メンテナンス対象の表又はインデクス（認可識別子を含む）の名称です（最大65文字）。TypeがLの場合，LOB列を定義している表の名称を出力します。

出力形式は，"認可識別子"."表識別子"又は"認可識別子"."インデクス識別子"となります。なお，ディクショナリ表の場合，認可識別子は"(Data dictionary)"となります。

Date：

DBメンテナンス予定日です（YYYY/MM/DDの形式）。

予測レベル2の場合の補足

予測レベル2（-e 2）の場合，出力情報が次の状態になることがあります。これらは，解析項目別情報の表又はインデクスがメンテナンス要と判断された場合に表示されます。

再編成すると，逆に使用セグメント数が増える資源に対して，再編成要「*」と指示される。

同一RDエリアで，メンテナンス時期が異なる。

RDエリアの拡張と再編成の両方を指示される。

上記の出力例を次に示します。上記の番号は，出力例の[1]〜[3]と対応しています。

 pddbst VV-RR       ***** Maintenance Information *****       yyyy/mm/dd hh:mm:ss
No          : 1
Rdarea Name : "RDUSER01"
Method      :
Segment     : 42560
--------------------------------------------------------------------------------------
 Reclaim      Reorganize   Type Name                                        Date
------------- ------------ ---- ------------------------------------------- ----------
          3           10 *  T   "k1234567"."table10"                    [2] 2005/05/16
      28089 *       9363    T   "k1234567"."table01"                        2005/05/31
          0        12342 *  T   "k1234567"."table02"                        2005/05/31
        851         7535 *  I   "k1234567"."index01"                        2005/05/31
          3      [1] -10 *  T   "k1234567"."table11"                        2005/05/31
          3     [1] -300 *  T   "k1234567"."table12"                        2005/05/31
======================================================================================
No          : 2
Rdarea Name : "rd0002"
Method      : Expand [3]
Segment     : 1523
--------------------------------------------------------------------------------------
 Reclaim      Reorganize   Type Name                                        Date
------------- ------------ ---- ------------------------------------------- ----------
        228     [3] 1035 *  T   "k1234567"."table01"                        2005/06/03
          0      [3] 121 *  T   "k1234567"."table03"                        2005/06/03
         30       [3] 60 *  I   "k1234567"."index07"                        2005/06/03
          3     [3] -300 *  T   "k1234567"."table22"                        2005/06/03
======================================================================================

(3)　解析項目別情報

監視期間内にセグメント使用率が基準値を超えるRDエリア，表，及びインデクスを，DBメンテナンス予定日が早い順に出力します。このとき，メンテナンス方法も出力します。また，メンテナンス方法の情報に出力されたリソースについても，詳細情報を出力します。

 pddbst VV-RR       ***** Analysis Item Data *****       yyyy/mm/dd hh:mm:ss
No        : 1
Date      : 2005/05/25
Method    : Reclaim
Type      : T
Name      : "k1234567"."table01" ("RDUSER01")
StateDate : 2005/05/19 00:10:32
------------------------------------------------------------------------------------
Information                               Value      Method               Date
---------------------------------------- ----------- -------------------- ----------
Empty Page Ratio                          40 ( 50) * Reclaim pages        2005/05/25
Unused Page Ratio (30)                    20 ( 30)
Used Segment for Cluster                  40 ( 50)
Unused Page Differ From PCTFREE (10,10)   50 ( 75)
====================================================================================
No        : 2
Date      : 2005/05/31
Method    :
Type      : R
Name      : "RDUSER01"
StateDate : 2005/05/19 00:10:32
------------------------------------------------------------------------------------
Information                               Value      Method               Date
---------------------------------------- ----------- -------------------- ----------
Used Segment Ratio (0,10)                 40 ( 80)                        2005/05/31
====================================================================================
No        : 3
Date      : 2005/06/01
Method    : Reorganize
Type      : T*
Name      : "k1234567"."table10" ("RDUSER01")
StateDate : 2005/05/19 00:10:32
------------------------------------------------------------------------------------
Information                                Value     Method               Date
---------------------------------------- ----------- -------------------- ----------
Empty Page Ratio                          25 ( 50)   Reclaim pages        2005/08/10
Unused Page Ratio (30)                    25 ( 30) * Reorganize           2005/06/01
Used Segment for Cluster                  40 ( 50)
Unused Page Differ From PCTFREE (10,10)   60 ( 75)
====================================================================================
No        : 4
Date      : 2005/06/03
Method    : Expand
Type      : R
Name      : "rd0002"
StateDate : 2005/05/19 00:10:32
------------------------------------------------------------------------------------
Information                               Value      Method               Date
---------------------------------------- ----------- -------------------- ----------
Used Segment Ratio (0,10)                 78 ( 95)   Expand               2005/06/03
====================================================================================
No        : 5
Date      : 2005/06/04
Method    : Reclaim
Type      : I
Name      : "k1234567"."index07" ("rd0002")
StateDate : 2005/05/19 00:10:32
------------------------------------------------------------------------------------
Information                                Value     Method               Date
---------------------------------------- ----------- -------------------- ----------
Empty Page Ratio                          38 ( 50)   Reclaim              2005/06/04
Unused Page Ratio (30)                    20 ( 30)
Unused Page Differ From PCTFREE (10,10)   70 ( 75)
Delete RowID Ratio                        23 ( 30)   ReclaimPx            2005/06/07
====================================================================================
No        : 6
Date      : 2005/06/04
Method    : Reorganize
Type      : L
Name      : "k77a777"."table707" ("lobrdarea701")
StateDate : 2005/05/19 00:10:32
------------------------------------------------------------------------------------
Information                                Value     Method               Date
---------------------------------------- ----------- -------------------- ----------
Used Segment for LOB Columns (0,10)       70 ( 80) * Reorganize           2005/06/04
====================================================================================
No        : 7
Date      : 2005/06/06
Method    : Expand
Type      : R
Name      : "RDUSER12"
StateDate : 2005/05/19 00:10:32
------------------------------------------------------------------------------------
Information                                Value     Method               Date
---------------------------------------- ----------- -------------------- ----------
Used Segment Ratio (0,10)                 70 ( 80) * Expand               2005/07/01
====================================================================================              :

注

HiRDB/パラレルサーバの場合，DBメンテナンス予定日は，ディクショナリサーバの日時を基に予測しています。

［説明］

No：

解析結果番号です（最大10けた）。DBメンテナンス予定日の情報のNoと対応しています。

Method：

対象種別（Type）に対するメンテナンス方法です（最大14文字）。

ReclaimS：

pdreclaimで使用中空きセグメントの解放をしてください。

ReclaimP：

pdreclaimで使用中空きページの解放をしてください。

Reorganize：

pdrorgで再編成をしてください。再編成を実行した場合，PCTFREEの指定値に従って空き領域を確保するため，使用する領域が増えることがあります。領域が不足する場合は，事前にRDエリアの拡張をしてください。

Expand：

pdmodでRDエリアの拡張をしてください。

なお，該当RDエリアが次の条件をすべて満たす場合，実際には自動増分できるときでも，メンテナンス方法にExpandと表示される場合があります。

HiRDBファイルシステム領域を自動的に拡張する方式によって，RDエリアの自動増分機能を適用している

上記HiRDBファイルシステム領域を，キャラクタ型スペシャルファイル上に作成している。

このため，上記に該当するRDエリアについてExpandが表示された場合は，該当するHiRDBファイルシステム領域の容量，及び該当する領域を作成したキャラクタ型スペシャルファイルの容量を確認してください。HiRDBファイルシステムの自動増分に必要な容量がキャラクタ型スペシャルファイルに残っている場合は，RDエリアを拡張する必要はありません。

HiRDBファイルシステム領域の容量については，pdfstatfsで確認してください。

キャラクタ型スペシャルファイルの容量については，次のコマンドで確認してください。

AIX：lslv

Linux：fdisk，lvdisplay

コマンドの詳細については，OSのマニュアルを参照してください。

Extend：

メンテナンスは不要です（HiRDBがRDエリアの自動増分をします）。ただし，自動増分に必要な領域を確保できない場合は，ユーザがpdmodでRDエリアを拡張する必要があります。

Reinit：

RDエリアの再初期化をしてください。RDエリアに既に16個のHiRDBファイルが割り当てられている場合，RDエリアの拡張はできないため，RDエリアの再初期化をして，HiRDBファイルの容量や個数を変更するなどの対処が必要です。

ReclaimPx：

-xオプションを指定したpdreclaimでインデクスの使用中空きページの解放をしてください。

空白：

メンテナンスは不要です。

Type：

メンテナンス要と判断された対象種別です（2文字）。

T：表

I：インデクス

L：LOB用RDエリア

R：RDエリア

解析項目別情報にだけ出力されていて，メンテナンス方法の情報に出力されていない対象種別には*が付きます（例：T*）。したがって，*が付いている対象種別については，提示されたメンテナンスを実施する必要があります。また，*が付いていない対象種別については，メンテナンス方法の情報に出力されているメンテナンスだけ実施してください。

Name：

メンテナンス対象のRDエリア，表，又はインデクス（認可識別子を含む）の名称です（最大78文字）。

RDエリアの場合：

RDエリアの拡張を指示するとき："RDエリア名"

LOB用RDエリアのとき："認可識別子"."表識別子"("RDエリア名")

表の場合：

非横分割表のとき："認可識別子"."表識別子"

横分割表のとき："認可識別子"."表識別子"("RDエリア名")

インデクスの場合：

非横分割インデクスのとき："認可識別子"."インデクス識別子"

横分割インデクスのとき："認可識別子"."インデクス識別子"("RDエリア名")

StateDate：

分析に使用した解析情報のうち，最新の情報の取得日時です（YYYY/MM/DD hh:mm:ssの形式）。

Information：

解析した項目の項目名と，解析に使用した基準値を出力します。項目名と基準値については，「基準値定義ファイル（再編成時期予測機能）」を参照してください。

Value：

解析値です。解析値は，解析値（基準値）の形式で出力します。基準値については，「基準値定義ファイル（再編成時期予測機能）」を参照してください。

予測の結果，メンテナンスが必要となる解析項目のうち，予測日が最も早い項目には*付きの解析値が表示されます。

Date：

DBメンテナンス予定日です（YYYY/MM/DDの形式）。

15.4.2　CSV形式での出力形式

再編成時期予測機能実行時にpredict文を指定すると，予測結果をCSV形式のファイルに出力できます。

(1)　出力するデータの規則

CSV形式で出力する場合の出力規則については，「コマンド実行結果をDAT形式で出力する場合の規則」を参照してください。

1行分のデータの最後は改行します（改行文字は0x0a）。

先頭の行には，タイトルの行を出力します。

(2)　予測結果の出力項目

CSV形式で出力した場合の再編成時期予測機能の実行結果を次の表に示します。

表15‒9　再編成時期予測機能の実行結果（CSV形式で出力した場合）

タイトル

出力項目

出力形式

最大長

(単位：バイト)

出力情報

DBメンテナンス予定日の情報

メンテナンス方法の情報

解析項目別情報

kind

出力種別

p：DBメンテナンス予定日の情報

m：メンテナンス方法の情報

d：解析項目別情報

文字列

8

○

○

○

No

解析結果番号

数値

10

○

○

○

Date

DBメンテナンス予定日

YYYY/MM/DD

10

○

○

○

Type

対象種別

T：表

I：インデクス

L：LOB用RDエリア

R：データディクショナリ用RDエリア，ユーザ用RDエリア，又はレジストリ用RDエリア

文字列

1

○

○

○

*

メンテナンスが必要と判断したリソースに対して*を出力します。

ユーザは，*が出力されたリソースに対して，メンテナンスをする必要があります。

文字

1

空白

○

空白

AuthID

認可識別子

ディクショナリ表の場合，(Data dictionary)となります。

文字列

30

×

○※

○※

Name

表又はインデクスの名称

文字列

30

×

○※

○※

Rdarea

RDエリア名

文字列

30

○

○

○

Method

メンテナンス方法の番号

0：メンテナンス不要

1：ReclaimS（使用中空きセグメントの解放）

2：ReclaimP（使用中空きページの解放）

3：Reorganize（再編成）

4：Expand（RDエリアの拡張）

5：Extend（RDエリアの自動増分（メンテナンス不要））

6：Reinit（RDエリアの再初期化）

7：ReclaimPx（-xオプションを指定したインデクスの使用中空きページの解放）

メンテナンス方法については，「実行結果の出力形式」を参照してください。

数値

5

×

○

○

NextExec

次回の状態解析結果蓄積機能の実行推奨時期

YYYY/MM/DD

10

×

×

×

StateDate

解析情報取得日時。

分析に使用した解析情報のうち，最新の情報の取得日時となります。

YYYY/MM/DD hh:mm:ss

19

○

×

○

InfoNo

解析項目種別の番号

1：Empty Page Ratio

2：Unused Page Ratio

3：Number of Branch Row

8：Used Segment for LOB Columns

10：Used Segment for Cluster

11：Unused Page Differ From PCTFREE

12：Delete RowID Ratio

13：Used Segment Ratio

数値

5

○

×

○

Value

解析項目種別に対する解析値

数値

5

○

×

○

PredictBase

解析に使用した解析項目種別の基準値

数値

5

○

×

○

Count

蓄積データ数

数値

5

×

×

×

Segment

解放セグメント数

数値

10

×

○

×

Reclaim

使用中空きセグメントの解放での解放セグメント予測数

数値

10

×

○※

×

Reorganize

再編成での解放セグメント予測数

数値

10

×

○※

×

ItemMethod

解析項目ごとのメンテナンス方法の番号

数値

5

×

○

○

CheckNo

チェック用基準値数

数値

5

○

×

○

Check1

解析に使用した解析項目種別のチェック用基準値

数値

5

○

×

○

Check2

解析に使用した解析項目種別のチェック用基準値

数値

5

○

×

○

（凡例）

○：出力します。

×：出力しません。

空白：空白を1文字出力します。

注

出力形式が文字列の場合，引用符（"）で囲んで出力します。なお，最大長に引用符は含まれません。

注※

対象種別がRの場合，出力しません。

(3)　出力例

CSV形式の出力例を次に示します。

(a)　-e 1指定，-mオプション省略時

Kind,No,Date,Type,*,AuthID,Name,Rdarea,Method,NextExec,StateDate,InfoNo,Value,PredictBase,
Count,Segment,Reclaim,Reorganize,ItemMethod,CheckNo,Check1,Check2
"p",1,2005/01/26,"R"," ",,,"RDUSER12",,,2004/12/27 15:58:08,13,50,80,,,,,,2,0,0
"p",1,2005/01/30,"R"," ",,,"rd0002",,,2004/12/27 15:58:08,13,60,80,,,,,,2,0,0
"p",1,2005/01/11,"R"," ",,,"lobrdarea701",,,2004/12/27 15:58:08,13,70,80,,,,,,2,0,0
"p",1,2005/01/15,"R"," ",,,"RDUSER02",,,2004/12/27 15:58:08,13,65,80,,,,,,2,0,0

(b)　-e 1，-mオプション指定時

Kind,No,Date,Type,*,AuthID,Name,Rdarea,Method,NextExec,StateDate,InfoNo,Value,PredictBase,
Count,Segment,Reclaim,Reorganize,ItemMethod,CheckNo,Check1,Check2
"p",1,2005/01/26,"R"," ",,,"RDUSER01",,,2004/12/27 15:58:08,13,50,80,,,,,,2,0,0
"m",1,2005/01/26,"R"," ",,,"RDUSER01",0,,,,,,,2,0,0,0,,,
"m",1,2005/01/26,"I"," ","k1234567","index01","RDUSER01",0,,,,,,,2,0,1,0,,,
"m",1,2005/01/26,"T","*","k1234567","table01","RDUSER01",3,,,,,,,2,0,4,3,,,
           :
"p",1,2005/01/30,"R"," ",,,"RDUSER02",,,2004/12/27 15:58:08,13,50,80,,,,,,2,0,0
"m",1,2005/01/30,"R"," ",,,"RDUSER02",0,,,,,,,0,0,0,0,,,
"m",1,2005/01/30,"T"," ","k1234567","table03","RDUSER02",0,,,,,,,0,0,0,0,,,
           :
"p",1,2005/01/21,"R"," ",,,"RDUSER02",,,2004/12/27 15:58:08,13,50,80,,,,,,2,0,0
"m",1,2005/01/21,"R","*",,,"RDUSER02",4,,,,,,,6,0,0,4,,,
"m",1,2005/01/21,"I"," ","k1234567","index03","RDUSER02",0,,,,,,,6,0,1,0,,,
"m",1,2005/01/21,"T"," ","k1234567","table03","RDUSER02",0,,,,,,,6,0,4,0,,,
           :

(c)　-e 2指定時

Kind,No,Date,Type,*,AuthID,Name,Rdarea,Method,NextExec,StateDate,InfoNo,Value,PredictBase,CheckNo,Check1,Check2
"p",1,2005/05/31,"R",,,,"RDUSER01",,2005/05/28,2005/04/12 17:30:12:42,13,78,80,2,0,10
"m",1,2005/05/31,"T","*","k1234567","table01","RDUSER01",1,,,,,,0,,
"m",1,2005/05/31,"T",,"k1234567","table02","RDUSER01",2,,,,,,0,,
"m",1,2005/05/31,"I","*","k1234567","index01","RDUSER01",2,,,,,,0,,
"m",1,2005/05/31,"T","*","k1234567","table10","RDUSER01",2,,,,,,0,,
"d",1,2005/05/31,"T",,"k1234567","table01","RDUSER01",1,2005/05/28,2005/04/12 17:30:12:42,1,40,50,0,,
"d",1,2005/08/10,"T","*","k1234567","table10","RDUSER01",1,2005/07/31,2005/04/12 17:30:12:42,1,25,50,0,,
"d",1,2005/06/01,"T","*","k1234567","table10","RDUSER01",2,2005/05/29,2005/04/12 17:30:12:42,2,25,30,1,50,
"p",2,2005/06/01,"R",,,,"RDUSER12",,2005/05/29,2005/04/12 17:30:12:42,13,78,80,2,0,10
"m",2,2005/06/01,"T","*","k1234567","table01","RDUSER12",2,,,,,,0,,
"m",2,2005/06/01,"T","*","k1234567","table03","RDUSER12",2,,,,,,0,,
"m",2,2005/06/01,"I","*","k1234567","index01","RDUSER12",1,,,,,,0,,
"m",2,2005/06/01,"T","*","k1234567","table11","RDUSER12",1,,,,,,0,,
"p",3,2005/06/03,"R",,,,"rd0002",,2005/05/30,2005/04/12 17:30:12:42,13,78,80,2,0,10
"m",3,2005/06/03,"R",,,,"rd0002",3,,,,,,0,,
"d",3,2005/06/03,"R",,,,"rd0002",3,2005/05/30,2005/04/12 17:30:12:42,13,78,80,2,0,10
           :

15.5　基準値定義ファイル（再編成時期予測機能）

15.5.1　形式および規則

再編成時期予測機能では，あらかじめ決まっている各項目の基準値を基に予測していますが，この基準値はユーザの環境に合わせて変更できます。基準値定義ファイルには，変更後の各項目の基準値を指定します。

(1)　形式

<threshold>
項目名=基準値
     :
[rdarea=RDエリア名]
項目名=基準値
     :
[table=認可識別子.表識別子]
項目名=基準値
     :
[index=認可識別子.インデクス識別子]
項目名=基準値
     :

(2)　説明

<threshold>

共通項目であることを意味しています。ファイルの先頭行には必ず<threshold>を指定してください。

[rdarea=RDエリア名]

RDエリアごとに基準値を変える場合に指定します。

[table=認可識別子.表識別子]

表ごとに基準値を変える場合に指定します。

指定した認可識別子のすべての表を対象としたい場合は，allを指定してください。ディクショナリ表を指定する場合は，認可識別子を省略します。

[index=認可識別子.インデクス識別子]

インデクスごとに基準値を変える場合に指定します。

指定した認可識別子のすべてのインデクスを対象としたい場合は，allを指定してください。

項目名=基準値

基準値を変更する項目名と基準値を指定します。指定できる項目名については，「(4)基準値を変更できる項目名」を参照してください。

＜規則＞

同じ項目名を複数指定した場合，最後の指定が有効となります。

指定値に*を指定した場合，その項目を再編成時期予測機能の判定項目から除外します。定期的に，PURGE TABLEや初期データロード（既存データを削除してpdload）を行う表の場合，再編成をする必要がありません。そのため，これらの資源を再編成時期予測機能の対象外とするときに，*を指定してください。再編成時期予測機能は，PURGE TABLEなどが定期的に実行されなかった場合を想定して，予測を行っているためです。

(3)　基準値定義ファイル中の指定規則

最初の[rdarea=RDエリア名]，[table=認可識別子.表識別子]，又は[index=認可識別子.インデクス識別子]の前に指定した項目は，共通の指定として扱われます。

<threshold>，[rdarea=RDエリア名]，[table=認可識別子.表識別子]，及び[index=認可識別子.インデクス識別子]に同一項目がある場合，最後の指定が有効となります。

同じ[rdarea=RDエリア名]，[table=認可識別子.表識別子]，又は[index=認可識別子.インデクス識別子]が複数あり，その中に同じ項目名を指定している場合，最後の指定が有効となります。

<threshold>，[rdarea=RDエリア名]，[table=認可識別子.表識別子]，[index=認可識別子.インデクス識別子]，及び項目名=基準値は，それぞれ1行で指定してください。

「項目名」，「=」，「指定値」の間，及び「項目名」の前には，空白及びタブは指定できません。

/*と*/で囲まれた部分は無視されます。また，空行も無視されます。

基準値定義ファイルの内容に誤りがある場合，エラー終了します。

RDエリア名，認可識別子，表識別子，又はインデクス識別子に，英小文字又は空白が含まれる場合は，引用符（''）で囲んでください。英小文字を引用符（''）で囲まないと，すべて大文字として扱われます。

全表共通，及び全インデクス共通（表識別子，インデクス識別子にallを指定）は，指定表共通，指定インデクス共通，及び指定RDエリア共通の前に指定してください。

(4)　基準値を変更できる項目名

基準値を変更できる項目と基準値を変更する目安を次の表に示します。

表15‒10　基準値を変更できる項目

項番

項目名

指定範囲

基準値

内容

変更可否

R

T

I

1

EMPTY_PAGE_RATIO

*，

10〜100

30

総割り当てページ数に対して，pdreclaimで解放できるページ数の比率（単位：％）を指定します。

○

○

○

2

UNDER_PAGE_RATIO

10〜100

10，

又は80-

PCTFREE

項番3の判定に使用するページ使用率（単位：％）を指定します。

○

○

○

3

UNUSED_PAGE_RATIO

*，

10〜100

50

ページ使用率が項番2の指定値以下のページ数と総割り当てページ数の比率（単位：％）を指定します。

○

○

○

4

BRANCH_ROW

*，

10〜100

50

複数ページにわたって格納された行数と総行数の比率（単位：％）を指定します。

○

○

×

5

USED_SEGMENT_LOB

*，

10〜100

80

LOB用RDエリアの最終セグメント番号と総セグメント数の比率（単位：%）を指定します。

○

×

×

6

USED_SEGMENT_RATIO_CLUS

*，

10〜100

50

クラスタリングデータページに割り当てられた全セグメント数に対する，使用率100％のセグメント数の比率（単位：％）を指定します。

○

○

×

7

DIFF_PCTFREE_M

*，

10〜100

10

ページ使用率の下限値を決める値（単位：％）を指定します。

指定する値は，PCTFREEに指定した未使用領域比率を基に算出したページ使用率から，ページ使用率の下限値を引いた値となります。

指定値が（100−PCTFREEに指定した未使用領域比率）より大きい場合，（100−PCTFREEに指定した未使用領域比率）が指定値として仮定されます。

*を指定した場合は，項番8の指定値だけ有効になります。

○

○

○

8

DIFF_PCTFREE_P

*，

10〜100

10

ページ使用率の上限値を決める値（単位：％）を指定します。

指定する値は，ページ使用率の上限値から，PCTFREEに指定した未使用領域比率を基に算出したページ使用率を引いた値となります。

指定値がPCTFREEに指定した未使用領域比率より大きい場合，PCTFREEに指定した未使用領域比率が指定値として仮定されます。

*を指定した場合は，項番7の指定値だけ有効になります。

○

○

○

9

DIFF_PCTFREE_RATIO

*，

10〜100

*

ページ使用率が項番7の下限値以下のページと，項番8の上限値以上のページの数と総割り当てページ数の比率（単位：％）を指定します。省略した場合は，この項目についての解析はしません。

○

○

○

10

DELETE_ROWID_RATIO

*，

1〜100

30

インデクスが管理する行の総数の中で，残存エントリが管理する削除行数の比率（単位：%）を指定します。

○

×

○

11

USED_SEGMENT

*，

10〜100

80

RDエリア全体の使用セグメント数と総セグメント数の比率（単位：%）を指定します。

○

×

×

12

EXTEND_COUNT_MIN

0〜24

0

RDエリアの自動増分で増分できる最低限の増加回数を指定します。EXTEND_COUNT_MIN≦EXTEND_COUNTになるようにしてください。

○

×

×

13

EXTEND_COUNT

0〜24

0

RDエリアの自動増分で増分できる増分回数を指定します。EXTEND_COUNT_MIN≦EXTEND_COUNTになるようにしてください。自動増分した結果，HiRDBファイルシステム領域が満杯になるかどうかは，pddbstではチェックできません。そのため，EXTEND_COUNTの指定値は，HiRDBファイルシステム領域中のRDエリア数と最大増分回数を考慮し，決める必要があります。

○

×

×

（凡例）

R：RDエリア

T：表

I：インデクス

○：該当する項目名の基準値を変更できます。

×：該当する項目名の基準値を変更できません。

表15‒11　基準値を変更する目安

項番

項目名

基準値

メンテナンス要否の判定方法

基準値を変更する目安

1

EMPTY_PAGE_RATIO

(p)=30％

ページ使用率0％の使用中ページの割合が(p)％以上になると，空きページの解放が必要と判断します。

RDエリアの空き容量が少ない場合で，無効なページを少しでも早く解放したいときは，(p)を小さくしてください。

2

UNDER_PAGE_RATIO

(a)=X-20％

ページ使用率が(a)％以下の使用ページ数の割合が，全使用中ページの(p)％以上になると，再編成が必要と判断します。

ページサイズに対して格納行長が極端に短い場合で，再編成した直後でもページ使用率が(a)％に満たない表のときは，(a)の値を小さくしてください。

無効領域があるページの割合をできるだけ小さくしたい場合，(p)の値を小さくしてください。

NO SPLIT指定のない定義長256バイト以上の可変長文字列がある表の場合で，再編成した直後でもページ使用率が(a)％以下のページが50％以上あるとき（分岐した可変長文字列データの方が，分岐しないデータよりも多い状態），(p)を大きくしてください。

RDエリアの空き容量が少ない場合で，無効領域があるページを少しでも早く解放したいときは，(p)を小さくしてください。

3

UNUSED_PAGE_RATIO

(p)=50％

4

BRANCH_ROW

(p)=50％

総行数に対する，分岐行の行数の割合が(p)％以上になると，再編成が必要と判断します。

データ長が長くなるUPDATE処理が多い場合で，検索性能の維持が必要なときは，(p)の値を小さくしてください。

5

USED_SEGMENT_LOB

(p)=80％

LOB用RDエリアの最終セグメント番号が，総セグメント数の(p)％以上となった場合，再編成して(p)％以上になるときはRDエリアの拡張が必要と判断します。また，再編成して(p)％未満となる場合は，再編成が必要と判断します。

急激に格納データ量が増加する可能性がある場合で，早めに対処する必要があるときは，(p)を小さくしてください。

6

USED_SEGMENT_RATIO_CLUS

(p)=50％

セグメント内の使用ページ率が100％のセグメント（空きページがないセグメント）数が，総使用セグメント数の割合(p)％以上になると，未使用領域比率による空きではなく，未使用ページ比率による空きの消費が始まっているので，再編成が必要と判断します。

同一ページ内にデータが格納できる間はクラスタリング効果が保たれているが，同一セグメントに格納する状態が既にクラスタリングの効果がなくなっていると判断できる場合，(p)を小さくしてください。

7

DIFF_PCTFREE_M

(a)=X-10％

ページ使用率が(a)％〜(b)％の範囲外にある使用ページ数の割合が，総使用ページ数の(p)％以上になると，再編成が必要と判断します。

ページ使用率が高い状態であっても再編成を必要と判断したい場合（行長が長くなるUPDATEが頻発する表や，クラスタキーを定義した表への中間キーを持つデータのINSERTが頻発する表）には，(p)を指定してください。なお，重複キーを多量に持つインデクスの場合，重複キーを格納するページはPCTFREEを無視して格納されるため，(p)を指定する場合は大きめの値にしてください。

8

DIFF_PCTFREE_P

(b)=X+10％

9

DIFF_PCTFREE_RATIO

(p)=*

10

DELETE_ROWID_RATIO

(p)=30％

インデクスが管理する行の総数の中で，残存エントリが管理する削除行数の比率が(p)％以上となった場合，再編成が必要と判断します。

インデクスの残存エントリによるオーバヘッドを削減したい場合，及び残存エントリによって発生した空き領域を少しでも早く解放したい場合は，(p)の値を小さくしてください。

削除したキー値と同一のキー値をすぐに格納する場合は，インデクスの残存エントリが再利用されますので，(p)の値を大きくしてください。

11

USED_SEGMENT

(p)=80％

RDエリアの使用セグメント数が総セグメント数の(p)％以上となった場合，再編成が必要と判断します。

再編成後でも(p)％以上となる場合は，拡張が必要と判断しますが，自動増分指定があるRDエリアでは(a)回まで自動増分ができると判断し，拡張の指示はしません。

RDエリアの拡張が指示された場合に，早めに容量不足を検知できるようにしたいときは，(p)の値を小さくしてください（例えば，予備のディスクがない場合に容量不足が発生したとき，ディスクの手配から開始しないといけないケースなど）。

急激に格納データ量が増加する可能性がある場合に，早めに対処したいときは，(p)を小さくしてください。

12

EXTEND_COUNT_MIN

(a)=23回

13

EXTEND_COUNT

（凡例）

X：100−PCTFREEの第1引数の指定値

(5)　基準値定義ファイルの指定例

基準値定義ファイルの指定例を次に示します。

<threshold>  ..................................共通指定
USED_SEGMENT=70
USED_SEGMENT_LOB=65
  :
[table=all]  ..................................全表共通指定
EMPTY_PAGE_RATIO=30
USED_SEGMENT=20
  :
[index=all]  ..................................全インデクス共通指定
EMPTY_PAGE_RATIO=20
USED_SEGMENT=20
  :
[table=認可識別子.表名称]  ....................指定表共通指定
EMPTY_PAGE_RATIO=35
USED_SEGMENT=30
  :
[index=認可識別子.インデクス名称]  ............指定インデクス共通指定
EMPTY_PAGE_RATIO=80
USED_PAGE_RATIO=60
  :
[rdarea=ＲＤエリア名称]  ......................RDエリア個別指定
EXTEND_COUNT=10
  :
[table=認可識別子.表名称]  ....................RDエリア内の表個別指定
EMPTY_PAGE_RATIO=35
USED_SEGMENT=30
  :
[index=認可識別子.インデクス名称]  ............RDエリア内のインデクス個別指定
EMPTY_PAGE_RATIO=80
USED_PAGE_RATIO=60
  :

15.6　予測レベル2での状態解析結果蓄積機能の実行方法

予測レベル1の状態解析結果蓄積機能では，RDエリア単位の情報だけ取得するため，ディレクトリページだけ解析します。そのため，実行時間は比較的短時間で済みます。

予測レベル2の状態解析結果蓄積機能では，更に表単位，及びインデクス単位の情報も取得するため，データページ，及びインデクスページの解析も必要となります。そのため，予測レベル1に比べて実行時間が長くなります。

オンライン業務中に，予測レベル2の状態解析結果蓄積機能を実行する場合，業務APへ影響を与える可能性もあります。オンライン中の業務APへの影響を最小限にしたい場合は，次のどちらかの実行方法を選択できます（二つ同時にも指定できます）。

インターバル解析

マージ解析

これらの実行方法と選択基準を次に説明します。

15.6.1　インターバル解析

インターバル解析は，1回の状態解析結果蓄積機能の実行中に，休止時間を設ける実行方法です。指定したデータ量の解析を行った後，指定した時間だけ解析を休止します。指定した休止時間が過ぎたら，再度データ量の解析を行い，これを繰り返します。一定間隔で解析処理を休止させるため，オンライン業務への影響を少なくできます。

インターバル解析を実行する場合は，-wオプションで「解析するデータ量（単位：セグメント数）」と「休止時間（単位：ミリ秒）」を指定します。

インターバル解析の実行の概要を次の図に示します。

図15‒13　インターバル解析の実行の概要

15.6.2　マージ解析

マージ解析は，複数回（数日）に分けて状態解析結果蓄積機能を実行する方法です（状態解析結果は複数回分マージして蓄積します）。例えば，オンライン業務が比較的空いている時間帯がある場合，数日に分けて実行すると効果的です。

マージ解析を実行する場合は，-nオプションに実行する回数を指定します。

マージ解析の実行の概要を次の図に示します。なお，この図では，1RDエリア（10セグメント）を解析対象としていることを想定しています。

図15‒14　マージ解析の実行の概要

15.6.3　選択基準

どのように実行するかは，業務特性によって変わります。実行方法の選択基準を次の図に示します。

図15‒15　実行方法の選択基準

〔説明〕

インターバル解析，及びマージ解析を使用する場合のコマンド実行例を次に示します。

pddbst -r ALL -e 2 -w 100,100 -n 5

〔説明〕

オンライン業務への影響を少なくするために，100セグメントのデータを解析したら，処理を100ミリ秒休止します。これを繰り返しながら実行します。さらに，5日間に分けて実行することで，1日当たりの実行時間を短縮する運用です。1日に1回，上記コマンドを実行し，それを5日間行います。

インターバル解析を使用する場合のコマンド実行例を次に示します。

pddbst -r ALL -e 2 -w 100,100

〔説明〕

オンライン業務への影響を少なくするために，100セグメントのデータを解析したら，処理を100ミリ秒休止します。これを繰り返しながら実行します。

マージ解析を使用する場合のコマンド実行例を次に示します。

pddbst -r ALL -e 2 -n 5

〔説明〕

pddbstの実行を5日間に分けることで，1日当たりの実行時間を短縮する運用です。1日に1回，上記コマンドを実行し，それを5日間行います。

通常時のコマンド実行例（インターバル解析，及びマージ解析を使用しないコマンド実行例）を次に示します。

pddbst -r ALL -e 2

〔説明〕

通常時の実行方法で，1回のpddbstの実行で処理が完了します。

15.7　規則及び注意事項

15.7.1　規則

pddbstは，HiRDBが稼働中のときだけ実行できます。

pddbstは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pddbstの最大同時実行数は，システム定義のpd_utl_exec_modeオペランドの指定値によって異なります。

pd_utl_exec_mode=0の場合：

最大同時実行数は16です。

pd_utl_exec_mode=1の場合：

最大同時実行数はpd_max_usersオペランドの指定値です。

解析対象となるRDエリア（データディクショナリ用RDエリア，データディクショナリLOB用RDエリア，レジストリ用RDエリア，及びレジストリLOB用RDエリア）は，次のどれかの状態でなければなりません。

閉塞なしオープン状態

参照可能閉塞オープン状態

ユーザ用RDエリア（RDエリアの論理的解析の場合は一時表用RDエリアを除きます），及びユーザLOB用RDエリアについては，「コマンド実行時のRDエリアの状態」を参照してください。

pddbstを実行する場合，LANG環境変数を設定してください。また，pddbstの実行環境で，OSがサポートしていない文字コードを使用する場合，PDLANG環境変数を設定する必要があります。LANG，及びPDLANGについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

15.7.2　注意事項

pddbstのリターンコードを次に示します。

0：正常終了

4：警告終了（指定不正又は解析処理スキップ）

8：異常終了

pddbstを実行する場合，排他制御の最小単位は表（意図共用モード：SR）であり，インデクスや行に対して排他は掛かりません。そのため，pddbstの実行中に表やインデクスの更新があった場合，更新トランザクションが決着しない状態でpddbstを実行するので，更新トランザクションがロールバックしたとき，実際のデータベースの状態と解析結果が異なることがあります。

pdrorgの再編成処理が異常終了した表を，論理的解析（-k logi指定）又は表単位解析（-t指定）で解析すると，StatusにはDATA_UNFINISHが表示されます。

再編成時期予測機能を実行する場合，シングルサーバ定義，又はディクショナリサーバ定義に指定するpd_lck_pool_sizeオペランドには，デフォルト値未満の値は指定しないでください。次の計算式から求まる値以上を指定してください。

pd_lck_pool_sizeオペランドの値=↑y÷x↑（単位：キロバイト）

x：32ビットモードの場合は6，64ビットモードの場合は4

y：pddbstが消費する排他資源数

y=MAX（a，b，c）

a：定義したRDエリア数×30

b：定義した表数＋定義した抽象データ型数＋抽象データ型列の総数※＋61

c：定義したインデクス数＋124

注※

同じ抽象データ型でも，表や列が異なる場合はカウントします。

15.7.3　BOMを持つファイルの使用

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pddbstの入力ファイルには，BOMを持つファイルを使用できることがあります。pddbstでのBOMを持つファイルの使用可否を次の表に示します。なお，pddbstの入力ファイルとしてBOMを持つファイルを使用しても，BOMは読み飛ばされます。また，pddbstで出力されるファイルには，BOMは付きません。

表15‒12　pddbstでのBOMを持つファイルの使用可否（UTF-8の場合）

オプション

入力ファイル

BOMを持つファイルの使用

-c

基準値定義ファイル

○

-v

制御文ファイル

○

（凡例）

○：使用できます。

15.7.4　コミットしていない削除データに排他を掛ける場合の注意事項

残存エントリが残ったままでpd_lock_uncommited_delete_dataオペランドの指定をwaitからnowaitに変更してpddbstを実行すると，正しい状態解析ができません。pd_lock_uncommited_delete_dataオペランドの指定をnowaitに変更する場合，次のどちらかの方法で残存エントリがない状態にしてから変更する必要があります。

ページコンパクション（-xオプション）指定ありの空きページ解放（pdreclaim）

インデクスの再編成（-k ixorオプション指定ありのpdrorg）

15.8　使用例

pddbstの使用例を次に示します。

15.8.1　DB状態解析機能

例

表単位の状態解析をします。解析するのは表ZAIKOです。
なお，表ZAIKOはpddefの使用例で定義してあるものとします。

［コマンド実行例］

 pddbst -t ZAIKO

15.8.2　状態解析結果蓄積機能

例

RDエリア名「RD001」の状態解析結果蓄積機能を次の条件で実行します。
・予測レベル2
・マージ解析（3回）

［コマンド実行例］

 pddbst -r RD001 -e 2 -n 3

注

上記のコマンドを3回に分けて実行します。

15.8.3　再編成時期予測機能

例

(2)で蓄積した解析情報を基に，再編成時期予測機能を予測レベル2で実行します。

［コマンド実行例］

 pddbst -k pred -e 2

16　最適化情報収集ユティリティ（pdgetcst）

この章では，コストベースの最適化のための最適化情報を取得してディクショナリ表へ登録する最適化情報収集ユティリティ（pdgetcst）について説明します。

なお，IVS対応UTF-8文字コードを使用する場合は，この章の記載を次のように読み替えてください。

utf-8 -> utf-8_ivs

16.1　概要

実行者　対象となる表に対してSELECT権限を持っているユーザが実行できます

最適化情報収集ユティリティは，コストベースの最適化のための最適化情報を取得し，ディクショナリ表へ登録するユティリティです。また，ディクショナリ表へ登録した最適化情報は削除できます。最適化情報収集ユティリティの機能を次に示します。

検索による最適化情報の収集

最適化情報パラメタファイルによる最適化情報の登録

最適化情報パラメタファイルへの最適化情報の退避

最適化情報収集ユティリティを実行する場合の条件：

最適化情報収集ユティリティは，次の条件をすべて満たす場合に実行してください。

コストベース最適化モードが2である※1

更新系業務を行わない※2

結合検索などの複雑な検索が多い

本番環境と同一データのテスト環境がある※3

注※1

コストベース最適化モードが2でなくても，最適化情報収集レベルがlvl2であれば適用できます。

注※2

更新系業務を行っていても，最適化情報収集レベルがlvl1で，かつ表の行数が変化しない更新であれば適用できます。

注※3

本番環境と同一データのテスト環境がなくても，最適化情報パラメタファイルによる最適化情報の登録を行えば適用できます。

16.1.1　検索による最適化情報の収集

現在のデータベースの状態を考慮してアクセスパスを決定する最適化のことをコストベースの最適化といいます。このコストベースの最適化によって，HiRDBは最も効率的なアクセスパスを決定するので，ユーザはSQLの最適化を意識しないでUAPを作成できます。最適化情報については，マニュアル「HiRDB システム運用ガイド」の「最適化情報の運用」を参照してください。

最適化情報収集ユティリティは，実行条件を満たす場合に実行してください。実行条件については，「概要」を参照してください。

最適化情報収集ユティリティ（pdgetcst）の概要（検索による最適化情報の収集）を次の図に示します。

図16‒1　最適化情報収集ユティリティ（pdgetcst）の概要（検索による最適化情報の収集）

16.1.2　最適化情報パラメタファイルによる最適化情報の登録

現在のデータベースの状態から最適化情報を収集しないで，最適化情報パラメタファイルに任意に設定した最適化情報を，ディクショナリ表へ登録します。また，最適化情報の退避で保存しておいた最適化情報パラメタファイルを登録することもできます。最適化情報収集ユティリティ（pdgetcst）の概要（最適化情報パラメタファイルによる最適化情報の登録）を次の図に示します。

図16‒2　最適化情報収集ユティリティ（pdgetcst）の概要（最適化情報パラメタファイルによる最適化情報の登録）

16.1.3　最適化情報パラメタファイルへの最適化情報の退避

ディクショナリ表へ登録された最適化情報を，最適化情報パラメタファイルへ退避します。ディクショナリ表に最適化情報が登録されていない場合は，退避できません。

最適化情報収集ユティリティ（pdgetcst）の概要（最適化情報パラメタファイルへの最適化情報の退避）を次の図に示します。

図16‒3　最適化情報収集ユティリティ（pdgetcst）の概要（最適化情報パラメタファイルへの最適化情報の退避）

最適化情報を出力したファイルは，最適化情報パラメタファイルとしてディクショナリ表へ登録できます。

16.1.4　ユティリティの最大同時実行数

最適化情報収集ユティリティ（pdgetcst）の最大同時実行数は，システム共通定義のpd_utl_exec_modeオペランドの指定値によって異なります。

pd_utl_exec_mode=0の場合

最大同時実行数は16です。

pd_utl_exec_mode=1の場合

最大同時実行数はpd_max_usersオペランドの指定値÷２です。

16.2　コマンドの形式

16.2.1　形式

検索による最適化情報の収集

　pdgetcst 〔-u 認可識別子〕〔-a 認可識別子〕〔-p パスワード〕

　　　　　　　-t ｛表識別子｜ALL｝

　　　　　　　〔-c ｛lvl1｜lvl2｝〕

　　　　　　　〔-l 出力結果ファイル名〕

　　　　　　　〔-q 世代番号〕

　　　　　　　〔-W 実行監視時間〕

最適化情報の削除

　pdgetcst -d -t ｛表識別子｜ALL｝

　　　　　　　〔-u 認可識別子〕〔-a 認可識別子〕〔-p パスワード〕

　　　　　　　〔-l 出力結果ファイル名〕

　　　　　　　〔-W 実行監視時間〕

最適化情報パラメタファイルによる最適化情報の登録

　pdgetcst 〔-u 認可識別子〕〔-a 認可識別子〕〔-p パスワード〕

　　　　　　　-t 表識別子 -s 最適化情報パラメタファイル名

　　　　　　　〔-l 出力結果ファイル名〕

　　　　　　　〔-v 空白変換レベル〕

　　　　　　　〔-W 実行監視時間〕

最適化情報パラメタファイルへの最適化情報の退避

　pdgetcst -e 最適化情報パラメタファイル名 -t 表識別子

　　　　　　　〔-u 認可識別子〕〔-a 認可識別子〕〔-p パスワード〕

　　　　　　　〔-W 実行監視時間〕

-c，-d，-s，又は-eオプションを指定したときの他オプションの指定可否を次の表に示します。なお，次の場合はKFPN00100-Eメッセージを出力して，エラーとなります。

同じオプションを重複して指定した場合

同時に指定できないオプションの指定値を指定した場合

表16‒1　-c，-d，-s，又は-eオプションを指定したときの他オプションの指定可否

オプション

-cオプション

-dオプション

-sオプション

-eオプション

lvl1

lvl2

-u 認可識別子

○

○

○

○

○

-a 認可識別子

○

○

○

○

○

-p パスワード

○

○

○

○

○

-t

表識別子

◎

◎

◎

◎

◎

ALL

×

×

×

-d

×

×

×

×

×

-c

lvl1

×

×

×

×

×

lvl2

×

×

×

×

×

-s 最適化パラメタファイル名

×

×

×

×

×

-l 出力結果ファイル名

○

○

○

○

−

-q 世代番号

○

○

−

−

−

-v 空白変換レベル

×

×

×

○

×

-e 最適化情報パラメタファイル名

×

×

×

×

×

-W 実行監視時間

○

○

○

○

○

（凡例）

◎：必ず指定してください。

○：任意に指定できます。

×：指定できません。

−：指定できますが，無視されます。

-c，-d，-s，及び-eオプションをすべて省略した場合は，-cオプションのlvl2を指定したとみなして，コマンドを実行します。

16.2.2　オプション

-u 認可識別子

HiRDBに接続する際に使用する認可識別子を指定します。省略した場合は，環境変数PDUSERに設定された値が仮定されます。PDUSERに値が設定されていない場合，ユティリティを実行するユーザのOS上のユーザIDに対応するユーザ名が仮定されます。

認可識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

-a 認可識別子

最適化情報の取得対象となる表の所有者の認可識別子を指定します。

省略した場合，-uオプションで与えられた認可識別子が仮定されます。

認可識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

-p パスワード

-uオプションで指定した認可識別子に対応するパスワードを指定します。

-uオプションが指定されていて，-pオプションを省略した場合，ユーザに対して入力を要求し，入力された値を用います。パスワードが不要な場合は，空送信を押してください。

-uオプションが省略されていて，-pオプションも省略した場合，環境変数PDUSERに設定された値が仮定されます。PDUSERに値が設定されていない場合，ユーザに対し入力を要求し，入力された値を用います。パスワードが不要な場合は，空送信を押してください。

シェルで＆を付けてバックグラウンドで実行する場合など，パスワードを応答できない環境で実行するとき，パスワードの入力が要求される条件では実行しないでください。パスワードの入力が要求される条件とは次のどちらかです。

-uオプション指定あり，かつ-pオプション指定なし

-uオプション指定なし，-pオプション指定なし，かつ環境変数PDUSERにパスワードの設定なし

パスワードを引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

-t ｛表識別子｜ALL｝

表識別子

最適化情報の取得対象となる表の識別子を指定します。

ディクショナリ表，ビュー表，及び一時表は指定できません。指定して実行すると，pdgetcstはKFPN00202-Eメッセージを出力してエラー終了します。

表識別子を引用符（''）で囲んだ場合は，英大文字と英小文字が区別されます。引用符（''）で囲まない場合は，すべて英大文字として扱われます。また，表識別子に空白が含まれる場合は，引用符（''）で囲んでください。なお，sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

ALL

スキーマ内のすべての表を対象とする場合に指定します。ただし，ディクショナリ表，ビュー表，及び一時表の場合，pdgetcstは処理をスキップします。

-d

-tオプションで指定した表に関する最適化情報，及び表中に定義したインデクスに関する最適化情報を削除する場合に指定します。

-c ｛lvl1｜lvl2｝

最適化情報収集レベルを指定します。

最適化情報収集レベルについては，「最適化情報収集レベル」を参照してください。

lvl1：表の行数，及び統計情報キャッシュサイズを取得します。

lvl2：表のすべての最適化情報を取得します。

-s 最適化情報パラメタファイル名　〜＜パス名＞

最適化情報を設定してある最適化情報パラメタファイルの名称を，絶対パス名で指定します。このオプションを指定した場合，現在のデータベース状態からの最適化情報は収集しないで，最適化情報パラメタファイルの最適化情報をディクショナリ表へ登録します。このオプションを指定した場合，-dオプションは指定できません。

-l 出力結果ファイル名　〜＜パス名＞

最適化情報収集ユティリティの実行結果を出力するファイルの名称を絶対パス名で指定します。省略した場合，実行結果は出力されません。

-t ALL指定のpdgetcstがエラーとなった場合，このオプションを指定しているときは，エラーとなった表を特定できます。

-q 世代番号　〜＜符号なし整数＞((0〜10))

レプリカRDエリアがあるRDエリアを最適化情報収集の対象とする場合，対象とするRDエリアがある世代を指定します。

このオプションを省略した場合，カレントRDエリアが対象となります。また，指定した世代にレプリカRDエリアがない場合も，そのRDエリアのカレントRDエリアが対象となります。

インナレプリカ機能を使用していない場合にこのオプションを指定すると，エラーになります。また，このオプションを指定した場合，指定した世代の表格納用RDエリアに対応するインデクス格納用RDエリア，及びLOB列格納用RDエリアのレプリカRDエリアがないとエラーになります。

-v 空白変換レベル

列の最小値，列の最大値，及び区間内の列の最大値に指定した値の中の空白について，空白変換するかどうかを指定します。

このオプションを省略した場合，システム共通定義のpd_space_levelオペランドの指定値に従って空白変換します。

空白変換レベルには，次の0，1，又は3のどれかの値を指定します。

0：

空白変換をしません。

1，又は3：

空白変換をします。1と3のどちらを指定しても意味は同じです。

空白変換をする場合，登録する表の列が各国文字列型，又は混在文字列型のとき，対応する最適化パラメタファイルの値の中の空白を，次のように変換します。

各国文字列型の列の場合

連続する半角空白2バイトを，全角空白1文字に変換します。ただし，先頭から２バイト単位で変換します。

混在文字列型の列の場合

全角空白1文字を，半角空白2バイトに変換します。

文字コードがutf-8の場合，全角空白1文字（3バイト）を半角空白2バイトに変換します。MCHARの場合は，データ長が短くなった分，定義長まで後ろから半角空白が埋められます。MVARCHARの場合は，データ長が短くなったままとなります。

-e 最適化情報パラメタファイル名　〜＜パス名＞

最適化情報を退避する場合，最適化情報を出力するファイル名を絶対パスで指定します。

＜規則＞

ディクショナリ表に最適化情報が登録されていない場合は，最適化情報を退避できません。

-eオプションで指定した名称のファイルが既に存在する場合，KFPN00015-Iメッセージを出力して，既存のファイルに最適化情報を上書きします。

ディクショナリ表に最適化情報が登録されていない状態で，かつ-eオプションで指定した名称のファイルが既に存在する場合は，既存のファイルを削除し，-eオプションで指定した名称のファイルも作成しません。この場合にも，KFPN00015-Iメッセージを出力します。

-eオプションで退避した最適化情報パラメタファイルは，表定義が同じ場合に限り，ディクショナリ表へ再登録できます。表定義が異なる場合は，再登録できないことがあります。詳細については，マニュアル「HiRDB システム運用ガイド」の「表及びインデクスの定義変更をした場合の最適化情報パラメタファイルの使用可否」を参照してください。

-W 実行監視時間　〜＜符号なし整数＞((0〜3600))

最適化情報収集ユティリティの実行時間を監視する場合に，その監視時間を分単位で指定します。

このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

オプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

16.3　最適化情報

16.3.1　取得の有無

インデクス構成列及びインデクスに関する最適化情報の場合，条件によっては最適化情報を取得しないことがあります。最適化情報を取得しないと，最適化情報パラメタファイルで最適化情報を登録できません。最適化情報を取得しない条件を次に示します。

インデクス構成列に関する最適化情報を取得しない条件

列構成がインデクス構成列※で，データ型が抽象データ型

列構成がインデクス構成列※で，データ型が抽象データ型以外で，繰返し列がある

列構成がインデクス構成列ではない

注※

複数列インデクスのときは第1構成列になります。

インデクスに関する最適化情報を取得しない条件

B-treeインデクスで，インデクスの第1構成列が繰返し列

部分構造インデクス※

プラグインインデクス※

注※

最適化情報パラメタファイルで最適化情報を登録しようとすると，KFPN00201-Eメッセージを出力してエラー終了します。

16.3.2　取得する最適化情報

最適化情報収集ユティリティが取得する最適化情報，又は最適化情報パラメタファイルによって登録する最適化情報を次の表に示します。

表16‒2　最適化情報収集ユティリティが取得する最適化情報，又は最適化情報パラメタファイルによって登録する最適化情報

項番

取得項目

分類

内容

最適化の精度が向上するSQL

登録した最適化情報がデータベースの状態と一致しなくなる処理

項目名※1

1

行数

T

対象表のすべての行数

結合を含むSQL

対象表の行数が変わる更新系SQL

NROWS

2

データページ数

T

対象表の行データ格納ページ数の合計

検索条件にインデクス構成列を含むSQL

更新系SQL

NPAGES

3

インデクスキーのユニーク値の数

I

ナル値。ただし，最適化情報パラメタファイルを指定して登録する場合は，指定値を登録します。

NENTRY

4

インデクスページ数

I

インデクス格納使用ページ数の合計

NIPAGES

5

インデクス段数

I

各シングルサーバ内又は各バックエンドサーバ内のインデクス段数の最大値

NLEVEL

6

シーケンシャル度

I

インデクスキー値の順番で行データが格納されている割合

SEQ_RATIO

7

ナル値数

C

列中のナル値の数

検索条件に単一列インデクスの構成列，又は複数列インデクスの第1構成列を含むSQL

NNULLS

8

最大重複列値数

C

一つの列値に対する重複数の最大値

N_MAX_DUP_KEY

9

最小重複列値数

C

一つの列値に対する重複数の最小値

N_MIN_DUP_KEY

10

列値の分布情報

C

列値の分布情報※2

MAX_VALUE，MIN_VALUE，SECTION_COUNT，SEC_TOTAL_COUNT，SEC_UNIQUE，SEC_MAX_VALUE

11

列ユニーク値数

C

列のユニーク値数

NUNIQUE

12

統計情報キャッシュサイズ

T

HiRDBシステムが利用する作業用の領域

−

−

−

（凡例）

T：

表に関する情報であることを示します。

I：

インデクスに関する情報であることを示します。

C：

列に関する情報であることを示します。

検索による最適化情報の収集の場合

インデクス構成列に関する情報です。インデクスが定義されている場合に収集されます。ただし，複数列インデクスの場合は，第1構成列の情報だけを収集します。

最適化情報パラメタファイルによる最適化情報の登録の場合

最適化情報パラメタファイルで指定した列に関する情報です。

−：

該当しません。

注※1

最適化情報パラメタファイルに記述する項目名のことです。最適化情報パラメタファイルに記述する項目名については，「最適化情報パラメタファイルの項目」を参照してください。

注※2

列が文字データ，各国文字データ，及び混在文字データの場合は，引用符（"）で囲んで表示します。ただし，データに制御文字が含まれている場合，及び列に文字集合が指定されている場合は，引用符（"）を表示しません。また，バイナリデータの場合は16進表記で表示します。

列のデータ型がCHAR，NCHAR，及びMCHARの場合は先頭16バイトを，VARCHAR，NVARCHAR，及びMVARCHARの場合は先頭14バイトを，BINARYの場合は先頭12バイトを表示します。ただし，マルチバイト文字がMCHARで16バイト以上，MVARCHARで14バイト以上の場合は，そのマルチバイト文字を表示します。

なお，16進表記は，x'****'，又はX'****'の形式とします。****の部分は，16進文字列（0〜9，a〜f，及びA〜F）を2文字単位に記述します。

インデクス構成列のキー値の分布情報として取得又は登録する情報を次の表に示します。

表16‒3　インデクス構成列のキー値の分布情報として取得又は登録する情報

項番

取得項目

内容

1

ナル値数

列中のナル値の数

2

表の行数

対象表のすべての行数

3

列のデータ長

列のデータ長

4

列のデータ型

列のデータ型

5

区間数

（表の行数−列のデータがナル値の行数）の数を，最大100区間に分割した場合の区間数

行数が100未満の場合は行数を設定

項番8〜10の情報を区間数分取得

6

列値の最大値

列の値の最大値※

7

列値の最小値

列の値の最小値※

8

区間の累積度数

第1区間から該当する区間までの要素数の合計

9

区間内のユニーク値の数

該当する区間内の列値のユニーク数

10

区間内の列値の最大値

該当する区間内の列値の最大値※

注※

表の格納データが0件，又はすべてナル値の場合

次の表の初期値が取得，又は登録されます。

表の格納データにナル値以外のデータがある場合

次の表の格納内容が取得，又は登録されます。

項番

列のデータ型

初期値

格納内容

1

INT〔EGER〕

0

表データ※，又は初期値

2

SMALLINT

0

3

〔LARGE〕 DEC〔IMAL〕

+0

4

FLOAT，又はDOUBLE PRECISION

0

5

SMALLFLT，又はREAL

0

6

CHAR〔ACTER〕

定義長が16バイト以下の場合

0が定義長バイト分取得，又は登録されます。

定義長が17バイト以上の場合

0が16バイト分取得，又は登録されます。

定義長が16バイト以下の場合

表データ※，又は初期値

定義長が17バイト以上の場合

表データ※の先頭16バイト，又は初期値

7

VARCHAR

長さ0の文字列

文字列長，又はデータ長が16バイト以下の場合

表データ※，又は初期値

文字列長，又はデータ長が17バイト以上の場合

表データ※の先頭16バイト，又は初期値

8

NCHAR

定義長が8バイト以下の場合

0が定義長×2バイト分取得，又は登録されます。

定義長が9バイト以上の場合

0が16バイト分取得，又は登録されます。

定義長が16バイト以下の場合

表データ※，又は初期値

定義長が17バイト以上の場合

表データ※の先頭16バイト，又は初期値

9

NVARCHAR

長さ0の文字列

文字列長，又はデータ長が16バイト以下の場合

表データ※，又は初期値

文字列長，又はデータ長が17バイト以上の場合

表データ※の先頭16バイト，又は初期値

10

MCHAR

定義長が16バイト以下の場合

0が定義長バイト分取得，又は登録されます。

定義長が17バイト以上の場合

0が16バイト分取得，又は登録されます。

定義長が16バイト以下の場合

表データ※，又は初期値

定義長が17バイト以上の場合

表データ※の先頭16バイト，又は初期値

11

MVARCHAR

長さ0の文字列

文字列長，又はデータ長が16バイト以下の場合

表データ※，又は初期値

文字列長，又はデータ長が17バイト以上の場合

表データ※の先頭16バイト，又は初期値

12

DATE

0000-00-00

表データ※，又は初期値

13

TIME

00:00:00

14

INTERVAL YEAR TO DAY

+00000000.

15

INTERVAL HOUR TO SECOND

+000000.

16

TIMESTAMP

0000-00-00 00:00:00.0....0

17

BINARY

長さ0のデータ

文字列長，又はデータ長が16バイト以下の場合

表データ※，又は初期値

文字列長，又はデータ長が17バイト以上の場合

表データ※の先頭16バイト，又は初期値

注※

文字集合が指定されたCHAR型，又はVARCHAR型の列の場合，指定された文字集合のデータで格納されます。

16.3.3　最適化情報収集レベル

検索によって最適化情報を収集する場合，収集する情報のレベルを指定できます。これを最適化情報収集レベルといいます。

各最適化情報レベルの長所，短所を次の表に示します。

表16‒4　各最適化情報レベルの長所，短所

最適化情報収集レベル

長所

短所

lvl1

表の行数を最適化に反映できるため，結合順序などでデータ特性を反映でき，最適化の精度は比較的高いです。

pdgetcstの実行時間が比較的短くなります。

データの更新を意識した運用となります。

アクセスパスが，期待した結果にならなかった場合，表の行数のコスト情報を考慮する必要があるため，アクセスパスの予想が難しくなります。

lvl2

表の行数，最大値，最小値，分布情報などを最適化に反映できるため，結合順序，インデクスの選択などでデータ特性を反映できて，最適化の精度は高いです。

データの更新を意識した運用となります。

pdgetcstの実行時間が長くなります。

アクセスパスが，期待した結果にならなかった場合，取得したコスト情報をすべて考慮する必要があるため，アクセスパスの予想が難しくなります。

列情報は，インデクスの第1構成列の情報だけを取得するので，複数列インデクスを定義している場合，最適化の精度が悪くなります。

アクセスする表の特性を調べて，最適化情報収集レベルを決めてください。ただし，最適化情報を取得しない（pdgetcstを実行しない）方がよい場合もあります。

最適化情報を取得しない場合，更新系SQLでのデータの変更を意識しなくても良くなりますが，最適化にデータ特性を反映できないので最適化の精度は良くないです。

最適化情報収集レベルの推奨値を次の表に示します。

表16‒5　最適化情報収集レベルの推奨値

項番

アクセスする表の特性

推奨する最適化情報収集レベル

1

次の条件をすべて満たす場合

更新系業務を行わない

検索条件にインデクス構成列を含むSQLを実行する

lvl2

2

次の条件をすべて満たす場合

項番1の条件に該当しない

コストベース最適化モードが2である

格納行数が変わる更新系業務を行わない

次のどちらかの条件に該当する

・ハッシュジョインを行う

・副問合せのハッシュ実行を行う

・3表以上の結合検索を行う

lvl1

3

上記以外

最適化情報を収集しない（pdgetcstを実行しない）ことをお勧めします。

16.4　最適化情報パラメタファイル

最適化情報を退避するときに出力される最適化情報パラメタファイルの項目について説明します。なお，最適化情報を退避していない場合に最適化情報の登録をするときには，あらかじめ最適化情報を記述した最適化情報パラメタファイルを用意しておく必要があります。最適化情報パラメタファイルの形式を次の図に示します。

図16‒4　最適化情報パラメタファイルの形式

16.4.1　最適化情報パラメタファイルの項目

最適化情報パラメタファイルに記述する項目の一覧と最適化情報パラメタファイルに記述する項目の内容を次の表に示します。

表16‒6　最適化情報パラメタファイルに記述する項目の一覧

分類

項目名

内容

表最適化情報

NROWS

表の行数

NPAGES

表のデータページ数

インデクス最適化情報

INDEX

インデクス名

NIPAGES

インデクスページ数

NLEVEL

インデクスの段数

SEQ_RATIO

インデクスのシーケンシャル度

NENTRY

インデクスのキー値数

列最適化情報

COLUMN

列名

NUNIQUE

列のユニーク値数

NNULLS

列のナル値数

N_MAX_DUP_KEY

列の最大重複列値の数

N_MIN_DUP_KEY

列の最小重複列値の数

MAX_VALUE

列値の最大値

MIN_VALUE

列値の最小値

区間分布情報

SECTION_COUNT

区間分布情報の区間数

SECTION_NO

区間番号

SEC_TOTAL_COUNT

区間要素数の累積度数

SEC_UNIQUE

区間内ユニーク値数

SEC_MAX_VALUE

区間内最大値

表16‒7　最適化情報パラメタファイルに記述する項目の内容

項目名

内容

NROWS

表の行数を指定します。

表の行数は，次のSQL文で求められます。

SELECT COUNT(*) FROM 表名

NPAGES

表の使用中データページ数を指定します。

データベース状態解析ユティリティを実行するか，又はマニュアル「HiRDB システム導入・設計ガイド」を参照してください。

INDEX

インデクス名を指定します。

指定するインデクスは，-tオプションで指定した表に定義されている必要があります。

なお，指定できるインデクスはB-treeインデクスだけであり，プラグインインデクスは指定できません。

NIPAGES

インデクスの使用中インデクスページ数を指定します。

データベース状態解析ユティリティを実行するか，又はマニュアル「HiRDB システム導入・設計ガイド」を参照してください。

NLEVEL

インデクスの段数を指定します。

マニュアル「HiRDB システム導入・設計ガイド」を参照してください。また，クラスタキーの場合は，データベース状態解析ユティリティで求められます。

SEQ_RATIO

インデクスのシーケンシャル度を指定します。

0〜100の値を指定します。インデクスのキー順にデータが格納されている場合は100，ランダムにデータが格納されている場合は0を指定してください。この値を大きくすると，よりインデクスを使用することになります。

NENTRY

インデクスのキー値数を指定します。

ユニークインデクスの場合は，表の行数を指定してください。

ユニークインデクスでない場合は，重複排除したインデクスのキー値数を指定してください。

インデクスのキー値数は，次のSQL文で求められます。

＜単一列インデクスの場合＞

　SELECT COUNT(DISTINCT インデクス構成列名※１) FROM 表名

＜複数列インデクスの場合＞

　WITH W1(WC1,WC2,…) AS (SELECT DISTINCT

　　インデクス構成列名1※１,インデクス構成列名2※１,…

　　FROM 表名) SELECT COUNT(*) FROM W1

COLUMN

列名を指定します。

指定する列は，-tオプションで指定した表になければなりません。ただし，LOB列，抽象データ型列は指定できません。

NUNIQUE

列のユニーク値数を指定します。

列のユニーク値数は，次のSQL文で求められます。

　SELECT COUNT(DISTINCT 列名※２) FROM 表名

NNULLS

列のナル値数を指定します。

列のナル値数は，次のSQL文で求められます。

列の定義長※３が32,000バイト以下の場合

　　SELECT COUNT(*) FROM 表名 WHERE 列名 IS NULL

列の定義長※３が32,001バイト以上の場合

　　WITH W1(WSUBCLM) AS (SELECT SUBSTR(列名,1,255※４)) FROM 表名)

　　SELECT COUNT(*) FROM W1 WHERE WSUBCLM IS NULL

N_MAX_DUP_KEY

最も重複が多い列値の重複数を指定します。

最も重複が多い列値の重複数は，次のSQL文で求められます。

列名で指定する列の定義長※３が255バイト以下の場合

　　WITH W1(WCOUNT) AS (SELECT COUNT(列名) FROM 表名

　　　WHERE 列名 IS NOT NULL GROUP BY 列名)

　　　SELECT MAX(WCOUNT) FROM W1

列名で指定する列の定義長※３が256バイト以上，32,000バイト以下の場合

　　SELECT COUNT(SUBSTR(列名,1,255※４)) FROM 表名

　　　WHERE 列名 IS NOT NULL GROUP BY SUBSTR(列名,1,255※４)

　　　ORDER BY 1 DESC LIMIT 1

列名で指定する列の定義長※３が32,001バイト以上の場合

　　WITH W1(WSUBCLM) AS (SELECT SUBSTR(列名,1,255※４)) FROM 表名)

　　　SELECT COUNT(WSUBCLM) FROM W1 WHERE WSUBCLM IS NOT NULL

　　　GROUP BY WSUBCLM ORDER BY 1 DESC LIMIT 1

N_MIN_DUP_KEY

最も重複が少ない列値の重複数を指定します。

最も重複が少ない列値の重複数は，次のSQL文で求められます。

列名で指定する列の定義長※２が255バイト以下の場合

　　WITH W1(WCOUNT) AS (SELECT COUNT(列名) FROM 表名

　　　WHERE 列名 IS NOT NULL GROUP BY 列名)

　　　SELECT MIN(WCOUNT) FROM W1

列名で指定する列の定義長※３が256バイト以上，32,000バイト以下の場合

　　SELECT COUNT(SUBSTR(列名,1,255※４)) FROM 表名

　　　WHERE 列名 IS NOT NULL GROUP BY SUBSTR(列名,1,255※４)

　　　ORDER BY 1 ASC LIMIT 1

列名で指定する列の定義長※３が32,001バイト以上の場合

　　WITH W1(WSUBCLM) AS (SELECT SUBSTR(列名,1,255※４)) FROM 表名)

　　　SELECT COUNT(WSUBCLM) FROM W1 WHERE WSUBCLM IS NOT NULL

　　　GROUP BY WSUBCLM ORDER BY 1 ASC LIMIT 1

MAX_VALUE※５

列値の最大値を指定します。

列値の最大値は，次のSQL文で求められます。

　SELECT MAX(列名※６) FROM 表名

MIN_VALUE※５

列値の最小値を指定します。

列値の最小値は，次のSQL文で求められます。

　SELECT MIN(列名※６) FROM 表名

SECTION_COUNT

区間分布情報の区間数を指定します。

列値の種類数が100以下の場合は，列値の種類数を設定します。列値の種類数が100より多い場合は，100を設定します。

なお，この指定は区間分布情報の指定より前に記述しなければなりません。また，この指定値は，区間分布情報の指定数と同じ値にしてください。

SECTION_NO

該当する区間の区間番号を1〜区関数の範囲内で指定します。

SEC_TOTAL_COUNT

区間要素数の累積度数を指定します。

区間要素数の累積度数は，次の計算式で求められます。

（列値の種類数÷100）×該当する区間番号

なお，列値の種類数÷100が割り切れない場合は，最終区間の区間分布情報の定義時に，ヒストグラム累積度数に列値の種類数を設定します。

SEC_UNIQUE

該当する区間内の列値のユニーク値数を指定します。

SEC_MAX_VALUE

該当する区間内の列値の最大値を指定します。

注※1

インデクス構成列名に指定する列の定義長が256バイト以上の場合は，「インデクス構成列名」を「SUBSTR（インデクス構成列名,1,255※４）」に置き換えます。

注※2

列名で指定する列の定義長が256バイト以上の場合は，「列名」を「SUBSTR（列名,1,255※４）」に置き換えます。

注※3

定義長の単位はバイトです。各国文字列データ型の場合は，定義長×2となります。

注※4

列のデータ型が文字データ型，及びBINARY型の場合は255となります。各国文字列データ型，及び混在文字列データ型の場合は127となります。

注※5

MAX_VALUEは，ディクショナリ表SQL_COLUMN_STATISTICSのRANGE_VALUES列の32バイト目に格納されます。

MIN_VALUEは，ディクショナリ表SQL_COLUMN_STATISTICSのRANGE_VALUES列の48バイト目に格納されます。ただし，列名で指定する列のデータ型がDECIMAL型，又はNUMERIC型で，精度が32けた以上の場合は，列の定義長※3に32バイトを足した位置に格納されます。

注※6

列の定義長が256バイト以上の場合は，次のように置き換えてください。

列のデータ型がCHAR，及びBINARYのときは，「列名」を「SUBSTR（列名,1,255）」に置き換えます。

列のデータ型がNCHAR，及びMCHARのときは，「列名」を「SUBSTR（列名,1,127）」に置き換えます。

列のデータ型がVARCHAR，NVARCHAR，及びMVARCHARのときは，「列名」を次の指定に置き換えます。

  「CASE LENGTH(列名) WHEN  0 THEN ‘’
     WHEN  1 THEN SUBSTR(列名,1,1)  WHEN  2 THEN SUBSTR(列名,1,2)
     WHEN  3 THEN SUBSTR(列名,1,3)  WHEN  4 THEN SUBSTR(列名,1,4)
     WHEN  5 THEN SUBSTR(列名,1,5)  WHEN  6 THEN SUBSTR(列名,1,6)
     WHEN  7 THEN SUBSTR(列名,1,7)  WHEN  8 THEN SUBSTR(列名,1,8)
     WHEN  9 THEN SUBSTR(列名,1,9)  WHEN 10 THEN SUBSTR(列名,1,10)
     WHEN 11 THEN SUBSTR(列名,1,11)  WHEN 12 THEN SUBSTR(列名,1,12)
     WHEN 13 THEN SUBSTR(列名,1,13) ELSE SUBSTR(列名,1,14) END 」

16.4.2　最適化情報パラメタファイルの項目の指定方法

最適化情報パラメタファイルの項目の指定方法を次の表に示します。

表「最適化情報パラメタファイルの項目の指定方法」

表「MAX_VALUE及びMIN_VALUEの指定方法」

表「最適化パラメタファイルの項目省略時，及び指定値省略時の設定値」

表16‒8　最適化情報パラメタファイルの項目の指定方法

項目名

指定方法

指定最小値

指定最大値

単位

NROWS

正の整数を指定します。また，指数も指定できます。

0

HiRDBでのFLOAT型の最大値

行

NPAGES

0

ページ

INDEX

インデクス定義時の規則に従います。

NIPAGES

正の整数を指定します。また，指数も指定できます。

1

HiRDBでのFLOAT型の最大値

ページ

NLEVEL

正の整数を指定します。

1

HiRDBでのSMALLINT型の最大値

段

SEQ_RATIO

0

100

％

NENTRY

正の整数を指定します。また，指数も指定できます。

0

HiRDBでのFLOAT型の最大値

個

COLUMN

表定義時の規則に従います。

NUNIQUE

正の整数を指定します。また，指数も指定できます。

0

HiRDBでのFLOAT型の最大値

個

NNULLS

0

個

N_MAX_DUP_KEY

0

個

N_MIN_DUP_KEY

0

個

MAX_VALUE

−

MIN_VALUE

SECTION_COUNT

正の整数を指定します。また，指数も指定できます。

0

100

区間

SECTION_NO

1

区間数

−

SEC_TOTAL_COUNT

1

HiRDBでのSMALLFLT型の最大値

行

SEC_UNIQUE

1

HiRDBでのSMALLFLT型の最大値

個

SEC_MAX_VALUE

−

（凡例）−：該当しません。

表16‒9　MAX_VALUE及びMIN_VALUEの指定方法

COLUMNで指定した列のデータ型

指定方法

最小値，最大値

INT〔EGER〕

数値を指定します。

HiRDBでの各データ型の規則に従います。指定できるけた数の最大値は，HiRDBでの数定数の使用上の制限に従います。詳細は，マニュアル「HiRDB SQLリファレンス」の「データ型」を参照してください。

SMALLINT

[LARGE]DEC[IMAL]

FLOAT又はDOUBLE PRECISION

数値を指定します。また，指数も指定できます。

SMALLFLT又はREAL

CHAR

文字又は文字列を指定します。

CHAR，VARCHAR，MCHAR，及びMVARCHARで，¥0や改行などの制御文字が含まれる場合や，列に文字集合が指定されている場合は，文字列を16進表記※2で指定します。

次の指定をする場合は，引用符（"）で囲んでください。

空白を含む場合

長さ0の文字列の場合

「x'」，又は「X'」で始まり「'」で終わる文字列の場合

項目の名称を含めて，最適化情報パラメタファイルに1行以内で記述できます。ただし，最適化情報としては先頭16バイトを登録するため，17バイト目以降の文字列は切り捨てられます（引用符は含まれません）。

また，データ型がMCHAR又はMVARCHARの場合，指定した文字列の16，17バイト目が2バイトコードとなっているときには，17バイト以上の文字列を指定してください。

VARCHAR

NCHAR

NVARCHAR

MCHAR

MVARCHAR

DATE

YYYY-MM-DDで指定します。

HiRDBでの各データ型の規則に従います。詳細は，マニュアル「HiRDB SQLリファレンス」の「データ型」を参照してください。

TIME

hh:mm:ssで指定します。

INTERVAL YEAR TO DAY

(±)YYYYMMDD.で指定します。

INTERVAL HOUR TO SECOND

(±)hhmmss.で指定します。

TIMESTAMP

"YYYY-MM-DD△hh:mm:ss〔.nnnnnn〕"

△：半角空白

小数部〔.nnnnnn〕は，定義に合わせて0，2，4，又は6けたの値を指定します。※１また，指定値は引用符で囲んでください。

BINARY

バイナリデータを16進表記※２で指定します。長さ0のデータを指定する場合は，X' 'と指定します。

最適化情報としては先頭の12バイト分のデータを登録します。13バイト以降は指定しても切り捨てられます。

注※1

TIMESTAMP型の小数秒部のけた数を指定した場合の格納方法を次に示します。

定義けた数

入力データの小数秒部のけた数

0

2

4

6

0，2，4，及び6以外

0

そのまま格納します。

定義けた数以降を切り捨てます。

エラー（KFPL31002-E）

2

定義けた数まで0を埋めます。

そのまま格納します。

定義けた数以降を切り捨てます。

4

定義けた数まで0を埋めます。

そのまま格納します。

定義けた数以降を切り捨てます。

6

定義けた数まで0を埋めます。

そのまま格納します。

注※2

16進表記は，x'****'，又はX'****'の形式とします。****の部分は，16進文字列（0〜9，a〜f，及びA〜F）を2文字単位に記述します。

表16‒10　最適化パラメタファイルの項目省略時，及び指定値省略時の設定値

項目名

指定値

格納先のディクショナリ表名

格納先の列名

設定値

格納先のディクショナリ表の設定対象行

NROWS※1

あり

あり

SQL_TABLE_STATISTICS

N_ROW

NROWSの指定値

-tオプションで指定した表

なし

ナル値

なし

−

更新前の設定値

NPAGES

あり

あり

N_PAGE

NPAGESの指定値

なし

ナル値

なし

−

更新前の設定値

NIPAGES

あり

あり

SQL_INDEX_STATISTICS

N_IXPG

NIPAGESの指定値

INDEXで指定したインデクス

なし

ナル値

なし

−

更新前の設定値

NLEVEL

あり

あり

N_LEVEL

NLEVELの指定値

なし

ナル値

なし

−

更新前の設定値

SEQ_RATIO

あり

あり

SEQ_RATIO

SEQ_RATIOの指定値

なし

ナル値

なし

−

更新前の設定値

NENTRY

あり

あり

N_ENTRY

N_ENTRYの指定値

なし

ナル値

なし

−

更新前の設定値

NUNIQUE

あり

あり

SQL_COLUMN_STATISTICS

N_UNIQUE

NUNIQUEの指定値

COLUMNで指定した列

なし

ナル値

なし

−

更新前の設定値

NNULLS※1

あり

あり

N_NULL

NNULLSの指定値

なし

ナル値

なし

−

更新前の設定値

N_MAX_DUP_KEY

あり

あり

N_MAX_DUP_KEY

N_MAX_DUP_KEYの指定値

なし

ナル値

なし

−

更新前の設定値

N_MIN_DUP_KEY

あり

あり

N_MIN_DUP_KEY

N_MIN_DUP_KEYの指定値

なし

ナル値

なし

−

更新前の設定値

MAX_VALUE※1

あり

あり

RANGE_VALUES

MAX_VALUEの指定値

なし

ナル値

なし

−

ナル値

MIN_VALUE※1

あり

あり

MIN_VALUEの指定値

なし

ナル値

なし

−

ナル値

SECTION_COUNT

あり

あり

SECTION_COUNTの指定値※2

なし

0

なし

−

0

SECTION_NO

あり

あり

SECTION_NOの指定値

なし

エラー

なし

−

エラー

SEC_TOTAL_COUNT

あり

あり

SEC_TOTAL_COUNTの指定値

なし

エラー

なし

−

エラー

SEC_UNIQUE

あり

あり

SEC_UNIQUEの指定値

なし

エラー

なし

−

エラー

SEC_MAX_VALUE

あり

あり

SEC_MAX_VALUEの指定値

なし

エラー

なし

−

エラー

（凡例）

−：該当しません。

注※1

NROWS，NNULLS，MAX_VALUE，又はMIN_VALUEのどれかを省略した場合，SQL_COLUMN_STATISTICSのRANGE_VALUES列にナル値を設定します。

注※2

区関数（SECTION_COUNT），及び区間分布情報の項目をすべて省略した場合，0が設定されます。区関数分の区間分布情報の指定項目のどれかを省略した場合はエラーとなります。

16.4.3　最適化情報パラメタファイルの項目の出力内容

最適化情報を退避するとき，最適化情報パラメタファイルの各項目で参照するディクショナリ表と列名，及び出力内容を次の表に示します。

表16‒11　最適化情報パラメタファイルの項目の出力内容

分類

項目名

参照するディクショナリ表名と列名

出力内容

表名

列名

該当列なし

参照列がナル値

参照列がナル値以外

表最適化情報

NROWS

SQL_TABLE_STATISTICS

N_ROW

×

△

○

NPAGES

N_PAGE

×

△

○

インデクス最適化情報

INDEX

SQL_INDEX_STATISTICS

INDEX_NAME

×

−

○※1

NIPAGES

N_IXPG

×

△

○

NLEVEL

N_LEVEL

×

△

○

SEQ_RATIO

SEQ_RATIO

×

△

○

NENTRY

N_ENTRY

×

△

○

列最適化情報

COLUMN

SQL_COLUMN_STATISTICS

COLUMN_NAME

×

−

○※1

NUNIQUE

N_UNIQUE

×

△

○

NNULLS

N_NULL

×

△

○

N_MAX_DUP_KEY

N_MAX_DUP_KEY

×

△

○

N_MIN_DUP_KEY

N_MIN_DUP_KEY

×

△

○

MAX_VALUE

RANGE_VALUES

×

×

○※2

MIN_VALUE

×

×

○※2

区間分布情報

SECTION_COUNT

×

×

○

SECTION_NO

×

×

○

SEC_TOTAL_COUNT

×

×

○

SEC_UNIQUE

×

×

○

SEC_MAX_VALUE

×

×

○※2

（凡例）

○：項目名と列値が出力されます。

△：項目名だけ出力されます。

×：出力されません。

−：該当しません。

注※1

引用符（"）で囲んで出力します。

注※2

出力値の詳細については，表「インデクス構成列のキー値の分布情報として取得又は登録する情報」を参照してください。なお，データ型がCHAR，NCHAR，MCHAR，VARCHAR，NVARCHAR，MVARCHARの場合は，英字の大文字を使用した16進表記で出力します。16進表記は，X'****'の形式となります。****の部分は，16進文字列（0〜9，及びA〜F）が2文字単位で出力されます。

16.4.4　最適化情報パラメタファイルの例

(1)　記述例

最適化情報パラメタファイルの記述例を次に示します。

# 表最適化情報
NROWS            100          # 表の全行数
NPAGES           5            # 表のデータページ数
# インデクス最適化情報
INDEX            IDX_I01      # インデクス名
NIPAGES          2            # インデクスページ数
NLEVEL           2            # インデクスの段数
SEQ_RATIO        80           # インデクスのシーケンシャル度
NENTRY           50           # インデクスのキー値数
# 列最適化情報
COLUMN           COL_01       # 列名
NUNIQUE          50           # 列のユニーク値数
NNULLS           2            # 列のナル値数
N_MAX_DUP_KEY    5            # 列の最大重複列値の数
N_MIN_DUP_KEY    1            # 列の最小重複列値の数
MAX_VALUE        ZZZ          # 列値の最大値
MIN_VALUE        ABC          # 列値の最小値
# 区間分布情報
SECTION_COUNT    2            # 区間数
SECTION_NO       1            # 区間番号
SEC_TOTAL_COUNT  1            # 区間要素数の累積度数
SEC_UNIQUE       1            # 区間内のユニーク値数
SEC_MAX_VALUE    ABC          # 区間内の最大値
SECTION_NO       2
SEC_TOTAL_COUNT  2
SEC_UNIQUE       1
SEC_MAX_VALUE    DEF

(2)　出力例

最適化情報パラメタファイルの出力例を次に示します。

# STATISTICS INFORMATION FOR SQL OPTIMIZATION
# TABLE "USER1"."TBL1"
# TABLE INFORMATION
# "USER1"."TBL1"
NROWS            100          # 表の全行数
NPAGES           5            # 表のデータページ数
# INDEX INFORMATION
INDEX            "IDX_I01"    # インデクス名
NIPAGES          2            # インデクスページ数
NLEVEL           2            # インデクスの段数
SEQ_RATIO        80           # インデクスのシーケンシャル度
NENTRY           50           # インデクスのキー値数
# COLUMN INFORMATION
COLUMN           "COL_01"     # 列名
NUNIQUE          50           # 列のユニーク値数
NNULLS           2            # 列のナル値数
N_MAX_DUP_KEY    5            # 列の最大重複列値の数
N_MIN_DUP_KEY    1            # 列の最小重複列値の数
MAX_VALUE        X'5A5A5A'    # 列値の最大値
MIN_VALUE        X'414243'    # 列値の最小値
## SECTION INFORMATION
SECTION_COUNT    2            # 区間数
SECTION_NO       1            # 区間番号
SEC_TOTAL_COUNT  1            # 区間要素数の累積度数
SEC_UNIQUE       1            # 区間内のユニーク値数
SEC_MAX_VALUE    X'414243'    # 区間内の最大値
SECTION_NO       2
SEC_TOTAL_COUNT  2
SEC_UNIQUE       1
SEC_MAX_VALUE    X'444546'

16.4.5　最適化情報パラメタファイルの記述規則

各項目の名称は，1バイト目から記述してください。また，各項目は1行以内で記述してください。

項目名と値の間は，空白（全角）又はタブにしてください。

1行に複数の項目及び値は記述できません。また，1行は80バイトで，改行記号は含まれません。

＃から改行記号までの間は，コメントとなります。

区間分布情報を除き，表最適化情報，インデクス最適化情報，及び列最適化情報内で，同一の項目は複数記述できません。

次を指定する場合は，引用符（"）で囲んでください。

・指定値に空白を含む場合

・長さ0の文字列を指定する場合

・「x'」，又は「X'」で始まり「'」で終わる文字列を指定する場合

・半角英小文字と半角英大文字を区別して，インデクス名称，又は列名称を指定する場合

インデクス名称，又は列名称を引用符（"）で囲まないで指定した場合は，半角英小文字を半角英大文字として扱います。

また，指定値に￥がある場合は￥を無視し，￥の直後のデータを有効とします。データとして￥を記述する場合は，￥￥と記述してください。

各項目の指定順序は，インデクス最適化情報指定内及び列最適化情報指定内で順不同です。インデクス最適化情報指定内，列最適化情報指定内とは，インデクス名又は列名を記述してから，次のインデクス名又は列名を記述するまでの間を意味します。

ただし，列最適化情報の定義のうち，区間数は区間分布情報より先に記述する必要があります。また，区間番号は区間分布情報の各区間定義の最初に記述してください。

同一のインデクス名又は列名を2回以上指定した場合，後に指定したものが有効となります。

16.5　規則及び注意事項

16.5.1　規則

pdgetcstは，HiRDBが稼働中のときだけ実行できます。

pdgetcstは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

pdgetcstは，ディクショナリ表，ビュー表，及び一時表に対して実行できません。なお，次に示す場合はエラーメッセージが出力されます。

表単位で最適化情報の退避を実行したとき

最適化情報を収集及び登録できないため，KFPN00014-Iメッセージが出力され，正常終了します。

スキーマ単位で最適化情報の登録又は最適化情報の退避を実行したとき

スキーマ単位の実行をサポートしていないため，KFPN00100-Eメッセージが出力され，エラー終了します。

最適化情報パラメタファイルに抽象データ型の列は指定できません。

pdgetcstで収集した最適化情報は，pdgetcst実行後からSQLの最適化処理で使用できるようになります。

pdgetcstを実行して登録した最適化情報と実際のデータベースの状態が一致していないと，適切なアクセスパスを選択できないため，性能が劣化することがあります。データベースの状態が変わるSQLを実行した場合は，pdgetcstを実行して最適化情報と一致させてください。

本番環境とテスト環境がある場合，表の行数，データ値の分布が同じ最適化情報になるようにしてください。ただし，最適化情報収集レベルがlvl1の場合は，表の行数を同じにするだけでよいです。

pdgetcstを実行する場合，データディクショナリ用RDエリアは閉塞解除状態かつオープン状態でなければなりません。

pdgetcstの処理対象となる表，インデクスが格納されているRDエリアの状態によって，そのRDエリアに対するpdgetcstの実行可否が決まります。pdgetcstの実行可否については，「コマンド実行時のRDエリアの状態」を参照してください。

出力結果ファイルと最適化情報パラメタファイルについては，HiRDB管理者に対してアクセス権限を与えておく必要があります。

pdgetcstを実行する場合，LANG環境変数を設定してください。また，pdgetcstの実行環境で，OSがサポートしていない文字コードを使用する場合，PDLANG環境変数を設定する必要があります。LANG，及びPDLANGについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

16.5.2　注意事項

pdgetcstのリターンコードを次に示します。

0：正常終了

4：警告終了（ディクショナリ表操作で警告発生）

8：異常終了

pdgetcstの実行中に，処理対象の表及びインデクスの定義変更はしないでください。定義を変更した場合は，HiRDBの動作が保証されません。

pdgetcstの実行中に，処理対象の表に対して行の挿入，削除，又はデータの更新をした場合，最適化情報に誤差が生じることがあります。

pdgetcstは，表にデータがある状態で実行してください。表定義直後など，データが１件もない状態で実行すると，正しいコスト情報を取得できません。

最適化情報パラメタファイルに記述されている，文字列の文字コードがHiRDBシステムで使用されている文字コードと異なる場合，pdgetcstの動作は保証しません。

同一の表に対して，pdgetcstを同時に実行しないでください。同時に実行した場合，HiRDBの動作は保証されません。ディクショナリ表に最適化情報を登録するpdgetcstを同時に実行した場合，処理の終了を示すKFPN00013-Iメッセージが出力されますが，最適なアクセスパスにならないおそれがあります。

pdgetcstがエラー終了した場合，HiRDBの動作は保証されません。出力されているエラーメッセージを参照してエラー要因を取り除き，再度pdgetcstを実行してください。pdgetcstを再実行してもエラーが続く場合は，マニュアル「HiRDB システム運用ガイド」の「最適化情報の登録，更新，又は削除時にエラーが発生した場合」を参照して対処してください。

pdgetcstを実行するとアクセス手順が変更になるので，実際のデータ特性が最適化情報と一致していないときは，性能が劣化することもあります。したがって，pdgetcstを実行する場合には，十分にテストをするようにしてください。

本番環境とテスト環境がある場合で，本番環境で最適化情報を取得するときは，テスト環境と同等の最適化情報を取得するため，テスト環境及び本番環境でデータ件数，データ値の分布は同じにしてください。

16.5.3　BOMを持つファイルの使用

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdgetcstの最適化情報パラメタファイルには，BOMを持つファイルを使用できます。なお，pdgetcstの最適化情報パラメタファイルとしてBOMを持つファイルを使用しても，BOMは読み飛ばされます。また，pdgetcstで出力されるファイルにはBOMは付きません。

16.6　出力形式

16.6.1　検索による最適化情報の収集

(1)　最適化情報収集レベルがlvl2の場合

最適化情報収集ユティリティの実行結果（-c lvl2の検索による最適化情報の収集）を次に示します。

**      pdgetcst                             1995-03-31 12:00
                                                     [1]
  **  TABLE INFORMATION  **
  AUTHORIZATION         : user-id [2]
  TABLE NAME            : TABLE01 [3]
  ROW COUNT             : 120     [4]
  DATA PAGES            : 5       [5]
  CACHE SIZE            : 0       [6]

  **  INDEX-COLUMN INFORMATION  **
  INDEX NAME            : Idx001  [7]
  INDEX PAGES           : 5       [8]
  INDEX LEVELS          : 3       [9]
  COLUMN NAME           : Clm1    [10]
  COLUMN TYPE           : INTEGER [11]
  SEQUENTIAL RATIO      : 100     [12]
  MAX VALUE             : 2500    [13]
  MIN VALUE             : 0       [14]
  UNIQUE KEYS           : 23      [15]
  NULL VALUE COUNT      : 20      [16]
  MAX DUPLICATE KEY     : 10      [17]
  MIN DUPLICATE KEY     : 1       [18]
  SECTION COUNT         : 39      [19]

    **  SECTION INFORMATION  **
    SECTION NO          :1  [20]
    TOTAL COUNT         :1  [21]
    UNIQUE KEYS         :1  [22]
    MAX VALUE           :0  [23]

    **  SECTION INFORMATION  **
    SECTION NO          :2
    TOTAL COUNT         :2
    UNIQUE KEYS         :1
    MAX VALUE           :10

    **  SECTION INFORMATION  **
    SECTION NO          :3
    TOTAL COUNT         :6
    UNIQUE KEYS         :1
    MAX VALUE           :10

             :

    **  SECTION INFORMATION  **
    SECTION NO          :39
    TOTAL COUNT         :100
    UNIQUE KEYS         :1
    MAX VALUE           :2500

**  pdgetcst ENDED    RETURN CODE = 0 [24]

［説明］

** SECTION INFORMATION **は，区間数分繰り返し表示します。** INDEX-COLUMN INFORMATION **（** SECTION INFORMATION **も含む）は，インデクス数分繰り返し表示します。

最適化情報収集ユティリティを実行した（pdgetcstコマンドを入力した）日付と時刻を，YYYY-MM-DD hh:mmの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　ｍｍ：分

最適化情報を取得する表の認可識別子を表示します。

最適化情報を取得する表の表識別子を表示します。

表の行数を表示します。

表の使用中データページ数を表示します。

HiRDBが利用する作業用の領域を表示します。

最適化情報を取得するインデクスの名称を表示します。

インデクスの使用中インデクスページ数を表示します。

インデクスの段数を表示します。

インデクスの第1構成列の名称を表示します。

インデクスの第1構成列のデータ型を表示します。

シーケンシャル度を表示します。

インデクスの第1構成列の列値の最大値を表示します。

インデクスの第1構成列の列値の最小値を表示します。

インデクスの第1構成列のユニーク値の数を表示します。

インデクスの第1構成列のナル値の数を表示します。

インデクスの第1構成列の最大重複値の数を表示します。

インデクスの第1構成列の最小重複値の数を表示します。

区間分布情報の区間数を表示します。

区間番号を表示します。

区間データ数の累計を表示します。

区間内のユニーク値の数を表示します。

区間内の最大値を表示します。

リターンコードを表示します。

注

-dオプション指定時は，8，9，及び12〜19は出力されません。また，行数が0の場合には，13，14に空白，それ以外の項目には0が出力されます。

(2)　最適化情報収集レベルがlvl1の場合

最適化情報収集ユティリティの実行結果（-c lvl1の検索による最適化情報の収集）を次に示します。

**      pdgetcst                             2000-03-31 12:00
                                                     [1]

  **  TABLE INFORMATION  **
  AUTHORIZATION         : user-id [2]
  TABLE NAME            : TABLE01 [3]
  ROW COUNT             : 120     [4]    [6]
  CACHE SIZE            : 0       [5]

**  pdgetcst ENDED    RETURN CODE = 0 [7]

［説明］

最適化情報収集ユティリティを実行した（pdgetcstコマンドを入力した）日付と時刻を，YYYY-MM-DD hh:mmの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　ｍｍ：分

最適化情報を取得する表の認可識別子を表示します。

最適化情報を取得する表の表識別子を表示します。

表の行数を表示します。

HiRDBが利用する作業用の領域を表示します。

-t ALLの場合は，表数分繰り返して表示されます。

リターンコードを表示します。

16.6.2　最適化情報パラメタファイルによる最適化情報の登録

  **     pdgetcst                                1997-10-30 15:06
                                                          [1]
    **  TABLE INFORMATION    **
    AUTHORIZATION       : MANUAL [2]
    TABLE NAME          : TBL01  [3]
    ROW COUNT           : 1      [4]
    DATA PAGES          : 1      [5]
    CACHE SIZE          : 2560   [6]

    **  INDEX INFORMATION  **
    INDEX NAME          : IDX_TBL01_C1 [7]
    INDEX PAGES         : 1            [8]
    INDEX LEVELS        : 1            [9]
    SEQUENTIAL RATIO    : 1            [10]
    INDEX KEY           : 1            [11]

    **  COLUMN INFORMATION  **
    COLUMN NAME         : C1   [12]
    COLUMN TYPE         : CHAR [13]
    UNIQUE KEYS         : 1    [14]
    NULL VALUE COUNT    : 1    [15]
    MAX DUPLICATE KEY   : 1    [16]
    MIN DUPLICATE KEY   : 1    [17]
    MAX VALUE           : "1"  [18]
    MIN VALUE           : "1"  [19]
    SECTION COUNT       : 100  [20]

  **  pdgetcst ENDED    RETURN CODE = 0 [21]   **

［説明］

** COLUMN INFORMATION **は，列数分繰り返し表示します。** INDEX INFORMATION **及び** COLUMN INFORMATION **は，インデクス数分繰り返し表示します。

最適化情報収集ユティリティを実行した（pdgetcstコマンドを入力した）日付と時刻を，YYYY-MM-DD hh:mmの形式で表示します。

YYYY：年（西暦）　MM：月　DD：日　hh：時　ｍｍ：分

最適化情報を登録する表の認可識別子を表示します。

最適化情報を登録する表の表識別子を表示します。

表の行数を表示します。

表の使用中データページ数を表示します。

HiRDBシステムが利用する作業用の領域を表示します。

最適化情報を登録するインデクスの名称を表示します。

インデクスの使用中インデクスページ数を表示します。

インデクスの段数を表示します。

シーケンシャル度を表示します。

インデクスのキー値数を表示します。

インデクスを定義している列の名称を表示します。

インデクスを定義している列のデータ型を表示します。

インデクスを定義している列の，列値のユニーク値の数を表示します。

インデクスを定義している列の，列値のナル値の数を表示します。

インデクスを定義している列の，列値の最大重複値の数を表示します。

インデクスを定義している列の，列値の最小重複値の数を表示します。

インデクスを定義している列の，列値の最大値を表示します。

インデクスを定義している列の，列値の最小値を表示します。

区間分布情報の区間数を表示します。

リターンコードを表示します。

16.7　使用例

最適化情報収集ユティリティ（pdgetcst）の使用例を次に示します。

なお，使用例では，HiRDBに接続する認可識別子をUSERID，表の所有者の認可識別子をAUTHID，パスワードをPASSWDとします。

16.7.1　最適化情報を収集する場合

表T1の最適化情報を収集する場合は，次のように指定します。

pdgetcst -u USERID -a AUTHID -p PASSWD -t T1

16.7.2　最適化情報を収集し，処理結果をファイルに出力する場合

表T2の最適化情報を収集し，処理結果をファイル（/tmp/LOG）に出力する場合は，次のように指定します。

pdgetcst -u USERID -a AUTHID -p PASSWD -t T2 -l /tmp/LOG

16.7.3　最適化情報をディクショナリ表から削除する場合

表T3の最適化情報をディクショナリ表から削除する場合は，次のように指定します。

pdgetcst -u USERID -a AUTHID -p PASSWD -t T3 -d

16.7.4　最適化情報パラメタファイルの最適化情報を登録する場合

最適化情報パラメタファイル（/tmp/prmfile）の内容を登録する場合は，次のように指定します。なお，表T4に関する最適化情報だけ登録するものとします。

pdgetcst -u USERID -a AUTHID -p PASSWD -t T4 -s /tmp/prmfile

16.7.5　最適化情報を最適化情報パラメタファイルに退避する場合

表T5の最適化情報を最適化情報パラメタファイル（/tmp/prmfile）に退避する場合は，次のように指定します。

pdgetcst -u USERID -a AUTHID -p PASSWD -t T5 -e /tmp/prmfile

17　アクセスパス表示ユティリティ（pdvwopt）

この章では，SQL最適化処理によって決定したアクセスパスの情報を表示するアクセスパス表示ユティリティ（pdvwopt）について説明します。

17.1　概要

実行者　権限がないユーザでも実行できます

17.1.1　機能

HiRDBは，ユーザが入力したSQLに対し，SQLごとにSQL最適化処理をして，データベースへの最適なアクセス方法（アクセスパス）を決定します。アクセスパス表示ユティリティ（pdvwopt）は，このSQL最適化処理によって決定したアクセスパスの情報を表示するユティリティです。ユーザは，この表示されたアクセスパスを分析することで，HiRDBのチューニングに役立てることができます。

アクセスパス表示ユティリティ（pdvwopt）の概要を次の図に示します。

図17‒1　アクセスパス表示ユティリティ（pdvwopt）の概要

17.2　コマンドの形式

17.2.1　形式

　pdvwopt 〔-d〕 アクセスパス情報ファイル

17.2.2　オプション

●-d

結合処理情報，実表検索処理情報に，表ID及びインデクスIDを表示する場合に指定します。

17.2.3　引数

●アクセスパス情報ファイル　〜＜パス名＞

クライアント環境定義PDVWOPTMODEに1以上を指定してUAPを実行すると，アクセスパス情報ファイルにアクセスパスの情報が格納されます。

アクセスパス表示ユティリティを実行するときに，対象となるアクセスパス情報ファイルをここで指定します。クライアント環境定義PDVWOPTMODEについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

アクセスパス情報ファイルは，UAPの接続したシングルサーバ又はフロントエンドサーバがあるユニットのSQL情報ディレクトリ（$PDDIR/spool/pdsqldump）下に作成します。CONNECT文からDISCONNECT文までの単位で情報が取得されます。アクセスパス情報ファイルの名称は，HiRDBが次のように付けます。

認可識別子_UAPソースファイル名_識別番号_サーバ種別

認可識別子

CONNECT文で指定した認可識別子です。

UAPソースファイル名

UAPソースファイルの名称です。

名称が30バイトを超える場合，先頭から30バイトまでとなります。

会話型SQL実行ユティリティ（pdsql）からSQLを実行した場合は，pdsql-プロセスID，pdsql.exe-プロセスID，又はpdsqlw-プロセスIDとなります。

識別番号

CONNECT文からDISCONNECT文までを一つの単位とし，それを識別するための番号です。

サーバ種別

HiRDB/シングルサーバの場合はs，HiRDB/パラレルサーバの場合はpです。

＜アクセスパス情報ファイルの名称の例＞

USER1_sample.ec_1-1-01_s

USER2_pdsql-00001_1-1-01_p

17.3　実行手順

アクセスパス表示ユティリティの実行手順を次に示します。

＜クライアント側＞

1.

クライアント環境変数を設定します。クライアント環境変数については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

2.

アクセスパス情報を取得したいSQLがあるUAPを実行します。UAPを終了しなくても，CONNECT文〜DISCONNECT文が実行されていれば，アクセスパス情報ファイルは作成されます。

＜サーバ側＞

3.

調査対象となるUAPが接続した，シングルサーバ又はフロントエンドサーバがあるサーバマシンでアクセスパス表示ユティリティを実行します。

＜実行例＞

$PDDIR/bin/pdvwopt $PDDIR/spool/pdsqldump/USER1_pdsql-00001_1-1-02_p

17.4　規則及び注意事項

17.4.1　規則

アクセスパス表示ユティリティは，HiRDBの稼働に関係なく実行できます。

アクセスパス表示ユティリティは，調査対象となるUAPの接続したシングルサーバ又はフロントエンドサーバがあるサーバマシンで実行してください。

17.4.2　注意事項

(1)　リターンコードについて

pdvwopt実行時のリターンコードは，0の場合は正常終了，8の場合は異常終了となります。

(2)　アクセスパス情報ファイル取得時の注意事項

クライアント環境定義のPDVWOPTMODEに1以上を設定していると，アクセスパス情報ファイルを作成するためのサーバ負荷が増加します。そのため，アクセスパス情報を取得する必要がある場合だけ設定するようにしてください。ただし，UAPレポート機能でアクセスパス情報の出力を指定していると，サーバ負可が増加することがあります。UAPレポート機能については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

クライアント環境定義のPDVWOPTMODEに1を設定した場合，調査対象となるSQLのSQLオブジェクトがキャッシュヒットすると，SQL最適化処理をしないため，以前に作成したSQLオブジェクトを使用して検索します。このため，アクセスパス情報は取得されません。

クライアント環境定義のPDVWOPTMODEに2を設定していると，調査対象となるSQLのSQLオブジェクトがキャッシュヒットする場合でも，アクセスパス情報を取得します。したがって，キャッシュヒットに関係なくSQL最適化処理をしてSQLオブジェクトを作成するため，PDVWOPTMODEに1を設定した場合に比べてサーバ負荷が増えることがあります。

ストアドプロシジャに記述したSQLについては，CALL文を実行してもアクセスパス情報は取得されません。この場合，次のどれかの方法でアクセスパス情報を取得してください（ただし，現在のコスト情報を基にSQLオブジェクトを再作成するため，従来のアクセスパスと変わることがあります）。

ALTER PROCEDUREを実行してSQLオブジェクトを再作成してください。

DROP PROCEDUREでストアドプロシジャを削除し，CREATE PROCEDUREでSQLオブジェクトを再作成してください。

トリガに記述したトリガSQLについては，トリガが実行されてもアクセスパス情報は取得されません。トリガSQLのアクセスパス情報は，次の方法で取得してください（ただし，現在のコスト情報を基にSQLオブジェクトを再作成するため，従来のアクセスパスと変わることがあります）。

ALTER TRIGGERを実行してSQLオブジェクトを再作成してください。

HiRDBはアクセスパス情報ファイルを削除しません。したがって，不要になったアクセスパス情報ファイルは削除してください。ただし，SQL情報ディレクトリ（$PDDIR/spool/pdsqldump）は削除しないように注意してください。削除した場合は，アクセスパス情報ファイルを作成できなくなります。

CREATE TABLEの参照制約動作にCASCADEを指定した参照表を定義すると，内部的にトリガが生成されるため，参照表定義時にアクセスパス情報を取得します。

参照表定義時に生成したトリガについては，トリガが実行されてもアクセスパス情報は取得されません。この場合，ALTER ROUTINEを実行してSQLオブジェクトを再作成し，アクセスパス情報を取得してください。なお，現在のコスト情報を基にSQLオブジェクトを再作成するため，既存のアクセスパスと変わることがあります。

VALUES指定のINSERT文を実行した場合，次の機能を実行したときだけアクセスパス情報を取得します。

トリガ

参照制約

スカラ副問合せ

(3)　アクセスパス表示ユティリティ実行時の注意事項

アクセスパス表示ユティリティとアクセスパス情報ファイルのバージョンが異なるとエラーとなります。バージョンの一致したアクセスパス表示ユティリティとアクセスパス情報ファイルを使用してください。

(4)　出力形式の出力情報についての注意事項

アクセスパス表示ユティリティの実行結果には｛ ｝で囲まれた情報が表示されますが，これはシステム内部情報です。

17.5　出力形式

 Version        :aa...a bb...bBES
 UAP Name       :cc...c
 Authorization  :dd...d
 -------------------------------------------------------
 Section No     :ee...e
 UAP Source     :ff...f
 Optimize Time  :gggg-gg-gg gg:gg:gg.gggggg
 Optimize Mode  :hh...h
 SQL Opt Level  :iiiiiiiiii(ii...i) = jj...j(kk...k),...
 Add Opt Level  :llllllllll(ll...l) = mm...m(nn...n),...
 Routine Name   :ss...s.ss...s
 SQL            :oo...o
 Work Table     :pp...p
 Total Cost     :qq...q
 Trigger Name   :tt...t
                     Procedure Name :uu...u
                     Action Time    :vv...v(ww...w)
                     Action Type    :xx...xx
 ----- QUERY EXPRESSION BODY ID : ... -----  ...................1
  :
 ----- QUERY ID : ... ----- ....................................2
  :
 JOIN  .........................................................3
  :
 SCAN  .........................................................4
  :

［説明］

集合演算情報です。集合演算情報については，「集合演算処理情報」を参照してください。

問合せ処理情報です。問合せ処理情報については，「問合せ処理情報」を参照してください。

結合処理情報です。結合処理情報については，「結合処理情報」を参照してください。

実表検索処理情報です。実表検索処理情報については，「実表検索処理情報」を参照してください。

Section No以降の情報は，SQLの個数分繰り返して表示します。

aa...a：

HiRDBのバージョンを表示します。修正版HiRDBの場合は，バージョンの後ろに記号が付きます。

bb...b：

HiRDB/パラレルサーバでのバックエンドサーバ数を表示します。HiRDB/シングルサーバの場合は表示しません。

cc...c：

クライアント環境定義のPDCLTAPNAMEで指定したUAP名称を表示します。

dd...d：

認可識別子を表示します。

ee...e：

セクション番号（SQLの対応を確認するための番号）を表示します。

ff...f：

UAPソースファイルの名称を表示します。

名称が30バイトを超える場合，先頭から30バイトまでとなります。

会話型SQL実行ユティリティ（pdsql）からSQLを実行した場合は，pdsql-プロセスID，pdsql.exe-プロセスID，又はpdsqlw-プロセスIDとなります。

gggg-gg-gg gg:gg:gg.gggggg：

SQL最適化処理をした年−月−日　時：分：秒．マイクロ秒を表示します。

hh...h：

SQL最適化モードを表示します。SQL最適化モードについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

COST_BASE_1：

コストベース最適化モード1が適用されています。

COST_BASE_2：

コストベース最適化モード2が適用されています。

iiiiiiiiii(ii...i) = jj...j(kk...k),...：

SQLコンパイル時のSQL最適化オプションの値を表示します。

iiiiiiiiii(ii...i)：

SQL最適化オプションの値を16進数（10進数）で表示します。

jj...j(kk...k),...：

SQL最適化オプションに指定している機能名を，識別子（符号なし整数）で表示します。複数の機能を指定している場合は，コンマで区切って表示します。

llllllllll(ll...l) = mm...m(nn...n),...：

SQLコンパイル時のSQL拡張最適化オプションの値を表示します。

llllllllll(ll...l)：

SQL拡張最適化オプションの値を16進数（10進数）で表示します。

mm...m(nn...n),...：

SQL拡張最適化オプションに指定している機能名を，識別子（符号なし整数）で表示します。複数の機能を指定している場合は，コンマで区切って表示します。

oo...o：

コンパイルしたSQL文を表示します。

pp...p：

SQL文を実行するための，作業表作成の契機の数を表示します。作業表を作成しないで実行する場合には0を表示します。

ソートをしない契機では，作業表を一つ作成します。ソートをする契機では，作業表を二つ作成します。

作業表作成の契機は，必ずしも同時とは限らないため，作業表用ファイルの容量見積もりで見積もった値より，少ない値でSQL文を実行できる場合があります。作業表用ファイルの容量見積もりについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

qq...q：

HiRDBがコストベース最適化を用いて計算した，問合せの総コストを表示します。なお，この行はSQL最適化モードがコストベース最適化モード2の場合に表示します。

ss...s.ss...s：

ルーチン中のSQLの場合，ルーチン名を「認可識別子.ルーチン識別子」の形式で表示します。ルーチン中のSQLでない場合は表示しません。

tt...t：

HiRDBが実行するトリガの名称を表示します。実行するトリガがない場合は，tt...t〜xx...xを表示しません。

実行するトリガが複数ある場合は，複数行に分けて表示します。複数行に分けて表示する場合は，実行順となります。

uu...u：

トリガ動作手続きの名称を表示します。

vv...v：

トリガ動作時期の種別を表示します。

BEFORE：

表に対する操作の前に実行するトリガ

AFTER：

表に対する操作の後に実行するトリガ

ww...w：

参照表定義時に定義した生成したトリガの場合，参照制約動作の種別を表示します。

CASCADE：

参照制約動作がCASCADE

xx...x：

トリガ動作の単位の種別を表示します。

FOR EACH ROW：

行単位トリガ

FOR EACH STATEMENT：

文単位トリガ

トリガ動作時期がBEFOREの行単位トリガ（TRIGGER1），トリガ動作時期がAFTERの文単位トリガ（TRIGGER2），参照動作がCASCADEで更新動作のときに生成したトリガ（URA2004050521222324）を実行する場合を例にすると，出力結果は次のようになります。

Trigger Name   : TRIGGER1
                     Procedure Name : (TRIG2003030405060708)
                     Action Time    : BEFORE
                     Action Type    : FOR EACH ROW
                 (URA2004050521222324)
                     Procedure Name : (TRIG2004050521222324)
                     Action Time    : AFTER(CASCADE)
                     Action Type    : FOR EACH ROW
                 TRIGGER2
                     Procedure Name : (TRIG2003091011121314)
                     Action Time    : AFTER
                     Action Type    : FOR EACH STATEMENT

17.5.1　集合演算処理情報

 ----- QUERY EXPRESSION BODY ID : aa...a -----
 Query Exp Type : bb...b cc...c(cc...c)  dd...d{AA...A}
 Sub Query Type : ee...e{BB...B} [ff...f]
 Transfer Type  : gg...g-CLM hh...h
 Order by Mode  : ii...i
 FLT Server     : jj...j
 SetOpe Process : kk...k = [ll...l mm...m{CC...C}] nn...n [ll...l mm...m{CC...C}]
                     :

［説明］

aa...a：

問合せ式本体IDを表示します。

集合演算を含む問合せ式本体ごとに番号を付けます。コンパイルしたSQLが複数の問合せ式本体で構成される場合，この行で情報を区切ります。

bb...b：

問合せ式の種類を表示します。

QUERY：

問合せ

DERIVED TABLE：

FROM句に問合せ式本体を指定した場合の導出表の問合せ

SUBQUERY：

副問合せ

WITH：

WITH句問合せ

VIEW：

ビュー定義の問合せ

cc...c(cc...c)：

問合せ式本体の種類によって，次の情報を表示します。

WITH句の問合せ式本体の場合，WITH句問合せ名（相関名）

ビュー定義の問合せ式本体の場合，ビュー表名（相関名）

FROM句に指定した導出表中の問合せ式本体の場合，"(NO NAME)"，又は"(NO NAME)(相関名)"

dd...d{AA...A}：

集合演算結果に対して作業表を作成する場合に情報を表示します。作業表を作成しない場合は表示しません。

ソートをしないで作業表を作成する場合は，"LIST"を表示します。

ソートをして作業表を作成する場合は，"LIST(SORT)"を表示します。

ee...e：

副問合せの実行方式を表示します。副問合せの実行方式については，マニュアル「HiRDB UAP開発ガイド」の「外への参照のない副問合せの実行方式」及び「外への参照のある副問合せの実行方式」を参照してください。

WORK TABLE ATS SUBQ：

副問合せの処理方式が作業表ATS実行であることを示します。

WORK TABLE SUBQ：

副問合せの処理方式が作業表実行であることを示します。

ROW VALUE SUBQ：

副問合せの処理方式が行値実行であることを示します。

HASH SUBQ：

副問合せの処理方式がハッシュ実行であることを示します。

NESTED LOOPS WORK TABLE SUBQ：

副問合せの処理方式がネストループ作業表実行であることを示します。

NESTED LOOPS ROW VALUE SUBQ：

副問合せの処理方式がネストループ行値実行であることを示します。

ff...f：

副問合せの実行方式でSQL最適化指定が指定されている場合，その指定が有効であったかどうかを表示します。SQL最適化指定については，マニュアル「HiRDB SQLリファレンス」を参照してください。

AS SPECIFIED：

指定が有効であったため，SQL最適化指定を適用しました。

SPECIFICATION IGNORED：

指定が無効であったため，SQL最適化指定を無視しました。

gg…g-CLM hh…h：

副問合せ，WITH句問合せ式本体，ビュー定義，及びHiRDBが内部的に問合せ式本体を作成する場合，上位の問合せに転送をするときの転送方法を表示します。

gg…gは転送に使用する列数，hh…hは転送方法の種類となります。転送方法の種類については，「転送方法の種類」を参照してください。

ii...i：

集合演算処理のORDER BYの処理方式を表示します。ORDER BYを指定していない場合，この行を表示しません。ORDER BYの処理方式については，「ORDER BY処理方式の種類」を参照してください。

HiRDB/シングルサーバの場合は，問合せ処理情報にも問合せ処理のORDER BYの処理方式を表示します。

jj...j：

集合演算処理のための，フロータブルサーバの要求数を表示します。フロータブルサーバが不要な場合は0を表示します。HiRDB/シングルサーバの場合は表示しません。

kk...k = [ll...l mm...m{CC...C}] nn...n [ll...l mm...m{CC...C}]：

集合演算の演算順序を表示します。集合演算を複数指定した場合は，複数行に分けて表示します。

kk...k：

集合演算結果の集合演算番号を，"LID(集合演算番号)"で表示します。

ll...l：

結合する問合せ式本体が問合せ指定の場合，"QID(問合せID)"を表示します。結合する問合せ式本体が複数の問合せ指定の結合結果の場合，"LID(集合演算番号)"を表示します。

mm...m{CC...C}：

集合演算をする前に，作業表を作成する場合に情報を表示します。作業表を作成しない場合は表示しません。

ソートをしないで作業表を作成する場合は，"LIST"を表示します。ソートをして作業表を作成する場合は，"LIST(SORT)"を表示します。

LIMIT句指定時に，作業表を作成しないで，ソート結果の先頭からn件だけをメモリ上で求める場合には，"MEM(SUBSORT)"を表示します。

nn...n：

集合演算の種別（"UNION"，"UNION ALL"，"EXCEPT"，又は"EXCEPT ALL"）を表示します。前後にある[ll...l mm...m{CC...C}]は，結合する問合せ式本体となります。

集合演算の演算順序の表示例を次に示します。

((SELECT C1 FROM T1   ...................問合せID：1
    UNION SELECT C1 FROM T2)   ..........問合せID：2
      UNION ALL SELECT C1 FROM T3)   ....問合せID：3

SetOpe Process : LID(1) = [QID(1) LIST(SORT) {...}] UNION [QID(2) LIST(SORT) {...}]
                 LID(2) = [LID(1) LIST{...}] UNION ALL [QID(3) LIST{...}]

17.5.2　問合せ処理情報

 ----- QUERY ID : aa...a -----
 Query Type     : bb...b cc...c(cc...c)  dd...d{AA...A},...
 Sub Query Type : ee...e{BB...B}  [ff...f]
 IfThenCnd      :{CC...C}
 Transfer Type  : gg...g-CLM hh...h
 Order by Mode  : ii...i
 Having         :{DD...D}
 Group by Mode  : jj...j
 FLT Server     : kk...k(ll...l)  mm...m-CLM nn...n

［説明］

aa...a：

問合せIDを表示します。

問合せ指定単位に番号を付けます。コンパイルしたSQLが複数の問合せ指定で構成される場合，この行で区切って情報を出力します。

bb...b：

問合せの種類を表示します。

QUERY：

問合せ

DERIVED TABLE：

FROM句に問合せ式本体を指定した場合の導出表の問合せ

SUBQUERY：

副問合せ

WITH：

WITH句問合せ指定

VIEW：

ビュー定義の問合せ指定

DUMMY：

HiRDBが内部的に作成する問合せ

CONSTRAINT：

参照制約の制約条件内の副問合せ

cc...c(cc...c)：

問合せの種類によって，次のように表示します。

WITH句問合せ指定の場合はWITH句問合せ名（相関名）となります。

ビュー定義の問合せ指定の場合はビュー表名（相関名）となります。

FROM句に指定した導出表中の問合せ指定の場合は，"(NO NAME)"，又は"(NO NAME)(相関名)"を表示します。

HiRDBが内部的に問合せを作成する場合は，その問合せ結果を一時的に格納するために，内部的に作成する作業表名"(DUMMY 作業表番号)"となります。なお，作業表番号は3けたの整数です。

参照制約の場合，制約条件内の副問合せのときには制約名となります。

dd...d{AA...A},...：

データを検索し，必要に応じて結合した結果に対して，GROUP BY，ORDER BY，DISTINCT，集合演算，排他処理などのために，作業表を作成する場合に情報を表示します。作業表を作成しない場合は表示しません。

作業表を作成する処理の組み合わせによって，複数の作業表を作成する場合はコンマで区切られます。

ソートをしないで作業表を作成する場合は，"LIST"を表示します。ソートをして作業表を作成する場合は，"LIST(SORT)"を表示します。

LIMIT句指定時に，作業表を作成しないで，ソート結果の先頭からn件だけをメモリ上で求める場合には，"MEM(SUBSORT)"を表示します。

ee...e{BB...B}：

副問合せの実行方式を表示します。副問合せの実行方式については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

WORK TABLE ATS SUBQ：

副問合せの処理方式が作業表ATS実行の場合

WORK TABLE SUBQ：

副問合せの処理方式が作業表実行の場合

ROW VALUE SUBQ：

副問合せの処理方式が行値実行の場合

HASH SUBQ：

副問合せの処理方式がハッシュ実行の場合

NESTED LOOPS WORK TABLE SUBQ：

副問合せの処理方式がネストループ作業表実行の場合

NESTED LOOPS ROW VALUE SUBQ：

副問合せの処理方式がネストループ行値実行の場合

ff...f：

副問合せ実行方式のSQL最適化指定を指定した場合，その指定が有効か無効かを表示します。SQL最適化指定については，マニュアル「HiRDB SQLリファレンス」を参照してください。

AS SPECIFIED：

有効です。

SPECIFICATION IGNORED：

無効です。

gg...g-CLM hh...h：

副問合せ，WITH句問合せ指定，ビュー定義，集合演算，及びHiRDBが内部的に問合せを作成する場合，上位の問合せに結果を転送するときの転送方法を表示します。gg...gには転送に使用する列数，hh...hには転送方法の種類を表示します。転送方法の種類については，「転送方法の種類」を参照してください。

ii...i：

ORDER BYの処理方式を表示します。ORDER BY句を指定していない場合でも，暗黙的にORDER BYの処理をすることがあります。ORDER BYの処理方式については，「ORDER BY処理方式の種類」を参照してください。

ORDER BYの処理をしない場合，この行を表示しません。

jj...j：

グループ分け処理（暗黙的グループ分け処理を含む）の処理方式を表示します。グループ分け処理方式については，「グループ分け処理方式の種類」を参照してください。

グループ分け処理をしない場合，この行を表示しません。

kk...k：

フロータブルサーバの要求数を表示します。

ll...l：

フロータブルサーバの使用目的を表示します。

検索実行時は，要求数を超えない範囲で，そのときに利用できるすべてのフロータブルサーバを使用します。HiRDB/シングルサーバの場合，この行を表示しません。

IMPLICIT GROUP BY：

明示的にGROUP BYを指定しない場合でも，集合関数処理のための内部的なグループ分け処理に使用します。

GROUP BY：

GROUP BYで指定したグループ分け処理のために使用します。

DISTINCT：

DISTINCT処理のために使用します。

ORDER BY：

ORDER BY処理をするために，フロータブルサーバを割り当てます。

FOR READ ONLY：

FOR READ ONLY句の処理のために，フロータブルサーバを割り当てます。

FOR UPDATE：

FOR UPDATE句の処理のために，フロータブルサーバを割り当てます。

FOR UPDATE OF：

FOR UPDATE OF 列名〔，列名〕…の処理のために，フロータブルサーバを割り当てます。

PRE-UPDATE DATA：

更新前データの参照処理のためにフロータブルサーバを割り当てます。

mm...m-CLM nn...n：

フロータブルサーバへの転送方法を表示します。mm...mには転送に使用する列数を，nn...nには転送方法の種類を表示します。転送方法の種類については，「転送方法の種類」を参照してください。

17.5.3　結合処理情報

(1)　HiRDB/シングルサーバで結合検索をする場合，又はHiRDB/パラレルサーバで結合検索（SELECT-APSLなし）をする場合

 JOIN
  # Join ID     :aa...a
    L Join ID   : bb...b ff...f{BB...B}
    L Table     : cc...c(cc...c) dddddddddd(dd...d) ff...f{BB...B} {AA...A}
    L SubQ ID   : ee...e ff...f{BB...B}
    R Join ID   : gg...g kk...k{DD...D}
    R Table     : hh...h(hh...h) iiiiiiiiii(ii...i) kk...k{DD...D} {CC...C}
    R SubQ ID   : jj...j kk...k{DD...D}
    R SubQEX ID : tt...t kk...k{DD...D}
    JoinCnd     :{EE...E}
    Join Type   :ll...l-CLM mm...m(nn...n) oo...o-CLM pp...p(qq...q)  [rr...r]
    FLT Server  :ss...s
    RowCnd      :{FF...F}
    RowCndAfter :{GG...G}
    IfThenCndOn :{HH...H}
    IfThenCnd   :{II...I}

［説明］

aa...a：

結合処理IDを表示します。

結合処理単位で番号を付け，結合処理が複数ある場合にはこの行で区切られます。

bb...b：

左側の結合相手がほかの結合結果の場合，結合処理IDを表示します。

結合相手がほかの結合結果でない場合は，この行を表示しません。

cc...c(cc...c)：

左側の結合相手が表の場合に，表名（相関名）を表示します。

相関名を使用していない場合は，（相関名）を表示しません。また，表の種類に応じて，次の情報を表示します。

WITH句の導出表の場合は問合せ名

ビュー表の場合はビュー表名（相関名）

FROM句に指定した導出表の場合は"(NO NAME)"，又は"(NO NAME)(相関名)"

結合相手が表でない場合は，この行を表示しません。

dddddddddd(dd...d)：

左側の結合相手が表の場合に，表IDを16進数（10進数）で表示します。

結合相手が表でない場合は，この行を表示しません。

ee...e：

左側の結合相手が副問合せの場合に，副問合せの問合せIDを表示します。

結合相手が副問合せでない場合は，この行を表示しません。

ff...f{BB...B}：

結合をする前に作業表を作成する場合に情報を表示します。作業表を作成しない場合は表示しません。

ソートをしないで作業表を作成する場合は，"LIST"を表示します。ソートをして作業表を作成する場合は，"LIST(SORT)"を表示します。

gg...g：

右側の結合相手がほかの結合結果の場合に，結合処理IDを表示します。

結合相手がほかの結合結果でない場合は，この行を表示しません。

hh...h(hh...h)：

右側の結合相手が表の場合に，表名（相関名）を表示します。

相関名を使用していない場合は，（相関名）を表示しません。また，表の種類に応じて，次の情報を表示します。

WITH句の導出表の場合は問合せ名

ビュー表の場合はビュー表名（相関名）

FROM句に指定した導出表の場合は"(NO NAME)"，又は"(NO NAME)(相関名)"

結合相手が表でない場合は，この行を表示しません。

iiiiiiiiii(ii...i)：

右側の結合相手が表の場合に，表IDを16進数（10進数）で表示します。

結合相手が表でない場合は，この行を表示しません。

jj...j：

右側の結合相手が集合演算を含まない副問合せの場合に，副問合せの問合せIDを表示します。結合相手が集合演算を含まない副問合せでない場合，この行を表示しません。

kk...k{DD...D}：

結合をする前に，作業表を作成する場合に情報を表示します。作業表を作成しない場合は表示しません。

ソートをしないで作業表を作成する場合は，"LIST"を表示します。ソートをして作業表を作成する場合は，"LIST(SORT)"を表示します。

ll...l-CLM mm...m(nn...n)：

結合方法を表示します。

ll...l：

結合に使用する結合条件の数（列数）を表示します。

mm...m：

結合方法の種類を表示します。結合方法の種類については，「結合方法の種類」を参照してください。

nn...n：

結合処理の実行種別を表示します。

INNER：

内結合をします。探索条件を評価し，真となる場合に結合結果を返します。

LEFT OUTER[(R)]：

左外結合をします。SQLにRIGHT [OUTER] JOINを指定した場合，(R)を表示します（LEFT [OUTER] JOINを指定した場合は表示しません）。このとき，SQL最適化処理が右外結合を等価な左外結合に変換して，左外結合をします。

ON 探索条件に指定した条件を評価し，真となる場合に結合結果を返します。外表の行に対して，内表が1行も真にならない場合は，内表の列にNULL値を埋めて結合結果を返します。

EXIST：

探索条件を評価し，外表の行に対して内表のうち少なくとも1行が真となる場合に，外表の行を返します。

NOT EXIST：

探索条件を評価し，外表の行に対して内表が1行も真とならない場合に，外表の行を返します。

ALL：

探索条件を評価し，外表の行に対して内表のすべての行が真となる場合に，外表の行を返します。

VALUE：

探索条件を評価し，外表の行に対して内表のうち1行だけが真となる場合に，外表の行を返します。2行以上が真となる場合にはエラーとなります。

oo...o-CLM pp...p(qq...q)：

結合方法をするサーバへの転送方法を表示します。

oo...o：

転送に使用する列数を表示します。

pp...p：

転送方法の種類を表示します。転送方法の種類については，「転送方法の種類」を参照してください。

qq...q：

転送方向を表示します。

FROM L TO R：

左側を右側に転送して結合します。

FROM R TO L：

右側を左側に転送して結合します。

TO FLT：

左側，右側の両方を，フロータブルサーバに転送して結合します。

rr...r：

結合方式のSQL最適化指定を指定した場合，その指定が有効か無効かを表示します。SQL最適化指定については，マニュアル「HiRDB SQLリファレンス」を参照してください。

AS SPECIFIED：

有効です。

SPECIFICATION IGNORED：

無効です。

ss...s：

HiRDB/パラレルサーバでソート処理に使うフロータブルサーバの要求数を表示します。

検索実行時は，要求数を超えない範囲で，そのときに利用できるすべてのフロータブルサーバを使用します。結合方法が"NESTED LOOPS JOIN"の場合は0となります。HiRDB/シングルサーバの場合は，この行を表示しません。

tt...t：

右側の結合相手が集合演算を含む副問合せの場合に，副問合せの問合せIDを表示します。

結合相手が集合演算を含む副問合せでない場合は，この行を表示しません。

(2)　HiRDB/パラレルサーバで結合検索（SELECT-APSLあり）をする場合

 JOIN
  # Join ID     :aa...a
    L Join ID   : bb...b ee...e{AA...A}
    L Table     : cc...c(cc...c) dddddddddd(dd...d)  ee...e{AA...A}
    R Join ID   : ff...f  ii...i{BB...B}
    R Table     : gg...g(gg...g) hhhhhhhhhh(hh...h)  ii...i{BB...B}
    JoinCnd     :{CC...C}
    Join Type   :SELECT-APSL
          Table Name   :jj...j(jj...j) kkkkkkkkkk(kk...k)
          Column ID    :llllllllll(ll...l)
          Predicate    :mm...m
          Threshold    :nn...n
       [1] oo...o-CLM pp...p(qq...q)  rr...r-CLM ss...s(tt...t) ........1
           FLT Server  :uu...u
           IfThenCnd   :{DD...D}
       [2] oo...o-CLM pp...p(qq...q)  rr...r-CLM ss...s(tt...t) ........2
           FLT Server  :uu...u
           IfThenCnd   :{DD...D}

［説明］

1は結合方法の第一候補，2は結合方法の第二候補を示しています。

aa...a：

結合処理IDを表示します。

結合処理単位で番号を付け，結合処理が複数ある場合にはこの行で区切って情報を表示します。

bb...b：

左側の結合相手がほかの結合結果の場合に，結合処理IDを表示します。

結合相手がほかの結合結果でない場合は，この行を表示しません。

cc...c(cc...c)：

左側の結合相手が表の場合に，表名（相関名）を表示します。

相関名を使用していない場合は，（相関名）を表示しません。また，表の種類に応じて，次の情報を表示します。

WITH句の導出表の場合は問合せ名

ビュー表の場合はビュー表名（相関名）

FROM句に指定した導出表の場合は"(NO NAME)"，又は"(NO NAME)(相関名)"

結合相手が表でない場合は，この行を表示しません。

dddddddddd(dd...d)：

左側の結合相手が表の場合に，表IDを16進数（10進数）で表示します。

結合相手が表でない場合は，この行を表示しません。

ee...e{AA...A}：

結合をする前に，作業表を作成する場合に情報を表示します。作業表を作成しない場合は表示しません。

ソートをしないで作業表を作成する場合は，"LIST"を表示します。ソートをして作業表を作成する場合は，"LIST(SORT)"を表示します。

ff...f：

右側の結合相手がほかの結合結果の場合に，結合処理IDを表示します。

結合相手がほかの結合結果でない場合は，この行を表示しません。

gg...g(gg...g)：

右側の結合相手が表の場合に，表名（相関名）を表示します。

相関名を使用していない場合は，（相関名）を表示しません。また，表の種類に応じて，次の情報を表示します。

WITH句の導出表の場合は問合せ名

ビュー表の場合はビュー表名（相関名）

FROM句に指定した導出表の場合は"(NO NAME)"，又は"(NO NAME)(相関名)"

結合相手が表でない場合は，この行を表示しません。

hhhhhhhhhh(hh...h)：

右側の結合相手が表の場合に，表IDを16進数（10進数）で表示します。

結合相手が表でない場合は，この行を表示しません。

ii...i{BB...B}：

結合をする前に，作業表を作成する場合に情報を表示します。作業表を作成しない場合は表示しません。

ソートをしないで作業表を作成する場合は，"LIST"を表示します。ソートをして作業表を作成する場合は，"LIST(SORT)"を表示します。

jj...j(jj...j)：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる述語で使用する列の表名（相関名）を表示します。

kkkkkkkkkk(kk...k)：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる述語で使用する列の表IDを16進数（10進数）で表示します。

llllllllll(ll...l)：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる述語で使用する列IDを16進数（10進数）で表示します。

mm...m：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる条件の述語を表示します。

nn...n：

SQLオブジェクトを選択するための基準値となるヒット率を表示します。

実行時に算出したヒット率がこの値より小さい場合は，第一候補のSQLオブジェクトを使用します。実行時に算出したヒット率がこの値と等しい又は大きい場合は，第二候補のSQLオブジェクトを使用します。

oo...o-CLM pp...p(qq...q)：

結合方法を表示します。

oo...o：

結合に使用する結合条件の数（列数）を表示します。

pp...p：

結合方法の種類を表示します。結合方法の種類については，「結合方法の種類」を参照してください。

qq...q：

結合処理の実行種別を表示します。

INNER：

内結合をします。探索条件を評価し，真となる場合に結合結果を返します。

rr...r-CLM ss...s(tt...t)：

結合処理をするサーバへの転送方法を表示します。

rr...r：

転送に使用する列数を表示します。

ss...s：

転送方法の種類を表示します。転送方法の種類については，「転送方法の種類」を参照してください。

tt...t：

転送方向を表示します。

FROM L TO R：

左側を右側に転送して結合します。

FROM R TO L：

右側を左側に転送して結合します。

TO FLT：

左側，右側の両方を，フロータブルサーバに転送して結合します。

uu...u：

HiRDB/パラレルサーバで，ソート処理に使用するフロータブルサーバ要求数を表示します。

検索実行時は，要求数を超えない範囲で，そのときに利用できるすべてのフロータブルサーバを使用します。結合方法が"NESTED LOOPS JOIN"の場合は0となります。HiRDB/シングルサーバの場合，この行を表示しません。

17.5.4　実表検索処理情報

(1)　HiRDB/シングルサーバで実表検索をする場合，又はHiRDB/パラレルサーバの実表検索（SELECT-APSLなし）で，インデクスを使用しないか，一つだけ使用した検索をする場合

 SCAN
  # Table Name  :aa...a(aa...a) bbbbbbbbbb(bb...b) (xx...x) cc...c{AA...A}
    Cost        :d(ee...eROW) {T-BB...B,I-CC...C,P-DD...D,AND-EE...E,OR-FF...F}
    RDAREA      :ff...f-CLM gg...g(hh...h) (ii...iRD/jj...jBES) [kkkk(kk...k),...] ll...l
    Rebalance   :mm...m
    Scan Type   :nn...n(oo...o)  [pp...p]
    Index Name  :qq...q rrrrrrrrrr(rr...r) (ss...s)tt...t
                      SearchCnd :uu...u[vv...v],...
                      KeyCnd    :ww...w
    RowCnd      :{HH...H}
    IfThenCnd   :{II...I}

［説明］

一時表に対する検索処理情報の場合，"RDAREA"の行を表示しません。

VALUESを指定したINSERT文を実行した場合，"Scan Type"の行を表示しません。

aa...a(aa...a)：

検索対象となる表名（相関名）を表示します。

相関名を使用していない場合は，（相関名）を表示しません。検索処理が複数ある場合は，この行で区切って情報を表示します。

bbbbbbbbbb(bb...b)：

検索対象となる表IDを16進数（10進数）で表示します。

cc...c{AA...A}：

実表からデータを検索した後に，作業表を作成する場合に情報を表示します。作業表を作成しない場合は表示しません。

ソートをしないで作業表を作成する場合は，"LIST"を表示します。ソートをして作業表を作成する場合は，"LIST(SORT)"を表示します。

d：

最適化情報収集ユティリティ（pdgetcst）による最適化情報の取得の有無を表示します。

Y ：最適化情報を取得しています。

N ：最適化情報を取得していません。

ee...e：

HiRDBがアクセスパスを決定するために使用する表の行数を表示します。

デフォルトの行数は，SQL最適化モードによって異なります。

コストベース最適化モード1，又はHiRDB/シングルサーバでコストベース最適化モード2の場合

1000万行

HiRDB/パラレルサーバでコストベース最適化モード2の場合

1000万行×表が格納されたRDエリアがあるバックエンドサーバ数

最適化情報収集ユティリティ（pdgetcst）を実行すると，HiRDBがアクセスパスを決定するために使用する表の行数を変更できます。

ff...f：

表の分割列数を表示します。

gg...g：

表分割の種別を表示します。

NON DIVISION：非分割

KEY RANGE：キーレンジ分割（格納条件指定）

PARTITION：キーレンジ分割（境界値指定）

MULTIDIM PARTITION：マトリクス分割（境界値指定）

MULTIDIM：ハッシュ分割を含むマトリクス分割

FLEXIBLE HASH：リバランス機能を使用しないフレキシブルハッシュ分割

FIX HASH：リバランス機能を使用しないFIXハッシュ分割

RB FLEXIBLE HASH：リバランス機能を使用するフレキシブルハッシュ分割

RB FIX HASH：リバランス機能を使用するFIXハッシュ分割

hh...h：

ハッシュ分割時に，ハッシュ関数名を表示します。ハッシュ分割時以外は表示しません。また，ハッシュ分割を含むマトリクス分割の場合も表示しません。

ii...iRD/jj...jBES：

ii...iには表の分割数（RDエリア数）が，jj...jには表が格納されたRDエリアがあるバックエンドサーバ数を表示します。

非横分割表の場合，ii...iは1となります。また，HiRDB/シングルサーバの場合，"/jj...jBES"を表示しません。

kkkk(kk...k),...：

表格納用RDエリアのRDエリアIDを16進数（10進数）で表示します。

表分割をしている場合は分割数分のRDエリアIDを表示します。RDエリアIDに対応するRDエリア名は，pddblsコマンドで調べることができます。

ll...l：

ALL：

表を定義しているすべてのRDエリアを検索する場合に表示します。

RESTRICTED：

表を定義しているRDエリアの内，探索条件によって該当データがある可能性のあるRDエリアだけを検索する場合に表示します。

mm...m：

リバランス機能を使用する表の場合，リバランス状態を表示します。

リバランス機能を使用しない表の場合，この行を表示しません。リバランス機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

NORMAL：

通常の状態，又はALTER TABLEでRDエリアを追加しただけでリバランスユティリティ（pdrbal）を実行していない状態です。

ON REBALANCE：

表がリバランス中（リバランス開始からリバランス終了まで）の状態です。

nn...n：

検索方法を表示します。

検索方法については，「検索方法の種類」を参照してください。

oo...o：

Group by ModeがIMPLICIT MIN-MAX INDEXの場合に，インデクスの検索方法が示されます。

MIN：

インデクスの検索する範囲を昇順にサーチして，探索条件を満たす行があった時点でインデクスの検索を打ち切ります。

MAX：

インデクスの検索する範囲を降順にサーチして，探索条件を満たす行があった時点でインデクスの検索を打ち切ります。

MIN,MAX：

まず，MINの値を求めるためにインデクスを昇順にサーチして，次にMAXの値を求めるためにインデクスを降順にサーチします。

集合関数にMINだけ，又はMAXだけを指定した場合に比べて，検索時間は約2倍になります。

MINとMAXでは，インデクスのサーチする順序が逆になるため，サーチ条件のインデクスのサーチ範囲も逆になりますが，MINとMAXを混在している場合にはMIN用のサーチ範囲だけ表示します。

pp...p：

使用インデクスのSQL最適化指定を指定した場合，その指定が有効か無効かを表示します。SQL最適化指定については，マニュアル「HiRDB SQLリファレンス」を参照してください。

AS SPECIFIED：

有効です。

SPECIFICATION IGNORED：

無効です。

PARTIALLY IGNORED：

一部の指定は有効ですが，それ以外の指定は無効です。

qq...q：

検索で使用するインデクス名を表示します。

インデクスを使用しないで検索する場合には，この行を表示しません。

rrrrrrrrrr(rr...r)：

検索で使用するインデクスIDを16進数（10進数）で表示します。

ss...s：

インデクス属性を組み合わせた情報を表示します。

数字：インデクス構成列数

G：プラグインインデクス

U：ユニークキーインデクス

C：クラスタキーインデクス

D：分割キーインデクス又はプラグインインデクス

d：サーバ内分割された非分割キーインデクス

E：除外キー値を指定したインデクス

M：繰返し列を含むインデクス

P：主キーインデクス

tt...t：

[プラグインインデクス及び部分構造インデクス以外のインデクスの場合]

インデクス構成列情報を列ごとにコンマ(，)で区切って，全体を（ ）で囲んで表示します。

インデクス構成列情報は，構成列のサーチ方向とインデクス構成列名で表示します。

構成列のサーチ方向は，構成列を昇順にサーチする場合には＋，降順にサーチする場合には−を表示します。

例）　第1構成列(C1)は昇順，第2構成列(C2)は降順にサーチする場合
　　　(+C1,-C2)

[部分構造インデクスの場合]

インデクスを構成するインデクス構成情報を，全体を（ ）で囲んで表示します。インデクス構成情報全体には次の情報を表示します。

XML型が定義された列の列名

部分構造パスのサーチ方向

部分構造パスのサーチ方向は，部分構造パスを昇順にサーチする場合には＋，降順にサーチする場合には−を表示します。

部分構造インデクスを構成する部分構造パス

部分構造インデクスを構成する部分構造パスの数

CREATE INDEXへのUSING UNIQUE TAGの指定有無

USING UNIQUE TAGの指定がある場合はUを表示します。

これらの情報は，2.〜5.の全体を［ ］で囲んで表示します。その中でも4.と5.は（ ）で囲んで表示します。

例1）　XML型の列(C1)のUSING UNIQUE TAGを指定した部分構造パス(/A/B/C)を昇順にサーチした場合(XML名前空間宣言の指定なし)
　　　(C1[(1U)+/A/B/C])

例2）　XML型列(C1)のUSING UNIQUE TAGを指定した部分構造パス(/A/B/C)を昇順にサーチした場合(XML名前空間宣言に指定した接頭辞を使用)
　　　(C1[(1U)+declare namespace aaa
　　　　=”http://www.w3.org/XML/1998/namespace”;/A/B/aaa:C])

例3）　XML型列(C1)のUSING UNIQUE TAGを指定した部分構造パス(/A/B/C)を昇順にサーチした場合(HiRDBで定義されている接頭辞(xml)を使用)
　　　(C1[(1U)+/A/B/xml:C])

[プラグインインデクスの場合]

プラグイン提供関数の種別によって，詳細な情報を表示します。プラグイン提供関数の種別については，「プラグイン提供関数の種別」を参照してください。関数呼出しの第2引数以降は表示しません。

例1）　種別がSCAN TYPEとなるプラグイン提供関数(WITHIN)で第1構成列がC1の場合
　　　WITHIN(C1,...)[SCAN TYPE]

例2）　種別がINDEX SCAN TYPEとなるプラグイン提供関数(CONTAINS)で第1構成列がC1の場合
　　　CONTAINS(C1,...)[INDEX SCAN TYPE]

例3）　種別がFULL SCAN TYPEとなるプラグイン提供関数(SEARCHFEATUREDATA)で第1構成列がC1の場合
　　　SEARCHFEATUREDATA(C1,...)[FULL SCAN TYPE]

uu...u[vv...v],...：

サーチ条件の種類，サーチ条件の絞り込み範囲を表示します。サーチ条件については，「サーチ条件」を参照してください。

インデクスを使用した検索でサーチ条件がない場合，インデクスの全範囲検索をするときは"NONE(FULL SCAN)"を表示します。Group by modeがIMPLICIT MIN-MAX INDEXの場合，"NONE"を表示します（探索条件が真になった時点で検索を打ち切り，インデクスの全範囲検索になるとは限らないため，"(FULL SCAN)"は表示しません）。

サーチ条件によって，絞り込み範囲の数が0個となる場合，又は1個以上となる場合があります。

インデクスの第2構成列以降にサーチ条件があるが，第１構成列にはサーチ条件がない場合には，サーチ条件の絞り込み範囲の後ろに"(FULL SCAN)"を表示します。

ww...w：

キー条件を表示します。キー条件については，「キー条件」を参照してください。

キー条件がない場合は，この行を表示しません。

xx...x：

検索対象が共用表の場合は"SHARED"を，一時表の場合は"TEMPORARY"を表示します。共用表，又は一時表でない場合，表示しません。

(2)　HiRDB/シングルサーバで実表検索，又はHiRDB/パラレルサーバで実表検索（SELECT-APSLなし）で，インデクスを二つ以上使用した検索をする場合

 SCAN
  # Table Name   :aa...a(aa...a) bbbbbbbbbb(bb...b) (CC...C) cc...c{DD...DD}
    Cost         :d (ee...eROW)  {T-EE...E,I-FF...F,P-GG...G,AND-HH...H,OR-II...I}
    RDAREA       :ff...f-CLM gg...g(hh...h) (ii...iRD/jj...jBES) [kkkk(kk...k),...] LL...L
    Rebalance    :mm...m
    Scan Type    :nn...n  [oo...o]
    Index Name   :pp...p = qq...q rrrrrrrrrr(rr...r) (ss...s) tt...t BB...B{KK...K}
                         Scan Type :uu...u
                         SearchCnd :vv...v[ww...w],...
                         KeyCnd    :xx...x
                         RowCnd    :{HH...H}
                         IfThenCnd :{NN...N}
                  pp...p = qq...q rrrrrrrrrr(rr...r) (ss...s) tt...t BB...B{KK...K}
                         Scan Type :uu...u
                         SearchCnd :vv...v[ww...w],...
                         KeyCnd    :xx...x
                         RowCnd    :{HH...H}
                         IfThenCnd :{NN...N}
                  pp...p = [yy...y zz...z{JJ...J}] AA...A[yy...y zz...z{JJ...J}]
    RowCnd       :{MM...M}
    IfThenCnd    :{OO...O}

［説明］

一時表に対する検索処理情報の場合，"RDAREA"の行を表示しません。

aa...a(aa...a)：

検索対象となる表名（相関名）を表示します。

相関名を使用していない場合，（相関名）を表示しません。検索処理が複数ある場合は，この行で区切って情報を表示します。

bbbbbbbbbb(bb...b)：

検索対象となる表IDを16進数（10進数）で表示します。

cc...c{DD...D}：

実表からデータを検索した後に，作業表を作成する場合に情報を表示します。作業表を作成しない場合は表示しません。

ソートをしないで作業表を作成する場合は，"LIST"を表示します。ソートをして作業表を作成する場合は，"LIST(SORT)"を表示します。

d：

最適化情報収集ユティリティ（pdgetcst）による最適化情報の取得の有無を表示します。

Y：最適化情報を取得しています。

N：最適化情報を取得していません。

ee...e：

HiRDBがアクセスパスを決定するために使用する表の行数を表示します。

デフォルトの行数は，SQL最適化モードによって異なります。

コストベース最適化モード1，又はHiRDB/シングルサーバでコストベース最適化モード2の場合

1000万行

HiRDB/パラレルサーバでコストベース最適化モード2の場合

1000万行×表が格納されたRDエリアがあるバックエンドサーバ数

最適化情報収集ユティリティ（pdgetcst）を実行すると，HiRDBがアクセスパスを決定するために使用する表の行数を変更できます。

ff...f：

表の分割列数を表示します。

gg...g：

表分割の種別を表示します。

NON DIVISION：非分割

KEY RANGE：キーレンジ分割（格納条件指定）

PARTITION：キーレンジ分割（境界値指定）

MULTIDIM PARTITION：マトリクス分割（境界値指定）

MULTIDIM：ハッシュ分割を含むマトリクス分割

FLEXIBLE HASH：リバランス機能を使用しないフレキシブルハッシュ分割

FIX HASH：リバランス機能を使用しないFIXハッシュ分割

RB FLEXIBLE HASH：リバランス機能を使用するフレキシブルハッシュ分割

RB FIX HASH：リバランス機能を使用するFIXハッシュ分割

hh...h：

ハッシュ分割時にハッシュ関数名を表示します。ハッシュ分割時以外は表示しません。また，ハッシュ分割を含むマトリクス分割の場合も表示しません。

ii...iRD/jj...jBES：

ii...iには表の分割数（RDエリア数）が，jj...jには表が格納されたRDエリアがあるバックエンドサーバ数を表示します。

非横分割表の場合，ii...iは1となります。また，HiRDB/シングルサーバの場合，"/jj...jBES"を表示しません。

kkkk(kk...k),...：

表格納用RDエリアのRDエリアIDを16進数（10進数）で表示します。

表分割をしている場合は分割数分のRDエリアIDを表示します。RDエリアIDに対応するRDエリア名は，pddblsコマンドで調べられます。

ll...l：

ALL：

表を定義しているすべてのRDエリアを検索する場合に表示します。

RESTRICTED：

表を定義しているRDエリアのうち，探索条件によって該当するデータがある可能性のあるRDエリアだけ検索する場合に表示します。

mm...m：

リバランス機能を使用する表の場合，リバランス状態を表示します。

リバランス機能を使用しない表の場合，この行を表示しません。リバランス機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

NORMAL：

通常の状態，又はALTER TABLEでRDエリアを追加しただけでリバランスユティリティ（pdrbal）を実行していない状態です。

ON REBALANCE：

表がリバランス中（リバランス開始からリバランス終了まで）の状態です。

nn...n：

検索方法を表示します。

検索方法については，「検索方法の種類」を参照してください。

oo...o：

使用インデクスのSQL最適化指定を指定した場合，その指定が有効か無効かを表示します。SQL最適化指定については，マニュアル「HiRDB SQLリファレンス」を参照してください。

AS SPECIFIED：

有効です。

SPECIFICATION IGNORED：

無効です。

PARTIALLY IGNORED：

一部の指定は有効ですが，それ以外の指定は無効です。

pp...p：

AND PLURAL INDEXES SCANのときに作成する作業表番号を，"LID(作業表番号)"で表示します。

qq...q：

AND PLURAL INDEXES SCAN，又はOR PLURAL INDEXES SCANの場合に，作業表を作成するために使用するインデクス名を複数行表示します。ただし，インデクスを使用しないで作成する作業表については，インデクス名に"(NO USE)"を表示します。

rrrrrrrrrr(rr...r)：

検索で使用するインデクスIDを16進数（10進数）で表示します。

ss...s：

次のインデクス属性を組み合わせた情報を表示します。

数字：インデクス構成列数

G：プラグインインデクス

U：ユニークキーインデクス

C：クラスタキーインデクス

D：分割キーインデクス又はプラグインインデクス

d：サーバ内分割された非分割キーインデクス

E：除外キー値を指定したインデクス

M：繰返し列を含むインデクス

P：主キーインデクス

tt...t：

[プラグインインデクス及び部分構造インデクス以外のインデクスの場合]

インデクス構成列情報を列ごとにコンマ(，)で区切って，全体を（ ）で囲んで表示します。

インデクス構成列情報は，構成列のサーチ方向とインデクス構成列名で表示します。

構成列のサーチ方向は，構成列を昇順にサーチする場合には＋，降順にサーチする場合には−を表示します。

例）　第1構成列(C1)は昇順，第2構成列(C2)は降順にサーチする場合
　　　(+C1,-C2)

[部分構造インデクスの場合]

インデクスを構成するインデクス構成情報を，全体を（ ）で囲んで表示します。インデクス構成情報全体には次の情報を表示します。

XML型が定義された列の列名

部分構造パスのサーチ方向

部分構造パスのサーチ方向は，部分構造パスを昇順にサーチする場合には＋，降順にサーチする場合には−を表示します。

部分構造インデクスを構成する部分構造パス

部分構造インデクスを構成する部分構造パスの数

CREATE INDEXへのUSING UNIQUE TAGの指定有無

USING UNIQUE TAGの指定がある場合はUを表示します。

これらの情報は，2.〜5.の全体を［ ］で囲んで表示します。その中でも4.と5.は（ ）で囲んで表示します。

例1）　XML型の列(C1)のUSING UNIQUE TAGを指定した部分構造パス(/A/B/C)を昇順にサーチした場合(XML名前空間宣言の指定なし)
　　　(C1[(1U)+/A/B/C])

例2）　XML型列(C1)のUSING UNIQUE TAGを指定した部分構造パス(/A/B/C)を昇順にサーチした場合(XML名前空間宣言に指定した接頭辞を使用)
　　　(C1[(1U)+declare namespace aaa
　　　　=”http://www.w3.org/XML/1998/namespace”;/A/B/aaa:C])

例3）　XML型列(C1)のUSING UNIQUE TAGを指定した部分構造パス(/A/B/C)を昇順にサーチした場合(HiRDBで定義されている接頭辞(xml)を使用)
　　　(C1[(1U)+/A/B/xml:C])

[プラグインインデクスの場合]

プラグイン提供関数の種別によって，詳細な情報を表示します。プラグイン提供関数の種別については，「プラグイン提供関数の種別」を参照してください。関数呼出しの第2引数以降は表示しません。

例1）　種別がSCAN TYPEとなるプラグイン提供関数(WITHIN)で第1構成列がC1の場合
　　　WITHIN(C1,...)[SCAN TYPE]

例2）　種別がINDEX SCAN TYPEとなるプラグイン提供関数(CONTAINS)で第1構成列がC1の場合
　　　CONTAINS(C1,...)[INDEX SCAN TYPE]

例3）　種別がFULL SCAN TYPEとなるプラグイン提供関数(SEARCHFEATUREDATA)で第1構成列がC1の場合
　　　SEARCHFEATUREDATA(C1,...)[FULL SCAN TYPE]

uu...u：

それぞれの作業表を作成するための検索方法を表示します。

検索方法については，「検索方法の種類」を参照してください。

vv...v [ww...w],...：

サーチ条件の種類，及びサーチ条件の絞り込み範囲を表示します。サーチ条件については，「サーチ条件」を参照してください。

インデクスを使用した検索でサーチ条件がない場合，サーチ条件の種類には"NONE(FULL SCAN)"を表示します。

サーチ条件によって，絞り込み範囲の数が0個となる場合，又は1個以上となる場合があります。

インデクスの第2構成列以降にサーチ条件があるが，第1構成列にはサーチ条件がない場合には，サーチ条件の絞り込み範囲の後ろに"(FULL SCAN)"を表示します。

xx...x：

キー条件を表示します。キー条件については，「キー条件」を参照してください。

キー条件がない場合は，この行を表示しません。

pp...p = [yy...y zz...z{JJ...J}] AA...A [yy...y zz...z{JJ...J}] ：

AND PLURAL INDEXES SCAN時の作業表の作成順序を表示します。インデクスを三つ以上使用して検索する場合には，複数行に分けて表示します。

pp...pには，作業表番号が"LID(作業表番号)"を表示します。

AA...Aには，作業表間の演算の種別｛"AND"，"OR"，又は"ANDNOT"｝を表示します。

yy...yには，演算をするための入力となる作業表を"LID(作業表番号)"で表示します。

zz...zには，ソートをしないで作業表を作成する場合は"LIST"が，ソートを使用して作業表を作成する場合は"LIST(SORT)"を表示します。

例：インデクスIX1(C1)及びIX2(C2)が定義されている場合に，次の条件のSQLを実行したものとします。

where C1='A'                  ←作業表番号：1
  or C2=between 'a' and 'z'   ←作業表番号：2

ScanTypeがAND PLURAL INDEXES SCANの場合を例にすると，出力結果は次のようになります。

       :
    Scan Type    :AND PLURAL INDEXES SCAN
    Index Name   :LID(1)=IX1 (1) (+C1)
                         Scan Type :INDEX SCAN
                         SearchCnd :AT['A']
                  LID(2)=IX2 (1) (+C2)
                         Scan Type :INDEX SCAN
                         SearchCnd :RANGE(CS-CE) ['a','z']
                  LID(3)=[LID(1) LIST(SORT){...}] OR [LID(2) LIST(SORT){...}]

BB...B{KK...K}：

AND PLURAL INDEXES SCANのための作業表とは別に，表の検索後に作業表を作成する場合に情報を表示します。

ソートを伴わないで作業表を作成する場合，II...Iに"LIST"を表示します。作業表を作成する場合にソートをするときは，II...Iに"LIST(SORT)"を表示します。作業表を作成しない場合，情報を表示しません。

CC...C：

検索対象が共用表の場合は"SHARED"を，一時表の場合は"TEMPORARY"を表示します。共用表，又は一時表でない場合，表示しません。

(3)　HiRDB/パラレルサーバで実表検索（SELECT-APSLあり）をする場合

 SCAN
  # Table Name   :aa...a(aa...a) bbbbbbbbbb(bb...b) (zz...z)
    Cost         :c (dd...dROW) {T-AA...A,I-BB...B,P-CC...C,AND-DD...D,OR-EE...E}
    RDAREA       :ee...e-CLM ff...f(gg...g) (hh...hRD/ii...iBES) [jjjj(jj...j),...] kk...k
    Rebalance    :ll...l
    Scan Type    :SELECT-APSL
          Table Name   :mm...m(mm...m) nnnnnnnnnn(nn...n)
          Column ID    :oooooo(oo...o)
          Predicate    :pp...p
          Threshold    :qq...q
       [1] rr...r  ................................................1
            Index Name :ss...s tttttttttt(tt...t) (uu...u) vv...v
                           SearchCnd :ww...w[xx...x],...
                           KeyCnd    :yy...y
                           RowCnd    :{FF...F}
       [2] rr...r  ................................................2
            Index Name :ss...s tttttttttt(tt...t) (uu...u) vv...v
                           SearchCnd :ww...w[xx...x],...
                           KeyCnd    :yy...y
                           RowCnd    :{FF...F}
    IfThenCnd    :{GG...G}

［説明］

1は実表の検索方法の第一候補，2は実表の検索方法の第二候補を示しています。検索方法については，「検索方法の種類」を参照してください。

aa...a(aa...a)：

検索対象となる表名（相関名）を表示します。

相関名を使用していない場合は，（相関名）を表示しません。検索処理が複数ある場合は，この行で区切って情報を表示します。

bbbbbbbbbb(bb...b)：

検索対象となる表IDを16進数（10進数）で表示します。

c　　：

最適化情報収集ユティリティ（pdgetcst）による最適化情報の取得の有無を表示します。

Y ：最適化情報を取得しています。

N ：最適化情報を取得していません。

dd...d：

HiRDBがアクセスパスを決定するために使用する表の行数を表示します。

デフォルトの行数は，SQL最適化モードによって異なります。

コストベース最適化モード1，又はHiRDB/シングルサーバでコストベース最適化モード2の場合

1000万行

HiRDB/パラレルサーバでコストベース最適化モード2の場合

1000万行×表が格納されたRDエリアがあるバックエンドサーバ数

最適化情報収集ユティリティ（pdgetcst）を実行すると，HiRDBがアクセスパスを決定するために使用する表の行数を変更できます。

ee...e：

表の分割列数を表示します。

ff...f：

表分割の種別を表示します。

NON DIVISION：非分割

KEY RANGE：キーレンジ分割（格納条件指定）

PARTITION：キーレンジ分割（境界値指定）

MULTIDIM PARTITION：マトリクス分割（境界値指定）

MULTIDIM：ハッシュ分割を含むマトリクス分割

FLEXIBLE HASH：リバランス機能を使用しないフレキシブルハッシュ分割

FIX HASH：リバランス機能を使用しないFIXハッシュ分割

RB FLEXIBLE HASH：リバランス機能を使用するフレキシブルハッシュ分割

RB FIX HASH：リバランス機能を使用するFIXハッシュ分割

gg...g：

ハッシュ分割時に，ハッシュ関数名を表示します。ハッシュ分割時以外は表示しません。また，ハッシュ分割を含むマトリクス分割の場合も表示しません。

hh...hRD/ii...iBES：

hh...hには表の分割数（RDエリア数）が，ii...iには表が格納されたRDエリアがあるバックエンドサーバ数を表示します。

非横分割表の場合，hh...hは1となります。また，HiRDB/シングルサーバの場合，"/ii...iBES"を表示しません。

jjjj(jj...j),...：

表格納用RDエリアのRDエリアIDを16進数（10進数）で表示します。

表分割をしている場合は分割数分のRDエリアIDを表示します。RDエリアIDに対応するRDエリア名は，pddblsコマンドで調べることができます。

kk...k：

ALL：

表を定義しているすべてのRDエリアを検索する場合に表示します。

RESTRICTED：

表を定義しているRDエリアの内，探索条件によって該当データがある可能性のあるRDエリアだけを検索する場合に表示します。

ll...l：

リバランス機能を使用する表の場合，リバランス状態を表示します。

リバランス機能を使用しない表の場合，この行を表示しません。リバランス機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

NORMAL：

通常の状態，又はALTER TABLEでRDエリアを追加しただけでリバランスユティリティ（pdrbal）を実行していない状態です。

ON REBALANCE：

表がリバランス中（リバランス開始からリバランス終了まで）の状態です。

mm...m(mm...m)：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる述語で使用する列の表名（相関名）を表示します。

nnnnnnnnnn(nn...n)：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる述語で使用する列の表IDを，16進数（10進数）で表示します。

oooooo(oo...o)：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる述語で使用する列IDを，16進数（10進数）で表示します。

pp...p：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる条件の述語を表示します。

qq...q：

SQLオブジェクトを選択するための基準値となるヒット率を表示します。

実行時に算出したヒット率がこの値より小さい場合は，第一候補のSQLオブジェクトを使用します。実行時に算出したヒット率がこの値と等しい又は大きい場合は，第二候補のSQLオブジェクトを使用します。

rr...r：

検索方法を表示します。

検索方法については，「検索方法の種類」を参照してください。

ss...s：

検索で使用するインデクス名を表示します。

インデクスを使用しない検索の場合，この行を表示しません。

tttttttttt(tt...t)：

検索で使用するインデクスIDを16進数（10進数）で表示します。

uu...u：

インデクス属性を組み合わせた情報を表示します。

数字：インデクス構成列数

G：プラグインインデクス

U：ユニークキーインデクス

C：クラスタキーインデクス

D：分割キーインデクス又はプラグインインデクス

d：サーバ内分割された非分割キーインデクス

E：除外キー値を指定したインデクス

M：繰返し列を含むインデクス

P：主キーインデクス

vv...v：

インデクス構成列情報を列ごとにコンマ(，)で区切って，全体を（ ）で囲んで表示します。

インデクス構成列情報は，構成列のサーチ方向とインデクス構成列名で表示します。

構成列のサーチ方向は，構成列を昇順にサーチする場合には＋，降順にサーチする場合には−を表示します。

例）　第1構成列(C1)は昇順，第2構成列(C2)は降順にサーチする場合
　　　(+C1,-C2)

ww...w [xx...x],...：

サーチ条件の種類，及びサーチ条件の絞り込み範囲を表示します。サーチ条件については，「サーチ条件」を参照してください。

インデクスを使用した検索でサーチ条件がない場合，サーチ条件の種類には"NONE(FULL SCAN)"を表示します。

サーチ条件によって，絞り込み範囲の数が0個となる場合，1個以上となる場合があります。

インデクスの第2構成列以降にサーチ条件があるが，第1構成列にはサーチ条件がない場合には，サーチ条件の絞り込み範囲の後ろに"(FULL SCAN)"を表示します。

yy...y：

キー条件を表示します。キー条件については，「キー条件」を参照してください。

キー条件がない場合は，この行を表示しません。

zz...z：

共用表が検索対象の場合，"SHARED"を表示します。共用表でない場合，表示しません。

(4)　HiRDB/パラレルサーバで表検索（SELECT-APSLあり）と結合処理（SELECT-APSLあり）を組み合わせた場合

 SCAN
  # Table Name   :aa...a(aa...a) bbbbbbbbbb(bb...b) (AA...A)
    Cost         :c (dd...dROW) {T-BB...B,I-CC...C,P-DD...D,AND-EE...E,OR-FF...F}
    RDAREA       :ee...e-CLM ff...f(gg...g) (hh...hRD/ii...iBES) [jjjj(jj...j),...] kk...k
    Rebalance    :ll...l
    Scan Type    :SELECT-APSL
          Table Name   :mm...m(mm...m) nnnnnnnnnn(nn...n)
          Column ID    :oooooo(oo...o)
          Predicate    :pp...p
          Threshold    :qq...q
       [1] rr...r (ss...s)  ........................................1
            Index Name :tt...t uuuuuuuuuu(uu...u) (vv...v) ww...w
                           SearchCnd :xx...x[yy...y],...
                           KeyCnd    :zz...z
                           RowCnd    :{GG...G}
                           IfThenCnd :{HH...H}
       [2] SELECT-APSL (ss...s)  ...................................2
             Table Name   :mm...m(mm...m) nnnnnnnnnn(nn...n)
             Column ID    :oooooo(oo...o)
             Predicate    :pp...p
             Threshold    :qq...q
          [1] rr...r  ..............................................3
            Index Name :tt...t uuuuuuuuuu(uu...u) (vv...v) ww...w
                           SearchCnd :xx...x[yy...y],...
                           KeyCnd    :zz...z
            RowCnd     :{GG...G}
            IfThenCnd  :{HH...H}
          [2] rr...r  ..............................................4
            RowCnd     :{GG...G}
            IfThenCnd  :{HH...H}

［説明］

1は，結合方法で第一候補が選ばれたときの表の検索方法です。

2は，結合方法で第二候補が選ばれたときの表の検索方法（この場合SELECT-APSLとなります）です。

3は，結合方法で第二候補が選ばれたときの，表の検索方法の第一候補です。

4は，結合方法で第二候補が選ばれたときの，表の検索方法の第二候補です。

aa...a(aa...a)：

検索対象となる表名（相関名）を表示します。

相関名を使用していない場合は，（相関名）を表示しません。検索処理が複数ある場合は，この行で区切って情報を表示します。

bbbbbbbbbb(bb...b)：

検索対象となる表IDを16進数（10進数）で表示します。

c　　：

最適化情報収集ユティリティ（pdgetcst）による最適化情報の取得の有無を表示します。

Y ：最適化情報を取得しています。

N ：最適化情報を取得していません。

dd...d：

HiRDBがアクセスパスを決定するために使用する表の行数を表示します。

デフォルトの行数は，SQL最適化モードによって異なります。

コストベース最適化モード1，又はHiRDB/シングルサーバでコストベース最適化モード2の場合

1000万行

HiRDB/パラレルサーバでコストベース最適化モード2の場合

1000万行×表が格納されたRDエリアがあるバックエンドサーバ数

最適化情報収集ユティリティ（pdgetcst）を実行すると，HiRDBがアクセスパスを決定するために使用する表の行数を変更できます。

ee...e：

表の分割列数を表示します。

ff...f：

表分割の種別を表示します。

NON DIVISION：非分割

KEY RANGE：キーレンジ分割（格納条件指定）

PARTITION：キーレンジ分割（境界値指定）

MULTIDIM PARTITION：マトリクス分割（境界値指定）

MULTIDIM：ハッシュ分割を含むマトリクス分割

FLEXIBLE HASH：リバランス機能を使用しないフレキシブルハッシュ分割

FIX HASH：リバランス機能を使用しないFIXハッシュ分割

RB FLEXIBLE HASH：リバランス機能を使用するフレキシブルハッシュ分割

RB FIX HASH：リバランス機能を使用するFIXハッシュ分割

gg...g：

ハッシュ分割時に，ハッシュ関数名を表示します。ハッシュ分割時以外は表示しません。また，ハッシュ分割を含むマトリクス分割の場合も表示しません。

hh...hRD/ii...iBES：

hh...hには表の分割数（RDエリア数）が，ii...iには表が格納されたRDエリアがあるバックエンドサーバ数を表示します。

非横分割表の場合，hh...hは1となります。また，HiRDB/シングルサーバの場合，"/ii...iBES"を表示しません。

jjjj(jj...j),...：

表格納用RDエリアのRDエリアIDを16進数（10進数）で表示します。

表分割をしている場合は分割数分のRDエリアIDを表示します。RDエリアIDに対応するRDエリア名は，pddblsコマンドで調べることができます。

kk...k：

ALL：

表を定義しているすべてのRDエリアを検索する場合に表示します。

RESTRICTED：

表を定義しているRDエリアの内，探索条件によって該当データがある可能性のあるRDエリアだけを検索する場合に表示します。

ll...l：

リバランス機能を使用する表の場合，リバランス状態を表示します。

リバランス機能を使用しない表の場合，この行を表示しません。リバランス機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

NORMAL：

通常の状態，又はALTER TABLEでRDエリアを追加しただけでリバランスユティリティ（pdrbal）を実行していない状態です。

ON REBALANCE：

表がリバランス中（リバランス開始からリバランス終了まで）の状態です。

mm...m(mm...m)：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる述語で使用する列の表名（相関名）を表示します。

nnnnnnnnnn(nn...n)：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる述語で使用する列の表IDを16進数（10進数）で表示します。

oooooo(oo...o)：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる述語で使用する列IDを16進数（10進数）で表示します。

pp...p：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる条件の述語を表示します。

qq...q：

SQLオブジェクトを選択するための基準値となるヒット率を表示します。

実行時に算出したヒット率がこの値より小さい場合は，第一候補のSQLオブジェクトを使用します。実行時に算出したヒット率がこの値と等しい又は大きい場合は，第二候補のSQLオブジェクトを使用します。

rr...r：

検索方法を表示します。

検索方法については，「検索方法の種類」を参照してください。

ss...s：

検索処理に対応する結合方法を表示します。

結合方法については，「結合方法の種類」を参照してください。

tt...t：

検索で使用するインデクス名を表示します。

インデクスを使用しない検索の場合，この行を表示しません。

uuuuuuuuuu(uu...u)：

検索で使用するインデクスIDを16進数（10進数）で表示します。

vv...v：

インデクス属性を組み合わせた情報を表示します。

数字：インデクス構成列数

G：プラグインインデクス

U：ユニークキーインデクス

C：クラスタキーインデクス

D：分割キーインデクス

E：除外キー値を指定したインデクス

M：繰返し列を含むインデクス

P：主キーインデクス

ww...w：

インデクス構成列情報を列ごとにコンマ(，)で区切って，全体を（ ）で囲んで表示します。

インデクス構成列情報は，構成列のサーチ方向とインデクス構成列名で表示します。

構成列のサーチ方向は，構成列を昇順にサーチする場合には＋，降順にサーチする場合には−を表示します。

例）　第1構成列(C1)は昇順，第2構成列(C2)は降順にサーチする場合
　　　(+C1,-C2)

xx...x[yy...y],...：

サーチ条件の種類，及びサーチ条件の絞り込み範囲を表示します。サーチ条件については，「サーチ条件」を参照してください。

インデクスを使用した検索でサーチ条件がない場合，サーチ条件の種類には"NONE(FULL SCAN)"を表示します。

サーチ条件によって，絞り込み範囲の数が0個となる場合，1個以上となる場合があります。

インデクスの第2構成列以降にサーチ条件があるが，第1構成列にはサーチ条件がない場合には，サーチ条件の絞り込み範囲の後ろに"(FULL SCAN)"を表示します。

zz...z：

キー条件を表示します。キー条件については，「キー条件」を参照してください。

キー条件がない場合は，この行を表示しません。

AA...A：

共用表が検索対象の場合，"SHARED"を表示します。共用表でない場合，表示しません。

(5)　ビュー表検索のために作業表を作成する場合

 SCAN
  # Table Name :aa...a(aa...a) bbbbbbbbbb(bb...b)  {AA...A}
    Cost       :(cc...cROW)  {T-BB...B}
    Scan Type  :dd...d
    RowCnd     :{CC...C}
    IfThenCnd  :{DD...D}

［説明］

aa...a(aa...a)：

ビュー表名（相関名）を表示します。

相関名を使用していない場合は，（相関名）を表示しません。

bbbbbbbbbb(bb...b)：

ビュー表IDを16進数（10進数）で表示します。

cc...c：

HiRDBがアクセスパスを決定するために使用する，表の行数を表示します。

dd...d：

"LIST SCAN"を表示します。

"LIST SCAN"については，「検索方法の種類」を参照してください。

(6)　WITH句のために作業表を作成する場合

 SCAN
  # Table Name :aa...a(aa...a)  {AA...A}
    Cost       :(bb...bROW)  {T-BB...B}
    Scan Type  :cc...c
    RowCnd     :{CC...C}
    IfThenCnd  :{DD...D}

［説明］

aa...a(aa...a)：

WITH句問合せ名（相関名）を表示します。

相関名を使用していない場合は，（相関名）を表示しません。

bb...b：

HiRDBがアクセスパスを決定するために使用する，表の行数を表示します。

cc...c：

"LIST SCAN"を表示します。

"LIST SCAN"については，「検索方法の種類」を参照してください。

(7)　FROM句に指定した導出表のために作業表を作成する場合

 SCAN
  # Table Name :aa...a(aa...a) {AA...A}
    Cost       :(bb...bROW)  {T-BB...B}
    Scan Type  :cc...c
    RowCnd     :{CC...C}
    IfThenCnd  :{DD...D}

［説明］

aa...a(aa...a)：

"(NO NAME)"又は"(NO NAME)(相関名)"を表示します。

bb...b：

HiRDBがアクセスパスを決定するために使用する，表の行数を表示します。

cc...c：

"LIST SCAN"を表示します。

"LIST SCAN"については，「検索方法の種類」を参照してください。

(8)　HiRDBが内部的に作業表を作成する場合

 SCAN
  # Table Name :aa...a  {AA...A}
    Cost       :(bb...bROW)  {T-BB...B}
    Scan Type  :cc...c
    RowCnd     :{CC...C}
    IfThenCnd  :{DD...D}

［説明］

aa...a：

HiRDBが内部的に作成する作業表名を表示します。

HiRDBが内部的に作成する作業表名は，"(DUMMY 作業表番号)"となります。作業表番号は3けたの整数です。

bb...b：

HiRDBがアクセスパスを決定するために使用する，表の行数を表示します。

cc...c：

"LIST SCAN"を表示します。

"LIST SCAN"については，「検索方法の種類」を参照してください。

(9)　HiRDB/シングルサーバでSELECT-APSLをする場合

 --- SELECT-APSL ---
   Table Name    :aa...a(aa...a) bbbbbbbbbb(bb...b)
   Column ID     :cccccc(cc...c)
   Predicate     :dd...d
   Threshold     :ee...e
 [1]  ......................................................1
 Section No     :ff...f
    :
 [2]  ......................................................2
 Section No     :ff...f
    :

［説明］

1はアクセスパスの第一候補，2はアクセスパスの第二候補を示しています。アクセスパスについては，「アクセスパスの種類」を参照してください。

HiRDB/シングルサーバの場合，シングルサーバは結合処理及び検索処理ごとにSELECT-APSLをしないで，SQL文全体のSQLオブジェクトを二つ作成します。

aa...a(aa...a)：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる述語で使用する列の表名（相関名）を表示します。

bbbbbbbbbb(bb...b)：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる述語で使用する列の表IDを16進数（10進数）で表示します。

cccccc(cc...c)：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる述語で使用する列IDを16進数（10進数）で表示します。

dd...d：

SQLオブジェクトを選択するための，SQL実行時ヒット率の算出対象となる条件の述語を表示します。

ee...e：

SQLオブジェクトを選択するための基準値となるヒット率を表示します。

実行時に算出したヒット率がこの値より小さい場合は，第一候補のSQLオブジェクトを使用します。実行時に算出したヒット率がこの値と等しい又は大きい場合は，第二候補のSQLオブジェクトを使用します。

ff...f：

セクション番号を表示します（SQLごとに番号が付きます）。

動的SQLの場合は，すべて1となります。

17.5.5　結合方法の種類

編集結果のLは外表，Rは内表を表しています。結合方式については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(1)　マージジョイン

マージジョインは，外表を余り絞り込めないときに有効です。

SORT MERGE JOIN

外表と内表から行を取り出して，それぞれ作業表を作成しソートします。その後，結合条件を満たした行同士を結合します。

KEY SCAN MERGE JOIN

外表と内表から，KEY SCANで行を取り出します。その後，結合条件を満たした行同士を結合します。

LIST SCAN MERGE JOIN

外表と内表から作業表を作成し，ソートはしないで結合列の昇順に行を取り出します。その後，結合条件を満たした行同士を結合します。

L-KEY R-LIST MERGE JOIN

外表はKEY SCANで行を取り出し，内表は作業表を作成し，ソートはしないで行を取り出します。その後，結合条件を満たした行同士を結合します。

L-KEY R-SORT MERGE JOIN

外表はKEY SCANで行を取り出し，内表は作業表を作成し，ソートをして行を取り出します。その後，結合条件を満たした行同士を結合します。

L-LIST R-KEY MERGE JOIN

外表は作業表を作成し，ソートはしないで行を取り出し，内表はKEY SCANで行を取り出します。その後，結合条件を満たした行同士を結合します。

L-LIST R-SORT MERGE JOIN

外表は作業表を作成し，ソートはしないで行を取り出し，内表は作業表を作成し，ソートをして行を取り出します。その後，結合条件を満たした行同士を結合します。

L-SORT R-KEY MERGE JOIN

外表は作業表を作成し，ソートをして行を取り出し，内表はKEY SCANで行を取り出します。その後，結合条件を満たした行同士を結合します。

L-SORT R-LIST MERGE JOIN

外表は作業表を作成し，ソートをして行を取り出し，内表は作業表を作成し，ソートをしないで行を取り出します。その後，結合条件を満たした行同士を結合します。

(2)　ネストループジョイン

ネストループジョインは，内表にインデクスが定義されていて，外表をかなり絞り込めるときに有効です。

NESTED LOOPS JOIN

外表から1行ずつ行を取り出し，内表のそれぞれの行に突き合わせて，結合条件を満たす行を取り出す入れ子型のループ処理をする結合方法です。

R-LIST NESTED LOOPS JOIN

内表から行を取り出して作業表を作成します。その後，外表から1行ずつ行を取り出して，それぞれの行に対して内表から作成した作業表を突き合わせ，結合条件を満たす行を取り出す入れ子型のループ処理をする結合方法です。

(3)　ハッシュジョイン

HASH JOIN{FOR EACH}

あらかじめ内表の結合列の値でハッシングしてハッシュ表を作成しておいて，外表を1行取り出すごとに外表の結合列の値でハッシングして，内表から作成しておいたハッシュ表と突き合わせて結合します。

(4)　SELECT-APSL

SELECT-APSLは，SQL実行時に結合方法を動的に決定する方式です。

SELECT-APSL（HiRDB/パラレルサーバの場合だけ）

条件に？パラメタを含んでいる場合，？パラメタの値によって最適な結合方法が変わることがあります。また，SQL最適化処理時に？パラメタの値が決まらないため，最適な結合方法が決定できません。そのため，SQL実行時にヒット率を計算して結合方法を決定します。

(5)　直積

CROSS JOIN

外表のすべての行と，内表のすべての行をそれぞれ組み合わせて結合します。二つ以上の表にわたった条件があれば，結合した後に判定します。

17.5.6　検索方法の種類

検索方式については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(1)　インデクスを使用しない検索

TABLE SCAN

インデクスを使用しないで，表のデータページを検索します。

(2)　一つのインデクスを使用した検索

INDEX SCAN

単一列インデクスのインデクスページを検索して絞り込んだ後，表のデータページを検索します。

KEY SCAN

単一列インデクスのインデクスページだけを検索します。データページは検索しません。

MULTI COLUMNS INDEX SCAN

複数列インデクスのインデクスページを検索して絞り込んだ後，表のデータページを検索します。

MULTI COLUMNS KEY SCAN

複数列インデクスのインデクスページだけを検索します。データページは検索しません。

PLUGIN INDEX SCAN

プラグインインデクスを使用して絞り込んだ後，表のデータページを検索します。

PLUGIN KEY SCAN

プラグインインデクスを使用してインデクスページだけを検索します。データページは検索しません。

(3)　SELECT-APSL

SELECT-APSL（HiRDB/パラレルサーバの場合だけ）

条件に？パラメタを含んでいる場合，？パラメタの値によって最適な検索方法が変わることがあります。また，前処理時に？パラメタの値が決まらないため，最適な検索方法が決定できません。そのため，SQL実行時にヒット率を計算して検索方法を決定します。

(4)　複数のインデクスを使用した検索

AND PLURAL INDEXES SCAN

AND演算子又はOR演算子で結ばれた探索条件に対して，それぞれのインデクスを使用して検索し，行識別子（ROWID）をそれぞれの作業表に格納します。これらの作業表を，AND演算子の場合は積集合，OR演算子の場合は和集合，ANDNOT演算子（ASSIGN LIST文でだけ使用できます）の場合は差集合をとって，一つの作業表にまとめます。その後，この作業表の行識別子を基に行を取り出します。

各条件から行識別子の作業表を作成するときに，条件列にインデクスがなくても，TABLE SCANによって作業表を作成する場合があります。

OR PLURAL INDEXES SCAN

OR演算子で結ばれた探索条件に対して，それぞれのインデクスを使用して検索し，行識別子（ROWID）を一つの作業表に格納します。この作業表の重複する行を重複排除した後，行識別子を基に行を取り出します。

各条件から行識別子の作業表を作成するときに，条件列にインデクスがなくても，TABLE SCANによって作業表を作成する場合があります。

(5)　作業表の検索

LIST SCAN

内部的に作成した作業表を検索します。

(6)　行識別子を使用した検索

ROWID FETCH

行識別子（ROWID）をキーにして表を検索します。行を取り出す必要がない場合は検索しません。

17.5.7　転送方法の種類

(1)　キーレンジ転送

KEY RANGE

キーレンジによって転送先のサーバを決定して転送する方式です。

(2)　ハッシュ転送

HASH

ハッシングによって転送先のサーバを決定して転送する方式です。

(3)　1対1転送

1 TO 1

転送元のサーバと転送先のサーバが1対1に決定するように転送する方式です。

(4)　マトリクス分割転送

MULTIDIM

ハッシュ分割を含むマトリクス分割表のすべての分割キーで転送先のサーバを決定して転送する方式です。

(5)　ブロードキャスト転送

BROADCAST

転送元のデータをコピーしてすべての転送先サーバに転送する方式です。

(6)　ユニキャスト転送

UNICAST

転送元のデータを一つの転送先サーバに転送する方式です。ただし，結合処理情報のJoin Type以外の箇所は"BROADCAST"と表示します。

(7)　キーレンジ部分ブロードキャスト転送

KEY RANGE PARTIAL BROADCAST

マトリクス分割（境界値）表の一部のキーレンジで転送先サーバを絞り込み，絞り込んだ転送先サーバすべてに転送元のデータをコピーして転送する方式です。

(8)　部分ブロードキャスト転送

PARTIAL BROADCAST

ハッシュ分割を含むマトリクス分割表の一部の分割キーで転送先サーバを絞り込み，転送元のデータをコピーしてから，絞り込んだ転送先サーバすべてに転送する方式です。

17.5.8　アクセスパスの種類

SELECT-APSL（HiRDB/シングルサーバの場合だけ）

条件に？パラメタを含んでいる場合，？パラメタの値によって最適なアクセスパスが変わることがあります。また，SQL最適化処理時に？パラメタの値が決まらないため，最適なアクセスパスが決定できません。そのため，SQL実行時にヒット率を計算してアクセスパスを決定します。

17.5.9　グループ分け処理方式の種類

暗黙的グループ分け処理：

問合せ式にGROUP BY句を指定しないで，選択式又はHAVING句中に集合関数を指定した場合の処理です。

明示的グループ分け処理：

問合せ式にGROUP BY句を指定した場合の処理です。

(1)　HiRDB/シングルサーバ

(a)　暗黙的グループ分け処理をする場合

IMPLICIT MIN-MAX INDEX：

集合関数MIN，MAXを求めるときに，インデクスの最小値，最大値だけを検索する処理方式です。

IMPLICIT SET FUNCTION SCAN{+}：

行を検索するときに，集合関数の結果を同時に求める処理方式です。

IMPLICIT NORMAL：

行を検索してから，集合関数の結果を求める処理方式です。

IMPLICIT LIST SORT{SET FUNCTION SCAN}：

集合関数中にDISTINCTが含まれる場合に，作業表を作成し重複排除のためにソートしてから集合関数の結果を求める処理方式です。

IMPLICIT SURROGATE(COUNT)：

サロゲート機能を使用して集合関数の結果（行数）を求める処理方式です。サロゲート機能とは，プラグインインデクスを呼び出して探索条件を評価すると同時に，プラグイン提供関数の内部で集合関数の結果を求め，集合関数の結果を高速に返却する専用処理のことです。

IMPLICIT SORT CANCEL BY INDEX{SET FUNCTION SCAN}：

重複排除のためのソート処理をしなくてもインデクスを検索することで，DISTINCT集合関数に指定した列をソートできる場合に，重複排除のためのソート処理を省略し，集合関数の結果を求める処理方式です。

(b)　明示的グループ分け処理をする場合

SORT CANCEL BY INDEX{SET SCAN}：

グループ化のためのソート処理をしなくても，インデクスを検索することでグループ化列をソートできる場合に，グループ化のためのソート処理を省略する方式です。

SORT CANCEL BY JOIN：

グループ化のためのソート処理が，マージジョインのためのソート処理によってキャンセルされる場合に，グループ化のためのソート処理を省略する方式です。

HASH：

グループ分け高速化機能を使用する方式です。グループ分け高速化機能については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

LIST SORT：

作業表を作成してソートすることでグループ化処理をし，グループ化の結果を求める処理方式です。

PRE-SORT JOIN：

すべてのグループ化列が，結合する前の外表又は外側の結合表に含まれる場合に，結合する前の外表又は外側の結合結果に対してソートをして，ソート順を保ったまま結合してグループ化処理をすることで，グループ化の結果を求める処理方式です。

(2)　HiRDB/パラレルサーバ

(a)　暗黙的グループ分け処理をする場合

IMPLICIT MIN-MAX INDEX：

集合関数MIN，MAXを求めるときに，各バックエンドサーバで，インデクスの最小値，最大値だけを検索する処理方式です。

IMPLICIT SET FUNCTION SCAN{+}：

各バックエンドサーバで，行を検索するときに，集合関数の結果を同時に求める処理方式です。

IMPLICIT NORMAL：

各バックエンドサーバで，行を検索してから，バックエンドサーバごとの集合関数の結果を求める処理方式です。

IMPLICIT FLOATABLE：

フロータブルサーバに集めて全体の集合関数の結果を求める処理方式です。

IMPLICIT FLOATABLE SORT{SET FUNCTION SCAN}：

集合関数中にDISTINCTが含まれる場合に，フロータブルサーバに集めて作業表を作成し，重複排除のためにソートしてから集合関数の結果を求める処理方式です。

IMPLICIT SURROGATE(COUNT)：

各バックエンドサーバで，サロゲート機能を使用してバックエンドサーバごとの集合関数の結果（行数）を求める処理方式です。サロゲート機能とは，プラグインインデクスを呼び出して探索条件を評価すると同時に，プラグイン提供関数の内部で集合関数の結果を求め，集合関数の結果を高速に返却する専用処理のことです。

IMPLICIT SORT CANCEL BY INDEX{SET FUNCTION SCAN}：

重複排除のためのソート処理をしなくてもインデクスを検索することで，DISTINCT集合関数に指定した列をソートできる場合に，重複排除のためのソート処理を省略し，集合関数の結果を求める処理方式です。

IMPLICIT LIST SORT{SET FUNCTION SCAN}：

集合関数にDISTINCTが含まれる場合に，各バックエンドサーバで作業表を作成し，重複排除のためにソートしてから集合関数の結果を求める処理方式です。

(b)　明示的グループ分け処理をする場合

SORT CANCEL BY INDEX{SET SCAN}：

グループ化のためのソート処理をしなくても，インデクスを検索することでグループ化列をソートできる場合に，グループ化のためのソート処理を省略する方式です。

SORT CANCEL BY JOIN：

グループ化のためのソート処理が，マージジョインのためのソート処理によってキャンセルされる場合に，グループ化のためのソート処理を省略する方式です。

HASH：

グループ分け高速化機能を使用してグループ化の結果を求める処理方式です。グループ分け高速化機能については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

LIST SORT：

各バックエンドサーバで作業表を作成してソートし，グループ化の結果を求める処理方式です。

PRE-SORT JOIN：

すべてのグループ化列が，結合する前の外表又は外側の結合表に含まれる場合に，結合する前にソートをし，ソート順を保ったまま結合してグループ化処理をすることで，グループ化の結果を求める処理方式です。

FLOATABLE SORT：

複数のフロータブルサーバに転送し，作業表を作成してソートすることでグループ化の結果を求める処理方式です。

17.5.10　プラグイン提供関数の種別

インデクス型プラグインを使用して検索をするプラグイン提供関数は，検索時のプラグインインデクス使用条件によって，次の種別に分かれます。

(1)　SCAN TYPEプラグイン提供関数

探索条件に論理述語を使用して指定するプラグイン提供関数です。

通常はプラグインインデクスを使用して検索しますが，プラグインインデクスを定義していないか，又はプラグインインデクスを使用できないような検索の場合でも動作できるプラグイン提供関数のことです。

(2)　INDEX SCAN TYPEプラグイン提供関数

探索条件に論理述語（ただし，IS TRUEだけ指定できます）を使用して指定するプラグイン提供関数です。必ずプラグインインデクスを使用して検索します。これをインデクス型プラグイン専用関数といいます。

プラグインインデクスを定義していないか，又はプラグインインデクスを使用できないような検索の場合にはエラーとなります。

(3)　FULL SCAN TYPEプラグイン提供関数

探索条件に論理述語を使用して指定するプラグイン提供関数です。

プラグインインデクスを定義すると，インデクスを使用した検索はできますが，インデクスの全範囲をサーチします。そのため，探索条件にFULL SCAN TYPEプラグイン提供関数の条件だけある場合には，プラグインインデクスを使用して検索します。しかし，ほかに探索条件がある場合には，ほかの条件を判定した後にプラグインインデクスを使用しないで判定します。

17.5.11　サーチ条件

(1)　サーチ条件の概要

SearchCnd：サーチ条件の種別 [絞り込み範囲],…

サーチ条件とは，インデクスのサーチ範囲を決定する条件です。

(a)　サーチ条件を持つ場合

例）　where C1 between 'a' and 'z'

注　使用するインデクスの構成列がC1の場合です。

(b)　実行時にサーチ条件が削除される場合

パターン文字列に，埋込み変数，？パラメタ，SQL変数，SQLパラメタを持つLIKE述語，又はSIMILAR述語を指定すると，実行時に与えられるパターン文字列が’abc%’のように前方一致となる場合にはインデクスのサーチ範囲を絞り込めます。しかし，’%abc’のように前方一致以外の場合には，インデクスのサーチ範囲を絞り込めなくなります。

このように，実行時に与えられるパターン文字列の値によって，インデクスのサーチ範囲が絞り込めなくなる場合に，インデクスの絞り込み開始値，終了値を＜ ＞で囲んで表示します。

例）　where C1 LIKE ?　（C1のデータ型：CHAR(5)）

注　使用するインデクスの構成列がC1の場合です。

［説明］

？が’abc%’の場合，X’6162630000’〜X’616263ffff’の範囲を検索します。

文字コードは，aをX’61’，bをX’62’，cをX’63’とします。

？が’%abc’の場合，インデクスの全範囲をサーチします。

？(1)の番号は？番号を表します。？番号については「絞り込み範囲に使用する値」を参照してください。

(2)　探索条件のサーチ条件種別

各サーチ条件種別に該当する探索条件を次の表に示します。

表17‒1　各サーチ条件種別に該当する探索条件

サーチ条件種別

特長

サーチ条件種別を作成するための条件

単一列インデクス

複数列インデクス

IS NULL

NULL値のキーが少ない場合に有効です。

すべてのインデクス構成列にNULL述語（IS NULL）があります。

IS NOT NULL

NULL値以外のキーが少ない場合に有効です。

インデクス構成列にNULL述語（IS NOT NULL）があります。

作成しません。

IS TRUE

プラグイン提供関数によって異なります。

プラグイン提供関数の実行結果に対する，論理述語（IS TRUE）を使用した判定があります。

作成しません。

IS TRUE (AND)

プラグイン提供関数によって異なります。

プラグイン提供関数の実行結果に対する，論理述語（IS TRUE）を使用した判定があります。

作成しません。

AT

絞り込み値の重複度が少ない場合に有効です。

インデクス構成列の1列以上に比較述語（=）があり，これ以外の全インデクス構成列にNULL述語（IS NULL）があります。

RANGE

絞り込む範囲の件数が少ない場合に有効です。

インデクス構成列に比較述語（>，>=，<，<=），BETWEEN述語，前方一致となるLIKE述語，又はSIMILAR述語のどれかがあります。

又は，複数列インデクスの場合，インデクス構成列の一部に比較述語（=），又はNULL述語（IS NULL）のどちらかがあります。

ただし，RANGESとなる場合を除きます。

ATS

絞り込み値の重複度が低く，絞り込み値の個数が少ない場合に有効です。

インデクス構成列の1列以上にIN(行値構成子※３)，IN(表副問合せ)，=ANY(表副問合せ)，又は=SOME(表副問合せ)のどれかがあり※１，これら以外の全インデクス構成列に比較述語(=)，又はIS NULLのどちらかがあります。

ただし，IN(行値構成子※３)，IN(表副問合せ)，=ANY(表副問合せ)，又は=SOME(表副問合せ)のどれかに指定した絞り込み値の個数の積がpd_apply_search_ats_numオペランドの指定値を超えると，RANGE又はRANGESとなります※２。

RANGES

絞り込む範囲に該当する件数が少なく，絞り込む範囲の個数も少ない場合に有効です。

作成しません。

インデクス構成列の一部に，IN(行値構成子※３)，IN(表副問合せ)，=ANY(表副問合せ)，又は=SOME(表副問合せ)のどれかがあり※１，これらがインデクス構成列の先頭の場合，又は先頭ではなく，IN(行値構成子※３)，IN(表副問合せ)，=ANY(表副問合せ)，又は=SOME(表副問合せ)より前の構成列のすべてに比較述語(=)，又はIS NULLのどちらかがあります。IN(行値構成子※３)，IN(表副問合せ)，=ANY(表副問合せ)，又は=SOME(表副問合せ)のどれかに指定した絞り込み値の個数の積がpd_apply_search_ats_numオペランドの指定値を超えると，RANGE又はRANGESとなります※２。

ただし，ATSとなる場合を除きます。

注※1

複数インデクスを利用する場合でも，SQL最適化モードがコストベース最適化モード2のときは，IN（表副問合せ），=ANY（表副問合せ），及び=SOME（表副問合せ）は，1列だけをサーチ範囲の絞り込みに使用します。また，複数列インデクスを利用する場合，SQL最適化モードがコストベース最適化モード1のときは，IN（表副問合せ），=ANY（表副問合せ），及び=SOME（表副問合せ）は，サーチ範囲の絞り込みに使用しません。

注※2

絞り込み値の個数は，IN（行値構成子）では行値構成子の個数となります。また，IN（表副問合せ），=ANY（表副問合せ），及び=SOME（表副問合せ）では44となります。絞り込み値の個数の組み合わせ数によるサーチ条件の分類については，表「絞り込み値の個数の組み合わせ数によるサーチ条件の分類」を参照してください。

注※3

すべての行値構成子の行値構成子要素が値指定，スカラ副問合せ，又は行副問合せの場合に限ります。

絞り込み値の個数の組み合わせ数によるサーチ条件の分類について，次の表に示します。

表17‒2　絞り込み値の個数の組み合わせ数によるサーチ条件の分類

指定条件

絞り込み値の個数の組み合わせ

サーチ条件種別

インデクス構成列の1列以上にIN(行値構成子)，IN（表副問合せ），=ANY(表副問合せ)，及び=SOME(表副問合せ)のどれかがあり，これら以外の全インデクス構成列に比較述語(=)，又はIS NULLのどちらかがある

p>n

q>n

RANGE

q<=n

RANGE

p<=n

q>n

RANGES※1

q<=n

ATS※2

インデクス構成列の一部に，IN(行値構成子)，IN(表副問合せ)，=ANY(表副問合せ)，又は=SOME(表副問合せ)のどれかがあり，これらがインデクス構成列の先頭の場合，又は先頭ではなく，IN(行値構成子)，IN(表副問合せ)，=ANY(表副問合せ)，又は=SOME(表副問合せ)より前の構成列のすべてに比較述語(=)，又はIS NULLのどちらかがある

p>n

q>n

RANGE

q<=n

RANGE

p<=n

q>n

RANGES※1

q<=n

RANGES※3

（凡例）

n：HiRDBのバージョンが08-03以前の場合は255，HiRDBのバージョンが08-04以降の場合はpd_apply_search_ats_numオペランドに指定した値

p：インデクスの第x構成列に指定した述語の絞り込み値の個数

q：インデクスの第x構成列目以降に指定した述語の絞り込み値の組み合わせ個数

x：初めてIN(行値構成子)，IN(表副問合せ)，=ANY(表副問合せ)，又は=SOME(表副問合せ)が指定されたインデクス構成列

注※1

指定された述語のうち，インデクスの第x構成列目以降に指定された条件を使用しない場合に該当します。

注※2

IN(表副問合せ)，=ANY(表副問合せ)，又は=SOME(表副問合せ)を複数指定した場合，表副問合せを二つ以上評価できないため，絞り込み値の組み合わせ個数に関係なくRANGESとなります。

注※3

指定された条件をすべて使用する場合に該当します。ただし，IN(表副問合せ)，=ANY(表副問合せ)，又は=SOME(表副問合せ)を複数指定した場合，表副問合せを二つ以上評価できないため，インデクスの第x構成列目以降に指定された条件を使用しないRANGESとなります。

(a)　IS NULL

IS NULLは，インデクスのNULLの範囲を検索します。

注　使用するインデクスの構成列がC1の場合です。

例）　where C1 IS NULL
　　　→　SearchCnd：IS NULL

(b)　IS NOT NULL

IS NOT NULLは，インデクスのNULL以外の範囲を検索します。

注　使用するインデクスの構成列がC1の場合です。

例）　where C1 IS NOT NULL
　　　→　SearchCnd：IS NOT NULL

(c)　IS TRUE

IS TRUEは，プラグインインデクスを使用した検索の場合に表示します。

FULL SCAN TYPEプラグイン提供関数の場合

注　使用するインデクスの構成列がfeatureの場合です。

例）　where SearchImageData (feature,? as blob(1M),? as varchar(1024)) IS TRUE
　　　→　SearchCnd：IS TRUE

FULL SCAN TYPEプラグイン提供関数以外の場合

注　使用するインデクスの構成列がSENTENCESの場合です。

例）　where Contains (SENTENCES,'添付文書データ[効能{"食あたり"}]') IS TRUE
　　　→　SearchCnd：IS TRUE

(d)　IS TRUE (AND)

IS TRUE (AND)は，プラグインインデクスを使用した条件の絞り込み時に，ほかのインデクスを使用した条件による絞り込み結果の行識別子集合を利用する場合に表示します。

注　使用するインデクスの構成列がSENTENCESの場合です。

例）　where C1 = 'a' AND
　　　Contains (SENTENCES,'添付文書データ[効能{"食あたり"}]') IS TRUE
　　　→　下線部分がSearchCnd：IS TRUE (AND)

詳細については，マニュアル「HiRDB UAP開発ガイド」の「プラグインインデクスでの他インデクス絞り込み結果利用機能」を参照してください。

(e)　AT

サーチ条件種別

AT [絞り込み値]：

ATは，インデクスからある値をサーチする場合に使用します。

探索条件は，C1='a',C1=(Select C1 from T2)などです。

注　使用するインデクスの構成列がC1の場合です。

例）　where C1='a'
　　　→　SearchCnd：AT ['a']

絞り込み値

単一列インデクスのAT

AT [値]：

単一列インデクスの場合に値を表示します。

例）　where C1='a'
　　　→　SearchCnd：AT ['a']

注　使用するインデクスの構成列がC1の場合です。

複数列インデクスのAT

AT [(値,…,値)]：

複数列インデクスの場合に，値をインデクス構成列の先頭から順にコンマ(，)で区切り，全体を（ ）で囲んで表示します。

例1）　where C1='a' and C2='A'
　　　→　SearchCnd：AT [('a','A')]

注　使用するインデクスの構成列がC1，C2の場合です。

例2）　where (C1,C2) in (('a','A'))
　　　→　SearchCnd：AT [('a','A')]

注　使用するインデクスの構成列がC1，C2の場合です。

例3）　where (C1,C2) = ((select C1 from T2),(select C2 from T3))
　　　→　SearchCnd：AT [((SUBQ(2)),(SUBQ(3)))]

注　使用するインデクスの構成列がC1，C2の場合です。

例4）　where array(C1,C2) [any] ((C1,C2)=('a','A'))
　　　→　SearchCnd：AT [('a','A')]

注　使用するインデクスの構成列がC1，C2の場合です。

(f)　RANGE

サーチ条件種別

RANGEは，インデクスの絞り込み開始値から終了値までの範囲をサーチする場合に使用します。絞り込み範囲に開始値が含まれるかどうか，終了値が含まれるかどうかによって，RANGEには次の1〜4の分類があります。これらは，RANGE(...)の"..."部分に表示します。

絞り込み開始値，絞り込み終了値共に含む

RANGE(CS-CE) [絞り込み開始値,絞り込み終了値]：

探索条件は，C1>='a' and C1<='z',C1 between 'a' and 'z',C1 like 'a%'などです。

例1）　where C1 >= 'a' and C1 <= 'z'
　　　　→　SearchCnd：RANGE(CS-CE) ['a','z']

注　使用するインデクスの構成列がC1の場合です。

例2）　where C1 >= 'a'
　　　　→　SearchCnd：RANGE(CS-CE) ['a',MAX]

注　使用するインデクスの構成列がC1の場合です。

例3）　where C1 <= 'a'
　　　　→　SearchCnd：RANGE(CS-CE) [MIN,'a']

注　使用するインデクスの構成列がC1の場合です。

絞り込み開始値は含むが，絞り込み終了値は含まない

RANGE(CS-OE) [絞り込み開始値,絞り込み終了値]：

探索条件は，C1>='a' and C1 < 'z'などです。

例1）　where C1 >= 'a' and C1 < 'z'
　　　　→　SearchCnd：RANGE(CS-OE) ['a','z']

注　使用するインデクスの構成列がC1の場合です。

例2）　where C1 < 'a'
　　　　→　SearchCnd：RANGE(CS-OE) [MIN,'a']

注　使用するインデクスの構成列がC1の場合です。

絞り込み開始値は含まないが，絞り込み終了値は含む

RANGE(OS-CE) [絞り込み開始値,絞り込み終了値]：

探索条件は，C1>'a' and C1<='z'などです。

例1）　where C1 > 'a' and C1 <= 'z'
　　　　→　SearchCnd：RANGE(OS-CE) ['a','z']

注　使用するインデクスの構成列がC1の場合です。

例2）　where C1 > 'a'
　　　　→　SearchCnd：RANGE(OS-CE) ['a',MAX]

注　使用するインデクスの構成列がC1の場合です。

絞り込み開始値，絞り込み終了値共に含まない

RANGE(OS-OE) [絞り込み開始値,絞り込み終了値]：

探索条件は，C1>'a' and C1<'z'などです。

例）　where C1 > 'a' and C1 < 'z'
　　　→　SearchCnd：RANGE(OS-OE) ['a','z']

注　使用するインデクスの構成列がC1の場合です。

絞り込み範囲（絞り込み開始値，絞り込み終了値）

単一列インデクスのRANGE

RANGE( … ) [値,値]：

単一列インデクスの場合，絞り込む範囲の開始位置，終了位置をコンマ(，)で区切って表示します。RANGE( … )の"…"の箇所はサーチ条件種別によって異なります。

例）　where C1 between 'a' and 'z'
　　　→　SearchCnd：RANGE(CS-CE) ['a','z']

注　使用するインデクスの構成列がC1の場合です。

複数列インデクスのRANGE

RANGE( … ) [(値,…,値),(値,…,値)]：

複数列インデクスの場合，開始位置，終了位置それぞれに対して，インデクス構成列の先頭から順にコンマ(，)で区切って，全体を（ ）で囲みます。さらに，開始位置，終了位置をコンマで区切って表示します。RANGE( … )の"…"の箇所はサーチ条件種別によって異なります。

例1）　where C1 = 'a' and C2 between 'A' and 'Z'
　　　→　SearchCnd：RANGE(CS-CE) [('a','A'),('a','Z')]

注　使用するインデクスの構成列がC1，C2の場合です。

例2）　where (C1,C2) between ('A', 'Z') and (select C1, C2 from T2)
　　　→　SearchCnd：RANGE(CS-CE)[( 'A', 'Z'),((SUBQ(2)),(SUBQ(2)))]

注　使用するインデクスの構成列がC1，C2の場合です。

例3）　where (C1,C2) > ('a', 'z') and (C1,C2) < ('A', 'Z')
　　　→　SearchCnd：RANGE(OS-OE)[( 'a', 'z'),( 'A', 'Z')]

注　使用するインデクスの構成列がC1，C2の場合です。

例4）　where array(C1,C2) [any] ((C1,C2)<( 'A', 'Z'))
　　　→　SearchCnd：RANGE(CS-OE)[(MIN,MIN),( 'A', 'Z')]

注　使用するインデクスの構成列がC1，C2の場合です。

(g)　ATS

サーチ条件種別

複数の絞り込み値によるATS

ATS [絞り込み値], ... ,[絞り込み値]：

ATS [絞り込み値], ... ,[絞り込み値],...(Number of All Row Values : n)...,[絞り込み値]：

絞り込み値を使用して，インデクスを複数回サーチする場合に使用します。

探索条件は，C1 in ('a','b','c')などです。

絞り込み値の総数が256個以上の場合，「...(Number of All Row Values : n)...」を表示します。nは絞り込み値の総数です。

なお，「...(Number of All Row Values : n)...」の...は，省略を示すものではありません。

例）　where C1 in ('a','b','c')
　　　→　SearchCnd：ATS ['a'],['b'],['c']

注　使用するインデクスの構成列がC1の場合です。

絞り込み値の集合によるATS

ATS [絞り込み値の集合]：

絞り込み値の集合（表副問合せから作成される作業表）を使用して，インデクスを複数回サーチする場合に使用します。

探索条件は，C1=any(Select C1 from T2),C1=some(Select C1 from T2),C1 in (Select C1 from T2)などです。

例）　where C1 =any(select C1 from T2)
　　　→　SearchCnd：ATS [(SUBQ(2))]

注　使用するインデクスの構成列がC1の場合です。

複数の絞り込み値の集合によるATS

ATS [絞り込み値の集合], ... ,[絞り込み値の集合]：

ATS [絞り込み値の集合], ... ,[絞り込み値の集合],...(Number of All Row Values : n)...,[絞り込み値の集合]：

絞り込み値の集合（表副問合せから作成される作業表）とIN述語を組み合わせた結果を使用して，インデクスを複数回サーチする場合に使用します。

探索条件は，C1 in ('a','b','c') and C2=any(Select C1 from T2)などです。

絞り込み値の集合の総数が256個以上の場合，「...(Number of All Row Values : n)...」を表示します。nは絞り込み値の集合の総数です。

なお，「...(Number of All Row Values : n)...」の...は，省略を示すものではありません。

例）　where C1 in ('a','b','c') and C2=any(Select C1 from T2)
　　　→　SearchCnd：ATS [(‘a’,(SUBQ(2)))],[(‘b’,(SUBQ(2)))],
　　　　　　　　　　 [(‘c’,(SUBQ(2)))]

注　使用するインデクスの構成列がC1，C2の場合です。

絞り込み値，又は絞り込み値の集合

複数の絞り込み値による単一列インデクスのATS

ATS [値], ... ,[値]：

ATS [値], ... ,[値],...(Number of All Row Values : n)...,[値]：

値を","で区切って表示します。

絞り込み値の総数が256個以上の場合，「...(Number of All Row Values : n)...」を表示します。nは絞り込み値の総数です。

なお，「...(Number of All Row Values : n)...」の...は，省略を示すものではありません。

例）　where C1 in ('a','b','c')
　　　→　SearchCnd：ATS ['a'],['b'],['c']

注　使用するインデクスの構成列がC1の場合です。

絞り込み値の集合による単一列インデクスのATS

ATS [(SUBQ(問合せID))又は(SUBQEX(問合せ式本体ID))]：

表副問合せの問合せID，又は問合せ式本体IDを表示します。

例）　where C1 =any(select C1 from T2)
　　→　SearchCnd：ATS [(SUBQ(2))]

注　使用するインデクスの構成列がC1の場合です。

複数の絞り込み値による複数列インデクスのATS

ATS [(値,...,値)], ... ,[(値,...,値)]：

ATS [(値,...,値)], ... ,[(値,...,値)],...(Number of All Row Values : n)...,[(値,...,値)：

複数列インデクスの場合，値をインデクス構成列の先頭から順に","で区切り，全体を"(",")"で囲んだものが一つの絞り込み値となります。この絞り込み値を","で区切って，複数の絞り込み値を表示します。

絞り込み値の総数が256個以上の場合，「...(Number of All Row Values : n)...」を表示します。nは絞り込み値の総数です。

なお，「...(Number of All Row Values : n)...」の...は，省略を示すものではありません。

例1）　where C1 in ('a','b') and C2 in ('A','B') and C3=1
　　　→　SearchCnd：ATS [('a','A',1)],[('a','B',1)],[('b','A',1)],[('b','B',1)]

注　使用するインデクスの構成列がC1，C2，C3の場合です。

例2）　where (C1,C2) in (('a','b'), ('A','B'))
　　　→　SearchCnd：ATS [('a','b'),( 'A','B')]

注　使用するインデクスの構成列がC1，C2の場合です。

絞り込み値の集合による複数列インデクスのATS

ATS [(値，(SUBQ(問合せID))，又は(SUBQEX(問合せ式本体ID)),...,値，(SUBQ(問合せID))，又は(SUBQEX(問合せ式本体ID)))]：

複数列インデクスの場合，値又は表副問合せの問合せIDをインデクス構成列の先頭から順に","で区切り，全体を"(",")"で囲んだものが絞り込み値の集合となります。

例1）　where C1=any(select C1 from T2) and C2='a' and C3='A'
　　　→　SearchCnd：ATS [((SUBQ(2)),'a','A')]

注　使用するインデクスの構成列がC1，C2，C3の場合です。

例2）　where C1= 'a' and (C2,C3) in (select C2, C3 from T2)
　　　→　SearchCnd：ATS [('a',(SUBQ(2)),(SUBQ(2)))]

注　使用するインデクスの構成列がC1，C2，C3の場合です。

複数の絞り込み値の集合による複数列インデクスのATS

ATS [(値，(SUBQ(問合せID))，又は(SUBQEX(問合せ式本体ID)),...,値，(SUBQ(問合せID))，又は(SUBQEX(問合せ式本体ID)))]

, ... ,[(値，(SUBQ(問合せID))，又は(SUBQEX(問合せ式本体ID)),...,値，(SUBQ(問合せID))，又は(SUBQEX(問合せ式本体ID)))]：

ATS [(値，(SUBQ(問合せID))，又は(SUBQEX(問合せ式本体ID)),...,値，(SUBQ(問合せID))，又は(SUBQEX(問合せ式本体ID)))]

, ... ,[(値，(SUBQ(問合せID))，又は(SUBQEX(問合せ式本体ID)),...,値，(SUBQ(問合せID))，又は(SUBQEX(問合せ式本体ID)))]

,...(Number of All Row Values : n)...

, [(値，(SUBQ(問合せID))，又は(SUBQEX(問合せ式本体ID)),...,値，(SUBQ(問合せID))，又は(SUBQEX(問合せ式本体ID)))]：

複数列インデクスの場合，値又は表副問合せの問合せIDをインデクス構成列の先頭から順に","で区切り，全体を"(",")"で囲んだものが一つの絞り込み値の集合となります。この絞り込み値の集合を","で区切って，複数の絞り込み値の集合を表示します。

絞り込み値の総数が256個以上の場合，「...(Number of All Row Values : n)...」を表示します。nは絞り込み値の集合の総数です。

なお，「...(Number of All Row Values : n)...」の...は，省略を示すものではありません。

例）　where C1=any(select C1 from T2) and C2 in ('a','b')
　　　　　　and C3 in ('A','B')
　　　→　SearchCnd：ATS [((SUBQ(2)),'a','A')],[((SUBQ(2)),'a','B')],
　　　　　　　　　　 [((SUBQ(2)),'b','A')],[((SUBQ(2)),'b','B')]

注　使用するインデクスの構成列がC1，C2，C3の場合です。

(h)　RANGES

サーチ条件種別

RANGESは，複数列インデクスにだけ適用されます。インデクスの絞り込み開始値から終了値までの範囲を，複数回サーチする場合に使用します。

絞り込み範囲に開始値が含まれるかどうか，終了値が含まれるかどうかによって，RANGESには次の1〜3の分類があります。これらは，RANGES(...)の"..."部分に表示します。

複数の絞り込み範囲によるRANGES

RANGES(...) [絞り込み開始値,絞り込み終了値], ... ,[絞り込み開始値,絞り込み終了値]：

RANGES(...) [絞り込み開始値,絞り込み終了値], ... ,[絞り込み開始値,絞り込み終了値],...(Number of All Row Values : n)...,[絞り込み開始値,絞り込み終了値]：

絞り込み範囲を使用して，インデクスを複数回サーチする場合に使用します。

探索条件は，C1 in ('a','b','c') and C2 between 'A' and 'Z'，C1 in ('a','b','c')などです。

絞り込み値の総数が256個以上の場合，「...(Number of All Row Values : n)...」を表示します。nは絞り込み範囲の総数です。

なお，「...(Number of All Row Values : n)...」の...は，省略を示すものではありません。

例1）　where C1 in ('a','b','c') and C2 between 'A' and 'Z'
　　　　→　SearchCnd：RANGES(CS-CE)
　　　　　　　　　　　 [('a',’A’),('a',’Z’)],[('b',’A’),('b',’Z’)],[('c',’A’),('c',’Z’)]

注　使用するインデクスの構成列がC1，C2の場合です。

例2）　where C1 in ('a','b','c')
　　　　→　SearchCnd：RANGES(CS-CE)
　　　　　　　　　　　 [('a',MIN),('a',MAX)],[('b',MIN),('b',MAX)],
　　　　　　　　　　　 [('c',MIN),('c',MAX)]

注　使用するインデクスの構成列がC1，C2の場合です。

例3）　where (C1,C2) in (('a', 'a'), ('b', 'b'))
　　　　→　SearchCnd：RANGES(CS-CE)
　　　　　　　　　　　 [('a', 'a',MIN),( 'a', 'a',MAX)] ,
　　　　　　　　　　　 [('b', 'b',MIN),( 'b', 'b',MAX)]

注　使用するインデクスの構成列がC1，C2，C3の場合です。

絞り込み範囲の集合によるRANGES

RANGES(...) [絞り込み開始値の集合,絞り込み終了値の集合]：

絞り込み範囲の集合（表副問合せから作成される作業表）を使用して，インデクスを複数回サーチする場合に使用します。

探索条件は，C1 =any(select C1 from T2)などです。

例1）　where C1 =any(select C1 from T2)
　　　→　SearchCnd：RANGES(CS-CE)
　　　　　　　　　　 [((SUBQ(2)),MIN),((SUBQ(2)),MAX)]

注　使用するインデクスの構成列がC1，C2の場合です。

例2）　where (C1,C2) = any(select C1, C2 from T2)
　　　→　SearchCnd：RANGES(CS-CE)
　　　　　　　　　　 [((SUBQ(2)),(SUBQ(2)),MIN),((SUBQ(2)),
　　　　　　　　　　 (SUBQ(2)),MAX)]

注　使用するインデクスの構成列がC1，C2，C3の場合です。

複数の絞り込み範囲の集合によるRANGES

RANGES(...) [絞り込み開始値又は絞り込み開始値の集合,絞り込み終了値又は絞り込み終了値の集合], ... ,[絞り込み開始値又は絞り込み開始値の集合,絞り込み終了値又は絞り込み終了値の集合]：

RANGES(...) [絞り込み開始値又は絞り込み開始値の集合,絞り込み終了値又は絞り込み終了値の集合], ... ,[絞り込み開始値又は絞り込み開始値の集合,絞り込み終了値又は絞り込み終了値の集合],...(Number of All Row Values : n)...,[絞り込み開始値又は絞り込み開始値の集合,絞り込み終了値又は絞り込み終了値の集合]：

絞り込み範囲の集合（表副問合せから作成される作業表）とIN述語を組み合わせた結果を使用して，インデクスを複数回サーチする場合に使用します。

探索条件は，C1 in ('a','b','c') and C2=any(Select C1 from T2)などです。

絞り込み値の総数が256個以上の場合，「...(Number of All Row Values : n)...」を表示します。nは絞り込み範囲の集合の総数です。

なお，「...(Number of All Row Values : n)...」の...は，省略を示すものではありません。

例1）　where C1 in ('a','b','c') and C2=any(Select C1 from T2)
　　　→　SearchCnd：RANGES(CS-CE)
　　　　　　　　　　 [(’a’,(SUBQ(2)),MIN),(’a’,(SUBQ(2)),MAX)],
　　　　　　　　　　 [(’b’,(SUBQ(2)),MIN),(’b’,(SUBQ(2)),MAX)],
　　　　　　　　　　 [(’c’,(SUBQ(2)),MIN),(’c’,(SUBQ(2)),MAX)]

注　使用するインデクスの構成列がC1，C2，C3の場合です。

例2）　where C1 in ('a','b') and (C2,C3)=any(Select C1,C2 from T2)
　　　　　 and C4>'A'
　　　→　SearchCnd：RANGES(CS-CE)
　　　　　　　　　　 [(’a’,(SUBQ(2)),(SUBQ(2)),'A'),
　　　　　　　　　　 (’a’,(SUBQ(2)),(SUBQ(2)),MAX)],
　　　　　　　　　　 [(’b’,(SUBQ(2)),(SUBQ(2)),'A'),
　　　　　　　　　　 (’b’,(SUBQ(2)),(SUBQ(2)),MAX)]

注　使用するインデクスの構成列がC1，C2，C3，C4の場合です。

(3)　絞り込み範囲に使用する値

(a)　定数

定数を使用して絞り込む場合に値を表示します。定数の表示形式については，マニュアル「HiRDB SQLリファレンス」を参照してください。

パターン文字列が前方一致となるLIKE述語，又はSIMILAR述語を指定した場合，定数は次の表のように表示します。

表17‒3　パターン文字列が前方一致となるLIKE述語，又はSIMILAR述語を指定した場合の表示例，サーチ範囲

列のデータ型

パターン文字列

サーチ条件の絞り込み範囲の表示例

インデクスのサーチ範囲※

固定長の場合

(例：char(5))

定数

RANGE(CS-CE) ['abc'00,'abc'ff]

　　　　(定数を’abc%’とする)

最初に出現する’%’，又は’_’以降を取り除いた文字列に対して，開始値は定義長まで0を，終了値は定義長までfを埋めます。

X’6162630000’

　〜X’616263ffff’

埋込み変数，又は？パラメタ

RANGE(CS-CE) [<?(1)0>,<?(1)f>]

開始値は0を一つ，終了値はfを一つ埋めます。

X’6162630000’

　〜X’616263ffff’

（？パラメタを’abc%’とします）

SQL変数，又はSQLパラメタ（SQL変数名をSQLVARと仮定します）

RANGE(CS-CE) [<SQLVAR0>,<SQLVARf>]

開始値は0を一つ，終了値はfを一つ埋めます。

X’6162630000’

　〜X’616263ffff’

（SQL変数を’abc%’とします）

可変長の場合

(例：varchar(5))

定数

RANGE(CS-CE) ['abc','abc'ff]

　　　　(定数を’abc%’とする)

開始値は最初に出現する’%’又は’_’以降の文字列を取り除いて，終了値は開始値に定義長までfを埋めます。

X’616263’

　〜X’616263ffff’

埋込み変数，又は？パラメタ

RANGE(CS-CE) [<?(1)>,<?(1)f>]

終了値だけfを一つ埋めます。

X’616263’

　〜X’616263ffff’

（？パラメタを’abc%’とします）

SQL変数，又はSQLパラメタ（SQL変数名をSQLVARと仮定します）

RANGE(CS-CE) [<SQLVAR>,<SQLVARf>]

終了値だけfを一つ埋めます。

X’616263’

　〜X’616263ffff’

（SQL変数を’abc%’とします）

注※　文字コードはaをX’61’，bをX’62’，cをX’63’とします。

(b)　？（？番号）

埋込み変数，又は？パラメタの場合に表示します。？番号とは，SQL文中にある埋込み変数，又は？パラメタに対して，1を開始値として左から出現順に番号を付けたものです。

パターン文字列が前方一致となるLIKE述語，又はSIMILAR述語を指定した場合，？は表「パターン文字列が前方一致となるLIKE述語，又はSIMILAR述語を指定した場合の表示例，サーチ範囲」のように表示します。

(c)　SQL変数名

SQL変数の場合に表示します。

パターン文字列が前方一致となるLIKE述語，又はSIMILAR述語を指定した場合，SQL変数名は表「パターン文字列が前方一致となるLIKE述語，又はSIMILAR述語を指定した場合の表示例，サーチ範囲」のように表示します。

(d)　SQLパラメタ名

SQLパラメタの場合に表示します。

トリガSQL文中で新値相関名の列，及び旧値相関名の列を使用している場合，新値相関名の列は「(NEWROW).列名」，旧値相関名の列は「(OLDROW).列名」と表示します。

パターン文字列が前方一致となるLIKE述語，又はSIMILAR述語を指定した場合，SQLパラメタ名は表「パターン文字列が前方一致となるLIKE述語，又はSIMILAR述語を指定した場合の表示例，サーチ範囲」のように表示します。

(e)　USER

USER値関数を使用して絞り込む場合に表示します。

(f)　CURRENT_DATE

CURRENT_DATE値関数を使用して絞り込む場合に表示します。

(g)　CURRENT_TIME

CURRENT_TIME値関数を使用して絞り込む場合に表示します。

(h)　CURRENT_TIMESTAMP(p)

CURRENT_TIMESTAMP値関数を使用して絞り込む場合に表示します（P=0，2，4，又は6）。

(i)　SUBQ(問合せID)

集合演算を含まない副問合せ結果を使用して絞り込む場合に表示します。（ ）の中に問合せIDを表示します。

(j)　SUBQEX(問合せ式本体ID)

集合演算を含む副問合せ結果を使用して絞り込む場合に表示します。（ ）の中に問合せIDを表示します。

(k)　集合関数

集合関数を使用して絞り込む場合に表示します。

(l)　NULL

NULL値を使用して絞り込む場合に表示します。

(m)　表名.列名

列を使用して絞り込む場合に表示します。

表名が相関名の場合には，表名の代わりに相関名を（ ）で囲んで表示します。

(n)　(NEW ROW).列名

制約判定のためにHiRDBが内部的に生成する副問合せ中で，外部キーへの挿入値，又は更新値を使用して絞り込む場合に表示します。

(o)　表名.列名[添字]

繰返し列（添字は整数）を使用して絞り込む場合に表示します。

表名が相関名の場合には，表名の代わりに相関名を（ ）で囲んで表示します。

(p)　MIN

インデクスキー値の中で一番小さい値（文字列の場合には文字コードが一番小さい値）を検索する場合に表示します。

(q)　MAX

インデクスキー値の中で一番大きい値（文字列の場合には文字コードが一番大きい値）を検索する場合に表示します。

17.5.12　キー条件

(1)　キー条件の概要

KeyCnd：キー条件

キー条件とは，インデクスの構成列だけで評価できる条件のことをいいます。

データページを参照しないでインデクスページだけで探索条件を評価できるため，高速に検索できます。サーチ条件でインデクスのサーチ範囲を絞り込んだ後に，キー条件で評価すると効果的です。サーチ条件，及びキー条件で評価できない述語については，データページを検索する際に評価します。

キー条件が複数ある場合には，条件をAND，又はORで結合した形になります。

AND，及びORの優先順位によって，（ ）で囲んで表示します。

(a)　サーチ条件とキー条件の両方を持つ場合

サーチ条件でインデクスを絞り込んで，キー条件で評価します。

例）　where T1.C1 between 'a' and 'z' and T1.C1 like '%c'

例）　where XMLEXISTS('/A/B/C/D/E[./F<8 and ./F>2 and ./F<>5] '

　passing by value T1.C1)

(b)　キー条件だけ持つ場合

インデクスの端から端までをキー条件で評価します。インデクスの全範囲をサーチする必要があるため，サーチ条件とキー条件の両方がある場合に比べて，性能的に遅くなります。

例）　where T1.C1 like '%c'

例）　where XMLEXISTS('/A/B/C/D/E[./F<>0] 'passing by value T1.C1 )

(c)　実行時にキー条件が削除される場合

パターン文字列に埋込み変数，？パラメタ，SQL変数，SQLパラメタを持つLIKE述語，又はSIMILAR述語を指定すると，実行時に与えられるパターン文字列が’abc%d’のような場合には，サーチ条件で’abc’から始まる値をサーチし，キー条件で最後が’d’で終わるかどうかを判定します。しかし，実行時に与えられるパターン文字列が’abc%’のような前方一致となる値を指定すると，’abc’から始まる値をサーチするだけで条件を評価できると判断し，実行時にキー条件を評価しなくなります。

このようにパターン文字列の値によって，削除できるようになるキー条件を＜ ＞で囲んで表示します。

例）　where T1.C1 like ?

　　　？パラメタの値が’abc%’（C1のデータ型：CHAR(5)）

［説明］

？が’abc%’の場合：

X’6162630000’〜X’616263ffff’の範囲を検索します（キー条件は削除されます）。

？が’abc%d’の場合：

X’6162630000’〜X’616263ffff’の範囲を検索し，キー条件でT1.C1 like ’abc%d’を評価します。

？が’%abc’の場合：

インデクスの全範囲をサーチし，キー条件でT1.C1 like ’%abc’を評価します（サーチ条件だけ削除されます。サーチ条件については，「サーチ条件」を参照してください）。

？(1)の番号は，？番号を表します。？番号については「キー条件に使用する値」を参照してください。

(2)　キー条件に含まれる述語

キー条件に含まれる述語の形式を示します。限定述語，EXISTS述語はキー条件にはなりません。

ここで説明するキー条件の例は，インデクスの定義方法によっては，より高速に検索をするためサーチ条件にする場合があります。

(a)　NULL述語

値 is null：

インデクスのキー値がNULLかどうかを評価します。

例）　where T1.C1 is null
　　　→　KeyCnd：T1.C1 is null

値 is not null：

インデクスのキー値がNULL以外かどうかを評価します。

例）　where T1.C1 is not null
　　　→　KeyCnd：T1.C1 is not null

(b)　IN述語

値 in (値,値,…,値)：

インデクスのキー値が値に含まれるかどうかを評価します。

例）　where T1.C1 in ('a','b','c')
　　　→　KeyCnd：T1.C1 in ('a','b','c')

値 not in (値,値,…,値)：

インデクスのキー値が値に含まれないかを評価します。

例）　where T1.C1 not in ('a','b','c')
　　　→　KeyCnd：T1.C1 not in ('a','b','c')

(c)　LIKE述語

値 like パターン文字列 [escape エスケープ文字]：

インデクスのキー値がパターンと一致するかどうかを評価します。

例）　where T1.C1 like '%a'
　　　→　KeyCnd：T1.C1 like '%a'

値 not like パターン文字列 [escape エスケープ文字]：

インデクスのキー値がパターンと一致しないかを評価します。

例）　where T1.C1 not like '%a¥_' escape '¥'
　　　→　KeyCnd：T1.C1 not like '%a¥_' escape '¥'

(d)　XLIKE述語

値 xlike パターン文字列 [escape エスケープ文字]：

インデクスのキー値が大文字，小文字を区別しないでパターンと一致するかどうかを評価します。

例）　where T1.C1 xlike '%a'
　　　→　KeyCnd：T1.C1 xlike '%a'

値 not xlike パターン文字列 [escape エスケープ文字]：

インデクスのキー値が大文字，小文字を区別しないでパターンと一致しないかを評価します。

例）　where T1.C1 not xlike '%a¥_' escape '¥'
　　　→　KeyCnd：T1.C1 not xlike '%a¥_' escape '¥'

(e)　BETWEEN述語

値 between 値1 and 値2：

インデクスのキー値が値1以上で，値2以下の範囲に含まれるかどうかを評価します。なお，not between は比較述語（<，>）とORの組み合わせに変換して評価します。

例1）　where T1.C1 >= 'a' and T1.C1 <= 'z'
　　　　→　KeyCnd：T1.C1 between 'a' and 'z'

例2）　where T1.C1 not between 'a' and 'z'
　　　　→　KeyCnd：T1.C1<'a' OR T1.C1>'z'

(f)　比較述語

値{=，<，<=，>，>=，<>}値：

インデクスのキー値が比較述語（=，<，<=，>，>=，<>）を満たすかどうかを評価します。

例1）　where T1.C1=T1.C2
　　　→　KeyCnd：T1.C1=T1.C2

例2）　where T1.C1=(select C1 from T2)
　　　→　KeyCnd：T1.C1=SUBQ(2)

(g)　構造化繰返し述語

array(…)[any](キー条件)：

構造化繰返し述語の探索条件の中で，サーチ条件で評価できる条件を取り除いてからキー条件で評価する条件を表示します。

例）　where array(T1.C1,T1.C2)[any]
　　　　(T1.C1<'a' or (T1.C1>'z' and T2.C2='a'))
　　　→　KeyCnd：array(...)[any]
　　　　　　　　　(T1.C1<'a' or (T1.C1>'z' and T2.C2='a'))

(h)　SIMILAR述語

値 similar to パターン文字列 [escape エスケープ文字]：

インデクスのキー値がパターンと一致するかどうかを評価します。

例）　where T1.C1 similar to '%a'
　　　→　KeyCnd：T1.C1 similar to '%a'

値 not similar toパターン文字列 [escape エスケープ文字]：

インデクスのキー値がパターンと一致しないかを評価します。

例）　where T1.C1 not similar to '%a¥_' escape '¥'
　　　→　KeyCnd：T1.C1 not similar to '%a¥_' escape '¥'

(3)　キー条件に使用する値

(a)　表名.列名

キー条件に列名を指定した場合に表示します。

表名が相関名の場合には，表名の代わりに相関名を（ ）で囲んで表示します。

(b)　(NEW ROW).列名

制約判定のためにHiRDBが内部的に生成する副問合せ中で，外部キーへの挿入値，又は更新値を使用して絞り込む場合に表示します。

(c)　表名.列名[添字]

キー条件に繰返し列（添字は整数，又はANY）を指定した場合に表示します。

表名が相関名の場合には，表名の代わりに相関名を（ ）で囲んで表示します。

(d)　定数

キー条件に定数を指定した場合に値を表示します。定数の表示形式については，マニュアル「HiRDB SQLリファレンス」を参照してください。

(e)　？（？番号）

キー条件に埋込み変数，又は？パラメタを指定した場合に表示します。？番号とは，SQL文中にある埋込み変数，又は？パラメタに対して，１を開始値として左から出現順に番号を付けたものです。

(f)　SQL変数名

キー条件にSQL変数を指定した場合に表示します。

(g)　SQLパラメタ名

キー条件にSQLパラメタを指定した場合に表示します。

トリガSQL文中で新値相関名の列，及び旧値相関名の列を使用している場合，新値相関名の列は「(NEWROW).列名」，旧値相関名の列は「(OLDROW).列名」と表示します。

(h)　USER

キー条件にUSER値関数を指定した場合に表示します。

(i)　CURRENT_DATE

キー条件にCURRENT_DATE値関数を指定した場合に表示します。

(j)　CURRENT_TIME

キー条件にCURRENT_TIME値関数を指定した場合に表示します。

(k)　CURRENT_TIMESTAMP(p)

キー条件にCURRENT_TIMESTAMP値関数を指定した場合に表示します（p=0，2，4，又は6）。

(l)　(SUBQ(問合せID))

キー条件に集合演算を含まないスカラ副問合せ，又は行副問合せを指定した場合に表示します。（ ）の中には問合せIDを表示します。

(m)　SUBQEX(問合せ式本体ID)

キー条件に集合演算を含むスカラ副問合せ，又は行副問合せを指定した場合に表示します。（ ）の中には問合せIDを表示します。

(n)　スカラ演算

キー条件にスカラ演算を指定した場合に表示します。

(o)　行値構成子

キー条件に行値構成子を指定した場合に表示します。

17.5.13　ORDER BY処理方式の種類

(1)　HiRDB/シングルサーバの場合

HiRDB/シングルサーバの場合，次の処理方式があります。

SORT CANCEL BY INDEX[(LIMIT SCAN)]

ORDER BYのためのソート処理をしなくても，インデクスを検索することでORDER BYに含まれる列をソートできる場合に，ORDER BYのソート処理を省略します。

先頭からn行の検索結果を取得する機能を使用した場合，(LIMIT SCAN)を表示することがあります。この場合，インデクスの検索は先頭n行だけになり，検索結果のうち先頭n行を求めます。

SORT CANCEL BY JOIN

ORDER BYに含まれる列をすべて結合条件に指定している場合，ORDER BYのためのソート処理をしなくてもマージジョインによるソート処理がされるため，ORDER BYのソート処理を省略します。

SORT CANCEL BY DISTINCT[(LIMIT SCAN)]

ORDER BYの対象の値式がすべてDISTINCT処理によってソートされる場合，ORDER BYのソート処理を省略します。

先頭からn行の検索結果を取得する機能を使用した場合，(LIMIT SCAN)を表示することがあります。この場合，DISTINCT処理結果のうち先頭n行を求めます。

SORT CANCEL BY GROUPING[(LIMIT SCAN)]

ORDER BYに含まれる列がすべてグループ化処理によってソートされる場合，ORDER BYのソート処理を省略します。

先頭からn行の検索結果を取得する機能を使用した場合，(LIMIT SCAN)を表示することがあります。この場合，グループ化処理結果のうち先頭n行を求めます。

LIST SORT

作業表を作成してソートすることで，ORDER BYの結果を求めます。

LIMIT SCAN

先頭からn行の検索結果を取得する機能を使用した場合に表示することがあります。探索条件を満たしたすべての行を対象とするソート処理はしないで，限られた行だけをソートすることでORDER BYの結果のうち先頭n行を求めます。

PRE-SORT JOIN

ORDER BYに含まれるすべての列又は値式が，結合する前の外表又は外側の結合表に含まれる場合，結合する前にソートをして，そのソート順のまま結合しORDER BYの結果を求めます。

PRE-SORT SET OPERATION[(LIMIT SCAN)]

集合演算の処理の前に，問合せごとにソートをして，そのソート順のまま演算します。そして，ORDER BY及び集合演算の結果を求める処理方式です。

先頭からn行の検索結果を取得する機能を使用した場合，(LIMIT SCAN)を表示することがあります。この場合，先頭n行を取得するまで集合演算をして，ORDER BY及び集合演算のうち先頭n行を求めます。

SORT CANCEL FOR SAME VALUES

ORDER BYの対象の値式がすべてウィンドウ関数の結果であり，かつすべての行で同じ値であることが保証される場合，ORDER BYのソート処理を省略する処理方式です。

(2)　HiRDB/パラレルサーバの場合

HiRDB/パラレルサーバの場合，次の処理方式があります。

SORT CANCEL BY INDEX[(LIMIT SCAN)]

ORDER BYのためのソート処理をしなくても，インデクスを検索することでORDER BYに含まれる列をソートできる場合に，ORDER BYのソート処理を省略します。

先頭からn行の検索結果を取得する機能を使用した場合，(LIMIT SCAN)を表示することがあります。この場合，インデクスの検索は先頭n行だけになり，検索結果のうち先頭n行を求めます。

SORT CANCEL BY DISTINCT[(LIMIT SCAN)]

ORDER BYの対象の値式がすべてDISTINCT処理によってソートされる場合，ORDER BYのソート処理を省略します。

先頭からn行の検索結果を取得する機能を使用した場合，(LIMIT SCAN)を表示することがあります。この場合，DISTINCT処理結果のうち先頭n行を求めます。

SORT CANCEL BY GROUPING[(LIMIT SCAN)]

ORDER BYに含まれる列がすべてグループ化処理によってソートされる場合，ORDER BYのソート処理を省略します。

先頭からn行の検索結果を取得する機能を使用した場合，(LIMIT SCAN)を表示することがあります。この場合，グループ化処理結果のうち先頭n行を求めます。

LIST SORT

各バックエンドサーバで作業表を作成してソートすることで，ORDER BYの結果を求めます。

LIMIT SCAN

先頭からn行の検索結果を取得する機能を使用した場合に表示することがあります。探索条件を満たしたすべての行を対象とするソート処理はしないで，限られた行だけをソートすることでORDER BYの結果のうち先頭n行を求めます。

PRE-SORT JOIN

ORDER BYに含まれるすべての列又は値式が，結合する前の外表又は外側の結合表に含まれる場合，結合する前にソートをして，そのソート順のまま結合しORDER BYの結果を求めます。

FLOATABLE SORT

複数のフロータブルサーバに転送し，作業表を作成してソートすることでORDER BYの結果を求めます。

LIST SORT WITH SET OPERATION[(LIMIT SCAN)]

問合せごとのORDER BYのためのソートはしないで，集合演算の処理のときにORDER BYのソートをします。その後，そのソート順のまま演算して，ORDER BY及び集合演算の結果を求める処理方式です。

先頭からn行の検索結果を取得する機能を使用した場合，(LIMIT SCAN)を表示することがあります。この場合，先頭n行を取得するまで集合演算をして，ORDER BY及び集合演算の結果のうち先頭n行を求めます。

SORT CANCEL FOR SAME VALUES

ORDER BYの対象の値式がすべてウィンドウ関数の結果であり，かつすべての行で同じ値であることが保証される場合，ORDER BYのソート処理を省略する処理方式です。

17.6　チューニングの考え方

pdvwoptの出力結果を基に，SQL文，インデクス定義の変更をして，検索性能の向上を図ります。

チューニングをしてアクセスパスを変更する場合，データの特性によっては必ずしも性能が改善されるとは限りません。アクセスパスを変更する場合には必ず性能を評価するようにしてください。

17.6.1　チューニング手順の例

pdvwoptの出力結果に基づいてチューニングをする方法の例を次に示します。17.6.2〜17.6.4の観点を基にチューニングをしてください。

*****     Result of SQL Optimizer     *****
Version        : HiRDB/Parallel Server VV-RR 4BES
UAP Name       : pdsql   -----------------------> UAP名は正しいか？
UAP Source     : pdsql-21775
Authorization  : user1   -----------------------> 認可識別子名は正しいか？
--------------------------------------------------------------------------------
Section No     : 1
Optimize Time  : 2001-01-07 10:59:16.591727  ---> SQL文を実行した時間は正しいか？
Optimize Mode  : COST_BASE_2
SQL Opt Level  : 0x00000420(1056) = "PRIOR_NEST_JOIN"(32),"RAPID_GROUPING"(1024)
Add Opt Level  : 0x00000003(3) = "COST_BASE_2"(1),"APPLY_HASH_JOIN"(2)
  ------------> SQL最適化オプション，SQL拡張最適化オプションは最適か？※１
SQL            : select T1.C1,T1.C2 from T1,T2,T3
                     where T1.C1='a' and T1.C2 like '%A'
                       and T1.C1=T2.C1 and T1.C2=T2.C2 and T2.C3>=1995
                       and T1.C1=T3.C1 and T1.C2=T3.C2 order by T1.C2
                                              --> SQL文は正しいか？
Work Table     : 3
Total Cost     : 3314.567244
----- QUERY ID : 1 -----
Query Type     : QUERY LIST(SORT) {LLID1(2)}
Order by Mode  : FLOATABLE SORT
FLT Server     : 2 (ORDER BY)  2-CLM 1TO1
JOIN
 # Join  ID    : 1   ----------------------------> 表の結合順序は意図した通りか？
   L Table     :  T1
   R Table     :  T2
   Join Type   : 2-CLM NESTED LOOPS JOIN(INNER) BROADCAST(FROM L TO R)
 -------------> 内表の分割キーを変更して，BROADCAST以外にできないか？※２
   FLT Server  : 0
 # Join  ID    : 2
   L Table     :  T3
   R Join ID   :  1 LIST{JRLST(1)}
   Join Type   : 2-CLM HASH JOIN(INNER) 1-CLM HASH(FROM R TO L)
 -------------> 結合方式は意図した通りか？※３
   FLT Server  : 0
SCAN
 # Table Name  : T1
   Cost        : N (10000000ROW) {T-2962.358541,I-763.682244,AND-766.202330}
   RDAREA      : NON DIVISION (1RD/1BES) [0x07(7)] ALL
   Scan Type   : MULTI COLUMNS KEY SCAN
   Index Name  : X1 (2) (+C2,+C1)   --------------> 意図したインデクスを使用しているか？
                     SearchCnd : RANGE(CS-CE) [(MIN,'a    '),(MAX,'a    ')] (FULL SCAN)
                     -----------------------------> サーチ範囲が絞り込まれているか？※４
                     KeyCnd    : T1.C1='a    ' AND T1.C2 like '%A'
 # Table Name  : T2
   Cost        : N (20000000ROW) {T-1388.652368,I-408.252884,AND-2647.479838}
   RDAREA      : 1-CLM FIX HASH(HASH6) (2RD/2BES) [0x07(7),0x0d(13)] ALL
   Scan Type   : MULTI COLUMNS KEY SCAN
   Index Name  : X2 (3) (+C1,+C2,+C3)
                     SearchCnd : RANGE(CS-CE) [(T1.C1,T1.C2,1995),(T1.C1,T1.C2,MAX)]
 # Table Name  : T3
   Cost        : N (20000000ROW) {T-1621.172368}
   RDAREA      : 1-CLM FIX HASH(HASH6)(4RD/2BES)[0x07(7),0x08(8),0x0d(13),0x0e(14)]ALL
   Scan Type   : TABLE SCAN   ------------------> 意図したスキャンタイプになっているか？

注　この出力結果は一部編集しているため，実際の表示例とは異なります。

注※1

データベースの状態に最適なSQL最適化オプション，SQL拡張最適化オプションを指定しているか確認してください。

SQL最適化オプション，SQL拡張最適化オプションについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

注※2

ネストループジョイン時に転送方法がBROADCAST転送，KEY RANGE PARTIAL BROAD CAST転送，又はPARTIAL BROADCAST転送となる場合は，ネストループジョインの内表の分割キーを変更して，BROADCAST，KEY RANGE PARTIAL BROAD CAST，及びPARTIAL BROADCAST以外にすることで，性能が向上することがあります。

詳細については，「分割キーを使用したネストループジョイン」を参照してください。

＜変更前＞

 # Join  ID    : 1
   L Table     :  T1
   R Table     :  T2
   Join Type   : 2-CLM NESTED LOOPS JOIN(INNER) BROADCAST(FROM L TO R)
   FLT Server  : 0

　　　　　　↓　表T2の分割キーをC1（結合キー）にします。

＜変更後＞

 # Join  ID    : 1
   L Table     :  T1
   R Table     :  T2
   Join Type   : 2-CLM NESTED LOOPS JOIN(INNER) 1-CLM HASH(FROM L TO R)
   FLT Server  : 0

最もデータの偏りの少ない列を分割キーにしてください。データの偏りの少ない列がなく，かつ複数の列で結合している場合には，結合列に使用している列から，それらを組み合わせることでデータの偏りが少なくなる列を複数選択して，分割キーに指定してください。

注※3

T1とT2の結合結果の件数が絞り込まれている場合，T1，T2の結合結果とT3をネストループジョインにした方が高速に検索できます。そこで，T3の列を含んでいる結合条件（T1.C1=T3.C1 and T1.C2=T3.C2）から，T3の列をすべて含む複数列インデクスT3（C1，C2）を定義します。

詳細については，「結合検索に使用する表のインデクス定義」を参照してください。

＜変更前＞

 # Join  ID    : 2
   L Table     :  T3
   R Join ID   :  1 LIST{JRLST(1)}
   Join Type   : 2-CLM HASH JOIN(INNER) 1-CLM HASH(FROM R TO L)
   FLT Server  : 0
                 ・
                 ・
                 ・
 # Table Name  : T3
   Cost        : N (2000000000ROW)  {T-1621.172368}
   RDAREA      : 1-CLM FIX HASH (HASH6)  (4RD/2BES) [...] ALL
   Scan Type   : TABLE SCAN

　　　　　　↓　T3（C1，C2）にインデクスを定義します。

＜変更後＞

 # Join  ID    : 2
   L Join ID   :  1
   R Table     :  T3
   Join Type   : 2-CLM NESTED LOOPS JOIN(INNER) 1-CLM HASH(FROM L TO R)
   FLT Server  : 0
                 ・
                 ・
                 ・
 # Table Name  : T3
   Cost        : N (2000000000ROW)  {T-1621.172368,T-1581.852884}
   RDAREA      : 1-CLM FIX HASH (HASH6)  (4RD/2BES) [...] ALL
   Scan Type   : MULTI COLUMNS KEY SCAN
   Index Name  : X3 (2D) (+C1,+C2)
                    SearchCnd : AT [(T1.C1,T1,C2)]

注※4

インデクスの第1構成列に対する条件が範囲を形成できないため，インデクスの全範囲をサーチしてしまいます。インデクスの第2構成列に＝があるため，インデクスの第1構成列と第2構成列を逆にします。

詳細については，「インデクスの定義」を参照してください。

＜変更前＞

 Index Name  : X1 (2) (+C2,+C1)
                    SearchCnd : RANGE(CS-CE) [(MIN,'a    '),(MAX,'a    ')] (FULL SCAN)
                    KeyCnd    : T1.C1='a    ' AND T1.C2 like '%A'

　　　　　　↓

T1（C2，C1）のインデクスを削除し，T1（C1，C2）のインデクスを定義します。

＜変更後＞

 Index Name  : X1 (2) (+C1,+C2)
                    SearchCnd : RANGE(CS-CE) [('a    ',MIN),('a    '),MAX]
                    KeyCnd    : T1.C2 like '%A'

17.6.2　インデクス定義について

まず，会話型SQL実行ユティリティ（HiRDB SQL Executer）でインデクスの定義情報を調べます。

HiRDB SQL Executerがある場合

インデクスの一覧を取得したい場合には，HiRDB SQL ExecuterのINDEXESコマンドを使用します。

インデクス名からインデクス構成列名を取得したい場合には，INDEXCLMコマンドを使用します。

なお，GUI版HiRDB SQL Executerの場合は，［ディクショナリビュー］画面でも確認できます。［ディクショナリビュー］画面の参照方法については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

詳細については，HiRDB SQL Executerのヘルプを参照してください。

HiRDB SQL Executerがない場合

HiRDB SQL Executerがない場合は，ディクショナリ表を検索して情報を取得します。ディクショナリ表の検索例を次に示します。なお，ディクショナリ表については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

定義されているインデクスの一覧を取得したい場合は，ディクショナリ表のSQL_INDEXESを検索します。

   SELECT INDEX_ID , INDEX_NAME , TABLE_NAME ,
           UNIQUE_TYPE , VALUE(ARRAY_TYPE,' ') , COLUMN_COUNT
     FROM MASTER.SQL_INDEXES
     WHERE TABLE_SCHEMA LIKE USER
     ORDER BY 1

インデクス名からインデクス構成列名などを取得したい場合は，ディクショナリ表のSQL_INDEX_COLINFとSQL_COLUMNSを結合検索します。

   SELECT Y.INDEX_ORDER , X.COLUMN_ID , X.COLUMN_NAME ,
            VALUE(X.MAX_ELM,1) , Y.ASC_DESC
     FROM MASTER.SQL_COLUMNS X , MASTER.SQL_INDEX_COLINF Y
     WHERE X.TABLE_SCHEMA = Y.TABLE_SCHEMA
       AND X.TABLE_NAME = Y.TABLE_NAME
       AND X.COLUMN_NAME = Y.COLUMN_NAME
       AND Y.INDEX_NAME LIKE 'IDX1'
       AND Y.TABLE_SCHEMA LIKE USER
     ORDER BY 1

(1)　インデクスの定義

(a)　表示の確認

Scan Typeの情報を確認してください。TABLE SCAN，又はAND PLURAL INDEXES SCANとなる場合で，性能が余り良くないときにはインデクスを定義している列をすべて含む，複数列インデクスを定義することを検討してください。

Index Nameの情報を確認して，意図したインデクスが使用されているかどうかを確認してください。

サーチ条件，キー条件から，インデクスが有効に絞り込まれているかどうか確認してください。インデクスの検索する範囲が有効に絞り込まれていない例を次に示します。

サーチ条件がない（サーチ条件にSearchCnd：NONE(FULL SCAN)が表示される）

サーチ条件の第1構成列の絞り込み範囲が，MIN〜MAXまでである（サーチ条件の絞り込み範囲の後ろに(FULL SCAN)が表示される）

インデクスのサーチする範囲が広い

(b)　ベターユース

ANDを使用して，複数の述語を指定した検索をすることが多い表には，それぞれの述語の列を構成列とする複数列インデクスを定義します。この場合，＝述語で組み合わせて指定することが多い列を，値の重複の少ないものから順にインデクス構成列として指定します。

(c)　理由

インデクスのサーチ範囲が狭くなるため，サーチ時間が短縮されます。

(d)　例

SELECT * FROM T1 WHERE C1=10 AND C2=30 AND C3 BETWEEN 10 AND 20
SELECT * FROM T1 WHERE C1=10 AND C2=30 AND C3 <= 15
SELECT * FROM T1 WHERE C1=20 AND C2=40 AND C4 = 60
             ↓

T1(C1,C2,C3)，T1(C1,C2,C4)のインデクスを定義します。

(e)　注意事項

インデクスの構成列数を増やし過ぎると，インデクス自体を検索する時間が長くなります。

列を更新すると，インデクスのメンテナンスが発生します。したがって，更新が多い列は，できるだけインデクス構成列に含めないようにしてください。

インデクスを定義する数はできるだけ少なくしてください。

(2)　結合検索に使用する表のインデクス定義

(a)　表示の確認

Join Typeがソートマージジョインで，大量データのソートがされていて性能が良くない場合，外表の探索条件が十分に絞り込めるのであれば，内表の結合列にインデクスを作成してネストループジョインにすると，効率的に検索できる可能性があります。

(b)　ベターユース

制限条件で絞り込んだ表との結合検索に使用する表には，結合列を第1構成列とするインデクスを定義します。

結合条件を複数（n個）指定することが多い場合には，結合列が第1構成列から第n構成列となるインデクスを定義します。この場合，値の重複の少ない列を先に指定してください。さらに，結合条件以外の探索条件のある場合には，結合列の後ろ（第ｎ＋１構成列以降）に指定してインデクスを定義します。

(c)　理由

制限条件の指定された表を外表，結合列にインデクスの定義された表を内表としてネストループジョインをするため，結合にインデクスを使用でき，入出力回数を削減できます。

(d)　例

SELECT * FROM T1,T2
WHERE T1.C3=20 AND T1.C1=T2.C1 AND T1.C2=T2.C2 AND T2.C3>10
                    内表の結合列はT2(C1,C2)
             ↓

T2(C1,C2,C3)のインデクスを定義します。

(e)　注意事項

結合条件で外表に制限条件がない場合，通常はネストループジョインになりません。

内表，外表の両側に制限条件を指定している場合，ネストループジョインにならないことがあります。

ネストループジョインを優先的，又は強制的にしたい場合には，SQL最適化オプションの「ネストループジョイン強制」，又は「ネストループジョイン優先」を指定してください。詳細については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(3)　外結合時に使用するインデクス

(a)　表示の確認

外結合（LEFT OUTER JOIN）時に，意図したインデクスが使用されているかどうか確認してください。

(b)　ベターユース

次のようなインデクスは，外結合時には使用されません。

FROM句中のON探索条件に指定した，外表の列に対するインデクス

WHERE句に指定した，内表の列に対するインデクス

インデクスを使用して検索するためには，外表の条件はWHERE句に，内表の条件はON探索条件に指定できるかどうか検討してください。

注　外結合時の外表，内表の区分を次に示します。

外表 LEFT OUTER JOIN 内表 ON …

WHERE …

(c)　理由

外表の列は，FROM句中のON探索条件の真偽に関係なく，すべての行が取り出されます。そのため，FROM句中のON探索条件に指定した外表の列に対する制限条件は，インデクスを使用した絞り込みをしません。

内表の列は，FROM句中のON探索条件を評価した後に，NULL値を補います。NULL値を補った後にWHERE句の条件を評価するため，WHERE句に指定した内表の列に対する制限条件は，インデクスを使用した絞り込みをしません。

(d)　例

SELECT * FROM T1 LEFT JOIN T2 ON T1.C1=T2.C1 and T1.C2='a' and T2.C2='b'
  WHERE T1.C3='c' and T2.C4='d'
        ↓

下線のある列は，インデクスを使用して評価します。

(4)　ORDER BY，GROUP BYを指定した検索に使用する表のインデクス定義

(a)　表示の確認

1表の検索でORDER BY処理のためにソートをしている場合，インデクスが昇順，又は降順に作成されていることを利用して，ORDER BY列がソートされて出てくるようにインデクス定義を変更することで，ソート処理をなくすことができます。

(b)　ベターユース

＝述語（「列指定＝値指定」だけ），又はIS NULL述語(「列指定 IS NULL」)の探索条件で絞り込んだ後，ORDER BY，又はGROUP BYを指定した1表の検索をする場合，次の二つの条件を共に満たすインデクスを定義してください。

＝述語，又はIS NULL述語を指定した列指定が，第１構成列から第ｎ構成列まで連続して指定されている。

GROUP BY，又はORDER BYで指定する列が，その順番通りに第ｎ＋１構成列以降連続して指定されている。

(c)　理由

インデクスを利用してアクセスするデータを絞り込み，更にソート処理を省略できるため，CPU時間，入出力時間を削減できます。

(d)　例

SELECT C2, C3 FROM T1
WHERE C1=10 AND C2= ? AND C3>10
ORDER BY C4 DESC,C5 ASC
        ↓

T1(C1 ASC,C2 ASC,C4 DESC,C5 ASC)，又はT1(C1 ASC,C2 ASC,C4 DESC,C5 ASC,C3 ASC)のインデクスを定義します。

(e)　注意事項

次の条件のどれかを満たす場合，ソート処理をなくすことはできなくなります。

HiRDB/シングルサーバ，HiRDB/パラレルサーバ共通の制限

DISTINCTを指定している

探索条件によって，インデクスを使用しない検索を選択している

T1が分割されていて，サーバ内分割された非分割キーインデクス（Index Nameのインデクス属性が"d"のインデクス）は，ソート処理を省略できません。ただし，すべての分割キーに「列＝値指定」を指定している場合を除きます。

HiRDB/シングルサーバの制限

T1が分割していて，CREATE TABLEで指定した分割キーがインデクス構成列の先頭から同じ順で含まれている場合（Index Nameのインデクス属性が"d"のインデクス），ソート処理を省略できません。ただし，すべての分割キーに「列＝値指定」を指定している場合を除きます。

HiRDB/パラレルサーバの制限

INSERT文−SELECT文を実行するSQLである

副問合せ中である

集合演算を指定している

HAVING句を指定している

FOR UPDATE，FOR READ ONLYを指定している

T1が分割されていて，CREATE TABLEで指定した分割キーがインデクス構成列の先頭から同じ順で含まれていて（Index Nameのインデクス属性が"d"のインデクス），かつ同一バックエンドサーバのRDエリアを複数割り当てている場合には，ソート処理を省略できません。ただし，すべての分割キーに「列＝値指定」を指定している場合を除きます。

(5)　集合関数MIN，MAXを指定した検索をする表のインデクス定義

(a)　表示の確認

GROUP BY指定がなく，選択式に集合関数のMIN(列)，MAX(列)を指定した検索の性能が悪い場合には，集合関数中の列指定にインデクスを定義することで，インデクスの最小値，又は最大値だけを参照するだけで集合関数の値を求められるようになります。この場合，Group by Mode はIMPLICIT MIN-MAX INDEXとなります。

(b)　ベターユース

次の二つのベターユースがあります。

探索条件を指定しない場合

集合関数のMIN，又はMAXのどちらか少なくとも一方を指定した検索に使用する表には，MIN，又はMAXを指定する列を第１構成列とするインデクスを定義してください。

＝述語（又はIS NULL述語）の探索条件を指定する場合

＝述語（又はIS NULL述語）の探索条件（ｎ個）で絞り込んだ後に，集合関数のMIN，MAXを指定した検索に使用する表には，次の条件をすべて満たすインデクスを定義してください。

＝述語（又はIS NULL述語）で指定した列指定が，第１構成列から第ｎ構成列まで連続して指定する。

MIN，MAXに指定する列を第ｎ＋１構成列に指定する。

ほかの探索条件の列は，第ｎ＋２構成列以降に指定する。

(c)　理由

集合関数MIN，又はMAXに対しては，インデクスの最小値，又は最大値を参照して結果を得るので，入出力回数，CPU時間を削減できます。

(d)　例

探索条件を指定しない場合

SELECT MIN(C1), MAX(C1) FROM T1
            ↓

T1(C1)のインデクスを定義します。

＝述語（又はIS NULL述語）の探索条件を指定する場合

SELECT MIN(C1), MAX(C1) FROM T1 WHERE C2=10 AND C3=20 AND C4<30
            ↓

T1(C2,C3,C1,C4)のインデクスを定義します。

(e)　注意事項

次の条件のどれかを満たす場合，IMPLICIT MIN-MAX INDEXにはなりません。

HiRDB/シングルサーバ，HiRDB/パラレルサーバ共通の制限

MIN，MAX以外の集合関数を指定している。

MIN，MAXが複数ある場合に，集合関数の引数の列が異なる。

GROUP BY句がある。

探索条件にシステム定義スカラ関数，関数呼出し，又はIS_USER_CONTAINED_IN_HDS_GROUPのどれかを含む。

探索条件にインデクス構成列以外の列を含む。

FLAT指定を，集合関数MAX又はMINの引数に指定している場合，探索条件に繰返し列を含む。

(b)のベターユースに該当するインデクスがない。

T1が分割されていて，サーバ内分割された非分割キーインデクス（Index Nameのインデクス属性が"d"のインデクス）を使用して検索しています。ただし，すべての分割キーに「列＝値指定」を指定している場合を除きます。

HiRDB/シングルサーバの制限

T1が分割されていて，CREATE TABLEで指定した分割キーがインデクス構成列の先頭から同じ順で含まれている場合（Index Nameのインデクス属性が"d"のインデクス）はソート処理を省略できません。ただし，すべての分割キーに「列＝値指定」を指定している場合を除きます。

T1が分割されていて，CREATE TABLEで指定した分割キーがインデクス構成列の先頭から同じ順で含まれるインデクス（Index Nameのインデクス属性が"d"のインデクス）を使用して検索しています。ただし，すべての分割キーに「列＝値指定」を指定している場合を除きます。

HiRDB/パラレルサーバの制限

集合演算を指定している。

INSERT文−SELECT文を実行するSQLである。

HAVING句がある。

FOR READ ONLYを指定している。

T1が分割されていて，CREATE TABLEで指定した分割キーがインデクス構成列の先頭から同じ順で含まれるインデクス（Index Nameのインデクス属性が"d"のインデクス）を使用して検索していて，かつ同一バックエンドサーバのRDエリアを複数割り当てています。ただし，すべての分割キーに「列＝値指定」を指定している場合を除きます。

(6)　NULL値を除外キーとするインデクスの定義

(a)　表示の確認

次の項目が該当しないか確認してください。

NULL値の重複度が高いインデクス構成列に対して，サーチ条件種別がIS NULLとなる検索をしていて性能が悪い。

NULL値の挿入，NULL値への更新，NULL値から別の値への更新，NULL値の行の削除をしていて性能が悪い。

(b)　ベターユース

NULL値を除外キーとするインデクスを定義します。

(c)　理由

NULL値を除外キーとするインデクスを定義すると，NULL値を除いてインデクスを作成します。そのため，探索条件にIS NULLを指定した場合には，インデクスを使用しないでTABLE SCANとなります。ただし，IS NULL以外の述語（=，betweenなど）を指定した場合にはインデクスを使用します。

NULL値の件数が多く，インデクスを使用してデータページをランダムにアクセスしている場合には，NULL値を除外キーとするインデクスを定義してTABLE SCANにした方が高速に検索できるようになります。

また，NULL値をインデクスキー値から除外することで，インデクスメンテナンスのオーバヘッドとログ量を削減できます。

(d)　例

SELECT * FROM T1 WHERE C1 IS NULL
            ↓

NULL値を除外キーとするT1(C1)のインデクスを定義します。

SELECT * FROM T1 WHERE C1 IS NULL（→ インデクスを使用しません）
SELECT * FROM T1 WHERE C1 ='a'（→ インデクスを使用します）

(7)　その他

検索方法がTABLE SCANとなっている表で，排他待ちが多発している場合は，探索条件を指定する列にインデクスを定義すると，アクセスするデータを絞り込めるので排他待ちが少なくなる可能性があります。

インデクスを使用した検索時に排他待ちが多発している場合，探索条件を満たした行，又はキー値に対してだけ排他を掛ける無排他条件判定を指定できるかどうか検討してください。無排他条件判定については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

検索方法がAND PLURAL INDEXES SCANとなっている場合に，複数のユーザが同時に同一表を更新すると，デッドロックになることがあります。この場合，システム定義のpd_work_table_optionオペランドを変更することを検討してください。pd_work_table_optionオペランドについては，マニュアル「HiRDB システム定義」を参照してください。

アクセスパス表示ユティリティの結果から，使用されていないインデクスがある場合は，削除することをお勧めします。不要なインデクスがあると，更新処理で余分な負荷が掛かったり，余分にデータベース容量が必要になったりします。

17.6.3　インデクス検索について

(1)　探索条件にORを指定した検索（その1）

(a)　表示の確認

1表検索の場合に，TABLE SCANとなって性能が悪くないか確認してください。

(b)　ベターユース

ORの両辺に同じ条件を指定している場合には，同じ条件をORの外へ抜き出してください。

(c)　理由

1表検索の場合

抜き出した述語の列にインデクスが定義してあれば，インデクス内のサーチ範囲を小さくし，インデクス内のサーチ時間を短縮できます。

結合検索の場合

結合条件をOR演算子で結んでいる場合には，結合する表の直積（CROSS JOIN）をしてから，直積結果に対して結合条件を評価します。抜き出した述語が結合条件であれば，ネストループジョイン，又はマージジョインをするので，結合時のデータの突き合わせ回数を削減できます。さらに，結合列にインデクスが定義してあれば，結合にインデクスを使用できるため，入出力回数を削減できます。

(d)　例

ORは更にIN述語に変換した方がよい場合があります。詳細については，「探索条件にORを指定した検索（その2）」を参照してください。

1表検索の場合

C1にインデクス定義
SELECT * FROM T1 WHERE (C1=10 AND C2=20) OR (C1=10 AND C2=30)
             ↓
SELECT * FROM T1 WHERE C1=10 AND (C2=20 OR C2=30)

ただし，C1=10が十分に絞り込めないで，(C1,C2)に複数列インデクスを定義する場合には，C1=10を抜き出さないほうが性能が良い場合があります。

結合検索の場合

SELECT * FROM T1, T2
    WHERE (T1.C1=T2.C1 AND T1.C2=10) OR (T1.C1=T2.C1 AND T2.C2=20)
              ↓
SELECT * FROM T1, T2 WHERE T1.C1=T2.C1 AND (T1.C2=10 OR T2.C2=20)

(2)　探索条件にORを指定した検索（その2）

(a)　表示の確認

探索条件に対して同一列に対する条件をORで指定している場合に，サーチ条件がない，又はサーチ条件が有効でなくインデクスのサーチ範囲が絞れずに性能が悪くないか確認してください。

(b)　ベターユース

HiRDBのバージョン06-02以降の場合，HiRDBのバージョンが06-01よりも前で単一列インデクスが定義されている場合，及びHiRDBのバージョンが06-01よりも前で複数列インデクスが定義されている場合とでベターユースが異なります。

HiRDBのバージョンが06-02以降の場合

OR演算の両辺に，同じ列に対する＝述語を指定し，かつインデクスが定義されている場合には，IN述語を使用してください。

HiRDBのバージョンが06-01よりも前で単一列インデクスが定義されている場合

OR演算の両辺に，同じ列に対する＝述語を指定し，かつ列に単一列インデクスが定義されている場合には，IN述語を使用してください。

HiRDBのバージョンが06-01よりも前で複数列インデクスが定義されている場合

複数列インデクスの第１構成列に定義した列に，IN述語を指定している場合には，OR演算を使用してください。

(c)　理由

HiRDBのバージョンが06-02以降の場合

単一列インデクス，及び複数列インデクスは，IN述語内の値指定ごとにインデクスをサーチするため（サーチ条件種別のATS，RANGES），インデクスのサーチ範囲を絞り込めます。そのため，CPU時間，及び入出力回数を削減できます。

HiRDBのバージョンが06-01よりも前で単一列インデクスが定義されている場合

単一列インデクスの場合には，IN述語内の値指定ごとにインデクスをサーチするため（サーチ条件種別のATS），インデクスのサーチ範囲を絞り込めます。そのため，CPU時間，及び入出力回数を削減できます。

HiRDBのバージョンが06-01よりも前で複数列インデクスが定義されている場合

複数列インデクスの場合には，IN述語内の値指定の最小値から最大値までサーチするため（ただし，値指定に定数以外が含まれる場合にはすべてのリーフページを参照します），インデクスのサーチ範囲が広くなります。

OR演算子に変換すると，Scan TypeがOR PLURAL INDEXES SCANとなる場合があります。この場合，OR演算子の左辺と右辺で別々にインデクスをサーチするので，インデクスのサーチ範囲を絞り込めるため，入出力時間を削減できます。

(d)　例

T1(C1)に単一列インデクス，又はT1(C1,C2)に複数列インデクスが定義されている場合（HiRDBのバージョンが06-02以降のとき）

SELECT * FROM T1 WHERE C1=10 OR C1=20
           ↓
SELECT * FROM T1 WHERE C1 IN (10,20)

T1(C1)に単一列インデクスが定義されている場合（HiRDBのバージョンは06-01よりも前のとき）

SELECT * FROM T1 WHERE C1=10 OR C1=20
           ↓
SELECT * FROM T1 WHERE C1 IN (10,20)

T1(C1,C2)に複数列インデクス（C1が第１構成列であること）が定義されている場合（HiRDBのバージョンは06-01よりも前のとき）

SELECT * FROM T1 WHERE C1 IN (10,20)
           ↓
SELECT * FROM T1 WHERE C1=10 OR C1=20

(e)　注意事項

HiRDBのバージョンが06-01よりも前の複数列インデクスの場合でも，次の二つの条件を共に満たすときには，IN述語を使用してください。

IN述語内の値指定が定数だけである。

IN述語内の値指定の最小値から最大値までのキー値数が少ない。

(3)　結合条件にORを指定した結合検索

(a)　表示の確認

Join TypeがCROSS JOINとなっている場合，内部的に直積処理をしています。結合条件にOR演算子を指定している場合，ORの両辺を別々に指定した集合演算（UNION，又はUNION ALL）を用いた等価なSQLにすると，効率的に検索できる可能性があります。

(b)　ベターユース

結合条件がORで結ばれている場合は，ORの両辺を別々に指定した集合演算を使用します。

選択式にDISTINCTを指定している場合

UNIONを使用します。

選択式にDISTINCTを指定していない場合

UNION ALLを使用します。

(c)　理由

結合条件をOR演算子で結んでいる場合，結合する表の直積をしてから，直積結果に対して結合条件を評価します。

OR演算子を分離すると，ネストループジョイン，又はマージジョインをするので，結合時のデータの突き合わせ回数を削減できます。

さらに，ネストループジョインをすると，結合にインデクスを使用できるので，入出力回数を削減できます。

(d)　例

DISTINCT指定ありの場合

SELECT DISTINCT * FROM T1, T2
    WHERE (T1.C1=T2.C1 OR T1.C2=T2.C2) AND T1.C3=10
            ↓
SELECT * FROM T1, T2 WHERE T1.C1=T2.C1 AND T1.C3=10
  UNION
SELECT * FROM T1, T2 WHERE T1.C2=T2.C2 AND T1.C3=10

DISTINCT指定なしの場合

SELECT * FROM T1, T2 WHERE (T1.C1=T2.C1 OR T1.C2=T2.C2) AND T1.C3=10
            ↓
SELECT * FROM T1, T2 WHERE T1.C1=T2.C1 AND T1.C3=10
  UNION ALL
SELECT * FROM T1, T2 WHERE T1.C2=T2.C2
    AND (T1.C1<>T2.C1 OR T1.C1 IS NULL OR T2.C1 IS NULL) AND T1.C3=10

(e)　注意事項

UNIONを指定すると，内部的に各問合せ指定の結果の作業表を作成します。この場合，重複排除のためにソート処理をします。

また，UNION ALLを指定した場合も，内部的に各問合せ指定の結果の作業表を作成します。ただし，この場合はソート処理をしません。

結合列にインデクスが定義されていても，外側表が制限条件で絞り込まれていなければ，結合にインデクスを使用しません。結合列にインデクスが定義されている表が内側表になり，もう一方の表が外側表になります。

「(d)　例」のDISTINCT指定なしの場合の例は，T1.C1，T2.C1がNOT NULL 列，又はNULL値を挿入しない運用であれば，IS NULL述語は必要ありません。また，選択式にDISTINCTを指定しても意図した結果を得られる場合は，集合演算をUNION ALLではなくUNIONにするようにしてください。

(4)　範囲述語の検索

(a)　ベターユース

AND演算で同じ列の＞＝述語と＜＝述語を結んでいる場合，SQL最適化処理をする前にBETWEEN述語に変換します。この場合，WHERE句の先に指定した述語から順に，BETWEEN述語に変換していきます。

AND演算で同じ列の＞＝述語と＜＝述語を結んだ条件とBETWEEN述語は，HiRDBの内部では等価に扱われるため，どちらで指定しても同じになります。

＞＝述語と＜＝述語が範囲を形成しているかどうか確認してください。

(b)　例

次の二つのSQL文は同じアクセスパスを選択します

SELECT * FROM T1 WHERE C1 BETWEEN 10 AND 20
SELECT * FROM T1 WHERE C1>=10 AND C1 <= 20

HiRDBは内部的に次のような変換をします

SELECT * FROM T1 WHERE C1<=50 AND C1>=20 AND C1<=30
              ↓
SELECT * FROM T1 WHERE C1 BETWEEN 20 AND 50 AND C1<=30

(c)　注意事項

冗長な述語がある場合，データベースアクセス時に不要な条件判定がされます。冗長な条件はできるだけ削除するようにしてください。

(5)　GROUP BY指定した検索

(a)　ベターユース

HiRDB/パラレルサーバで複数の列に対するGROUP BY検索をする場合は，重複の少ないGROUP化列をGROUP BY句の先に指定してください。ただし，SQL最適化オプションに1024を指定していない場合だけです。

(b)　理由

HiRDB/パラレルサーバで複数のフロータブルサーバを使用してGROUP BY処理をする場合に，フロータブルサーバへデータを振り分けるためにGROUP BY句の先頭の列でハッシングしています。GROUP BY句の先頭の列に重複が少ない場合，各フロータブルサーバへ均等にハッシングできるので，並列処理の効果が上がります。

(c)　例

SELECT C1,C2,SUM(C3) FROM T1 GROUP BY C1,C2

（C1の重複数）＞（C2の重複数）の場合は次のように変更します。

         ↓
SELECT C1,C2,SUM(C3) FROM T1 GROUP BY C2,C1

(d)　注意事項

SQL最適化オプションに1024を指定している場合には，すべてのグループ化列を使用してハッシングするので，GROUP BYの順番を入れ替える必要はありません。ただし，「ORDER BY，GROUP BYを指定した検索に使用する表のインデクス定義」に該当する場合には，グループ化列を入れ替えないでください。

(6)　GROUP BY，ORDER BYの両方を指定した検索

(a)　ベターユース

すべてのGROUP BY列を構成列に含むインデクスがある場合（HiRDB/シングルサーバの場合）

GROUP BY列をインデクス構成列順に指定します。

すべてのGROUP BY列を構成列に含むインデクスがない場合

ORDER BY，GROUP BYを両方指定した検索で，ORDER BY列がGROUP BY列にすべて含まれるときは，ORDER BY列の指定順にGROUP BY列を指定してください。

(b)　理由

すべてのGROUP BY列を構成列に含むインデクスがある場合（HiRDB/シングルサーバの場合）

GROUP BY処理のためのソート処理を省略できます。この場合，ORDER BY処理のためのソート処理はされるが，グループ化処理後のデータ（データ件数が少ない）に対してソート処理をするため，検索性能が良くなります。

すべてのGROUP BY列を構成列に含むインデクスがない場合

GROUP BY句とORDER BY句の列指定の順が同じ場合，ORDER BYのためのソート処理を省略できます。

(c)　例

すべてのGROUP BY列を構成列に含むインデクスがある場合（HiRDB/シングルサーバ）

インデクス　T1(C2, C1)
SELECT C1,C2,SUM(C3) FROM T1 GROUP BY C1,C2 ORDER BY C1,C2
           ↓
SELECT C1,C2,SUM(C3) FROM T1 GROUP BY C2,C1 ORDER BY C1,C2

すべてのGROUP BY列を構成列に含むインデクスがない場合

SELECT C1,C2,SUM(C3) FROM T1 GROUP BY C1,C2 ORDER BY C2,C1
           ↓
SELECT C1,C2,SUM(C3) FROM T1 GROUP BY C2,C1 ORDER BY C2,C1

SELECT C1,C2,SUM(C3) FROM T1 GROUP BY C1,C2 ORDER BY C2 DESC
           ↓
SELECT C1,C2,SUM(C3) FROM T1 GROUP BY C2,C1 ORDER BY C2 DESC

(d)　注意事項

GROUP BY句に対して，「ORDER BY，GROUP BYを指定した検索に使用する表のインデクス定義」に該当するインデクスを定義できる場合，そちらを優先してください。

17.6.4　結合検索について

(1)　分割キーを使用したネストループジョイン

(a)　表示の確認

HiRDB/パラレルサーバで，Join TypeがNESTED LOOPS JOINとなり，転送情報がBROADCAST，KEY RANGE PARTIAL BROAD CAST，又はPARTIAL BROADCASTと表示されている場合，ネストループジョインの内表の分割キーを変更することで，性能が向上することがあります。

表のデータ件数が少ない場合には影響は少ないですが，分割数が多い場合に効果があります。

(b)　ベターユース

結合検索時にネストループジョインの内表を分割する場合には，結合列が分割キーになるように表を定義すると，並列に処理ができます。ただし，フレキシブルハッシュ分割の場合は並列に処理できません。転送情報が数字-CLM HASH，数字-CLM KEY RANGE，1TO1，又は数字-CLM MULTIDIMになるようにしてください。

(c)　理由

ネストループジョインの内表がキーレンジ分割，又はFIXハッシュ分割していて，内表の分割キーが結合列にすべて含まれている場合には，表の分割条件から内表のサーチ範囲を絞り込めます。そのため，入出力回数，CPU時間を削減できます。

(d)　例

SELECT * FROM T1, T2 WHERE T1.C1=T2.C1 and T1.C1='a'
            ↓
CREATE TABLE T1 (C1 INT NOT NULL, C2 INT)
    FIX HASH HASH6 BY C1 IN (USER1,USER2,USER3,USER4)
CREATE TABLE T2 (C1 INT NOT NULL, C2 INT)
    FIX HASH HASH6 BY C1 IN (USER1,USER2,USER3,USER4)

(e)　注意事項

フレキシブルハッシュ分割を使用すると，データの格納位置が特定できないため，分割キーを変更しても常にBROADCASTとなり，並列には実行できません。フレキシブルハッシュ分割を使用する必要がないのであれば，FIXハッシュ分割にすることをお勧めします。フレキシブルハッシュ分割とFIXハッシュ分割については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

18　データベース複写ユティリティ（pdcopy）

この章では，データベースのバックアップを取得するデータベース複写ユティリティ（pdcopy）の使い方について説明します。

18.1　データベース複写ユティリティの機能

実行者　HiRDB管理者が実行できます

HiRDB管理者は，データベースの障害に備えて定期的にデータベースのバックアップを取得する必要があります。データベースのバックアップはデータベース複写ユティリティで取得します。ディスク障害などでデータベースを回復する必要が生じた場合，取得したバックアップを入力情報にしてデータベース回復ユティリティ（pdrstrコマンド）でデータベースを回復します。データベース回復の概要を次の図に示します。

図18‒1　データベース回復の概要

18.2　バックアップを取得するために必要な知識

18.2.1　バックアップの取得単位

バックアップは次に示す単位で取得できます。バックアップの取得単位はデータベース複写ユティリティのオプションで指定します。バックアップの取得単位を次の表に示します。

表18‒1　バックアップの取得単位

バックアップの取得単位

説明

オプション

システム単位

システム内の全RDエリアのバックアップを取得します。ユーザ用RDエリア以外（例えば，マスタディレクトリ用RDエリアなど）のバックアップも取得されます。ただし，リスト用RDエリア及び一時表用RDエリアはバックアップの対象となりません。

-a

ユニット単位※

ユニット下の全RDエリアのバックアップを取得します。

-u

サーバ単位※

サーバ下の全RDエリアのバックアップを取得します。

-s

RDエリア単位

RDエリアごとにバックアップを取得します。

RDエリア名を正規表現することで，グループ化したRDエリアのバックアップを取得できます。

-r

注※

HiRDB/パラレルサーバの場合に該当します。HiRDB/シングルサーバの場合は該当しません。

18.2.2　バックアップ取得モード

データベース複写ユティリティの -Ｍオプションでバックアップ取得モードを選択します。バックアップ取得モードを次の表に示します。

表18‒2　バックアップ取得モード

バックアップ取得モード

（-Ｍオプション

の指定値）

モードの説明

データベースの

回復方法

ｘ

バックアップ取得中，バックアップ対象RDエリアの参照及び更新ができません。バックアップ取得対象RDエリアをpdholdコマンドで閉塞かつクローズ状態にする必要があります。

バックアップだけでデータベースをバックアップ取得時点に回復できます。

ｒ

バックアップ取得中，バックアップ取得対象のRDエリアの参照はできますが，更新はできません。

ｓ

バックアップ取得中，バックアップ取得対象RDエリアの参照及び更新ができます。このモードでバックアップを取得する場合，バックアップ対象のRDエリアをバックアップ閉塞にする必要があります。

データベースを回復するときに，バックアップ及びバックアップ取得中のシステムログ※が必要になります。

注※

データベース複写ユティリティの処理結果リストに，RDエリアを回復するときに必要なシステムログファイルの名称及び世代番号が出力されます。データベース複写ユティリティの処理結果リストについては，「データベース複写ユティリティの処理結果リスト」を参照してください。

●注意事項

HiRDBの稼働中に全RDエリアのバックアップを取得する場合（システム単位でバックアップを取得する場合）は，バックアップ取得モード（-Mオプション）にｒ又はｓを指定してください。ｘは指定できません。

理由：

ｘを指定する場合は，バックアップ取得対象RDエリアをpdholdコマンドで閉塞かつクローズ状態にする必要があります。しかし，マスタディレクトリ用RDエリアは閉塞かつクローズ状態にできません。このため，-Mオプションにｘを指定して，HiRDBの稼働中に全RDエリアのバックアップを取得できません。

18.2.3　バックアップを取得するタイミング

バックアップは定期的に取得してください。ただし，次に示す作業をする場合は必ずバックアップを取得してください。このタイミングで取得していないと，障害が発生したときに最新の同期点までデータベースを回復できなくなります。

ログレスモードのUAP又はユティリティを実行する場合，その実行前後

更新前ログ取得モードのUAP又はユティリティを実行した場合，その実行後

RDエリアに対してデータベース構成変更ユティリティを実行した場合，その実行後

なお，RDエリアの移動を実行する場合，その実行前にも取得してください。

システムログを使用した回復を実行した後

アンロードログファイルだけを使用して回復を実行する前

HiRDBのバージョンアップをする場合，その実行前後

プラグインの登録後（pdplgrgstコマンドの実行後）

プラグインの使用を中止した後（pdpluginオペランドを削除した後）

RDエリアをインメモリ化した場合，又はインメモリデータバッファとインメモリRDエリアの同期を取った場合，その実行後

また，次に示す作業をする場合にバックアップを取得しておくと，障害が発生したときに回復に掛かる時間を短縮できます。

システム用RDエリアのバックアップを取得する必要がある処理の実行後

システム用RDエリアのバックアップを取得する必要がある処理とは，マニュアル「HiRDB システム運用ガイド」に記載されている「同時にバックアップを取得する必要があるRDエリア」で，マスタディレクトリ用RDエリア，データディレクトリ用RDエリア，又はデータディクショナリ用RDエリアのバックアップ取得が必要と記載されている処理です。

表のデータを大量更新した後

18.2.4　同時にバックアップを取得する必要があるRDエリア

RDエリア単位にバックアップを取得する場合は注意が必要です。バックアップを取得するRDエリアは，処理対象のRDエリアだけではなく，その処理によって更新されるRDエリア（例えば，データディクショナリ用RDエリアなど）についてもバックアップを取得する必要があります。同時にバックアップを取得する必要があるRDエリアについては，マニュアル「HiRDB システム運用ガイド」を参照してください。

18.2.5　バックアップファイルを格納するサーバマシン

バックアップファイルは，HiRDBが稼働するサーバマシンであればどこにでも作成できます。バックアップを取得したRDエリアと同じサーバマシンに作成する必要はありません。CMTなどのデバイスが，ほかのサーバマシンにある場合に適用してください。

バックアップファイルを格納するサーバマシンは，データベース複写ユティリティのオプションで指定できます。

18.2.6　キャラクタ型スペシャルファイル上にバックアップファイルを作成する場合

キャラクタ型スペシャルファイル上にバックアップファイルを作成する場合は，そのキャラクタ型スペシャルファイルをユティリティ用のHiRDBファイルシステム領域にしておいてください。ユティリティ用のHiRDBファイルシステム領域にするには，pdfmkfsコマンドの-kオプションにUTLを指定します。

18.2.7　アンロードレスシステムログ運用をしている場合

アンロードレスシステムログ運用をしている場合，バックアップを取得するときに，ログポイント情報ファイルも同時に取得する必要があります。ログポイント情報ファイルを取得するには，データベース複写ユティリティの-zオプションを指定します。

アンロードレスシステムログ運用については，マニュアル「HiRDB システム運用ガイド」を参照してください。

18.2.8　差分バックアップ機能を使用してバックアップを取得する場合

差分バックアップ機能は，前回のバックアップ取得時点からの差分情報だけをバックアップとして取得する機能です。このため，バックアップの取得処理時間を短縮できます。データベースの容量が大きくてデータ更新量が少ない場合に，差分バックアップ機能の使用を検討してください。

差分バックアップ機能を使用する場合，-g，-d，-K，-o，及び-Lオプションを指定します。

差分バックアップ機能の運用方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

なお，インメモリRDエリアに対しては，差分バックアップ機能を使用できません。

18.2.9　インメモリデータ処理を使用している場合

インメモリRDエリアのバックアップを取得した場合，RDエリアの回復方法が通常の方法と異なることがあります。インメモリRDエリアのバックアップ及び回復方法については，マニュアル「HiRDB バッチ高速化機能」を参照してください。

18.2.10　インナレプリカ機能を使用してバックアップを取得する場合

インナレプリカ機能を使用したバックアップは，24時間365日ノンストップでオンライン業務を実行している場合など，データベースのバックアップを取得する時間がないときに適用します。インナレプリカ機能を使用すると，バックアップの取得中にデータベースを参照及び更新できます。

インナレプリカ機能を使用してバックアップを取得する場合，-qオプションを指定します。

インナレプリカ機能の詳細，及び前提となる製品については，マニュアル「インナレプリカ機能HiRDB Staticizer Option」を参照してください。

18.2.11　データベース複写ユティリティを実行するときのHiRDBの状態について

データベース複写ユティリティは，HiRDBが稼働中のときだけ実行できます。

データベース複写ユティリティは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

データベース複写ユティリティを実行する場合，バックアップ対象のRDエリアがあるユニット，及びバックアップファイルがあるユニットが開始されていなければなりません。また，バックアップ対象のRDエリアがあるサーバは，-Mオプションにx又はｒを指定した場合は開始されていなくてもよいが，-Mオプションにsを指定した場合は開始されていなければなりません。

18.2.12　バックアップファイルのサイズについて

ディスクの残容量に余裕があるのに，データベース複写ユティリティ実行時にディスク容量不足を示す旨のメッセージが出力された場合は，バックアップファイルのサイズが2ギガバイトを超えている可能性があります。この場合は，次に示すどれかの対処をしてください。

(1)　対処方法1

バックアップファイルを複数個指定してください。例えば，3ギガバイト必要な場合は，バックアップファイルを最低2個指定してください。

(2)　対処方法2

UNIXファイルシステム構築時に，ラージファイル（2ギガバイト以上のファイル）を使用できるオプションを指定したUNIXファイルシステム上の通常ファイル，又はHiRDBファイルシステム領域を使用してください。HiRDBファイルシステム領域のラージファイルの作成方法については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

(3)　対処方法3

キャラクタ型スペシャルファイル上に作成したHiRDBファイルシステム領域にバックアップファイルを作成してください。HiRDBファイルシステム領域のラージファイルの作成方法については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

18.3　使用例

ここでは，バックアップの取得例について説明します。説明する項目は次のとおりです。

システム単位にバックアップを取得する場合

RDエリア単位にバックアップを取得する場合

サーバ単位にバックアップを取得する場合

DAT上のファイルへバックアップを取得する場合

差分バックアップ機能を使用してバックアップを取得する場合

インナレプリカ機能を使用していて，RDエリアの世代を指定してバックアップを取得する場合

NetBackupを使用してバックアップを取得する場合

なお，各使用例中にでてくるpdcopyコマンドのオプションの詳細については，「コマンドの形式」を参照してください。

18.3.1　システム単位にバックアップを取得する場合

全RDエリアのバックアップを一括して取得します。

pdcopy -m /hirdb/rdarea/mast/mast01 -M r -p /usr/hirdb/pdcopy/list/list01
-z /usr/hirdb/pdcopy/logpoint/logpoint01 -b /usr/hirdb/pdcopy/backup/backup01 -a

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-M：バックアップ取得モードを指定します。

-p：データベース複写ユティリティの処理結果リストの出力ファイル名を指定します。

-z：ログポイント情報ファイル名を指定します。アンロードレスシステムログ運用をしていない場合は，指定する必要はありません。また，HiRDB/シングルサーバの場合は指定できますが，HiRDB/パラレルサーバの場合は指定できません。

-b：バックアップファイル名を指定します。

-a：全RDエリアのバックアップを取得することを指定します。

18.3.2　RDエリア単位にバックアップを取得する場合

ユーザ用RDエリア（RDAREA01，RDAREA02）のバックアップを取得します。

pdcopy -m /hirdb/rdarea/mast/mast01 -M r -p /usr/hirdb/pdcopy/list/list01
-b /usr/hirdb/pdcopy/backup/backup01 -r RDAREA01,RDAREA02

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-M：バックアップ取得モードを指定します。

-p：データベース複写ユティリティの処理結果リストの出力ファイル名を指定します。

-b：バックアップファイル名を指定します。

-r：バックアップを取得するRDエリア（RDAREA01，RDAREA02）の名称を指定します。

RDエリア単位で複写する場合に，関連するRDエリアを同時に指定しているかどうかを内部でチェックします（pdrdreflsコマンドが実行されます）。RDエリアの指定で不足があるときは，KFPR26089-Wメッセージが出力され，処理結果としてpdrdreflsコマンドのメッセージがデータベース複写ユティリティ（pdcopy）の処理結果出力ファイルに出力されます。不足しているRDエリアは，処理結果出力ファイル内のKFPT02028-Wメッセージで確認します。なお，KFPT02004-Wメッセージは無視してください。チェック対象のRDエリアとチェックする条件を次に示します。

チェック対象のRDエリア

表格納用RDエリアとインデクス格納用RDエリア

表格納用RDエリアとLOB列格納用RDエリア

参照表又は被参照表を格納しているRDエリア

ただし，システム用RDエリア，及びレプリカRDエリアはチェックしません。また，-qオプションを指定している場合は，オリジナルRDエリア名称で指定したRDエリアをチェックします。

チェックする条件

次のすべての条件が成立した場合にチェックします。

pdstartコマンドの-rオプション以外でHiRDBを起動している

-Rオプションを指定していない

-rオプションでRDエリアを指定している

18.3.3　サーバ単位にバックアップを取得する場合

バックエンドサーバ（bes1）下の全RDエリアのバックアップを一括して取得します。

pdcopy -m /hirdb/rdarea/mast/mast01 -M r -p /usr/hirdb/pdcopy/list/list01
-z /usr/hirdb/pdcopy/logpoint/logpoint01 -b /usr/hirdb/pdcopy/backup/backup01
-s bes1

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-M：バックアップ取得モードを指定します。

-p：データベース複写ユティリティの処理結果リストの出力ファイル名を指定します。

-z：ログポイント情報ファイル名を指定します。アンロードレスシステムログ運用をしていない場合は，指定する必要はありません。

-b：バックアップファイル名を指定します。

-s：バックエンドサーバ（bes1）下の全RDエリアのバックアップを取得することを指定します。

18.3.4　DAT上のファイルへバックアップを取得する場合

DAT上のファイルへ全RDエリアのバックアップを取得します。

pdcopy -m /hirdb/rdarea/mast/mast01 -M r -p /usr/hirdb/pdcopy/list/list01
-z /usr/hirdb/pdcopy/logpoint/logpoint01 -b /dev/rmt/0m -a

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-M：バックアップ取得モードを指定します。

-p：データベース複写ユティリティの処理結果リストの出力ファイル名を指定します。

-z：ログポイント情報ファイル名を指定します。アンロードレスシステムログ運用をしていない場合は，指定する必要はありません。また，HiRDB/シングルサーバの場合は指定できますが，HiRDB/パラレルサーバの場合は指定できません。

-b：バックアップファイル名を指定します。

-a：全RDエリアのバックアップを取得することを指定します。

18.3.5　インナレプリカ機能を使用していて，RDエリアの世代を指定してバックアップを取得する場合

インナレプリカ機能を使用している場合で，指定した世代のRDエリアのバックアップを取得します。

pdcopy -m /hirdb/rdarea/mast/mast01 -b /bkdir/bkup02
-r MAST,DIR,DIC,USR01,USR02,USR03 -q 1

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-b：バックアップファイル名を指定します。

-r：バックアップを取得するRDエリア（MAST，DIR，DIC，USR01，USR02，USR03）の名称を指定します。

-q：バックアップを取得するRDエリアの世代番号を指定します。

18.3.6　差分バックアップ機能を使用してバックアップを取得する場合

差分バックアップ機能を使用して，ユーザ用RDエリア（RDAREA01，RDAREA02）のバックアップを取得します。なお，既に-d a指定のフルバックアップを取得しているものとします。

pdcopy -m /rdarea/mast/mast01 -M r -g backupg1 -b /pdcopy/backup02
-d d -K /pdcopy/admfile -o /pdcopy/rfile

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-M：バックアップ取得モードに参照可能モードを指定します。

-g：差分バックアップグループ名を指定します。(S)の指定は必要ありません。

-b：バックアップファイル名（差分バックアップファイル名）を指定します。

-d：バックアップ種別を指定します（差分バックアップを取得するため，dを指定します）。

-K：差分バックアップ管理ファイルを格納するHiRDBファイルシステム領域名を指定します。

-o：差分バックアップの履歴情報ファイル名を指定します。

18.3.7　NetBackupを使用してバックアップを取得する場合

NetBackupを使用して全RDエリアのバックアップを一括して取得します。

pdcopy -m /hirdb/rdarea/mast/mast01 -M r -p /usr/hirdb/pdcopy/list/list01
-z /usr/hirdb/pdcopy/logpoint/logpoint01 -b host01:POLICY01 -a -k n

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-M：バックアップ取得モードを指定します。

-p：データベース複写ユティリティの処理結果リストの出力ファイル名を指定します。

-z：ログポイント情報ファイル名を指定します。アンロードレスシステムログ運用をしていない場合は，指定する必要はありません。また，HiRDB/シングルサーバの場合は指定できますが，HiRDB/パラレルサーバの場合は指定できません。

-b：バックアップファイル名としてNetBackupのポリシー名を指定します。”ホスト名：ポリシー名”の形式で指定します。

-a：全RDエリアのバックアップを取得することを指定します。

-k：バックアップファイルの種別を指定します。NetBackupを使用してバックアップを取得するのでnを指定します。

18.4　コマンドの形式

18.4.1　オプションの形式

pdcopy -m 〔ホスト名：〕マスタディレクトリ用RDエリアの先頭のHiRDBファイル名
　　　 〔-M ｛x｜r｜s｝〕
　　　 〔-p 処理結果出力ファイル名〕
　　　 〔-i〕
　　　 〔-j 排他待ち限界経過時間〕
　　　 〔-E EasyMT用MT属性定義ファイル名〕
　　　 〔-B EasyMT用入出力バッファ面数〕
　　　 〔-z ログポイント情報ファイル名〕
　　　 〔-J〕
　　　 〔-w 休止時間，読み込み回数〕
　　　 〔-W 実行監視時間〕
　　　 〔-I メッセージ出力レベル〔，メッセージ出力間隔〕〕
　　　 〔-f 制御文ファイル名※〕

注

必ず指定するオプション，又は指定することが多いオプションを背景色付き太字表示しています。なお，オプションのフラグ引数をコンマで区切る場合，コンマの前後に空白を入れないでください。空白を入れると，空白以降が無視されます。

注※

制御文ファイルに指定するオプションを次に示します。制御文ファイルに指定するオプションは，pdcopyコマンド中に直接指定できます。ただし，制御文ファイルとpdcopyコマンド中の両方に指定することはできません。どちらか片方だけに指定できます。

●制御文ファイルの内容

　　　 -b ｛〔ホスト名：〕バックアップファイル名〔，バックアップファイル名〕…｜〔ホスト名：〕装置記号名〔，装置記号名〕｜〔ホスト名：〕装置グループ名｜〔ホスト名：〕ポリシー名｝
　　　｛-a
　　　 ｜-u ユニット識別子〔，ユニット識別子〕…
　　　 ｜-s サーバ名〔，サーバ名〕…
　　　 ｜-r RDエリア名〔，RDエリア名〕…｝
　　　〔-k ｛u｜i｜e｜m｜n｝〕
　　　〔-v ボリューム名〔，ボリューム名〕…〕
　　　〔-N EasyMTファイル名〕
　　　〔-g 差分バックアップグループ名〕
　　　〔-d バックアップ種別〕
　　　〔-K 差分バックアップ管理ファイルを格納するHiRDBファイルシステム領域名〕
　　　〔-o 差分バックアップの履歴情報ファイル名〕
　　　〔-L 差分バックアップ管理ファイルの容量〕
　　　〔-q 世代番号〕
　　　〔-S ｛バックアップファイル初期容量，増分値｜’（バックアップファイル初期容量，増分値）〔，（バックアップファイル初期容量，増分値）〕…’｝〕

●他バックアッププログラム連携時のオプション指定可否

オプション

他バックアッププログラム

EasyMT

NetBackup

-m

◎

◎

-M {x｜r｜s}

○

○

-p

○

○

-i

○

○

-j

○

○

-E

○

×

-B

○

×

-z

○

○

-J

○

○

-w

○

○

-W

○

○

-I

○

○

-f

○

○

-b

◎

◎

{-a｜-u｜-s｜-r}

◎※１

◎※１

-k

u

×

×

i

×

×

e

◎※２

×

m

◎※２

×

n

×

◎

-v

○

×

-N

○

×

-g

○

○

-d {a｜b｜c｜d}

○

○

-K

○

○

-o

○

○

-L

○

○

-q

○

○

-S

×

×

（凡例）

◎：必ず指定します。

○：任意に指定できます。

×：指定できません。

注※1

-a，-u，-s，又は-rの，どれか一つを指定する必要があります。

注※2

e又はmの，どちらか一つを指定する必要があります。

18.4.2　オプションの説明

(1)　-m 〔ホスト名：〕マスタディレクトリ用RDエリアの先頭のHiRDBファイル名

　　　〜＜識別子：パス名＞((167文字以内))

マスタディレクトリ用RDエリアの先頭のHiRDBファイル名を指定します。マスタディレクトリ用RDエリアがあるホストの名称とパス名をコロン（：）で結んで指定してください。システム共通定義のpd_master_file_nameオペランドに指定した名称を指定します。

（例）-m host01:/hirdb_s/rdarea/rdmast

＜規則＞

データベース複写ユティリティを実行したサーバマシン（pdcopyコマンドを入力したサーバマシン）にマスタディレクトリ用RDエリアがある場合は，ホスト名を省略できます。この場合は，パス名だけを指定します。

ホスト名を指定する場合は，システム定義のpdunitオペランドの-xオプションで指定したホスト名を指定してください。

系切り替え機能を使用している場合は，必ず現用系のホスト名を指定してください。

(2)　-M ｛x｜r｜s｝

バックアップ取得モードを指定します。バックアップ取得モードを次に示します。

-Ｍオプション

の指定値

モードの説明

データベースの

回復方法

ｘ

（参照・更新不可能モード）

バックアップ取得中，バックアップ対象RDエリアの参照及び更新ができません。バックアップ取得対象RDエリアをpdholdコマンドで閉塞かつクローズ状態にする必要があります。

バックアップだけでデータベースをバックアップ取得時点に回復できます。

ｒ

（参照可能モード）

バックアップ取得中，バックアップ取得対象のRDエリアの参照はできますが，更新はできません。

インメモリRDエリアの場合は，参照及び更新できます。

ｓ

（更新可能モード）

バックアップ取得中，バックアップ取得対象RDエリアの参照及び更新ができます。

データベースを回復するときに，バックアップ及びバックアップ取得直前のシンクポイントからのシステムログ※が必要になります。

注1

-M x指定でマスタディレクトリ用RDエリアのバックアップを取得する場合は，pdstart -rコマンドでHiRDBを開始する必要があります。その後，データベース複写ユティリティで，マスタディレクトリ用RDエリアのバックアップを取得します。

-M r指定でマスタディレクトリ用RDエリアのバックアップを取得する場合は，通常のpdstartコマンドでHiRDBを開始すると，pdcopyでバックアップが取得できます。

注2

CREATE TABLEのLOB列の定義でRECOVERY PARTIAL又はRECOVERY NOを指定している場合（RECOVERYオペランド省略時も含まれます），そのLOB列が格納されているユーザLOB用RDエリアについては-M s指定のバックアップ取得はできません。また，オブジェクト格納用のデータディクショナリLOB用RDエリアも，-M s指定のバックアップ取得はできません。

注3

-M s指定をした場合，他トランザクションが更新中のページについては，更新をしたトランザクションがCOMMITを発行するまで排他待ちします。したがって，場合によってはpdcopyがタイムアウトすることがあります。

注4

pdcopyを更新可能モードで実行している場合，対象RDエリアをバックアップ閉塞にする必要があります。

注※

データベース複写ユティリティの処理結果リストに，RDエリアを回復するときに必要なシステムログファイルの名称及び世代番号が出力されます。データベース複写ユティリティの処理結果リストについては，「データベース複写ユティリティの処理結果リスト」を参照してください。

＜注意事項＞

HiRDBの稼働中に全RDエリアのバックアップを取得する場合（システム単位でバックアップを取得する場合）は，バックアップ取得モード（-Mオプション）にｒ又はｓを指定してください。ｘは指定できません。

理由：

ｘを指定する場合は，バックアップ取得対象RDエリアをpdholdコマンドで閉塞かつクローズ状態にする必要があります。しかし，マスタディレクトリ用RDエリアは閉塞かつクローズ状態にできません。このため，-Mオプションにｘを指定して，HiRDBの稼働中に全RDエリアのバックアップを取得できません。

ログレスモード又は更新前ログ取得モードのUAP，ユティリティ実行中は，-M sのバックアップは取得できません。また，ログレスモード又は更新前ログ取得モードのUAP，ユティリティ実行後のバックアップは，-M ｒ又は-M ｘで実行する必要があります。

次のどちらかの場合にバックアップを取得するときは，事前にpdlogswap -wコマンドでシステムログをスワップさせてください。

pdmodを実行した場合（システムログファイルに構成変更処理が含まれないようにするため）

ログレスモードでの運用後（システムログファイルにログレスの処理が含まれないようにするため）

バックアップ対象RDエリアにインメモリRDエリアが含まれている場合は，-M s指定でバックアップを取得できません。

更新可能モードで差分バックアップが取得できるのは，差分バックアップを一切取得しないで累積差分バックアップだけ取得する運用の場合だけです。

(3)　-p 処理結果出力ファイル名

　　　〜＜パス名＞

データベース複写ユティリティの処理結果を出力するファイル名を指定します。

（例）-p /usr/pdcopy/list01

＜規則＞

データベース複写ユティリティを実行したサーバマシン（pdcopyコマンドを入力したサーバマシン）のパス名を指定します。

このオプションを省略した場合，データベース複写ユティリティを実行したサーバマシンの次に示すディレクトリに処理結果出力ファイルを作成します。

-pオプションの指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIR※の指定

あり

なし

あり

-pオプションに指定したディレクトリ

なし

pd_tmp_directoryに指定したディレクトリ

TMPDIRに指定したディレクトリ

/tmpディレクトリ

注※　コマンド実行環境の環境変数の指定

出力先はKFPR26022-Iメッセージに表示されます。

このオプションの指定に関係なくエラーメッセージはシステムログファイル及び標準出力に，最終処理結果は標準出力に出力されます。ただし，システムログファイルと標準出力に出力されるメッセージの順序は必ずしも同じではありません。

(4)　-i

RDエリアの使用状況を処理結果出力ファイルに出力する場合に指定します。対象となるRDエリアは次のとおりです。

データディクショナリ用RDエリア

データディクショナリLOB用RDエリア

ユーザ用RDエリア

ユーザLOB用RDエリア

出力される情報を次に示します。

種別

情報

内容

ページ

ページ数

使用可能ページ数

未使用ページ数

使用中ページ数

・インデクスの格納ページ数※１

・表の格納ページ数※１

比率

使用可能ページ数に対する未使用ページ数の比率

使用可能ページ数に対する使用中ページ数の比率

使用中ページ数に対するインデクスの格納ページ数の比率※１

使用中ページ数に対する表の格納ページ数の比率※１

領域長※１

長さ

使用中ページ内の空き領域の合計

インデクスの格納ページ内の空き領域の合計

表の格納ページ内の空き領域の合計

インデクスの格納ページ全体の領域長

表の格納ページ全体の領域長

比率

インデクスの格納ページ全体の領域長に対する空き領域の合計の比率

表の格納ページ全体の領域に対する空き領域の合計の比率

システム情報の乱れ率※２

比率

データディクショナリLOB用RDエリア及びユーザLOB用 RDエリアのシステム情報の乱れ具合※３

注※1

データディクショナリLOB用RDエリア及びユーザLOB用RDエリアの場合は出力されません。

注※2

データディクショナリLOB用RDエリア及びユーザLOB用RDエリアの場合だけ出力されます。

注※3

1％以上の場合，アクセス性能が劣化します。この場合，データベース再編成ユティリティで再編成する必要があります。データディクショナリLOB用RDエリアの場合は，ストアドプロシジャに関するディクショナリ表（SQL_ROUTINES，SQL_ROUTINE_RESOURCES，SQL_ROUTINE_PARAMS）を再編成します。

(5)　-j 排他待ち限界経過時間

　　　〜＜符号なし整数＞((0〜200000))

排他待ち時間を監視する最大待ち時間を秒単位で指定します。

排他待ち時間とは，排他要求が待ち状態になってから解除されるまでの時間のことです。指定した時間内に待ち状態が解除されない場合，pdcopyはエラー終了します。

0を指定した場合，排他待ち時間を監視しないで，待ち状態が解除されるまで待ち続けます。このオペランドを省略した場合は，システム定義のpd_lck_wait_timeoutオペランドの値が仮定されます。

＜注意事項＞

-M rと同時に指定した場合，-jオプションの指定は無視され，排他待ちはしません。ほかのユーザが既にRDエリアに排他を掛けていた場合，pdcopyは即時エラー終了します。

-M sを指定した場合，ほかのユーザがページ解放をしているときは，そのユーザのトランザクションが終了するまで排他待ちになります。このような場合，排他待ち限界経過時間には，ページ解放をするトランザクションの実行時間より長い値を指定してください。なお，ページ解放は，主に次のような場合に発生します。

DROP TABLE

DROP INDEX

PURGE TABLE文

インデクスがある列に対するINSERT文又はUPDATE文

インデクスがある列（重複キーあり）に対するDELETE文

LOCK文を実行した後の，DELETE文又は行長が変わるUPDATE文

LOB列に対するINSERT文，DELETE文，及びUPDATE文

(6)　-E EasyMT用MT属性定義ファイル名

　　　〜＜パス名＞

EasyMT用のMT属性定義ファイルのファイル名を指定します。このファイルは，データベース複写ユティリティを実行したサーバマシン（pdcopyコマンドを入力したサーバマシン）に接続されていなければなりません。-Eオプションの指定は，-kオプションでe又はmが指定されたバックアップファイルに対して有効となります。有効となる属性を次に示します。

buffno：入出力バッファ面数

magazin：MT装置割り当てパターン

job：業務名称

expire：満了日付

preserve：保存日数

ただし，-Bオプションを指定した場合，入出力バッファ面数については-Bオプションの指定が優先されます。

このファイルの指定内容は，EasyMT実行時にチェックされます。

(7)　-B EasyMT用入出力バッファ面数

　　　〜＜符号なし整数＞((1〜255))

MTの入出力に使用する入出力バッファの面数を指定します。指定値を大きくすれば性能が向上しますが，その分メモリ所要量も大きくなります。

＜規則＞

-Bオプションの指定は，-kオプションでe又はmが指定されたバックアップファイルに対して有効となります。

-Eオプションと-Bオプションを共に省略した場合は，EasyMTの仮定値が仮定されます。

(8)　-z ログポイント情報ファイル名

　　　〜＜パス名＞

このオプションはアンロードレスシステムログ運用をしている場合に指定するオプションです。

ログポイント情報を格納するファイル名を指定します。

（例）-z /usr/pdcopy/logp01

＜規則＞

データベース複写ユティリティを実行したサーバマシン（pdcopyコマンドを入力したサーバマシン）のパス名を指定します。

このログポイント情報ファイルをpdlogchgコマンドで指定すると，ログポイント以前の不要となったシステムログファイルをアンロード済み状態にできます。また，このオプションの指定でバックアップファイルにもログポイント情報が格納されます。

＜注意事項＞

HiRDB/パラレルサーバの場合，バックアップを取得するRDエリア名には，同一サーバ下のRDエリアだけを指定してください。

バックアップ対象のRDエリアが配置されたサーバを起動しておく必要があります。

pdstart -rコマンドでHiRDBを開始してバックアップを取得する場合，-zオプションは指定できません。-zオプションを指定して全体のバックアップを取るには，pdstartでHiRDBを開始し，pdcopy -M rを指定してください。ただし，ログポイント情報ファイルはサーバごとに取得するため，HiRDB/パラレルサーバの場合は一度に全体のバックアップの取得はできません。また，マスタディレクトリ用RDエリアは，閉塞，クローズ状態にはできません。そのため，pdstartで開始した場合，pdcopy -M x -aは指定できません。

インメモリRDエリアがある場合はこのオプションを指定できません。

(9)　-J

RDエリアの複写処理時にスキップ対象エラーを検知した場合に，pdcopyを終了させないで次のRDエリアの複写処理を続行するときに指定します。

-Jオプションは，-g，-K，及び-dオプションとは同時に指定できません。同時に指定した場合は-Jオプションの指定が無視されます。

スキップ対象エラーを次に示します。なお，エラーメッセージの前後にKFPR26061-Wメッセージが出力されていない場合は，スキップされないことがあります。

スキップ対象エラー

スキップ対象エラーで出力されるメッセージ

RDエリアとして定義していない名称を-rオプションに指定した場合

リスト用RDエリア又は一時表用RDエリアを指定した場合

KFPR26006-E

-M x指定時に，複写対象にマスタディレクトリ用RDエリアが含まれている場合

KFPR26111-E

複写処理の前のファイルのオープン，クローズチェックでエラーを検知した場合

KFPR26012-E

-M s指定時に，複写対象となるRDエリアがあるサーバが停止している場合

KFPR26015-E

表定義時にrecovery partial又はrecovery noを指定した場合に，-M sを指定して複写対象にそのユーザLOB用RDエリアが含まれているとき

KFPR26030-E

-M x指定時，複写対象のRDエリアが閉塞かつクローズ状態でない場合

-M r指定時，複写対象のRDエリアがインメモリRDエリアの場合

-ｚオプション指定時，複写対象のRDエリアがインメモリRDエリアの場合

KFPR26110-E

(10)　-w 休止時間，読み込み回数

オンライン業務中にpdcopyを実行すると，大量のデータ転送を伴うため，CPU使用率が高くなり，ほかのオンライン業務に影響を与えることがあります。-wオプションを指定すると，一定量のデータ読み込み処理を実行した後，一定間隔処理を休止させるため，ほかのオンライン業務への影響を少なくできます。

なお，このオプションを指定すると，CPU使用率は低くなりますが，pdcopyの処理時間は長くなります。

-wオプション指定時の処理の概要を次の図に示します。

図18‒2　-wオプション指定時の処理の概要

休止時間　〜＜符号なし整数＞((10〜60000))

データ読み込み処理中の休止時間を10ミリ秒単位に指定します（例：10，20，30…）。10ミリ秒単位に指定していない場合，1けた目が切り上げられます。

読み込み回数に指定した回数分データを読み込んだ後に，休止時間に指定した時間だけ処理を休止します。

読み込み回数　〜＜符号なし整数＞((1〜10000))

処理を休止するまでのデータの読み込み回数を指定します。

ここで指定した回数分データを読み込んだ後，休止時間に指定した時間だけ処理を休止します。

＜規則＞

休止時間，及び読み込み回数は，pdcopyが読み込むデータの総容量と，データ読み込み処理の総回数を考慮して決めてください。

HiRDB/パラレルサーバの場合，-wオプションの処理はサーバごとに実行されます。読み込み回数はサーバごとにカウントされ，休止処理はサーバごとに行われます。処理対象のRDエリアが，どのサーバにあるのかを確認してから，休止時間と読み込み回数を指定してください。

＜-wオプションを指定した場合の処理時間の求め方＞

各RDエリアのデータ読み込み回数を求めます。

・データディレクトリ用RDエリアの場合

　↑（4096×HiRDBファイルシステムのレコード数）÷65536↑

　＋（RDエリアを構成するHiRDBファイル数−1）

・そのほかのRDエリアの場合

　↑ページ長×（HiRDBファイルシステムのレコード数

　−（未使用セグメント数×セグメントサイズ））÷65536↑

　＋（RDエリアを構成するHiRDBファイル数−1）

データ読み込み処理の総回数を求めます。

・HiRDB/シングルサーバの場合

　処理対象の各RDエリアのデータ読み込み回数の和

・HiRDB/パラレルサーバの場合

　処理対象RDエリアのデータ読み込み回数の和が，各サーバの中で最も大きい値

処理時間を求めます。

↓（2.で求めたデータ読み込み処理の総回数÷読み込み回数）↓

×休止時間（ミリ秒））

＋pdcopyの処理時間

(11)　-W 実行監視時間

実行監視時間　〜＜符号なし整数＞((0〜3600))

データベース複写ユティリティの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(12)　-I メッセージ出力レベル〔，メッセージ出力間隔〕

データベース複写ユティリティの稼働状況を確認するために指定します。次の二つのメッセージを出力します。

KFPR26094-I：RDエリアごとのバックアップ処理を開始する際に表示します。

KFPR26095-I：各RDエリアに対し，KFPR26094-Iメッセージ出力時点からメッセージ出力間隔に指定した時間が経過するごとに表示します。

上記メッセージを確認することで，無応答となっていないことを確認できます。

メッセージ出力レベル　〜＜符号なし整数＞｛0｜1｝

稼働状況を確認するためのメッセージを出力するかどうかを指定します。

0：稼働状況を確認するためのメッセージを出力しません。

1：稼働状況を確認するためのメッセージを出力します。

メッセージ出力間隔　〜＜符号なし整数＞((1〜300))≪60≫

メッセージ出力間隔を，分単位で指定します。この指定によって，KFPR26095-Iメッセージの出力間隔を変更できます。出力間隔を省略値から変更したい場合に指定してください。

(13)　-f 制御文ファイル名

　　　〜＜パス名＞

制御文ファイル名を指定します。

（例）-f /usr/pdcopy/cont01

制御文ファイル中には，(13)以降のオプションを指定できます。なお，これらのオプションは，pdcopyコマンド中に直接指定することもできます。

＜注意事項＞

制御文ファイルは，データベース複写ユティリティを実行するサーバマシン（pdcopyコマンドを入力するサーバマシン）に作成してください。

制御文ファイル中には，バックアップファイル名，バックアップ対象RDエリアのオプション，ファイル種別，ボリューム名，及びEasyMTファイル名の組を，一組以上記述してください。ただし，これらのオプションの組は１行で記述する必要があります（1行は32,768バイト以内）。これらの情報は最大16行記述できます。

制御文ファイル中にはコメントを記述できます。ただし，コメントだけの行は記述できません。

-a又は-qオプションを指定して，差分バックアップ機能を使用する場合，制御文は1行だけ記述できます。

＜制御文ファイルの形式＞

　-b フラグ引数 ｛-a｜-u フラグ引数｜-s フラグ引数｜-r フラグ引数｝
　　　　　　　　 〔-k フラグ引数〕〔-v フラグ引数〕〔-N フラグ引数〕
　　　　　　　　 〔-S フラグ引数〕〔-G フラグ引数〕
〔-b フラグ引数 〔｛-u フラグ引数｜-s フラグ引数｜-r フラグ引数｝〕
　　　　　　　　　〔-k フラグ引数〕〔-v フラグ引数〕〔-N フラグ引数〕
　　　　　　　　　〔-S フラグ引数〕〕〔-G フラグ引数〕
〔-b フラグ引数 〔｛-u フラグ引数｜-s フラグ引数｜-r フラグ引数｝〕
　　　　　　　　　〔-k フラグ引数〕〔-v フラグ引数〕〔-N フラグ引数〕
　　　　　　　　　　　　　　　　　〔-S フラグ引数〕〕〔-G フラグ引数〕
　　　　　　　　　　　　・
　　　　　　　　　　　　・
　　　　　　　　　　　　・

注1

各オプションフラグについては，-bオプション指定時の各オプションの説明を参照してください。

注2

複数行指定する場合は，1行目に指定したオプションフラグだけ2行目以降も指定できます（ただし，-aオプションは除きます）。例えば，1行目に-uオプションを指定した場合，2行目以降は-uオプションだけ指定できます。

(14)　-b ｛〔ホスト名：〕バックアップファイル名〔，バックアップファイル名〕…｜〔ホスト名：〕装置記号名〔，装置記号名〕｜〔ホスト名：〕装置グループ名｜〔ホスト名：〕ポリシー名｝

　　　〜＜識別子：パス名＞((-k i指定時は167文字以内))

バックアップファイル名，又はNetBackupで設定したポリシー名を指定します。

バックアップファイル名，装置記号名，又は装置グループ名を指定する場合

バックアップファイルがあるホストの名称と，バックアップファイル名，装置記号名，又は装置グループ名をコロン（：）で結んで指定します。バックアップファイル名はパス名で，装置記号名及び装置グループ名は識別子で指定してください。

（例）-b host01:/usr/pdcopy/backup01

NetBackupのポリシー名を指定する場合

NetBackupを使用する場合は，NetBackupクライアントがあるホストの名称とポリシー名をコロンで結んで指定します。なお，ハイフンを含んだポリシー名は指定できません。

（例）-b host01:POLICY01

＜規則＞

データベース複写ユティリティを実行したサーバマシン（pdcopyコマンドを入力したサーバマシン）にバックアップファイルを作成する場合は，ホスト名を省略できます。この場合，パス名だけを指定します。

ホスト名を指定する場合は，システム定義のpdunitオペランドの-xオプションで指定したホスト名を指定してください。

データベース複写ユティリティを実行したサーバマシン（pdcopyコマンドを入力したサーバマシン）にNetBackupクライアントがある場合は，ホスト名を省略できます。

制御文ファイルに指定する場合，各行に指定するバックアップファイル名を重複しないようにしてください。

既にあるバックアップファイル名を指定してバックアップを取得した場合，既にあるバックアップファイルが上書きされます。

系切り替え機能を使用しているホスト下のファイルにバックアップを取得する場合は，必ず現用系のホスト名を指定してください。バックアップファイルは，実行系のホスト下に作成されます。

系切り替え機能を使用し，システムマネジャのユニット以外にあるNetBackupクライアントを使用する場合，必ず現用系のホスト名を指定してください。使用するNetBackupクライアントは，実行系となります。

NetBackupを使用する場合に同一のポリシー名を使用してバックアップを取得するときは，取得対象のRDエリアを変えないでください。ポリシー名が同一なのにRDエリアが異なるバックアップがあると，回復できないことがあります。

-bオプションは-kオプションと次に示す関係があります。

-kオプションの指定

-bオプションの指定

-k u

通常ファイル名，又はMTのスペシャルファイル名を指定できます。通常ファイルの場合，複数のファイル名を指定できます。二つ目以降のファイルはバックアップデータが多いため，一つ目のファイルに入りきらない場合に使用されます。したがって，各ファイルがそれぞれ異なったパーティションに割り当てられるように指定する必要があります。

-k i

"HiRDBファイルシステム領域名/HiRDBファイル名"を複数指定できます。二つ目以降のファイルはバックアップデータが多いため，一つ目のファイルに入りきらない場合に使用されます。HiRDBファイルシステム領域は，あらかじめユティリティ専用領域として，pdfmkfsコマンドで作成しておかなければなりません。

-k e

MTのスペシャルファイル名を指定できます。

-k m

MTguideが管理する装置記号名又は装置グループ名を指定できます。装置記号名を指定する場合は二つまで指定できます。ただし，指定されたものが装置記号名か，又は装置グループ名かのチェックはしません。

-k n

NetBackupで設定したポリシー名を指定できます。ポリシー名は，最大128バイトの英数字で指定してください。

ホスト名は，NetBackupクライアントがあり，HiRDBがあるホスト名を指定してください。

ポリシー名は，NetBackupのbpimagelistコマンドで参照できます。

＜注意事項＞

バックアップファイルを複数指定する場合，次のことに注意してください。

EasyMTを使用しないで直接テープ装置は使用できません。

バックアップファイルを複数指定する場合は，通常ファイル又はHiRDBファイルを使用してください。

同一のポリシー名を指定してpdcopyを複数実行する場合，回復時（pdrstr実行時）には-Uオプションの時刻指定でバックアップファイルを特定できます。指定するバックアップファイルの時刻は，pdcopy実行時に出力されるKFPR26071-Iメッセージの日付，時刻を指定してください。

(15)　-a

システム単位でバックアップを取得する場合（全RDエリアのバックアップを取得する場合）に指定します。ただし，リスト用RDエリア及び一時表用RDエリアはバックアップの対象となりません。

＜規則＞

制御文ファイルに指定する場合，-aオプションを指定したときは，制御文は1行しか指定できません。

レプリカRDエリアが定義されている場合に-aオプションを指定すると，レプリカRDエリアもバックアップ取得対象になります。

レプリカRDエリアのHiRDBファイルのオープンでエラーになった場合，そのバックアップは取得されないで，ほかのRDエリアのバックアップ取得処理を続行します。ただし，差分バックアップ機能を使用している場合は，レプリカRDエリアのHiRDBファイルのオープンでエラーになると，エラー終了します。

レプリカRDエリアのHiRDBファイルの読み込みで入出力エラーが発生した場合，エラー終了します。

(16)　-u ユニット識別子〔，ユニット識別子〕…

　　　〜＜識別子＞((4文字))

ユニット単位でバックアップを取得する場合（ユニット下の全RDエリアのバックアップを取得する場合）に，バックアップ取得対象のユニット名を指定します。ただし，リスト用RDエリア及び一時表用RDエリアはバックアップの対象となりません。

＜規則＞

ユニット識別子を複数指定する場合は，重複しないようにしてください。

制御文ファイルに指定する場合，ユニット識別子は制御文全体で一意にしてください。

レプリカRDエリアが定義されている場合に-uオプションを指定すると，レプリカRDエリアもバックアップ取得対象になります。

レプリカRDエリアのHiRDBファイルのオープンでエラーになった場合，そのバックアップは取得されないで，ほかのRDエリアのバックアップ取得処理を続行します。ただし，差分バックアップ機能を使用している場合は，レプリカRDエリアのHiRDBファイルのオープンでエラーになると，エラー終了します。

レプリカRDエリアのHiRDBファイルの読み込みで入出力エラーが発生した場合，エラー終了します。

(17)　-s サーバ名〔，サーバ名〕…

　　　〜＜識別子＞((最大8文字))

サーバ単位でバックアップを取得する場合（サーバ下の全RDエリアのバックアップを取得する場合）に，バックアップ取得対象のサーバ名を指定します。ただし，リスト用RDエリア及び一時表用RDエリアはバックアップの対象となりません。

＜規則＞

サーバ名を複数指定する場合は，重複しないようにしてください。

制御文ファイルに指定する場合，サーバ名は制御文全体で一意にしてください。

レプリカRDエリアが定義されている場合に-sオプションを指定すると，レプリカRDエリアもバックアップ取得対象になります。

レプリカRDエリアのHiRDBファイルのオープンでエラーになった場合，そのバックアップは取得されないで，ほかのRDエリアのバックアップ取得処理を続行します。ただし，差分バックアップ機能を使用している場合は，レプリカRDエリアのHiRDBファイルのオープンでエラーになると，エラー終了します。

レプリカRDエリアのHiRDBファイルの読み込みで入出力エラーが発生した場合，エラー終了します。

(18)　-r RDエリア名〔，RDエリア名〕…

　　　〜＜識別子＞((最大30文字))

RDエリア単位でバックアップを取得する場合に，バックアップを取得するRDエリアの名称を指定します。

＜規則＞

RDエリア名の指定方法については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

ただし，制御文ファイルに指定したRDエリア名が重複していた場合は次のとおり処理されます。

直接指定したRDエリア名が重複した場合

次のように指定すると，KFPR26007-Eエラーになります（下線部分が重複部分です）。

-r LOB1,USER1 -b /HiRDB/pdcopy/bkup1
-r DDIC,USER1 -b /HiRDB/pdcopy/bkup2

一括指定したRDエリア名が重複した場合

次のように指定すると，最初に指定した値が有効になります（下線部分が重複部分です）。

-r LOB1,USER* -b /HiRDB/pdcopy/bkup1…有効
-r DDIC,USER* -b /HiRDB/pdcopy/bkup2

直接指定したRDエリア名と一括指定したRDエリア名が重複した場合

次のように指定すると，USER1に対しては直接指定での指定値が有効になります。USER1は/HiRDB/pdcopy/bkup1に取得されます（下線部分が重複部分です）。

-r LOB1,USER1 -b /HiRDB/pdcopy/bkup1…有効
-r DDIC,USER* -b /HiRDB/pdcopy/bkup2

リスト用RDエリア，及び一時表用RDエリアは指定できません。

制御文ファイルにRDエリア名を指定するときの規則を次に示します。

正規表現を使わない場合の記述方法

正規表現を使う場合の記述方法

RDエリア名を英小文字で指定する場合，又はRDエリア名に空白が含まれる場合は，全体を引用符（"）で囲みます。

正規表現では英小文字は英小文字で，英大文字は英大文字で指定します。

-qオプションを指定して，同時に-rオプションを指定する場合で，レプリカ定義のあるRDエリアを指定するときは，オリジナルRDエリアを指定してください。

-qオプションを指定する場合，オリジナルRDエリア，又はレプリカRDエリアのHiRDBファイルのオープンでエラーになったときは，そのバックアップは取得されないで，ほかのRDエリアのバックアップ取得処理を続行します。ただし，差分バックアップ機能を使用している場合は，オリジナルRDエリア，又はレプリカRDエリアのHiRDBファイルのオープンでエラーになると，エラー終了します。

-qオプションを指定する場合，オリジナルRDエリア，又はレプリカRDエリアのHiRDBファイルの読み込みで入出力エラーが発生した場合，エラー終了します。

-rに指定するRDエリアと，-qに指定する世代番号の組み合わせによって，次の表のように複写可否が異なります。

表18‒3　-rに指定するRDエリアと-qに指定する世代番号の組み合わせによる複写可否

-rに指定するRDエリア

-qの指定値

複写可否

レプリカ定義なし

ユーザ用RDエリア（一時表用RDエリアを除く），又はユーザLOB用RDエリア

0

○

1〜10

○※

リスト用RDエリア，又は一時表用RDエリア

0

×

1〜10

×

上記以外のRDエリア

0

○

1〜10

○

レプリカ定義あり

オリジナルRDエリア

0

○

1〜10

○

レプリカRDエリア

0

×

1〜10

×

（凡例）

○：複写できます。

×：複写できません。

注※

直接指定の場合は，KFPR26062-Wが出力され，複写処理が続行されます。

一括指定の場合は，メッセージが出力されずに，複写処理が続行されます。

(19)　-k ｛u｜i｜e｜m｜n｝

バックアップファイルの種別を指定します。

u ：

通常ファイルにバックアップを取得する場合，又はEasyMT，NetBackupを使用しないでMTにバックアップを取得する場合に指定します。バックアップファイルがマルチボリュームの場合は指定できません（-k mを指定してください）。

i ：

HiRDBファイルシステム領域にバックアップを取得する場合に指定します。実行系システムと待機系システムとでバックアップファイルを共用し，実行系システムで取得したバックアップを使用して待機系システムの回復をする場合に有効です。

e ：

EasyMTを使用してMTにバックアップを取得する場合に指定します。バックアップファイルがマルチボリュームの場合は指定できません。この指定はEasyMTが必要です。

m ：

EasyMT及びMTguideを使用してMTにバックアップを取得する場合に指定します。バックアップファイルがマルチボリュームの場合は，必ず指定します。この指定はEasyMT及びMTguideが必要です。

n ：

NetBackupを使用してバックアップを取得する場合に指定します。この場合，-bオプションにはNetBackupで設定したポリシー名を指定してください。

(20)　-v ボリューム名〔，ボリューム名〕…

　　　〜＜英数字＞((最大6文字))

バックアップを取得するMTのボリューム名称を指定します。MTデッキにマウントされたボリュームが指定値と異なっている場合は，エラーとなります。また，指定したボリュームの数よりバックアップに必要なボリュームが多い場合は，指定したボリューム数以降の名称はチェックされません。この指定を省略した場合，ボリューム名称はチェックされません。

この指定は，-kオプションでe又はmを指定したバックアップファイルに対して有効になります。ボリューム名を複数指定する場合は，-kオプションでmを指定する必要があります。

ボリューム名は，全体で重複しないようにしてください。

(21)　-N EasyMTファイル名

　　　〜＜英数字＞((最大17文字))

バックアップファイル作成時に付けるファイル名を指定します。この指定は，-kオプションでe又はmを指定したバックアップファイルに対して有効になります。なお，バックアップファイルは，必ずマウントされたMTの先頭から（ファイル順序が1から）作成されます。

(22)　-g 差分バックアップグループ名

　　　〜＜英数字＞((1〜30))

差分バックアップ機能を使用する場合，その単位となるグループの名称を指定します。

差分バックアップグループ名の最後に(S)を付けた場合，その時点から差分バックアップ管理を始めます。このときに，-kオプションの差分バックアップ管理ファイルが作成されます。同一名称の差分バックアップ管理ファイルがある場合は削除されるので，前回の差分バックアップグループのバックアップファイルは削除しておく必要があります。

差分バックアップ機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

＜規則＞

ユーザLOB用RDエリア，データディクショナリLOB用RDエリア，及びレジストリLOB用RDエリアは，必ずフルバックアップが取得されます。

一つの差分バックアップグループでは，バックアップを取得するRDエリアは変更できません。

同じ差分バックアップグループのバックアップファイルは，同じホストに格納してください（-bオプションで指定するホスト名は一つにしてください）。

差分バックアップファイルと差分バックアップ管理ファイルは，別々のHiRDBファイルシステムに作成してください。

差分バックアップ機能を使用する場合，-kオプションの指定によって，-bオプションに指定する差分バックアップファイル名の指定方法が変わります。

-k u，-k i，及び-k oの場合，差分バックアップファイルごとに異なる名称を指定する必要があります。

-k e，及び-k mの場合は該当しません（差分バックアップ機能は使用できません）。

-k nの場合，差分バックアップファイルごとに異なるポリシー名を指定する必要はありません（異なる名称でも運用できますが，ポリシーを差分バックアップファイルごとに作成する必要があるため，運用が煩雑になります）。

(23)　-d バックアップ種別

差分バックアップ機能を使用する場合，バックアップの種別を指定します。

a：フルバックアップを取得します。

b：最新のフルバックアップからの累積差分バックアップを取得します。

c：次のどちらかの最新のものからの累積差分バックアップを取得します。

前回取得した累積差分バックアップ

前回取得したフルバックアップ

d：前回取得したバックアップからの差分を取得します。

(24)　-K 差分バックアップ管理ファイルを格納するHiRDBファイルシステム領域名

　　　〜＜パス名＞

差分バックアップ機能を使用する場合，差分バックアップ管理ファイルを格納するHiRDBファイルシステム領域の名称を指定します。差分バックアップ管理ファイルの名称は，-gオプションで指定する差分バックアップグループ名と同じになります。

pdcopy実行後には，pdfbkupコマンドで差分バックアップ管理ファイルのバックアップを取得する必要があります。差分バックアップ管理ファイルに障害が発生した場合，このバックアップを使用してpdfrstrコマンドで回復します。

差分バックアップ機能使用時にpdmodを実行した場合，フルバックアップを取得してください。このとき，-Kオプションを指定して差分バックアップ管理ファイルも作成してください。

"差分バックアップ管理ファイルを格納するHiRDBファイルシステム領域名/差分バックアップグループ名"が，167文字以内になるようにしてください。

(25)　-o 差分バックアップの履歴情報ファイル名

　　　〜＜パス名＞

差分バックアップ機能を使用する場合，差分バックアップの履歴情報を出力するファイルの名称を指定します。

履歴情報の内容については，「データベース複写ユティリティの処理結果リスト」を参照してください。

(26)　-L 差分バックアップ管理ファイルの容量

　　　〜＜符号なし整数＞((1〜2046))≪1≫

差分バックアップ機能を使用する場合，差分バックアップファイルの容量をメガバイト単位で指定します。

容量は，HiRDBファイルシステム領域作成時の容量（pdfmkfsコマンドの-nオプション指定値−5）より小さくしてください。

このファイルの増分は，最大23回できます。増分するときの容量は，ここで指定した値となります。

(27)　-q 世代番号

　　　〜＜符号なし整数＞((0〜10))

インナレプリカ機能を使用している場合，バックアップ対象のRDエリアの世代番号を指定します。0を指定した場合はオリジナルRDエリアが対象となり，1〜10を指定した場合は指定した世代のレプリカRDエリアが対象となります。

＜規則＞

このオプションは，-rオプションと同時に指定してください。-a，-u，及び-sオプションとは同時に指定できません。

このオプションは，-rオプションで指定したオリジナルRDエリアが属するインナレプリカグループに対して，世代番号で示される世代のレプリカRDエリアを処理対象にする場合に指定してください。

(28)　-S ｛バックアップファイル初期容量，増分値｜’（バックアップファイル初期容量，増分値）〔，（バックアップファイル初期容量，増分値）〕…’｝

　　　〜＜符号なし整数＞((1〜1048574))≪100,10≫

このオプションは，-k オプションで"i"が指定されたバックアップファイルに対して有効となります。

バックアップファイルの初期容量と，増分値（バックアップデータが初期容量を超えた場合に確保する容量）を，メガバイト単位で指定します。

＜規則＞

初期容量は，HiRDBファイルシステム領域作成時に，pdfmkfsコマンドの-nオプションで指定した値より小さくなければなりません。これは，システムが管理用に使用する領域が必要となるためです。

このオプションを省略した場合は，バックアップファイル初期容量に100メガバイト，増分値に10メガバイトが仮定されます。

バックアップファイル容量の増分は，最大23回できます。ただし，HiRDBファイルシステム領域作成時に指定した最大増分回数を超えて増分はできません。

ファイルを複数指定した場合，それぞれのファイルに対しても，初期容量と増分値を設定できます。初期容量と増分値を括弧で囲んで指定したファイルの数分指定し，その全体をアポストロフィで囲んでください。ただし，制御文ファイルに記述する場合はアポストロフィは記述しないでください。

初期容量と増分値の組が指定したファイルの数よりも少ない場合は，最後に指定された値が指定されなかったファイルに適用されます。初期容量と増分値の組が指定したファイルの数よりも多い場合は，多い分が無視されます。

（例）

 -b file1,file2,file3,file4
 -k i
 -S '(10,1),(1,1) '

ファイル

初期容量

増分値

備考

file1

10

1

（10，1）の指定で設定される

file2

1

1

（1，1）の指定で設定される

file3

1

1

指定がないため最後の指定値

（1，1）が適用される

file4

1

1

18.5　注意事項

障害が発生しているRDエリアのバックアップは取得しないでください。障害が発生したRDエリアのバックアップは不正であり，そのバックアップファイルはデータベースの回復に使用できません。

EasyMT及びMTguideを使用する場合は，このユティリティを実行する前に，MTを初期化しておく必要があります。

EasyMTとJP1/Magnetic Tape Accessの両方がインストールされている場合，JP1/Magnetic Tape Accessを起動します。

データベース複写ユティリティの最大同時実行数は，システム共通定義のpd_utl_exec_modeオペランドの指定値によって異なります。pd_utl_exec_mode=0の場合は32，pd_utl_exec_mode=1の場合はpd_max_usersの値となります。データベース複写ユティリティの同時実行数は指定するバックアップファイルの数に依存します。同時実行数の考え方は次のとおりです。

考え方：

一つのバックアップファイルを使うデータベース複写ユティリティを六つ同時に実行すると，同時実行数は，1×6＝6になります。

二つのバックアップファイルを使うデータベース複写ユティリティを四つ同時に実行すると，同時実行数は，2×4＝8になります。

上記のデータベース複写ユティリティが，すべて同時に動作している場合，同時実行数は6＋8＝14になります。

なお，HiRDB/パラレルサーバでpd_utl_exec_mode=0が設定された環境で，1サーバマシンに一つのバックアップファイルを作成する場合は，ユティリティの同時実行数がpdcopyの実行数よりも多くなるため，pd_utl_exec_mode=0のときの同時実行最大数を超えてエラーとなるおそれがあります。エラーとなった場合は，次のどちらかの方法で対処してください。

・pdcopyの実行数を少なくする

・pd_utl_exec_mode=1を指定する

制御文ファイルで複数のバックアップファイルを指定し，-rオプションで正規表現をした場合，バックアップ対象のRDエリアが複数のバックアップファイルに出力されないようにしてください。この場合，エラーとなります。ただし，バックアップファイルが一つの場合には，エラーにはなりません。例を次に示します。

（例1）

 -b バックアップファイル1 -r RDUSER*,RDMASTER
 -b バックアップファイル2 -r ..USER,RDDICTIONALY

〔説明〕

RDUSERで始まるRDエリアがバックアップファイル1及びバックアップファイル2に出力されるため，エラーとなります。

（例2）

 -b バックアップファイル1 -r RD*,RDMASTER

〔説明〕

RDMASTERは，RD*でも該当するが，バックアップファイルが一つなのでエラーにはなりません。

pdcopyのリターンコードを次に示します。

0：正常終了

8：異常終了（一部の複写に失敗又はスキップしました）

次のどちらかの条件に該当する場合は，取得したバックアップを使用できます。

・-Jオプションを指定している

・-bオプションを1つだけ指定している

上記に該当しない場合は，エラー要因を取り除き，再度コマンドを実行してください。

12：異常終了（すべての複写に失敗しました）

エラー要因を取り除き，再度コマンドを実行してください。

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdcopyの制御文ファイルには，BOMを持つファイルを使用できます。なお，pdcopyの制御文ファイルとしてBOMを持つファイルを使用しても，BOMは読み飛ばされます。また，pdcopyで出力されるファイルにはBOMは付きません。

OSの時刻を遅らせる場合のバックアップ取得については，マニュアル「HiRDB システム運用ガイド」を参照してください。

次の運用後にバックアップを取得する場合，回復時に必要となるアンロードログファイルを明確にするため，バックアップする前にpdlogswapコマンドを実行してHiRDBが使用するシステムログファイルを切り替えてください。

ログレスモードの運用

データベース構成変更（pdmod実行）

18.6　データベース複写ユティリティの処理結果リスト

18.6.1　処理結果出力ファイルの内容

データベース複写ユティリティの処理結果出力ファイルの内容を次に示します。

pdcopy (VV-RR)  ***** DB COPY *****   2007-04-24 14:08:20 [1] utl3 [2]
-----------------------------------------------------------------
*** DB BACKUP INFORMATION LIST ***       BACKUPMODE : SHARED [3]
<<LOG FILE INFORMATION>>
  SYSTEM ID      : utl13 [4]
  UNIT ID        : sds1  [5]
  TYPE           : sys   [6]
  SERVER NAME    : sds   [7]
  SERVER RUN ID  : 455d67c7 [8]
  LOG SERVER RUN ID : 455d67c7 [9]
  FILE NAME      : logfg01 [10]
  GENERATION NO  : 1 [11]
  BLOCK NO       : d2 [12]
  HEADER WRITE COUNTER : 3 [13]
  HEADER WRITE TIME : 455d68d2 [14]
<<BACKUP FILE INFORMATION>>
  VOL NAME       : vol1,vol2 [15]
  FILE NAME      : host1:/usr/bkup01 [16]
                         /usr/bkup02
  FILE KIND      : u [17]
  STARTED AT     : 2007-04-24 14:08:20 [18]
  ENDED AT       : 2007-04-24 14:08:21 [19]
 <REPLICA BKUP INFOMATION>
  REPLICA BACKUP GENERATION NO : 0 [43]
<<RDAREA INFORMATION>>
  UNIT NAME      :un16 [20] SERVER NAME : sds [21]

  RDAREA NAME    :USER1[22][23]           [24]                      [25]
  RDAREA ID      :          4 ATTRIBUTE : USER          PAGE SIZE : 4096
  STARTED AT     : 2007-04-24 14:08:20 [26]
  ENDED AT       : 2007-04-24 14:08:21 [27]
  IN-MEMORY DB-SYNC TIME   :2007-04-24 14:04:26 [42]
 <REPLICA RDAREA INFOMATION>
  ORIGINAL RDAREA NAME : USER1 [44]
  REPLICA RDAREA GENERATION NO : 0 [45]
 <RDAREA STATUS>      [28]
 TOTAL PAGE:           200 USED PAGE(RATE)   :        3   ( 1.5%) [29]
                           FREE SPACE        :       10.8         [30]
                           UNUSED PAGE(RATE) :      197   (98.5%) [31]
                               [32]
  INDEX PAGE(RATE) :            1( 33.3%) TOTAL SPACE :  4.0k      [33]
                           FREE SPACE(RATE)  :        3.8k( 94.7%) [34]
                               [35]
  DATA PAGE(RATE)  :            2( 66.7%) TOTAL SPACE :  8.0k      [36]
                           FREE SPACE(RATE)  :        7.0k( 87.6%) [37]
 <FILE INFORMATION>
 1 /dbarea/area1/rdmt06 [38]
   EXTENT COUNT :   1 [40]
 2 /dbarea/area1/rdmt07
   EXTENT COUNT :   1
<<RDAREA INFORMATION>>
  UNIT NAME   : un16        SERVER NAME : sds

  RDAREA NAME : USER2
  RDAREA ID   :            5 ATTRIBUTE  : USER             PAGE SIZE : 4096
  STARTED AT  : 2007-04-24 14:08:21
  ENDED AT    : 2007-04-24 14:08:21
  IN-MEMORY DB-SYNC TIME   :2007-04-24 14:04:26
 <REPLICA RDAREA INFOMATION>
  ORIGINAL RDAREA NAME : USER2
  REPLICA RDAREA GENERATION NO : 0
 <RDAREA STATUS>
 TOTAL PAGE:           200 USED PAGE(RATE)   :        3   ( 1.5%)
                           FREE SPACE        :       10.8
                           UNUSED PAGE(RATE) :      197   (98.5%)
  INDEX PAGE(RATE) :            1( 33.3%) TOTAL SPACE :  4.0k
                           FREE SPACE(RATE)  :        3.8k( 94.7%)
  DATE PAGE(RATE)  :            2( 66.7%) TOTAL SPACE :  8.0k
                           FREE SPACE(RATE)  :        7.0k( 87.6%)
 <FILE INFORMATION>
 1 /dbarea/area1/rdmt08
   EXTENT COUNT :   2
 2 /dbarea/area1/rdmt09
   EXTENT COUNT :   2

<<RDAREA INFORMATION>>
  UNIT NAME   : un16        SERVER NAME : sds

  RDAREA NAME : USER3
  RDAREA ID   :            6 ATTRIBUTE  : USER            PAGE SIZE : 4096
  STARTED AT  : 2007-04-24 14:08:21
  ENDED AT    : 2007-04-24 14:08:21
  IN-MEMORY DB-SYNC TIME   :2007-04-24 14:04:12
 <REPLICA RDAREA INFOMATION>
  ORIGINAL RDAREA NAME : USER3
  REPLICA RDAREA GENERATION NO : 0
 <RDAREA STATUS>
  TOTAL PAGE:        200 USED PAGE(RATE)   :          3   (  1.5%)
                         FREE SPACE        :         10.8
                         UNUSED PAGE(RATE) :        197   ( 98.5%)
  INDEX PAGE(RATE) :          1( 33.3%) TOTAL SPACE :    4.0k
                         FREE SPACE(RATE)  :          3.8k( 94.7%)
  DATA PAGE(RATE)  :          2( 66.7%) TOTAL SPACE :    8.0k
                         FREE SPACE(RATE)  :          7.0k( 87.6%)
 <FILE INFORMATION>
 1 /dbarea/area1/rdmt10
   EXTENT COUNT :   2
 2 /dbarea/area1/rdmt11
   EXTENT COUNT :   2
<<RDAREA INFORMATION>>
  UNIT NAME : un16     SERVER NAME : sds

  RDAREA NAME : USER_LOB1
  RDAREA ID   :         31  ATTRIBUTE : USER_LOB       PAGE SIZE : 8192
  STARTED AT  : 2007-04-24 14:08:21
  ENDED AT    : 2007-04-24 14:08:21
  IN-MEMORY DB-SYNC TIME   :2007-04-24 14:04:55
 <REPLICA RDAREA INFOMATION>
  ORIGINAL RDAREA NAME : USER_LOB1
  REPLICA RDAREA GENERATION NO : 0
 <RDAREA STATUS>
  TOTAL PAGE:     75000  USED PAGE(RATE)   :      30000   ( 40.0%)
                         UNUSED PAGE(RATE) :      45000   ( 60.0%)

  DISORDERED LOB DIRECTORY RATIO :   0% [39]
 <FILE INFORMATION>
 1 /dbarea/area1/rdmt12
   EXTENT COUNT :   2
 2 /dbarea/area1/rdmt13
   EXTENT COUNT :   2

<<ERROR SKIPPED INFORMATION>>
  RDAREA NAME : USER04,USER05,USER06,USER07,USER08,
                USER09 [41]
-----------------------------------------------------------------

〔説明〕

データベース複写ユティリティを実行した日時（YYYY-MM-DD hh:mm:ssの形式）

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

HiRDB識別子

バックアップ取得モード

EXCLUSIVE：-M x又は-Ｍ ｒ

SHARED：-M s

HiRDB識別子

ユニット識別子

ログ種別

sys：システムログファイル

サーバ名

サーバランID（16進8けた）

ログサーバランID（16進8けた）

該当するバックアップファイルを使用してデータベースを回復する場合に必要な，システムログファイルの名称

10のシステムログファイルの世代番号

先頭ブロック番号（16進8けた以内）

ヘッダ更新回数（16進8けた以内）

使用開始時刻（16進8けた）

ボリューム名

-kオプションにe又はmを指定した場合，-vオプションに指定した値が出力されます。-vオプションを指定しなかった場合は，＊＊＊＊＊＊が出力されます。

バックアップファイル名（ホスト名：パス名の形式で表示※）

ファイル名を複数指定した場合は，使用したファイル名だけが表示されます。

-k e，又は-k mを指定した場合，-Nオプションに指定した値が出力されます。-Nオプションを指定しなかった場合は，＊＊＊＊＊＊が出力されます。

-k nを指定した場合，見出しのFILE NAMEがPOLICY NAMEになります。この場合，NetBackupで設定したポリシー名が出力されます。

注※　系切り替え機能を使用している場合は，現用系のホスト名が表示されます。

バックアップファイルの種別（-kオプションに指定する値）

バックアップ取得開始時刻（形式は1と同じ）

バックアップ取得終了時刻（形式は1と同じ）

RDエリアがあるユニットの名称

RDエリアがあるサーバの名称

複写したRDエリアの名称

複写したRDエリアの番号

RDエリアの種類

MASTERDIRECTORY：マスタディレクトリ用RDエリア

DATADIRECTORY：データディレクトリ用RDエリア

DATADICTIONARY：データディクショナリ用RDエリア

SYSTEM_LOB：データディクショナリLOB用RDエリア

USER：ユーザ用RDエリア

USER_LOB：ユーザLOB用RDエリア

REG：レジストリ用RDエリア

REG_LOB：レジストリLOB用RDエリア

RDエリアのページ長（単位：バイト）

該当するRDエリアのバックアップ取得開始時刻（形式は1と同じ）

該当するRDエリアのバックアップ取得終了時刻（形式は1と同じ）

該当するRDエリアの使用可能ページ数（表又はインデクスを格納できるRDエリア内のページ数）

使用中ページ数（既に表又はインデクスを格納しているRDエリア内のページ数）と，使用可能ページ数に対する使用中ページ数の比率

使用中ページ内の空き領域長（単位：バイト）

次に示す形式で出力されます。

ZZZ9（0以上，1キロバイト未満の場合）

ZZZ9.9k（1キロバイト以上，1メガバイト未満の場合）

ZZZ9.9M（1メガバイト以上，1ギガバイト未満の場合）

ZZZ9.9G（1ギガバイト以上の場合）

注　Zは，値が0の場合省略されます。9は，値が0の場合でも省略されません。

未使用ページ数（使用可能ページのうち，まだ使用されていないRDエリア内のページ数）と，使用可能ページ数に対する未使用ページ数の比率

インデクス格納ページ数（使用中ページのうち，インデクスを格納するために使用しているページ数）と，使用中ページ数に対するインデクス格納ページ数の比率

インデクス格納ページ全体の領域長（単位：バイト）

インデクス格納ページ内の空き領域を合計した長さ（単位：バイト）と，インデクス格納ページ内の空き領域の比率

表格納ページ数（使用中ページのうち，表を格納するために使用しているページ数）と，使用中ページ数に対する表格納ページ数の比率

表格納ページ全体の領域長（単位：バイト）

表格納ページ内の空き領域を合計した長さ（単位：バイト）と，表格納ページ内の空き領域の比率

RDエリアを構成するHiRDBファイルの名称

データディクショナリLOB用RDエリア又はユーザLOB用RDエリアのシステム情報の乱れ率1％以上の場合，アクセス性能が劣化します。この場合，データベース再編成ユティリティで再編成をしてください。データディクショナリLOB用RDエリアの場合は，ストアドプロシジャに関するディクショナリ表（SQL_ROUTINES，SQL_ROUTINE_RESOURCES，SQL_ROUTINE_PARAMS）を再編成します。

HiRDBファイルのエクステント数

処理をスキップしたRDエリア名

スキップしたRDエリアが複数ある場合はコンマで区切り，5個単位で改行します。スキップしたRDエリアがない場合は＊＊＊＊＊が出力されます。エラー要因については，syslogfileにメッセージが出力されているので参照してください。syslogfileに出力されるメッセージの詳細は，「-J」を参照してください。

インメモリデータバッファとインメモリRDエリアの同期を取った時刻

最後に同期を取った時刻が表示されます。インメモリRDエリアのバックアップを取得した場合にこの情報が表示されます。

-qオプションに指定している世代番号

オリジナルRDエリア名

レプリカRDエリアの世代番号

注

<<LOG FILE INFORMATION>>は，-Mオプションにsを指定した場合，又は-zオプションを指定した場合に出力されます。

4〜6，8，9，及び12〜14は，-zオプションを指定した場合に出力されます。

41は-Jオプションを指定した場合に出力されます。

43及び44は，インナレプリカ機能を使用している場合に出力されます。

18.6.2　差分バックアップの履歴情報ファイルの内容

データベース複写ユティリティの差分バックアップの履歴情報ファイルの内容を次に示します。

 pdcopy (VV-RR) ***** DB COPY *****  2000-10-26 21:30:20[1] utl3[2]

 /hirdb/pdcopy/admfile[3]
 backupg1[4]
 2000-10-19 21:00:20[5]
 2000-10-26 21:18:20[6]
 RDAREA NAME :rdarea01,rdarea02[7]
[8]          [9]                 [10]    [11][12]           [13]
 a 2000-10-19 21:08:20,2000-10-19 21:09:25 r u host01: /hirdb/pdcopy/backup/backup01
 d 2000-10-20 21:01:20,2000-10-20 21:01:38 r u host01: /hirdb/pdcopy/backup/backup02
 c 2000-10-21 21:05:20,2000-10-21 21:06:10 r u host01: /hirdb/pdcopy/backup/backup03
 b 2000-10-22 21:01:20,2000-10-22 21:01:45 r u host01: /hirdb/pdcopy/backup/backup04

［説明］

pdcopyコマンドの実行日時

HiRDB識別子

差分バックアップ管理ファイルを格納しているHiRDBファイルシステム領域名

バックアップグループ名

バックアップグループの作成日時

バックアップグループの最終更新日時

バックアップグループに属するRDエリア名

バックアップ種別

a：フルバックアップ

b：最新のフルバックアップからの累積差分バックアップ

c：前回取得した累積差分バックアップ又は前回取得したフルバックアップのどちらか最新のものからの累積差分バックアップ

d：差分バックアップ

バックアップ取得開始日時

バックアップ取得終了日時

バックアップ取得モード

x：参照・更新不可能モード

r：参照可能モード

s：更新可能モード

バックアップファイルの種別

u：通常ファイル

i：バックアップファイル用のHiRDBファイルシステム領域

バックアップファイル名

バックアップファイル名は，ホスト名：バックアップファイル名の形式で表示されます。

18.7　バックアップファイルの形式

データベース複写ユティリティで取得するデータベースのバックアップファイルの形式を次の図に示します。

図「データベースのバックアップファイルの構造」

図「バックアップファイルレコードヘッダのデータ形式」

図「ファイルチェックレコードのデータ形式」

図「バックアップRDエリアヘッダレコードのデータ形式」

図「バックアップRDエリアレコードのデータ形式」

これらの情報から，バックアップ管理ツールなどを作成するときに，バックアップの世代管理ができるようになります。ただし，このバックアップファイルの形式は，HiRDB/シングルサーバのときだけ該当します。

図18‒3　データベースのバックアップファイルの構造

図18‒4　バックアップファイルレコードヘッダのデータ形式

図18‒5　ファイルチェックレコードのデータ形式

図18‒6　バックアップRDエリアヘッダレコードのデータ形式

図18‒7　バックアップRDエリアレコードのデータ形式

19　データベース回復ユティリティ（pdrstr）

この章では，データベース回復ユティリティ（pdrstr）の使い方について説明します。

19.1　データベース回復ユティリティの機能

実行者　HiRDB管理者が実行できます

データベース回復ユティリティには次に示す機能があります。

データベースの回復

ログポイント情報ファイルの再作成

19.1.1　データベースの回復

ディスク障害など，データベースを回復する必要が生じた場合，データベース回復ユティリティでデータベースを回復します。このとき，次に示す入力情報が必要になります。

バックアップファイル

アンロードログファイル（アンロードレスシステムログ運用の場合はシステムログファイル）

データベース回復の概要（システムログをアンロードする運用の場合）とデータベース回復の概要（アンロードレスシステムログ運用の場合）を次の図に示します。

図19‒1　データベース回復の概要（システムログをアンロードする運用の場合）

〔説明〕

データベースは次に示す時点（状態）に回復できます。

バックアップ取得時点

バックアップ取得時点に回復する場合は，アンロードログファイルは必要ありません。バックアップファイルだけが必要です。

最新の状態（最新の同期点）

最新の状態に回復する場合は，バックアップファイルのほかに，バックアップ取得以降に出力されたシステムログをアンロードしたアンロードログファイルが必要になります。

図19‒2　データベース回復の概要（アンロードレスシステムログ運用の場合）

〔説明〕

データベースは次に示す時点（状態）に回復できます。

バックアップ取得時点

バックアップ取得時点に回復する場合は，システムログファイルは必要ありません。バックアップファイルだけが必要です。

最新の状態（最新の同期点）

最新の状態に回復する場合は，バックアップファイルのほかに，バックアップ取得以降に出力されたシステムログを格納したシステムログファイルが必要になります。

19.1.2　ログポイント情報ファイルの再作成

アンロードレスシステムログ運用をしている場合，ログポイント情報ファイルを保管しておく必要があります。ディスク障害などでログポイント情報ファイルが壊れた場合，データベース回復ユティリティでログポイント情報ファイルを再作成してください。このとき，次に示す入力情報が必要になります。

バックアップファイル

ログポイント情報ファイルの再作成の概要を次の図に示します。

図19‒3　ログポイント情報ファイルの再作成の概要

19.2　データベースを回復するために必要な知識

19.2.1　データベースの回復単位

データベースは次に示す単位で回復できます。回復単位はデータベース回復ユティリティのオプションで指定します。データベースの回復単位を次の表に示します。

表19‒1　データベースの回復単位

データベースの回復単位

説明

オプション

システム単位

全RDエリアを回復の対象とします。ユーザ用RDエリア以外（例えば，マスタディレクトリ用RDエリアなど）も回復対象になります。

-a

バックアップファイル単位

バックアップファイル中のRDエリアを回復の対象とします。

-c

ユニット単位※

ユニット下の全RDエリアを回復の対象とします。

-u

サーバ単位※

サーバ下の全RDエリアを回復の対象とします。

-s

RDエリア単位

特定のRDエリアを回復します。RDエリア名を正規表現することで，グループ化したRDエリアを同時に回復できます。

-r

注※

HiRDB/パラレルサーバの場合に該当します。HiRDB/シングルサーバの場合は該当しません。

19.2.2　回復対象のRDエリアの状態

回復対象のRDエリア（マスタディレクトリ用RDエリアは除きます）は，閉塞かつクローズ状態（pddblsコマンドの実行結果がCLOSE HOLD(CMD)又はCLOSE HOLDの状態）でなければなりません。

インメモリRDエリアを回復する場合は，インメモリRDエリアとインメモリデータバッファが次に示す状態である必要があります。

インメモリRDエリアの状態が閉塞かつクローズ状態である（pddblsコマンドの実行結果がCLOSE HOLD(CMD)又はCLOSE HOLDの状態）

インメモリデータバッファがバッファ障害状態である

前記以外の状態の場合は，pdmemdb -k relsコマンドでいったんインメモリ化を解除した後に，pdrstrコマンドを実行してください。

19.2.3　バックアップ取得モードとの関係

データベース複写ユティリティの-Mオプションにsを指定して取得したバックアップファイルの場合は，バックアップファイルだけでは回復できません。この場合，同時にアンロードログファイル又はシステムログファイルも使用する必要があります。

19.2.4　HiRDBの開始モードとの関係

HiRDBの開始モードと，回復できるRDエリアの関係を次に示します。

RDエリア種別

HiRDBの開始モード

-i

-r〔-t〕

-l

dbdestroy

マスタディレクトリ用RDエリア

×

○

×

×

データディレクトリ用RDエリア

○

△

×

○

データディクショナリ用RDエリア

○

△

×

○

データディクショナリLOB用RDエリア

○

△

×

○

ユーザ用RDエリア

○

△

×

○

ユーザLOB用RDエリア

○

△

×

○

リスト用RDエリア

○

△

×

○

レジストリ用RDエリア

○

△

×

○

レジストリLOB用RDエリア

○

△

×

○

(凡例)

○：バックアップ取得時点，及び最新の同期点に回復できます。

△：バックアップ取得時点に回復できますが，最新の同期点には回復できません。

×：回復できません。

19.2.5　マスタディレクトリ用RDエリアを回復する場合

RDエリアを回復するとき，回復対象RDエリアをpdholdコマンドで閉塞かつクローズ状態にする必要があります。しかし，マスタディレクトリ用RDエリアは閉塞かつクローズ状態にできません。このため，マスタディレクトリ用RDエリアを回復する場合は，いったんHiRDBを終了して，その後pdstart -rコマンドでHiRDBを開始する必要があります。

したがって，全RDエリアを回復する場合はマスタディレクトリ用RDエリアの回復も含まれるため，pdstart -rコマンドでHiRDBを開始する必要があります。

なお，マスタディレクトリ用RDエリアを系切り替え対象の共有ディスク上に定義している場合，pdstart -rコマンドでHiRDBを開始するときに注意事項があります。注意事項については，マニュアル「HiRDB システム運用ガイド」の，「スタンバイ型系切り替え（サーバモード）の運用」の「HiRDBの開始方法」の注意事項を参照してください。

19.2.6　構成変更前に取得したバックアップファイルを使用して，バックアップだけの回復をする場合

構成変更（HiRDBファイルの追加）前に取得したバックアップファイルを使用して，バックアップだけの回復をする場合は，RDエリアを構成するHiRDBファイルをすべて削除してから回復してください。

19.2.7　最新の状態への回復

RDエリアを最新の状態に回復するには，バックアップ及びバックアップ取得以降に出力されたシステムログが必要です。したがって，現用のシステムログファイルに格納されているシステムログが必要になります。現用のシステムログファイルはアンロードできないため，pdlogswapコマンドで現用ファイルをいったんスワップしてください。その後，元現用ファイルの内容をアンロードしてください。

19.2.8　最新の状態以外に回復する場合

障害が発生したRDエリアを最新の状態に回復する場合は，そのRDエリアだけが回復の対象になります。しかし，最新の状態以外（バックアップ取得時点又は任意の同期点）に回復する場合は，障害が発生したRDエリアだけではなく，関連するRDエリアも一緒に回復する必要があります。

例えば，表格納RDエリアに障害が発生し，インデクス格納RDエリアは正常の場合，表格納RDエリアだけをバックアップ取得時点に戻すと，表データはバックアップ取得時点に戻り，インデクスデータは最新の状態となり，両者が不一致な状態になります。そのため，インデクス格納RDエリアも表格納RDエリアと一緒にバックアップ取得時点に回復する必要があります。

ポイント

関連するRDエリアはまとめてバックアップを取得し，まとめて回復してください。ここでいう関連するRDエリアとは，データの整合性を守る必要があるRDエリアのことです。例えば，次に示すRDエリアが該当します。

インデクス格納RDエリア（インデクスが定義されている場合）

ユーザLOB用RDエリア（LOB列が定義されている場合）

システム用RDエリア（定義系SQLを実行した場合など）

横分割表を格納しているすべてのRDエリア（表を横分割している場合）

データの整合性を守る必要があるRDエリア（関連するRDエリア）については，マニュアル「HiRDB システム運用ガイド」の「同時にバックアップを取得する必要があるRDエリア」を参照してください。

参考

インメモリRDエリアを最新の状態以外に回復する場合も，ここで説明した内容が適用されます。

19.2.9　アンロードログファイル又はシステムログファイルを使用してデータベースを回復した場合

アンロードログファイル又はシステムログファイルを使用してデータベースを回復した場合，回復完了後に必ず回復したRDエリアのバックアップを取得してください。ここでバックアップを取得しないと，その後障害が発生したときに，データベース回復ユティリティでデータベースを障害発生直前の同期点まで回復できなくなります。

アンロードログファイルを使用して回復する場合，必要なアンロードログファイルをすべて指定する必要があります。必要なアンロードログファイルが足りない場合，メッセージ（KFPR16203-E，KFPR16301-E）が出力され，エラー終了します。

19.2.10　アンロードレスシステムログ運用の場合の回復

アンロードレスシステムログ運用の回復では，システムログをアンロードしなくても，データベースの障害発生時に，直接システムログをデータベース回復ユティリティの入力情報にしてデータベースを回復します。この運用方法をアンロードレスシステムログ運用といいます。

アンロードレスシステムログ運用には，ログポイントという概念があります。データベースに障害が発生してデータベースを回復する場合，バックアップ取得時点よりも前のシステムログは必要ありません。このデータベースの回復に必要なシステムログと必要のないシステムログを区別する位置をログポイントといいます。ログポイントは，データベース複写ユティリティでバックアップを取得すると設定されます。

アンロードレスシステムログ運用の回復をする場合，-L及び-zオプションを指定します。

アンロードレスシステムログ運用については，マニュアル「HiRDB システム運用ガイド」を参照してください。

19.2.11　差分バックアップ機能を使用してバックアップからの回復

差分バックアップ機能を使用して取得したバックアップから回復する場合，-g及び-Kオプションを指定します。

差分バックアップ機能については，マニュアル「HiRDB システム運用ガイド」を参照してください。

19.2.12　インナレプリカ機能を使用したバックアップからの回復

インナレプリカ機能を使用して取得したバックアップから回復する場合，-q及び-xオプションを指定します。

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

19.2.13　範囲指定の回復

アンロードログファイル又はシステムログファイルを指定して回復する場合，回復対象とする時間の範囲を指定できます。この範囲指定は，回復対象のRDエリアごとにも指定できます。範囲指定をした場合，指定した範囲内で同期点を迎えたトランザクションが出力するログだけが回復対象となります。範囲指定の回復をする場合に対象となるログの例を次に示す。範囲指定の回復については，マニュアル「HiRDB システム運用ガイド」を参照してください。

範囲指定の回復の概要を次の図に示します。

図19‒4　範囲指定の回復の概要

〔説明〕

トランザクション1のように，開始時点で実行中のトランザクションがある場合は，開始時点以降のログを使用して回復します。

トランザクション3のように，回復終了時刻までに同期点のないトランザクションについては回復しません。指定した範囲内で同期点を迎えたトランザクションについては，同期点までのログを使用して回復します。なお，トランザクション3のように，同期点のないトランザクションがある場合にはその旨ワーニングメッセージを出力します。

19.2.14　データベース回復ユティリティを実行するときのHiRDBの状態について

データベース回復ユティリティは，HiRDBが稼働中のときだけ実行できます。

データベース回復ユティリティは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

データベース回復ユティリティを実行する場合，回復対象のRDエリアがあるユニット，及びアンロードログファイル，システムログファイル，又はバックアップファイルを入力するユニットが開始されていなければなりません。また，回復対象のRDエリアがあるサーバは，バックアップファイルだけを入力とする場合は開始されていなくてもよいが，アンロードログファイル又はシステムログファイルを入力とする場合は開始されていなければなりません。

19.3　使用例

ここでは，データベースの回復例，及びログポイント情報ファイルの再作成例について説明します。説明する項目は次のとおりです。

システム単位の回復をする場合

RDエリア単位の回復をする場合

サーバ単位の回復をする場合

差分バックアップ機能を使用したバックアップから回復をする場合

インナレプリカ機能を使用していて，RDエリアの世代を指定して回復する場合

NetBackupを使用したバックアップからRDエリアを回復する場合

ログポイント情報ファイルを再作成する場合

なお，各使用例中にでてくるpdrstrコマンドのオプションの詳細については，「コマンドの形式」を参照してください。

19.3.1　システム単位の回復をする場合

(1)　全RDエリアの回復

全RDエリアをバックアップ取得時点に回復します。

pdrstr -m /hirdb/rdarea/mast/mast01 -b /usr/hirdb/pdcopy/backup/backup01
-p /usr/hirdb/pdrstr/list/list01 -a

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-b：バックアップファイル名を指定します。

-p：データベース回復ユティリティの処理結果リストの出力ファイル名を指定します。

-a：全RDエリアを回復対象とする指定です。

(2)　DAT上のバックアップからの全RDエリアの回復

全RDエリアをバックアップ取得時点に回復します。DAT上のファイルへ取得されたバックアップを使用します。

pdrstr -m /hirdb/rdarea/mast/mast01 -b /dev/rmt/0m
-p /usr/hirdb/pdrstr/list/list01 -a

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-b：バックアップファイル名を指定します。

-p：データベース回復ユティリティの処理結果リストの出力ファイル名を指定します。

-a：全RDエリアを回復対象とする指定です。

19.3.2　RDエリア単位の回復をする場合

(1)　RDエリア単位の回復

ユーザ用RDエリア（RDAREA01，RDAREA02）を最新の状態に回復します。

pdrstr -m /hirdb/rdarea/mast/mast01 -b /usr/hirdb/pdcopy/backup/backup01
-l /usr/hirdb/pdlogunld/unld01 -p /usr/hirdb/pdrstr/list/list01 -w /tmp/sortwork
-r RDAREA01,RDAREA02

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-b：バックアップファイル名を指定します。

-l：アンロードログファイル名を指定します。バックアップの取得後にアンロードしたアンロードログファイル名を指定します。

-p：データベース回復ユティリティの処理結果リストの出力ファイル名を指定します。

-w：ソート用ワークディレクトリを指定します。

-r：回復対象のRDエリアを指定します。

RDエリア単位で回復する場合に，関連するRDエリアを同時に指定しているかどうかを内部でチェックします（pdrdreflsコマンドが実行されます）。RDエリアの指定で不足があるときは，KFPR26289-Wメッセージが出力され，処理結果としてpdrdreflsコマンドのメッセージがデータベース回復ユティリティ（pdrstr）の処理結果出力ファイルに出力されます。不足しているRDエリアは，処理結果出力ファイル内のKFPT02028-Wメッセージで確認します。なお，KFPT02004-Wメッセージは無視してください。チェック対象のRDエリアとチェックする条件を次に示します。

チェック対象のRDエリア

表格納用RDエリアとインデクス格納用RDエリア

表格納用RDエリアとLOB列格納用RDエリア

参照表又は被参照表を格納しているRDエリア

ただし，システム用RDエリア，及びレプリカRDエリアはチェックしません。また，-qオプションを指定している場合は，オリジナルRDエリア名称で指定したRDエリアをチェックします。

チェックする条件

次のすべての条件が成立した場合にチェックします。

pdstartコマンドの-rオプション以外でHiRDBを起動している

-Rオプションを指定していない

-rオプションでRDエリアを指定している

ディクショナリ用RDエリアを回復対象にしていない

(2)　アンロードレスシステムログ運用でのRDエリアの回復

ユーザ用RDエリア（RDAREA01，RDAREA02）を最新の状態に回復します。アンロードレスシステムログ運用をしています。

pdrstr -m /hirdb/rdarea/mast/mast01 -b /usr/hirdb/pdcopy/backup/backup01
-L -p /usr/hirdb/pdrstr/list/list01 -w /tmp/sortwork -r RDAREA01,RDAREA02

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-b：バックアップファイル名を指定します。

-L：システムログファイルを入力情報にする指定です。

-p：データベース回復ユティリティの処理結果リストの出力ファイル名を指定します。

-w：ソート用ワークディレクトリを指定します。

-r：回復対象のRDエリアを指定します。

19.3.3　サーバ単位の回復をする場合

バックエンドサーバ（bes1）下の全RDエリアを最新の状態に回復します。HiRDB/パラレルサーバでアンロードレスシステムログ運用をしています。

pdrstr -m /hirdb/rdarea/mast/mast01 -b /usr/hirdb/pdcopy/backup/backup01
-L -p /usr/hirdb/pdrstr/list/list01 -w /tmp/sortwork -s bes1

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-b：バックアップファイル名を指定します。

-L：システムログファイルを入力情報にする指定です。

-p：データベース回復ユティリティの処理結果リストの出力ファイル名を指定します。

-w：ソート用ワークディレクトリを指定します。

-s：バックエンドサーバ（bes1）下の全RDエリアを回復対象とする指定です。

19.3.4　差分バックアップ機能を使用したバックアップから回復をする場合

ユーザ用RDエリア（rdarea01，rdarea02）を差分バックアップ取得時点に回復します。

pdrstr -m /rdarea/mast/mast01 -g backupg1 -K /pdcopy/admfile -r rdarea01,rdarea02

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-g：差分バックアップグループ名を指定します。

-K：差分バックアップ管理ファイルを格納するHiRDBファイルシステム領域名を指定します。

-r：回復するRDエリア（rdarea01，rdarea02）の名称を指定します。

19.3.5　インナレプリカ機能を使用していて，RDエリアの世代を指定して回復する場合

インナレプリカ機能を使用している場合で，指定した世代のRDエリアを回復します。

pdrstr -m /hirdb/rdarea/mast/mast01 -b /bkdir/bkup02
-r MAST,DIR,DIC,USR01,USR02,USR03 -q 1

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-b：バックアップファイル名を指定します。

-r：回復対象のRDエリア（MAST，DIR，DIC，USR01，USR02，USR03）を指定します。

-q：回復対象のRDエリアの世代番号を指定します。

19.3.6　NetBackupを使用したバックアップからRDエリアを回復する場合

ユーザ用RDエリア（RDAREA01，RDAREA02）をバックアップ取得時点に回復します。

pdrstr -m /hirdb/rdarea/mast/mast01 -b host01:POLICY01 -k n -r RDAREA01,RDAREA02

〔説明〕

-m：マスタディレクトリ用RDエリアの先頭のHiRDBファイル名称を指定します。

-b：バックアップファイル名（NetBackupのポリシー名）を指定します。

-k：バックアップファイルの種別を指定します。NetBackupのポリシーを使用するためnを指定します。

-r：回復対象のRDエリアを指定します。

19.3.7　ログポイント情報ファイルを再作成する場合

ログポイント情報ファイルを再作成します。

pdrstr -b /usr/hirdb/pdcopy/backup/backup01 -z /usr/hirdb/pdcopy/logpoint/logpoint01

〔説明〕

-b：入力情報となるバックアップファイル名を指定します。

-z：再作成するログポイント情報ファイル名を指定します。

19.4　コマンドの形式

19.4.1　オプションの形式

必ず指定するオプション，又は指定することが多いオプションを背景色付き太字表示しています。

なお，オプションのフラグ引数をコンマで区切る場合，コンマの前後に空白を入れないでください。空白を入れると，空白以降が無視されます。

(1)　データベースの回復

pdrstr -m〔ホスト名：〕マスタディレクトリ用RDエリアの先頭のHiRDBファイル名
　　 〔-b ｛〔ホスト名：〕バックアップファイル名〔，バックアップファイル名〕…｜〔ホスト名：〕装置記号名〔，装置記号名〕｜〔ホスト名：〕装置グループ名｜〔ホスト名：〕ポリシー名｝〕
　　 〔-p 処理結果出力ファイル名〕
　　 〔-w ソート用ワークディレクトリ名〕
　　 〔-y ソート用ワークバッファサイズ〕
　　 〔-k ｛u｜i｜e｜m｜n｝〕
　　 〔-E EasyMT用MT属性定義ファイル名〕
　　 〔-B EasyMT用入出力バッファ面数〕
　　 〔-v ボリューム名〔，ボリューム名〕…〕
　　 〔-N EasyMTファイル名〕
　　 〔-U ｛バックアップ検索条件開始時刻，バックアップ検索条件終了時刻｜，バックアップ検索条件終了時刻｝〕
　　 〔-g 差分バックアップグループ名〕
　　 〔-K 差分バックアップ管理ファイルを格納するHiRDBファイルシステム領域名〕
　　 〔-q 世代番号
　　　　 〔-x 世代番号〕〕
　　 〔-Y 書き込みバッファサイズ〕
　　 〔-W 実行監視時間〕
　　 〔-I メッセージ出力レベル〔，メッセージ出力間隔〕〕
　　 〔-f 制御文ファイル名※〕
　　 〔-J〕

注※

制御文ファイルに指定するオプションを次に示します。また，制御文ファイルに指定するオプションは，pdrstrコマンド中に直接指定できます。

●制御文ファイルの内容

　　｛｛-l 〔ホスト名：〕アンロードログファイル名〔，アンロードログファイル名〕…
　　　　 ｜-L
　　　　 ｜-d 〔ホスト名：〕アンロードログファイル格納ディレクトリ名〔，アンロードログファイル格納ディレクトリ名〕…｝
　　　｜｛-a
　　　　　｜-c
　　　　　｜-u ユニット識別子〔，ユニット識別子〕…
　　　　　｜-s サーバ名〔，サーバ名〕…
　　　　　｜-r RDエリア名〔，RDエリア名〕…｝
　　　　　　 〔-T ｛回復開始時刻，回復終了時刻｜回復開始時刻｜，回復終了時刻｝〕｝

(2)　ログポイント情報ファイルの再作成

pdrstr -b ｛〔ホスト名：〕バックアップファイル名〔，バックアップファイル名〕…｜〔ホスト名：〕装置記号名〔，装置記号名〕｜〔ホスト名：〕装置グループ名｜〔ホスト名：〕ポリシー名｝
　　 〔-k ｛u｜i｜e｜m｜n｝〕
　　 〔-E EasyMT用MT属性定義ファイル名〕
　　 〔-B EasyMT用入出力バッファ面数〕
　　 〔-v ボリューム名〔，ボリューム名〕…〕
　　 〔-N EasyMTファイル名〕
　　 〔-U ｛バックアップ検索条件開始時刻，バックアップ検索条件終了時刻｜，バックアップ検索条件終了時刻｝〕
　　 〔-W 実行監視時間〕
　　 -z ログポイント情報ファイル名

(3)　他バックアッププログラム連携時のオプション指定可否

オプション

他バックアッププログラム

EasyMT

NetBackup

-m

◎

◎

-b

◎

◎

-l

○

○

-L

○

○

-d

○

○

-p

○

○

-w

○

○

-y

○

○

-k

u

×

×

i

×

×

e

◎※１

×

m

◎※１

×

n

×

◎

-E

○

×

-B

○

×

-v

○

×

-N

○

×

-U

×

○

-g

○

○

-K

○

○

-q

○

○

-x

○

○

-Y

○

○

-W

○

○

-I

○

○

-f

○

○

{-a｜-c｜-u｜-s｜-r}

◎※２

◎※２

-T

○

○

-z

○

○

-J

○

○

（凡例）

◎：必ず指定します。

○：任意に指定できます。

×：指定できません。

注※1

e又はmの，どちらか一つを指定する必要があります。

注※2

-a，-c，-u，-s，又は-rの，どれか一つを指定する必要があります。

19.4.2　オプションの説明

(1)　-m〔ホスト名：〕マスタディレクトリ用RDエリアの先頭のHiRDBファイル名

　　　〜＜識別子：パス名＞

マスタディレクトリ用RDエリアの先頭のHiRDBファイル名を指定します。マスタディレクトリ用RDエリアがあるホストの名称とパス名をコロン（：）で結んで指定してください。システム共通定義のpd_master_file_nameオペランドに指定した名称を指定します。

（例）-m host01:/hirdb_s/rdarea/rdmast

＜規則＞

データベース回復ユティリティを実行したサーバマシン（pdrstrコマンドを入力したサーバマシン）にマスタディレクトリ用RDエリアがある場合は，ホスト名を省略できます。この場合は，パス名だけを指定します。

ホスト名を指定する場合は，システム定義のpdunitオペランドの-xオプションで指定したホスト名を指定してください。

系切り替え機能を使用している場合は，必ず現用系のホスト名を指定してください。

(2)　-b ｛〔ホスト名：〕バックアップファイル名〔，バックアップファイル名〕…｜〔ホスト名：〕装置記号名〔，装置記号名〕｜〔ホスト名：〕装置グループ名｜〔ホスト名：〕ポリシー名｝

　　　〜＜識別子：パス名＞((-k i指定時は167文字以内))

バックアップファイル名，又はNetBackupのポリシー名を指定します。

バックアップファイル名，装置記号名，又は装置グループ名を指定する場合

バックアップファイルがあるホストの名称と，バックアップファイル名，装置記号名，又は装置グループ名をコロン（：）で結んで指定します。バックアップファイル名はパス名で，装置記号名及び装置グループ名は識別子で指定してください。

  （例）-b host01:/usr/pdcopy/backup01

NetBackupのポリシー名を指定する場合

NetBackupを使用する場合は，NetBackupクライアントがあるホストの名称とポリシー名をコロンで結んで指定します。

  （例）-b host01:POLICY01

＜規則＞

データベース回復ユティリティを実行したサーバマシン（pdrstrコマンドを入力したサーバマシン）にバックアップファイルがある場合は，ホスト名を省略できます。この場合，パス名だけを指定します。

ホスト名を指定する場合は，システム定義のpdunitオペランドの-xオプションで指定したホスト名を指定してください。

データベース回復ユティリティを実行したサーバマシン（pdrstrコマンドを入力したサーバマシン）にNetBackupクライアントがある場合は，ホスト名を省略できます。

系切り替え機能を使用している場合は，必ず現用系のホスト名を指定してください。ただし，実際のバックアップファイル又はNetBackupクライアントは，実行系になければなりません。

ログポイント情報ファイルの再作成の場合は，バックアップファイルが複数ファイル又は複数ボリュームの場合でも，先頭ファイル又は先頭ボリュームだけを指定します（複数ファイル又は複数ボリュームが指定されても先頭のものだけ参照します）。

RDエリア単位に個々に取得したバックアップファイルを，複数個同時に指定すると，最初のバックアップファイルだけ認識されます。2個目以降のバックアップファイルは認識されません。

-bオプションに，-M s指定で取得したバックアップファイルを指定した場合は，必ず-l，-L又は-dオプションを指定してください。

-bオプションは-kオプションと次に示す関係があります。

-kオプションの指定

指定できるバックアップファイル名

-k u

通常ファイル名，又はMTのスペシャルファイル名が指定できます。バックアップの取得時，一つのバックアップファイルが複数のファイルにわたって取得された場合，バックアップを構成するすべてのファイル名を作成順に指定してください。

-k i

"HiRDBファイルシステム領域名/HiRDBファイル名"で指定します。バックアップの取得時，一つのバックアップファイルが複数のファイルにわたって取得された場合，バックアップを構成するすべてのファイル名を作成順に指定してください。また，HiRDBファイルシステム名までは大文字，小文字の区別はしませんが，HiRDBファイル名の大文字，小文字の区別はします。

-k e

MTのスペシャルファイル名を指定します。

-k m

MTguideが管理する装置記号名，又は装置グループ名を指定します。装置記号名は，二つまで指定できます。ただし，指定されたものが装置記号名か，又は装置グループ名かのチェックはしません。

-k n

pdcopyで取得したNetBackupのポリシー名を指定します。ホスト名には，NetBackupクライアントがあり，HiRDBがあるホスト名を指定してください。HiRDBが取り出すNetBackupのバックアップは最新のものだけです。

バックアップは，pdcopyコマンドを実行してコマンドの戻り値が0又は4で取得したバックアップを指定してください。

(3)　-l 〔ホスト名：〕アンロードログファイル名〔，アンロードログファイル名〕…

　　　〜＜識別子：パス名＞

バックアップファイルの取得時点以降のアンロードログファイルの名称を指定します。アンロードログファイルがあるホストの名称とパス名をコロン（：）で結んで指定してください。

  （例）-l host01:/usr/pdlogunld/unld01

＜規則＞

-lオプションを指定する場合は，-L，-c，及び-dオプションは指定できません。

データベース回復ユティリティを実行したサーバマシン（pdrstrコマンドを入力したサーバマシン）にアンロードログファイルがある場合は，ホスト名を省略できます。この場合，パス名だけを指定します。

系切り替え機能を使用している場合は，必ず現用系のホスト名を指定してください。ただし，実際のアンロードログファイルは実行系になければなりません。

アンロードログファイルを通常ファイルで作成した場合，アンロードログファイル名には通常ファイルのファイル名を指定してください。また，アンロードログファイルをHiRDBファイルで作成した場合は，アンロードログファイル名には"HiRDBファイルシステム領域名/HiRDBファイル名"を指定してください。このとき，"HiRDBファイルシステム領域名/HiRDBファイル名"は167文字以内にしてください。

＜注意事項＞

アンロードログファイルが複数ある場合，世代の古いものから順にアンロードログファイルの数だけ指定する必要があります。ただし，ホスト名は先頭に1回だけ指定してください。すなわち，すべてのアンロードログファイルは同一ホストになければなりません。

アンロードログファイルを使用して回復する場合，必要なアンロードログファイルをすべて指定する必要があります。必要なアンロードログファイルが足りない場合，メッセージ（KFPR16203-E，KFPR16301-E）が出力され，エラー終了します。

(4)　-L

アンロードレスシステムログ運用の場合に指定します。この指定をすると，システムログファイルが入力情報になり，データベースを回復します。

＜規則＞

このオプションを指定した場合，-bオプションでバックアップファイル名を指定する必要があります。このバックアップファイルは，pdcopyコマンドで-zオプションを指定したファイルでなければなりません。

このオプションを指定する場合は，-l，-c，及び-dオプションは指定できません。

(5)　-d 〔ホスト名：〕アンロードログファイル格納ディレクトリ名〔，アンロードログファイル格納ディレクトリ名〕…

　　　〜＜識別子：パス名＞

回復に必要なすべてのアンロードログファイルが格納されているディレクトリ名を指定します。アンロードログファイルがあるホストの名称とパス名をコロン（：）で結んで指定してください。

＜適用基準＞

回復に必要なアンロードログファイルの個数が多い場合に使用します（例えば，1回のpdrstr実行のコマンドラインに，すべてのアンロードログファイルを指定できないときなど）。

＜規則＞

アンロードログファイル格納ディレクトリ名とディレクトリ下のファイル名を組み合わせたパス名の長さが，1,023バイトを超えないようにしてください。また，指定できるディレクトリ数は，最大128個です。

ディレクトリの直下には，アンロードログファイル以外のファイルは格納してないでください。アンロードログファイル以外のファイルがある場合，そのファイルは無視されます。

このオプションは，-l及び-Lオプションと組み合わせて指定できません。

このオプションを指定した場合，アンロードログファイルを作成順（システムログ割り当て時刻順）に入力するため，マシンの時刻を変更する前後に作成したアンロードログファイルを同一ディレクトリ下に混在させないでください。

このオプションにHiRDBファイルシステム領域は指定できません。

指定したディレクトリ下のアンロードログファイルの入力開始位置（入力対象になるアンロードログファイル）は，バックアップ取得時のバックアップ取得モード，及び回復時のオプションの指定によって変わります。アンロードログファイルの入力開始位置を次に示します。

条件

アンロードログファイルの入力開始位置

更新可能モード（pdcopy -M s）で取得したバックアップファイルを使用する場合

ディレクトリ下のすべてのアンロードログファイルが入力対象となります。

参照可能モード（pdcopy -M r）のバックアップファイル，又は参照・更新不可能モード（pdcopy -M x）のバックアップファイルを使用する場合

バックアップ取得時刻以降にアンロードしたファイルをすべて入力対象とします。

上記入力対象のうち，バックアップ取得時に既に現用でないシステムログファイルを，バックアップ取得後にアンロードする運用の場合は，回復時にそのファイルをディレクトリから除外してください。

なお，時刻がマシン間で異なっていることによって，バックアップ取得開始時刻よりも前に入力が必要なアンロードログファイルがある場合は，-Tオプションで回復開始時刻を指定してください。指定する時刻は，バックアップ出力先ホストと回復対象ホストとの時間差で求めてください。

バックアップ取得時，及び回復時に-qオプションを指定していて，バックアップ取得時と回復時で-qオプションに指定している世代番号が一致していない場合

ディレクトリ下のすべてのアンロードログファイルが入力対象となります。

回復時に-x cを指定している場合

バックアップファイルを使用しないで，アンロードログファイルだけを使用してRDエリアを回復する場合

ディレクトリ下のすべてのアンロードログファイルが入力対象となります。

回復時に-Tオプションで回復開始時刻を指定している場合

回復開始時刻以降のアンロードログファイルが入力対象となります。

インメモリRDエリアを回復する場合

インメモリRDエリアのバックアップとアンロードログファイルを使用して回復する場合

インメモリデータバッファとインメモリRDエリアの同期を取った時刻以降にアンロードしたファイルをすべて入力対象とします。

インメモリRDエリアが複数ある場合，その中で同期を取った時刻が一番古い時刻以降にアンロードログしたファイルが入力対象となります。

例えば，バックアップファイル中にRDエリアRD01，RD02のバックアップがあり，RD01の同期時刻が2007年12月15日13時45分23秒で，RD02の同期時刻が同じ日の14時5分55秒の場合，2007年12月15日13時45分23秒以降にアンロードしたファイルが入力対象となります。

上記入力対象のうち，上記の同期化時に既に現用でないシステムログファイルを同期後にアンロードする運用の場合は，回復時にそのファイルをディレクトリから除外してください。

バックアップファイルを使用しないで，アンロードログファイルだけを使用して回復する場合

前記と同じです。

インメモリRDエリアとそうでないRDエリアを一緒に回復する場合

ディレクトリ下のすべてのアンロードログファイルが入力対象となります。

指定したディレクトリに，ログレスモード又は更新前ログ取得モードでUAPやユティリティを実行したときのアンロードログファイルがあるとエラーになります。この場合，ログレスモード又は更新前ログ取得モードでの実行以降に取得したバックアップ開始時刻を-Tオプションに指定して，ログレスモード又は更新前ログ取得モードのシステムログを除外する必要があります。

指定ディレクトリがデータベース回復ユティリティを実行したサーバマシン（pdrstrコマンドを入力したサーバマシン）にあり，回復に必要なすべてのアンロードログファイルを指定ディレクトリに格納している場合は，ホスト名を省略できます。

(6)　-p 処理結果出力ファイル名

　　　〜＜パス名＞

データベース回復ユティリティの処理結果を出力するファイル名を指定します。

（例）-p /usr/pdrstr/list01

＜規則＞

データベース回復ユティリティを実行したサーバマシン（pdrstrコマンドを入力したサーバマシン）のパス名を指定します。

このオプションを省略した場合，データベース回復ユティリティを実行したサーバマシンの次に示すディレクトリに処理結果出力ファイルを作成します。

-pオプションの指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIR※の指定

あり

なし

あり

-pオプションに指定したディレクトリ

なし

pd_tmp_directoryに指定したディレクトリ

TMPDIRに指定したディレクトリ

/tmpディレクトリ

注※　コマンド実行環境の環境変数の指定

出力先はKFPR26222-Iメッセージに表示されます。

このオプションの指定に関係なくエラーメッセージはシステムログファイル及び標準出力に，最終処理結果は標準出力に出力されます。ただし，システムログファイルと標準出力に出力されるメッセージの順序は必ずしも同じではありません。

(7)　-w ソート用ワークディレクトリ名

　　　〜＜パス名＞

-lオプション，-Ｌオプション，及び-dオプションを指定した場合に，一時ファイルを作成するディレクトリの名称を指定します。回復対象のRDエリアが複数のサーバマシンにある場合，指定したディレクトリが各サーバマシンになければなりません。省略した場合，次のディレクトリが仮定されます。

-wオプションの指定

システム定義のpd_tmp_directoryオペランドの指定

あり

なし

環境変数TMPDIR※の指定

あり

なし

あり

-wオプションに指定したディレクトリ

なし

pd_tmp_directoryに指定したディレクトリ

TMPDIRに指定したディレクトリ

/tmpディレクトリ

注※　

init（OSのプロセス）から起動されたプロセスサーバプロセス（pdprcd）に設定される環境変数

ソート用ワークディレクトリ下の空き領域は，次の値以上にする必要があります。

a＋（a÷130×36）

a：max｛min（入力ログ総容量，1536000000），シンクポイントの最大間隔出力ログ量｝（単位はバイト）

入力ログ総容量：

pdrstr実行時に指定するアンロードログファイル，又はシステムログファイルの総容量です。

シンクポイントの最大間隔出力ログ量：

前回のシンクポイントから新たに取得されるシンクポイントまでに出力されるログ量です。次の計算式で求められます。

シンクポイントダンプ有効化処理のスキップ回数の最大値

×（pd_log_sdintervalで指定したシステムログ出力量の値

×↑pd_log_max_data_sizeの値÷pd_log_rec_lengの値↑

×pd_log_rec_lengの値）

(8)　-y ソート用ワークバッファサイズ

　　　〜＜符号なし整数＞((256〜2097151))《1024》

-lオプション，-Ｌオプション，及び-dオプションを指定したときに使用するワークバッファサイズを，キロバイト単位で指定します。この指定値が少ないと，KBLS300-Eメッセージが出力され，データベース回復プロセスが異常終了します。指定値の目安を次に示します。

a：max｛min（入力ログ総容量，1536000000），シンクポイントの最大間隔出力ログ量｝（単位はバイト）

入力ログ総容量：

pdrstr実行時に指定するアンロードログファイル，又はシステムログファイルの総容量です。

シンクポイントの最大間隔出力ログ量：

前回のシンクポイントから新たに取得されるシンクポイントまでに出力されるログ量です。次の計算式で求められます。

シンクポイントダンプ有効化処理のスキップ回数の最大値

×（pd_log_sdintervalで指定したシステムログ出力量の値

×↑pd_log_max_data_sizeの値÷pd_log_rec_lengの値↑

×pd_log_rec_lengの値）

(9)　-k ｛u｜i｜e｜m｜n｝

バックアップファイルの種別を指定します。

u ：

通常ファイルのバックアップを入力する場合，又はEasyMT，NetBackupを使用しないでMTのバックアップを入力する場合に指定します。バックアップファイルがマルチボリュームの場合は，指定できません。

i ：

HiRDBファイルシステム領域に取得したバックアップを入力する場合に指定します。実行系システムと待機系システムとでバックアップファイルを共用し，実行系システムで取得したバックアップを使用して待機系システムを回復する場合に有効です。

e ：

EasyMTを使用してMTのバックアップを入力する場合に指定します。バックアップファイルがマルチボリュームの場合は，指定できません。この指定は，EasyMTが必要です。

m ：

EasyMT及びMTguideを使用してMTのバックアップを入力する場合に指定します。バックアップファイルがマルチボリュームの場合は，必ず指定します。この指定は，EasyMT及びMTguideが必要です。

n ：

NetBackupを使用してデータベースを回復する場合に指定します。この場合，-bオプションにはNetBackupのポリシー名を指定します。

(10)　-E EasyMT用MT属性定義ファイル名

　　　〜＜パス名＞

EasyMT用のMT属性定義ファイルのファイル名を指定します。このファイルは，データベース回復ユティリティを実行したサーバマシン（pdrstrコマンドを入力したサーバマシン）に接続されていなければなりません。-Eオプションの指定は，-kオプションでe又はmが指定されたバックアップファイルに対して有効となります。有効となる属性を次に示します。

buffno：入出力バッファ面数

magazin：MT装置割り当てパターン

job：業務名称

expire：満了日付

preserve：保存日数

ただし，-Bオプションを指定した場合，入出力バッファ面数については-Bオプションの指定が優先されます。

このファイルの指定内容は，EasyMT実行時にチェックされます。

(11)　-B EasyMT用入出力バッファ面数

　　　〜＜符号なし整数＞((1〜255))

MTの入出力に使用する入出力バッファの面数を指定します。指定値を大きくすれば性能が向上しますが，その分メモリ所要量も大きくなります。

＜規則＞

-Bオプションの指定は，-kオプションでe又はmが指定されたバックアップファイルに対して有効となります。

-Eオプションと-Bオプションを共に省略した場合は，EasyMTの仮定値が仮定されます。

(12)　-v ボリューム名〔，ボリューム名〕…

　　　〜＜英数字＞((最大6文字))

バックアップを取得したMTのボリューム名称を指定します。MTデッキにマウントされたボリュームが指定値と異なっている場合は，エラーとなります。また，指定したボリュームの数よりバックアップのボリュームの数が多い場合は，指定したボリューム数以降の名称はチェックされません。この指定を省略した場合は，ボリューム名称のチェックはされません。

この指定は，-kオプションでe又はmを指定したバックアップファイルに対して有効になります。ボリューム名を複数指定する場合は，-kオプションでmを指定する必要があります。また，ボリューム名は，重複しないようにしてください。

ログポイント情報ファイルの再作成の場合は，複数ボリュームのときでも先頭ボリュームだけを指定します（複数ボリュームを指定しても先頭のものだけ参照します）。

(13)　-N EasyMTファイル名

　　　〜＜英数字＞((最大17文字))

バックアップファイル作成時に付けたファイル名を指定します。この指定は，-kオプションでe又はmを指定したバックアップファイルに対して有効になります。指定値が入力されたバックアップファイルと異なっている場合は，エラーとなります。

なお，バックアップファイルは，必ずマウントされたMTの先頭から（ファイル順序が１から）作成されていなければなりません。

(14)　-U ｛バックアップ検索条件開始時刻，バックアップ検索条件終了時刻｜，バックアップ検索条件終了時刻｝

同一ポリシー名で取得したバックアップ中の，任意の時点で取得したバックアップから回復したい場合に指定します。このオプションは，NetBackup連携機能使用時（-k n指定時）に指定します。それ以外の場合に指定しても無効となります。

バックアップ検索条件開始時刻，及びバックアップ検索条件終了時刻の両方を指定した場合，指定した期間内での最新のバックアップを使用して回復します。バックアップ検索条件終了時刻だけを指定した場合，終了時刻時点でのバックアップを使用して回復します。

＜規則＞

このオプションを省略した場合，同一ポリシー名で取得したバックアップ中の最新のバックアップを使用します。

バックアップの取得日時は，bpimagelistコマンド（-policyオプション指定）で参照できます。

バックアップ検索条件開始時刻及びバックアップ検索条件終了時刻は，日付と時刻を_（アンダースコア）で結んで指定します。形式を次に示します。時刻を省略した場合，開始時刻は000000が，終了時刻は235959が仮定されます。

　-U YYYYMMDD〔_hhmmss〕，YYYYMMDD〔_hhmmss〕

YYYY：年　〜＜符号なし整数＞((1990〜2037))

西暦で指定します。

MM ：月　〜＜符号なし整数＞((01〜12))

DD ：日　〜＜符号なし整数＞((01〜31))

hh ：時　〜＜符号なし整数＞((00〜23))

mm ：分　〜＜符号なし整数＞((00〜59))

ss ：秒　〜＜符号なし整数＞((00〜59))

終了時刻だけを指定する場合は，コンマ（，）に続けて終了時刻を指定します。

(15)　-g 差分バックアップグループ名

　　　〜＜英数字＞((1〜30))

差分バックアップ機能を使用する場合，pdcopyで指定した差分バックアップグループ名を指定します。

(16)　-K 差分バックアップ管理ファイルを格納するHiRDBファイルシステム領域名

　　　〜＜パス名＞

差分バックアップ機能を使用する場合，pdcopyで指定した差分バックアップ管理ファイルを格納するHiRDBファイルシステム領域名を指定します。

"差分バックアップ管理ファイルを格納するHiRDBファイルシステム領域名/差分バックアップグループ名"が，167文字以内になるようにしてください。

(17)　-q 世代番号

　　　〜＜符号なし整数＞((0〜10))

インナレプリカ機能を使用している場合，回復対象のRDエリアの世代番号を指定します。0を指定した場合はオリジナルRDエリアが対象となり，1〜10を指定した場合は指定した世代のレプリカRDエリアが対象となります。

＜規則＞

このオプションは，-rオプションと同時に指定してください。-a，-c，-u，及び-sオプションとは同時に指定できません。

このオプションは，-rオプションで指定したオリジナルRDエリアが属するインナレプリカグループに対して，世代番号で示される世代のレプリカRDエリアを処理対象にする場合に指定してください。

バックアップ取得時の-qオプションの指定と，回復時の-qオプションの指定の関係を次に示します。

回復時

バックアップ取得時

-qオプションを省略

-qオプションを指定

-qオプションを省略

バックアップがあるRDエリアを回復します。バックアップがないRDエリアについては回復しません。

-qオプションを指定

バックアップがあるRDエリアを回復します。バックアップがないRDエリアについては回復しません。

バックアップがなくても，同じインナレプリカグループのRDエリアのバックアップがある場合は，そのバックアップから回復します。

(18)　-x 世代番号

　　　〜＜符号なし整数，又は英数字＞((0〜10，又はc))

インナレプリカ機能を使用している場合，回復対象のRDエリアが複数世代にわたって更新されているときに，そのログに対応するRDエリアの世代番号を指定します。このオプションは-qオプションと同時に指定してください。

0：

オリジナルRDエリアを対象とします。

1〜10：

指定した世代のレプリカRDエリアを対象とします。例えば，世代1〜世代2のRDエリアのログを使用して世代1のRDエリアを回復する場合，-qオプションには1を，-xオプションには2を指定します。

c：

システムログファイル中の各時点でカレントになっているRDエリアを対象とします。この場合，世代番号は意識しないで，システムログファイル中の各時点でカレントになっているRDエリアのログを使用して回復します。

＜規則＞

このオプションで指定した世代番号のRDエリアが定義されていない場合，エラー終了します。

-qオプションと-xオプションに同じ世代番号を指定してもエラーにはなりません。

cを指定した場合，3世代以上にわたって更新される場合や，複数世代が同時に更新される場合でも，各時点でカレントになっているRDエリアのログを使用して回復できます。なお，カレントの切り替え時は，切り替え直前のRDエリアと切り替え直後のRDエリアとで，内容が一致している必要があります（データだけでなく，ファイル内の配置も一致している必要があります）。

cを指定する場合，バージョン07-00以降のHiRDBで出力されたログでなければなりません。また，バージョン07-00のHiRDBにバージョンアップする場合，バージョンアップする前に-a指定のpdcopyで全RDエリアのバックアップを取得する必要があります。

(19)　-Y 書き込みバッファサイズ

　　　〜＜符号なし整数＞((4〜131072))

データベースの回復時に，回復データを書き込むときのバッファサイズをキロバイト単位で指定します。このオプションを指定することで，一度に書き込むデータ量が増えるため，書き込み回数を削減できます。

＜適用基準＞

次の適用条件に該当する場合，性能改善が見込めるため，指定することをお勧めします。

回復に使用するデータ

適用条件

差分バックアップファイル

前回の差分バックアップ取得後のデータ更新が，追加（INSERT文）だけ，又は全データ削除（DELETE文，PURGE TABLE文）を行っている場合。

アンロードログファイル又はシステムログファイル

データベースへの更新業務で，主なデータ更新が追加（INSERT文）の場合。

＜指定値の目安＞

指定値として，1024〜2048を指定することをお勧めします。

指定値の目安は，データベースの回復対象となる全RDエリアのページ長の公倍数となります。

＜規則＞

このオプションを省略した場合，次の値が仮定されます。

・差分バックアップファイル，又はアンロードログファイル若しくはシステムログファイルを使用した回復の場合は，各回復対象RDエリアのページ長

・上記以外の場合は60

回復対象RDエリア中の最大ページ長より小さい値を指定した場合，その指定は無視され，オプション省略時の仮定値が適用されます。

(20)　-W 実行監視時間

実行監視時間　〜＜符号なし整数＞((0〜3600))

データベース回復ユティリティの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，このオプションを省略した場合は，システム共通定義のpd_cmd_exec_timeオペランドの指定値に従います。

(21)　-I メッセージ出力レベル〔，メッセージ出力間隔〕

データベース回復ユティリティの稼働状況を確認するために指定します。次の四つのメッセージを出力します。

KFPR26294-I：回復を行うRDエリア一つに対して一つ表示します※１。

KFPR26295-I：RDエリアがメッセージ出力間隔を経過しても回復実行中の場合に，メッセージ出力間隔ごとに1回表示します※１。

KFPR26296-I：ログレコードを読み込みソートに入力する際に1回表示します※１※２。

KFPR26297-I：ログレコードをソートするごとに1回表示します※１※２。

注※1

このメッセージは，-l，-d，-Lオプションを指定している場合，サーバ単位にログを1.5ギガバイト使用して，回復を行うごとに表示します。

注※2

このメッセージは，-l，-d，-Lオプションを指定している場合，回復に使用するログが存在する場合だけ表示します。

これらのメッセージを確認することで，無応答となっていないことを確認できます。

メッセージ出力レベル　〜＜符号なし整数＞｛0｜1｝

稼働状況を確認するためのメッセージを出力するかどうかを指定します。

0：稼働状況を確認するためのメッセージを出力しません。

1：稼働状況を確認するためのメッセージを出力します。

メッセージ出力間隔　〜＜符号なし整数＞((1〜300)) ≪60≫

メッセージ出力間隔を，分単位で指定します。この指定によって，KFPR26295-Iメッセージの出力間隔を変更できます。出力間隔を省略値から変更したい場合に指定してください。

(22)　-f 制御文ファイル名

　　　〜＜パス名＞

制御文ファイル名を指定します。

（例）-f /usr/pdrstr/cont01

制御文ファイルには「オプションの形式」の制御文ファイルに記載のオプションが指定できます。なお，これらのオプションは，pdrstrコマンド中に直接指定することもできます。

＜制御文ファイルの形式＞

　｛｛-l フラグ引数｜-L｜-d フラグ引数｝｜｛-a｜-c｜-u フラグ引数｜-s フラグ引数｜-r フラグ引数｝〔-T フラグ引数〕｝
　〔｛｛-l フラグ引数｜-L｜-d フラグ引数｝｜｛-u フラグ引数｜-s フラグ引数｜-r フラグ引数｝〔-T フラグ引数〕｝〕
　〔｛｛-l フラグ引数｜-L｜-d フラグ引数｝｜｛-u フラグ引数｜-s フラグ引数｜-r フラグ引数｝〔-T フラグ引数〕｝〕
　　　　　　　　　　　　　　　　　・
　　　　　　　　　　　　　　　　　・
　　　　　　　　　　　　　　　　　・

＜注意事項＞

制御文ファイルは，データベース回復ユティリティを実行したサーバマシン（pdrstrコマンドを入力したサーバマシン）に作成してください。

制御文ファイル中には，回復対象のRDエリアを指定するオプションと-Ｔオプションの組み合わせを1行で指定してください。

制御文ファイルの1行は，32,768バイト以内で指定してください。

制御文ファイル中にはコメントを記述できます。ただし，コメントだけの行は記述できません。

各オプションフラグについては，それぞれ対応するオプションの説明を参照してください。

-u，-s，又は-rオプションを複数行指定する場合は，1行目に指定したオプションフラグだけ2行目以降も指定できます（-a及び-cオプションは除きます）。例えば，1行目に-uオプションを指定した場合，2行目以降は-uオプションだけ指定できます。

-lオプションを複数行指定した場合，最後の指定が有効となります。また，-dオプションも同様です。

コマンドライン中に指定したオプションは，制御文ファイル中には指定できません。ただし，-Tオプションはコマンドライン及び制御文ファイルの両方に指定できます。この場合，制御文ファイル中で-Tオプションを指定していない項目に対しては，コマンドラインの-Tオプションの指定が有効となります。

コマンドライン中に指定したオプションの組み合わせによっては，制御文ファイルを指定できないことがあります。オプションの組み合わせと制御文ファイルの指定可否を次に示します。

-l，-L，又は-dオプションの指定

-a，-c，-u，-s，又は-rオプションの指定

なし

あり

なし

○※１

○※２

あり

○※３

×

（凡例）

○：指定できます。

×：指定できません。

注※1

制御文ファイルに指定できるオプションを，すべて指定できます。

注※2

-l，-L，又は-dオプションを指定できます。

注※3

-a，-c，-u，-s，又は-rオプションと，-Tオプションを指定できます。

＜正しい制御文の例＞

 -r pdbuser1 -T 20040809,20040810
 -r pdbuser2 -T 20040809
 -l /unldlog/unld01,/unldlog/unld02,
 /unldlog/unld03,/unldlog/unld04

アンロードログファイルunld01，unld02，unld03，及びunld04に格納されているデータベース更新履歴を使用してデータベースを回復します。このとき，RDエリアpdbuser1は，2004年8月9日0時0分0秒から2004年8月10日24時59分59秒までのデータベース更新履歴を使用して回復します。また，RDエリアpdbuser2は，2004年8月9日0時0分0秒以降のデータベース更新履歴を使用して回復します。

＜誤った制御文の例1＞

 -r pdbuser1 -T 20040809,20040810
 -r pdbuser2 -T 20040809 -l /unldlog/unld01,/unldlog/unld02   ←エラー

-l，-L，又は-dオプションを指定した行に，ほかのオプションは指定できません。

＜誤った制御文の例2＞

 -r pdbuser1 -T 20040809,20040810
 -r pdbuser2 -T 20040809
 -l /unldlog/unld01
 ,/unldlog/unld02   ←エラー

1行に指定できる文字列長には上限（改行コードを含んで32,768バイト）があるため，-l，又は-dオプションの引数が長くなる場合には，オプションの途中で改行ができます。ただし，改行ができる箇所は，アンロードログファイルのパス名を区切っているコンマ（,）の後だけとなります。-l，又は-dオプションを指定した行がコンマ以外で終わっている場合，そこを1行の終わりと判断します。

(23)　-a

全RDエリア（ただし，リスト用RDエリア及び一時表用RDエリアを除きます）を回復する場合に指定します。

＜規則＞

制御文ファイルに指定する場合，-aオプションを指定したときは，制御文は1行しか指定できません。

レプリカRDエリアが定義されている場合，レプリカRDエリアも回復対象になります。

(24)　-c

-bオプションで指定したバックアップファイル中の全RDエリア（ただし，リスト用RDエリアを除きます）を回復する場合に指定します。

＜規則＞

制御文ファイルに指定する場合，-cオプションを指定したときは，制御文は1行しか指定できません。

-cオプションを指定する場合は，必ず-bオプションも指定してください。ただし，差分バックアップ機能を使用する場合は，-bオプションを指定する必要はありません（-bオプションを指定すれば手動回復となり，-bオプションを省略すれば自動回復となります）。

-cオプションを指定する場合は，-lオプションは指定しないでください。

バックアップファイル中にレプリカRDエリアのバックアップがある場合，その取得元の世代に対して回復をします。

pdcopyで-Jオプションを指定してバックアップを取得した場合にKFPR26063-Iメッセージが出力されているときは，そのバックアップを使用して回復しても正常終了しません（処理がスキップされたRDエリアも回復対象となるため）。

(25)　-u ユニット識別子〔，ユニット識別子〕…

　　　〜＜識別子＞((4文字))

ユニット下の全RDエリア（ただし，リスト用RDエリア及び一時表用RDエリアを除きます）を回復する場合に，回復対象のユニット識別子を指定します。

＜規則＞

ユニット識別子を複数指定する場合は，重複しないようにしてください。

制御文ファイルに指定する場合，ユニット識別子は制御文全体で一意にしてください。

レプリカRDエリアが定義されている場合，レプリカRDエリアも回復対象になります。

(26)　-s サーバ名〔，サーバ名〕…

　　　〜＜識別子＞((最大8文字))

サーバ下の全RDエリア（ただし，リスト用RDエリア及び一時表用RDエリアを除きます）を回復する場合に，回復対象のサーバ名を指定します。

＜規則＞

サーバ名を複数指定する場合は，重複しないようにしてください。

制御文ファイルに指定する場合，サーバ名は制御文全体で一意にしてください。

レプリカRDエリアが定義されている場合，レプリカRDエリアも回復対象になります。

(27)　-r RDエリア名〔，RDエリア名〕…

　　　〜＜識別子＞((最大30文字))

回復対象のRDエリア名を指定します。

＜規則＞

RDエリア名の指定方法については，「運用コマンド，ユティリティでのRDエリアの指定」を参照してください。

ただし，制御文ファイルに指定したRDエリア名が重複していた場合は次のとおり処理されます。

・直接指定したRDエリア名が重複した場合

次のように指定すると，KFPR26007-Eエラーになります（下線部分が重複部分です）。

   -r LOB1,USER1 -T 20081125_000000,20081125_240000
   -r DDIC,USER1 -T 20081126_000000,20081126_240000

・一括指定したRDエリア名が重複した場合

次のように指定すると，最初に指定した値が有効になります（下線部分が重複部分です）。

   -r LOB1,USER* -T 20081125_000000,20081125_240000…有効
   -r DDIC,USER* -T 20081126_000000,20081126_240000

・直接指定したRDエリア名と一括指定したRDエリア名が重複した場合

次のように指定すると，USER1に対しては直接指定での指定値が有効になります（下線部分が重複部分です）。

   -r LOB1,USER1 -T 20081125_000000,20081125_240000…有効
   -r DDIC,USER* -T 20081126_000000,20081126_240000

リスト用RDエリア，及び一時表用RDエリアは指定できません。

制御文ファイルにRDエリア名を指定する場合の留意事項を次に示します。

正規表現を使わない場合の記述方法

正規表現を使う場合の記述方法

RDエリア名を英小文字で指定する場合，又はRDエリア名に空白が含まれる場合は，全体を引用符（"）で囲みます。

正規表現では英小文字は英小文字で，英大文字は英大文字で指定します。

-qオプションを指定して，同時に-rオプションを指定する場合で，レプリカ定義のあるRDエリアを指定するときは，オリジナルRDエリアを指定してください。

-rに指定するRDエリアと，-qに指定する世代番号の組み合わせによって，次の表のように回復可否が異なります。

表19‒2　-rに指定するRDエリアと-qに指定する世代番号の組み合わせによる回復可否

-rに指定するRDエリア

-qの指定値

回復可否

レプリカ定義なし

ユーザ用RDエリア（一時表用RDエリアを除く），又はユーザLOB用RDエリア

0

○

1〜10

○※

リスト用RDエリア，又は一時表用RDエリア

0

×

1〜10

×

上記以外のRDエリア

0

○

1〜10

○

レプリカ定義あり

オリジナルRDエリア

0

○

1〜10

○

レプリカRDエリア

0

×

1〜10

×

（凡例）

○：複写できます。

×：複写できません。

注※

直接指定の場合は，KFPR26262-Wが出力され，回復処理が続行されます。

一括指定の場合は，メッセージが出力されずに，回復処理が続行されます。

(28)　-T ｛回復開始時刻，回復終了時刻｜回復開始時刻｜，回復終了時刻｝

範囲指定の回復をする場合に指定します。

-l，-d，又は-Lオプションを指定した場合に，データベース回復時の回復対象となる先頭のログの出力時刻と最終のログの出力時刻を指定します。

＜規則＞

-l，-d，又は-Lオプションを指定した場合にこのオプションを省略したときは，システムログファイル又はアンロードログファイルの最初のログの出力時刻と最終のログの出力時刻が仮定されます。

-l，-d，又は-Lオプションを指定していない場合，このオプションを指定しても無視されます。ただし，差分バックアップ機能を使用する場合は指定すると有効となります。

回復開始時刻は，回復終了時刻よりも前の時刻を指定してください。回復終了時刻よりも後の時刻を指定した場合はエラーとなり，処理を終了します。また，このオプションを指定した場合は回復開始時刻又は回復終了時刻のどちらかは必ず指定してください。

回復開始時刻及び回復終了時刻は，日付と時刻を_（アンダースコア）で結んで指定します。形式を次に示します。時刻を省略した場合，回復開始時刻は000000が，回復終了時刻は235959が仮定されます。

　-T YYYYMMDD〔_hhmmss〕，YYYYMMDD〔_hhmmss〕

YYYY：年　〜＜符号なし整数＞((1990〜2105))

西暦で指定します。

MM ：月　〜＜符号なし整数＞((01〜12))

DD ：日　〜＜符号なし整数＞((01〜31))

hh ：時　〜＜符号なし整数＞((00〜23))

mm ：分　〜＜符号なし整数＞((00〜59))

ss ：秒　〜＜符号なし整数＞((00〜59))

回復終了時刻だけを指定する場合は，コンマ（，）に続けて回復終了時刻を指定します。また，回復開始時刻だけを指定する場合は，回復開始時刻の後にコンマを指定しないでください。

＜注意事項＞

範囲指定の回復をする場合，サーバマシンによって時間が異なるので，範囲指定をするRDエリアがあるサーバマシンの時刻を指定してください。

バックアップファイルを使用して範囲指定の回復をする場合，回復開始時刻は指定する必要はありません。指定した場合は無視され，バックアップ開始時刻が仮定されます。また，回復終了時刻にはバックアップ取得終了時刻以降の値を指定してください。

一つのトランザクションが更新した複数のRDエリアを，RDエリア単位の範囲指定の回復をする場合，回復終了時刻にはトランザクション終了時刻（同期点）以降の値を指定してください。トランザクション終了時刻より前の値を指定した場合はエラーとなります。この場合，再度正しい時刻（トランザクション終了時刻以降）を指定する必要があります。

-Tオプションと，制御文ファイル中の-rオプションに-Tオプションを指定した例を次に示します。

＜コマンドの指定＞

　pdrstr …
　　　　 -T X1，Y1
　　　　 …
　　　　 -f 制御文ファイル1

＜制御文ファイル１の内容＞

　-r pduser1
　-r pduser2 -T X2,Y2
　-r pduser3 -T X3
　-r pduser4 -T ,Y4

データベース回復ユティリティ（pdrstr）を複数回に分けて実行する場合は，関連するすべてのRDエリアの回復開始時刻及び回復終了時間を合わせてください。関連するすべてのRDエリアの詳細については，マニュアル「HiRDB システム運用ガイド」の「同時にバックアップを取得する必要があるRDエリア」を参照してください。

(29)　-z ログポイント情報ファイル名

　　　〜＜パス名＞

ログポイント情報ファイルを再作成する場合，そのファイル名を指定します。このファイルはpdrstrコマンドを入力したホスト上に作成されます。

＜規則＞

このオプションを指定した場合，-bオプションでバックアップファイル名を指定する必要があります。この時に指定するバックアップファイルはpdcopyコマンドで-zオプションを指定して取得したものでなければなりません。

ログポイント情報ファイル名は，/（ルート）で始まる絶対パス名を指定してください。既にファイルがある場合，ユティリティはこのファイルを削除してから再作成します。

(30)　-J

このオプションは，マスタディレクトリ用RDエリアの回復漏れ確認機能による，警告メッセージ（KFPR26298-W）の出力を抑止する場合に指定してください。

なお，このオプションを指定する場合は，回復対象としてマスタディレクトリ用RDエリアを回復することをすでに計画しているときや，マスタディレクトリ用RDエリアに対する更新が行われた操作で更新したRDエリアとは関係のないRDエリアを回復するときに指定してください。

19.5　注意事項

データベース回復中は，回復対象のRDエリアに対してほかのユーザはアクセスできません。

データベース初期設定ユティリティを実行する前のアンロードログは，データベース回復ユティリティを実行するときに指定しないでください。指定した場合，動作は保証できません。

データ連動の対象となる抽出側データベースを回復する場合，データベースのバックアップとバックアップ取得以降のログを基にして回復してください。それ以外の方法でデータベースを回復すると，抽出側と反映側のデータベースの内容が不整合になります。

データベース回復ユティリティの実行中に，電源断又はkillコマンドで実行が中断された場合，HiRDBファイルシステム領域が壊れる場合があります。pdflsコマンドを実行して矛盾が検知された場合は，次に示すどちらかの手順で回復してください。

pdfmkfsコマンドでHiRDBファイルシステム領域を再度作成し，格納していたHiRDBファイルはRDエリアごとに回復ユティリティを実行します。

pdfbkupコマンド及びpdfrstrコマンドを実行して，HiRDBファイルシステム領域のバックアップとリストアをします。

EasyMTとJP1/Magnetic Tape Accessの両方がインストールされている場合，JP1/Magnetic Tape Accessを起動します。

データベース回復ユティリティの最大同時実行数は，システム共通定義のpd_utl_exec_modeオペランドの指定値によって異なります。

pd_utl_exec_mode=0の場合

最大同時実行数は32です。

pd_utl_exec_mode=1の場合

最大同時実行数はpd_max_usersオペランドの指定値です。

pdcopyで-Jオプションを指定してバックアップを取得した場合に，処理がスキップされたRDエリアがあるときは，そのバックアップを使用して回復しても処理をスキップしたRDエリアは回復されません。

バックアップファイル（-bオプション）を指定しないでアンロードログファイルを使用（-l又は-dオプション指定）して回復する場合，事前にRDエリアをバックアップ取得時点の状態に回復しておく必要があります。この場合，pdcopy又はほかの製品のバックアップ機能を使用して取得したバックアップファイルを使用します。

なお，一度回復に使用したアンロードログファイルは，連続で同じRDエリアの回復には使用できません。再度やり直す場合は，バックアップファイルから回復してください。

pdrstrのリターンコードを次に示します。

0：正常終了（すべての回復に成功した，又はKFPR26298-Wメッセージを出力しているがすべての回復に成功しました）

4：警告終了（回復処理は正常終了しましたが，回復処理に関係のない警告レベルのエラーが発生しました）

8：異常終了（回復処理中にエラーが発生しました。エラー要因を取り除き，再度回復を実行してください）

12：異常終了（すべてのRDエリアの回復に失敗しました。エラー要因を取り除き，再度回復を実行してください）

ログ同期方式のリアルタイムSANレプリケーションを適用している場合，業務サイトでpdrstrを実行したときは，システムログ適用化を実施してください。システムログ適用化については，マニュアル「HiRDB ディザスタリカバリシステム　構築・運用ガイド」を参照してください。

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，pdrstrの制御文ファイルには，BOMを持つファイルを使用できます。なお，pdrstrの制御文ファイルとしてBOMを持つファイルを使用しても，BOMは読み飛ばされます。また，pdrstrで出力されるファイルにはBOMは付きません。

時刻を遅らせた後で障害が発生した場合のデータベースの回復については，マニュアル「HiRDB システム運用ガイド」を参照してください。

マスタディレクトリ用RDエリア以外のRDエリアを回復する場合，マスタディレクトリ用RDエリアの更新時刻より前に取得したバックアップから回復するときに，KFPR26298-Wメッセージを出力します。RDエリアの整合性に問題がないか確認してください。OSの時刻を変更したり，サーバマシン間でOSの時刻がずれていたりする場合は，警告メッセージが出力されることがあります。この場合は，この警告メッセージを無視してください。

19.6　データベース回復ユティリティの処理結果リスト

データベース回復ユティリティの処理結果リストの出力例を次に示します。

pdrstr(VV-RR)     ***** DB RECOVERY *****   1995-05-16 11:35:35 [1] utl3 [2]
*** DB RECOVERY INFORMATION LIST ***
---------------------------------------------------------
<<RDAREA INFORMATION>>
  UNIT NAME  :      un16 [3] SERVER NAME:sds [4]
  RDAREA NAME: pdbuser01 [5]
  RDAREA ID :          4 [6] ATTRIBUTE : USER [7]      PAGE SIZE :  4096 [8]
  RECOVERY STARTED AT : 1995-05-16 11:34:19 [9]
  RECOVERY ENDED AT   : 1995-05-16 11:34:46 [10]
 <REPLICA RDAREA INFOMATION>
  ORIGINAL RDAREA NAME : pdbuser01 [19]
  REPLICA RDAREA GENERATION NO : 0 [20]
<<BACKUP INFORMATION>>
  BACKUP STARTED AT : 1995-05-16 11:11:42 [11]
  BACKUP ENDED AT   : 1995-05-16 11:11:42 [12]
<<LOG INFORMATION>>
  1ST LOG    : 1995-05-16 10:57:48 [13]
  LAST LOG   : 1995-05-16 10:58:26 [14]
  LOG COUNT  :         42 [15]
 <FILE INFORMATION>
 1 /dbarea/area1/rdmt06 [16]
   EXTENT COUNT :   2 [18]
   PAGE NUMBER  :    124 [17]
 2 /dbarea/area1/rdmt07 [16]
   EXTENT COUNT :   2 [18]
   PAGE NUMBER  :    108 [17]
--------------------------------------------------------
<<RDAREA INFORMATION>>
  UNIT NAME  :      un16 SERVER NAME:sds
  RDAREA NAME: pdbuser03
  RDAREA ID :           5 ATTRIBUTE : USER            PAGE SIZE :  4096
  RECOVERY STARTED AT : 1995-05-16 11:34:46
  RECOVERY ENDED AT   : 1995-05-16 11:35:10
 <REPLICA RDAREA INFOMATION>
  ORIGINAL RDAREA NAME : pdbuser03
  REPLICA RDAREA GENERATION NO : 0
<<BACKUP INFORMATION>>
  BACKUP STARTED AT : 1995-05-16 11:11:42
  BACKUP ENDED AT   : 1995-05-16 11:11:43
<<LOG INFORMATION>>
  1ST LOG    : 1995-05-16 10:59:50
  LAST LOG   : 1995-05-16 11:02:35
  LOG COUNT  :         42
 <FILE INFORMATION>
 1 /dbarea/area1/rdmt08
   EXTENT COUNT :   2
   PAGE NUMBER  :    124
 2 /dbarea/area1/rdmt09
   EXTENT COUNT :   2
   PAGE NUMBER  :    108
--------------------------------------------------------
<<RDAREA INFORMATION>>
  UNIT NAME  :      un16 SERVER NAME:sds
  RDAREA NAME: pdbuser05
  RDAREA ID :           6 ATTRIBUTE : USER            PAGE SIZE :  4096
  RECOVERY STARTED AT : 1995-05-16 11:35:10
  RECOVERY ENDED AT   : 1995-05-16 11:35:34
 <REPLICA RDAREA INFOMATION>
  ORIGINAL RDAREA NAME : pdbuser05
  REPLICA RDAREA GENERATION NO : 0
<<BACKUP INFORMATION>>
  BACKUP STARTED AT : 1995-05-16 11:11:43
  BACKUP ENDED AT   : 1995-05-16 11:11:43
<<LOG INFORMATION>>
  1ST LOG    : 1995-05-16 11:03:21
  LAST LOG   : 1995-05-16 11:08:47
  LOG COUNT  :         42
 <FILE INFORMATION>
 1 /dbarea/area1/rdmt10
   EXTENT COUNT :   2
   PAGE NUMBER  :    124
 2 /dbarea/area1/rdmt11
   EXTENT COUNT :   2
   PAGE NUMBER  :    108
--------------------------------------------------------

〔説明〕

データベース回復ユティリティを実行した日時（YYYY-MM-DD hh:mm:ssの形式）

YYYY：年（西暦）　MM：月　DD：日　hh：時　mm：分　ss：秒

HiRDB識別子

RDエリアがあるユニットの名称

RDエリアがあるサーバの名称

回復したRDエリアの名称

回復したRDエリアの番号

RDエリアの種類

MASTERDIRECTORY：マスタディレクトリ用RDエリア

DATADIRECTORY：データディレクトリ用RDエリア

DATADICTIONARY：データディクショナリ用RDエリア

SYSTEM_LOB：データディクショナリLOB用RDエリア

USER：ユーザ用RDエリア

USER_LOB：ユーザLOB用RDエリア

REG：レジストリ用RDエリア

REG_LOB：レジストリLOB用RDエリア

RDエリアのページ長（単位：バイト）

該当するRDエリアの回復開始時刻（形式は1と同じ）

該当するRDエリアの回復終了時刻（形式は1と同じ）

該当するRDエリアのバックアップ取得開始時刻（形式は1と同じ）

該当するRDエリアのバックアップ取得終了時刻（形式は1と同じ）

回復処理のときに，最初に使用したログレコードの出力時刻（形式は1と同じ）

回復処理のときに，最後に使用したログレコードの出力時刻（形式は1と同じ）

回復処理に使用した更新ログレコード件数

RDエリアを構成するHiRDBファイルの名称

該当するHiRDBファイルに割り当てられているページ数

HiRDBファイルのエクステント数

オリジナルRDエリア名

レプリカRDエリアの世代番号

注1

回復するデータがない場合は9に’No data for recovery’を出力し，8〜15は出力されません。

注2

バックアップがない場合は，11，12は出力されません。

注3

該当するRDエリアに対するログレコードがない場合は，13，14は出力されません。

注4

19及び20は，インナレプリカ機能を使用している場合に出力されます。

20　レジストリ機能初期設定ユティリティ（pdreginit）

この章では，レジストリ機能を管理，操作するためのレジストリ用RDエリア，レジストリLOB用RDエリアを登録し，レジストリ管理表を作成するレジストリ機能初期設定ユティリティ（pdreginit）について説明します。

20.1　概要

実行者　HiRDB管理者が実行できます

20.1.1　機能

レジストリ機能初期設定ユティリティは，プラグインモジュールを使用するためにレジストリ機能をHiRDBに組み込むためのユティリティです。

レジストリ機能初期設定ユティリティでレジストリ用RDエリア及びレジストリLOB用RDエリアを追加すると，プラグインが使用するレジストリの情報を管理するレジストリ管理表が作成されます。

前提条件

レジストリ機能初期設定ユティリティを実行する場合は，あらかじめHiRDBがストアドプロシジャ機能を使用できるようにしておく必要があります。ストアドプロシジャ機能が使用できるかどうかは，pddblsコマンドで判断できます。pddblsコマンドでデータディクショナリLOB用RDエリアがあるかを調べます。データディクショナリLOB用RDエリアがあれば，ストアドプロシジャ機能が使用できます。データディクショナリLOB用RDエリアがない場合は，データベース構成変更ユティリティ（pdmod）でデータディクショナリLOB用RDエリアを追加して，ストアドプロシジャ機能を使用できる状態にしてください。

レジストリ機能初期設定ユティリティ（pdreginit）の概要を次の図に示します。

図20‒1　レジストリ機能初期設定ユティリティ（pdreginit）の概要

20.2　コマンドの形式

20.2.1　形式

　pdreginit 〔-k 処理種別〕〔-a 制御文ファイル名〕〔-W 実行監視時間〕

20.2.2　オプション

●　-k 処理種別

レジストリ用RDエリアやレジストリLOB用RDエリアを追加するか，又はレジストリ操作用ストアドプロシジャの登録だけをするかなどの処理種別を指定します。省略した場合，allが仮定されます。

all ：

次の処理をする場合に指定します。なお，-aオプションで制御文ファイルを指定する必要があります。

レジストリ用RDエリア，及びレジストリLOB用RDエリアの追加

レジストリ機能を使用するためのレジストリ管理表の作成

レジストリ操作用ストアドプロシジャの登録

proc ：

レジストリ操作用ストアドプロシジャの登録だけをする場合に指定します。

レジストリ用RDエリアの追加処理が正常終了（データベース構成変更ユティリティでKFPX24200-Iメッセージのリターンコードが0又は4）した後，レジストリ機能初期設定ユティリティがエラーとなった場合に，レジストリ操作用ストアドプロシジャの登録処理だけをするときなどに指定します。なお，-aオプションは同時に指定できません。

renew ：

レジストリ操作用ストアドプロシジャを再登録する場合に指定します。

HiRDB/シングルサーバからHiRDB/パラレルサーバへ移行した場合に，レジストリ操作用ストアドプロシジャの再登録をするときなどに指定します。なお，-aオプションは同時に指定できません。

●　-a 制御文ファイル名　〜＜パス名＞((255文字以内))

レジストリ機能初期設定ユティリティの制御文があるファイルの名称を絶対パス名で指定します。

HiRDB/パラレルサーバの場合，制御文ファイルは，ディクショナリサーバがあるサーバマシンから参照できるようにする必要があります。

この制御文では，レジストリ用RDエリア及びレジストリLOB用RDエリアのcreate rdarea文を同時に一つずつ指定する必要があります。既にレジストリ用RDエリア，レジストリLOB用RDエリアがある場合には，エラーとなります。

●　-W 実行監視時間　〜＜符号なし整数＞((0〜3600)) ≪0≫

レジストリ機能初期設定ユティリティの実行時間を監視する場合に，その監視時間を分単位で指定します。このオプションに指定する値の目安や動作については，マニュアル「HiRDB システム定義」のシステム共通定義pd_cmd_exec_timeオペランドの説明を参照してください。

なお，このオプションに0を指定した場合は，監視を行いません。

また，システム共通定義のpd_cmd_exec_timeオペランドに指定した実行監視時間は適用されません。オプションを省略した場合は，0を仮定します。

20.3　制御文

20.3.1　create rdarea文

create rdarea RDエリア名
　　　　　〔globalbuffer グローバルバッファ名〕
　　　　　for ｛registry｜LOB used by HiRDB（SQL_REGISTRY）｝
　　　　　〔page ページ長 characters〕
　　　　　〔storage control segment セグメントサイズ pages〕
　　　　　〔extension ｛use 増分セグメント数 segments｜nouse｝〕
　　　　　file name "HiRDBファイルシステム領域名/HiRDBファイル名"
　　　　　　　initial HiRDBファイル内セグメント数 segments
　　　　　　〔file name "HiRDBファイルシステム領域名/HiRDBファイル名"
　　　　　　　　　initial HiRDBファイル内セグメント数 segments〕…
　;

(1)　RDエリア名

　　　〜＜識別子＞((1〜30))

HiRDBで使用するRDエリアの名称を指定します。RDエリア名にALLは指定できません。RDエリア名を引用符（"）で囲んだ場合は，英字の大文字と小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。

（例）

create rdarea "pdbuser01" for …

この場合，RDエリア名はpdbuser01で扱われます。

create rdarea pdbuser01 for …

この場合，RDエリア名はPDBUSER01で扱われます。

(2)　globalbuffer グローバルバッファ名

　　　〜＜識別子＞((1〜16))

追加したRDエリアに一時的にグローバルバッファを割り当てたい場合に，HiRDBシステムにある（HiRDB/パラレルサーバの場合は，ディクショナリサーバにある）グローバルバッファ名を指定します。ただし，インデクス用のグローバルバッファは指定できません。グローバルバッファについては，pdbuflsコマンドで確認できます。

＜規則＞

レジストリ用RDエリアを追加するときは，このオペランドは必ず指定します。

指定するグローバルバッファのグローバルバッファ長は，追加するRDエリアのページ長以上とします。グローバルバッファ長については，pdbuflsコマンドで確認できます。

グローバルバッファ長は，システム共通定義のpdbuffer文の-lオペランドの指定値，及びHiRDB起動時のグローバルバッファに割り当たっているRDエリアの最大ページ長の大きい方の値です。

このオペランドの指定は，次回のHiRDBの正常開始時には無効となります。したがって，次回の正常開始時に，システム共通定義のグローバルバッファの指定を変更する必要があります。

このオペランドの指定時にグローバルバッファを割り当てられない場合は，RDエリアは追加できません。

(3)　for ｛registry｜LOB used by HiRDB（SQL_REGISTRY）｝

RDエリアの種類を指定します

registry

RDエリアがレジストリ用RDエリアの場合に指定します。

LOB used by HiRDB（SQL_REGISTRY）

RDエリアがレジストリLOB用RDエリアの場合に指定します。

(4)　page ページ長 characters

　　　〜＜符号なし整数＞((4096〜30720))《4096又は8192》

RDエリアを構成するHiRDBファイルのページ長を，2048の倍数のバイト単位で指定します。

＜レジストリLOB用RDエリアの場合＞

8192を指定してください。8192以外の値を指定した場合でも，8192が仮定されます。

ここで指定したページ長は，HiRDBがRDエリアに対して入出力する最小の単位となります。

(5)　storage control segment セグメントサイズ pages

　　　〜＜符号なし整数＞((1〜16000))《1又は50》

1セグメントの大きさを，ページ数で指定します。

＜レジストリLOB用RDエリアの場合＞

1を指定してください。1以外の値を指定した場合でも，1が仮定されます。

(6)　extension ｛use 増分セグメント数 segments｜nouse｝

RDエリアに自動増分を適用するかどうかを指定します。

RDエリアの自動増分については，マニュアル「HiRDB システム運用ガイド」を参照してください。

＜前提条件＞

RDエリアがあるHiRDBファイルシステム領域に-eオプション又は-aオプションが指定されている必要があります。

use 増分セグメント数 segments：

RDエリアの自動増分を適用します。

RDエリアの自動増分は，レジストリ用RDエリア，及びレジストリLOB用RDエリアの場合に有効となります。ほかのRDエリアにuseを指定しても，nouseが仮定されます。

自動増分の契機は，RDエリア内の空きセグメント数が自動増分契機に達したときです。pd_rdarea_extension_timingオペランドで指定できます。

増分セグメント数　〜＜符号なし整数＞((1〜64000))

増分セグメント数を指定します。

pdfmkfs -eを指定したHiRDBファイルシステム領域の場合

HiRDBファイルのエクステント数は最大24で，これを超えるとエラーとなります。また，HiRDBファイルシステム領域の空きが不足したり，使用する領域がHiRDBファイルサイズの上限を超えたりすると，エラーとなります。

HiRDBファイルシステム領域当たりの最大増分回数は，HiRDBファイルシステム領域作成時の指定値で決まるため，HiRDBファイルシステム領域内のファイル数，増分頻度を考慮し最大増分回数を定義しておく必要があります。

pdfmkfs -aを指定したHiRDBファイルシステム領域の場合

HiRDBファイルを格納しているディスクに，必要なHiRDBファイルシステム領域を確保する容量が不足していたり，使用する領域がHiRDBファイルサイズの上限を超えたりすると，エラーとなります。

nouse：

RDエリアの自動増分機能を適用しません。

＜注意事項＞

新たに追加される未使用セグメントは，RDエリアを構成するHiRDBファイルの最終ファイルに追加されます。

HiRDBファイルシステム領域の容量不足によって，未使用セグメントを確保できない場合，RDエリアの拡張又は再初期化をするか，データベース再編成ユティリティでディクショナリ表の再編成をしてください。

エクステントの数が上限値を超えた場合は，RDエリアがあるHiRDBファイルシステム領域のエクステントを統合するか，又はRDエリアに別のHiRDBファイルシステム領域のHiRDBファイルを追加してください。

エクステントを統合するには，pdfbkupでバックアップを取得し，pdfmkfsでHiRDBファイルシステム領域の初期設定をし，pdfrstrでバックアップから回復します。

RDエリア自動増分処理の開始から終了までの間，最終ファイルに対して排他が掛かります。

(7)　file name "HiRDBファイルシステム領域名/HiRDBファイル名"

　　　〜((167文字以内))

RDエリアに対して割り当てる，HiRDBファイルシステム領域の名称とHiRDBファイルの名称を指定します。

＜規則＞

HiRDBファイルシステム領域名/HiRDBファイル名は引用符（"）で囲んで指定してください。

引用符内に改行文字を含まないようにしてください。

一つのRDエリアに対して，最大16個のHiRDBファイルを割り当てられます。

HiRDBファイルシステム領域名/HiRDBファイル名は，HiRDBシステム内で重複しないようにしてください。

HiRDBファイルシステム領域名　〜＜パス名＞

HiRDBファイルシステム領域の名称を指定します。

HiRDBファイル名　〜＜HiRDBファイル名＞((1〜30文字))

HiRDBファイルの名称を指定します。plで始まる名称は指定できません。

(8)　initial HiRDBファイル内セグメント数 segments

　　　〜＜符号なし整数＞

HiRDBファイルのセグメント数を指定します。ただし，HiRDBファイルの大きさが64ギガバイトを超えるようなセグメント数は指定できません。

20.3.2　注意事項

RDエリアの数は，システム共通定義のRDエリアの最大数（pd_max_rdarea_no）を超えないようにしてください。また，RDエリアを構成するHiRDBファイルの数も，RDエリアを構成するHiRDBファイルの最大数（pd_max_file_no）を超えないようにしてください。超える場合は，pdchgconfコマンドでシステム共通定義を変更するか，又はHiRDBシステムを正常終了させてから，システム共通定義を変更する必要があります。システム共通定義については，マニュアル「HiRDB システム定義」を参照してください。

制御文に注釈を付けたい場合は，スラント，アスタリスク（/＊）とアスタリスク，スラント（＊/）で囲んで指定してください。

20.4　規則及び注意事項

20.4.1　規則

レジストリ機能初期設定ユティリティは，HiRDBが稼働中のときだけ実行できます。

レジストリ機能初期設定ユティリティは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

レジストリ機能が使用できるようになるのは，レジストリ機能初期設定ユティリティの終了後，追加したレジストリLOB用RDエリアにグローバルバッファが割り当てられたときです。レジストリ機能が使用可能となった後，各プラグインのレジストリ情報を登録できます。

レジストリ機能初期設定ユティリティの実行前に，あらかじめHiRDBファイルシステム領域をシングルサーバ，又はディクショナリサーバに定義しておく必要があります。HiRDBファイルシステム領域は，pdfmkfsコマンドで初期設定します。

レジストリ機能初期設定ユティリティを実行する場合，クライアント環境変数（PDNAMEPORT，PDHOST，PDUSER（CONNECT権限のある認可識別子））を設定しておく必要があります。クライアント環境変数の詳細については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

レジストリ機能初期設定ユティリティの終了後は，データベース複写ユティリティ（pdcopy）を使用して，必ず追加したレジストリ用RDエリア，レジストリLOB用RDエリア，マスタディレクトリ，及びデータディクショナリ用RDエリアのバックアップを取得してください。

20.4.2　注意事項

pdreginitのリターンコードを次に示します。

0：正常終了。

4：正常終了（警告レベルのエラーがありましたが，処理は正常に終了しました）。

8：異常終了。

レジストリ用RDエリアとレジストリLOB用RDエリアの追加，及びレジストリ管理表の作成は，データベース構成変更ユティリティ（pdmod）に制御が渡され処理されます。

レジストリ操作用ストアドプロシジャの登録は，データベース構成変更ユティリティが正常終了（KFPX24200-Iメッセージのリターンコードが0又は4）した後に実行されます。データベース構成変更ユティリティが異常終了（KFPX24200-Iメッセージのリターンコードが12）した場合は，RDエリアの追加処理，及びレジストリ管理表の作成処理は，すべてロールバックされます。

レジストリ操作用ストアドプロシジャの登録処理でエラーが発生した場合は，次回のレジストリ機能初期設定ユティリティの実行時に，-kオプションでレジストリ操作用ストアドプロシジャの登録だけの指定をする必要があります。レジストリ操作用ストアドプロシジャを登録しないで，レジストリ用RDエリア及びレジストリLOB用RDエリアの追加を指定するとエラーになります。

pdsetupコマンドで文字コードとしてutf-8，又はutf-8_ivsを選択した場合，制御文ファイル中にBOMが存在しても問題ありません。ただし，制御文ファイル中のコメントには，ASCIIコード以外の文字コードを使用できません。ASCIIコード以外の文字コードを使用した場合，pdreginitが誤動作するおそれがあるため，使用しないでください。

20.5　使用例

レジストリ機能初期設定ユティリティの使用例を，例1に示します。

例1

次に示すRDエリアを作成します。
　・PDREG（レジストリ用RDエリア）
　・PDREGLOB（レジストリLOB用RDエリア）
なお，既に次のHiRDBファイルシステム領域が作成されているものとします。
　・/dbarea/area1（通常ファイル）
　・/dbarea/area2（通常ファイル）

［概要］

［コマンド実行例］

 pdreginit -a /usr/seifile/regcont

制御文ファイル（/usr/seifile/regcont）の内容

/* レジストリ用RDエリアの定義 */
 create rdarea PDREG globalbuffer gb1   ..................1
               for registry   ............................2
               page 4096 characters   ....................3
               storage control segment 50 pages   ........4
               file name "/dbarea/area1/rdreg01"
                   initial 50 segments ;   ...............5
/* レジストリLOB用RDエリアの定義 */
 create rdarea PDREGLOB globalbuffer gb2   ...............6
               for LOB used by HiRDB(SQL_REGISTRY)   .....7
               page 8192 characters   ....................8
               storage control segment 1 pages   .........9
               file name "/dbarea/area2/rdreglob01"
                   initial 1000 segments ;   .............10

［説明］

RDエリアの名称　PDREG

RDエリアの種類　レジストリ用RDエリア（レジストリ管理情報を格納）

ページ長　4096バイト

セグメントサイズ　50ページ

RDエリアを構成するHiRDBファイルの指定

名称　/dbarea/area1/rdreg01

セグメント数　50

RDエリアの名称　PDREGLOB

RDエリアの種類　レジストリLOB用RDエリア

ページ長　8192バイト

セグメントサイズ　1ページ

RDエリアを構成するHiRDBファイルの指定

名称　/dbarea/area2/rdreglob01

セグメント数　1000

21　JP1/NETM/Audit用監査ログ出力ユティリティ（pdaudput）

この章では，JP1/NETM/Audit用監査ログ出力ファイルに，監査証跡表のデータを出力するためのユティリティ（pdaudput）について説明します。

21.1　概要

JP1/NETM/Audit用監査ログ出力ユティリティは，HiRDBの監査証跡表のデータを，JP1/NETM/Auditで読み込める形式でファイルに出力するユティリティです。JP1/NETM/Audit用監査ログ出力ユティリティが出力する監査証跡表のデータをJP1/NETM/Audit用監査ログといい，出力されたファイルを，JP1/NETM/Audit用監査ログ出力ファイルといいます。

なお，HiRDBのバージョンが08-04以前の時点から存在する監査証跡表のデータは，pdaudputで出力されません。

JP1/NETM/Audit用監査ログ出力ユティリティの概要を次に示します。

図21‒1　JP1/NETM/Audit用監査ログ出力ユティリティの概要

図中のファイルについては，「JP1/NETM/Audit用監査ログ出力ユティリティで使用するファイル」を参照してください。

21.1.1　前提条件及び動作環境

JP1/NETM/Audit用監査ログ出力ユティリティ（pdaudput）を実行するための前提条件，及び動作環境について説明します。

表21‒1　pdaudput実行時の前提条件

項目

前提条件

実行権限

HiRDB管理者が，-uオプションで監査人の認可識別子を指定してコマンドを実行してください。実行すると，パスワード入力要求のメッセージが表示されます。このとき，監査人がパスワードを入力してください。

同時実行

pdaudputは同時実行できません。

表21‒2　pdaudput実行時の動作環境

項目

動作環境

HiRDB環境

ユティリティ実行場所

pdaudputは，シングルサーバ又はシステムマネジャがあるサーバマシンで実行してください。

HiRDBの状態

pdaudputは，HiRDBが稼働中のときだけ実行できます。

監査証跡表へのインデクスの作成

監査証跡表のPDLOAD_TIMESTAMP，PDLOAD_SEQNUMの列の値を昇順に取得するため，PDLOAD_TIMESTAMP，PDLOAD_SEQNUMの順に複数列インデクスを作成しておくことをお勧めします。

インデクスを作成しないと，pdaudputの実行性能が低下するおそれがあります。

RDエリアの状態

pdaudputの対象であるディクショナリ用RDエリア，及び監査証跡表格納RDエリアが，閉塞解除かつオープン状態である必要があります。

pdaudputと処理対象RDエリアの状態の関係については，「RDエリアの状態によるユティリティ及びUAPの実行可否」を参照してください。

OS環境

-dオプションで指定するファイル及びディレクトリ

次のように権限を付与してください。

JP1/NETM/Audit用監査ログ出力ファイル

HiRDB管理者に読み込み及び書き込み権限，JP1/NETM/Auditで収集を行うOSユーザに読み取り権限

JP1/NETM/Audit用監査ログ出力ファイル出力先ディレクトリ

HiRDB管理者及びJP1/NETM/Auditで収集を行うOSユーザに読み込み権限

なお，-dオプションを省略した場合は，$PDDIR/auditlogにファイルを作成すると解釈されるため，同様にアクセス権限を与えてください。

-wオプションで指定するファイル及びディレクトリ

HiRDB管理者に対して読み込み権限を与えてください。

クライアント環境定義

pdaudputを実行する前に，クライアント環境定義を設定してください。クライアント環境定義については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

21.1.2　JP1/NETM/Audit用監査ログ出力ユティリティで使用するファイル

pdaudputでは，次のファイルを使用します。

JP1/NETM/Audit用監査ログ出力ファイル

pdaudput用管理ファイル

検索条件定義ファイル

それぞれのファイルについて説明します。

(1)　JP1/NETM/Audit用監査ログ出力ファイル

監査証跡のデータを，JP1/NETM/Auditで読み込める形式で出力したファイルです。

出力先のサーバマシン

シングルサーバ又はシステムマネジャがあるサーバマシンに出力されます。

ファイルの出力先及び名称

-dオプションで指定したディレクトリにauditmsg1.log及びauditmsg2.logという名称のファイルが作成されます。-dオプションの指定を省略した場合は，$PDDIR/auditlogが仮定されます。

ファイルの所有者及びアクセス権限

ファイルの所有者及びアクセス権限については，「-d 出力ディレクトリ」を参照してください。

使用できないファイル

・BOMを持つファイル

・キャラクタ型スペシャルファイル

・ラージファイル

(2)　pdaudput用管理ファイル

pdaudput用管理ファイルは，ユティリティが使用するファイルです。JP1/NETM/Audit用監査ログ出力ファイルの面数や，監査証跡データの出力履歴を管理します。pdaudputを再実行する場合，このファイルの履歴を基にして，監査証跡表から出力するデータを選択します。

出力先のサーバマシン

シングルサーバ又はシステムマネジャがあるサーバマシンに出力されます。

ファイルの出力先及び名称

-dオプションで指定したディレクトリにpdaudputctrlという名称のファイルが作成されます。-dオプションの指定を省略した場合は，$PDDIR/auditlogが仮定されます。

ファイルの所有者及びアクセス権限

ファイルの所有者は，HiRDB管理者とそのプライマリグループです。アクセス権限は「600」を付与します。

使用できないファイル

・BOMを持つファイル

・キャラクタ型スペシャルファイル

・ラージファイル

(3)　検索条件定義ファイル

JP1/NETM/Audit用監査ログ出力ファイルに出力する情報を定義するためのファイルです。監査人が作成します。詳細は，「-w 検索条件定義ファイル」を参照してください。

21.1.3　JP1/NETM/Audit用監査ログ出力ファイルの内容

(1)　JP1/NETM/Audit用監査ログ出力ファイルの形式

JP1/NETM/Audit用監査ログ出力ファイルの形式を次に示します。

　ファイルのヘッダ情報
　JP1/NETM/Audit用監査ログ
　JP1/NETM/Audit用監査ログ
　・・・

ファイルの先頭に，システムが使用するファイルのヘッダ情報として512バイト分のバイナリデータを出力します。ファイルのヘッダ情報の下にJP1/NETM/Audit用監査ログを出力します。JP1/NETM/Audit用監査ログは，HiRDBが出力する１レコードの監査証跡に対し，1メッセージ出力します。

(2)　JP1/NETM/Audit用監査ログの形式

　CALFHM 1.0,出力項目1=値1,出力項目2=値2,出力項目3=値3,・・・出力項目n=値n

CALFHM 1.0はヘッダ情報です。すべてのJP1/NETM/Audit用監査ログの先頭に，共通で出力されます。出力項目の説明については，「JP1/NETM/Audit用監査ログの出力項目」を参照してください。

（例）

監査証跡が「USERAがコネクトに失敗した場合」のJP1/NETM/Audit用監査ログの出力例を示します。

CALFHM 1.0,seqnum=1,msgid=-561,date=2007-01-22T16:09:59.884+09:00,
progid=HiRDB,compid=CCC,pid=1234,ocp:host=host01,
ctgry=Authentication,result=Failure,subj:uid=USERA,
op=CNT,from:ipv4=111.222.333.444,to:host=host01,outp:host=SRV1,
subjp:ipv4=111.222.333.444,loc=HRD1,msg="2007-01-25 16:09:59.00,1"

実際に出力されるメッセージは，改行されません。

(3)　JP1/NETM/Audit用監査ログの出力項目

JP1/NETM/Audit用監査ログの出力項目とHiRDBの監査証跡表の列との対応を次に示します。

表21‒3　JP1/NETM/Audit用監査ログの出力項目とHiRDBが管理する監査証跡表で該当する列との対応

JP1/NETM/Audit用監査ログの出力項目

出力項目の概要

HiRDBが管理する監査証跡表で該当する列

ヘッダ情報

共通仕様識別子

監査ログ共通フォーマット識別子

なし

共通仕様リビジョン番号

監査ログ共通フォーマット管理リビジョン

なし

共通情報

通番

JP1/NETM/Audit用監査ログの通番

なし

メッセージID

WS/PC製品共通メッセージ

SQLコード／終了コード

日付・時刻

JP1/NETM/Audit用監査ログを出力した日時，タイムゾーン

イベント実行日

イベント実行時刻

イベント実行時刻（マイクロ秒）

プログラム名

監査対象イベントが発生したプログラムの名称

なし

コンポーネント名

監査対象イベントが発生したコンポーネントの名称

ユニット識別子

プロセスID

監査対象イベントが発生したプロセスのプロセスID

プロセスID

発生場所

監査対象イベントが発生した場所の情報

ホスト名

監査対象イベントの種別

監査対象イベントのカテゴリ名

イベントタイプ

監査対象イベントの結果

監査対象イベントの結果（成功，失敗，又は発生）

イベント成否

サブジェクト識別情報

監査対象イベントを発生させた利用者情報，及び利用者を1：1で対応させた識別情報，又は利用者を代行するプロセス情報（利用者に関連しない場合はプロセス情報）

イベント実行者

固有情報

オブジェクト情報

該当する事象

オブジェクトの種別

動作情報

サブジェクトが指示したオブジェクトに対する行為

イベントサブタイプ

オブジェクトロケーション情報

オブジェクト情報を特定するための位置情報

オブジェクトの所有者名

オブジェクトの名称

変更前情報

変更前の情報

セキュリティ関連変更種別

セキュリティ関連変更前定義値

変更後情報

変更後の情報

セキュリティ関連変更種別

セキュリティ関連変更後定義値

権限情報

監査対象イベントを発生させたサブジェクトがアクションを取ったときの権限

使用した権限

サービスインスタンス名

日立ミドル製品が提供するサービスに対するサービス利用者の識別子

関連製品付加情報

リクエスト送信元ホスト

監査対象イベントが，複数のプログラム間での連係動作に関連する場合の，リクエストの送信元の場所の情報，及び，リクエストの送信先の場所の情報

IPアドレス

リクエスト送信先ホスト

ホスト名

出力元の場所

出力元が動作している場所の情報

サーバ名

指示元の場所

サブジェクトが指示を出した場所の情報

IPアドレス

ロケーション識別情報

顧客が設定したロケーション識別情報

なし

自由記述

監査対象イベントの内容を示すメッセージなどの記述

pdload実行時刻印

pdload内通番

JP1/NETM/Audit用監査ログの出力項目の詳細について説明します。なお，共通情報とは，監査ログを出力する製品で共通して出力される項目です。固有情報とは，監査ログを出力する製品ごとに出力される項目です。

(a)　ヘッダ情報

ヘッダ情報に出力される項目について説明します。

共通仕様識別子

CALFHMが表示されます。

共通仕様リビジョン番号

1.0が表示されます。

（例）

1レコードにつき，次のヘッダ情報が出力されます。

　CALFHM 1.0

(b)　共通情報

共通情報に出力される項目について説明します。

通番

pdaudputを実行するたびに，1〜10けたの10進数値（1〜（2³¹−1））を出力行ごとにカウントした値がSequenceNumに出力されます。最大値2³¹−1に達した場合は，1に戻ります。出力形式を次に示します。

　seqnum=SequenceNum

メッセージID

SQLコード及びリターンコードをnに出力します。SQLコード及びリターンコードがNULL値の場合，ハイフン（−）を出力します。出力形式を次に示します。

　msgid=n

日付・時刻

次の値が出力されます。

値

内容

YYYY-MM-DD

イベント実行日が出力されます。

T

区切り記号です。

hh:mm:ss.sss

hh:mm:ssにイベント実行時刻が出力されます。また，sssにはイベント実行時刻（マイクロ秒）がミリ秒に切り捨てて設定されます。

TZD

UTC（Coordinated Universal Time）からのオフセットを示したタイムゾーン指定です。

“+hh:mm”はUTCからhh:mmだけ進んでいることを示します。“-hh:mm”はUTCからhh:mmだけ遅れていることを示します。“Z”はUTCと同じであることを示します。

出力形式を次に示します。

　date=YYYY-MM-DDThh:mm:ss.sssTZD

プログラム名

HiRDBが表示されます。出力形式を次に示します。

　progid=HiRDB

コンポーネント名

ユニット識別子をComponentIDに出力します。ユニット識別子がNULL値の場合，ハイフン（−）を出力します。出力形式を次に示します。

　compid=ComponentID

プロセスID

イベント発行元のプロセスIDを，INTEGER型から文字列に変換してProcIDに出力します。イベント発行元のプロセスIDがNULL値の場合，「0」を出力します。

　pid=ProcID

発生場所

イベント発行元のホスト名をHostnameに出力します。イベント発行元のホスト名がNULL値の場合，「0」を出力します。

　ocp:host=Hostname

監査対象イベントの種別

HiRDBが出力するイベントタイプ及びイベントサブタイプに応じて，監査対象イベントをEventCategoryに出力します。次の表に，HiRDBが出力するイベントタイプ及びイベントサブタイプと，pdaudputが出力する監査対象イベントの種別についての対応を示します。なお，次の表が該当するのはイベント終了証跡を監査対象とする場合だけです。権限チェック時の監査証跡の場合は，AccessControlを出力します。

表21‒4　HiRDBが出力するイベントタイプ及びイベントサブタイプと，pdaudputが出力する監査対象イベントの種別についての対応

HiRDBが出力するイベントタイプ，及びイベントサブタイプ

pdaudputが出力する値，及び説明

監査

イベント

イベントタイプの値

イベントサブタイプ

の値

イベント

EventCategoryに出力する値

説明

システム管理者セキュリティイベント

SYS

STR

HiRDBの開始

StartStop

起動・停止

STP

HiRDBの終了

StartStop

起動・停止

MOD

主監査人の登録，又は監査証跡表の作成（pdmodコマンド）

ConfigurationAccess

構成定義

MDA

副監査人の登録（pdmodコマンド）

ConfigurationAccess

構成定義

ARM

監査証跡ファイルの削除（pdaudrmコマンド）

ConfigurationAccess

構成定義

ABG

監査証跡の取得開始（pdaudbeginコマンド，HiRDB起動）

StartStop

起動・停止

AEN

監査証跡の取得終了（pdaudendコマンド，HiRDB停止）

StartStop

起動・停止

OVW

監査証跡ファイルの上書き開始

ConfigurationAccess

構成定義

CLK

連続認証失敗アカウントロック状態への遷移

Authentication

識別・認証

CUL

連続認証失敗アカウントロック状態の解除

ConfigurationAccess

構成定義

PLK

パスワード無効アカウントロック状態への遷移

Authentication

識別・認証

PUL

パスワード無効アカウントロック状態の解除

ConfigurationAccess

構成定義

SPR

CONNECT関連セキュリティ機能に関するオペランドの指定値変更

ConfigurationAccess

構成定義

ULK

pdacunlckコマンドの実行

ConfigurationAccess

構成定義

監査人セキュリティイベント

AUD

ALD

監査人による監査証跡表へのデータロード（pdloadコマンド）

ConfigurationAccess

構成定義

ATL

HiRDBによる監査証跡表へのデータロード（pdloadコマンド）

ConfigurationAccess

構成定義

ASW

監査証跡ファイルのスワップ（pdaudswapコマンド）

ConfigurationAccess

構成定義

CRT

監査対象イベントの定義（CREATE AUDIT）

ConfigurationAccess

構成定義

DRP

監査対象イベントの削除（DROP AUDIT）

ConfigurationAccess

構成定義

GRT

監査人のパスワード変更（GRANT AUDIT）

ConfigurationAccess

構成定義

ATB

監査証跡表の自動データロード機能再開始（pdaudatld -bコマンド）

ConfigurationAccess

構成定義

ATT

監査証跡表の自動データロード機能停止（pdaudatld -tコマンド，データロード失敗）

ConfigurationAccess

構成定義

APT

JP1/NETM/Audit用監査ログ出力ユティリティ（pdaudputユティリティ）

ConfigurationAccess

構成定義

セッションセキュリティイベント

SES

CNT

HiRDBへの接続（CONNECT文）

Authentication

識別・認証

ATH

ユーザの変更（SET SESSION AUTHORIZATION文）

Authentication

識別・認証

DIS

HiRDBとの切り離し（DISCONNECT文）

Authentication

識別・認証

権限管理イベント

PRV

GRT

ユーザ権限の付与（GRANT文）

AccessControl

アクセス制御

パスワードの変更（CONNECT関連セキュリティ機能の設定変更種別にパスワードの変更であることが分かる情報を付与する）

RVK

ユーザ権限の削除（REVOKE文）

AccessControl

アクセス制御

オブジェクト定義イベント

DEF

CRT

オブジェクトの定義（CREATE系SQL）

ContentAccess

重要情報アクセス

DRP

オブジェクトの削除（DROP系SQL）

ContentAccess

重要情報アクセス

ALT

オブジェクトの変更（ALTER系SQL）

ContentAccess

重要情報アクセス

オブジェクト操作イベント

ACS

SEL

表の検索（SELECT文）

ContentAccess

重要情報アクセス

INS

表への行挿入（INSERT文）

ContentAccess

重要情報アクセス

UPD

表の行更新（UPDATE文）

ContentAccess

重要情報アクセス

DEL

表からの行削除（DELETE文）

ContentAccess

重要情報アクセス

PRG

表の全行削除（PURGE TABLE文）

ContentAccess

重要情報アクセス

CAL

ストアドプロシジャの実行（CALL文）

ContentAccess

重要情報アクセス

LCK

表の排他制御（LOCK TABLE文）

ContentAccess

重要情報アクセス

ASN

リストの作成（ASSIGN LIST文）

ContentAccess

重要情報アクセス

ユティリティ操作イベント

UTL

LOD

データベース作成ユティリティ（pdloadコマンド）

ContentAccess

重要情報アクセス

ORG

データベース再編成ユティリティ（pdrorgコマンド）

ContentAccess

重要情報アクセス

EXP

ディクショナリ搬出入ユティリティ（pdexpコマンド）

ContentAccess

重要情報アクセス

pddefrevコマンド

CST

整合性チェックユティリティ（pdconstckコマンド）

ContentAccess

重要情報アクセス

出力形式を次に示します。

　ctgry=EventCategory

監査対象イベントの結果

イベント成否の結果をEventResultに出力します。イベント成否と出力される値を次の表に示します。

表21‒5　イベント成否と出力される値

イベント成否

出力される値

成功

Success

失敗

Failure

一部失敗

Failure

出力形式を次に示します。

　result=EventResult

サブジェクト識別情報

ユーザ識別子を出力します。実行したイベントがSQLイベントの場合は，AccountIDにHiRDBが管理しているユーザIDが出力されます。実行したイベントがコマンド及びユティリティイベントの場合は，Effective UserIDにOSユーザ名が出力されます。なお，OSユーザ名は30バイトまで出力し，31バイト以降は切り捨てます。

なお，ユーザ識別子のデータ長が0の場合は「SYSTEM」と出力されます。

次の表に，イベント及びイベントタイプとサブジェクト識別情報の対応を示します。

表21‒6　イベント及びイベントタイプとサブジェクト識別情報の対応

イベントの種類

サブジェクト識別情報

監査

イベント

イベントタイプの値

イベントサブタイプ

の値

システム管理者セキュリティイベント

SYS

STR

Effective UserID

STP

Effective UserID

MOD

Effective UserID

MDA

Effective UserID

ARM

Effective UserID

ABG

Effective UserID

AEN

Effective UserID

OVW

Effective UserID

CLK

AccountID

CUL

AccountID

PLK

AccountID

PUL

AccountID

SPR

AccountID

ULK

Effective UserID

監査人セキュリティイベント

AUD

ALD

Effective UserID

ATL

Effective UserID

ASW

Effective UserID

CRT

AccountID

DRP

AccountID

GRT

AccountID

ATB

Effective UserID

ATT

Effective UserID

APT

Effective UserID

セッションセキュリティイベント

SES

CNT

AccountID

ATH

AccountID

DIS

AccountID

CMT

AccountID

RLB

AccountID

権限管理イベント

PRV

GRT

AccountID

RVK

AccountID

オブジェクト定義イベント

DEF

CRT

AccountID

DRP

AccountID

ALT

AccountID

オブジェクト操作イベント

ACS

SEL

AccountID

INS

AccountID

UPD

AccountID

DEL

AccountID

PRG

AccountID

CAL

AccountID

LCK

AccountID

ASN

AccountID

ユティリティ操作イベント

UTL

LOD

Effective UserID

ORG

Effective UserID

EXP

Effective UserID

CST

Effective UserID

SQLイベントを実行した場合の出力形式を次に示します。

　subj:uid=AccountID

コマンド及びユティリティイベントを実行した場合の出力形式を次に示します。

　subj:euid=Effective UserID

(c)　固有情報

オブジェクト情報

オブジェクトの種別をObjectに出力します。オブジェクト種別がNULL値の場合は出力しません。出力形式を次に示します。

　obj=Object

動作情報

表「HiRDBが出力するイベントタイプ及びイベントサブタイプと，pdaudputが出力する監査対象イベントの種別についての対応」に示した，イベントサブタイプの値がOperationに出力されます。出力形式を次に示します。

　op=Operation

オブジェクトロケーション情報

オブジェクト情報を特定するためのオブジェクト所有者，及びオブジェクト名称をObjectLocationに出力します。NULL値の場合はどちらも出力しません。

オブジェクト所有者の出力形式を次に示します。

　objloc:user=ObjectLocation

オブジェクト名称の出力形式を次に示します。

　objloc:name=ObjectLocation

変更前情報

セキュリティ関連変更種別及びセキュリティ関連変更前定義値をBeforeに出力します。「セキュリティ関連変更種別_セキュリティ関連変更前定義値」の形式で出力します。

ただし，セキュリティ関連変更前定義値がNULL値の場合は，セキュリティ関連変更前定義値の部分にはハイフン（−）を出力します。出力形式を次に示します。

　before=Before

変更後情報

セキュリティ関連変更種別及びセキュリティ関連変更後定義値をAfterに出力します。「セキュリティ関連変更種別_セキュリティ関連変更後定義値」の形式で出力します。

ただし，セキュリティ関連変更後定義値がNULL値の場合は，セキュリティ関連変更後定義値の部分にはハイフン（−）を出力します。出力形式を次に示します。

　after=After

権限情報

使用した権限をAuthorityに出力します。使用した権限が‘△△△’（空白3文字）の場合は出力しません。出力形式を次に示します。

　auth=Authority

サービスインスタンス名

関連製品付加情報をServiceInstanceに出力します。関連製品付加情報がNULL値の場合は出力しません。出力形式を次に示します。

　sins=ServiceInstance

リクエスト送信元ホスト

リクエスト送信元ホストをIPアドレス（IPv4）でaaa.bbb.ccc.dddに出力します。イベント発行元のIPアドレスがNULL値の場合は出力しません。出力形式を次に示します。

　from:ipv4=aaa.bbb.ccc.ddd

リクエスト送信先ホスト

リクエスト送信先ホストをホスト名でHostnameに出力します。イベント受け付け元のホスト名がNULL値の場合は出力しません。出力形式を次に示します。

　to:host=Hostname

出力元の場所

出力元の場所のサーバ名を，ホスト名形式でHostnameに出力します。サーバ名称がNULL値の場合は出力しません。出力形式を次に示します。

　outp:host=Hostname

指示元の場所

指示元の場所をIPアドレス（IPv4）で出力します。イベント発行元のIPアドレスがNULL値の場合は出力しません。出力形式を次に示します。

　subjp:ipv4=aaa.bbb.ccc.ddd

ロケーション識別情報

HiRDB識別子をLocationに出力します。出力形式を次に示します。

　loc=Location

自由記述

PDLOAD_TIMESTAMP値をYYYY-MM-DD hh:mm:ss.nnに，PDLOAD_SEQNUM値をpdloadseqnumに出力します。どの監査証跡がJP1/NETM/Audit用監査ログ出力ファイルに出力されたかについて，この項目の値，監査証跡表のPDLOAD_TIMESTAMP値，及びPDLOAD_SEQNUM値を用いて確認できます。出力形式を次に示します。

　msg=”YYYY-MM-DD hh:mm:ss.nn,pdloadseqnum”

21.1.4　監査証跡の出力に関する留意事項

pdaudputを連続して実行する場合は，pdaudput用管理ファイルに記載された，最後にJP1/NETM/Audit用監査ログ出力ファイルを取得した日時以降の監査証跡を対象とします。

監査証跡のデータを1レコード分出力するごとに，1メッセージが出力されます。

21.2　コマンドの形式

21.2.1　形式

　pdaudput 〔-u 認可識別子〕
　　　　   〔-k 〔r｜i｜m〕〕
　　　　   〔-d 出力ディレクトリ〕
　　　　   〔-s ファイルサイズ〕
　　　　   〔-w 検索条件定義ファイル〕

21.2.2　オプション

(1)　-u 認可識別子

監査人の認可識別子を指定します。

このオプションを指定した場合，パスワード入力要求の応答付きメッセージが表示されます。そのときに応答した認可識別子とパスワードでHiRDBシステムに接続し，その認可識別子について監査証跡表へのアクセス権限があるかどうかがチェックされます。

このオプションは，パスワードを応答できない環境では指定しないでください。

このオプションを省略した場合，次の方法で認可識別子とパスワードが仮定されます。

JP1/NETM/Audit用監査ログ出力ユティリティ実行時の環境変数PDUSERの設定値が仮定されます。シェルで&を付けてバックグラウンドで実行する場合や，リモートシェル環境で実行する場合など，パスワードの応答ができない環境で実行するときは，PDUSERを必ず設定してください。環境変数PDUSERの指定例を次に示します。

（例）Cシェルの場合

setenv PDUSER '"認可識別子"/"パスワード"'

環境変数PDUSERが設定されていない場合，このユティリティは実行できません。

認可識別子を引用符（"）で囲んだ場合は，英大文字と英小文字が区別されますが，引用符で囲まない場合はすべて大文字として扱われます。

sh（Bourneシェル），csh（Cシェル），及びksh（Ｋシェル）の場合は，更にアポストロフィ（’）で囲む必要があります。

(2)　-k 〔r｜i｜m〕

実行モードを指定します。

r：

JP1/NETM/Audit用監査ログをJP1/NETM/Audit用監査ログ出力ファイルに出力する場合に指定します。通常指定する実行モードです。

-dオプションで指定するディレクトリ下にpdaudput用管理ファイル，及びJP1/NETM/Audit用監査ログ出力ファイルがない場合は，自動的にファイルが作成されます。

i：

pdaudput用管理ファイル，及びJP1/NETM/Audit用監査ログ出力ファイルを新規作成又は再作成します。

ファイルが既に存在する場合はメッセージが出力されます。メッセージに対してyを指定するとファイルを再作成します。y以外を指定した場合は，リターンコード0で，一切処理を行わないで終了します。

＜適用基準＞

JP1/NETM/Audit用監査ログ出力ファイルの出力先を変更したい場合などに指定します。-dオプションで指定した出力先のファイルが処理の対象となります。

＜注意事項＞

このオプションを指定しただけではJP1/NETM/Audit用監査ログは出力されません。JP1/NETM/Audit用監査ログを出力したい場合は続けて-k rを指定してください。

既存のpdaudput用管理ファイル，及びJP1/NETM/Audit用監査ログ出力ファイルの情報は削除されます。

再作成したpdaudput用管理ファイル，及びJP1/NETM/Audit用監査ログ出力ファイルの所有者やアクセス権限は，削除したファイルのものを引き継ぎます。

m：

JP1/NETM/Audit用監査ログ出力ファイルだけを再作成します。

＜適用基準＞

JP1/NETM/Audit用監査ログ出力ファイルの容量などを変更したい場合に指定します。

＜注意事項＞

このオプションを指定しただけではJP1/NETM/Audit用監査ログは出力されません。JP1/NETM/Audit用監査ログを出力したい場合は続けて-k rを指定してください。

既存のpdaudput用管理ファイル，及びJP1/NETM/Audit用監査ログ出力ファイルの情報は削除されます。

-dオプションで指定したディレクトリ下にJP1/NETM/Audit用監査ログ出力ファイルが格納されていない場合は，エラーとなります。

(3)　-d 出力ディレクトリ

　　　〜＜パス名＞((254文字以内))《$PDDIR/auditlog》

JP1/NETM/Audit用監査ログ出力ファイルを出力するファイルを，指定したディレクトリに作成します。ディレクトリは，絶対パス名で指定します。

＜規則＞

このオプションを省略した場合は，$PDDIR/auditlogが仮定されます。その場合，ディレクトリの所有者は，HiRDBの管理者とそのプライマリグループです。アクセス権限は任意に変更できますが，変更する場合は表「pdaudput実行時の動作環境」で示すユーザがアクセスできるようにアクセス権限を付与してください。

このオプションで指定したディレクトリが存在しない場合は，エラーとなります。

このオプションで指定したディレクトリには，auditmsg1.log，及びauditmsg2.logという名称のファイルが作成されます。

auditmsg1.log，又はauditmsg2.logのどちらかの容量がファイルサイズの上限に達すると，古い方のファイルの情報を削除して，スワップします。そのとき，ユティリティが停止します。続けてJP1/NETM/Audit用監査ログ出力ファイルを出力する場合は，再度ユティリティを実行してください。なお，スワップ先のファイルの内容は削除されます。

(4)　-s ファイルサイズ

　　　〜＜符号なし整数＞((4〜2000000))《256000》

JP1/NETM/Audit用監査ログ出力ファイルの1ファイルの最大サイズを指定します。単位はキロバイトです。

(5)　-w 検索条件定義ファイル

　　　〜＜パス名＞((254文字以内))《インストールディレクトリ/sample/sampleAUDIT/sampleaud1》

監査証跡表を検索する条件を指定したファイル（検索条件定義ファイル）を，絶対パス名で指定します。このオプションの指定を省略した場合は，インストールディレクトリ/sample/sampleAUDIT/sampleaud1に示す検索条件が仮定されます。インストールディレクトリ/sample/sampleAUDIT/sampleaud1の内容については，＜規則＞で説明します。

＜規則＞

検索条件として指定できる列については，マニュアル「HiRDB システム運用ガイド」の「監査証跡表の列構成」を参照してください。

検索条件定義ファイルには，次のファイルは使用できません。

・BOMを持つファイル

・キャラクタ型スペシャルファイル

・ラージファイル

検索条件定義ファイルは，シングルサーバ又はシステムマネジャがあるサーバマシンに作成してください。

検索条件定義ファイルには，SQLで監査証跡の探索条件を記入します。記入例を次に示します。

（例1）

次の探索条件を指定すると，認可識別子USERAが所有する表T1にアクセスしたイベントに関する監査証跡を出力できます。

　OBJECT_SCHEMA ='USERA' AND OBJECT_NAME ='T1' AND OBJECT_TYPE ='TBL'

（例2）

検索条件定義ファイルのサンプルファイル（sampleaud1）を指定すると，システム管理セキュリティイベント，及び監査人セキュリティイベントに関する監査証跡を出力できます。

　EVENT_TYPE IN('SYS','AUD')

（例3）

検索条件定義ファイルのサンプルファイル（sampleaud2）を指定すると，セッションセキュリティイベントに関して失敗した監査証跡を出力できます。

　EVENT_TYPE='SES' AND EVENT_RESULT IN('F','U')

21.3　指定できるオプションの組み合わせ

-kオプションの指定値によって，指定が無効になる場合があります。次の表に-kオプションとほかのオプションの組み合わせについて示します。

-kオプションに指定する実行モード

-u

-d

-s

-w

r

○

○

△

○

i

○

○

○

×

m

○

○

○

×

（凡例）

○：指定が有効です。

△：pdaudput用管理ファイルが存在しない場合は，pdaudput用管理ファイルを作成するため，指定が有効になります。pdaudput用管理ファイルが存在する場合は，pdaudput用管理ファイルを作成しないため，指定を無視します。

×：指定が無効です。

21.4　リターンコード一覧

pdaudputが出力するリターンコードを次の表に示します。

表21‒7　pdaudputが出力するリターンコード

リターンコード

意味

0

正常終了です。

4

正常終了です（JP1/NETM/Audit用監査ログ出力ファイルのスワップが発生したことによる終了）。

8

異常終了です。

付録

付録A　コマンド一覧

HiRDBで使用できるコマンドには，運用コマンドとユティリティとがあります。HiRDBで使用できるコマンドの一覧を次の表に示します。

表A‒1　コマンド一覧

種別

コマンド

内容

参照箇所

システムの運用

pdadmvr

HiRDBバージョン情報の取得

pdadmvr

pdcat

ファイルの内容表示

pdcat

pdchgconf

システム構成変更コマンド

pdchgconf

pdclibsync

Cライブラリファイルの操作

pdclibsync

pdconfchk

システム定義のチェック

pdconfchk

pdcspool

トラブルシュート情報及び作業用一時ファイルの削除

pdcspool

pddivinfgt

表の分割条件の取得及び出力

pddivinfgt

pdgeter

障害情報の取得

pdgeter

pdinfoget

障害情報の取得及び容量見積もり

pdinfoget

pdinfocoreget

coreファイルの取得及び容量見積もり

pdinfocoreget

pditvstop

HiRDBの状態の定期取得の停止

pditvstop

pditvtrc

HiRDBの状態の定期取得

pditvtrc

pdjarsync

JARファイルの操作

pdjarsync

pdlistls

リスト定義情報の表示

pdlistls

pdls

HiRDBシステムの状態表示

pdls

pdmemsv

メモリの削減

pdmemsv

pdobjconv

64ビットモードのHiRDBへのSQLオブジェクトの移行

pdobjconv

pdopsetup

付加PPのセットアップ

pdopsetup

pdsetenv

HiRDBユニットの環境設定

pdsetenv

pdsetup

HiRDBシステムのOSへの登録・削除

pdsetup

pdsvhostname

サーバのホスト名表示

pdsvhostname

pdvrup

HiRDBバージョンアップ

pdvrup

HiRDBファイルシステム

pdfbkup

HiRDBファイルシステムのバックアップ

pdfbkup

pdfchfs

HiRDBファイルシステム領域の管理情報の変更

pdfchfs

pdffsck

HiRDBファイルシステム領域の整合性の検証及び修復

pdffsck

pdfls

HiRDBファイルシステムの内容表示

pdfls

pdfmkfs

HiRDBファイルシステム領域の初期設定

pdfmkfs

pdfrm

HiRDBファイルの削除

pdfrm

pdfrstr

HiRDBファイルシステムのリストア

pdfrstr

pdfssync

HiRDBファイルシステム領域の同期実行

pdfssync

pdfstatfs

HiRDBファイルシステム領域の状態表示

pdfstatfs

pdfzeroinit

HiRDBファイルシステム領域内の使用済み領域の初期化

pdfzeroinit

ログ関係のファイル

pdlogadpf

ログ関係のファイルの割り当て

pdlogadpf

pdlogatul

自動ログアンロード機能の制御

pdlogatul

pdlogchg

ログ関係のファイルのステータス変更

pdlogchg

pdlogcls

ログ関係のファイルのクローズ

pdlogcls

pdloginit

ログ関係のファイルの初期設定

pdloginit

pdlogls

ログ関係のファイルの情報表示

pdlogls

pdlogopen

ログ関係のファイルのオープン

pdlogopen

pdlogrm

ログ関係のファイルの削除

pdlogrm

pdlogswap

ログ関係のファイルのスワップ

pdlogswap

pdlogsync

シンクポイントダンプの取得

pdlogsync

pdlogucat

アンロードログファイルの情報表示

pdlogucat

pdlogunld

ログ関係のファイルのアンロード

pdlogunld

ステータスファイル

pdstscls

ステータスファイルのクローズ

pdstscls

pdstsinit

ステータスファイルの初期設定

pdstsinit

pdstsopen

ステータスファイルのオープン

pdstsopen

pdstsrm

ステータスファイルの削除

pdstsrm

pdstsswap

ステータスファイルのスワップ

pdstsswap

HiRDBの開始・終了

pdstart

HiRDBシステム・ユニット・サーバの開始

pdstart

pdstop

HiRDBシステム・ユニット・サーバの終了

pdstop

統計ログ

pdstbegin

統計情報の出力開始

pdstbegin

pdstend

統計情報の出力停止

pdstend

pdstjswap

統計ログファイルの切り替え

pdstjswap

pdstjsync

統計ログファイルへの統計ログバッファの反映

pdstjsync

RDエリア

pdclose

RDエリアのクローズ

pdclose

pddbls

RDエリアの状態表示

pddbls

pdhold

RDエリアの閉塞

pdhold

pdopen

RDエリアのオープン

pdopen

pdrels

RDエリアの閉塞解除

pdrels

pddbfrz

ユーザLOB用RDエリアの満杯HiRDBファイルの更新凍結

pddbfrz

pdrdrefls

関連するRDエリアの情報の表示

pdrdrefls

pdrdconstck

インナレプリカグループ内のRDエリアの整合性チェックコマンド

pdrdconstck

グローバルバッファ

pdbufls

グローバルバッファ情報の表示

pdbufls

pdbufmod

グローバルバッファの動的変更

pdbufmod

インメモリデータ処理

pdmemdb

インメモリデータ処理に関する操作

pdmemdb

トランザクションの制御

pdcmt

トランザクションのコミット

pdcmt

pdfgt

トランザクションの強制終了

pdfgt

pdrbk

トランザクションのロールバック

pdrbk

pdtrndec

未決着トランザクションの強制自動決着

pdtrndec

プロセスの制御

pdcancel

UAP，ユティリティ処理の強制終了

pdcancel

pdchprc

サーバプロセスの起動本数変更

pdchprc

pdpfresh

サーバプロセスのリフレッシュ

pdpfresh

pdrpause

プロセスサーバプロセスの再起動

pdrpause

修正版HiRDBの入れ替え

pdprgcopy

修正版HiRDBのコピー

pdprgcopy

pdprgrenew

修正版HiRDBの入れ替え

pdprgrenew

HiRDB Datareplicator連携

pdrplstart

HiRDB Datareplicator連携の開始

pdrplstart

pdrplstop

HiRDB Datareplicator連携の終了

pdrplstop

インナレプリカ機能

pddbchg

レプリカRDエリアのレプリカステータスの切り替え

pddbchg

更新可能なオンライン再編成

pdorbegin

オンライン再編成のデータベース静止化

pdorbegin

pdorcheck

オンライン再編成の適用条件チェック

pdorcheck

pdorchg

オンライン再編成のカレントRDエリアの切り替え

pdorchg

pdorcreate

オンライン再編成の追い付き反映環境の作成

pdorcreate

pdorend

オンライン再編成の追い付き反映

pdorend

セキュリティ監査

pdaudbegin

監査証跡の取得開始

pdaudbegin

pdaudend

監査証跡の取得停止

pdaudend

pdaudatld

監査証跡表の自動データロード

pdaudatld

pdaudrm

閉塞中の監査証跡ファイルの削除

pdaudrm

pdaudswap

現用の監査証跡ファイルのスワップ

pdaudswap

pdaudput

監査証跡表のデータをJP1/NETM/Audit用監査ログ出力ファイルに出力

「JP1/NETM/Audit用監査ログ出力ユティリティ（pdaudput）」

CONNECT関連セキュリティ機能

pdacunlck

連続認証失敗アカウントロック状態の解除

pdacunlck

トランザクションキューイング機能

pdtrnqing

トランザクションキューイング機能の開始，解除

pdtrnqing

リアルタイムSANレプリケーション

pdrisechk

リアルタイムSANレプリケーションの構成確認

pdrisechk

pdrisedbto

リアルタイムSANレプリケーションのデータベース引き継ぎ

pdrisedbto

pdriseset

リアルタイムSANレプリケーションのサイト状態の設定

pdriseset

SQLトレースの取得

pdclttrc

SQLトレースの動的取得

pdclttrc

PRFトレース情報

pdprfed

PRFトレース情報の編集出力

pdprfed

pdprflevel

PRFトレース取得レベルの表示，変更

pdprflevel

SQLオブジェクトの情報表示

pdobils

SQLオブジェクト用バッファの統計情報表示

pdobils

SQLの仕様関連

pdextfunc

拡張システム定義スカラ関数の定義及び削除

pdextfunc

SQLの翻訳

pdcbl

COBOLプリプロセサ

−※１

pdcpp

Cプリプロセサ

−※１

pdocb

OOCOBOLプリプロセサ

−※１

pdocc

C++プリプロセサ

−※１

データベースの生成

pdinit

データベース初期設定ユティリティ

「データベース初期設定ユティリティ（pdinit）」

pddef

データベース定義ユティリティ

「データベース定義ユティリティ（pddef）」

pdload

データベース作成ユティリティ

「データベース作成ユティリティ（pdload）」

pdparaload

パラレルローディングの実行

pdparaload

pdsql

会話型SQL実行ユティリティ※２

「会話型SQL実行ユティリティ（pdsql）」

pddefrev

定義系SQLの生成

pddefrev

データベースの運用

pdmod

データベース構成変更ユティリティ

「データベース構成変更ユティリティ（pdmod）」

pdrorg

データベース再編成ユティリティ

「データベース再編成ユティリティ（pdrorg）」

pdexp

ディクショナリ搬出入ユティリティ

「ディクショナリ搬出入ユティリティ（pdexp）」

pdrbal

リバランスユティリティ

「リバランスユティリティ（pdrbal）」

pdreclaim

空きページ解放ユティリティ

「空きページ解放ユティリティ（pdreclaim）」

pdpgbfon

グローバルバッファ常駐化ユティリティ

「グローバルバッファ常駐化ユティリティ（pdpgbfon）」

pdconstck

整合性チェックユティリティ

「整合性チェックユティリティ（pdconstck）」

pdchpathf

ファイルパス変更オフラインコマンド

pdchpathf

pdchpathn

ファイルパス変更オンラインコマンド

pdchpathn

チューニング

pdstedit

統計解析ユティリティ

「統計解析ユティリティ（pdstedit）」

pddbst

データベース状態解析ユティリティ

「データベース状態解析ユティリティ（pddbst）」

pdgetcst

最適化情報収集ユティリティ

「最適化情報収集ユティリティ（pdgetcst）」

pdvwopt

アクセスパス表示ユティリティ

「アクセスパス表示ユティリティ（pdvwopt）」

データベースの障害対策

pdcopy

データベース複写ユティリティ

「データベース複写ユティリティ（pdcopy）」

pdbkupls

バックアップファイルの情報表示

pdbkupls

pdrstr

データベース回復ユティリティ

「データベース回復ユティリティ（pdrstr）」

pdmstchk

マスタディレクトリ用RDエリアの整合性チェック

「マスタディレクトリ用RDエリアの整合性チェック（pdmstchk）」

プラグイン関連

pdplgrgst

プラグインの登録・削除

pdplgrgst

pdplgset

プラグインのセットアップ

pdplgset

pdreginit

レジストリ機能初期設定ユティリティ

「レジストリ機能初期設定ユティリティ（pdreginit）」

コマンドの代行

pdcmdact

HiRDB管理者以外のユーザによるコマンド実行

pdcmdact

pdcmdls

コマンドの実行権限表示

pdcmdls

pdcmdset

コマンドの実行権限変更

pdcmdset

（凡例）

−：該当しません。

注※1

pdcbl，pdcpp，pdocb，及びpdoccについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

注※2

会話型SQL実行ユティリティを実行する場合は，HiRDB SQL Executerが必要です。

付録B　コマンド実行時の排他制御モード

HiRDBのコマンドの中には，各排他資源に対して排他制御モードを使い分け，自動的に排他を掛けるものがあります。このため，UAPを含めプログラムを同時実行する場合は，該当するコマンドの排他制御モードの表とUAP（SQL）の排他制御の表を参考にして，排他制御モードの組み合わせを確認する必要があります。

SQL文の種類及び実行環境の違いによる排他制御モードの組み合わせ例については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

表中で使用している排他制御モードを次に示します。

PR：共用モードの排他が掛かります。

EX：排他モードの排他が掛かります。

SR：意図共用モードの排他が掛かります。

SU：意図排他モードの排他が掛かります。

PU：共用意図排他モードの排他が掛かります。

↓：検査保留状態取得時の排他制御モードが引き継がれます。

−：排他は掛かりません。

付録B.1　運用コマンドの排他制御モード

運用コマンドの排他制御モードを次の表に示します。

表B‒1　運用コマンドの排他制御モード

実行環境

資源

コマンド

オプション

ディクショナリ表

インナレプリカ構成

レプリカグループ構成

RDエリア状態

RDエリア

バックアップ閉塞

pdholdコマンド受付状態

インメモリ同期

pdbufls

すべて

−

−

−

−

−

−

−

−

pdclose

なし

−

−

−

EX

EX

−

−

EX※4

pddbchg

なし，又は-w

EX

EX

EX

EX

EX

−

−

−

pddbfrz

すべて

−

−

−

EX

EX

−

−

−

pddbls

-a

−

−

−

−

SR

−

−

−

なし，-l，-b，又は-o

−

−

−

−

−

−

−

−

pdhold

なし

−

−

−

EX

EX

−

EX

−

-c

−

−

−

EX

EX

−

EX

EX

-i

−

−

−

EX

PR

−

EX

−

-b

−

−

−

EX

PR

−

EX

EX

-bw

−

−

−

EX

PR

EX※２

−

EX

-buw

−

−

−

EX

PR

EX※２

−

−

-bu

−

−

−

EX

−

EX※２

−

−

-s

−

−

−

EX

EX

EX※２

−

−

pdopen

なし

−

−

−

EX

EX

−

−

−

pdorbegin

なし

EX

EX※３

EX※３

EX

EX

−

−

−

-u

EX

−

−

EX

EX

−

−

−

pdorchg

なし

EX

−

−

EX

EX

−

−

−

pdorend

なし，又は-z

EX

EX

EX

EX

EX

−

−

−

-u

EX

EX

EX

EX

EX

−

−

−

pdrels

なし，又は-o

−

−

−

EX

PR/−※１

−

−

−

pdchpathn

すべて

EX※5

−

−

−

SU※6

−

−

−

pdorcreate

-r，又は-o

EX

−

−

−

SU※7

−

−

−

-d

EX

SR

−

−

SU※7

−

−

−

pdorcheck

すべて

−

−

−

−

SR※8

−

−

−

pdrdrefls

すべて

−

−

−

−

SR※8

−

−

−

注※1

更新可能バックアップ閉塞時には，排他を掛けません。

注※2

pdrelsコマンドで閉塞解除するか，又は障害閉塞になるまで，排他は解除されません。

注※3

pdorchgコマンドが完了するまで排他は解除されません。

注※4

コマンド実行前のRDエリアの状態が障害閉塞状態又はクローズ状態以外のときに排他を取得します。

注※5

さらに，ディクショナリ表（SQL_PHYSICAL_FILES，SQL_IOS_GENERATIONS）に表排他を取得します。

注※6

マスタディレクトリ用RDエリア，データディクショナリ表用RDエリアが対象となります。

注※7

ユーザ用RDエリア以外に，データディレクトリ用RDエリア，データディクショナリ用RDエリアにも排他を取得します。

注※8

データディクショナリ用RDエリアが対象となります。

付録B.2　ユティリティの排他制御モード

各ユティリティの排他制御モードを次の表に示します。

表「データベース作成ユティリティの排他制御モード」

表「データベース作成ユティリティの排他制御モード（共用表の場合）」

表「データベース構成変更ユティリティの排他制御モード」

表「データベース再編成ユティリティの排他制御モード」

表「データベース再編成ユティリティの排他制御モード（共用表の場合）」

表「リバランスユティリティの排他制御モード」

表「空きページ解放ユティリティの排他制御モード」

表「空きページ解放ユティリティの排他制御モード（共用表の場合）」

表「グローバルバッファ常駐化ユティリティの排他制御モード」

表「グローバルバッファ常駐化ユティリティの排他制御モード（共用表の場合）」

表「データベース状態解析ユティリティの排他制御モード」

表「最適化情報収集ユティリティの排他制御モード」

表「データベース複写ユティリティの排他制御モード」

表「データベース回復ユティリティの排他制御モード」

表「レジストリ機能初期設定ユティリティの排他制御モード」

表「整合性チェックユティリティの排他制御モード」

表「JP1/NETM/Audit用監査ログ出力ユティリティ」

なお，次のユティリティについてはユティリティ自身で排他制御をしないため，記述を省略します。また，データベース定義ユティリティについては，定義系SQLの場合と同じであるため，マニュアル「HiRDB UAP開発ガイド」を参照してください。

データベース初期設定ユティリティ（pdinit）

ディクショナリ搬出入ユティリティ（pdexp）

統計解析ユティリティ（pdstedit）

アクセスパス表示ユティリティ（pdvwopt）

表B‒2　データベース作成ユティリティの排他制御モード

実行環境

資源

表

インデクス

表（NOWAIT検索中）

資源管理テーブル

ユーザLOB用RDエリア

順序数生成子

RDエリア

表ID

RDエリア

インデクスID

順序数生成子ID

RDエリア

全数一括取得方式

全数一括取得方式以外

表単位のデータロード

SU

EX

SU

EX

EX※２

SR

SU

EX

SU

SU

PU※２

RDエリア単位のデータロード※3

EX

SR

SU

EX※１

−

SR

EX

EX

SU

SU

LOB列だけのデータロード

SR

PR

−

−

−

SR

EX

−

−

−

注

LOB列構成基表だけのデータロードの場合，表単位にデータロードするときは表単位のデータロード，RDエリア単位にデータロードするときはRDエリア単位のデータロードと同じになります。

注※1

RDエリア単位の場合，非横分割インデクスに対して排他は掛かりません。横分割インデクスに対して排他は掛かりますが，RDエリアごとに排他が掛かるため，RDエリア単位のデータロードは同時に実行できます。

注※2

データを削除するときはEXモードで排他が掛かります。そのほかの場合，option文がnowait=noのときはEXモード，nowait=yesのときはPUモードで排他が掛かります。

注※3

分割表の場合，データロード対象でないRDエリアに対して排他は掛かりません。

表B‒3　データベース作成ユティリティの排他制御モード（共用表の場合）

実行環境

資源

表

インデクス

表（NOWAIT検索中）

資源管理テーブル

順序数生成子

更新可能バックエンドサーバ

参照専用バックエンドサーバ

更新可能バックエンドサーバの共用RDエリア

参照専用バックエンドサーバの共用RDエリア

インデクスID

順序数生成子ID

RDエリア

共用RDエリア

表ID

共用RDエリア

表ID

全数一括取得方式

全数一括取得方式以外

データロード

EX

EX

EX

EX

EX

EX

EX

EX

SR

EX

SU

SU

表B‒4　データベース構成変更ユティリティの排他制御モード

実行環境

資源

データベース構成変更ユティリティ

ディクショナリ表

RDエリア状態

RDエリア

表

行（ディクショナリ）※8

資源管理テーブル

インナレプリカ構成管理情報

レプリカグループ構成管理情報

一時表実体化管理

一時表用RDエリア管理情報

一時表用RDエリア情報

RDエリアの追加

EX

EX

EX※４

EX※４

−

EX

−

−

−

EX※５

EX※５

EX※５

RDエリアの拡張

EX

EX

EX※４

PU(EX)※４

−

EX

EX※４

−

−

−

−

−

RDエリアの再初期化

EX

EX

EX※４

EX※４

EX※7

EX

−

−

−

EX※５

EX※５

EX※５

RDエリアの削除

EX

EX

EX※４

EX※４

−

EX

−

EX※４

EX※４

EX※５

EX※５

EX※５

ディクショナリ表の属性定義変更

EX

EX

−

EX※２

−

EX

−

−

−

−

−

−

RDエリアの属性変更

EX

EX

EX

EX

−

EX

−

−

−

−

−

−

HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へのRDエリアの変更

EX

EX

EX

EX

−

EX

−

−

−

−

−

−

バックエンドサーバへの構成変更※１

EX

EX

EX

EX

−

EX

−

−

−

−

−

−

RDエリアの移動

EX

EX

EX※４

EX※４

−

EX

−

EX※４※６

EX※４※６

−

−

−

HiRDBファイルシステム領域の世代登録

EX

EX

−

−

−

EX

−

−

−

−

−

−

HiRDBファイルシステム領域の世代削除

EX

EX

−

−

−

EX

−

−

−

−

−

−

RDエリアのレプリカ定義

EX

EX

EX※４

EX※４

−

EX

−

EX※４

EX※４

−

−

−

RDエリアの構成情報複写

EX

EX

EX※４

EX※４

−

EX

−

EX※４

EX※４

−

−

−

RDエリアの統合

EX

EX

EX※３※４

EX※３※４

−

EX

−

EX※４

EX※４

−

−

−

監査人の登録

EX

EX

−

−

−

EX

−

−

−

−

−

−

監査証跡表の作成

EX

EX

−

EX

−

EX

EX

−

−

−

−

−

注※1

HiRDB/シングルサーバの場合は該当しません。HiRDB/パラレルサーバの場合だけ該当します。

注※2

データディクショナリ用RDエリアだけ該当します。

注※3

オリジナルRDエリアとレプリカRDエリアの両方が該当します。

注※4

共用RDエリアの場合，更新可能バックエンドサーバ及び参照専用バックエンドサーバの両方が該当します。

注※5

一時表用RDエリアの場合だけ該当します。

注※6

オンライン中のRDエリアの移動機能を使用した場合だけ該当します。

注※7

without lock tableオペランド指定時は該当しません。

注※8

行排他を取得するディクショナリ表を次の表に示します。

表B‒5　データベース構成変更ユティリティで行排他を取得するディクショナリ表（1/2）

実行環境

ディクショナリ表

1

2

3

4

5

6

7

8

9

10

11

12

13

14

RDエリアの追加

−

−

−

−

−

−

−

−

−

−

−

○

○

○

RDエリアの拡張

−

−

−

−

−

−

−

−

−

−

−

○

−

○

RDエリアの再初期化

HiRDBファイル構成変更あり

−

−

−

−

−

−

−

−

−

−

−

○

−

○

被参照表を格納し，他RDエリアに参照関係にある参照表がある

○

−

−

−

−

−

−

−

−

−

−

−

−

−

再編成時期予測機能適用あり

−

−

○

−

−

−

−

−

−

−

−

−

−

−

RDエリアの削除

削除対象RDエリアが解析情報表及び運用履歴表を格納するデータディクショナリ用RDエリア

−

○

−

−

−

−

−

−

○

○

○

○

○

−

再編成時期予測機能適用あり

−

−

○

○

−

−

−

−

−

−

○

○

○

−

上記以外

−

−

−

−

−

−

−

−

−

−

○

○

○

−

ディクショナリ表の属性定義変更

ディクショナリ表の参照権限の変更

ディクショナリ表の表参照ルーチン定義あり

−

○

−

−

−

−

−

−

−

−

−

−

−

−

ディクショナリ表の表参照トリガ定義あり

−

○

−

−

−

−

−

−

−

−

−

−

−

−

上記以外

−

○

−

−

−

−

−

−

−

−

−

−

−

−

ディクショナリ表の混在文字データの使用

−

○

−

−

−

−

−

−

−

−

−

−

−

−

RDエリアの属性変更

extensionオペランド指定あり

−

−

−

−

−

−

−

−

−

−

−

○

−

−

renameオペランド指定あり

−

−

−

−

○

○

○

○

−

○

−

−

○

○

HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へのRDエリアの変更

分割表あり

−

−

−

−

−

−

○

○

−

−

−

○

−

○

ルーチン定義あり

−

−

−

−

−

−

−

−

−

−

−

○

−

○

上記以外

−

−

−

−

−

−

−

−

−

−

−

○

−

○

バックエンドサーバへの構成変更※１

分割表あり

−

−

−

−

−

−

○

○

−

−

−

○

−

○

ルーチン定義あり

−

−

−

−

−

−

−

−

−

−

−

○

−

○

上記以外

−

−

−

−

−

−

−

−

−

−

−

○

−

○

RDエリアの移動

分割表あり

−

−

−

−

−

−

○

○

−

−

−

○

−

○

分割表にインデクス定義あり

−

−

−

−

−

−

−

−

−

○

−

○

−

○

格納表参照ルーチン定義あり

−

−

−

−

−

−

−

−

−

−

−

○

−

○

格納表表参照トリガ定義あり

−

−

−

−

−

−

−

−

−

−

−

○

−

○

norestartオペランド指定あり

−

−

−

−

−

−

−

−

−

−

−

○

−

○

上記以外

−

−

−

−

−

−

−

−

−

−

−

○

−

○

HiRDBファイルシステム領域の世代登録

−

−

−

−

−

−

−

−

−

−

○

−

−

−

HiRDBファイルシステム領域の世代削除

−

−

−

−

−

−

−

−

−

−

○

−

−

−

RDエリアのレプリカ定義

−

−

−

−

−

−

−

−

−

−

−

−

−

○

RDエリアの構成情報複写

−

−

−

−

−

−

−

−

−

−

−

○

−

○

RDエリアの統合

−

−

−

−

−

−

−

−

−

−

−

○

○

○

監査人の登録

−

−

−

−

−

−

−

−

−

−

−

−

−

−

監査証跡表の作成

−

○

−

−

−

−

−

−

−

−

−

−

−

−

（凡例）

○：取得します。

−：取得しません。

1：SQL_CHECKS

2：SQL_COLUMNS

3：SQL_DB_MANAGEMENT

4：SQL_DB_STATE_ANALYZED

5：SQL_DIV_COLUMN

6：SQL_DIV_INDEX

7：SQL_DIV_TABLE

8：SQL_DIV_TABLE_REGULARIZE

9：SQL_INDEX_COLINF

10：SQL_INDEXES

11：SQL_IOS_GENERATIONS

12：SQL_PHYSICAL_FILES

13：SQL_RDAREA_PRIVILEGES

14：SQL_RDAREAS

注※1

HiRDB/シングルサーバの場合は該当しません。HiRDB/パラレルサーバの場合だけ該当します。

表B‒6　データベース構成変更ユティリティで行排他を取得するディクショナリ表（2/2）

実行環境

ディクショナリ表

15

16

17

18

19

20

21

22

23

24

25

26

27

28

RDエリアの追加

−

−

−

−

−

−

−

−

−

−

−

−

−

−

RDエリアの拡張

−

−

−

−

−

−

−

−

−

−

−

−

−

−

RDエリアの再初期化

HiRDBファイル構成変更あり

−

−

−

−

−

−

−

−

−

−

−

−

−

−

被参照表を格納し，他RDエリアに参照関係にある参照表がある

○

−

−

−

−

−

−

−

−

−

−

−

−

−

再編成時期予測機能適用あり

−

−

−

−

−

−

−

−

−

−

−

−

−

−

RDエリアの削除

削除対象RDエリアが解析情報表及び運用履歴表を格納するデータディクショナリ用RDエリア

−

−

−

−

−

○

○

−

−

−

−

−

−

−

再編成時期予測機能適用あり

−

−

−

−

−

−

−

−

−

−

−

−

−

−

上記以外

−

−

−

−

−

−

−

−

−

−

−

−

−

−

ディクショナリ表の属性定義変更

ディクショナリ表の参照権限の変更

ディクショナリ表の表参照ルーチン定義あり

−

○

○

○

−

−

○

−

−

−

−

○

○

○

ディクショナリ表の表参照トリガ定義あり

−

−

−

−

−

−

○

○

○

○

−

○

○

○

上記以外

−

−

−

−

−

−

○

−

−

−

−

○

○

○

ディクショナリ表の混在文字データの使用

−

−

−

−

−

−

○

−

−

−

−

○

○

○

RDエリアの属性変更

extensionオペランド指定あり

−

−

−

−

−

−

−

−

−

−

−

−

−

−

renameオペランド指定あり

−

−

−

−

○

−

○

−

−

−

−

−

−

−

HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へのRDエリアの変更

分割表あり

−

−

−

−

−

−

−

−

−

−

−

−

−

−

ルーチン定義あり

−

−

−

○

−

−

−

−

−

−

−

−

−

−

上記以外

−

−

−

−

−

−

−

−

−

−

−

−

−

−

バックエンドサーバへの構成変更※１

分割表あり

−

−

−

−

−

−

−

−

−

−

−

−

−

−

ルーチン定義あり

−

−

−

○

−

−

−

−

−

−

−

−

−

−

上記以外

−

−

−

−

−

−

−

−

−

−

−

−

−

−

RDエリアの移動

分割表あり

−

−

−

−

−

−

−

−

−

−

−

−

−

−

分割表にインデクス定義あり

−

−

−

−

−

−

−

−

−

−

−

−

−

−

格納表参照ルーチン定義あり

−

○

○

○

−

−

−

−

−

−

−

−

−

−

格納表表参照トリガ定義あり

−

−

−

−

−

−

−

○

○

○

−

−

−

−

norestartオペランド指定あり

−

−

−

−

−

−

○

−

−

−

−

−

−

−

上記以外

−

−

−

−

−

−

−

−

−

−

−

−

−

−

HiRDBファイルシステム領域の世代登録

−

−

−

−

−

−

−

−

−

−

−

−

−

−

HiRDBファイルシステム領域の世代削除

−

−

−

−

−

−

−

−

−

−

−

−

−

−

RDエリアのレプリカ定義

−

−

−

−

−

−

−

−

−

−

−

−

−

−

RDエリアの構成情報複写

−

−

−

−

−

−

−

−

−

−

−

−

−

−

RDエリアの統合

−

−

−

−

−

−

−

−

−

−

−

−

−

−

監査人の登録

−

−

−

−

−

○

−

−

−

−

○

−

−

−

監査証跡表の作成

−

−

−

−

−

○

○

−

−

−

−

−

−

−

（凡例）

○：取得します。

−：取得しません。

15：SQL_REFERENTIAL_CONSTRAINTS

16：SQL_ROUTINE_PARAMS

17：SQL_ROUTINE_RESOURCES

18：SQL_ROUTINES

19：SQL_SEQUENCES

20：SQL_TABLE_PRIVILEGES

21：SQL_TABLES

22：SQL_TRIGGER_COLUMNS

23：SQL_TRIGGER_USAGE

24：SQL_TRIGGERS

25：SQL_USERS

26：SQL_VIEW_DEF

27：SQL_VIEW_TABLE_USAGE

28：SQL_VIEWS

注※1

HiRDB/シングルサーバの場合は該当しません。HiRDB/パラレルサーバの場合だけ該当します。

表B‒7　データベース再編成ユティリティの排他制御モード

実行環境

資源

表

インデクス

表（NOWAIT検索中）

資源管理テーブル

インデクス情報ファイル

ユーザLOB用RDエリ※1

RDエリア※1

表ID

RDエリア※1

インデクスID

表単位のアンロード

（-k unld）

option文の指定がunldenq=tblenq

SR

PR

SR※2

−

−

SR

−

SR

option文の指定がunldenq=rdenq

PR

SR

PR※2

−

−

SR

−

PR

option文の指定がunldenq=nowait

SR

−

SR※2

−

SR

SR

−

SR

RDエリア単位のアンロード

（-k unld）

option文の指定がunldenq=tblenq

SR

PR

SR※2

−

−

SR

−

SR

option文の指定がunldenq=rdenq

PR

SR

PR※2

−

−

SR

−

PR

option文の指定がunldenq=nowait

SR

−

SR※2

−

SR

SR

−

SR

表単位のリロード

（-k reld）

SU

EX

SU

EX

EX

SR

−

SU

RDエリア単位のリロード（-k reld）

EX

SR

SU

EX※3

−

SR

−

EX

表単位の再編成

（-k rorg）

SU

EX

SU

EX

EX

SR

−

SU

RDエリア単位の再編成

（-k rorg）

EX

SR※7

SU

EX※3

−

SR

−

EX

インデクスの一括作成

（-k ixmk）

SR

SR

SU

EX

−

SR

−

−

インデクスの再作成

（-k ixrc）

index文指定時※4

EX→SR※5

−→SR※5

SU

EX

−

SR

−

EX→−※5

SU→SR※5

EX→SR※5

EX→−※5

SU→−※5

idxname文指定時

SU

EX

SU

EX

EX

SR

−

−

インデクスの再編成

（-k ixor）※6

SR

PR

SU

EX

−

SR

−

−

EX

−

プラグインインデクスの一括作成（-k ixmk）

SR

SR

SU

EX

−

SR

EX

−

プラグインインデクスの再作成

（-k ixrc）

index文指定時※4

EX→SR※5

−→SR※5

SU

EX

−

SR

EX

EX→−※5

SU→SR※5

EX→SR※5

EX→−※5

SU→−※5

idxname文指定時

SU

EX

SU

EX

EX

SR

−

SU

LOBデータだけのリロード（-k reld）

SR

PR

−

−

−

SR

−

EX

LOBデータだけの再編成（-k rorg）

SU

EX

SR※2

−

EX

SR

−

SU

ディクショナリ表のメンテナンス（-k maintenance）

SU

EX

SU

−

−

−

−

−

注

LOB列構成基表だけのリロード又は再編成の場合，表単位にリロード又は再編成するときは表単位のリロード又は再編成，RDエリア単位にリロード又は再編成するときはRDエリア単位のリロード又は再編成と同じになります。

注※1

処理対象でないRDエリアには，排他は掛かりません。

注※2

物理順のアンロードの場合，排他は掛かりません。

注※3

非横分割インデクスに対して，リロード中は排他が掛かりません。横分割インデクスに対して排他は掛かりますが，RDエリアごとに排他が掛かるため，RDエリア単位のリロード又は再編成は同時に実行できます。

注※4

上段が横分割インデクスの場合，下段が非横分割インデクスの場合を示しています。

注※5

インデクス情報のアンロード時（KFPL00725-IからKFPL00726-Iまでの間）の排他モードを，インデクス作成時（KFPL00715-IからKFPL00716-Iまでの間）には変更します。

注※6

上段がインデクス格納RDエリアをコマンド閉塞している場合，下段がインデクス格納RDエリアをコマンド閉塞していない場合を示しています。

注※7

リロード中は排他が掛かりません。

表B‒8　データベース再編成ユティリティの排他制御モード（共用表の場合）

実行環境

資源

表

インデクス

表（NOWAIT検索中）

資源管理テーブル

インデクス情報ファイル

更新可能バックエンドサーバ

参照専用バックエンドサーバ

更新可能バックエンドサーバの共用RDエリア

参照専用バックエンドサーバの共用RDエリア

インデクスID

共用RDエリア

表ID

共用RDエリア

表ID

表のアンロード

（-k unld）

SR

PR

−

−

SR※１

−

−

−

SR

−

表のリロード

（-k reld）

EX

EX

EX

EX

EX

EX

EX

EX

SR

−

表の再編成

（-k rorg）

EX

EX

EX

EX

EX

EX

EX

EX

SR

−

インデクスの一括作成

（-k ixmk）

SR

SR

−

−

EX

EX

EX

−

SR

−

インデクスの再作成

（-k ixrc，及びindex文指定時）※２

EX→SR

EX→SR

EX

EX

EX

EX

EX

EX→−

SR

−

インデクスの再作成

（-k ixrc，及びidxname文指定時）

EX

EX

EX

EX

EX

EX

EX

EX

SR

−

インデクスの再編成

（-k ixor）

SR

PR

−

−

EX

EX

EX

−

SR

−

注※1

物理順のアンロードの場合，排他は掛かりません。

注※2

インデクス情報のアンロード時（KFPL00725-IからKFPL00726-Iまでの間）の排他モードを，インデクス作成時（KFPL00715-IからKFPL00716-Iまでの間）には変更します。

表B‒9　リバランスユティリティの排他制御モード

実行環境

資源

RDエリア

表

表（NOWAIT検索中）

インデクス

リバランス※

前処理表

共有モード

SU

EX

EX

EX

EX

SR

占有モード

SU

EX

EX

EX

−

SR

注※

リバランスの資源は，シングルサーバ又はフロントエンドサーバで排他が掛かります。

表B‒10　空きページ解放ユティリティの排他制御モード

実行環境

資源

表

表（NOWAIT検索中）

インデクス

RDエリア

資源管理テーブル

表ID

pdreclaim

トランザクション決着待ち

RDエリア

資源管理テーブル

インデクスID

pdreclaim

トランザクション決着待ち

表の空きページ解放

SU

SR

−

EX

−

SR

−

−

−

−

−

表の空きセグメント解放（-j）

EX

SR

−

EX

−

−

−

−

−

−

−

表の空きページ解放，表の空きセグメント解放（-a）

SU

SR

SR

EX

PR

SR

−

−

−

−

−

インデクスの空きページ解放

−

−

−

−

−

SR

SU

SR

EX

EX

PR

インデクスの空きセグメント解放（-j）

−

−

SR

−

−

−

EX

SR

−

EX

−

インデクスの空きページ解放，インデクスの空きセグメント解放（-a）

−

−

SR

−

−

SR

SU

SR

EX

EX

PR

表B‒11　空きページ解放ユティリティの排他制御モード（共用表の場合）

実行環境

資源

表

インデクス

更新可能バックエンドサーバ

参照専用バックエンドサーバ

資源管理テーブル

pdreclaim

トランザクション決着待ち

更新可能バックエンドサーバの共用RDエリア

参照専用バックエンドサーバの共用RDエリア

資源管理テーブル

インデクスID

pdreclaim

トランザクション決着待ち

共用RDエリア

表ID

共用RDエリア

表ID

表の空きページ解放

EX

EX

EX

EX

SR

EX

−

−

−

−

−

−

−

表の空きセグメント解放（-j）

EX

EX

EX

EX

SR

EX

−

−

−

−

−

−

−

表の空きページ解放，表の空きセグメント解放（-a）

EX

EX

EX

EX

SR

EX

PR

−

−

−

−

−

−

インデクスの空きページ解放

−

SR

−

−

−

−

−

EX

EX

SR

EX

EX

PR

インデクスの空きセグメント解放（-j）

−

SR

−

−

−

−

−

EX

EX

SR

−

EX

−

インデクスの空きページ解放，インデクスの空きセグメント解放（-a）

−

SR

−

−

−

−

−

EX

EX

SR

EX

EX

PR

表B‒12　グローバルバッファ常駐化ユティリティの排他制御モード

実行環境

資源

表

インデクス

RDエリア

資源管理テーブル

表（NOWAIT検索中）

RDエリア

資源管理テーブル

インデクスID

データページの読み込み

(-k table)

SR

SR

SR

−

−

−

インデクスページの読み込み

(-k index)

−

−

SR

SR

SR

SR

表B‒13　グローバルバッファ常駐化ユティリティの排他制御モード（共用表の場合）

実行環境

資源

表

インデクス

更新可能バックエンドサーバ

参照専用バックエンドサーバ

更新可能バックエンドサーバ

参照専用バックエンドサーバ

RDエリア

資源管理テーブル

表（NOWAIT検索中）

RDエリア

資源管理テーブル

表（NOWAIT検索中）

RDエリア

資源管理テーブル

インデクスID

RDエリア

資源管理テーブル

インデクスID

データページの読み込み

(-k table)

SR

SR

SR

SR

SR

SR

−

−

−

−

−

−

インデクスページの読み込み

(-k index)

−

−

SR

−

−

SR

SR

SR

SR

SR

SR

SR

表B‒14　データベース状態解析ユティリティの排他制御モード

実行環境

資源

RDエリア

資源管理テーブル

表

表（NOWAIT検索中）※１

HiRDBファイル

表用

インデクス用

RDエリア指定

RDエリア単位の解析

論理的解析

−

−

SR

SR

−

SR

−

物理的解析

−

−

SR

SR

−

−

SR

表単位の解析

SR

−

−

SR

SR

SR

−

インデクス単位の解析

−

SR

−

SR

SR

SR

−

状態解析結果蓄積機能

SR

SR

SR

SR

SR

−

−

再編成時期予測機能※２

SR

SR

SR

SR

SR

SR

−

注※1

-dオプションを指定した場合にだけ表（NOWAIT検索中）に排他が掛かります。

注※2

-mオプションを指定した場合の排他です。

表B‒15　最適化情報収集ユティリティの排他制御モード

実行環境

資源

RDエリア

資源管理テーブル

表

表（NOWAIT検索中）

ディクショナリ表

表用

インデクス用

表用

インデクス用

行

キー

最適化情報の取得

SR

SR

SR

SR

SR/SU※１

SR

PR※1/EX※2

PR※1/EX※2

最適化情報の削除

−

−

−

−

SU※１

−

PR※1/EX※2

PR※1/EX※2

最適化情報の登録

−

−

−

−

SU※１

−

PR※1/EX※2

PR※1/EX※2

最適化情報の退避

−

−

−

−

SU※１

−

PR※1

PR※1

注※1

ディクショナリ表検索時に，一時的に排他が掛かります。

注※2

ディクショナリ表更新時に排他が掛かります。

表B‒16　データベース複写ユティリティの排他制御モード

実行環境

資源

ディクショナリ表

RDエリア

ディレクトリブロック6※1

資源管理テーブル

インメモリ同期

-Mオプション

x

PR

PR

−

−

−

r

下記以外の場合

PR

PR

−

−

−

インメモリRDエリアの場合

PR

−

−

−

PR

s

−

−

PR

SR※2

−

注※1

ディクショナリセグメント情報又はユーザディレクトリセグメント情報のことです。

注※2

RDエリアの自動増分指定を行っている場合に排他を取得します。

表B‒17　データベース回復ユティリティの排他制御モード

実行環境

資源

ディクショナリ表

RDエリア

RDエリアの回復

EX※

EX

注※

マスタディレクトリ用RDエリアが回復対象の場合に排他が掛かります。

表B‒18　レジストリ機能初期設定ユティリティの排他制御モード

実行環境

資源

データベース構成変更ユティリティ

ディクショナリ表

RDエリア状態

RDエリア

レジストリ用RDエリア，

レジストリLOB用RDエリア，

及びレジストリ管理表の追加

（-k all）

EX

EX

EX

EX

表B‒19　整合性チェックユティリティの排他制御モード

実行環境

資源

ユーザ表

ディクショナリ表

RDエリア

表

表（NOWAIT検索中）

行

前処理表

表

RDエリア

表用

インデクス用

表用

インデクス用

整合性チェック（-k check）

ディクショナリ表検索時

−

−

−

−

PR

PR

SR

SR

SR

RDエリアの検査保留状態取得時※

SR

SR

PR

−

−

−

−

−

−

整合性チェック時

↓

↓

↓

−

−

−

−

−

−

検査保留状態設定時

SU

SU

EX

EX

EX

PR

SU

SU

SU

検査保留状態の強制設定(-k set)，又は検査保留状態の強制解除（-k release）

ディクショナリ表検索時

−

−

−

−

PR

PR

SR

SR

SR

RDエリアの検査保留状態取得時※

SR

SR

PR

−

−

−

−

−

−

検査保留状態の設定時又は解除時

SU

↓

EX

EX

EX

PR

SU

SU

SU

注※

UNTIL DISCONNECTで排他を掛けます（検査保留状態設定が完了し，DISCONNECTするまで排他を保持します）。

表B‒20　JP1/NETM/Audit用監査ログ出力ユティリティ

実行環境

資源

監査証跡表(ユーザ表)

ディクショナリ表

インナレプリカ構成管理情報

RDエリア

表

行

行

前処理表

表

RDエリア

表用

インデクス用

BLOB

表用

インデクス用

-k i

ディクショナリ表検索時

−

−

−

−

−

PR※1

PR※1

SR※1

SR※1

SR※1

−

-k m

ディクショナリ表検索時

−

−

−

−

−

PR※1

PR※1

SR※1

SR※1

SR※1

−

-k r

ディクショナリ表検索時

−

−

−

−

−

PR※1

PR※1

SR※1

SR※1

SR※1

−

監査証跡表検索時

SR

SR※2

−

SR

−

−

−

−

−

−

−

注※1

ディクショナリ表（SQL_USERS,SQL_TABLES）検索時に一時的に排他を掛けます。

注※2

監査証跡表に対してインデクスを定義している場合，排他を掛けます。

付録C　コマンド実行時のRDエリアの状態

付録C.1　RDエリアの状態遷移

運用コマンド実行時のRDエリアの状態遷移を次の表に示します。

表C‒1　RDエリアの状態遷移（1/2）

RDエリアの状態（遷移前）

RDエリアの状態（遷移後）

オープン

閉塞

クローズ

閉塞，かつクローズ

参照可能閉塞

参照可能閉塞，かつクローズ

オープン※１

−

pdhold

トランザクション終了※３

pdhold -c

pdhold -i

×

閉塞

pdrels又はpdrels -o

−

×

pdclose

pdhold -i

×

クローズ

pdopen，pdrels -o，又はトランザクション開始※２

×

−

pdhold又はpdhold -c

×

pdhold -i

閉塞，かつクローズ

pdrels -o

pdopen

pdrels

−

×

pdhold -i

参照可能閉塞

pdrels又はpdrels -o

×

×

×

−

pdclose又はトランザクション終了※３

参照可能閉塞，かつクローズ

×

×

pdrels

pdhold又はpdhold -c

pdopen又はトランザクション開始※２

−

参照可能バックアップ閉塞

pdrels又はpdrels -o

×

×

×

×

×

参照可能バックアップ閉塞，かつクローズ

pdrels -o

×

pdrels

×

×

×

更新可能バックアップ閉塞

pdrels又はpdrels -o

×

×

×

×

×

更新可能バックアップ閉塞，かつクローズ

pdrels -o

×

pdrels

×

×

×

同期化閉塞

pdrels又はpdrels -o

×

×

×

×

×

同期化閉塞クローズ

pdrels -o

×

pdrels

×

×

×

オンライン再編成閉塞

pdorbegin -u※４，pdorend※４，pdorend -z※４，又はpdorend -u

pdhold

×

pdhold -c，pdorbegin -u※５，pdorend※５，又はpdorend -z※５

×

×

オンライン再編成閉塞，かつクローズ

×

×

pdorbegin -u※４，pdorend※４，pdorend -z※４，又はpdorend -u

pdhold，pdorbegin -u※５，pdorend※５，又はpdorend -z※５

×

×

（凡例）

−：該当しません。

×：遷移後のRDエリアの状態に遷移できません。

注※1

pdcloseコマンドを実行すると，閉塞されていないためエラーとなります。

注※2

RDエリアのオープン契機がDEFER又はSCHEDULEの場合に状態が遷移します。

注※3

RDエリアのオープン契機がSCHEDULEの場合に状態が遷移します。

注※4

オリジナルRDエリアの場合，状態が遷移します。

注※5

レプリカRDエリアの場合，状態が遷移します。

表C‒2　RDエリアの状態遷移（2/2）

RDエリアの状態（遷移前）

RDエリアの状態（遷移後）

参照可能バックアップ閉塞

参照可能バックアップ閉塞，かつクローズ

更新可能バックアップ閉塞

更新可能バックアップ閉塞，かつクローズ

同期化閉塞

同期化閉塞，かつクローズ

オンライン再編成閉塞

オンライン再編成閉塞，かつクローズ

オープン※１

pdhold -b

×

pdhold -b -u

×

pdhold -s

×

pdorbegin※６

×

閉塞

×

×

×

×

×

×

pdrels

×

クローズ

pdhold -b※５

×

pdhold -b -u※５

×

×

×

pdorbegin※５※６

pdorbegin※３※６

閉塞，かつクローズ

×

pdhold -b※２

×

pdhold -b -u※２

×

×

pdrels -o

pdrels又はpdorbegin※７

参照可能閉塞

×

×

×

×

×

×

×

×

参照可能閉塞，かつクローズ

×

×

×

×

×

×

×

×

参照可能バックアップ閉塞

−

トランザクション終了※３又はpdclose※４

×

×

pdhold -s

×

×

×

参照可能バックアップ閉塞，かつクローズ

トランザクション開始※２又はpdopen※４

−

×

×

×

×

×

×

更新可能バックアップ閉塞

×

×

−

トランザクション終了※３

×

×

×

×

更新可能バックアップ閉塞，かつクローズ

×

×

トランザクション開始※２

−

×

×

×

×

同期化閉塞

×

×

×

×

−

pdclose又はトランザクション終了※３

×

×

同期化閉塞，かつクローズ

×

×

×

×

pdopen又はトランザクション開始※２

−

×

×

オンライン再編成閉塞

×

×

×

×

×

×

−

pdclose又はトランザクション終了※8

オンライン再編成閉塞，かつクローズ

×

×

×

×

×

×

pdopen，トランザクション開始，又はpdorchg※７

−

（凡例）

−：該当しません。

×：遷移後のRDエリアの状態に遷移できません。

注※1

pdcloseコマンドを実行すると，閉塞されていないためエラーとなります。

注※2

RDエリアのオープン契機がDEFER又はSCHEDULEの場合に状態が遷移します。

注※3

RDエリアのオープン契機がSCHEDULEの場合に状態が遷移します。

注※4

参照可能バックアップ閉塞（更新WAITモード）でない場合，状態が遷移します。

注※5

RDエリアのオープン契機がDEFERの場合に状態が遷移します。

注※6

オリジナルRDエリアの場合，状態が遷移します。

注※7

レプリカRDエリアの場合，状態が遷移します。

注※8

トランザクション終了時に遷移するのは，RDエリアのオープン契機がSCHEDULEで，トランザクション開始前がオンライン再編成閉塞，かつクローズだった場合です。

付録C.2　RDエリアの状態によるユティリティ及びUAPの実行可否

ユティリティ及びUAPを実行する場合，RDエリアのオープン契機，及びRDエリアの状態によって実行可否が決まります。RDエリアの状態によるユティリティ及びUAPの実行可否を次の表に示します。

表「RDエリアの状態によるユティリティ及びUAPの実行可否（オープン契機がINITIALの場合）（1/3）」

表「RDエリアの状態によるユティリティ及びUAPの実行可否（オープン契機がINITIALの場合）（2/3）」

表「RDエリアの状態によるユティリティ及びUAPの実行可否（オープン契機がINITIALの場合）（3/3）」

表「RDエリアの状態によるユティリティ及びUAPの実行可否（オープン契機がDEFER又はSCHEDULEの場合）（1/3）」

表「RDエリアの状態によるユティリティ及びUAPの実行可否（オープン契機がDEFER又はSCHEDULEの場合）（2/3）」

表「RDエリアの状態によるユティリティ及びUAPの実行可否（オープン契機がDEFER又はSCHEDULEの場合）（3/3）」

表C‒3　RDエリアの状態によるユティリティ及びUAPの実行可否（オープン契機がINITIALの場合）（1/3）

ユティリティ又はUAP

閉塞なし

コマンド閉塞

参照可能閉塞

オープン

クローズ

オープン

クローズ

オープン

クローズ

データベース構成変更ユティリティ

RDエリアの追加

−

−

−

−

−

−

RDエリアの削除

×

×

×

○

×

○

RDエリアの再初期化

×

×

×

○

×

○

RDエリアの拡張※３

○

×

○

×

○

×

RDエリアの属性変更

×

×

×

○

×

○

RDエリアのレプリカ定義

オリジナルRDエリア

○

○

○

○

○

○

レプリカRDエリア

−

−

−

−

−

−

RDエリアの構成情報複写

複写元

○

○

○

○

○

○

複写先

×

×

×

○

×

○

RDエリアの統合

オリジナルRDエリア

×

×

×

○

×

○

レプリカRDエリア

×

×

×

○

×

○

RDエリアの移動

オンライン中のRDエリアの移動機能適用なし

×

×

×

○

×

○

オンライン中のRDエリアの移動機能適用あり

×

×

×

○

×

×

データベース作成ユティリティ※３

○※４

×

○※４※５

×

○※４※５

×

データベース再編成ユティリティ※３

再編成（-k rorg）

○※２※４

×

○

×

○※２※４

×

アンロード（-k unld）

○

×

○

×

○

×

リロード（-k reld）

○※２※４

×

○

×

○※２※４

×

インデクスの一括作成

（-k ixmk）

○

×

○

×

○

×

インデクスの再作成

（-k ixrc）

○

×

○

×

○

×

インデクスの再編成

（-k ixor）

○

×

○

×

○

×

ディクショナリ表のメンテナンス

（-k maintenance）

○

×

○

×

○

×

空きページ解放ユティリティ※３

○

×

○

×

○

×

グローバルバッファ常駐化ユティリティ

○

×

×

×

○

×

リバランスユティリティ

○

×

○

×

○

×

データベース複写ユティリティ

-M x

×

○

×

○

×

○

-M r

○

○

○

○

○

○

-M s

○

○

○

○

○

○

データベース回復ユティリティ

×

×

×

○

×

×

データベース状態解析ユティリティ

○

×

○

×

○

×

最適化情報収集ユティリティ

○

×

×

×

○

×

ディクショナリ搬出入ユティリティ

○

×

×

×

×

×

データベース定義ユティリティ

○

×

×

×

×

×

整合性チェックユティリティ

○

×

×

×

×

×

オンライン再編成の追い付き反映（pdorendコマンド）

×

×

×

×

×

×

JP1/NETM/Audit用監査ログ出力ユティリティ

○

×

×

×

○

×

ファイルパス変更オンラインコマンド（pdchpathnコマンド）

○

×

×

×

×

×

UAP

○

×

×

×

○※１

×

（凡例）

○：実行できます。

×：実行できません。

−：該当しません。

注※1

参照系のUAPだけ実行できます。

注※2

改竄防止表に対しては実行できません。

注※3

同一レプリカグループ内のオンライン再編成閉塞のオリジナルRDエリアが，カレントの場合は実行できません。

注※4

被参照表に対してユティリティを実行し，参照表を検査保留状態にできるかどうかについては，「検査保留状態の設定可否」を参照してください。

注※5

インポートで表を定義する場合（pdload -b -W -w all指定時）は実行できません。

表C‒4　RDエリアの状態によるユティリティ及びUAPの実行可否（オープン契機がINITIALの場合）（2/3）

ユティリティ又はUAP

参照可能バックアップ閉塞

更新可能バックアップ閉塞

障害閉塞

オープン

クローズ

オープン

オープン

クローズ

データベース構成変更ユティリティ

RDエリアの追加

−

−

−

−

−

RDエリアの削除

×

×

×

×

○

RDエリアの再初期化

×

×

×

×

○

RDエリアの拡張※４

×

×

×

×

×

RDエリアの変更

×

×

×

×

×

RDエリアのレプリカ定義

オリジナルRDエリア

○

○

○

○

○

レプリカRDエリア

−

−

−

−

−

RDエリアの構成情報複写

複写元

○

○

○

○

○

複写先

×

×

×

×

×

RDエリアの統合

オリジナルRDエリア

×

×

×

×

×

レプリカRDエリア

×

×

×

×

×

RDエリアの移動

オンライン中のRDエリアの移動機能適用なし

×

×

×

×

×

オンライン中のRDエリアの移動機能適用あり

×

×

×

×

×

データベース作成ユティリティ※４

×

×

×

×

×

データベース再編成ユティリティ※４

再編成（-k rorg）

×

×

×

×

×

アンロード（-k unld）

○

×

○

×

×

リロード（-k reld）

×

×

×

×

×

インデクスの一括作成

（-k ixmk）

×

×

×

×

×

インデクスの再作成

（-k ixrc）

×

×

×

×

×

インデクスの再編成

（-k ixor）

×

×

×

×

×

ディクショナリ表のメンテナンス

（-k maintenance）

×

×

○

−

−

空きページ解放ユティリティ※４

×

×

×

×

×

グローバルバッファ常駐化ユティリティ

○

×

○

×

×

リバランスユティリティ

×

×

×

×

×

データベース複写ユティリティ

-M x

×

○

×

×

○

-M r

○

○

○※１

×

×

-M s

○

○

○

○

○

データベース回復ユティリティ

×

×

×

×

○

データベース状態解析ユティリティ

○

×

○

×

×

最適化情報収集ユティリティ

○※２

×

○※２

×

×

ディクショナリ搬出入ユティリティ

×

×

○

×

×

データベース定義ユティリティ

×

×

○

×

×

整合性チェックユティリティ

○

×

○

×

×

オンライン再編成の追い付き反映（pdorendコマンド）

×

×

×

×

×

JP1/NETM/Audit用監査ログ出力ユティリティ

○

×

○

×

×

ファイルパス変更オンラインコマンド（pdchpathnコマンド）

×

×

×

×

×

UAP

○※３

×

○

×

×

（凡例）

○：実行できます。

×：実行できません。

−：該当しません。

注※1

更新のトランザクション実行中の場合は実行できません。

注※2

ディクショナリ用RDエリアが参照可能バックアップ閉塞の場合は実行できません。

注※3

参照系のUAPだけ実行できます。

注※4

同一レプリカグループ内のオンライン再編成閉塞のオリジナルRDエリアが，カレントの場合は実行できません。

表C‒5　RDエリアの状態によるユティリティ及びUAPの実行可否（オープン契機がINITIALの場合）（3/3）

ユティリティ又はUAP

ログレス閉塞

同期化閉塞

オンライン再編成閉塞

オープン

クローズ

オープン

クローズ

オープン

クローズ

データベース構成変更ユティリティ

RDエリアの追加

−

−

−

−

−

−

RDエリアの削除

×

○

×

×

×

×

RDエリアの再初期化

×

○

×

○

×

○

RDエリアの拡張※８

×

×

×

×

○

×

RDエリアの変更

×

×

×

×

×

×

RDエリアのレプリカ定義

オリジナルRDエリア

○

○

○

○

○

○

レプリカRDエリア

−

−

−

−

−

−

RDエリアの構成情報複写

複写元

○

○

○

○

○

○

複写先

×

×

×

×

×

×

RDエリアの統合

オリジナルRDエリア

×

×

×

×

×

×

レプリカRDエリア

×

×

×

×

×

×

RDエリアの移動

オンライン中のRDエリアの移動機能適用なし

×

×

×

×

×

×

オンライン中のRDエリアの移動機能適用あり

×

×

×

×

×

×

データベース作成ユティリティ※８

×

×

×

×

○※３※１０※１３

×

データベース再編成ユティリティ※８

再編成（-k rorg）

×

×

×

×

○※４※５※１０

×

アンロード（-k unld）

×

×

×

×

○※５

×

リロード（-k reld）

×

×

×

×

○※４※５※１０

×

インデクスの一括作成

（-k ixmk）

×

×

×

×

○※５

×

インデクスの再作成

（-k ixrc）

×

×

×

×

○※５

×

インデクスの再編成

（-k ixor）

×

×

×

×

○※５

×

ディクショナリ表のメンテナンス

（-k maintenance）

−

−

−

−

−

−

空きページ解放ユティリティ※８

×

×

×

×

○

×

グローバルバッファ常駐化ユティリティ

×

×

×

×

○

×

リバランスユティリティ

×

×

×

×

×

×

データベース複写ユティリティ

-M x

×

○

×

×

×

○

-M r

×

×

×

×

○

○

-M s

○

○

×

×

○

○

データベース回復ユティリティ

×

○

×

○

×

×

データベース状態解析ユティリティ

×

×

×

×

○※９

×

最適化情報収集ユティリティ

×

×

×

×

×※７

×

ディクショナリ搬出入ユティリティ

×

×

−

−

−

−

データベース定義ユティリティ

×

×

−

−

−

−

整合性チェックユティリティ

×

×

○※１１

×※１２

○

×

オンライン再編成の追い付き反映（pdorendコマンド）

×

×

×

×

○

×

JP1/NETM/Audit用監査ログ出力ユティリティ

×

×

○※１１

×※１２

○

×

ファイルパス変更オンラインコマンド（pdchpathnコマンド）

×

×

×

×

×

×

UAP

○※１

×

○※２

○※２

○※６

○※６

（凡例）

○：実行できます。

×：実行できません。

−：該当しません。

注※1

PURGE TABLE文だけ実行できます。

注※2

排他待ちとなります。

注※3

レプリカRDエリアに対して，作成モード，ログレスモード（又は更新前ログ取得モード），及び一括出力用ローカルバッファ面数を指定した場合は実行できません。また，LOB列が定義されている表に対しても実行できません。

注※4

改竄防止表に対しては実行できません。

注※5

レプリカRDエリアに対しては実行できません。

注※6

カレントRDエリアにアクセスするログ取得モードのSQLだけ実行できます（CREATE TABLE，CREATE INDEX，ALTER TABLE，DROP TABLE，DROP INDEX，DROP SCHEMA，PURGE TABLE文，及びLOCK文を除く）。

注※7

レプリカRDエリアに対して-c lvl1を指定した場合は実行できます。

注※8

同一レプリカグループ内のオンライン再編成閉塞のオリジナルRDエリアが，カレントの場合は実行できません。

注※9

-sオプションを指定した場合は実行できません。

注※10

被参照表に対してユティリティを実行し，参照表を検査保留状態にできるかどうかについては，「検査保留状態の設定可否」を参照してください。

注※11

閉塞が解除されるまで排他待ちとなります。閉塞が解除された後は実行できます。

注※12

閉塞が解除されるまで排他待ちとなります。閉塞が解除された後はクローズ状態のため，オープンすれば実行できます。

注※13

インポートで表を定義する場合（pdload -b -W -w all指定時）は実行できません。

表C‒6　RDエリアの状態によるユティリティ及びUAPの実行可否（オープン契機がDEFER又はSCHEDULEの場合）（1/3）

ユティリティ又はUAP

閉塞なし

コマンド閉塞

参照可能閉塞

オープン

クローズ

オープン

クローズ

オープン

クローズ

データベース構成変更ユティリティ

RDエリアの追加

−

−

−

−

−

−

RDエリアの削除

×

×

×

○

×

○

RDエリアの再初期化

×

×

×

○

×

○

RDエリアの拡張※４

○

○

○

×

○

×

RDエリアの属性変更

×

×

×

○

×

○

RDエリアのレプリカ定義

オリジナルRDエリア

○

○

○

○

○

○

レプリカRDエリア

−

−

−

−

−

−

RDエリアの構成情報複写

複写元

○

○

○

○

○

○

複写先

×

×

×

○

×

○

RDエリアの統合

オリジナルRDエリア

×

×

×

○

×

○

レプリカRDエリア

×

×

×

○

×

○

RDエリアの移動

オンライン中のRDエリアの移動機能適用なし

×

×

×

○

×

○

オンライン中のRDエリアの移動機能適用あり

×

×

×

○

×

×

データベース作成ユティリティ※４

○※５

○※５※７

○※５※７

×

○※５※７

○※５※７

データベース再編成ユティリティ※４

再編成（-k rorg）

○※３※５

○※３※５

○

×

○※３※５

○※３※５

アンロード（-k unld）

○

○

○

×

○

○

リロード（-k reld）

○※３※５

○※３※５

○

×

○※３※５

○※３※５

インデクスの一括作成

（-k ixmk）

○

○

○

×

○

○

インデクスの再作成

（-k ixrc）

○

○

○

×

○

○

インデクスの再編成

（-k ixor）

○

○

○

×

○

○

ディクショナリ表のメンテナンス

（-k maintenance）

−

−

−

−

−

−

空きページ解放ユティリティ※４

○

○

○

×

○

○

グローバルバッファ常駐化ユティリティ

○

○

×

×

○

○

リバランスユティリティ

○

○

○

×

○

○

データベース複写ユティリティ

-M x

×

×※６

×

○

×

○

-M r

○

○

○

○

○

○

-M s

○

○

○

○

○

○

データベース回復ユティリティ

×

×

×

○

×

×

データベース状態解析ユティリティ

○

○

○

×

○

○

最適化情報収集ユティリティ

○

○

×

×

○

○

ディクショナリ搬出入ユティリティ※１

−

−

−

−

−

−

データベース定義ユティリティ

○

×

×

×

×

×

整合性チェックユティリティ

○

○

×

×

×

×

オンライン再編成の追い付き反映（pdorendコマンド）

×

×

×

×

×

×

JP1/NETM/Audit用監査ログ出力ユティリティ

○

○

×

×

○

○

ファイルパス変更オンラインコマンド（pdchpathnコマンド）

−

−

−

−

−

−

UAP

○

○

×

×

○※２

○※２

（凡例）

○：実行できます。

×：実行できません。

−：該当しません。

注※1

対象となるRDエリアのオープン契機が，DEFER又はSCHEDULEになることはないため，該当しません。

注※2

参照系のUAPだけ実行できます。

注※3

改竄防止表に対しては実行できません。

注※4

同一レプリカグループ内のオンライン再編成閉塞のオリジナルRDエリアが，カレントの場合は実行できません。

注※5

被参照表に対してユティリティを実行し，参照表を検査保留状態にできるかどうかについては，「検査保留状態の設定可否」を参照してください。

注※6

-M xオプション指定のpdcopyコマンドは実行できますが，実行中に更新SQL，又はデータベースを更新するユティリティ（コマンドも含む）を実行した場合，バックアップ中のデータの整合性は保障されません。

注※7

インポートで表を定義する場合（pdload -b -W -w all指定時）は実行できません。

表C‒7　RDエリアの状態によるユティリティ及びUAPの実行可否（オープン契機がDEFER又はSCHEDULEの場合）（2/3）

ユティリティ又はUAP

参照可能バックアップ閉塞

更新可能バックアップ閉塞

障害閉塞

オープン

クローズ

オープン

クローズ

オープン

クローズ

データベース構成変更ユティリティ

RDエリアの追加

−

−

−

−

−

−

RDエリアの削除

×

×

×

×

×

○

RDエリアの再初期化

×

×

×

×

×

○

RDエリアの拡張※５

×

×

×

×

×

×

RDエリアの属性変更

×

×

×

×

×

×

RDエリアのレプリカ定義

オリジナルRDエリア

○

○

○

○

○

○

レプリカRDエリア

−

−

−

−

−

−

RDエリアの構成情報複写

複写元

○

○

○

○

○

○

複写先

×

×

×

×

×

×

RDエリアの統合

オリジナルRDエリア

×

×

×

×

×

×

レプリカRDエリア

×

×

×

×

×

×

RDエリアの移動

オンライン中のRDエリアの移動機能適用なし

×

×

×

×

×

×

オンライン中のRDエリアの移動機能適用あり

×

×

×

×

×

×

データベース作成ユティリティ※５

×

×

×

×

×

×

データベース再編成ユティリティ※５

再編成（-k rorg）

×

×

×

×

×

×

アンロード（-k unld）

○

○

○

○

×

×

リロード（-k reld）

×

×

×

×

×

×

インデクスの一括作成

（-k ixmk）

×

×

×

×

×

×

インデクスの再作成

（-k ixrc）

×

×

×

×

×

×

インデクスの再編成

（-k ixor）

×

×

×

×

×

×

ディクショナリ表のメンテナンス

（-k maintenance）

−

−

−

−

−

−

空きページ解放ユティリティ※５

×

×

×

×

×

×

グローバルバッファ常駐化ユティリティ

○

○

○

○

×

×

リバランスユティリティ

×

×

×

×

×

×

データベース複写ユティリティ

-M x

×

○

×

○

×

○

-M r

○

○

○※１

○※１

×

×

-M s

○

○

○

○

○

○

データベース回復ユティリティ

×

×

×

×

×

○

データベース状態解析ユティリティ

○

○

○

○

×

×

最適化情報収集ユティリティ

○※３

○※３

○※３

○※３

×

×

ディクショナリ搬出入ユティリティ※２

−

−

−

−

−

−

データベース定義ユティリティ

×

×

○

○

×

×

整合性チェックユティリティ

×

×

○

○

×

×

オンライン再編成の追い付き反映（pdorendコマンド）

×

×

×

×

×

×

JP1/NETM/Audit用監査ログ出力ユティリティ

○

○

○

○

×

×

ファイルパス変更オンラインコマンド（pdchpathnコマンド）

−

−

−

−

−

−

UAP

○※４

○※４

○

○

×

×

（凡例）

○：実行できます。

×：実行できません。

−：該当しません。

注※1

更新のトランザクション実行中の場合は実行できません。

注※2

対象となるRDエリアのオープン契機が，DEFER又はSCHEDULEになることはないため，該当しません。

注※3

ディクショナリ用RDエリアが参照可能バックアップ閉塞の場合は実行できません。

注※4

参照系のUAPだけ実行できます。

注※5

同一レプリカグループ内のオンライン再編成閉塞のオリジナルRDエリアが，カレントの場合は実行できません。

表C‒8　RDエリアの状態によるユティリティ及びUAPの実行可否（オープン契機がDEFER又はSCHEDULEの場合）（3/3）

ユティリティ又はUAP

ログレス閉塞

同期化閉塞

オンライン再編成閉塞

オープン

クローズ

オープン

クローズ

オープン

クローズ

データベース構成変更ユティリティ

RDエリアの追加

−

−

×

×

−

−

RDエリアの削除

×

○

×

×

×

×

RDエリアの再初期化

×

○

×

○

×

○

RDエリアの拡張※９

×

×

×

×

○

×

RDエリアの変更

×

×

×

×

×

×

RDエリアのレプリカ定義

オリジナルRDエリア

○

○

○

○

○

○

レプリカRDエリア

−

−

−

−

−

−

RDエリアの構成情報複写

複写元

○

○

○

○

○

○

複写先

×

×

×

×

×

×

RDエリアの統合

オリジナルRDエリア

×

×

×

×

×

×

レプリカRDエリア

×

×

×

×

×

×

RDエリアの移動

オンライン中のRDエリアの移動機能適用なし

×

×

×

×

×

×

オンライン中のRDエリアの移動機能適用あり

×

×

×

×

×

×

データベース作成ユティリティ※９

×

×

×

×

○※５※１１※１３

○※５※１１※１３

データベース再編成ユティリティ※９

再編成（-k rorg）

×

×

×

×

○※４※６※１１

○※４※６※１１

アンロード（-k unld）

×

×

×

×

○※６

○※６

リロード（-k reld）

×

×

×

×

○※４※６※１１

○※４※６※１１

インデクスの一括作成

（-k ixmk）

×

×

×

×

○※６

○※６

インデクスの再作成

（-k ixrc）

×

×

×

×

○※６

○※６

インデクスの再編成

（-k ixor）

×

×

×

×

○※６

○※６

ディクショナリ表のメンテナンス

（-k maintenance）

−

−

−

−

−

−

空きページ解放ユティリティ※９

×

×

×

×

○

○

グローバルバッファ常駐化ユティリティ

×

×

×

×

○

○

リバランスユティリティ

×

×

×

×

×

×

データベース複写ユティリティ

-M x

×

○

×

×

×

○

-M r

×

×

×

×

○

○

-M s

○

○

×

×

×

○

データベース回復ユティリティ

×

○

×

○

×

×

データベース状態解析ユティリティ

×

×

×

×

○※１０

○※１０

最適化情報収集ユティリティ

×

×

×

×

×※８

×

ディクショナリ搬出入ユティリティ※１

−

−

−

−

−

−

データベース定義ユティリティ

×

×

−

−

−

−

整合性チェックユティリティ

×

×

○※１２

○※１２

○

○

オンライン再編成の追い付き反映（pdorendコマンド）

×

×

×

×

○

○

JP1/NETM/Audit用監査ログ出力ユティリティ

×

×

○※１２

○※１２

○

○

ファイルパス変更オンラインコマンド（pdchpathnコマンド）

−

−

−

−

−

−

UAP

○※２

○※２

○※３

○※３

○※７

○※７

（凡例）

○：実行できます。

×：実行できません。

−：該当しません。

注※1

対象となるRDエリアのオープン契機が，DEFER又はSCHEDULEになることはないため，該当しません。

注※2

PURGE TABLE文だけ実行できます。

注※3

排他待ちとなります。

注※4

改竄防止表に対しては実行できません。

注※5

レプリカRDエリアに対して，作成モード，ログレスモード（又は更新前ログ取得モード），及び一括出力用ローカルバッファ面数を指定した場合は実行できません。また，LOB列が定義されている表に対しても実行できません。

注※6

レプリカRDエリアに対しては実行できません。

注※7

カレントRDエリアにアクセスするログ取得モードのSQLだけ実行できます（CREATE TABLE，CREATE INDEX，ALTER TABLE，DROP TABLE，DROP INDEX，DROP SCHEMA，PURGE TABLE文，及びLOCK文を除く）。

注※8

レプリカRDエリアに対して-c lvl1を指定した場合は実行できます。

注※9

同一レプリカグループ内のオンライン再編成閉塞のオリジナルRDエリアが，カレントの場合は実行できません。

注※10

-sオプションを指定した場合は実行できません。

注※11

被参照表に対してユティリティを実行し，参照表を検査保留状態にできるかどうかについては，「検査保留状態の設定可否」を参照してください。

注※12

閉塞が解除されるまで排他待ちとなります。閉塞が解除された後は実行できます。

注※13

インポートで表を定義する場合（pdload -b -W -w all指定時）は実行できません。

付録C.3　検査保留状態の設定可否

被参照表に対してユティリティを実行して，参照表を検査保留状態にする場合，RDエリアのオープン契機，及びRDエリアの状態によって実行可否が変わります。RDエリアの状態によるユティリティでの検査保留状態の設定可否を次の表に示します。

表「RDエリアの状態によるユティリティでの検査保留状態の設定可否（オープン契機がINITIALの場合）（1/3）」

表「RDエリアの状態によるユティリティでの検査保留状態の設定可否（オープン契機がINITIALの場合）（2/3）」

表「RDエリアの状態によるユティリティでの検査保留状態の設定可否（オープン契機がINITIALの場合）（3/3）」

表「RDエリアの状態によるユティリティでの検査保留状態の設定可否（オープン契機がDEFER又はSCHEDULEの場合）（1/3）」

表「RDエリアの状態によるユティリティでの検査保留状態の設定可否（オープン契機がDEFER又はSCHEDULEの場合）（2/3）」

表「RDエリアの状態によるユティリティでの検査保留状態の設定可否（オープン契機がDEFER又はSCHEDULEの場合）（3/3）」

表C‒9　RDエリアの状態によるユティリティでの検査保留状態の設定可否（オープン契機がINITIALの場合）（1/3）

ユティリティ

閉塞なし

コマンド閉塞

参照可能閉塞

オープン

クローズ

オープン

クローズ

オープン

クローズ

データベース構成変更ユティリティ

○

△

△

△

△

△

データベース作成ユティリティ

○

×

○

×

○

×

データベース再編成ユティリティ

○

×

○

×

○

×

オンライン再編成の追い付き反映（pdorendコマンド）

○

△

△

△

△

△

（凡例）

○：検査保留状態に設定できます。

△：検査保留状態に設定できません。なお，処理をスキップして，次の処理を続行します。

×：検査保留状態に設定できません。

表C‒10　RDエリアの状態によるユティリティでの検査保留状態の設定可否（オープン契機がINITIALの場合）（2/3）

ユティリティ

参照可能バックアップ閉塞

更新可能バックアップ閉塞

障害閉塞

オープン

クローズ

オープン

オープン

クローズ

データベース構成変更ユティリティ

△

△

○

△

△

データベース作成ユティリティ

×

×

○

×

×

データベース再編成ユティリティ

×

×

○

×

×

オンライン再編成の追い付き反映（pdorendコマンド）

△

△

○

△

△

（凡例）

○：検査保留状態に設定できます。

△：検査保留状態に設定できません。なお，処理をスキップして，次の処理を続行します。

×：検査保留状態に設定できません。

表C‒11　RDエリアの状態によるユティリティでの検査保留状態の設定可否（オープン契機がINITIALの場合）（3/3）

ユティリティ

ログレス閉塞

同期化閉塞

オンライン再編成閉塞

オープン

クローズ

オープン

クローズ

オープン

クローズ

データベース構成変更ユティリティ

△

△

△

△

○

△

データベース作成ユティリティ

×

×

●※１

×※２

○

×

データベース再編成ユティリティ

×

×

●※１

×※２

○

×

オンライン再編成の追い付き反映（pdorendコマンド）

△

△

△

△

○

△

（凡例）

○：検査保留状態に設定できます。

●：閉塞解除まで待って，検査保留状態に設定します。

△：検査保留状態に設定できません。なお，処理をスキップして，次の処理を続行します。

×：検査保留状態に設定できません。

注※1

閉塞が解除されるまで排他待ちとなります。閉塞が解除された後は実行できます。

注※2

閉塞が解除されるまで排他待ちとなります。閉塞が解除された後はクローズ状態のため，オープンすれば実行できます。

表C‒12　RDエリアの状態によるユティリティでの検査保留状態の設定可否（オープン契機がDEFER又はSCHEDULEの場合）（1/3）

ユティリティ

閉塞なし

コマンド閉塞

参照可能閉塞

オープン

クローズ

オープン

クローズ

オープン

クローズ

データベース構成変更ユティリティ

○

○

△

△

△

○

データベース作成ユティリティ

○

○

○

×

○

○

データベース再編成ユティリティ

○

○

○

×

○

○

オンライン再編成の追い付き反映（pdorendコマンド）

○

○

△

△

△

○

（凡例）

○：検査保留状態に設定できます。

△：検査保留状態に設定できません。なお，処理をスキップして，次の処理を続行します。

×：検査保留状態に設定できません。

表C‒13　RDエリアの状態によるユティリティでの検査保留状態の設定可否（オープン契機がDEFER又はSCHEDULEの場合）（2/3）

ユティリティ

参照可能バックアップ閉塞

更新可能バックアップ閉塞

障害閉塞

オープン

クローズ

オープン

クローズ

オープン

クローズ

データベース構成変更ユティリティ

△

△

○

○

△

△

データベース作成ユティリティ

×

×

○

○

×

×

データベース再編成ユティリティ

×

×

○

○

×

×

オンライン再編成の追い付き反映（pdorendコマンド）

△

△

○

○

△

△

（凡例）

○：検査保留状態に設定できます。

△：検査保留状態に設定できません。なお，処理をスキップして，次の処理を続行します。

×：検査保留状態に設定できません。

表C‒14　RDエリアの状態によるユティリティでの検査保留状態の設定可否（オープン契機がDEFER又はSCHEDULEの場合）（3/3）

ユティリティ

ログレス閉塞

同期化閉塞

オンライン再編成閉塞

オープン

クローズ

オープン

クローズ

オープン

クローズ

データベース構成変更ユティリティ

△

△

△

△

○

○

データベース作成ユティリティ

×

×

●※

●※

○

○

データベース再編成ユティリティ

×

×

●※

●※

○

○

オンライン再編成の追い付き反映（pdorendコマンド）

△

△

△

△

○

○

（凡例）

○：検査保留状態に設定できます。

●：閉塞解除まで待って，検査保留状態に設定します。

△：検査保留状態に設定できません。なお，処理をスキップして，次の処理を続行します。

×：検査保留状態に設定できません。

注※

閉塞が解除されるまで排他待ちとなります。閉塞が解除された後は実行できます。

付録D　ユティリティの最大同時実行数

付録D.1　各ユティリティの最大同時実行数

ユティリティの最大同時実行数を次の表に示します。この表に示す最大同時実行数は，各ユティリティを単独で同時実行したときの値です。pd_max_usersオペランドの値に依存するユティリティの最大同時実行数は，ほかのユティリティ実行数とUAPの実行数に影響されます。

最大同時接続数を超えると，ユティリティは次に示すどれかの動作をします。

異常終了します。

実行中のユティリティが終了するまで無応答になります。

プロセス割り当て時の要求電文を格納するための共用メモリ中のバッファが不足し，ユティリティが異常終了します。

表D‒1　ユティリティの最大同時実行数

ユティリティ

最大同時実行数

pd_utl_exec_mode=0

pd_utl_exec_mode=1

データベース初期設定ユティリティ（pdinit）

1

データベース定義ユティリティ（pddef）※1

pd_max_usersオペランドの値

データベース作成ユティリティ（pdload）

-b -W -w allを指定した場合

MIN（32，pd_max_usersオペランドの値）÷2

-b -W -w all以外を指定した場合

MIN（32，pd_max_usersオペランドの値）

-b -W -w allを指定した場合

pd_max_usersオペランドの値÷2

-b -W -w all以外を指定した場合

pd_max_usersオペランドの値

会話型SQL実行ユティリティ（pdsql）

pd_max_usersオペランドの値

データベース構成変更ユティリティ（pdmod）

1

ディクショナリ搬出入ユティリティ（pdexp）

1

リバランスユティリティ（pdrbal）

MIN（32，pd_max_usersオペランドの値）

pd_max_usersオペランドの値

データベース再編成ユティリティ（pdrorg）

MIN（32，pd_max_usersオペランドの値）

pd_max_usersオペランドの値

空きページ解放ユティリティ（pdreclaim）

MIN（32，pd_max_usersオペランドの値）

pd_max_usersオペランドの値

グローバルバッファ常駐化ユティリティ（pdpgbfon）

MIN（32，pd_max_usersオペランドの値）

pd_max_usersオペランドの値

整合性チェックユティリティ（pdconstck）

pd_max_usersオペランドの値÷2

統計解析ユティリティ（pdstedit）

上限はありません。

データベース状態解析ユティリティ（pddbst）

MIN（16，pd_max_usersオペランドの値）

pd_max_usersオペランドの値

最適化情報収集ユティリティ（pdgetcst）

MIN（16，pd_max_usersオペランドの値÷2）

pd_max_usersオペランドの値÷2

アクセスパス表示ユティリティ（pdvwopt）

上限はありません。

データベース複写ユティリティ（pdcopy）

32（-bオプションの指定が1の場合）※2

pd_max_usersオペランドの値

データベース回復ユティリティ（pdrstr）

32

pd_max_usersオペランドの値

レジストリ機能初期設定ユティリティ（pdreginit）

1

オンライン再編成の追い付き反映（pdorend）

次の式を満たすn

n

Σ a×b≦c＋d

i=1

a：pdorend -sに指定したサーバ数※3

b：pdorend -mに指定した値

c：pd_max_usersオペランドの値

d：pd_max_reflect_process_countオペランドの値

JP1/NETM/Audit用監査ログ出力ユティリティ（pdaudput）

1

注※1

定義系SQLは同時実行できないため，排他待ちが発生します。

注※2

最大同時実行数は，pdcopyに指定する-bオプション（バックアップファイル）の数に依存します。最大同時実行数の考え方は次のとおりです。

一つの-bオプション（バックアップファイル）を使うデータベース複写ユティリティを六つ同時に実行すると，最大同時実行数は，1×6＝6になります。

制御文ファイルを使用して，二つの-bオプション（バックアップファイル）を使うデータベース複写ユティリティを四つ同時に実行すると，最大同時実行数は，2×4＝8になります。

上記のデータベース複写ユティリティが，すべて同時に動作している場合，データベース複写ユティリティの実行数は6＋4＝10ですが，最大同時実行数は6＋8＝14になります。

注※3

-sオプションを指定しない場合は，更新可能なオンライン再編成で対象としたRDエリアがあるサーバ数です。

付録D.2　複数のユティリティの同時実行数

複数のユティリティを同時実行して，次に示す式を満たす場合，pd_utl_exec_modeオペランドに1を指定してください。

HiRDB/パラレルサーバの場合

システム内のバックエンドサーバ数×2×すべてのユティリティの同時実行数≧824

HiRDB/シングルサーバの場合

2×すべてのユティリティの同時実行数≧824

付録D.3　注意事項

HiRDB/パラレルサーバで，システムマネジャがあるユニットの，フロントエンドサーバの接続ユーザ数がpd_max_usersオペランド指定値に達した場合，表「ユティリティの最大同時実行数」に示すユティリティは，同時接続ユーザ数オーバーを検知してエラー終了します。

付録E　データベース作成ユティリティの入力データファイルの作成方法

データベース作成ユティリティ（pdload）に入力できるファイルには，次のものがあります。

ファイルタイプ

レコード長

DAT形式

バイナリ形式

固定長データ形式

通常ファイル

任意

○

○

○

FIFO

任意※1

○

○

×

固定長ブロックテープ

512バイト

○※2

×

×

可変長ブロックテープ

32キロバイト（最終blockは任意）

○

○

○

EasyMTテープ

任意※3

○

○

○

（凡例）

○：使用できます。

×：使用できません。

注※1

レコード長の上限は，通常のDAT形式では32KB，拡張DAT形式ではsource文のmaxreclenオペランドの指定値となります。

注※2

512バイトバウンダリで，テープ末には0x00をパディングします。

注※3

EasyMTテープ以外はデータ長＝レコード長です。

ここでは，通常作成方法が分かりにくい次の三つのファイルについて説明します。

固定長ブロックテープ

可変長ブロックテープ

EasyMTテープ

付録E.1　固定長ブロックテープでの作成方法

(1)　主な媒体

CMT,AT

(2)　ファイル名の例

/dev/cmt00(内蔵CMT),/dev/sysdat(内蔵DAT)

(3)　概略

固定長ブロックテープは，1ブロック512バイトの整数倍の長さを持つテープです。管理情報を媒体上に持たないため，512バイトの整数倍のデータだけ扱えます。そのため，バイナリ形式は扱えません。

DAT形式ファイルは，最終ブロックの未使用部分を0x00でパディングする（0x00は通常のDAT形式ファイルでは出現しない）ことで，扱うこととします。

(4)　作成例

(a)　通常ファイル→固定長ブロックテープ

例えば，/etc/csh.loginというDAT形式ファイルがあり，これを/dev/cmt00というCMT内蔵テープにコピーする場合は，次のようにします。

 dd if=/etc/csh.login of=/dev/cmt00 conv=sync

→5＋1　入力レコード
→6＋0　出力レコード

（凡例）

→：システムの出力

（説明）

5+1は512バイトブロックを５個と512バイト未満のブロックを入力したという意味です。

6+0は512バイトブロックを６個出力したという意味です（最終ブロックは，0x00でパディングされます)。

付録E.2　可変長ブロックテープでの作成方法

(1)　主な媒体

DAT,CGMT,OMT

(2)　ファイル名の例

/dev/dat/vdat010(内蔵DAT),

/dev/cgmt/vcgmt160(カートリッジ磁気テープ),

/dev/omt/vomt055(オープンリール磁気テープ)

(3)　ファイル名の作成

可変長ブロックデバイスは，導入時には作成されていません。そのため，事前に作成する必要があります。

スーパユーザが，次のコマンドを実行します。

 /etc/mknod /dev/dat/vdat010   c 119 0x010001
 /bin/chmod 0666 /dev/dat/vdat010

（説明）

通常はこのコマンドを実行すれば，内蔵DATに対する可変長ブロックアクセスデバイスが作成されます。

/dev/dat/vdat010：

デバイス名称

c ：

キャラクタスペシャルファイル

119：

メジャー番号（DATの可変長ブロック使用を示します）

0x010001：

マイナー番号（内蔵DATを圧縮モードで使用することを表します）

なお，用語，概念などについては，次のmanを参照してください。

mknod及びchmod：man 1m mknod及びman chmod

メジャー番号，マイナー番号，及びデバイス名称の命名規則：man 6 mt

(4)　概略

可変長ブロックテープは，任意のブロック長で書き込まれたテープです。

任意のブロック長での書き込みができるため，DAT形式のほかにバイナリ形式のデータも直接扱えます。ただし，書き込みと同じブロック長で読む必要があります（例えば，64キロバイトで書いたブロックを32キロバイトで読むと，残りの32キロバイトは読まれません)。レコードごとに長さを変更しても，それを読む方に伝える手段がないため，通常最終ブロック以外は同じブロック長で書き込み，最終ブロックだけ端数のブロック長で書くようにします。

データベース作成ユティリティ（pdload）はそのブロック長を32キロバイトとしているので，それより大きいブロック長で作成されたテープの正常読み取りはできません。

そのため，作成時はブロック長を32キロバイト以下にする必要があります。

次の作成例では，ブロック長を32キロバイトに設定しています。

(5)　作成例

DAT形式もバイナリ形式も同じように作成します。

(a)　通常ファイル→可変長ブロックテープ

cpコマンドはバッファ長を指定できないので使用できません。代わりにddコマンドを使用します。

【/usr/bin/viを/dev/dat/vdat010という可変長ブロックテープに出力する場合】

 dd if=/usr/bin/vi of=/dev/dat/vdat010 bs=32k

→7＋1　入力レコード
→7＋1　出力レコード

（凡例）

→：システムの出力

（説明）

7+1というのは，32キロバイトブロックを７個と32キロバイト未満のブロックを１個処理したということを示しています。

(b)　プログラムを作成する場合

次のようなプログラムを作成すると，任意長のデータ(data_lenで指定)をブロック長32キロバイトで可変長ブロックテープに出力します（32キロバイトのwrite_bufをシステムバッファに割り当ててから，フルバッファリング（_IOFBF）指定で出力します）。

 #define PROC_BUFSIZ     1024 * 32
 FILE*   fp;
 int     data_len;               /* データ長(バイナリ時必要)*/
 char    write_buf[PROC_BUFSIZ]; /* システムコールのbuf  */
 char    data_buf[PROC_BUFSIZ];  /* ユーザのbuf          */
     :
 fp = fopen("/dev/dat/vdat010","w")
 setvbuf(fp, write_buf, _IOFBF, PROC_BUFSIZ)
     :
 while(データのある間) {
     データ書き込み処理
 }
     :
 fclose(fp);

［説明］

データ書き込み処理：

DAT形式

data_bufにデータを作成します。データ＋￥n＋￥0

fputs(data_buf, fp);

バイナリ形式

data_bufにデータを作成します。データ長data_len

fwrite(data_buf, data_len, 1,fp);

(c)　cpコマンドでテープを作成した場合

元データが通常ファイルの場合，（a）の方法で作成し直します。

DAT装置が２台ある場合は，次の方法でバッファ長を変換できます。

 dd if=/dev/vdat010 ibs=64k of=/dev/vdat011 obs=32k

（説明）

/dev/vdat010：

cpコマンドで作成したデータ

/dev/vdat011：

pdload用に新たに作成するテープ

付録E.3　EasyMTテープでの作成方法

EasyMTは，E.2で示した可変長ブロックテープを使用して，ボリューム名やファイル名によるテープ管理をするプログラムプロダクトです。

(1)　主な媒体

DAT,CGMT,OMT

(2)　ファイル名の例

/dev/dat/vdat010（内蔵DAT），

/dev/cgmt/vcgmt160（カートリッジ磁気テープ），

/dev/omt/vomt055（オープンリール磁気テープ）

(3)　ファイル名の作成

可変長ブロックデバイスは，導入時には作成されていません。そのため，事前に作成する必要があります。

スーパユーザが，次のコマンドを実行します。

 /etc/mknod /dev/dat/vdat010   c 119 0x010001
 /bin/chmod 0666 /dev/dat/vdat010

（説明）

通常はこのコマンドを実行すれば，内蔵DATに対する可変長ブロックアクセスデバイスが作成されます。

/dev/dat/vdat010：

デバイス名称

c ：

キャラクタスペシャルファイル

119：

メジャー番号（DATの可変長ブロック使用を示します）

0x010001：

マイナー番号（内蔵DATを圧縮モードで使用することを示します）

なお，用語，概念などについては，次のmanを参照してください。

mknod及びchmod：man 1m mknod及びman chmod

メジャー番号，マイナー番号，及びデバイス名称の命名規則：man 6 mt

(4)　概略

EasyMTでは，次のようなヘッダ形式があります。

シンボル

意味

EMTVOL_EL

EasyMTラベル

EMTVOL_SL

標準ラベル

EMTVOL_JL

JISコードラベル

EMTVOL_NL

ラベルなし

データベース作成ユティリティ（pdload）では，まずヘッダを読み込み，認識できる形式のものを読みます。認識できない場合やラベルなしの場合は，エラーとします。

EasyMTでは，次のようなレコード形式があります。

シンボル

意味

ブロック指定

レコード指定

ラベル指定

F

固定長非ブロックレコード

N

F

SL又はEL

FB

固定長ブロックレコード

B

V

可変長非ブロックレコード

N

V

VB

可変長ブロックレコード

B

U

不定長

N

U

データベース作成ユティリティ（pdload）では，上記のすべての型に対応します。しかし，ブロック長，レコード長，及びデータ長のうち，最長のものの最大値は次のようになります。

作成機種

最大値

3050RXグループ

32キロバイト（32768バイト）

3500シリーズ

HITAC−Mシリーズ

32キロバイト−8（32760バイト）

F及びFBのレコード形式は，１レコードの長さが固定なので，入力がバイナリファイルで行の構成列がすべて固定長の表，又はFIX表の場合だけ使用できます。入力がアスキーファイルの場合は，データ長がすべて同じ場合だけ使用できます。

データベース作成ユティリティ（pdload）の入力としては，次の２種類のファイルが扱えます。

バイナリ形式ファイル(-b指定)

DAT形式ファイル(-b指定なし(デフォルト))

(a)　バイナリ形式ファイル

レコード形式には，次の種類があります。

F（固定長非ブロックレコード）

FB（固定長ブロックレコード）

データ長(レコード長）には，１行の長さを指定します。

行の構成列がすべて固定長の表，又はFIX表の場合だけF/FBを指定できます。

V（可変長非ブロックレコード）

VB（可変長ブロックレコード）

U（不定長）

(b)　DAT形式ファイル

DAT形式のファイルは，１行１レコード(NL文字まで)にします。通常レコード形式はV，VB，又はUのどれかの形式にします。データ長がすべて同じ場合だけ，F又はFBが使用できます。

データ長には，NL(LF : 0x0a, '¥n')を含みます。NLを含まないレコードは，エラーとなります。

以上のことをまとめると，データ長，レコード長，及びブロック長の最大・最小値は次のようになります。

【3050RXグループ・3500シリーズで作成する場合】

レコード形式

データ長

レコード長

ブロック長

min

max

min

max

min

max

F/FB

1

32768

1

32768

1

32768

V/VB

1

32760

5

32764

9

32768

U

1

32768

−

−

1

32768

【HITAC-Mシリーズで作成する場合】

レコード形式

データ長

レコード長

ブロック長

min

max

min

max

min

max

F/FB

1

32760

1

32760

1

32760

V/VB

1

32752

5

32756

9

32760

U

1

32760

−

−

1

32760

(5)　作成例

3050RXグループ又は3500シリーズでEasyMT提供関数を使用して，データベース作成ユティリティ（pdload）用入力ファイルを作成する例を示します。

なお，EasyMTの定義は，MT属性定義ファイルで指定するものとします。

(a)　プログラム例

MT属性定義ファイルは，第1引数(argv[1])で指定します。

エラー処理は，必要に応じて指定してください。

 #include    <stdio.h>
 #include    <stdlib.h>
 #include    <unistd.h>
 #include    "easymt.h"
 #define     PROC_BUFSIZ     1024 * 32
 char        buf[PROC_BUFSIZ];
 int         data_len;               /* データ長 */
     :
 void main(int argc, char *argv[])
 {
     EmtDescr_t* emt_fp;
     if (EmtInit(NULL, argv[1])) {
         printf("EmtInit失敗, ,EmtErrno=%i¥n", EmtErrno);
         exit(EXIT_FAILURE);
     }
     if (emt_fp = EmtAlloc(NULL, argv[1])) {
     } else {
         printf("EmtAlloc失敗, ,EmtErrno=%i¥n", EmtErrno);
         exit(EXIT_FAILURE);
     }
     if (EmtFopen(emt_fp, NULL)) {
         printf("EmtFopen失敗, ,EmtErrno=%i¥n", EmtErrno);
         goto proc_free;
     }
     while(データがある間) {
             :

 ここでbufにデータを作成する。data_lenにデータ長を代入。
 DAT形式データの場合はＮＬ（0x0a）をデータ内に含みます。

             :
         rc = EmtWrite(emt_fp, buf, data_len);
         if (rc != data_len) {
             printf("EmtWrite失敗,EmtErrno=%i¥n", EmtErrno);
             goto proc_close;
         }
     }
 proc_close:
     if (EmtFclose(emt_fp)) {
         printf("EmtFclose失敗,EmtErrno=%i¥n", EmtErrno);
         goto proc_free;
     }
 proc_free:
     if (EmtFree(emt_fp)) {
         printf("EmtFree失敗,EmtErrno=%i¥n", EmtErrno);
         exit(EXIT_FAILURE);
     }
 }

(b)　MT属性定義ファイルの例

定義ファイルで「＝」の直後が空白のものは，その値を省略したことになります。

デバイス名：

/dev/dat/vdat010

バッファ面数：

2

ボリューム名：

HiRDB

ラベルタイプ：

標準ラベル(SL)

ファイル名称：

input_data

オープンモード：

書き込み指定

レコードタイプ：

VBの最大値

(Mシリーズでも扱えるように最大値を32キロバイト−8(32760バイト)にしたもの)

これで，データ長はレコード長-4（32752バイト）まで扱えることになります。

MT属性定義ファイルのうち，以下のエントリはpdloadの制御情報ファイルのsource文エントリと対応します。

MT属性定義ファイルエントリ

pdload制御情報ファイルsource文エントリ

最大文字数

volname＝

vol＝

6

filename＝

file＝

17※

注※

MTをHITAC-Mシリーズで作成する場合，filenameは44文字まで指定できますが，そのうち有効な文字数はfilenameの終わりから17文字までです。それを指定してください。

bufnoエントリは単に，書き込み時にバッファ面数を何面使うかの指定なので，pdloadの指定と合わせる必要はありません。

上記のようなファイルを作成する場合の定義例を次に示します。

 #/*-------------------------------------------------------
 #   (1) 動作に対する指定
 #/*-------------------------------------------------------
 devname=/dev/dat/vdat010
 blking=OFF
 bufno=2
 #/*-------------------------------------------------------
 #   (2) volume属性に関する指定
 #/*-------------------------------------------------------
 volname=HiRDB
 voltype=SL
 #/*-------------------------------------------------------
 #   (3) file属性に関する指定
 #/*-------------------------------------------------------
 filename=input_data
 openmode=EMT_WRONLY
 blklen=32760
 reclen=32756
 blktype=B
 rectype=V

付録F　pdload及びpdrorgで使用するUOCの作成方法と注意事項

付録F.1　共用ライブラリの作成方法

UOCのコーディングが完了した後，共用ライブラリを作成します。作成した共用ライブラリは，呼び出す関数と一緒に，pdload又はpdrorgの制御文に指定します。

(1)　Linux版の場合

sample1.c，sample2.c，及びsample3.cの三つのソースファイルから，libuoc.soという名称の共用ライブラリを作成する例を，次に示します。

ファイルをコンパイルします。

$ /usr/bin/cc -c -I$PDDIR/include sample1.c sample2.c sample3.c
sample1.c:
sample2.c:
sample3.c:

作成された拡張子.oのファイルをリンクします。

$ /usr/bin/cc -shared -o libuoc.so sample1.o sample2.o sample3.o

(2)　AIX版の場合

sample1.c，sample2.c，及びsample3.cの三つのソースファイルから，libuoc.soという名称の共用ライブラリを作成する例を，次に示します。

ファイルをコンパイルします。

$ /usr/vac/bin/xlc -c -I$PDDIR/include sample1.c sample2.c sample3.c
sample1.c:
sample2.c:
sample3.c:

作成された拡張子.oのファイルをリンクします。

$ /usr/vac/bin/xlc -G -o libuoc.so sample1.o sample2.o sample3.o

(a)　64ビットモードのHiRDBの場合

64ビットモードのHiRDBで実行するUOCは，64ビットモードでコンパイルする必要があります。この場合，コンパイルオプションとして-q64 を指定してください。

付録F.2　UOCを作成する場合の注意事項

UOCを利用する場合，ユーザが作成したプログラムがHiRDBに組み込まれて処理をすることになります。つまり，データベースマネジメントシステムの一部のプログラムという位置づけであるため，UOCの不具合がそのままHiRDBの不具合に発展するおそれがあります。そのため，UOCを作成する場合は，十分な注意とテストが必要となります。また，UOC作成時にはHiRDBのプログラム規則に従う必要があります。

(1)　pdload及びpdrorgの共通規則

作成言語はC言語だけです。

UOCは，共用ライブラリの形式で作成してください。

作成した共用ライブラリには，読み込み，実行の権限を与えてください。書き込み権限は与えないでください。誤って書き込み権限を与えた場合，UOCの実行時間が長くなり処理性能が悪くなります。

データベースにアクセスした関数は，グローバルバッファを占有します。また，バッファの占有データベースにアクセスした関数もグローバルバッファを占有します。バッファの占有時間が長いと，HiRDBはシステムの不具合と認識するため，UOC側での処理は必要最小限にして，早めにpdload側又はpdrorg側に制御を戻すようにしてください。

UOC内で異常終了した場合，pdload又はpdrorgも異常終了します。異常終了時のデータベースの状態とその回復方法については，「エラー時のデータベースの状態とその回復方法」又は「エラー時のデータベースの状態とその回復方法」を参照してください。

UOCインタフェース領域や記号定数を宣言した，UOC作成用のヘッダファイル（pdutluoc.h）は$PDDIR/include下にあります。インタフェース領域を参照又は更新する場合は，UOCのコンパイル時に引き込んで使用することをお勧めします。なお，変数名称の設定などで，UOC作成用のヘッダファイルを使用できないで独自に定義する場合，テーブルの構造に違いがあるので注意してください。

グローバル変数及び関数名には，次の文字で始まる名称を使用しないでください。

大文字の「SQL」，「Y」，又は「Z」

小文字の「p_」，「pd」，「yy」，又は「z」

プラグイン及びJavaストアドルーチンを使用する場合は，更に次の文字で始まる名称も使用しないでください。

プラグインを使用する場合：

小文字の「_p」

Javaストアドルーチンを使用する場合：

小文字の「da」

小文字の「dbr」

小文字の「dp」

UOCのリターン値は，void型にしてください。

UOCで環境変数の設定，変更処理はしないでください。

UOC内では，SQLは発行できません。

シグナル操作はしないでください。

main関数はUOCとして使用できません。

リカーシブルな関数としないでください。

スタック不足の場合は，UOC内で異常終了することがあります。多量に使用する場合は，OSのオペレーティングシステムパラメタの値を変更してください。OSのオペレーティングシステムパラメタについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

スレッドは生成しないでください。

次の関数以外は使用しないでください。

ファイル操作関数

文字処理関数

メモリ取得・解放関数

次の関数は使用しないでください。

fork()，exit()，abort()，exec()などのプロセス操作関数

sleep()，select()，wait()

スタック操作関数（setjmp()，longjmp()など）

共用メモリ操作関数

セマフォ操作関数

ソケット操作関数

システム資源操作関数（setrlimitなど）

mmap()，munmap()

gethostent()，sethostent()，endhostent()，gethostbyname()，gethostbyaddr()，herror()

tempnam()，tmpnam()

pstat()

system()

UOCが動作しているプロセスのプロセスIDは，UOC内では使用しないでください。

ファイルの操作について，次の点に注意してください。

HiRDBインストールディレクトリ，及びHiRDB運用ディレクトリ下のファイルは操作しないでください。

OSのファイルは操作しないでください。

ファイルを作成する場合は，絶対パス名で指定してください。絶対パス名で指定しないと，カレントディレクトリ下にファイルが作成されます。HiRDBのプロセスのカレントディレクトリは，$PDDIR/tmp/home下のディレクトリとなっているため，ここにはファイルを作成しないでください。

UOC内でファイルを作成する場合は，ファイルのパーミッションを明示的に設定してください。

UOCが一時的に作成したファイルは，必ず削除（unlink）してください。

PIPEなどのスペシャルファイルを使用しないでください。

標準入力，標準出力，及び標準エラー出力を使用しないでください。

ユティリティを複数実行すると，UOCも同時に複数実行されます。このため，UOCがファイル資源に対して排他を掛ける場合は，同時に実行されるほかのUOCが排他待ちにならないように注意してください。

UOCが出力したファイルは，ユーザが管理してください。

(2)　pdload固有の規則

HiRDB/パラレルサーバの場合，UOCを格納した共用ライブラリはsource文に指定したサーバがあるホストに用意してください。

pdloadがバイナリ形式の入力デ−タファイルを入力して，UOCへ１行分のデータを渡す場合に，可変長文字列の長さが不正なために１行に編集できないときは，処理を打ち切ります。

pdloadの応答がなくなった場合，pdloadとUOCのどちらに制御があるかを調べるには，pdls -d rpcコマンドを実行します。この結果のUSR_EVENTが0x00052601の場合は，UOCに制御があることになります。

pdrorg用アンロードファイルの場合，UOCを利用したデータロードはできません。

エンディアンが異なるpdrorg出力バイナリ形式ファイルを入力データファイルとする場合，次の点に注意してください。

UOCでデータを入力するとき

データを入力後，エンディアン変換はしないため，入力データはpdloadを実行するプラットフォームのエンディアンで渡してください。

UOCにデータを渡すとき

option文のsrcendianオペランドを指定して，エンディアン変換後のデータをUOCに渡します。

(3)　pdrorg固有の規則

UOCを格納した共用ライブラリはUOCを呼び出すサーバがあるホストに用意してください。UOCを呼び出すサーバとホストについては，「オプションと制御文の関係」を参照してください。

UOCで操作できるファイルは，UOCデータファイルだけです。

UOC内で，mallocなどのOS関数でメモリ領域を取得した場合，次の呼び出し方法で必ず解放してください。

開始処理でリターンコードに0以外を返す

終了処理

中止処理

pdrorgの応答がなくなった場合，pdrorgとUOCのどちらに制御があるかを調べるには，pdls -d rpcコマンドを実行します。この結果のUSR_EVENTが0x00051601の場合は，UOCに制御があることになります。

付録G　コマンドの同時接続数

コマンド（運用コマンド及びユティリティ）の中には，内部的にHiRDBに対して接続処理をするものがあります。したがって，コマンドを実行する場合，及びシステム定義のpd_max_usersオペランドの指定値を決定する場合，次の点に注意する必要があります。

コマンドの接続時には，pd_max_usersオペランドで指定した接続枠を使用するため，ユーザから接続できる数が一時的に減少します。

コマンド実行時に，接続枠の空きよりコマンドの接続の数が多くなる場合，接続エラーとなり，コマンドがエラー終了することがあります。

各コマンドの同時接続数を次の表に示します。なお，同時接続数は1回のコマンド実行の値です。

表G‒1　各コマンドの同時接続数

コマンド名

同時接続数

pdacunlck

0

pdadmvr

0

pdaudatld

1

pdaudbegin

0

pdaudend

0

pdaudput

1

pdaudrm

0

pdaudswap

1

pdbkupls

0

pdbufls

0

pdbufmod

0

pdcancel

0

pdcat

0

pdchgconf

0

pdchpathf

0

pdchpathn

0

pdchprc

0

pdclibsync

0

pdclose

0

pdclttrc

0

pdcmdact

0

pdcmdls

0

pdcmdset

0

pdcmt

0

pdconfchk

0

pdconstck

2

pdcopy

0

pdcspool

0

pddbchg

0

pddbfrz

0

pddbls

0

pddbst

1

pddef

1

pddefrev

1

pddivinfgt

1

pdexp

1

pdextfunc

1

pdfbkup

0

pdfchfs

0

pdffsck

0

pdfgt

0

pdfls

0

pdfmkfs

0

pdfrm

0

pdfrstr

0

pdfssync

0

pdfstatfs

0

pdfzeroinit

0

pdgetcst

2

pdgeter

0

pdhold

0

pdinfoget

0

pdinfocoreget

0

pdinit

1

pditvstop

0

pditvtrc

0

pdjarsync

0

pdlistls

0

pdload

-b -W -w allを指定した場合は2，それ以外の場合は1

pdlogadpf

0

pdlogatul

0

pdlogchg

0

pdlogcls

0

pdloginit

0

pdlogls

0

pdlogopen

0

pdlogrm

0

pdlogswap

0

pdlogsync

0

pdlogucat

0

pdlogunld

0

pdls -d aud

HiRDB稼働中の場合は1，停止中の場合は0

pdls（-d aud以外）

0

pdmemdb

0

pdmemsv

0

pdmod

1

pdmstchk

1

pdobils

0

pdobjconv

1

pdopen

0

pdopsetup

0

pdorbegin

0

pdorcheck

1

pdorchg

0

pdorcreate

1

pdorend

(pdorend -sオプション指定サーバ数)×(pdorend -mオプション指定値)

-s及び-mオプションの省略値については，pdorendコマンドのオプションの説明を参照してください。

pdpfresh

0

pdpgbfon

1

pdplgrgst

1

pdplgset

0

pdprfed

0

pdprflevel

0

pdprgcopy

0

pdprgrenew

0

pdrbal

1

pdrbk

0

pdrdconstck

1

pdrdrefls

1

pdreclaim

1

pdreginit

1

pdrels

0

pdrorg

1

pdrisechk

HiRDB/シングルサーバの場合は1，HiRDB/パラレルサーバの場合はディクショナリサーバ又はバックエンドサーバがあるユニットの数

pdrisedbto

0

pdriseset

0

pdrpause

0

pdparaload

表を構成するRDエリアの数

pdrplstart

0

pdrplstop

0

pdrstr

0

pdsetenv

0

pdsetup

0

pdsql

1

pdstart

0

pdstbegin

0

pdstedit

0

pdstend

0

pdstjswap

0

pdstjsync

0

pdstop

0

pdstscls

0

pdstsinit

0

pdstsopen

0

pdstsrm

0

pdstsswap

0

pdsvhostname

0

pdtrndec

0

pdtrnqing

0

pdvrup

1

pdvwopt

0

付録H　コマンドのリターンコード一覧

HiRDBのコマンドのリターンコード一覧を次の表に示します。

表H‒1　コマンドのリターンコード一覧

コマンド名

出力メッセージ

リターンコード

内容

メッセージID

コード

pdacunlck

KFPD01113-I

0

0

正常終了。

8

8

異常終了。

pdadmvr

-

-

0

正常終了。

8

異常終了（オプション指定不正）。

pdaudatld

-

-

0

正常終了。

4

警告終了（pdaudatld -t実行時に動作していた監査証跡表の自動データロードがエラー終了）。

8

異常終了。

pdaudbegin

-

-

0

正常終了。

4

正常終了（監査証跡取得開始済みのユニットがあり，処理をスキップしました）。

8

異常終了（オプション指定不正，rsh失敗など）。

pdaudend

-

-

0

正常終了。

4

正常終了（監査証跡取得停止済みのユニットがあり，処理をスキップしました）。

8

異常終了（オプション指定不正，rsh失敗など）。

pdaudput

KFPN10501-I

0

0

正常終了。

4

4

正常終了（JP1/NETM/Audit用監査ログ出力ファイルのスワップが発生したことによる終了）。

8

8

異常終了。

pdaudrm

-

-

0

正常終了。

8

異常終了。

pdaudswap

-

-

0

正常終了。

8

異常終了。

pdbkupls

KFPR26276-I

0

0

正常終了。

12

12

異常終了。

pdbufls

-

-

0

正常終了。

4

警告終了（一部のサーバの処理がエラー終了）。

8

異常終了。

12

異常終了（エラーメッセージを表示できない事象が発生）。

pdbufmod

-

-

0

正常終了。

4

警告終了（一部のサーバの処理がエラー終了）。

8

異常終了。

12

異常終了（エラーメッセージを表示できない事象が発生）。

pdcancel

-

-

0

正常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

pdcat

-

-

0

正常終了。

8

異常終了。

pdcbl

-

-

0

正常終了。

4

エラー発生（プロセスを最後まで続行しました）。

8

エラー発生（プロセスを最後まで続行しました）。

12

エラー発生（プロセスを途中で終了しました）。

16

エラー発生（プロセスを途中で終了しました）。

pdchgconf

KFPS04661-I

0

0

正常終了。

8

8

異常終了。

pdchpathf

KFPH27072-I

0

0

正常終了。

4

4

異常終了（回復不要）。

8

8

異常終了（回復要）。

pdchpathn

KFPD01031-I

0

0

正常終了。

8

8

異常終了。

pdchprc

-

-

0

正常終了。

4

一部のユニットが正常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

pdclibsync

-

-

0

正常終了。

4

異常終了（Cライブラリファイルが登録済み，又は未登録）。

8

異常終了。

pdclose

-

-

0

正常終了。

4

警告終了（一部のRDエリアの処理がエラー終了）。

8

異常終了。

12

異常終了（エラーメッセージを表示できない事象が発生）。

pdclttrc

-

-

0

正常終了。

8

異常終了。

pdcmdact

-

-

98

異常終了。

99

異常終了。

上記以外

pdcmdactコマンドに指定したコマンドの終了コード

pdcmdls

-

-

0

正常終了。

8

異常終了。

pdcmdset

-

-

0

正常終了。

8

異常終了。

pdcmt

-

-

0

正常終了。

1

異常終了（オプション指定不正，rsh失敗など）。

pdconfchk

KFPS05007-I

0

0

正常終了。

4

4

警告終了（定義に対する警告あり）。

8

8

異常終了（引数不正，又はpdconfchkコマンドの実行エラー）。

pdconstck

KFPL50001-I

0

0

正常終了。

4

4

正常終了（制約違反あり）。

制約違反となったキー数が上限値を超え，処理を打ち切った場合も含みます。

8

8

異常終了。

pdcpp

-

-

0

正常終了。

4

エラー発生（プロセスを最後まで続行しました）。

8

エラー発生（プロセスを最後まで続行しました）。

12

エラー発生（プロセスを途中で終了しました）。

16

エラー発生（プロセスを途中で終了しました）。

pdcopy

KFPR00756-I

0

0

正常終了。

8

8

異常終了（一部の複写に失敗，又はスキップしました）。

12

12

異常終了（すべての複写に失敗しました）。

pdcspool

-

-

0

正常終了。

4

正常終了。

12

異常終了。

pddbchg

-

-

0

正常終了。

4

警告終了（一部のRDエリアの処理がエラー終了）。

8

異常終了。

12

異常終了（エラーメッセージを表示できない事象が発生）。

pddbfrz

-

-

0

正常終了。

4

警告終了（一部のRDエリアの処理がエラー終了）。

8

異常終了。

12

異常終了（エラーメッセージを表示できない事象が発生）。

pddbls

-

-

0

正常終了。

4

警告終了。

8

異常終了。

12

異常終了（エラーメッセージを表示できない事象が発生）。

pddbst

KFPK10301-I

0

0

正常終了。

4

4

警告終了（指定不正又は解析処理スキップ）。

8

8

異常終了。

pddef

-

-

0

正常終了。

8

異常終了。

pddefrev

KFPX18400-I

0

0

正常終了。

8

8

異常終了。

12

12

異常終了。

pddivinfgt

KFPD01200-I

0

0

正常終了。

8

8

異常終了。

pdexp

KFPX18400-I

0

0

正常終了。

4

4

正常終了（無効なプロシジャ，又はトリガの搬出）。

8

8

異常終了。

12

12

異常終了。

pdextfunc

-

-

0

正常終了。

4

警告終了。

8

異常終了。

pdfbkup

-

-

0

正常終了。

1

警告終了。

-1

異常終了。

pdfchfs

-

-

0

正常終了。

-1

異常終了。

pdffsck

-

-

0

正常終了。

1

警告終了（検証で不整合を検知）。

-1

異常終了。

pdfgt

-

-

0

正常終了。

1

異常終了（オプション指定不正，rsh失敗など）。

pdfls

-

-

0

正常終了。

-1

異常終了。

pdfmkfs

-

-

0

正常終了。

1

警告終了。

-1

異常終了。

12

セクタ長不正。

pdfrm

-

-

0

正常終了。

-1

異常終了。

pdfrstr

-

-

0

正常終了。

1

警告終了。

-1

異常終了。

pdfssync

-

-

0

正常終了。

8

異常終了。

pdfstatfs

-

-

0

正常終了。

-1

異常終了。

pdfzeroinit

-

0

0

正常終了（初期化完了）。

4

1

警告終了（HiRDBファイルシステム領域内にファイルが存在するため，初期化に失敗）。

8

-1

警告終了（引数不正など）。

pdgetcst

KFPN00011-I

0

0

正常終了。

4

4

正常終了（ディクショナリ表操作で警告発生）。

8

8

異常終了。

pdgeter

KFPN10301-I

0

0

正常終了。

4

4

警告終了（一部の情報取得処理をスキップ）。

8

8

異常終了。

12

12

割り込みによる終了。

pdhold

-

-

0

正常終了。

4

警告終了（一部のRDエリアの処理がエラー終了）。

8

異常終了。

12

異常終了（エラーメッセージを表示できない事象が発生）。

pdinfoget

KFPN10401-I

0

0

正常終了。

4

4

警告終了（一部の情報取得処理をスキップ）。

8

8

異常終了。

12

12

割り込みによる終了。

pdinfocoreget

KFPN10401-I

0

0

正常終了。

4

4

警告終了（coredumpctl異常終了）。

8

8

異常終了。

pdinit

KFPX24013-I

0

0

正常終了。

4

4

正常終了（警告レベルのエラーがありましたが，処理は正常に終了しました）。

8

8

正常終了（初期化は正常に終了しましたが，初期化終了の通信がエラーになりました）。

12

12

異常終了。

pditvstop

-

-

0

正常終了。

1

異常終了。

pditvtrc

-

-

0

正常終了。

1

異常終了。

pdjarsync

-

-

0

正常終了。

4

異常終了（JARファイルが登録済み，又は未登録）。

8

異常終了。

pdlistls

-

-

0

正常終了。

8

異常終了。

pdload

KFPL00704-I

0

0

正常終了。

4

4

正常終了（入力データエラーの検知）。

8

8

異常終了。

pdlogadpf

-

-

0

正常終了。

4

異常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

pdlogatul

-

-

0

正常終了。

4

中断，又は時間超過。

8

異常終了（オプション指定不正，rsh失敗など）。

pdlogchg

-

-

0

正常終了。

4

異常終了。

8

異常終了（オプション指定不正，rsh失敗など)。

12

異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）。

pdlogcls

-

-

0

正常終了。

4

異常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

pdloginit

-

-

0

正常終了。

4

異常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

12

異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）。

pdlogls

-

-

0

正常終了。

4

異常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

12

異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）。

pdlogopen

-

-

0

正常終了。

4

異常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

pdlogrm

-

-

0

正常終了。

4

異常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

12

異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）。

pdlogswap

-

-

0

正常終了。

4

スワップしましたが，シンクポイントダンプが有効化されないでコマンドを強制停止しました。

8

異常終了（オプション指定不正，rsh失敗など）。

pdlogsync

-

-

0

正常終了。

4

異常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

pdlogucat

-

-

0

正常終了。

8

異常終了。

pdlogunld

-

-

0

正常終了。

4

異常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

12

異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）。

pdls（-d act）

-

-

0

正常終了。

8

異常終了。

pdls（-d aud）

-

-

0

正常終了。

8

異常終了。

pdls（-d ha）

-

-

0

正常終了。

8

異常終了。

pdls（-d lck）

-

-

0

正常終了。

8

異常終了。

pdls（-d mem）

-

-

0

正常終了。

8

異常終了。

pdls（-d org）

-

-

0

正常終了。

8

異常終了。

pdls（-d prc）

-

-

0

正常終了。

8

異常終了。

pdls（-d ris）

-

-

0

正常終了。

8

異常終了。

pdls（-d rpc）

-

-

0

正常終了。

8

異常終了。

pdls（-d rpl）

-

-

0

正常終了。

8

異常終了。

pdls（-d scd）

-

-

0

正常終了。

8

異常終了。

pdls（-d stj）

-

-

0

正常終了。

8

異常終了。

pdls（-d sts）

-

-

0

正常終了。

8

異常終了。

pdls（-d svr）

-

-

0

全ユニットがACTIVEで，かつHiRDB開始処理完了（KFPS05210-Iメッセージ出力後）。なお，HiRDB開始後にpdstop -sコマンドですべてのフロントエンドサーバを終了した状態の場合も0となります。

4

一部のユニットが非ACTIVE。

HiRDB開始処理の完了前（フロントエンドサーバの状態がSUSPEND）。

8

異常終了。

pdls（-d ust）

-

-

0

ユニット稼働中（コマンド実行ユニットにフロントエンドサーバがある場合は，フロントエンドサーバに接続できます）。

1

異常終了。

4

ユニット開始途中（コマンド実行ユニットにフロントエンドサーバがあるが，フロントエンドサーバに接続できません），又はユニット停止途中。

8

プロセスサーバプロセスの再起動中断状態。

12

ユニットの停止状態（pdsetup -dコマンドを実行できる状態）。

16

OSからの登録が削除された状態。

pdls（-d trn）

-

-

0

正常終了。

8

異常終了。

pdmemdb

-

-

0

正常終了。

4

警告終了（一部のRDエリアの処理がエラー終了しました）。

8

異常終了。

12

異常終了（エラーメッセージを表示できない事象が発生しました）。

pdmemsv

Memory saving level:

-

0

正常終了。

-

-

2

異常終了（オプション指定不正など）。

pdmod

KFPX24213-I

0

0

正常終了。

4

4

正常終了（警告レベルのエラーがありましたが，処理は正常に終了しました）。

8

8

正常終了（一部の構成変更処理が正常終了）。

12

12

異常終了。

16

16

異常終了（データベースの不整合）。

pdmstchk

KFPH27072-I

0

0

正常終了（整合性に問題なし）。

4

4

正常終了（整合性に問題あり）。

8

8

異常終了（コマンド実行中にエラーが発生）。

pdobils

-

-

0

正常終了。

4

異常終了。

pdobjconv

KFPX21002-I

0

0

正常終了。

4

4

警告終了。

8

8

正常終了しましたが，一部再登録に失敗したものがあります。又は，コマンド実行上のエラーが発生しました。

12

12

異常終了。

pdocb

-

-

0

正常終了。

4

エラー発生（プロセスを最後まで続行しました）。

8

エラー発生（プロセスを最後まで続行しました）。

12

エラー発生（プロセスを途中で終了しました）。

16

エラー発生（プロセスを途中で終了しました）。

pdocc

-

-

0

正常終了。

4

エラー発生（プロセスを最後まで続行しました）。

8

エラー発生（プロセスを最後まで続行しました）。

12

エラー発生（プロセスを途中で終了しました）。

16

エラー発生（プロセスを途中で終了しました）。

pdopen

-

-

0

正常終了。

4

警告終了（一部のRDエリアの処理がエラー終了）。

8

異常終了。

12

異常終了（エラーメッセージを表示できない事象が発生）。

pdopsetup

KFPS04618-I

-

0

正常終了。

-

-

8

異常終了（権限エラー，HiRDB稼働中，ディスク容量不足，未インストール，又はインストール済み）。

12

異常終了（パラメタ不正，又はパス不正）。

pdorbegin

KFPH27045-I

0

0

正常終了。

4

4

警告終了（一部のサーバで処理が成功）。

8

8

異常終了。

12

12

異常終了（エラーメッセージを表示できない事象が発生）。

pdorcheck

-

-

0

正常終了。

4

警告終了（条件を満たさない資源があります）。

8

異常終了。

pdorchg

KFPH27045-I

0

0

正常終了。

4

4

警告終了（一部のサーバで処理が成功）。

8

8

異常終了。

12

12

異常終了（エラーメッセージを表示できない事象が発生）。

pdorcreate

KFPT02014-I

0

0

正常終了。

4

4

警告終了（要求処理は実施済み，又は対話入力で削除処理がキャンセルされました）。

8

8

異常終了。

pdorend

KFPH27045-I

0

0

正常終了。

4

4

警告終了（次のどれかです）。

一部のサーバで処理が成功したか，又はスキップ対象のSQLエラーが発生したため，該当するSQLをスキップしました。

SET句又はDELETE句で繰返し列にない要素番号を指定したUPDATE文を実行し，警告エラーが発生したため，該当するSQLをスキップしました。

検査保留状態に変更できない表がありましたが，該当する処理を無視して処理を続行しました。

8

8

異常終了。

12

12

異常終了（エラーメッセージを表示できない事象が発生）。

pdparaload

KFPL00794-I

0

0

正常終了。

4

4

正常終了（一部の入力データに論理エラーが発生したため，データベースへの格納処理をスキップしました）。

8

8

異常終了。

pdpfresh

KFPS00730-I

0

0

正常終了。

1

1

正常終了（リフレッシュ中プロセスあり）。

4

4

警告終了（一つ以上のサーバでエラー発生）。

6

6

警告終了（運用コマンド又はユティリティ実行中のため，リフレッシュ処理をしないで終了）。

8

8

異常終了（オプション指定不正，rsh失敗など）。

pdpgbfon

KFPL00738-I

0

0

正常終了。

4

4

正常終了（グローバルバッファ上への読み込み時にバッファ面数が不足したため，バッファ落ちが発生しました）。

8

8

異常終了。

12

12

異常終了（pdrorgが異常終了）。

pdplgrgst

KFPY02016-I

0

0

登録・削除成功。

8

8

登録・削除失敗。

pdplgset

KFPY01201-I

0

0

セットアップ成功。

8

8

セットアップ失敗。

pdprfed

-

-

0

正常終了。

8

異常終了。

12

異常終了（内部矛盾）。

pdprflevel

-

-

0

正常終了。

8

異常終了。

pdprgcopy

KFPS04645-I

0

0

正常終了。

8

8

異常終了。

pdprgrenew

KFPS04646-I

0

0

正常終了。

8

8

異常終了（入れ替え前のHiRDBの状態）。

12

12

異常終了（HiRDBが終了）。

KFPS05033-E

8

8

異常終了（system関数異常終了）。

pdrbal

KFPL33001-I

0

0

正常終了。

4

4

正常終了（リバランスの一時停止）。

8

8

異常終了。

pdrbk

-

-

0

正常終了。

1

異常終了（オプション指定不正，rsh失敗など）。

pdrdconstck

KFPX24800-I

0

0

正常終了（整合性に問題なし）。

4

4

正常終了（整合性に問題あり）。

8

8

異常終了（コマンド実行中にエラーが発生）。

pdrdrefls

-

-

0

正常終了。

4

警告終了（解析対象の資源がありません）。

8

異常終了。

pdreclaim

KFPL00739-I

0

0

正常終了。

4

4

正常終了（UAPのトランザクション決着待ち時間のタイムオーバーが発生したため，処理を中断しました）。

8

8

異常終了。

pdreginit

KFPX24601-I

0

0

正常終了。

4

4

正常終了（警告レベルのエラーがありましたが，処理は正常に終了しました）。

8

8

異常終了。

pdrels

-

-

0

正常終了。

1

警告終了。

更新可能バックアップ閉塞（WAITモード）時に，更新バッファの内容がRDエリアに反映されました。閉塞解除処理は正常終了しています。

4

警告終了（複数指定したRDエリアのうち，一つ以上にエラーがありました）。

8

異常終了。

12

異常終了（エラーメッセージを表示できない事象が発生）。

pdrisechk

-

-

0

正常終了。

8

異常終了。

pdrisedbto

-

-

0

正常終了。

4

一部のユニットが異常終了。

8

異常終了。

pdriseset

-

-

0

正常終了。

8

異常終了。

pdrorg

KFPL00719-I

0

0

正常終了。

4

4

正常終了（処理を一部スキップしました）。

8

8

異常終了。

pdrpause

-

-

0

正常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

pdrplstart

-

-

0

正常終了。

8

異常終了。

pdrplstop

-

-

0

正常終了。

4

異常終了（一部のユニットが停止中（縮退起動によって開始されていないユニットは除く），又はHiRDB Datareplicatorとの連携で未抽出ログがあります）。

8

異常終了。

pdrstr

KFPR00765-I

0

0

正常終了（すべての回復に成功した，又はKFPR26298-Wメッセージを出力しているがすべての回復に成功した）。

4

4

警告終了（回復処理は正常終了しましたが，回復処理に関係のない警告レベルのエラーが発生しました）。

8

8

異常終了（回復処理中にエラーが発生しましたが，一部回復されたRDエリアもあります）。

12

12

異常終了。

pdsetenv

-

-

0

正常終了。

8

異常終了。

pdsetup

-

-

0

正常終了。

KFPS00011-I

8

1

権限エラー，ファイル作成失敗，排他確保失敗など。

pdstart

-

-

0

正常終了。

4

異常終了（タイムアウト）。

8

異常終了（オプション指定不正，又はHiRDB起動処理失敗）。

pdstbegin

-

-

0

正常終了。

4

異常終了（一部ユニットの統計情報取得開始に失敗している）。

8

異常終了（オプション指定不正，rsh失敗など）。

pdstedit

KFPK00300-I

0

0

正常終了。

4

0

警告終了。

8

1

異常終了。

pdstend

-

-

0

正常終了。

4

異常終了（一部ユニットの統計情報の出力停止に失敗している）。

8

異常終了（オプション指定不正，rsh失敗など）。

pdstjswap

-

-

0

正常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

pdstjsync

KFPS05840-I

-

0

正常終了。

KFPS01841-E

-

8

異常終了（オプション指定不正，又は統計情報未取得）。

pdstop

-

-

0

正常終了。

4

異常終了（計画停止の通信タイムアウト）。

8

異常終了（オプション指定不正，又はHiRDB停止処理失敗）。

pdstscls

-

-

0

正常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

pdstsinit

-

-

0

正常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

12

異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）。

pdstsopen

-

-

0

正常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

pdstsrm

-

-

0

正常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

12

異常終了（IPアドレス引き継ぎなし構成の待機系でリトライしたとき）。

pdstsswap

-

-

0

正常終了。

8

異常終了（オプション指定不正，rsh失敗など）。

KFPS05210-I

-

0

正常終了。

pdsvhostname

-

-

0

正常終了。

1

正常終了（サーバ停止中）。

4

異常終了（HiRDB停止中）。

8

異常終了（システムマネジャ以外のサーバマシンで実行，指定したサーバがないなど）。

pdtrndec

-

-

0

正常終了。

4

警告終了（一つ以上の未決着状態のトランザクションがあります）。

8

異常終了（オプション指定不正）。

pdtrnqing

-

-

0

正常終了。

4

警告終了（システム定義のpd_ha_transaction=queingなし）。

8

警告終了（実行環境不正，操作誤りなど）。

12

異常終了（上記以外）。

pdvrup

KFPX24404-I

0

0

正常終了。

4

4

正常終了（pdvrup実行時にエラーが発生しましたが，バージョンアップは正常に終了しました）。

12

12

異常終了。

pdvwopt

-

-

0

正常終了。

8

異常終了。

（凡例）

-：メッセージ，又はコードは出力されません。

参考

コマンドの引数に一致しない正規表現を指定した場合，Ｃシェルなどでは，HiRDBのコマンドを呼び出す前にシェルがエラーになることがあります。この場合，シェルのリターンコードに1が返ります。

例えば，次に示すコマンドを実行した場合，$PDDIR/spool/pdsqldump下にaaaで始まるファイルが存在しないと，シェルがエラーになることがあります。

（例）pdvwopt $PDDIR/spool/pdsqldump/aaa*

付録I　コマンドが出力するファイル一覧

HiRDBのコマンドが出力するファイル一覧を次の表に示します。

なお，「ファイルの出力先」が複数ある場合は，優先順位に従いファイルの出力先が決まります。1の出力先が一番優先順位が高くなります。

表I‒1　HiRDBのコマンドが出力するファイル一覧

コマンド名

出力ファイル，

又は出力ディレクトリ

ファイルの出力先

自動削除の対象可否

pdaudput

pdaudput用管理ファイル

-dオプションの指定先

$PDDIR/auditlog下

×

JP1/NETM/Audit用監査ログ出力ファイル

-dオプションの指定先

$PDDIR/auditlog下

×

pdcancel

coreファイル

$PDDIR/spool/save下

×

debファイル

$PDDIR/spool/save下

×

pdchpathf

パス変更情報ファイル

コマンドの指定先

×

コマンド作業用一時ファイル

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

pdcmdact

コマンド代行ログファイル

$PDDIR/spool下

×

pdcmdset

コマンド代行ログファイル

$PDDIR/spool下

×

コマンドアクセスリストのバックアップファイル

-Bオプションの指定先

×

コマンドリストのテンプレートファイル

-Tオプションの指定先

×

pdconstck

処理結果ファイル

-oオプションの指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

×

pdcopy

バックアップファイル

-bオプションの指定先

×

処理結果出力ファイル

-pオプションの指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

×

ログポイント情報ファイル

-zオプションの指定先

×

差分バックアップの履歴情報ファイル

-oオプションの指定先

×

pddbst

再編成時期予測機能のCSV出力ファイル

predict文のpredict fileオペランドの指定先

×

作業用ワークファイル用ディレクトリ

workdir文の指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

×

pddefrev

定義系SQL出力ファイル

-oオプションの指定先

×

ディクショナリ搬出用のワークディレクトリ

-wオプションの指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

pddivinfgt

分割情報ファイル

-fオプションの指定先

×

pdexp

搬出ファイル

-e又は-iオプションの指定先

×

定義系SQL出力ファイル

-oオプションの指定先

×

pdgetcst

出力結果ファイル

-lオプションの指定先

×

最適化情報パラメタファイル

-eオプションの指定先

×

pdgeter

出力先ディレクトリ

-oオプションの指定先

$PDDIR/erinf/outinf

○

ワークディレクトリ

-wオプションの指定先

$PDDIR/erinf/work

○

pdinfoget

初期情報ファイル出力先ディレクトリ

-eオプションの指定先

○

詳細情報ファイル出力先ディレクトリ

-dオプションの指定先

○

ワークディレクトリ

-wオプション指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

pdinfocreget

coreファイル格納先ディレクトリ

-dオプションの指定先

×

pditvtrc

出力ファイル

コマンドを実行したカレントディレクトリ下

×

排他用ディレクトリ

コマンドを実行したカレントディレクトリ下

○

pdjarsync

JARファイル

pd_java_archive_directoryオペランドの指定先

$PDDIR/java下

×

pdload

LOB中間ファイル

lobmid文の指定先

環境変数TMPDIRの指定先

/tmp下

×

インデクス情報ファイル

index文の指定先

idxwork文の指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

ソート用ワークファイル

sort文の指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

エラー情報ファイル

source文の指定先

環境変数TMPDIRの指定先

/tmp下

×

エラー情報ファイル作成用一時ファイル

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

エラーデータファイル

source文のerrdataオペランドの指定先

×

エラーデータファイル作成用一時ファイル

source文のerrdataオペランドの指定先

○

処理性能情報ファイル

$PDDIR/spool下

×

ユーザ用トラブルシュート情報ファイル※

/tmp下及び$PDDIR/spool/save下

×

ワークファイル

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

×

pdlogunld

アンロードログファイル

-oオプションの指定先

標準出力

×

pdorend

スキップ情報出力ファイル

report文skip_infoオペランドの指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

×

SQLトレース情報ファイル

report文sqltrc_dirオペランドの指定先

×

pdparaload

pdload制御文ファイル

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

pdloadが出力するファイル

pdloadコマンドが出力するファイルと同じです。詳細は，pdloadの項目を参照してください。

−

pdpgbfon

ユーザ用トラブルシュート情報ファイル※

/tmp下及び$PDDIR/spool/save下

×

pdrbal

処理結果ファイル

report文のreportオペランドの指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

×

インデクス情報ファイル

index文の指定先

idxwork文の指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

ソート用ワークファイル

sort文の指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

ワークファイル

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

×

pdrdconstck

処理結果ファイル

-oオプションの指定先

×

pdreclaim

ユーザ用トラブルシュート情報ファイル※

/tmp下及び$PDDIR/spool/save下

×

pdrorg

アンロードファイル

unload文の指定先

×

LOBデータのアンロードファイル

lobunld文の指定先

×

処理性能情報ファイル

$PDDIR/spool下

×

インデクス情報ファイル

index文の指定先

idxwork文の指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

ソート用ワークファイル

sort文の指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

ユーザ用トラブルシュート情報ファイル※

/tmp下及び$PDDIR/spool/save下

×

ワークファイル

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

×

pdrstr

処理結果出力ファイル

-pオプションの指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

×

ソート用ワークディレクトリ

-wオプションの指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

pdstbegin

統計ログファイル

$PDDIR/spool下

×

pdstedit

DAT形式ファイル

-oオプション指定先

×

ワーク用一時ファイル

-wオプション指定先

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

ソート用ワークファイル

環境変数TMPDIRの指定先

/tmp下

○

pdstop

共用メモリダンプファイル

$PDDIR/spool/pdshmdump/shmdump下

×

接続ユーザ情報ファイル

$PDDIR/spool/cnctusrinf下

×

接続ユーザ詳細ファイル

$PDDIR/spool/cnctusrdtl下

×

pdtrndec

シェルスクリプトの出力先ディレクトリ

-oオプションの指定先

コマンドを実行したカレントディレクトリ下

×

実行履歴の出力先ディレクトリ

-oオプションの指定先

コマンドを実行したカレントディレクトリ下

×

pdchpathf

パス変更情報ファイル

コマンドの指定先

×

コマンド作業用一時ファイル

pd_tmp_directoryオペランドの指定先

環境変数TMPDIRの指定先

/tmp下

○

（凡例）

○：コマンドの終了時に，自動的にファイルが削除されます。

×：コマンドの終了時に，自動的にファイルが削除されません。ファイルは残ります。

−：該当しません。

注※

pd_utl_exec_timeオペランドに指定したユティリティの実行監視時間を超えてもユティリティが終了しない場合に出力されるファイルのことです。詳細については，マニュアル「HiRDB システム定義」のpd_utl_exec_timeオペランドの説明を参照してください。

付録J　バージョンアップによって省略値が変更，又は指定不要になったオプション及び制御文

付録J.1　省略値が変更，又は指定不要になったオプション，制御文

バージョン09-50以降で変更したユティリティ及び運用コマンドの，オプション及び制御文の一覧を次の表に示します。

表J‒1　バージョン09-50以降で変更したユティリティ及び運用コマンドのオプション及び制御文の一覧

分類

コマンド名

オプション，制御ファイル，制御文種別

説明

省略値変更の有無

指定値の範囲の変更の有無

公開又は非公開

省略値変更のメリット

省略値変更のデメリット

ユティリティ

pdreclaim

オプション

-j又は-a

空きセグメント解放オプション

-j：オンライン業務と同時実行不可

-a：オンライン業務と同時実行可能

○

−

公開

オンライン中にセグメント解放する場合のオプション指定不要化

pdreclaimの処理時間増

-o

ページコンパクションを実行しない

○

−

非公開

コンパクション要否自動判定による指定不要化

なし

制御文

option

globalbuffer_lru

グローバルバッファへの読み込みページを最古ページにする場合に指定する

○

−

公開

オンライン性能安定化

pdreclaimの処理時間増

option io_interruption_interval

空きページ解放時の休止間隔

−

−

非公開

ユティリティ実行時の制御文指定不要化

なし

pddbst

オプション

-b

pddbst実行によるアプリケーションへのオンライン性能劣化を防ぐ場合に指定する

○

−

公開

オンライン性能安定化

なし

pdrorg

オプション

-j

BLOB列のアンロード，リロード

○

−

公開

データ移行を行う際のトラブル防止及びオプション指定不要化

なし

pdload

制御文

option

file_buff_size

seq_range=buffの場合に使用する入力バッファ用サイズ

○

−

公開

自動採番機能を使用してデータロードする場合のオペランド指定不要化

シングルサーバ，バックエンドサーバ，及びユティリティサーバのプロセス固有メモリ増加

pdload，及びpdrorg

制御文

report

処理性能情報ファイル名

○

−

非公開

性能トラブル要因の特定容易化

HiRDB運用ディレクトリ下のファイル容量増加

pdload，pdrorg，及びpdrbal

制御文

sort

ソート用バッファサイズ

−

−

非公開

ユティリティ実行時のオペランド指定不要化

なし

運用コマンド

pdsetup

オプション

-k

OSシャットダウン時のHiRDBの終了方法（on又はoff）

○

−

非公開

シャットダウンに起因する障害防止

なし

（凡例）

○：変更があります。

−：変更はありません。

(1)　省略値が変更になったオプション及び制御文

省略値が変更になったオプション及び制御文があります。

バージョンアップを行うユーザは，次に示す表を参照して，指定内容を見直してください。省略値が変更されたことで問題がある場合は，オプション及び制御文を明示的に指定してください。なお，新規にHiRDBを構築するユーザは指定内容の見直しは不要です。

表J‒2　省略値が変更になったオプション及び制御文

コマンド名

種別

オプション又は制御文

バージョン09-50より前

バージョン09-50以降

互換モード

推奨モード

pdrorg

オプション

-j

次の場合に-jを仮定します。

スキーマ単位（-t all）での再編成，アンロード，又はリロード

エクスポート（-W -w）

次の場合に-jを仮定します。

スキーマ単位（-t all）の再編成，アンロード，又はリロード

エクスポート（-W -w）

アンロードデータファイルをデータベース作成ユティリティの入力データファイルとして使用する場合，又はUAPなどで使用する場合（-W）

同左

pddbst

オプション

-b

-bオプションを仮定しません。

-sオプションを指定していない場合，-bオプションを仮定します。

同左

pdreclaim

オプション

-j，又は-a

-j又は-aオプションを仮定しません。

-j又は-aオプションを仮定しません（-Zを仮定します）。

-aオプションを仮定します。

制御文

option

globalbuffer_lru

yes

同左

no

pdload

制御文

option

file_buff_size

システム定義pd_utl_file_buff_sizeオペランドの値を仮定します。

1024

同左

pdload，及びpdrorg

制御文

report

処理性能情報ファイルを出力しません。

$PDDIR/spool/utlrpt下に処理性能情報ファイルを出力します。

同左

(2)　指定不要となったオプション及び制御文で，省略値に変更があるもの

指定不要となったオプション及び制御文で，省略値に変更があるものがあります。

バージョンアップを行うユーザは，以下を参照し指定内容の見直しを行ってください。省略値が変更されたことで問題がある場合は，オプション及び制御文を明示的に指定してください。なお，新規にHiRDBを構築するユーザは指定内容の見直しは不要です。

表J‒3　指定不要となったオプション及び制御文で，省略値に変更があるもの

コマンド名

種別

オプション又は制御文

バージョン09-50より前

バージョン09-50以降

互換モード

推奨モード

pdload

pdrorg

制御文

report

チューニング情報を出力しません。

チューニング情報を出力します。

pdreclaim

オプション

-o

表のページコンパクションションを実行します。

表「pdreclaim -oオプションのバージョン09-50以降の省略値」を参照してください。

pdsetup

オプション

-k

off

on

表J‒4　pdreclaim -oオプションのバージョン09-50以降の省略値

システム共通定義（pd_dbreuse_remaining_entries指定）

バージョン09-50以降

互換モード

推奨モード

ALL

表のページコンパクションを実行しません（-oオプション指定ありとして動作します）。

ONLY_DIC，または，NONE

ユーザ表の場合，表のページコンパクションを実行します（-oオプション指定なしとして動作します）。

データディクショナリ表の場合，表のページコンパクションを実行しません（-oオプション指定ありとして動作します）。

ONLY_USER

ユーザ表の場合，表のページコンパクションを実行しません（-oオプション指定ありとして動作します）。

データディクショナリ表の場合，表のページコンパクションを実行します（-oオプション指定なしとして動作します）。

NOTHING

表のページコンパクションを実行します（-oオプション指定なしとして動作します）。

(3)　指定不要となったオプション及び制御文で，省略値に変更がないもの

指定不要となったオプション及び制御文で，省略値に変更がないものがあります。

バージョンアップを行うユーザは，次に示す表を参照して，指定内容を見直してください。なお，新規にHiRDBを構築するユーザは指定内容の見直しは不要です。

表J‒5　指定不要となったオプション及び制御文で，省略値に変更がないもの

コマンド名

種別

オプション又は制御文

バージョン09-50より前

バージョン09-50以降

互換モード

推奨モード

pdload

pdrorg

pdrbal

制御文

sort [,ソート用バッファサイズ]

1024

同左

pdreclaim

制御文

option

io_interruption_interval

空きページ解放時の休止はしません。

同左

付録K　実行権限を変更できる運用コマンド・ユティリティ一覧

付録K.1　コマンド一覧

コマンド実行権限変更機能で実行権限を変更できるコマンドを次に示します。

pdacunlck

pdadmvr

pdaudatld

pdaudbegin

pdaudend

pdaudput

pdaudrm

pdaudswap

pdbkupls

pdbufls

pdbufmod

pdcancel

pdcat

pdchekey※

pdchgconf

pdchpathf

pdchpathn

pdchprc

pdclibsync

pdclose

pdclttrc

pdcmdls

pdcmt

pdconfchk

pdcopy

pdcspool

pddbchg

pddbfrz

pddbls

pdextfunc

pdfbkup

pdfchfs

pdffsck

pdfgt

pdfls

pdfmkfs

pdfrm

pdfrstr

pdfssync

pdfstatfs

pdfzeroinit

pdgeter

pdhold

pdinfoget

pdinit

pdjarsync

pdlistls

pdlogadpf

pdlogatul

pdlogchg

pdlogcls

pdloginit

pdlogls

pdlogopen

pdlogrm

pdlogswap

pdlogsync

pdlogucat

pdlogunld

pdmemdb

pdmkekey※

pdmod

pdmstchk

pdobils

pdopen

pdorbegin

pdorcheck

pdorchg

pdorcreate

pdorend

pdpfresh

pdplgset

pdprfed

pdprflevel

pdrbk

pdrdconstck

pdrdrefls

pdreginit

pdregtpyrcedkey※

pdrels

pdrisechk

pdrisedbto

pdriseset

pdrpause

pdrplstart

pdrplstop

pdrstr

pdstart

pdstbegin

pdstedit

pdstend

pdstjswap

pdstjsync

pdstop

pdstscls

pdstsinit

pdstsopen

pdstsrm

pdstsswap

pdsvhostname

pdtrndec

pdtrnqing

pdvrup

注※

pdregtpyrcedkey，pdmkekey及びpdchekeyについては，マニュアル「HiRDB データベース暗号化機能」を参照してください。

索引

記号

-a〔pdload〕[1]

-a〔pdreclaim〕[1]

-b〔pdload〕[1]

-d〔pdload〕[1]

-g〔pdrorg〕[1]

-j〔pdreclaim〕[1]

-j〔pdrorg〕[1]

-U〔pdload〕[1]

-w〔pdload〕[1]

-W〔pdload〕[1]

-W〔pdrorg〕[1]

-Z〔pdreclaim〕[1]

数字

1 TO 1〔pdvwopt〕[1]

1対1転送[1]

64ビットモードのHiRDBへのSQLオブジェクトの移行[1]

A

ADEC型[1]

ALL〔pdgetcst〕[1]

all〔pdload〕[1]

all〔pdpgbfon〕[1]

all〔pdreclaim〕[1]

all〔pdrorg〕[1]

allspace〔pdloadのoption文〕[1]

alter HiRDB mode to parallel文〔pdmod〕[1]

alter rdarea文〔pdmod〕[1]

alter system文〔pdmod〕[1]

AND PLURAL INDEXES SCAN〔pdvwopt〕[1]

array文〔pdload〕[1]

array文〔pdrorg〕[1]

B

BDEC型[1]

bloblimit〔pdloadのoption文〕[1]

bloblimit〔pdrorgのunlduoc文〕[1]

blobtovarchar文〔pdrorg〕[1]

BROADCAST〔pdvwopt〕[1]

C

charset〔pdloadのoption文〕[1]

charset〔pdrorgのoption文〕[1]

cntlcode〔pdrorgのfixtext_option文〕[1]

CONNECT/DISCONNECTに関する統計情報[1]

constraint文〔pdload〕[1]

constraint文〔pdrorg〕[1]

coreファイルの取得と容量見積もり[1]

create auditor文〔pdmod〕[1]

create audit table文〔pdmod〕[1]

create generation文〔pdmod〕[1]

create rdarea文〔pdinit〕[1]

create rdarea文〔pdmod〕[1]

create rdarea文〔pdreginit〕[1]

create rdarea文の指定順序[1]

CROSS JOIN〔pdvwopt〕[1]

csetnck〔pdload〕[1]

cutdtmsg〔pdloadのoption文〕[1]

Cライブラリファイルの操作[1]

D

dataerr〔pdloadのoption文〕[1]

data〔pdload〕[1]

DAT形式[1]、[2]

DAT形式ファイル出力先ディレクトリ名〔pdstedit〕[1]

DAT形式ファイルへの統計情報出力[1]

DB状態解析機能[1]

DBメンテナンス予定日の情報[1]

DECIMAL型の符号正規化機能[1]、[2]

decin〔pdloadのextdat文〕[1]

define copy rdarea文〔pdmod〕[1]

define system文〔pdinit〕[1]

deputy〔pdmodのcreate auditor文〕[1]

dicinf〔pdinitのdefine system文〕[1]

dictionary datatype mchar〔pdinitのdefine system文〕[1]

divermsg〔pdloadのoption文〕[1]

div〔pdload〕[1]

div〔pdrorg〕[1]

E

EasyMT[1]

EasyMT情報〔pdloadのlobdata文〕[1]

EasyMT情報〔pdloadのsource文〕[1]

EasyMT情報〔pdrorgのlobunld文〕[1]

EasyMT情報〔pdrorgのunload文〕[1]

EasyMTテープでの作成方法〔入力データファイル〕[1]

EasyMTファイル名〔pdcopy〕[1]

EasyMTファイル名〔pdrstr〕[1]

EasyMT用MT属性定義ファイル名〔pdcopy〕[1]

EasyMT用MT属性定義ファイル名〔pdrstr〕[1]

EasyMT用入出力バッファ面数〔pdcopy〕[1]

EasyMT用入出力バッファ面数〔pdrstr〕[1]

elmtype〔pdloadのarray文〕[1]

elmtype〔pdrorgのarray文〕[1]

emtdef〔pdloadのemtdef文〕[1]

emtdef〔pdrorgのemtdef文〕[1]

emtdef文〔pdload〕[1]

emtdef文〔pdrorg〕[1]

enclose_del〔pdloadの列名文〕[1]

enclose〔pdloadのextdat文〕[1]

enclose〔pdrorgのfixtext_option文〕[1]

entry〔pdloadのsrcuoc文〕[1]

entry〔pdrorgのunlduoc文〕[1]

errdata〔pdloadのsource文〕[1]

error〔pdloadのlobmid文〕[1]

error〔pdloadのsource文〕[1]

errwork〔pdloadのsource文〕[1]

execstop文〔pdrbal〕[1]

exectime〔pdloadのoption文〕[1]

exectime〔pdrorgのoption文〕[1]

expand rdarea文〔pdmod〕[1]

extdat文[1]

F

FF形式[1]

FF形式でのナル値の扱い[1]

file_buff_size〔pdloadのoption文〕[1]

filedir〔pdloadの列名文〕[1]

fixrow〔pdrorgのunlduoc文〕[1]

fixtext_option文〔pdrorg〕[1]

format〔pdrorgのfixtext_option文〕[1]

FULL SCAN TYPEプラグイン提供関数[1]

func〔pdloadの列名文〕[1]

func〔pdrorgのreld_func文〕[1]

func〔pdrorgのunld_func文〕[1]

FV形式[1]

H

HASH〔pdvwopt〕[1]

HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へのRDエリアの変更[1]

HiRDB Datareplicator連携に関する情報[1]、[2]

HiRDB Datareplicator連携の開始[1]

HiRDB Datareplicator連携の終了[1]

HiRDB Datareplicator連携の状態表示[1]

HiRDB管理者以外のユーザによるコマンド実行[1]

HiRDBシステムのOSへの登録・削除[1]

HiRDBシステムの開始[1]

HiRDBシステムの終了[1]

HiRDBシステムの状態表示[1]

HiRDBの系の状態表示[1]

HiRDBの状態の定期取得[1]

HiRDBの状態の定期取得停止[1]

HiRDBの製品情報の取得[1]

HiRDBバージョンアップ[1]

HiRDBファイル[1]

HiRDBファイルシステムの内容表示[1]

HiRDBファイルシステムのバックアップ[1]

HiRDBファイルシステムのリストア[1]

HiRDBファイルシステム領域内の使用済み領域の初期化[1]

HiRDBファイルシステム領域の管理情報変更[1]

HiRDBファイルシステム領域の管理領域サイズ[1]

HiRDBファイルシステム領域の状態表示[1]

HiRDBファイルシステム領域の使用目的[1]

HiRDBファイルシステム領域の初期設定[1]

HiRDBファイルシステム領域の整合性の検証及び修復[1]

HiRDBファイルシステム領域の世代削除[1]

HiRDBファイルシステム領域の世代登録[1]

HiRDBファイルシステム領域の世代番号〔pdmodのreplicate rdarea文〕[1]

HiRDBファイルシステム領域の同期実行[1]

HiRDBファイルシステム領域名〔pdinitのcreate rdarea文〕[1]

HiRDBファイルシステム領域名〔pdmodのcreate rdarea文〕[1]

HiRDBファイルシステム領域名〔pdmodのexpand rdarea文〕[1]

HiRDBファイルシステム領域名〔pdmodのinitialize rdarea文〕[1]

HiRDBファイルシステム領域名〔pdreginitのcreate rdarea文〕[1]

HiRDBファイルシステム領域名〔pdstedit〕[1]

HiRDBファイル情報〔pddbst〕[1]

HiRDBファイル情報〔pdrorgのlobunld文〕[1]

HiRDBファイル情報〔pdrorgのunload文〕[1]

HiRDBファイル内セグメント数〔pdinitのcreate rdarea文〕[1]

HiRDBファイル内セグメント数〔pdmodのcreate rdarea文〕[1]

HiRDBファイル内セグメント数〔pdmodのexpand rdarea文〕[1]

HiRDBファイル内セグメント数〔pdmodのinitialize rdarea文〕[1]

HiRDBファイル内セグメント数〔pdreginitのcreate rdarea文〕[1]

HiRDBファイルの削除[1]

HiRDBファイル名〔pdinitのcreate rdarea文〕[1]

HiRDBファイル名〔pdmodのcreate rdarea文〕[1]

HiRDBファイル名〔pdmodのexpand rdarea文〕[1]

HiRDBファイル名〔pdmodのinitialize rdarea文〕[1]

HiRDBファイル名〔pdreginitのcreate rdarea文〕[1]

HiRDBユニットの環境設定[1]

I

idxfree〔pdloadのoption文〕[1]

idxfree〔pdrorgのoption文〕[1]

idxname文〔pdpgbfon〕[1]

idxname文〔pdreclaim〕[1]

idxname文〔pdrorg〕[1]

idxwork文〔pdload〕[1]

idxwork文〔pdrbal〕[1]

idxwork文〔pdrorg〕[1]

INDEX SCAN〔pdvwopt〕[1]

INDEX SCAN TYPEプラグイン提供関数[1]

index文〔pdload〕[1]

index文〔pdrbal〕 [1]

index文〔pdrorg〕[1]

initialize rdarea文〔pdmod〕[1]

J

JARファイルの操作[1]

job〔pdloadのoption文〕[1]

job〔pdrorgのoption文〕[1]

JP1/NETM/Audit用監査ログ出力ファイル[1]

JP1/NETM/Audit用監査ログ出力ファイルの形式[1]

JP1/NETM/Audit用監査ログ出力ユティリティ[1]

JP1/NETM/Audit用監査ログ出力ユティリティ〔ユティリティ一覧〕[1]

JP1/NETM/Audit用監査ログの出力項目[1]

K

KEY RANGE PARTIAL BROADCAST〔pdvwopt〕[1]

KEY RANGE〔pdvwopt〕[1]

KEY SCAN MERGE JOIN〔pdvwopt〕[1]

KEY SCAN〔pdvwopt〕[1]

L

lengover〔pdloadのoption文〕[1]

LIST SCAN MERGE JOIN〔pdvwopt〕[1]

LIST SCAN〔pdvwopt〕[1]

lobcolumn文〔pdload〕[1]

lobdata文〔pdload〕[1]

lobmid文〔pdload〕[1]

lobunld文〔pdrorg〕[1]

LOB作成種別〔pdload〕[1]

LOB中間ファイル〔pdload〕[1]

LOB中間ファイル名〔pdloadのlobmid文〕[1]

LOBデータ，及びLOBパラメタの記述方法〔-k v又は-k dの場合〕[1]

LOBデータのアンロードファイルの種別〔pdrorg〕[1]

LOBデータのアンロードファイル名〔pdrorg〕[1]

LOB入力ファイル〔pdload〕[1]、[2]

LOB入力ファイルの種別〔pdload〕[1]

LOB入力ファイルのディレクトリ名〔pdloadのlobdata文〕[1]

LOB入力ファイル名〔pdloadのlobdata文〕[1]

LOBパラメタ[1]

LOB用グローバルバッファ名〔pdmodのdefine copy rdarea文〕[1]

LOB用グローバルバッファ名〔pdmodのrecast rdarea文〕[1]

LOB用グローバルバッファ名〔pdmodのreplicate rdarea文〕[1]

LOB列[1]

LOB列がある表へのデータロード[1]、[2]

LOB列構成基表[1]

LOB列の列名〔pdloadのlobcolumn文〕[1]

L-KEY R-LIST MERGE JOIN〔pdvwopt〕[1]

L-KEY R-SORT MERGE JOIN〔pdvwopt〕[1]

L-LIST R-KEY MERGE JOIN〔pdvwopt〕[1]

L-LIST R-SORT MERGE JOIN〔pdvwopt〕[1]

L-SORT R-KEY MERGE JOIN〔pdvwopt〕[1]

L-SORT R-LIST MERGE JOIN〔pdvwopt〕[1]

M

maxreclen〔pdloadのsource文〕[1]

mode〔pdloadの列名文〕[1]

move rdarea文〔pdmod〕[1]

MTguide[1]

mtguide〔pdloadのmtguide文〕[1]

mtguide〔pdrorgのmtguide文〕[1]

mtguide文〔pdload〕[1]

mtguide文〔pdrorg〕[1]

MT属性定義ファイル名〔pdload〕[1]

MT属性定義ファイル名〔pdrorg〕[1]

MULTI COLUMNS INDEX SCAN〔pdvwopt〕[1]

MULTI COLUMNS KEY SCAN〔pdvwopt〕[1]

MULTIDIM〔pdvwopt〕[1]

N

name〔pdrorgのindex文〕[1]

NESTED LOOPS JOIN〔pdvwopt〕[1]

NetBackupのポリシー名〔pdcopy〕[1]

NetBackupのポリシー名〔pdrstr〕[1]

norestart[1]

nowait〔pdloadのoption文〕[1]

null_string〔pdloadのoption文〕[1]

null〔pdloadの列名文〕[1]

nullset〔pdloadのarray文〕[1]

O

option文〔pddbst〕[1]

option文〔pdload〕[1]

option文〔pdpgbfon〕[1]

option文〔pdrbal〕[1]

option文〔pdreclaim〕[1]

option文〔pdrorg〕[1]

ORDER BY処理方式の種類[1]

OR PLURAL INDEXES SCAN〔pdvwopt〕[1]

P

param〔pdloadのsrcuoc文〕[1]、[2]

param〔pdloadの列名文〕[1]

PARTIAL BROADCAST〔pdvwopt〕[1]

PATH〔コマンドを実行するための環境変数の指定〕[1]

pdacunlck[1]

pdacunlck〔運用コマンド一覧〕[1]

pdadmvr[1]

pdadmvr〔運用コマンド一覧〕[1]

pdaudatld[1]

pdaudatld〔運用コマンド一覧〕[1]

pdaudbegin[1]

pdaudbegin〔運用コマンド一覧〕[1]

pdaudend[1]

pdaudend〔運用コマンド一覧〕[1]

pdaudput[1]

pdaudput用管理ファイル[1]

pdaudput〔ユティリティ一覧〕[1]

pdaudrm[1]

pdaudrm〔運用コマンド一覧〕[1]

pdaudswap[1]

pdaudswap〔運用コマンド一覧〕[1]

pdbkupls[1]

pdbkupls〔運用コマンド一覧〕[1]

pdbufls[1]

pdbufls〔運用コマンド一覧〕[1]

pdbufmod[1]

pdbufmod〔運用コマンド一覧〕[1]

pdcancel[1]

pdcancel〔運用コマンド一覧〕[1]

pdcat[1]

pdcat〔運用コマンド一覧〕[1]

pdcat【-d sts】[1]

pdcat【-d省略】[1]

pdcbl〔運用コマンド一覧〕[1]

pdchgconf[1]

pdchgconf〔運用コマンド一覧〕[1]

pdchpathf[1]

pdchpathf〔運用コマンド一覧〕[1]

pdchpathn[1]

pdchpathn〔運用コマンド一覧〕[1]

pdchprc[1]

pdchprc〔運用コマンド一覧〕[1]

pdclibsync[1]

pdclibsync〔運用コマンド一覧〕[1]

pdclose[1]

pdclose〔運用コマンド一覧〕[1]

pdclttrc[1]

pdclttrc〔運用コマンド一覧〕[1]

pdcmdact[1]

pdcmdact〔運用コマンド一覧〕[1]

pdcmdls[1]

pdcmdls〔運用コマンド一覧〕[1]

pdcmdset[1]

pdcmdset〔運用コマンド一覧〕[1]

pdcmt[1]

pdcmt〔運用コマンド一覧〕[1]

pdconfchk[1]

pdconfchk〔運用コマンド一覧〕[1]

PDCONFPATH〔コマンドを実行するための環境変数の指定〕[1]

pdconstck[1]

pdconstck〔ユティリティ一覧〕[1]

pdcopy[1]

pdcopy〔ユティリティ一覧〕[1]

pdcpp〔運用コマンド一覧〕[1]

pdcspool[1]

pdcspool〔運用コマンド一覧〕[1]

pddbchg[1]

pddbchg〔運用コマンド一覧〕[1]

pddbfrz[1]

pddbfrz〔運用コマンド一覧〕[1]

pddbls[1]

pddbls〔運用コマンド一覧〕[1]

pddbst[1]

pddbst〔ユティリティ一覧〕[1]

pddef[1]

pddefrev[1]

pddefrev〔運用コマンド一覧〕[1]

pddef〔ユティリティ一覧〕[1]

PDDIR〔コマンドを実行するための環境変数の指定〕[1]

pddivinfgt[1]

pddivinfgt〔運用コマンド一覧〕[1]

pdexp[1]

pdexp〔ユティリティ一覧〕[1]

pdextfunc[1]

pdextfunc〔運用コマンド一覧〕[1]

pdfbkup[1]

pdfbkup〔運用コマンド一覧〕[1]

pdfchfs[1]

pdfchfs〔運用コマンド一覧〕[1]

pdffsck[1]

pdffsck〔運用コマンド一覧〕[1]

pdfgt[1]

pdfgt〔運用コマンド一覧〕[1]

pdfls[1]

pdfls〔運用コマンド一覧〕[1]

pdfmkfs[1]

pdfmkfs〔運用コマンド一覧〕[1]

pdfrm[1]

pdfrm〔運用コマンド一覧〕[1]

pdfrstr[1]

pdfrstr〔運用コマンド一覧〕[1]

pdfssync[1]

pdfstatfs[1]

pdfstatfs〔運用コマンド一覧〕[1]

pdfzeroinit[1]

pdfzeroinit〔運用コマンド一覧〕[1]

pdgetcst[1]

pdgetcst〔ユティリティ一覧〕[1]

pdgeter[1]

pdgeter〔運用コマンド一覧〕[1]

pdgeterで取得する障害情報[1]

pdhold[1]

pdhold〔運用コマンド一覧〕[1]

pdinfocoreget[1]

pdinfocoreget〔運用コマンド一覧〕[1]

pdinfoget[1]

pdinfoget〔運用コマンド一覧〕[1]

pdinit[1]

pdinit〔ユティリティ一覧〕[1]

pditvstop[1]

pditvstop〔運用コマンド一覧〕[1]

pditvtrc[1]

pditvtrc〔運用コマンド一覧〕[1]

pdjarsync[1]

pdjarsync〔運用コマンド一覧〕[1]

pdlistls[1]

pdlistls〔運用コマンド一覧〕[1]

pdload[1]

pdloadが使用するバッファ[1]

pdloadの実行監視時間〔pdloadのoption文〕[1]

pdload〔ユティリティ一覧〕[1]

pdload用アンロードファイル[1]

pdlogadpf[1]

pdlogadpf〔運用コマンド一覧〕[1]

pdlogatul[1]

pdlogatul〔運用コマンド一覧〕[1]

pdlogchg[1]

pdlogchg〔運用コマンド一覧〕[1]

pdlogcls[1]

pdlogcls〔運用コマンド一覧〕[1]

pdloginit[1]

pdloginit〔運用コマンド一覧〕[1]

pdlogls[1]

pdlogls〔運用コマンド一覧〕[1]

pdlogls【-d spd】[1]

pdlogls【-d sys】[1]

pdlogopen[1]

pdlogopen〔運用コマンド一覧〕[1]

pdlogrm[1]

pdlogrm〔運用コマンド一覧〕[1]

pdlogswap[1]

pdlogswap〔運用コマンド一覧〕[1]

pdlogsync[1]

pdlogsync〔運用コマンド一覧〕[1]

pdlogucat[1]

pdlogucat〔運用コマンド一覧〕[1]

pdlogunld[1]

pdlogunld〔運用コマンド一覧〕[1]

pdls[1]

pdls〔運用コマンド一覧〕[1]

pdls【-d act】[1]

pdls【-d aud】[1]

pdls【-d ha】[1]

pdls【-d lck】[1]

pdls【-d mem】[1]

pdls【-d org】[1]

pdls【-d prc】[1]

pdls【-d ris】[1]

pdls【-d rpc】[1]

pdls【-d rpl】[1]

pdls【-d scd】[1]

pdls【-d stj】[1]

pdls【-d sts】[1]

pdls【-d svr】[1]

pdls【-d trn】[1]

pdls【-d ust】[1]

pdmemdb[1]

pdmemdb〔運用コマンド一覧〕[1]

pdmemsv[1]

pdmemsv〔運用コマンド一覧〕[1]

pdmod[1]

pdmodの機能[1]

pdmod〔ユティリティ一覧〕[1]

pdmstchk[1]

pdmstchk〔運用コマンド一覧〕[1]

pdobils[1]

pdobils〔運用コマンド一覧〕[1]

pdobjconv[1]

pdobjconv〔運用コマンド一覧〕[1]

pdocb〔運用コマンド一覧〕[1]

pdocc〔運用コマンド一覧〕[1]

pdopen[1]

pdopen〔運用コマンド一覧〕[1]

pdopsetup[1]

pdopsetup〔運用コマンド一覧〕[1]

pdorbegin[1]

pdorbegin〔運用コマンド一覧〕[1]

pdorcheck[1]

pdorcheck〔運用コマンド一覧〕[1]

pdorchg[1]

pdorchg〔運用コマンド一覧〕[1]

pdorcreate[1]

pdorcreate〔運用コマンド一覧〕[1]

pdorend[1]

pdorend〔運用コマンド一覧〕[1]

pdparaload[1]

pdparaload〔運用コマンド一覧〕[1]

pdpfresh[1]

pdpfresh〔運用コマンド一覧〕[1]

pdpgbfon[1]

pdpgbfonの監視時間〔pdpgbfonのoption文〕[1]

pdpgbfonの処理結果[1]

pdpgbfon〔ユティリティ一覧〕[1]

pdplgrgst[1]

pdplgrgst〔運用コマンド一覧〕[1]

pdplgset[1]

pdplgset〔運用コマンド一覧〕[1]

pdprfed[1]

pdprfed〔運用コマンド一覧〕[1]

pdprflevel[1]

pdprflevel〔運用コマンド一覧〕[1]

pdprgcopy[1]

pdprgcopy〔運用コマンド一覧〕[1]

pdprgrenew[1]

pdprgrenew〔運用コマンド一覧〕[1]

pdrbal[1]

pdrbalが使用するバッファ[1]

pdrbal実行時間〔pdrbalのexecstop文〕[1]

pdrbal〔ユティリティ一覧〕[1]

pdrbk[1]

pdrbk〔運用コマンド一覧〕[1]

pdrdconstck[1]

pdrdconstck〔運用コマンド一覧〕[1]

pdrdrefls[1]

pdrdrefls〔運用コマンド一覧〕[1]

pdreclaim[1]

pdreclaimの監視時間〔pdreclaimのoption文〕[1]

pdreclaimの処理結果[1]

pdreclaim〔ユティリティ一覧〕[1]

pdreginit[1]

pdreginit〔ユティリティ一覧〕[1]

pdrels[1]

pdrels〔運用コマンド一覧〕[1]

pdrisechk[1]

pdrisechk〔運用コマンド一覧〕[1]

pdrisedbto[1]

pdrisedbto〔運用コマンド一覧〕[1]

pdriseset[1]

pdriseset〔運用コマンド一覧〕[1]

pdrorg[1]

pdrorgがUOCに渡すデータの格納方法〔pdrorgのunlduoc文〕[1]

pdrorgが使用するバッファ[1]

pdrorg出力バイナリ形式[1]

pdrorg出力バイナリ形式ファイル[1]

pdrorgの機能[1]

pdrorgの機能ごとのオプション指定可否[1]

pdrorgの実行監視時間〔pdrorgのoption文〕[1]

pdrorg〔ユティリティ一覧〕[1]

pdrorg用アンロードファイル[1]

pdrpause[1]

pdrpause〔運用コマンド一覧〕[1]

pdrplstart[1]

pdrplstart〔運用コマンド一覧〕[1]

pdrplstop[1]

pdrplstop〔運用コマンド一覧〕[1]

pdrstr[1]

pdrstr〔ユティリティ一覧〕[1]

pdsetenv[1]

pdsetenv〔運用コマンド一覧〕[1]

pdsetup[1]

pdsetup〔運用コマンド一覧〕[1]

pdsql[1]

pdsql〔ユティリティ一覧〕[1]

pdstart[1]

pdstart〔運用コマンド一覧〕[1]

pdstbegin[1]

pdstbegin〔運用コマンド一覧〕[1]

pdstedit[1]

pdstedit〔ユティリティ一覧〕[1]

pdstend[1]

pdstend〔運用コマンド一覧〕[1]

pdstjswap[1]

pdstjswap〔運用コマンド一覧〕[1]

pdstjsync[1]

pdstjsync〔運用コマンド一覧〕[1]

pdstop[1]

pdstop〔運用コマンド一覧〕[1]

pdstscls[1]

pdstscls〔運用コマンド一覧〕[1]

pdstsinit[1]

pdstsinit〔運用コマンド一覧〕[1]

pdstsopen[1]

pdstsopen〔運用コマンド一覧〕[1]

pdstsrm[1]

pdstsrm〔運用コマンド一覧〕[1]

pdstsswap[1]

pdstsswap〔運用コマンド一覧〕[1]

pdsvhostname[1]

pdsvhostname〔運用コマンド一覧〕[1]

pdtrndec[1]

pdtrndec〔運用コマンド一覧〕[1]

pdtrnqing[1]

pdtrnqing〔運用コマンド一覧〕[1]

pdvrup[1]

pdvrup〔運用コマンド一覧〕[1]

pdvwopt[1]

pdvwopt〔ユティリティ一覧〕[1]

pending〔pdloadのconstraint文〕[1]

pending〔pdrorgのconstraint文〕[1]

PLUGIN INDEX SCAN〔pdvwopt〕[1]

PLUGIN KEY SCAN〔pdvwopt〕[1]

predict文〔pddbst〕[1]

PRFトレース取得レベルの表示及び変更[1]

PRFトレース情報の編集出力[1]

R

rdaomit〔pdload〕[1]

RDエリア単位の状態解析[1]、[2]、[3]

RDエリアの移動[1]

RDエリアのオープン[1]

RDエリアのオープン契機〔pdinitのcreate rdarea文〕[1]

RDエリアのオープン契機〔pdmodのalter rdarea文〕[1]

RDエリアのオープン契機〔pdmodのcreate rdarea文〕[1]

RDエリアのオープン契機〔pdmodのinitialize rdarea文〕[1]

RDエリアの拡張[1]

RDエリアのクローズ[1]

RDエリアの構成情報複写[1]

RDエリアの再初期化[1]

RDエリアの削除[1]

RDエリアの種類〔pdinitのcreate rdarea文〕[1]

RDエリアの種類〔pdmodのcreate rdarea文〕[1]

RDエリアの種類〔pdreginitのcreate rdarea文〕[1]

RDエリアの状態遷移[1]

RDエリアの状態によるUAPの実行可否[1]

RDエリアの状態によるユティリティの実行可否[1]

RDエリアの状態表示[1]

RDエリアの属性変更[1]

RDエリアの追加[1]

RDエリアの統合[1]

RDエリアの閉塞[1]

RDエリアの閉塞解除[1]

RDエリアのレプリカ定義[1]

RDエリア名〔pdcopy〕[1]

RDエリア名〔pddbst〕[1]

RDエリア名〔pdinitのcreate rdarea文〕[1]

RDエリア名〔pdloadのindex文〕[1]

RDエリア名〔pdloadのlobmid文〕[1]

RDエリア名〔pdloadのsource文〕[1]

RDエリア名〔pdmodのalter HiRDB mode to parallel文〕[1]

RDエリア名〔pdmodのalter rdarea文〕[1]

RDエリア名〔pdmodのcreate audit table文〕[1]

RDエリア名〔pdmodのcreate rdarea文〕[1]

RDエリア名〔pdmodのexpand rdarea文〕[1]

RDエリア名〔pdmodのinitialize rdarea文〕[1]

RDエリア名〔pdmodのmove rdarea文〕[1]

RDエリア名〔pdmodのremove rdarea文〕[1]

RDエリア名〔pdpgbfon〕[1]

RDエリア名〔pdpgbfonのidxname文〕[1]

RDエリア名〔pdrbalのindex文〕[1]

RDエリア名〔pdreclaim〕[1]

RDエリア名〔pdreclaimのidxname文〕[1]

RDエリア名〔pdreginitのcreate rdarea文〕[1]

RDエリア名〔pdrorg〕[1]

RDエリア名〔pdrorgのindex文〕[1]

RDエリア名〔pdrstr〕[1]

recast rdarea文〔pdmod〕[1]

ref_pending〔pdloadのconstraint文〕[1]

ref_pending〔pdrorgのconstraint文〕[1]

reld_func文〔pdrbal〕[1]

reld_func文〔pdrorg〕[1]

remove generation文〔pdmod〕[1]

remove rdarea文〔pdmod〕[1]

replicate rdarea文〔pdmod〕[1]

report文〔pdrbal〕[1]

ROWID FETCH〔pdvwopt〕[1]

R-LIST NESTED LOOPS JOIN〔pdvwopt〕[1]

S

SCAN TYPEプラグイン提供関数[1]

SELECT-APSL〔pdvwopt〕[1]、[2]、[3]

seq_range〔pdloadのoption文〕[1]

sequence〔pdloadの列名文〕[1]

server〔pdrorgのindex文〕[1]

SHLIB_PATH〔コマンドを実行するための環境変数の指定〕[1]

SORT MERGE JOIN〔pdvwopt〕[1]

sort文[1]

sort文〔pdload〕[1]

sort文〔pdrorg〕[1]

source文〔pdload〕[1]

spacelvl〔pdloadのoption文〕[1]

spacelvl〔pdrorgのoption文〕[1]

SQLオブジェクト移行情報[1]

SQLオブジェクト実行に関する統計情報[1]

SQLオブジェクト転送に関する統計情報[1]

SQLオブジェクト用バッファの統計情報表示[1]

SQL静的最適化に関する統計情報[1]

SQL動的最適化に関する統計情報[1]

SQLトレースの動的取得[1]

SQLに関する統計情報[1]、[2]

SQL文の終了指定〔pddef〕[1]

SQL文の履歴に関する統計情報[1]

src_work文〔pdload〕[1]

srcendian〔pdloadのoption文〕[1]

srcuoc文〔pdload〕[1]

T

TABLE SCAN〔pdvwopt〕[1]

tblfree〔pdloadのoption文〕[1]

tblfree〔pdrorgのoption文〕[1]

tblname文〔pdrorg〕[1]

tblstatus〔pdrorgのoption文〕[1]

type〔pdrorgのreld_func文〕[1]

type〔pdrorgのunld_func文〕[1]

U

UAP処理の強制終了[1]

UAPに関する統計情報[1]、[2]

UAPの識別情報[1]、[2]

UAP名〔pdstedit〕[1]

UNICAST〔pdvwopt〕[1]

unld_func文〔pdrbal〕[1]

unld_func文〔pdrorg〕[1]

unldenq〔pdrorgのoption文〕[1]

unlduoc文〔pdrorg〕[1]

unload文〔pdrorg〕[1]

UNTIL DISCONNECT指定の排他保持状態[1]、[2]

UOC[1]、[2]、[3]

uoc〔pdloadのsource文〕[1]

uoc〔pdrorgのunload文〕[1]

UOCインタフェース領域の内容[1]

UOC情報〔pdrorgのunload文〕[1]

UOCの使用例〔pdload〕[1]

UOCの使用例〔pdrorg〕[1]

UOCを利用した再編成[1]、[2]

UOCを利用したデータロード[1]

V

validate 符号〔pdloadのsource文〕[1]

VV形式[1]

W

whitespace〔pdloadのoption文〕[1]

without lock table〔pdmodのinitialize rdarea文〕[1]

with reconstruction〔pdmodのinitialize rdarea文〕[1]

workdir文〔pddbst〕[1]

あ

空きありセグメント[1]

空きセグメント[1]

空きセグメント解放のコミット間隔〔pdreclaim〕[1]

空きページ解放のコミット間隔〔pdreclaim〕[1]

空きページ解放ユティリティ[1]

空きページ解放ユティリティの排他制御モード〔共用表の場合〕[1]

空きページ解放ユティリティ〔ユティリティ一覧〕[1]

アクセスパス情報ファイル〔pdvwopt〕[1]

アクセスパス情報ファイル取得時の注意事項[1]

アクセスパスの種類[1]

アクセスパス表示ユティリティ[1]

アクセスパス表示ユティリティの実行手順[1]

アクセスパス表示ユティリティ〔ユティリティ一覧〕[1]

アプリケーション向けデータ更新〔UOCを利用した再編成〕[1]

暗黙的グループ分け処理[1]

アンロード順指定〔pdrorg〕[1]

アンロードデータファイルの種別〔pdrorg〕[1]

アンロードデータファイル名〔pdrorg〕[1]

アンロード統計ログファイル[1]

アンロードレスシステムログ運用[1]、[2]、[3]、[4]、[5]

アンロードログファイル[1]

アンロードログファイルの情報表示[1]

アンロードログファイル名〔pdrstr〕[1]

い

一括出力用ローカルバッファ面数〔pdload〕[1]

一括入出力用ローカルバッファ面数〔pdrbal〕[1]

一括入出力用ローカルバッファ面数〔pdrorg〕[1]

一括入力最大ページ数[1]

インターバル解析〔状態解析結果蓄積機能（pddbst）〕[1]

インデクス一括作成モード〔pdload〕[1]

インデクス一括作成モード〔pdrbal〕[1]

インデクス一括作成モード〔pdrorg〕[1]

インデクスが定義されている表へのデータロード[1]

インデクス検索〔pdvwoptでのチューニング〕[1]

インデクス更新モード〔pdload〕[1]

インデクス更新モード〔pdrbal〕[1]

インデクス更新モード〔pdrorg〕[1]

インデクス作成上の注意事項〔pdload〕[1]

インデクス作成上の注意事項〔pdrorg〕[1]

インデクス作成方法〔pdload〕[1]

インデクス作成方法〔pdrbal〕[1]

インデクス作成方法〔pdrorg〕[1]

インデクス識別子〔pddbst〕[1]

インデクス識別子〔pdloadのindex文〕[1]

インデクス識別子〔pdpgbfonのidxname文〕[1]

インデクス識別子〔pdrbalのindex文〕[1]

インデクス識別子〔pdreclaimのidxname文〕[1]

インデクス識別子〔pdrorgのindex文〕[1]、[2]

インデクス情報出力モード〔pdload〕[1]

インデクス情報出力モード〔pdrorg〕[1]

インデクス情報出力抑止モード〔pdload〕[1]

インデクス情報ファイル〔pdload〕[1]

インデクス情報ファイル〔pdrbal〕[1]

インデクス情報ファイル〔pdrorg〕[1]

インデクス情報ファイル名〔pdloadのindex文〕[1]

インデクス情報ファイル名〔pdrbalのindex文〕[1]

インデクス情報ファイル名〔pdrorgのindex文〕[1]

インデクス単位の状態解析[1]、[2]

インデクス定義〔pdvwoptでのチューニング〕[1]

インデクスに関する統計情報[1]

インデクスの一括作成[1]、[2]

インデクスの再作成[1]、[2]

インデクスの再編成[1]、[2]

インデクスを使用しない検索[1]

インナレプリカ機能を使用したバックアップの取得[1]

インナレプリカグループ内のRDエリアの整合性チェック[1]

インフォメーションメッセージ出力抑止レベル〔pdload〕[1]

インフォメーションメッセージ出力抑止レベル〔pdrbal〕[1]

インフォメーションメッセージ出力抑止レベル〔pdrorg〕[1]

インメモリデータ処理[1]

インメモリデータ処理を使用している場合〔バックアップの取得〕[1]

う

埋め字データ〔pdloadの列名文〕[1]

運用コマンド[1]

運用コマンド，ユティリティでのRDエリアの指定[1]

運用コマンド一覧[1]

運用コマンドの実行者[1]

運用コマンドの排他制御モード[1]

運用方法〔pdpgbfon〕[1]

え

エラー情報ファイル〔pdload〕[1]

エラー情報ファイル名〔pdloadのlobmid文〕[1]

エラー情報ファイル名〔pdloadのsource文〕[1]

エラーデータファイル作成用バッファサイズ〔pdloadのsource文〕[1]

エラーデータファイル名〔pdloadのsource文〕[1]

お

オプション[1]

オペレーションコード[1]

オリジナルHiRDBファイルシステム領域名〔pdmodのcreate generation文〕[1]

オリジナルRDエリア名〔pdmodのrecast rdarea文〕[1]

オリジナルRDエリア名〔pdmodのreplicate rdarea文〕[1]

オンライン再編成の追い付き反映[1]

オンライン再編成の追い付き反映環境の作成[1]

オンライン再編成の追い付き反映の経過情報[1]

オンライン再編成のカレントRDエリアの切り替え[1]

オンライン再編成のデータベース静止化[1]

オンライン再編成の適用条件チェック[1]

オンライン再編成閉塞[1]

か

改竄防止表〔pdrorgを実行する場合の注意事項〕[1]

開始時刻〔pdstedit〕[1]

解析項目別情報[1]

回復開始時刻〔pdrstr〕[1]

回復終了時刻〔pdrstr〕[1]

会話型SQL実行ユティリティ[1]

会話型SQL実行ユティリティ〔ユティリティ一覧〕[1]

書き込みバッファサイズ〔pdrstr〕[1]

拡張DAT形式[1]、[2]

拡張機能の内容〔pdloadのextdat文〕[1]

拡張システム定義スカラ関数の定義，削除[1]

格納行数の表示〔pddbst〕[1]

囲み文字[1]

囲み文字〔pdloadのextdat文〕[1]

可変長データ型の場合の配列データ[1]

可変長ブロックテープでの作成方法〔入力データファイル〕[1]

カレントRDエリアの世代単位〔検査保留状態の強制変更機能の実行単位〕[1]

カレントRDエリアの世代単位〔整合性チェック機能の実行単位〕[1]

監査証跡データ登録UOC[1]

監査証跡データ登録UOC用パラメタ〔pdloadのsrcuoc文〕[1]

監査証跡の取得開始[1]

監査証跡表の作成[1]

監査証跡表の自動データロード機能の制御[1]

監査証跡ファイルの状態表示[1]

監査人の登録[1]

関数名〔pdloadのsrcuoc文〕[1]

関数名〔pdrbalのreld_func文〕[1]

関数名〔pdrbalのunld_func文〕[1]

関数名〔pdrorgのreld_func文〕[1]

関数名〔pdrorgのunld_func文〕[1]

関数名〔pdrorgのunlduoc文〕[1]

関連するRDエリア[1]

関連するRDエリアの情報の表示[1]

き

キー条件[1]

キーレンジ転送[1]

キーレンジ部分ブロードキャスト転送[1]

基準値定義ファイル〔pddbst〕[1]

行識別子を使用した検索[1]

行データ出力形式〔pdrorgのarray文〕[1]

共有モード〔pdrbal〕[1]

共用ライブラリの作成[1]

く

空白変換レベル〔pdgetcst〕[1]

空白変換レベル〔pdloadのoption文〕[1]

空白変換レベル〔pdrorgのoption文〕[1]

クライアント環境定義の設定〔pddefを実行する場合〕[1]

クラスタキーの格納状態解析[1]、[2]

クラスタキーの並び解析[1]

クラスタリングデータページの格納状態解析[1]、[2]

クラスタリングデータページの並び解析[1]

繰返し列[1]、[2]

繰返し列を含む表の配列データ形式[1]

グループ分け処理方式の種類[1]

グローバルバッファ常駐化ユティリティ[1]

グローバルバッファ常駐化ユティリティの排他制御モード[1]

グローバルバッファ常駐化ユティリティの排他制御モード〔共用表の場合〕[1]

グローバルバッファ常駐化ユティリティ〔ユティリティ一覧〕[1]

グローバルバッファ情報の表示[1]

グローバルバッファの動的変更[1]

グローバルバッファのヒット率[1]

グローバルバッファプールに関する統計情報[1]、[2]

グローバルバッファ名〔pdmodのcreate rdarea文〕[1]

グローバルバッファ名〔pdmodのdefine copy rdarea文〕[1]

グローバルバッファ名〔pdmodのrecast rdarea文〕[1]

グローバルバッファ名〔pdmodのreplicate rdarea文〕[1]

グローバルバッファ名〔pdreginitのcreate rdarea文〕[1]

け

経過メッセージ出力間隔〔pdload〕[1]

経過メッセージ出力間隔〔pdrbal〕[1]

経過メッセージ出力間隔〔pdrorg〕[1]

継続行の扱い〔pddef〕[1]

結合検索〔pdvwoptでのチューニング〕[1]

結合処理情報[1]

結合方法の種類[1]

検索条件定義ファイル[1]

検索条件定義ファイル〔pdaudput〕[1]

検索による最適化情報の収集[1]、[2]

検索方法の種類[1]

検査制約の整合性チェック[1]、[2]

検査制約の整合性チェックの処理結果[1]

検査制約の整合性チェック方法[1]

検査保留状態情報[1]

検査保留状態の強制解除〔検査保留状態の強制変更機能〕[1]、[2]

検査保留状態の強制設定〔検査保留状態の強制変更機能〕[1]、[2]

検査保留状態の強制変更機能[1]

検査保留状態の強制変更機能（検査保留状態の強制解除）[1]

検査保留状態の強制変更機能（検査保留状態の強制設定）[1]

検査保留状態の強制変更機能の実行単位[1]

検査保留状態の設定可否[1]

検査保留状態の遷移[1]、[2]

検査保留状態の遷移〔RDエリア〕[1]

検査保留状態の遷移〔カレントRDエリアの世代単位で実行した場合〕[1]

検査保留状態の遷移〔制約〕[1]

検査保留状態の遷移〔制約単位で実行した場合〕[1]

検査保留状態の遷移〔世代単位で実行した場合〕[1]

検査保留状態の遷移〔全世代単位で実行した場合〕[1]

検査保留状態の遷移〔表〕[1]

検査保留状態の遷移〔表単位で実行した場合〕[1]

現用の監査証跡ファイルのスワップ[1]

こ

更新可能バックアップ閉塞[1]

更新可能バックアップ閉塞（WAITモード）[1]

更新可能モード〔pdcopy〕[1]

更新凍結状態[1]

更新前ログ取得モード〔pdload〕[1]

更新前ログ取得モード〔pdrorg〕[1]

コストベースの最適化[1]

固定長データ型の場合の配列データ[1]

固定長データ形式[1]、[2]

固定長ブロックテープでの作成方法〔入力データファイル〕[1]

コマンド一覧[1]

コマンド実行時のRDエリアの状態[1]

コマンド実行中の割り込みによる強制終了[1]

コマンドの記述形式[1]

コマンドの実行形態[1]

コマンドの実行権限表示[1]

コマンドの実行権限変更[1]

コマンドの同時接続数[1]

コマンドの入力方法[1]

コマンドの別名での利用[1]

コマンド引数[1]

コミット単位〔pdrbal〕[1]

コンストラクタ関数〔pdrbal〕[1]

コンストラクタ関数〔pdrorg〕[1]

コンストラクタパラメタ逆生成関数〔pdrbal〕[1]

コンストラクタパラメタ逆生成関数〔pdrorg〕[1]

さ

サーチ条件[1]

サーチ条件種別[1]

サーバごとの統計情報出力種別の指定有無の表示[1]

サーバの開始[1]

サーバの共用メモリの状態表示[1]

サーバの終了[1]

サーバの状態表示[1]

サーバのスケジュールの状態表示[1]

サーバのステータス情報[1]

サーバの通信制御情報の表示[1]

サーバのトランザクションの状態表示[1]

サーバの排他制御の状態表示[1]

サーバのプロセスの状態表示[1]

サーバのホスト名表示[1]

サーバプロセスの起動本数変更[1]

サーバプロセスのリフレッシュ[1]

サーバ名〔pdcopy〕[1]

サーバ名〔pdinitのcreate rdarea文〕[1]

サーバ名〔pdloadのidxwork文〕[1]

サーバ名〔pdloadのlobmid文〕[1]

サーバ名〔pdloadのsort文〕[1]

サーバ名〔pdloadのsource文〕[1]

サーバ名〔pdmodのalter HiRDB mode to parallel文〕[1]、[2]

サーバ名〔pdmodのcreate generation文〕[1]

サーバ名〔pdmodのcreate rdarea文〕[1]

サーバ名〔pdmodのmove rdarea文〕[1]

サーバ名〔pdmodのremove generation文〕[1]

サーバ名〔pdpgbfon〕[1]

サーバ名〔pdpgbfonのidxname文〕[1]

サーバ名〔pdrbalのidxwork文〕[1]

サーバ名〔pdrbalのsort文〕[1]

サーバ名〔pdreclaim〕[1]

サーバ名〔pdreclaimのidxname文〕[1]

サーバ名〔pdrorgのidxwork文〕[1]

サーバ名〔pdrorgのindex文〕[1]

サーバ名〔pdrorgのlobunld文〕[1]

サーバ名〔pdrorgのsort文〕[1]

サーバ名〔pdrorgのunload文〕[1]

サーバ名〔pdrstr〕[1]

サーバ名〔pdstedit〕[1]

再初期化後のインデクスの状態[1]

再初期化後の表の状態[1]

最大同時実行数[1]

最大要素数[1]

最大リスト登録数〔pdinitのcreate rdarea文〕[1]

最大リスト登録数〔pdmodのcreate rdarea文〕[1]

最大リスト登録数〔pdmodのinitialize rdarea文〕[1]

最適化情報[1]

最適化情報収集ユティリティ[1]

最適化情報収集ユティリティが取得する最適化情報[1]

最適化情報収集ユティリティの排他制御モード[1]

最適化情報収集ユティリティ〔ユティリティ一覧〕[1]

最適化情報収集レベル[1]

最適化情報収集レベル〔pdgetcst〕[1]

最適化情報パラメタファイル[1]

最適化情報パラメタファイルによって登録する最適化情報[1]

最適化情報パラメタファイルによる最適化情報の登録[1]、[2]

最適化情報パラメタファイルへの最適化情報の退避[1]

最適化情報パラメタファイル名〔pdgetcst〕[1]

再編成時期予測機能[1]

再編成時期予測機能の実行結果[1]

作業表の検索[1]

作業用一時ファイルの削除[1]

作成されるインデクス情報ファイルの名称〔pdrbalのidxwork文〕[1]

作成モード〔pdload〕[1]

差分バックアップ管理ファイルの容量〔pdcopy〕[1]

差分バックアップ管理ファイルを格納するHiRDBファイルシステム領域名〔pdcopy〕[1]

差分バックアップ管理ファイルを格納するHiRDBファイルシステム領域名〔pdrstr〕[1]

差分バックアップ機能[1]

差分バックアップ機能使用時のバックアップ種別〔pdcopy〕[1]

差分バックアップグループ名〔pdcopy〕[1]

差分バックアップグループ名〔pdrstr〕[1]

差分バックアップの履歴情報ファイル名〔pdcopy〕[1]

参照可能バックアップ閉塞[1]

参照可能バックアップ閉塞（更新WAITモード）[1]

参照可能モード〔pdcopy〕[1]

参照制約の整合性チェック[1]、[2]

参照制約の整合性チェックの処理結果[1]

参照制約の整合性チェック方法[1]

参照制約を定義した表の搬出入の規則について〔pdexp〕[1]

参照・更新不可能モード〔pdcopy〕[1]

し

時間間隔〔pdstedit〕[1]

システム構成変更コマンド[1]

システム単位でのバックアップ〔pdcopy〕[1]

システム定義のチェック[1]

システムの稼働に関する統計情報[1]、[2]

システムログファイルの情報表示[1]

システムログファイルのファイルグループの状態[1]

システムログファイルの物理ファイルの状態[1]

システムログファイルの要素ファイルの状態[1]

実行可否チェック間隔〔pdrbalのoption文〕[1]

実行監視時間〔pdexp〕[1]

実行監視時間〔pdgetcst〕[1]

実行監視時間〔pdinit〕[1]

実行監視時間〔pdmod〕[1]

実行監視時間〔pdrbal〕[1]

実行監視時間〔pdreginit〕[1]

実行監視時間〔pdrstr 〕[1]

実行監視時間〔pdcopy〕[1]

実行結果リスト〔pdmod【RDエリアの移動】〕[1]

実行結果リスト〔pdmod【RDエリアの再初期化】〕[1]

実行権限を変更できる運用コマンド・ユティリティ一覧[1]

実表検索処理情報[1]

実要素数[1]

指定単位取得方式〔順序番号の取得方式〕[1]

指定できる制御文の個数〔pdload〕[1]

指定要素数[1]

自動採番機能を使用したデータロード[1]

自動ログアンロード機能[1]

自動ログアンロード機能の制御[1]

集合演算処理情報[1]

修正版HiRDBの入れ替え[1]

修正版HiRDBのコピー[1]

終了時刻〔pdstedit〕[1]

出力行数〔pdloadのsource文〕[1]

出力形式[1]

出力形式〔pdadmvr〕[1]

出力形式〔pdaudatld〕[1]

出力形式〔pdbufls〕[1]

出力形式〔pdcat【-d sts】〕[1]

出力形式〔pdcat【-d省略】〕[1]

出力形式〔pdchprc〕[1]

出力形式〔pdclibsync〕[1]

出力形式〔pdconfchk〕[1]

出力形式〔pddbls〕[1]

出力形式〔pdfls〕[1]

出力形式〔pdfstatfs〕[1]

出力形式〔pdgeter〕[1]

出力形式〔pditvtrc〕[1]

出力形式〔pdjarsync〕[1]

出力形式〔pdlistls〕[1]

出力形式〔pdlogatul〕[1]

出力形式〔pdlogls【-d spd】〕[1]

出力形式〔pdlogls【-d sys】〕[1]

出力形式〔pdls【-d act】〕[1]

出力形式〔pdls【-d aud】〕[1]

出力形式〔pdls【-d ha】〕[1]

出力形式〔pdls【-d lck】〕[1]

出力形式〔pdls【-d mem】〕[1]

出力形式〔pdls【-d org】〕[1]

出力形式〔pdls【-d ris】〕[1]

出力形式〔pdls【-d rpc】〕[1]

出力形式〔pdls【-d rpl】〕[1]

出力形式〔pdls【-d scd】〕[1]

出力形式〔pdls【-d stj】〕[1]

出力形式〔pdls【-d sts】〕[1]

出力形式〔pdls【-d svr】〕[1]

出力形式〔pdls【-d trn】〕[1]

出力形式〔pdls【-d ust】〕[1]

出力形式〔pdls【-d prc】〕[1]

出力形式〔pdmemsv〕[1]

出力形式〔pdobjconv〕[1]

出力形式〔pdrbal〕[1]

出力形式〔pdrdrefls〕[1]

出力形式〔pdsvhostname〕[1]

出力形式〔pdtrndec〕[1]

出力結果ファイル名〔pdgetcst〕[1]

出力ディレクトリ〔pdaudput〕[1]

順序番号の格納方式[1]

順序番号の取得方式[1]

障害情報の取得[1]

障害情報の取得と容量見積もり[1]

障害発生時にデータベースを最新の状態に回復しない場合の運用〔再編成時期予測機能〕[1]

状態解析結果蓄積機能[1]

状態解析結果蓄積情報のリセット[1]

使用中空きページ[1]

使用中セグメント[1]

使用中ページ[1]

使用中満杯ページ[1]

使用例〔pdbufmod〕[1]

使用例〔pdconfchk〕[1]

使用例〔pdconstck〕[1]

使用例〔pdcopy〕[1]

使用例〔pddbst〕[1]

使用例〔pddef〕[1]

使用例〔pdexp〕[1]

使用例〔pdfmkfs〕[1]

使用例〔pdgetcst〕[1]

使用例〔pdgeter〕[1]

使用例〔pdinit〕[1]

使用例〔pditvtrc〕[1]

使用例〔pdload〕[1]

使用例〔pdlogadpf〕[1]

使用例〔pdloginit〕[1]

使用例〔pdmod【HiRDB/シングルサーバ構成からHiRDB/パラレルサーバ構成へのRDエリアの変更】〕[1]

使用例〔pdmod【HiRDBファイルシステム領域の世代削除】〕[1]

使用例〔pdmod【HiRDBファイルシステム領域の世代登録】〕[1]

使用例〔pdmod【RDエリアの移動】〕[1]

使用例〔pdmod【RDエリアの拡張】〕[1]

使用例〔pdmod【RDエリアの構成情報複写】〕[1]

使用例〔pdmod【RDエリアの再初期化】〕[1]

使用例〔pdmod【RDエリアの削除】〕[1]

使用例〔pdmod【RDエリアの属性変更】〕[1]

使用例〔pdmod【RDエリアの追加】〕[1]

使用例〔pdmod【RDエリアの統合】〕[1]

使用例〔pdmod【RDエリアのレプリカ定義】〕[1]

使用例〔pdmod【監査証跡表の作成】〕[1]

使用例〔pdmod【監査人の登録】〕[1]

使用例〔pdmod【ディクショナリ表の属性定義変更】〕[1]

使用例〔pdorcreate〕[1]

使用例〔pdpgbfon〕[1]

使用例〔pdrbal〕[1]

使用例〔pdrdrefls〕[1]

使用例〔pdreclaim〕[1]

使用例〔pdreginit〕[1]

使用例〔pdrorg【インデクスの一括作成】〕[1]

使用例〔pdrorg【インデクスの再作成】〕[1]

使用例〔pdrorg【インデクスの再編成】〕[1]

使用例〔pdrorg【ディクショナリ表の再編成】〕[1]

使用例〔pdrorg【表のアンロード】〕[1]

使用例〔pdrorg【表の再編成】〕[1]

使用例〔pdrorg【表へのリロード】〕[1]

使用例〔pdrstr〕[1]

使用例〔pdstedit〕[1]

使用例〔pdstsinit〕[1]

処理結果[1]

処理結果出力ファイル名〔pdcopy〕[1]

処理結果出力ファイル名〔pdrstr〕[1]

処理結果ファイル〔pdrbal〕[1]

処理結果ファイル名〔pdconstck〕[1]

処理結果ファイル名〔pdrbalのreport文〕[1]

処理種別〔pdreginit〕[1]

処理性能情報ファイル〔pdload〕[1]

処理性能情報ファイル〔pdrorg〕[1]

処理対象〔pdreclaim〕[1]

処理対象〔pdrorg〕[1]

処理内容〔pdrorg〕[1]

シンクポイントダンプの取得[1]

シンクポイントダンプファイルの情報表示[1]

す

スキーマ単位の再編成[1]

スキーマ名〔pdexp〕[1]、[2]、[3]

スキップデータ文〔pdload〕[1]

ステータスファイルのオープン[1]

ステータスファイルのクローズ[1]

ステータスファイルの削除[1]

ステータスファイルの状態表示[1]

ステータスファイルの初期設定[1]

ステータスファイルのスワップ[1]

ステータスファイルの内容表示[1]

ステータスファイルの物理ファイルの状態[1]

ステータスファイルの論理ファイルの状態[1]

ストアドプロシジャ情報の搬出入[1]

ストアドプロシジャ情報の搬出入についての規則〔pdexp〕[1]

スレッド間ロック待ち時間[1]

せ

制御情報ファイル〔pdload〕[1]

制御情報ファイル名〔pdload〕[1]

制御情報ファイル名〔pdpgbfon〕[1]

制御情報ファイル名〔pdrbal〕[1]

制御情報ファイル名〔pdreclaim〕[1]

制御情報ファイル名〔pdrorg〕[1]

制御文〔pdinit〕[1]

制御文で指定しない場合のファイル出力先ディレクトリ[1]

制御文とオプションの関係〔pdrorg〕[1]

制御文ファイル名〔pdcopy〕[1]

制御文ファイル名〔pdexp〕[1]

制御文ファイル名〔pdinit〕[1]

制御文ファイル名〔pdmod〕[1]

制御文ファイル名〔pdreginit〕[1]

制御文ファイル名〔pdrstr〕[1]

制御文ファイル名〔pdstedit〕[1]

整合性チェック機能[1]、[2]

整合性チェック機能の実行単位[1]

整合性チェック結果による検査保留状態の遷移[1]

整合性チェックの実行有無[1]

整合性チェックの実行有無〔制約単位で実行する場合〕[1]

整合性チェックの実行有無〔表単位で実行した場合〕[1]

整合性チェックの実行監視時間〔pdconstck〕[1]

整合性チェックの順番[1]

整合性チェックの順番〔制約単位で実行する場合〕[1]

整合性チェックの順番〔表単位で実行した場合〕[1]

整合性チェックの処理結果[1]

整合性チェックユティリティ[1]

整合性チェックユティリティの排他制御モード[1]

整合性チェックユティリティ〔ユティリティ一覧〕[1]

制約違反キー値の出力数上限値〔pdconstck〕[1]

制約単位〔検査保留状態の強制変更機能の実行単位〕[1]

制約単位〔整合性チェック機能の実行単位〕[1]、[2]

制約名〔pdconstck〕[1]

セグメントサイズ〔pdinitのcreate rdarea文〕[1]

セグメントサイズ〔pdmodのcreate rdarea文〕[1]

セグメントサイズ〔pdmodのinitialize rdarea文〕[1]

セグメントサイズ〔pdreginitのcreate rdarea文〕[1]

世代単位〔検査保留状態の強制変更機能の実行単位〕[1]

世代単位〔整合性チェック機能の実行単位〕[1]

世代番号〔pdconstck〕[1]

世代番号〔pdcopy〕[1]

世代番号〔pddbst〕[1]

世代番号〔pdgetcst〕[1]

世代番号〔pdload〕[1]

世代番号〔pdmodのcreate generation文〕[1]

世代番号〔pdpgbfon〕[1]

世代番号〔pdreclaim〕[1]

世代番号〔pdrorg〕[1]

世代番号〔pdrstr〕[1]、[2]

セパレータ文字〔pdload〕[1]

セパレータ文字〔pdrorg〕[1]

全RDエリアの回復〔pdrstr〕[1]

全数一括取得方式〔順序番号の取得方式〕[1]

全世代単位〔検査保留状態の強制変更機能の実行単位〕[1]

全世代単位〔整合性チェック機能の実行単位〕[1]

占有モード〔pdrbal〕[1]

そ

装置記号名〔pdcopy〕[1]

装置記号名〔pdrstr〕[1]

装置グループ名〔pdcopy〕[1]

装置グループ名〔pdrstr〕[1]

増分セグメント数〔pdinitのcreate rdarea文〕[1]

増分セグメント数〔pdmodのalter rdarea文〕[1]

増分セグメント数〔pdmodのcreate rdarea文〕[1]

増分セグメント数〔pdmodのexpand rdarea文〕[1]

増分セグメント数〔pdmodのinitialize rdarea文〕[1]

増分セグメント数〔pdreginitのcreate rdarea文〕[1]

増分値〔pdcopy〕[1]

ソート用ワークディレクトリ〔pdload〕[1]

ソート用ワークディレクトリ〔pdrbal〕[1]

ソート用ワークディレクトリ〔pdrorg〕[1]

ソート用ワークディレクトリ名〔pdrstr〕[1]

ソート用ワークバッファサイズ〔pdrstr〕[1]

ソート用ワークファイル〔pdload〕[1]

ソート用ワークファイル〔pdrorg〕[1]

た

対象資源〔pdpgbfon〕[1]

対象資源〔pdreclaim〕[1]

代表的なデータロードの例[1]

ち

抽象データ型がある表〔pdrorgを実行する場合の注意事項〕[1]

抽象データ型名〔pdrbalのreld_func文〕[1]

抽象データ型名〔pdrbalのunld_func文〕[1]

抽象データ型名〔pdrorgのreld_func文〕[1]

抽象データ型名〔pdrorgのunld_func文〕[1]

抽象データ型列がある表に対するpdrorgの実行可否[1]

チューニングの考え方〔pdvwopt〕[1]

直積[1]

つ

追加データ文〔pdload〕[1]

追加モード〔pdload〕[1]

て

定義系SQL出力ファイル名〔pdexp〕[1]

定義系SQLの記述〔pddef〕[1]

定義系SQLの生成[1]、[2]

定義系SQLの生成についての規則〔pdexp〕[1]

ディクショナリ搬出入ユティリティ[1]

ディクショナリ搬出入ユティリティ〔ユティリティ一覧〕[1]

ディクショナリ表の混在文字データの使用〔pdmodのalter system文〕[1]

ディクショナリ表の再編成[1]、[2]

ディクショナリ表の参照権限の設定〔pdmodのalter system文〕[1]

ディクショナリ表の属性定義変更[1]

ディスク容量不足〔バックアップ取得時〕[1]

ディレクトリ名〔pdloadのidxwork文〕[1]

ディレクトリ名〔pdloadのsort文〕[1]

ディレクトリ名〔pdrbalのidxwork文〕[1]

ディレクトリ名〔pdrbalのsort文〕[1]

ディレクトリ名〔pdrorgのidxwork文〕[1]

ディレクトリ名〔pdrorgのsort文〕[1]

データ型〔pdloadのスキップデータ文〕[1]

データ型〔pdloadの列名文〕[1]

データベース回復ユティリティ[1]

データベース回復ユティリティの処理結果リスト[1]

データベース回復ユティリティの排他制御モード[1]

データべース回復ユティリティ〔ユティリティ一覧〕[1]

データベース構成変更ユティリティ[1]

データベース構成変更ユティリティの排他制御モード[1]

データべース構成変更ユティリティ〔ユティリティ一覧〕[1]

データベース再編成ユティリティ[1]

データベース再編成ユティリティの排他制御モード[1]

データベース再編成ユティリティの排他制御モード〔共用表の場合〕[1]

データべース再編成ユティリティ〔ユティリティ一覧〕[1]

データベース作成ユティリティ[1]

データベース作成ユティリティの入力データファイルの作成方法[1]

データベース作成ユティリティの入力用ファイルの形式[1]

データベース作成ユティリティの排他制御モード[1]

データベース作成ユティリティの排他制御モード〔共用表の場合〕[1]

データべース作成ユティリティ〔ユティリティ一覧〕[1]

データベース状態解析ユティリティ[1]

データベース状態解析ユティリティの排他制御モード[1]

データべース状態解析ユティリティ〔ユティリティ一覧〕[1]

データベース初期設定ユティリティ[1]

データべース初期設定ユティリティ〔ユティリティ一覧〕[1]

データベース操作に関するHiRDBファイルの統計情報[1]、[2]

データベース定義ユティリティ[1]

データべース定義ユティリティ〔ユティリティ一覧〕[1]

データベースの回復[1]

データベースの回復単位[1]

データベースの静止化[1]

データベースの入出力に関する統計情報[1]

データベース複写ユティリティ[1]

データベース複写ユティリティの処理結果リスト[1]

データベース複写ユティリティの排他制御モード[1]

データべース複写ユティリティ〔ユティリティ一覧〕[1]

データ未完状態[1]

データロード[1]

テープ装置[1]

デッドロックプライオリティ値[1]

デファードライト処理に関する統計情報[1]、[2]

デファードライトトリガ時の更新ページ出力比率[1]

デファードライトトリガ時の出力契機となる更新バッファ数[1]

転送方法の種類[1]

と

問合せ処理情報[1]

同期化閉塞[1]

同期点指定の再編成[1]、[2]

同期点指定のデータロード[1]、[2]

同期点指定のリロード[1]、[2]

統計解析ユティリティ[1]

統計解析ユティリティが編集する統計情報[1]

統計解析ユティリティ〔ユティリティ一覧〕[1]

統計情報出力種別の指定有無[1]

統計情報の出力開始[1]

統計情報の出力契機[1]

統計情報の出力形式[1]

統計情報の出力停止[1]

統計情報の種別[1]、[2]

統計情報の詳細[1]

統計入力アンロードファイル格納ディレクトリ名〔pdstedit〕[1]

統計入力アンロードファイル名〔pdstedit〕[1]

統計ログファイルの切り替え[1]

統計ログファイルへの統計ログバッファの反映[1]

動作環境〔pdconstck〕[1]

動作条件〔pdconstck〕[1]

動作モード〔pdrbal〕[1]

同時実行最大プリフェッチ数[1]

同時実行トランザクション決着待ち時間〔pdreclaim〕[1]

同時にバックアップを取得する必要があるRDエリア[1]

トラブルシュート情報の削除[1]

トランザクションキューイング機能の開始[1]

トランザクションキューイング機能の解除[1]

トランザクションの強制終了[1]

トランザクションのコミット[1]

トランザクションのロールバック[1]

トリガ識別子〔pdexp〕[1]

トリガ定義情報の搬出入[1]

トリガ定義情報の搬出入についての規則〔pdexp〕[1]

な

ナル値オプション〔pdloadのarray文〕[1]

ナル値オプション〔pdloadの列名文〕[1]

ナル値・関数情報ファイル〔pdload〕[1]

ナル値・関数情報ファイル名〔pdload〕[1]

に

入力開始行〔pdload〕[1]

入力データ長〔pdloadのsource文〕[1]

入力データファイル[1]、[2]、[3]

入力データファイルの種別〔pdload〕[1]

入力データファイル名〔pdloadのsource文〕[1]

入力待ちのプロンプトの表示〔pddef〕[1]

入力ログファイルのサマリ情報[1]

認可識別子〔pdaudput〕[1]

認可識別子〔pdconstck〕[1]

認可識別子〔pddbst〕[1]、[2]、[3]

認可識別子〔pdexp〕[1]

認可識別子〔pdgetcst〕[1]、[2]

認可識別子〔pdinit〕[1]

認可識別子〔pdload〕[1]、[2]

認可識別子〔pdmodのcreate auditor文〕[1]

認可識別子〔pdpgbfon〕[1]、[2]

認可識別子〔pdrbal〕[1]、[2]

認可識別子〔pdrbalのreld_func文〕[1]

認可識別子〔pdrbalのunld_func文〕[1]

認可識別子〔pdreclaim〕[1]、[2]

認可識別子〔pdrorg〕[1]、[2]

認可識別子〔pdrorgのreld_func文〕[1]

認可識別子〔pdrorgのtblname文〕[1]、[2]

認可識別子〔pdrorgのunld_func文〕[1]

ね

ネストループジョイン[1]

は

排他制御モード[1]

排他制御リトライ回数[1]

排他待ち限界経過時間〔pdcopy〕[1]

バイト数〔pdloadのスキップデータ文〕[1]

バイナリ形式[1]、[2]

配列データ形式〔pdloadのarray文〕[1]

配列データ形式〔pdloadの列名文〕[1]

パスワード〔pddbst〕[1]

パスワード〔pdgetcst〕[1]

パスワード〔pdinit〕[1]

バックアップ検索条件開始時刻〔pdrstr〕[1]

バックアップ検索条件終了時刻〔pdrstr〕[1]

バックアップ取得モード[1]、[2]、[3]

バックアップの取得単位[1]

バックアップファイル初期容量〔pdcopy〕[1]

バックアップファイルの形式[1]

バックアップファイルのサイズ[1]

バックアップファイルの種別〔pdcopy〕[1]

バックアップファイルの種別〔pdrstr〕[1]

バックアップファイルの情報表示[1]

バックアップファイル名〔pdcopy〕[1]

バックアップファイル名〔pdrstr〕[1]

バックアップファイルを格納するサーバマシン[1]

バックアップ閉塞[1]

バックアップを取得するために必要な知識[1]

ハッシュジョイン〔pdvwopt〕[1]

ハッシュ転送[1]

ハッシュ分割表のリバランス機能[1]

バッファ単位取得方式〔順序番号の取得方式〕[1]

範囲指定の回復[1]、[2]

搬出ファイル名〔pdexp〕[1]

搬入時に作成される定義系SQLが2,000,000バイトを超えた場合の修正例[1]

ひ

引数の型〔pdrbalのreld_func文〕[1]

引数の型〔pdrbalのunld_func文〕[1]

引数の型〔pdrorgのreld_func文〕[1]

引数の型〔pdrorgのunld_func文〕[1]

一つのインデクスを使用した検索[1]

表移行用アンロードファイル[1]

表識別子〔pdconstck〕[1]

表識別子〔pddbst〕[1]

表識別子〔pdexp〕[1]

表識別子〔pdgetcst〕[1]

表識別子〔pdload〕[1]

表識別子〔pdmodのcreate audit table文〕[1]

表識別子〔pdpgbfon〕[1]

表識別子〔pdrbal〕[1]

表識別子〔pdreclaim〕[1]

表識別子〔pdrorg〕[1]

表識別子〔pdrorgのtblname文〕[1]

表単位〔検査保留状態の強制変更機能の実行単位〕[1]

表単位〔整合性チェック機能の実行単位〕[1]、[2]

表単位の状態解析[1]、[2]

表定義情報の搬出入[1]

表定義情報の搬出入についての規則〔pdexp〕[1]

表のアンロード[1]、[2]

表の再編成[1]、[2]

表のリバランス[1]

表へのリロード[1]、[2]

ふ

ファイル[1]

ファイルサイズ〔pdaudput〕[1]

ファイルの内容表示[1]

ファイルパス変更オフラインコマンド[1]

ファイルパス変更オンラインコマンド[1]

付加PP[1]

付加PPのセットアップ[1]

複写先RDエリア名〔pdmodのdefine copy rdarea文〕[1]

複写元RDエリア名〔pdmodのdefine copy rdarea文〕[1]

複数のインデクスを使用した検索[1]

物理的解析[1]

部分ブロードキャスト転送[1]

不要データの削除〔UOCを利用した再編成〕[1]

プラグインインデクス作成上の注意事項〔pdload〕[1]

プラグインが提供する抽象データ型列（LOB属性）がある表へのデータロード[1]

プラグインが提供する抽象データ型列がある表へのデータロード[1]

プラグイン提供関数の種別[1]

プラグインのセットアップ[1]

プラグインの登録・削除[1]

ブロードキャスト転送[1]

プロセスサーバプロセスの再起動[1]

分割入力データファイル[1]

分割入力データファイルの出力先ディレクトリ名〔pdloadのsrc_work文〕[1]

へ

閉塞中の監査証跡ファイルの削除[1]

ページコンパクション[1]

ページ長〔pdinitのcreate rdarea文〕[1]

ページ長〔pdmodのcreate rdarea文〕[1]

ページ長〔pdmodのinitialize rdarea文〕[1]

ページ長〔pdreginitのcreate rdarea文〕[1]

ページの詳細情報〔pddbst〕[1]

別表への表データ再登録[1]

変更後のRDエリア名〔pdmodのalter rdarea文〕[1]

編集項目〔pdstedit〕[1]

ほ

ホスト名〔pdloadのlobmid文〕[1]

ホスト名〔pdloadのsource文〕[1]

ホスト名〔pdrorgのlobunld文〕[1]

ホスト名〔pdrorgのunload文〕[1]

ホスト名〔pdstedit〕[1]

ボリューム[1]

ボリューム名〔pdcopy〕[1]

ボリューム名〔pdrstr〕[1]

ま

マージ解析〔状態解析結果蓄積機能（pddbst）〕[1]

マージジョイン[1]

マスタディレクトリ用RDエリアの整合性チェック[1]

マスタディレクトリ用RDエリアの先頭のHiRDBファイル名〔pdcopy〕[1]

マスタディレクトリ用RDエリアの先頭のHiRDBファイル名〔pdrstr〕[1]

マスタディレクトリ用RDエリアを回復する場合[1]

マトリクス分割転送[1]

マルチHiRDBでのメモリの削減[1]

み

未決着トランザクションの強制自動決着[1]

未使用セグメント[1]

未使用ページ[1]

め

明示的グループ分け処理[1]

メッセージログファイルの内容表示[1]

メモリ削減の状態[1]

メモリ領域確保サイズ〔pdrorgのunlduoc文〕[1]

メンテナンス方法の情報[1]

も

文字コード種別[1]

文字集合を定義した表へのデータロード[1]

文字列形式の数値データ[1]

文字列形式の文字データ[1]

ゆ

ユーザLOB用RDエリアの満杯HiRDBファイルの更新凍結[1]

ユーザの状態表示[1]

ユーザパラメタ〔pdloadのsrcuoc文〕[1]

ユティリティ一覧[1]

ユティリティ処理の強制終了[1]

ユティリティ専用ユニット[1]

ユティリティの最大同時実行数[1]

ユティリティの実行者[1]

ユティリティの入出力ファイル[1]

ユティリティの排他制御モード[1]

ユニキャスト転送[1]

ユニットごとの統計情報出力種別の指定有無の表示[1]

ユニット識別子〔pdcopy〕[1]

ユニット識別子〔pdrstr〕[1]

ユニットの開始[1]

ユニットの稼働状態の表示[1]

ユニットの終了[1]

ユニットの状態表示[1]

ユニットのステータス情報[1]

よ

要素数〔pdloadのスキップデータ文〕[1]

要素数〔pdloadの列名文〕[1]

要素としてのナル値[1]

予測レベル1[1]、[2]、[3]

予測レベル2[1]、[2]、[3]

予測レベル2での状態解析結果蓄積機能の実行方法[1]

ら

ライブラリ名称〔pdloadのsrcuoc文〕[1]

ランダムアクセス用ローカルバッファ面数〔pdload〕[1]

ランダムアクセス用ローカルバッファ面数〔pdrbal〕[1]

ランダムアクセス用ローカルバッファ面数〔pdrorg〕[1]

り

リアルタイムSANレプリケーションの構成確認[1]

リアルタイムSANレプリケーションのサイト状態の設定[1]

リアルタイムSANレプリケーションのデータベース引き継ぎ[1]

リスト定義情報の表示[1]

リバランス中のSQL実行可否[1]

リバランス表[1]

リバランス表の再編成[1]

リバランスユティリティ[1]

リバランスユティリティの排他制御モード[1]

リバランスユティリティ〔ユティリティ一覧〕[1]

領域確保サイズ〔pdloadのoption文〕[1]

る

ルーチン識別子〔pdexp〕[1]

れ

レジストリ機能初期設定ユティリティ[1]

レジストリ機能初期設定ユティリティの排他制御モード[1]

レジストリ機能初期設定ユティリティ〔ユティリティ一覧〕[1]

列構成情報ファイル〔pdload〕[1]

列構成情報ファイル名〔pdload〕[1]

列単位LOB入力ファイル〔pdload〕[1]、[2]、[3]

列単位LOB入力ファイル名〔pdloadのlobcolumn文〕[1]

列データ一部置換〔順序番号の格納方式〕[1]

列データ全置換〔順序番号の格納方式〕[1]

列データ追加〔順序番号の格納方式〕[1]

列データ・パラメタの記述形式（DAT形式）[1]

列データ・パラメタの記述形式（バイナリ形式）[1]

列としてのナル値[1]

列番号〔pdloadの列番号文〕[1]

列番号文〔pdload〕[1]

列名〔pdloadの列名文〕[1]

列名〔pdrorgのblobtovarchar文〕[1]

列名文〔pdload〕[1]

レプリカHiRDBファイルシステム領域名〔pdmodのcreate generation文〕[1]

レプリカHiRDBファイルシステム領域名〔pdmodのremove generation文〕[1]

レプリカRDエリアのレプリカステータスの切り替え[1]

レプリカRDエリア名〔pdmodのreplicate rdarea文〕[1]

連続認証失敗アカウントロック状態の解除[1]

ろ

ログ関係のファイルのアンロード[1]

ログ関係のファイルのオープン[1]

ログ関係のファイルのクローズ[1]

ログ関係のファイルの削除[1]

ログ関係のファイルの情報表示[1]

ログ関係のファイルの初期設定[1]

ログ関係のファイルのステータス変更[1]

ログ関係のファイルのスワップ[1]

ログ関係のファイルの割り当て[1]

ログ取得方式〔pdload〕[1]

ログ取得方式〔pdrbal〕[1]

ログ取得方式〔pdrorg〕[1]

ログ取得モード〔pdload〕[1]

ログ取得モード〔pdrbal〕[1]

ログ取得モード〔pdrorg〕[1]

ログ適用処理の実行状況の表示[1]

ログポイント情報ファイル[1]、[2]

ログポイント情報ファイルの再作成[1]

ログポイント情報ファイル名〔pdcopy〕[1]

ログポイント情報ファイル名〔pdrstr〕[1]

ログレコードサマリ情報[1]

ログレスモード〔pdload〕[1]

ログレスモード〔pdrbal〕[1]

ログレスモード〔pdrorg〕[1]

論理エラー番号[1]

論理的解析[1]

わ

ワークファイル〔pdload〕[1]

ワークファイル〔pdrbal〕[1]

ワークファイル〔pdrorg〕[1]

ワーク用一時ファイル作成ディレクトリ名〔pdstedit〕[1]