ステージ・コピー・ユーティリティーは、データを実動データベースからステージング・データベースにコピーします。 サイト関連テーブル、マーチャント関連テーブル、または個々のテーブルのデータをコピーすることができます。 また、コマンド構文で cleanup_stage_db パラメーターを使用すれば、 ステージ・コピー・ユーティリティーの前にステージング・データベースをクリーンアップできます。 yes を指定すると、ステージ・コピー・ユーティリティーは、 データのコピーの前にすべてのステージング・テーブルをクリーンアップします。 ただしその場合、削除カスケードによって他のテーブルが影響を受ける可能性があります。 no を指定すると、ステージ・コピー・ユーティリティーは、ステージング・テーブルから何も削除しません。 データのコピーが原因で 1 次キーまたは固有索引に競合や重複が発生した場合は、コピーが失敗することもあります。 ステージング・データベースを除去することだけを目的としてステージング・コピー・ユーティリティーを使用する場合は、 only を指定してください。
ステージ・コピー・ユーティリティーとステージ伝搬ユーティリティーは、データベース・データを、サイト関連とマーチャント関連の 2 つの有効範囲レベルに分けます。 サイト有効範囲には、システムのすべてマーチャントに共通のデータが含まれます。 システムが使用する言語や国または地域別コードがその一例です。 マーチャントの有効範囲には、個々のマーチャントと関連しているデータが含まれます。 たとえば、ストア情報は個々のマーチャント用にカスタマイズされ、ストア・テーブルからの行は、マーチャントごとに固有です。 サイトとマーチャントの両方の情報を収めたデータベース・テーブルもあります。 ステージ・コピー・ユーティリティーの実行時に scope パラメーターを _all_ に指定すると、 サイト・データがコピーされ、それに続いてすべてのマーチャント・データがコピーされます。 有効範囲を _site_ に指定すると、サイト・データだけがコピーされます。 有効範囲を _merchant_ に指定すると、マーチャント・データだけがコピーされます。 マーチャントすべてのデータだけで個々のマーチャントのデータはコピーできないことに注意してください。 有効範囲を _all_ に設定していない場合には、サイト・データはすべてのマーチャントが使用するので、マーチャント・データの前にサイト・データをコピーしてください。 そうでない場合には、外部キーと基本キーのミスマッチが原因で、コピーは失敗します。 cleanup_stage_db を使用してサイト・データをクリーンアップすると、 削除カスケードのためにマーチャント・データも削除される可能性があることに注意してください。 有効範囲を _all_ に設定していない場合は、マーチャント・データとそれに続けてサイト・データをクリーンアップしてから、サイト・データとそれに続けてマーチャント・データをコピーしてください。
ステージ・コピー・ユーティリティーでのもう 1 つのオプションに、script_file パラメーターがあります。 スクリプト・ファイル名を指定することによって、ステージ・コピー・ユーティリティーは、指定された有効範囲を基にして、実動データベースをステージング・データベースにコピーするためにエクスポートとインポートに使用する SQL スクリプト・ファイルを生成します。 デフォルト値を使用するか、あるいは cleanup_stage_db を yes に指定すると、ステージング・データベースをクリーンアップするために Delete ステートメントも生成されます。 スクリプト・ファイルは、ステージ・コピー・ユーティリティーを開始するディレクトリーにあります。 スクリプト・ファイルは、エクスポートとインポートを使用して、データベースのコピー処理を高速化します。 また、生成後のスクリプト・ファイルを変更して、ステージ・コピー・ユーティリティーの動作を変更することもできます。 たとえば、インポート・ユーティリティーの代わりに DB2 ロード・ユーティリティーを使用すると、 コピー処理をさらに高速にすることができます。 生成されたスクリプトは、ユーティリティーを実行するディレクトリーに、すべてのテーブルをエクスポートすることに注意してください。 十分なディスク・スペースがあることを確認してください。
トランザクション有効範囲の理解が重要になります。 ステージング・データベースをクリーンアップするとき、ステージ・コピー・ユーティリティーは、 各テーブルをクリーンアップした後でトランザクションをコミットします。 データをコピーすると、ステージ・コピー・ユーティリティーは各テーブルを コピーして KEYS テーブルを同期した後で、トランザクションをコミットします。 生成されたスクリプトの場合、DB2 インポート・ユーティリティーに起因してトランザクション有効範囲は若干異なります。 DB2 インポート・ユーティリティーは、インポートが終了した後、自動的にトランザクションをコミットします。 そのため、トランザクションは、KEYS テーブルの同期の前にコミットされます。したがって、KEYS テーブルの同期は、別のトランザクションで行われます。
クリーンアップまたはコピーするテーブルは、dbtable パラメーターを使用して指定できます。 クリーンアップするかコピーするテーブルを指定するときに、テーブルが分離されていない場合があることに注意してください。 いくつかのテーブルは、参照制約によって互いに関連しています。 指定したテーブルをクリーンアップすると、削除のカスケードによって、子テーブルもクリーンアップすることになります。 指定したテーブルをコピーする場合には、最初に親テーブルをコピーする必要があります。 そうでない場合には、クリーンアップまたはコピーは失敗します。
ステージ・コピー・ユーティリティーは構成可能で、拡張可能です。 カスタマイズ済みのテーブルを処理するには、そのテーブルが満たしていなければならない条件が幾つかあり、 ステージング構成テーブルでセットアップしなければなりません。 詳細は、カスタマイズされたテーブルのためのステージング・サーバーの構成を参照してください。 ステージ・コピー・ユーティリティーを使用する場合、 事前にデータベースの構成のステップを行う必要があります。 コマンドの実行が正常に完了すると、ステージ・コピー・ユーティリティーは、 STAGLOG データベース・テーブルからレコードをすべて削除します。
注: システム上に RFQ がある場合、ステージ・コピー・コマンドは使えません。 詳細は、ステージング・サーバーの制限事項を参照してください。
![]() |