ARCHIVE LOG コマンド
ARCHIVE LOG コマンドは、リカバリー可能データベースのアクティブ・ログ・ファイルをクローズし、切り捨てます。
許可
- SYSADM
- SYSCTRL
- SYSMAINT
- DBADM
必要な接続
None. このコマンドは、コマンドの持続期間の間、データベース接続を確立します。
コマンド構文
コマンド・パラメーター
- DATABASE database-alias
- アーカイブするアクティブ・ログを持つデータベースの別名を指定します。
- USER username
- 接続を試みるユーザー名を指定します。
- USING password
- ユーザー名を認証するためのパスワードを指定します。
- ON ALL DBPARTITIONNUMS
- コマンドをdb2nodes.cfgファイルのすべてのデータベースパーティションに発行する必要があることを指定します。 データベース・パーティション番号節が指定されていない場合、これがデフォルトです。
- EXCEPT
- データベース・パーティション番号リストに指定されたものを除き、db2nodes.cfgファイルのすべてのデータベース・パーティションでコマンドを発行するように指定します。
- ON DBPARTITIONNUM | ON DBPARTITIONNUMS
- 指定されたデータベースのログをデータベース・パーティションのセットでアーカイブすることを指定します。
- db-partition-number
- データベース・パーティション番号リスト内のデータベース・パーティション番号を指定します。
- TO db-partition-number
- ログをアーカイブするデータベース・パーティションの範囲を指定するときに使用されます。 指定された最初のデータベース・パーティション番号から 2 番目のデータベース・パーティション番号までのすべてのデータベース・パーティションが データベース・パーティション・リストに含まれます。
使用上の注意
このコマンドは、ある時点までのログ・データの完全なセットを収集するために使用できます。 次に、そのログ・データを使用してスタンバイ・データベースを更新することができます。
ARCHIVE LOG コマンドが発行される時点までのログ・データがログ・ファイルの途中である場合、このログ・ファイルは切り捨てられ、ロギングは次のファイルで続行されます。
このコマンドは、起動側アプリケーションまたはシェルに、指定されたデータベースへのデータベース接続がないときにしか実行できません。 これにより、コミットされていないトランザクションでユーザーがコマンドを 実行するのを防ぎます。 実際に、ARCHIVE LOG コマンドは、ユーザーの不完全なトランザクションを コミットしません。 起動側アプリケーションまたはシェルに、指定されたデータベースへのデータベース接続が既に存在している場合は、コマンドは終了してエラーを戻します。 このコマンドを実行したときに、指定されたデータベースで進行中の トランザクションが別のアプリケーションにあった場合には、 コマンドがログ・バッファーをディスクにフラッシュするため、 パフォーマンスがやや低下する可能性があります。 ログ・レコードをバッファーに書き込む別のトランザクションは、 フラッシュが完了するまで待機しなければなりません。
パーティション・データベース環境で使用する場合は、 データベース・パーティション番号節を使用してデータベース・パーティションのサブセットを指定できます。 データベース・パーティション番号節が指定されていない場合、このコマンドのデフォルトの動作は、 クローズしてすべてのデータベース・パーティションのアクティブ・ログをアーカイブすることです。
このコマンドを使用すると、 アクティブ・ログ・ファイルの切り捨てのために、 アーカイブ・ログ・スペースの部分を使い果たします。 アクティブ・ログ・スペースは、 切り捨てられたログが非アクティブになると前のサイズを再開します。 このコマンドを頻繁に使用すると、 トランザクションで使用できるアクティブ・ログ・スペースの量が劇的に削減できます。 使用可能な十分のログ・スペースがない場合には、このコマンドは SQL0964C で失敗します。
ARCHIVE LOG コマンドは非同期です。 ARCHIVE LOG コマンドを発行すると、ログがクローズされてアーカイブの実行が可能になります。 ログが直ちにアーカイブされるわけではありません。したがって、このコマンドを実行依頼してからログがアーカイブされるまで遅延が生じることがあります。 この遅延は、ARCHIVE LOG コマンドを発行した直後にデータベースを非活動化した場合に特に顕著です。 ログのアーカイブは db2logmgr プロセスによって行われます。 次回のデータベース・アクティブ化までログがアーカイブされないことがあります。
このコマンドは、 ARCHIVE LOG コマンドを発行するとき、または Db2® pureScale® 環境で db2ArchiveLog API を呼び出すときに、データベースがアクセスできるすべてのメンバーに配布されます。 メンバー が整合している (オンラインまたはオフラインのいずれか) 場合、 ARCHIVE LOG はその メンバーをスキップします。これは、 メンバー が最後に正常にシャットダウンしたときに、最後のログ・ファイルが既に切り捨てられていたためです。 オフライン・ メンバー が整合していない場合、 ARCHIVE LOG は切り捨ての前に MCR が完了するのを待機します。