JetBackupInstance 関数
適用対象: Windows | Windows Server
JetBackupInstance 関数
JetBackupInstance 関数は、ディレクトリへのインスタンス (アタッチされているすべてのデータベースを含む) のストリーミング バックアップを実行します。 エンジンでサポートされている複数のバックアップ方法のうちで、これが最も単純で最もカプセル化された関数です。
Windows XP: JetBackupInstance は Windows XP に導入されています。
JET_ERR JET_API JetBackupInstance(
__in JET_INSTANCE instance,
__in JET_PCSTR szBackupPath,
__in JET_GRBIT grbit,
__in JET_PFNSTATUS pfnStatus
);
パラメーター
instance
バックアップするデータベースのインスタンス。
szBackupPath
バックアップが格納されるディレクトリ。 使用するバックアップ パスが NULL の場合、この関数は、ログを切り捨てます (可能な場合)。
grbit
次のオプションの 0 個以上を指定するビットのグループ。
値 |
意味 |
---|---|
JET_bitBackupAtomic |
データベースの完全バックアップを作成します。 これにより、新しいバックアップが失敗した場合、同じディレクトリに既存のバックアップを保持できます。 |
JET_bitBackupIncremental |
完全バックアップではなく増分バックアップを作成します。 つまり、最後の完全または増分バックアップ以降に作成されたログ ファイルのみがバックアップされます。 |
JET_bitBackupSnapshot |
将来利用するために予約されています。 |
pfnStatus
バックアップ操作の進行状況に関する通知情報を提供する、JET_PFNSTATUS コールバック関数へのポインター。
戻り値
この関数は、次のいずれかのリターン コードとともに JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「記憶域エンジンの拡張可能なエラー」と「エラー処理パラメーター」を参照してください。
リターン コード |
説明 |
---|---|
JET_errSuccess |
操作は正常に完了しました。 |
JET_errBackupInProgress |
同じインスタンスのバックアップが既に進行中です。 同時に複数のバックアップは許可されません。 |
JET_errBackupNotAllowedYet |
インスタンスは初期化中のため、まだバックアップの準備ができていません。 |
JET_errClientRequestToStopJetService |
JetStopServiceInstance 関数の呼び出しの結果として、セッションに関連付けられているインスタンス上のすべてのアクティビティが停止したため、操作を完了できません。 |
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 以降はログ ファイルに対しても、チェックサム検証を実行します。 これにより、通常の操作中に読み取られないページであっても、データベースの正常性を推定する機会が得られます。 該当する破損が検出された場合、バックアップは失敗します。
バックアップ中に、現在のログ ファイルが終わりになり、新しいログ生成が開始されます。 これにより、必要な最後のログ ファイルも使用中ではなくなるため、必要なものをコピーできます。
バックアップは、エンジン レベルのバックアップおよび復元以外の目的では使用しないことを強くお勧めします。 これにより、バックアップと復元操作中にエラーが発生する可能性が最小限に抑えられます。
要件
要件 | Value |
---|---|
クライアント |
Windows Vista または Windows XP が必要です。 |
[サーバー] |
Windows Server 2008 または Windows Server 2003 が必要です。 |
ヘッダー |
Esent.h で宣言されています。 |
Library |
ESENT.lib を使用します。 |
[DLL] |
ESENT.dll が必要です。 |
Unicode |
JetBackupInstanceW (Unicode) および JetBackupInstanceA (ANSI) として実装されます。 |
参照
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_PFNSTATUS
JetRestore
JetRestore2
JetRestoreInstance
JetStopServiceInstance
System Parameters