保管および復元機能

IBM® i 保管および復元機能は、SQL オブジェクトをディスク (保管ファイル) に、または外部メディアに保管する場合に使用します。

保管したバージョンは、あとで任意の IBM i オペレーティング・システムに復元することができます。保管および復元機能を使用すると、スキーマ全体、選択したオブジェクト、または特定の日付および時刻以降に変更されたオブジェクトだけを保管することができます。 オブジェクトを元の状態に復元するために必要なすべての情報が保管されます。 この機能を使用すると、表またはスキーマ全体の前のバージョンでデータを復元することにより、損傷した表を回復することができます。

SQL プロシージャー、SQL 関数、またはソース関数用に作成されたプログラムまたはサービスは復元時に、そのプロシージャーまたは関数が同じシグニチャーおよびプログラム名でまだ存在していない限り、 SYSROUTINES および SYSPARMS カタログに自動的に追加されます。 QSYS で作成される SQL プログラムは、復元時には SQL プロシージャーとしては作成されません。 さらに、CREATE PROCEDURE または CREATE FUNCTION ステートメントで参照された外部プログラムまたはサービス・プログラムには、SYSROUTINES にそのルーチンを登録するために必要な情報が含まれている可能性があります。 必要な情報があり、シグニチャーが固有な場合には、その関数またはプロシージャーも、復元時に SYSROUTINES および SYSPARMS に追加されます。

SQL 表が復元されると、表に定義された SQL トリガーの定義も復元されます。 SQL トリガーの定義は、SYSTRIGGERS、SYSTRIGDEP、SYSTRIGCOL、および SYSTRIGUPD の各カタログに自動的に追加されます。 SQL CREATE TRIGGER ステートメントによって作成されたプログラム・オブジェクトも、SQL 表が保管され復元されるときに、保管/復元されなければなりません。プログラム・オブジェクトの保管と復元は、データベース・マネージャーによって自動化されていません。自己参照トリガー用の予防処置策は、SQL 表を新規ライブラリーに復元するときに、検討する必要があります。

ユーザー定義タイプに対して *SQLUDT オブジェクトが復元されると、そのユーザー定義タイプは、SYSTYPES カタログに自動的に追加されます。 ユーザー定義タイプとソース・タイプとの間にキャストするために必要な適切な関数が、まだ存在していない場合には、それらのタイプおよび関数も作成されます。

順序のための *DTAARA が復元されるとき、順序は自動的に SYSSEQUENCES カタログに追加されます。 カタログが正常に更新されない場合、*DTAARA は変更されて、順序としては使用できなくなり、SQL9020 情報メッセージはジョブ・ログに出力されます。

グローバル変数の *SRVPGM が復元されると、その変数は SYSVARIABLES カタログに自動的に追加されます。 カタログが正常に更新されない場合、そのオブジェクトはグローバル変数として使用できません。 その名前がスキーマ内で重複してしまうような状況では、オブジェクトを別のスキーマに移動することにより、 それをグローバル変数として認識させることが可能な場合があります。

分散 SQL プログラムとその関連 SQL パッケージのどちらも、保管して、任意の数のシステムに復元することができます。 これにより、いくつかの異なるシステムが置かれている SQL プログラムの任意の数のコピーから同じアプリケーション・サーバーに置かれている同じ SQL プログラムを利用することができます。 また、復元された SQL プログラムが置かれている任意の数のアプリケーション・サーバーに単一の分散 SQL プログラムを接続することもできます (CRTSQLPKG も使用できます)。SQL パッケージを別のライブラリーに復元することはできません。

注: スキーマを既存のライブラリーまたは別の名前を持つスキーマに復元しても、ジャーナル、ジャーナル・レシーバー、または IDDU ディクショナリー (存在していても) は復元されません。 スキーマは別の名前のスキーマに復元すると、そのスキーマ内のカタログ・ビューは前のスキーマ内のオブジェクトしか反映しません。 ただし、QSYS2 のカタログ・ビューは、すべてのオブジェクトを適切に反映します。