次の方法で共有


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