この章では、以下の UNIX プラットフォーム版の収集および変更適用プログラムのセットアップおよび操作の方法について説明します。
収集および変更適用プログラムの操作に関する項を読む前に、以下の項をお読みください。
収集および変更適用プログラムをセットアップする前に、これらのプログラムを実行するための UNIX ユーザー・アカウントをセットアップする必要があります。 こうして、収集および変更適用プログラムの実行で使うユーザー ID が必要な特権を有しているようにします。
セットアップには、ソース、ターゲット、および制御サーバーの構成を行います。 以下の項では、各サーバーを構成する方法についてと、 ソース・サーバーでのエンド・ユーザーへの認証の設定方法について解説します。
db2 connect to database
ただし、database は、ソース・サーバー・データベースです。
db2 update database configuration for database_alias using logretain on db2 backup database database_aliasまたは:
db2 update database configuration for database_alias using userexit on db2 backup database database_aliasインストール要件に基づいて DBHEAP、APPLHEAPSZ、PCKCACHESZ、 LOCKLIST、および LOGBUFSZ を増やすことが必要である場合があります。
db2 bind @capture.lst isolation ur blocking all
ただし ur は、パフォーマンスを向上するための非コミット読み取り形式のリストを指定します。
これらのコマンドは、パッケージ・リストを作成します。 その名前は、CAPTURE.LST ファイル内で見つけることができます。
重要: 変更適用プログラム・パッケージは、実行時に自動的にバインドされます。 そのため、UNIX で変更適用プログラム・パッケージをバインドするための以下のステップはオプションにすぎません。 オプションを指定したい場合、またはすべてのバインド・プロセスが正常に完了したことをチェックしたい場合は、以下のステップを実行してください。
db2 connect to databaseここで、database は、ソース、ターゲット、または制御サーバーです。
注: | ソース・サーバー・データベースがリモート・データベースとしてカタログ化されているなら、
db2 connect to コマンドでユーザー ID とパスワードを指定する必要があるかもしれません。たとえば、
db2 connect to database user userid using password |
db2 bind @applycs.lst isolation cs blocking all grant public
db2 bind @applyur.lst isolation ur blocking all grant publicただし、cs はカーソル固定形式でリストを指定するのに対し、ur は非コミット読み取り形式でリストを指定します。
変更適用制御表は静的 SQL 呼び出しを使用するため、その制御表がサーバーで使用されているかどうかに関係なく、変更適用バインド・プロセスは、 バインド先の各サーバーのほぼすべての制御表を検索します。
これらのコマンドは、パッケージ・リストを作成します。 その名前は、APPLYCS.LST および APPLYUS.LST ファイル内で見つけることができます。
収集および変更適用プログラムを実行するためのユーザー ID は、プログラムを呼び出すのに使用するディレクトリーに対して書き込み特権をもっていることを確認してください。 書き込み特権は、収集および変更適用プログラムの両方が呼び出しディレクトリー内にファイルを作成するために必要です。
収集プログラムは、予備ファイルの他に以下のファイルを作成します。
変更適用プログラムは、以下のファイルを作成します。
UNIX ベースの構成要素の構成の詳細については、DB2 ユニバーサル・データベース (UNIX 版) 概説およびインストール を参照してください。
ソース・サーバーでエンド・ユーザー認証が行われるようにするには、 パスワード・ファイルを用意する必要があるかもしれません。 変更適用プログラムは、ソース・サーバーに接続するときにこのファイルを使用します。 変更適用プログラムを実行するユーザー ID に対してだけ読み取りアクセスを許可してください。 環境固有の要件には、次のようなものがあります。
パスワード・ファイルを作成するには、次のようにします。
パスワード・ファイルは以下の基準にかなっている必要があります。
applyqual は、大文字小文字が区別されます。サブスクリプション・セット表の変更適用修飾子 (APPLY_QUAL) の値と一致しなければなりません。
例: DATADIR.PWD
この命名規則は、 ファイル拡張子が .pwd である以外はログ・ファイル名 (APPLYQUAL.app) および予備ファイル名 (APPLYQUAL.nnn) のときと同じです。
SERVER=server_name USER=userid PWD=password
ここで、
パスワード・ファイルを作成しない場合:
変更適用プログラム (UNIX 版) では、ユーザー ID とパスワードを指定しなくても、SQL CONNECT ステートメントを発行できるようにする必要があります。 変更適用プログラムが SNA コネクティビティーを使って OS/390 に接続する場合は、次のように設定する必要があります。
認証および機密保護の詳細については、DB2 ユニバーサル・データベース 管理の手引き を参照してください。
管理者は、ここに記載されているコマンドを使用して、収集プログラム (UNIX 版)を操作することができます。 UNIX コマンド行からコマンドを入力するか、 キーの組み合わせを入力してください。
ここでは、収集プログラムに関する以下の作業の実行方法について説明します。
ここには、収集プログラムの実行に関する制約事項も示されています。
いくつかのアクションは、実行中の収集プログラムを終了させてしまう原因になります。 以下のアクションのいずれかを実行したい場合は、その前に収集プログラムを停止してください。
DB2 ユーティリティーは変更をログに記録しないので、 収集プログラムはそれらのいかなる変更も収集できません。
特定の時に収集プログラムを開始するには、at コマンドを使用します。 たとえば、次のコマンドを使用すると、金曜日の午後 3 時に収集プログラムが開始します。
at 3pm Friday asnccp warmns noprune
収集プログラムを開始する前に、2 つの環境変数を設定する必要があります。 以下のいずれかの機能を使用するときも、これらの変数を設定する必要があります。
環境変数を設定するには、以下のようにします。
export DB2INSTANCE=db2_instance_name
収集プログラムは、開始すると、オペレーターが停止されるか回復不能エラーが検出されるまで実行を続けます。
収集プログラム (UNIX 版) を開始するには、次のようにします。
export DB2INSTANCE=db2_instance_name
収集プログラムの実行中に、収集プログラムを開始したディレクトリーに Database_instance_nameDatabase_name.ccp という名前のファイルが作成されます。このファイルは、収集プログラムが発行するメッセージのログ・ファイルです。 これらのメッセージは、トレース表にも記録されます。
AIX 例:
export LIBPATH=db2homedir/sqllib/lib:/usr/lib:/lib export LANG=en_US
HP-UX 例:
export SHLIB_PATH=db2homedir/sqllib/lib:/usr/lib:/lib export LANG=en_US
Linux 例:
export LD_LIBRARY_PATH=db2homedir/sqllib/lib:/usr/lib:/lib:/db2/linux/lib export LANG=en_US
NUMA-Q 例:
export LD_LIBRARY_PATH=db2homedir/sqllib/lib:/opt/jse3.0/lib export LANG=en_US
Solaris 例:
export LD_LIBRARY_PATH=db2homedir/sqllib/lib:/usr/lib:/lib export LANG=en_US export NLSPATH=/usr/lib/locale/%L/%N:/db2homedir/sqllib/msg/en_US/%N
>>-asnccp----+------------+---+--------+---+---------+----------> '-src_server-' +-warm---+ +-prune---+ +-warmns-+ '-noprune-' '-cold---' >-----+---------+---+---------+---+----------+---+----------+---> +-notrace-+ '-trcfile-' '-notrctbl-' '-autostop-' '-trace---' >-----+----------+---+-----------+---+---------+--------------->< '-logreuse-' '-logstdout-' +-allchg--+ '-chgonly-'
表 27 は、呼び出しパラメーターを定義します。
表 27. UNIX プラットフォームでの ASNCCP 呼び出しパラメーター定義
パラメーター | 定義 |
---|---|
src_server | ソース・サーバー名 (入力する場合) は最初のパラメーターでなければなりません。 指定しない場合、DB2DBDFT 環境変数からの値が使われます。 |
warm (デフォルト) | ウォーム・スタート情報を入手できる場合、収集プログラムは、直前の実行の終了時点から処理を再開します。 収集プログラムは、ウォーム・スタートできない場合、コールド・スタートに切り替わります。 |
warmns | ウォーム・スタート情報を入手できる場合、収集プログラムは、直前の実行の終了時点から処理を再開します。 そうでない場合、メッセージを発行して終了します。 warmns を使うと、収集プログラムは自動的にコールド・スタートに切り替えません。 収集プログラムは、トレース、UOW、CD、ウォーム・スタート表を元のままにしておきます。 エラーが発生した場合、収集プログラムは、warm が指定されているときのようにコールド・スタートに切り替わるのではなく、終了します。 |
cold | 収集プログラムを起動すると、初期設定のときに CD 表、UOW 表、およびトレース表内のすべての列が削除されます。 これらの複製ソースに対するすべてのサブスクリプションは、 変更適用の次回の処理サイクルで完全に最新表示されます。 ターゲットが不完全 CCD 表の場合、 全最新表示は行われません (ソース表とターゲット表の間のギャップの解決を参照してください)。 |
prune (デフォルト) | 収集プログラムは、チューニング・パラメーター表で指定された間隔で、変更適用プログラムによりコピーされた CD および UOW 表の行を自動的に枝取りします。 さらに、ウォーム・スタート時にコピーされたものでなくても、 保存限度より古い CD および UOW 行を枝取りします。 |
noprune | 自動枝取りは使用不可になります。 収集プログラムは、prune コマンドを入力した場合にのみ、 CD および UOW 表を枝取りします。 |
notrace (デフォルト) | トレース情報は書き込まれません。 |
trace | トレース・メッセージを標準出力 stdout に書き込みます (trcfile も同時に指定した場合を除く)。 |
trcfile | trcfile と trace を両方指定すると、収集プログラムはトレース・ファイル (*.trc) にトレース出力を書き込みます。 このオプションを指定しないなら、収集プログラムはトレース出力を標準出力 stdout に送信します。 |
notrctbl | 収集プログラム・メッセージは、トレース表にログ記録されません。 |
autostop | 収集プログラムは、収集プログラムの開始前にログ記録されたすべてのトランザクションを収集すると終了します。 |
logreuse | 収集プログラムは、ログ・ファイル (*.ccp) を再利用するために、まずそれを削除し、収集プログラムの再始動時にそれを再作成します。このオプションを指定しないなら、収集プログラムは、再始動後もログ・ファイルにメッセージを追加します。 |
logstdout | 収集プログラムは、すべてのメッセージを標準出力 (stdout) とログ・ファイルの両方に送信します。 |
allchg (デフォルト) | ソース表の行に変更があるたびに、CD 表に項目を追加するよう指定します。 |
chgonly | 複製 (CD 表列) のために定義した列の値が変化した場合にだけ、 ソース表の行に変更が加えられたときに CD 表に項目を追加するよう指定します。 |
収集プログラムを規定どおりに停止して、その時点までに処理したログ・レコードをコミットするには、stop コマンドを使用するか、キーの組み合わせを使用します。 既存の複製ソースを除去または修正する前に、 収集プログラムを停止する必要があります。
収集プログラムを停止する前に、 環境変数を必ず設定するようにしてください (収集プログラム (UNIX 版) の環境変数の設定を参照してください)。 収集プログラムを停止するには、次のコマンドを入力します。
環境変数 DB2DBDFT を設定してある場合 (ステップ 2を参照)
>>-asncmd--stop------------------------------------------------><
環境変数 DB2DBDFT を設定していない場合
>>-asncmd--src_server--stop------------------------------------><
suspend コマンドは、ピーク時に収集プログラム環境を損なわずに、操作可能なトランザクションのためにオペレーティング・システム・リソースを解放します。 このコマンドは、resume コマンドを発行するまで収集プログラムを延期します。
収集プログラムを延期する前に、環境変数を必ず設定するようにしてください (収集プログラム (UNIX 版) の環境変数の設定を参照してください)。 収集プログラムを延期するには、次のコマンドを入力します。
環境変数 DB2DBDFT を設定してある場合 (2 のステップを参照)
>>-asncmd--suspend---------------------------------------------><
環境変数 DB2DBDFT を設定していない場合
>>-asncmd--src_server--suspend---------------------------------><
重要: 複製ソースを取り消すときは suspend コマンドを使用しないでください。 代わりに、収集プログラムを停止してください。
suspend コマンドを使って収集プログラムを延期した場合に、このプログラムを再始動するには resume コマンドを使用します。
収集プログラムを再開する前に、環境変数を必ず設定するようにしてください (収集プログラム (UNIX 版) の環境変数の設定を参照してください)。 収集プログラムを再開するには、次のコマンドを入力します。
環境変数 DB2DBDFT を設定してある場合 (2 のステップを参照)
>>-asncmd--resume----------------------------------------------><
環境変数 DB2DBDFT を設定していない場合
>>-asncmd--src_server--resume----------------------------------><
収集プログラムの実行中、複製ソースおよび CD 表に新しい複製ソースを追加するか、列を ALTER ADD した場合に、 新しいソース表から変更を収集するには reinit コマンドを使用します。 reinit コマンドによって収集プログラムは、 新たに追加された複製ソースを登録表から取得するよう指示されます。
また、reinit は、チューニング・パラメーター表を再読み取りして、チューニング・パラメーターに変更が行われているかどうかも調べます。
収集プログラムを再初期設定する前に、 環境変数を必ず設定するようにしてください (収集プログラム (UNIX 版) の環境変数の設定を参照してください)。 収集プログラムを再初期設定するには、次のコマンドを入力します。
環境変数 DB2DBDFT を設定してある場合 (2 のステップを参照)
>>-asncmd--reinit----------------------------------------------><
環境変数 DB2DBDFT を設定していない場合
>>-asncmd--src_server--reinit----------------------------------><
重要: 収集プログラムの実行中、 複製ソースの取り消しまたは複製ソース表の除去を行った後の収集プログラムの再初期設定には reinit コマンドを使用しないでください。 収集プログラムを停止してから、WARM または WARMNS オプションを付けて再始動してください。
CD および UOW 表の枝取りを実行するには、pruneコマンドを使います。
このコマンドは、表を一度だけ枝取りします。
表の枝取りを始める前に、 環境変数を必ず設定するようにしてください (収集プログラム (UNIX 版) の環境変数の設定を参照してください)。 表の枝取りを始めるには、次のようにコマンドを入力します。
環境変数 DB2DBDFT を設定してある場合 (2 のステップを参照)
>>-asncmd--prune-----------------------------------------------><
環境変数 DB2DBDFT を設定していない場合
>>-asncmd--src_server--prune-----------------------------------><
このコマンドが正常に待ち行列に入れられると、収集プログラムはメッセージ ASN0124I を発行します。
枝取り中に収集プログラムを停止または延期した場合、 枝取りを再開するには再度 prune コマンドを入力する必要があります。 resume コマンドを入力しても、枝取りは再開されません。
getlseq コマンドは、 現行のログ順序番号とタイム・スタンプを取得します。 この情報を使用すると、 収集プログラムが DB2 ログをどこまで読み取っているかを判別できます。
収集済みログ進行状況を表示する前に、 環境変数を必ず設定するようにしてください (収集プログラム (UNIX 版) の環境変数の設定を参照してください)。 収集済みログ進行状況を表示するには、 次のようにコマンドを入力します。
環境変数 DB2DBDFT を設定してある場合 (2 のステップを参照)
>>-asncmd--getlseq---------------------------------------------><
環境変数 DB2DBDFT を設定していない場合
>>-asncmd--src_server--getlseq---------------------------------><
ヒント: | DB2 UDB Find Log Sequence Number コマンド (db2flsn) を使用して、 ログ順序番号に関連付けられた物理ログ・ファイルを識別することができます。 この番号を使って、収集プログラムで必要なくなったログ・ファイルを削除またはアーカイブすることができます。 詳細については、DB2 ユニバーサル・データベース コマンド解説書 を参照してください。 |
IBM レプリケーション管理担当者は、以降に記載されているコマンドを使うことによって、変更適用プログラムに関する以下の作業を実行することができます。
変更適用プログラムを開始する前に、次のことを確認してください。
変更適用プログラムは、開始すると、次のいずれかが生じるまで連続的に稼働します。
UNIX プラットフォームで変更適用プログラムを開始するには、次のようにします。
export DB2INSTANCE=db2_instance_name
AIX 例:
export LIBPATH=db2homedir/sqllib/lib:/usr/lib:/lib export LANG=en_US
HP-UX 例:
export SHLIB_PATH=db2homedir/sqllib/lib:/usr/lib:/lib export LANG=en_US
Linux 例:
export LD_LIBRARY_PATH=db2homedir/sqllib/lib:/usr/lib:/lib:/db2/linux/lib export LANG=en_US
NUMA-Q 例:
export LD_LIBRARY_PATH=db2homedir/sqllib/lib export LANG=en_US
Solaris 例:
export LD_LIBRARY_PATH=db2homedir/sqllib/lib:/usr/lib:/lib export NLS_PATH= /usr/lib/locale/%L/%N:db2homedir/sqllib/msg/en_US/%N export LANG=en_US
>>-asnapply--apl_qual----+-----------+---+-----------+----------> '-ctrl_serv-' +-loadxit---+ '-noloadxit-' >-----+----------+---+---------+---+---------+---+----------+---> +-inamsg---+ +-notrc---+ '-trcfile-' +-notify---+ '-noinamsg-' +-trcerr--+ '-nonotify-' '-trcflow-' >-----+---------+---+------------+---+----------+---------------> +-sleep---+ +-delay(n)---+ '-copyonce-' '-nosleep-' '-errwait(n)-' >-----+----------+---+-----------+---+----------+-------------->< '-logreuse-' '-logstdout-' '-trlreuse-'
表 28 は、呼び出しパラメーターを定義します。
表 28. UNIX プラットフォームでの ASNAPPLY 呼び出しパラメーター定義
パラメーター | 定義 |
---|---|
apl_qual | 変更適用プログラム・インスタンスが、 処理されるサブスクリプションを識別するのに使用する変更適用修飾子を指定します。 変更適用修飾子は、大文字小文字が区別され、 さらにサブスクリプション・セット表の APPLY_QUAL の値と一致しなければなりません。 これは、最初のパラメーターでなければなりません。 |
ctrl_serv | 複製制御表が常駐するサーバーの名前を指定します。 このパラメーターを指定しない場合のデフォルトは、デフォルト・データベースまたは DB2DBDFT の値です。 |
loadxit | 変更適用プログラムが ASNLOAD を呼び出すように指定します。ASNLOAD は、ターゲット表を最新表示するためにエクスポートおよびロード・ユーティリティーを使う IBM 提供の出口ルーチンです。 |
noloadxit (デフォルト) | 変更適用プログラムは ASNLOAD を呼び出さないことを指定します。 |
inamsg (デフォルト) | 変更適用プログラムが非活動化されるとき、このプログラムからメッセージが発行されることを指定します。 |
noinamsg | 変更適用プログラムはこのメッセージを発行しないことを指定します。 |
notrc (デフォルト) | 変更適用プログラムはトレースを生成しないことを指定します。 |
trcerr | エラー情報のみを含んだトレースを変更適用プログラムが生成することを指定します。 |
trcflow | エラーおよび実行の流れの情報を両方含んだトレースを変更適用プログラムが生成することを指定します。 |
trcfile | trcfile と trace を両方指定すると、変更適用プログラムはトレース・ファイル (*.trc) にトレース出力を書き込みます。このオプションを指定しない場合、変更適用プログラムはトレース出力を標準出力 stdout に送信します。 |
notify | 変更適用プログラムは ASNDONE を呼び出すことを指定します。ASNDONE は、 変更適用プログラムがサブスクリプション・セットをコピーし終えてから制御をユーザーに戻すための出口ルーチンです。 |
nonotify (デフォルト) | 変更適用プログラムは ASNDONE を呼び出さないことを指定します。 |
sleep (デフォルト) | 処理に適する新しいサブスクリプションがない場合に、変更適用プログラムがスリープ状態に入ることを指定します。 |
nosleep | 処理に適する新しいサブスクリプションがない場合に、変更適用プログラムが停止することを指定します。 |
delay(n) | 連続複製が使用される場合に、それぞれの変更適用サイクルの終わりにおける遅延時間 (秒単位) を指定します。 ここで、n は、0、1、2、3、4、5、または 6 です。 デフォルトの遅延時間は 6 秒です。 |
errwait(n) | 変更適用プログラムがエラー状態になってから再試行するまでに待機する秒数を指定します。 ここで、n は秒数です。 変更適用プログラムは、ほとんど切れ目なく稼働して、変更適用追跡表に多数の行を生成するため、 指定する数が小さすぎないようにしてください。 デフォルトの待ち時間は 300 秒 (5 分) です。 |
copyonce | 変更適用プログラムは、
呼びだされた時点で適格なサブスクリプション・セットごとに 1 つのコピー・サイクルを実行し、
それから終了します。
適格なサブスクリプション・セットとは、以下の条件を満たすものです。
|
logreuse | 変更適用プログラムは、ログ・ファイル (*.app) を再利用するために、まずそれを削除し、変更適用プログラムの再始動時にそれを再作成します。 このオプションを指定しない場合、変更適用プログラムは、再始動後もログ・ファイルにメッセージを追加します。 |
logstdout | 変更適用プログラムは、すべてのメッセージを標準出力 (stdout) とログ・ファイルの両方に送信します。 |
trlreuse | 変更適用プログラムは、変更適用プログラムの開始時に適用追跡表を空にします。 |
特定の時に変更適用プログラムを開始するには、at コマンドを使用します。 たとえば、次のコマンドを使用すると、金曜日の午後 3 時に変更適用プログラムが開始します。
at 3pm Friday asnapply myqual
変更適用プログラムを規定どおりに停止するには、asnastop コマンドを使用するか、キーの組み合わせを使用します。
変更適用プログラムを停止するには、 変更適用プログラムを実行中のウィンドウとは別のウィンドウから、 次のステップを実行します。
>>-asnastop--apply_qualifier-----------------------------------><