JetBackup 関数
適用対象: Windows |Windows Server
JetBackup 関数
JetBackup 関数は、データベースがオンラインの間にデータベースのバックアップを作成します。 この関数は、主に Windows 2000 以前のデータベース エンジンとの下位互換性を保つために使用され、データベースのインスタンスは 1 つだけ許可されます。 この場合、アクティブなインスタンスはバックアップされるインスタンスです。
JET_ERR JET_API JetBackup(
__in JET_PCSTR szBackupPath,
__in JET_GRBIT grbit,
__in JET_PFNSTATUS pfnStatus
);
パラメーター
szBackupPath
バックアップが格納されているディレクトリ。 バックアップ パスが NULL の場合、可能であれば、関数によってログが切り捨てられます。
grbit
次のオプションの 0 個以上を指定するビットのグループ。
値 |
説明 |
---|---|
JET_bitBackupAtomic |
データベースの完全バックアップを作成します。 これにより、新しいバックアップが失敗した場合に、同じディレクトリ内の既存のバックアップを保持できます。 |
JET_bitBackupIncremental |
完全バックアップではなく増分バックアップを作成します。 つまり、最後の完全バックアップまたは増分バックアップ以降のログ ファイルのみがバックアップされます。 |
pfnStatus
バックアップ操作の進行状況に関する通知情報を提供する、 JET_PFNSTATUS コールバック関数へのポインター。
戻り値
関数は、 JET_ERR エラー コードのいずれかを返します。 最も一般的に返されるのは次のとおりです。 (この API のエラーの完全な一覧については、「 拡張ストレージ エンジンのエラー コード」を参照してください)。
リターン コード |
説明 |
---|---|
JET_errSuccess |
操作は正常に完了しました。 |
JET_errBackupInProgress |
同じインスタンスのバックアップは既に進行中です。 複数のバックアップを同時に使用することはできません。 |
JET_errBackupNotAllowedYet |
インスタンスは初期化中のため、まだバックアップの準備ができていません。 |
JET_errClientRequestToStopJetService |
JetStopService の呼び出しの結果、セッションに関連付けられたインスタンスのすべてのアクティビティが停止したため、操作を完了できません。 |
JET_errInstanceUnavailable |
セッションに関連付けられているインスタンスで、そのデータの整合性を保護するためにすべてのデータへのアクセスを取り消す必要がある致命的なエラーが発生したため、操作を完了できません。 Windows XP: この戻り値は、Windows XP で導入されています。 |
JET_errInvalidBackup |
循環ログがオンになっている場合、増分バックアップは許可されません。 |
JET_errInvalidGrbit |
指定したオプションが無効です。 |
JET_errInvalidParameter |
無効なパラメーターが API に渡されました。 |
JET_errInvalidPath |
宛先パスが存在しません。 |
JET_errLoggingDisabled |
インスタンスはログ記録なしで実行されています。 バックアップは許可されません。 |
JET_errLogReadVerifyFailure |
ログ ファイルにチェックサム検証エラーが発生しました。 |
JET_errLogWriteFail |
予期しないエラーが発生したため、インスタンスのログ記録は一時的または完全に無効になっています。 |
JET_errNotInitialized |
セッションに関連付けられているインスタンスがまだ初期化されていないため、操作を完了できません。 |
JET_errReadVerifyFailure |
データベース ページでチェックサム検証エラーが発生しました。 |
JET_errRestoreInProgress |
セッションに関連付けられているインスタンスで復元操作が進行中のため、操作を完了できません。 |
JET_errSessionSharingViolation |
同じセッションを複数のスレッドに同時に使用することはできません。 Windows XP: この戻り値は、Windows XP で導入されています。 |
JET_errTermInProgress |
セッションに関連付けられているインスタンスがシャットダウンされているため、操作を完了できません。 |
関数が成功すると、バックアップの時点までの復元に必要なすべてのファイルがバックアップ ディレクトリに格納されます。 これが完全バックアップの場合、ファイルはデータベース ファイルと、データベースを一貫した状態にするために必要なログ ファイルになります。 増分バックアップの場合は、ログ ファイルのみがディレクトリに追加されますが、既存のファイル (データベースとログ ファイル) と新しいログ ファイルを復元して、バックアップが開始された時点の状態に戻すことができます。
バックアップの副作用として、不要になったログ ファイルは切り捨てられます。
同時に、データベース ヘッダーは、最後のバックアップが行われたときに情報で更新されます。
関数が失敗した場合、バックアップ ディレクトリの宛先にファイルが存在しないため、復元できません。 同時に、現在のログ ファイルは切り捨てされません。
解説
バックアップのさまざまな手順では、ファイル名、ログの切り捨て、バックアップの最終的な結果など、イベント ログ エントリが生成されます。
増分バックアップは、完全バックアップが作成された後にのみ可能です。 また、増分バックアップは、循環ログがオフになっている場合にのみ可能です。 バックアップ ディレクトリには、バックアップで使用されたもの以外のファイルや、以前の正常なバックアップによって追加されたファイルを含めないことをお勧めします。
インスタンスにパラメーター JET_paramCreatePathIfNotExist が設定されていない限り、バックアップ ディレクトリが存在する必要があります。 詳細については、「 システム パラメーター」を参照してください。
バックアップでは、使用されているすべてのデータベース ページと Windows Server 2003 以降のログ ファイルでもチェックサム検証が行われます。 これにより、通常の操作中に読み取られないページであっても、データベースの正常性を見積もる機会が得られます。 このような破損が発生した場合、バックアップは失敗します。
バックアップ中に、現在のログ ファイルが完了し、新しいログが生成されます。 この方法では、現在のログが使用されなくなるため、必要なすべてのログ ファイルをコピーできます。
エンジン レベルでのバックアップと復元以外の目的でバックアップを使用しないことを強くお勧めします。 これにより、バックアップ操作と復元操作中にエラーが発生する可能性が最小限に抑えられます。
要件
要件 | 値 |
---|---|
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が必要です。 |
Unicode |
JetBackupW (Unicode) および JetBackupA (ANSI) として実装されます。 |
参照
拡張可能なストレージ エンジン ファイル
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_PFNSTATUS
JetRestore
JetRestore2
JetRestoreInstance
JetStopService
システム パラメーター