10.2.2 データベースを再編成する場合
データベースを再編成する方法について説明します。
- <この項の構成>
- (1) ajsembdbrorgコマンドでデータベースを再編成する
- (2) スクリプトを使用してデータベースを再編成する
(1) ajsembdbrorgコマンドでデータベースを再編成する
データベースを手動で再編成する手順を次に示します。
なお,各手順に記載したコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス1 2. コマンド ajsembdbrorg」およびマニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス2 2. セットアップコマンド」を参照してください。
- JP1/AJS3のスケジューラーサービスを終了する。
jajs_spmd_stopコマンドまたはajsstopコマンドを使って,該当するJP1/AJS3のスケジューラーサービスを終了します。再編成対象の組み込みDBで情報が管理されているスケジューラーサービスをすべて終了してください。スケジューラーサービスと組み込みDBの関連づけについては,ajsembdbidlistコマンドで確認できます。
- コマンドの形式(jajs_spmd_stopコマンドの場合)
- jajs_spmd_stop [-h 論理ホスト名] -n jajs_schd -F スケジューラーサービス名
- コマンドの使用例
- jajs_spmd_stop -n jajs_schd -F AJSROOT2
- コマンドの形式(ajsstopコマンドの場合)
- ajsstop -F スケジューラーサービス名
- コマンドの使用例
- ajsstop -F AJSROOT2
- JP1/AJS3のエージェント管理を終了する。
jajs_hstd_stopコマンドを使って,エージェント管理を終了します。
- コマンドの形式
- ・Windowsの場合
- jajs_hstd_stop [-h 論理ホスト名] -n agentm
- ・UNIXの場合
- jajs_hstd_stop [-h 論理ホスト名] -n ajsagtmd
- コマンドの使用例
- ・Windowsの場合
- jajs_hstd_stop -n agentm
- ・UNIXの場合
- jajs_hstd_stop -n ajsagtmd
- 接続しているJP1/AJS3 - Viewおよびコマンドをすべて停止する。
JP1/AJS3 - Viewおよびスケジューラーのコマンドが動作していないことを確認してください。JP1/AJS3 Console Viewからの接続も切断してください。
- ajsembdbreclaimコマンドを使用して,空きセグメントの回収を行う。
空きセグメントが少ない状態で再編成を実施すると,作業領域が不足して,再編成に失敗する場合があります。これを避けるため,事前に空きセグメントを回収することを推奨します。
- コマンドの使用例
- Windowsの場合
JP1/AJS3 - Managerのインストール先フォルダ¥tools¥ajsembdbreclaim -m manager
- UNIXの場合
/opt/jp1ajs2/tools/ajsembdbreclaim -m manager
- ajsembdbrorgコマンドを使ってデータベースを再編成する。
- コマンドの使用例
- Windowsの場合
ajsembdbrorg -k unld -F AJSROOT2 -d C:¥tmp
ajsembdbrorg -k reld -F AJSROOT2 -d C:¥tmp
- UNIXの場合
ajsembdbrorg -k unld -F AJSROOT2 -d /tmp
ajsembdbrorg -k reld -F AJSROOT2 -d /tmp
- エージェント管理データベースを再編成する場合
- Windowsの場合
ajsembdbrorg -k unld -agent -d C:¥tmp
ajsembdbrorg -k reld -agent -d C:¥tmp
- UNIXの場合
ajsembdbrorg -k unld -agent -d /tmp
ajsembdbrorg -k reld -agent -d /tmp
- 注
- -dオプションに指定するディレクトリに必要な容量を確保してください。
- -k unldで取得したデータを使用して,-k reldを実行するため,-dで指定するディレクトリは,-k unld,reldで同じディレクトリを指定してください。
- -k unldでエラーが発生した場合,作成されたファイルを使用して-k reldを実行しないでください。データベースの内容が不正になるおそれがあります。
- JP1/AJS3のエージェント管理を起動する。
jajs_hstdコマンドを使って,エージェント管理を起動します。
- コマンドの形式
- ・Windowsの場合
- jajs_hstd [-h 論理ホスト名] -n agentm
- ・UNIXの場合
- jajs_hstd [-h 論理ホスト名] -n ajsagtmd
- コマンドの使用例
- ・Windowsの場合
- jajs_hstd -n agentm
- ・UNIXの場合
- jajs_hstd -n ajsagtmd
- JP1/AJS3のスケジューラーサービスを起動する。
jajs_spmdコマンドまたはajsstartコマンドを使って,該当するJP1/AJS3のスケジューラーサービスを起動します。また,関連するサービスも起動してください。
- コマンドの形式(jajs_spmdコマンドの場合)
- jajs_spmd [-h 論理ホスト名] -n jajs_schd -F スケジューラーサービス名
- コマンドの使用例
- jajs_spmd -n jajs_schd -F AJSROOT2
- コマンドの形式(ajsstartコマンドの場合)
- ajsstart -F スケジューラーサービス名
- コマンドの使用例
- ajsstart -F AJSROOT2
(2) スクリプトを使用してデータベースを再編成する
組み込みDBをスクリプトで一括してデータベースを再編成する手順を次に示します。ここでは手順の説明に続いて,使用例を示します。なお,各手順に記載したコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス1 2. コマンド」およびマニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス2 2. セットアップコマンド」を参照してください。
- 補足事項
- 処理内容としては,「(1) ajsembdbrorgコマンドでデータベースを再編成する」で説明している再編成と同等であるため,(1)の方法で作業をすることを推奨します。
(a) 再編成の手順
再編成の手順は,次のとおりです。
- 組み込みDBのコマンドを実行するために必要な環境変数を設定する。
設定する環境変数を次の表に示します。
表10-1 設定が必要な環境変数
設定する環境変数 | 説明 |
---|
PDDIR | 組み込みDB運用ディレクトリ名を指定します。 |
PDCONFPATH | Windowsの場合,組み込みDB運用ディレクトリ¥confを,UNIXの場合,組み込みDB運用ディレクトリ/confを指定します。組み込みDBの定義ファイルを格納するディレクトリです。 |
PDUXPLDIR | Windowsの場合だけ,組み込みDB作業ディレクトリ名を指定します。 |
PDUSER | 組み込みDB管理者(スケジューラーデータベースのテーブルの所有者)のユーザーおよびパスワード(ユーザー/パスワード)を指定します。
- (例)
- PDUSER="root"/"root"
|
PDLANG | ANYを指定します。 |
JP1_HOSTNAME | クラスタで運用している場合に,論理ホスト名を指定します。 |
PATH | Windowsの場合,組み込みDB運用ディレクトリ¥binを,UNIXの場合,組み込みDB運用ディレクトリ/binを指定します。組み込みDBのコマンドを格納するディレクトリです。 |
SHLIB_PATH※ | UNIXの場合だけ,組み込みDB運用ディレクトリ/libを指定します。 |
- 注※
- Solaris,Linuxの場合は,LD_LIBRARY_PATHに,AIXの場合は,LIBPATHになります。
Windowsの場合の環境変数設定例
x:¥> set PDDIR=c:¥Program Files¥HITACHI¥JP1AJS2¥embdb¥_JF0
x:¥> set PDCONFPATH=%PDDIR%¥conf
x:¥> set PDUXPLDIR=%PDDIR%¥uxpldir
x:¥> set PDUSER="root"/"root"
x:¥> set PDLANG=ANY
x:¥> set JP1_HOSTNAME=lhost1
x:¥> set PATH=%PATH%;%PDDIR%¥bin
UNIX(HP-UX)の場合の環境変数設定例
# PDDIR=/opt/jp1ajs2/embdb/_JF0
# PDCONFPATH=$PDDIR/conf
# PDUSER='"root"/"root"'
# PDLANG=ANY
# SHLIB_PATH=$PDDIR/lib
# PATH=$PATH:$PDDIR/bin
# export PDDIR PDCONFPATH PDUSER SHLIB_PATH PATH
- JP1/AJS3のスケジューラーサービスを終了する。
jajs_spmd_stopコマンドまたはajsstopコマンドを使って,該当するJP1/AJS3のスケジューラーサービスを終了します。再編成するRDエリアを使用しているすべてのスケジューラーサービスを終了してください。
- コマンドの形式(jajs_spmd_stopコマンドの場合)
- jajs_spmd_stop [-h 論理ホスト名] -n jajs_schd -F スケジューラーサービス名
- コマンドの使用例
- jajs_spmd_stop -n jajs_schd -F AJSROOT2
- コマンドの形式(ajsstopコマンドの場合)
- ajsstop -F スケジューラーサービス名
- コマンドの使用例
- ajsstop -F AJSROOT2
- JP1/AJS3のエージェント管理を終了する。
jajs_hstd_stopコマンドを使って,エージェント管理を終了します。
- コマンドの形式
- ・Windowsの場合
- jajs_hstd_stop [-h 論理ホスト名] -n agentm
- ・UNIXの場合
- jajs_hstd_stop [-h 論理ホスト名] -n ajsagtmd
- コマンドの使用例
- ・Windowsの場合
- jajs_hstd_stop -n agentm
- ・UNIXの場合
- jajs_hstd_stop -n ajsagtmd
- 接続しているJP1/AJS3 - Viewおよびコマンドをすべて停止する。
JP1/AJS3 - Viewおよびスケジューラーのコマンドが動作していないことを確認してください。JP1/AJS3 Console Viewからの接続も切断してください。
- ajsembdbreclaimコマンドを使用して,空きセグメントの回収を行う。
空きセグメントが少ない状態で再編成を実施すると,作業領域が不足して,再編成に失敗する場合があります。これを避けるため,事前に空きセグメントを回収することを推奨します。
- コマンドの使用例
- Windowsの場合
JP1/AJS3 - Managerのインストール先フォルダ¥tools¥ajsembdbreclaim -m manager
- UNIXの場合
/opt/jp1ajs2/tools/ajsembdbreclaim -m manager
- 次に示すスクリプトを実行する。
再編成スクリプトはサンプルが提供されています。作業ディレクトリにコピーして使用してください。
- Windowsの場合
- JP1/AJS3のインストール先フォルダ¥tools¥ajsembdbcond-sample.bat
- UNIXの場合
- /opt/jp1ajs2/tools/ajsembdbcond-sample
ajsembdbcondスクリプトについては,「(b) 再編成スクリプトの形式」を参照してください。
- スクリプトの使用例
- ajsembdbcond
- (サンプルスクリプトを,ajsembdbcondに名称変更した場合)
- JP1/AJS3のエージェント管理を起動する。
jajs_hstdコマンドを使って,エージェント管理を起動します。
- コマンドの形式
- ・Windowsの場合
- jajs_hstd [-h 論理ホスト名] -n agentm
- ・UNIXの場合
- jajs_hstd [-h 論理ホスト名] -n ajsagtmd
- コマンドの使用例
- ・Windowsの場合
- jajs_hstd -n agentm
- ・UNIXの場合
- jajs_hstd -n ajsagtmd
- JP1/AJS3のスケジューラーサービスを起動する。
jajs_spmdコマンドまたはajsstartコマンドを使って,該当するJP1/AJS3のスケジューラーサービスを起動します。
- コマンドの形式(jajs_spmdコマンドの場合)
- jajs_spmd [-h 論理ホスト名] -n jajs_schd -F スケジューラーサービス名
- コマンドの使用例
- jajs_spmd -n jajs_schd -F AJSROOT2
- コマンドの形式(ajsstartコマンドの場合)
- ajsstart -F スケジューラーサービス名
- コマンドの使用例
- ajsstart -F AJSROOT2
(b) 再編成スクリプトの形式
再編成スクリプトを使うと,組み込みDBのテーブルおよびインデクスを再編成できます。
- 形式
- ajsembdbcond-sample[-u ユーザー名 -p パスワード]
- 引数
- -u ユーザー名
- テーブルの再編成を実行するユーザー名(テーブル所有ユーザー)を指定します。ユーザー名を省略した場合,スクリプト内部で指定されているユーザー名で再編成されます。
- -p パスワード
- テーブルの再編成を実行するユーザーのパスワードを指定します。パスワードを省略した場合,スクリプト内部で指定されているユーザーのパスワードで再編成されます。
- 補足事項
- ユーザー名やパスワードを指定する場合は,次のように指定してください。
- Windowsの場合:"root"
- UNIXの場合:¥"root¥"
- " "で囲むことで,大文字,小文字が区別されます。
(c) 再編成スクリプトのカスタマイズ
再編成スクリプトのカスタマイズについて説明します。スクリプトファイルは,元のスクリプトファイルを作業ディレクトリにコピーしたあと,編集してから使用してください。構築された組み込みDB環境ごとに,スクリプトファイルを用意してください。カスタマイズできる項目を次に示します。
- CUSTOM_PDDIR=組み込みDB運用ディレクトリ
- 組み込みDB運用ディレクトリ名を指定します。
- 環境変数PDDIRが設定済みの場合は,環境変数PDDIRでの設定を優先します。
- また,環境変数PDDIRが設定されていない場合で,スクリプトファイル内でCUSTOM_PDDIRを指定しないときは,テーブルの再編成が実行されません。
- CUSTOM_PDCONFPATH=組み込みDBシステム定義ファイル格納ディレクトリ
- 組み込みDBシステム定義ファイル格納ディレクトリ名を指定します。
- 環境変数PDCONFPATHが設定済みの場合は,環境変数PDCONFPATHの設定を優先します。
- 環境変数PDCONFPATHが設定されていない場合で,スクリプトファイル内でCUSTOM_PDCONFPATHを指定しないときは,テーブルの再編成が実行されません。
- CUSTOM_PDUXPLDIR=組み込みDB作業ディレクトリ
- Windowsの場合だけ指定が必要です。組み込みDB作業ディレクトリ名を指定します。
- 環境変数PDUXPLDIRが設定済みの場合は,環境変数PDUXPLDIRの設定が優先されます。
- また,環境変数PDUXPLDIRが設定されていない場合で,スクリプトファイル内でCUSTOM_PDUXPLDIRを指定しないときは,テーブルの再編成が実行されません。
- CUSTOM_EMBDB_USER=テーブル所有者名
- 再編成コマンドを実行するユーザー名を指定します。
- テーブルの所有者ユーザーを指定してください。
- CUSTOM_EMBDB_USERにユーザー名を指定していても,スクリプトの引数でユーザー名を指定した場合は,スクリプトの引数の値が優先されます。
- CUSTOM_EMBDB_PASS=テーブル所有者名のパスワード
- 再編成コマンドを実行するユーザーのパスワードを指定します。
- CUSTOM_TABLE_LIST=テーブル名
- 再編成するテーブルのリストをスペースの区切りで指定します。
- 指定しない場合は,テーブルの再編成が実行されません。
- CUSTOM_TABLE_RDAREA=テーブル格納RDエリア
- 再編成するテーブルを格納しているRDエリアを指定します。
- 指定しない場合は,テーブルの再編成が実行されません。
- CUSTOM_INDEX_RDAREA=インデクス格納RDエリア
- 再編成するテーブルのインデクスを格納しているRDエリアを指定します。
- 指定しない場合は,テーブルの再編成が実行されません。
- CUSTOM_TEMP_DIR=一時ファイル格納ディレクトリ
- 再編成コマンドの制御ファイルやデータベースからアンロードしたデータファイルなどを格納するフォルダ名をフルパスで指定します。
- 指定しない場合,Windowsは「C:¥TEMP」が,UNIXは「/tmp」が仮定されます。
- 複数の組み込みDB環境を構築している場合や,複数のスケジューラーサービスを構築している場合は,スクリプトの同時実行などによるデータ消失を避けるために,これらの間で使用する一時ファイル格納ディレクトリが重複しないように指定してください。
- CUSTOM_LOG_FILE=ログ出力ファイル
- スクリプトの実行結果のログを出力するファイルをフルパスで指定します。ログの出力先ファイル名を指定した場合,ログファイルは無限に増えるファイルとなるので,必要に応じて削除してください。
- 指定しない場合は,標準出力にログが出力されます。
- 補足事項