5.2.4 複数スケジューラーデータベースの組み込みDBへの移行

ここでは,複数のスケジューラーデータベースを組み込みDBへ移行する方法について説明します。

<この項の構成>
(1) スケジューラーサービスごとに異なる組み込みDB環境を構築する
(2) 一つの組み込みDB環境に複数のスケジューラーデータベースを移行する

(1) スケジューラーサービスごとに異なる組み込みDB環境を構築する

複数のスケジューラーサービスが定義されていて,スケジューラーサービスごとに異なる組み込みDB環境を構築する場合,次に示す領域を別に準備してください。

なお,次に示す領域のうちシステムファイル領域,組み込みDB作業領域,アンロードログファイル作成ディレクトリについては,必要に応じて準備してください。

組み込みDB環境構築の際,使用するポート番号および組み込みDBセットアップ識別子が組み込みDB間で重複しないように指定する必要があります。そのため,ajsembdbbuildコマンドおよびajsembdbsetupコマンド実行時には,ポート番号を指定するオプション(-p)および組み込みDBセットアップ識別子を指定するオプション(-id)に,異なる値を指定してください。

セットアップの実施例を次に示します。

なお,この実施例は,「5.2.2 組み込みDB環境の構築」で示した環境がすでに構築されていることを前提に記載します。

組み込みDBの環境内容
  • データ領域作成ディレクトリ:h:¥EmbDB¥RDArea
  • システムファイル領域作成ディレクトリ1:i:¥EmbDB¥SYSArea1
  • システムファイル領域作成ディレクトリ2:j:¥EmbDB¥SYSArea2
  • アンロードログファイル作成ディレクトリ:k:¥EmbDB¥Unload_Log
  • 組み込みDBインストールフォルダ:c:¥win32app¥hitachi¥hirdb_e_JA1
  • スケジューラーサービス名:AJSROOT2
  • 組み込みDBポート番号:22201
  • 組み込みDBセットアップ識別子:_JA1
ajsembdbbuildコマンドの指定内容

ajsembdbbuild -l
-d "h:¥EmbDB¥RDArea,i:¥EmbDB¥SYSArea1,
j:¥EmbDB¥SYSArea2" -br -bl k:¥EmbDB¥Unload_Log
-i c:¥win32app¥hitachi¥hirdb_e_JA1 -p 22201 -id _JA1

ajsembdbsetupコマンドの指定内容

ajsembdbsetup -F AJSROOT2 -ru l -id _JA1 -p 22201

ajsembdbbuildコマンドおよびajsembdbsetupコマンドの詳細については,「20. セットアップ時に使用するコマンド」を参照してください。

(2) 一つの組み込みDB環境に複数のスケジューラーデータベースを移行する

一つの組み込みDB環境に複数のスケジューラーデータベースを移行する場合,組み込みDB内にはスケジューラーサービスごとに異なるテーブルを作成して管理する必要があります。そのため,ajsembdbsetupコマンド実行時のテーブル名プリフィックスを変更する必要があります。

また,該当する組み込みDBに対して二つ目以降のスケジューラーデータベースを移行する際には,一つ目のスケジューラーデータベースを移行した際にスキーマは作成済みとなっているため,ajsembdbsetupコマンドのスキーマ作成をスキップするオプション(-q)を指定します。

同じ組み込みDBに対して二つ目のスケジューラーデータベースを移行する際のajsembdbsetupコマンドの指定例を次に示します。

ajsembdbsetup -F AJSROOT3 -tp AJS3 -q -ru l -id _JA0

ajsembdbsetupコマンドの詳細については,「20. セットアップ時に使用するコマンド ajsembdbsetup」を参照してください。

注意事項
  • 一つの組み込みDB環境に複数のスケジューラーデータベースを移行した環境で,特定のスケジューラーデータベースだけを再構築することはできません。組み込みDB環境に移行したすべてのスケジューラーデータベースの再構築が必要となります。特定のスケジューラーデータベースだけを再構築したい場合は,スケジューラーサービスごとに組み込みDBを用意してください。構築方法については「(1) スケジューラーサービスごとに異なる組み込みDB環境を構築する」を参照してください。
  • 一つの組み込みDB環境に複数のスケジューラーデータベースを移行した環境で,ajsembdbbackupコマンドを使用してバックアップする場合,特定のスケジューラーデータベースだけを対象にすることはできません。ajsembdbbackupコマンドでのバックアップは,該当する組み込みDB環境に移行したすべてのスケジューラーデータベースをバックアップ対象とし,そのバックアップを使用して回復すると,すべてのスケジューラーデータベースが回復されます。そのため,ajsembdbbackupコマンドおよびajsembdbrstrコマンドでバックアップ・リストアをする場合,該当する組み込みDBにアクセスするすべてのスケジューラーサービスを停止する必要があります。なお,ajsprintコマンドでユニット定義だけをバックアップする場合は,スケジューラーサービスを停止しないで,スケジューラーデータベースごとに取得できます。
    また,ajsembdbbackupコマンドで特定のスケジューラーデータベースだけをバックアップ対象としたい場合は,スケジューラーサービスごとに組み込みDBを用意してください。構築方法については「(1) スケジューラーサービスごとに異なる組み込みDB環境を構築する」を参照してください。