次の方法で共有


JetBeginExternalBackup 関数

適用対象: Windows |Windows Server

JetBeginExternalBackup 関数

JetBeginExternalBackup 関数は、エンジンとデータベースがオンラインでアクティブな間に、外部バックアップを開始します。 JetBeginExternalBackup は、オンライン (VSS ベース以外の) バックアップを正常に実行するために呼び出す必要がある一連の関数の最初の関数です。

外部バックアップを使用して、完全バックアップ、増分バックアップ、または差分バックアップを実装できます。

バックアップはあいまいになり、バックアップはトランザクション履歴の 1 つの時点に一貫性がありますが、正確な時点を制御することはできません。

    JET_ERR JET_API JetBeginExternalBackup(
      __in          JET_GRBIT grbit
    );

パラメーター

grbit

次のオプションの 0 個以上を指定するビットのグループ。

説明

JET_bitBackupAtomic

このフラグは非推奨です。 このビットを使用すると、JET_errInvalidgrbitが返されます。

JET_bitBackupIncremental

完全バックアップではなく、増分バックアップを作成します。 つまり、最後の完全バックアップまたは増分バックアップ以降のログ ファイルのみがバックアップされます。

JET_bitBackupSnapshot

将来利用するために予約されています。 Windows XP 用に定義されています。

戻り値

この関数は、次のいずれかのリターン コードを使用して 、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張可能ストレージ エンジン エラー 」および「 エラー処理パラメーター」を参照してください。

リターン コード

説明

JET_errSuccess

操作は正常に完了しました。

JET_errBackupInProgress

外部バックアップまたはスナップショット バックアップが既に処理中の場合、JetBeginExternalBackup (またはそのいずれかのバリアント) が呼び出されるまで、このエラーが返されます。 ESE では、一度に 1 つのオンライン バックアップのみが許可されます。

JET_errBackupNotAllowedYet

インスタンスまたはデータベース エンジンは復旧中か、シャットダウンフェーズまたは終了フェーズにあります。

JET_errCheckpointCorrupt

完全バックアップでは、チェックポイント ファイルを読み取ることができなかったか、ファイルを確認できませんでした。

JET_errCheckpointFileNotFound

完全バックアップでは、チェックポイント ファイルが見つかりませんでした。

JET_errClientRequestToStopJetService

JetStopService の呼び出しの結果、セッションに関連付けられているインスタンス上のすべてのアクティビティが停止したため、操作を完了できません。

JET_errInstanceUnavailable

セッションに関連付けられているインスタンスで、そのデータの整合性を保護するためにすべてのデータへのアクセスを取り消す必要がある致命的なエラーが発生したため、操作を完了できません。

Windows XP: この戻り値は Windows XP で導入されています。

JET_errInvalidBackup

循環ログが有効になり、指定されたバックアップの種類がJET_bitBackupIncremental。 循環ログまたは非循環ログを制御する方法については、「トランザクション ログ エラーのJET_paramCircularLog」を参照してください。

JET_errInvalidgrbit

1 つ以上の grbit メンバーが無効でした。

JET_errLoggingDisabled

回復またはログ記録が無効になっています。 ログ記録が無効になっている場合は、オンライン バックアップを実行できません。 ログ記録と回復の詳細については、「 JET_paramRecovery」を参照してください。

JET_errLogWriteFail

ログがいっぱいまたはディスク IO エラーのため、エンジンがログ ドライブへの書き込みを停止しました。

JET_errMissingFullBackup

増分バックアップが指定され (JET_bitBackupIncremental)、ログ セットにアタッチされているデータベースの 1 つに対して完全バックアップが作成されることはありませんでした。

JET_errNotInitialized

セッションに関連付けられているインスタンスがまだ初期化されていないため、操作を完了できません。

JET_errOutOfMemory

完了するのに十分なメモリを割り当てられなかったため、操作が失敗しました。

JET_errRestoreInProgress

セッションに関連付けられているインスタンスで復元操作が進行中のため、操作を完了できません。

JET_errRunningInMultiInstanceMode

実際に複数のインスタンスが既に存在する場合、1 つのインスタンスのみがサポートされているレガシ モード (Windows 2000 互換モード) でエンジンを使用しようとしたため、操作は失敗しました。

JET_errTermInProgress

セッションに関連付けられているインスタンスがシャットダウンされているため、操作を完了できません。

関数が成功すると、外部バックアップが開始され、バックアップ状態エンジンが初期化されます。 後続の API を呼び出して、外部バックアップ シーケンスを完了し、データベース ファイル、データベース パッチ ファイル (サポートされている場合)、およびログ ファイルをストリームまたは読み取ることができます。 外部バックアップが開始されたことを示すイベントをログに記録できます。

関数が失敗した場合、バックアップ セッションは開始されません。 別のバックアップ セッションが進行中の場合、そのセッションは取り消されません。

注釈

外部バックアップ プロセス ( JetBeginExternalBackup によって開始) は、インスタンス全体のあいまいトランザクション オンライン バックアップをターゲット デバイスにストリームとして許可するように設計されています。 バックアップには、 JetAttachDatabase を使用してインスタンスにアタッチされているすべてのデータベース ファイル (完全バックアップ用)、関連するデータベース パッチ ファイル (サポートされている場合)、最後にバックアップ プロセス中に生成されたトランザクション ログ ファイルが含まれます。 最終的な結果は、ストリームから復元でき、既存のデータベースファイルとログ ファイルと組み合わせて、最終的に一貫した状態に回復できる一連のファイルになります。

完全バックアップの操作の一般的な順序は、次の呼び出しで構成されます。 最初に、バックアップ プロセスを開始するために JetBeginExternalBackup が呼び出されます。 その後、 JetGetAttachInfo が呼び出され、バックアップする必要があるインスタンスにアタッチされているデータベースの一覧が取得されます。 これらの各データベースについて、 JetOpenFile が呼び出され、その後に 多数の JetReadFile 呼び出しが続き、 JetCloseFile が呼び出されます。 その後、 JetGetLogInfo が呼び出され、バックアップするデータベースパッチとログ ファイルの一覧が取得されます。 これらのファイルごとに、JetOpenFile、JetReadFileJetCloseFile の別のシーケンスが呼び出されます。 その後、不要なトランザクション ログ ファイルはすべて 、JetTruncateLog を使用して削除されます。 最後に、 JetEndExternalBackup の呼び出しによってバックアップが終了します。

この一連の手順を変更して、インスタンスの増分バックアップを実行することもできます。 増分バックアップでは、ログ ファイルが列挙され、バックアップされます。 増分バックアップは、循環ログが有効になっていない場合にのみ可能です。

インスタンスの後続の差分バックアップを実行できるように、この一連の手順を変更することもできます。 差分バックアップを実行するには、前回の完全バックアップまたは増分バックアップで JetTruncateLog を呼び出さないでください。 JetTruncateLog を呼び出さないと、最後の完全バックアップまたは増分バックアップに対して後続のバックアップが差分になります。 差分バックアップは、循環ログが有効になっていない場合にのみ可能です。

データベース パッチ ファイルは、バックアップ中に特定の状況でデータベース ページ イメージを格納するために使用される特別な補助ファイルです。 このファイルは、復元操作中に、関連付けられているデータベースと同じ場所に存在する必要があります。 このファイルは Windows 2000 でのみ使用されます。 その結果、Windows 2000 やその他のリリースに対して動作するように記述されたアプリケーションは、データベースパッチファイルが存在する場合はサポートする必要がありますが、存在しない場合は失敗しないようにする必要があります。

要件

要件

Client

Windows Vista、Windows XP、または Windows 2000 Professional が必要です。

[サーバー]

Windows Server 2008、Windows Server 2003、または Windows 2000 Server が必要です。

Header

Esent.h で宣言されています。

Library

ESENT.lib を使用します。

[DLL]

ESENT.dllが必要です。

参照

JET_ERR
JET_GRBIT
JET_INSTANCE
JetAttachDatabase
JetBeginExternalBackupInstance
JetCloseFile
JetEndExternalBackup
JetEndExternalBackupInstance2
JetGetAttachInfo
JetGetLogInfo
JetOpenFile
JetReadFile
JetStopBackup
JetTruncateLog