JetExternalRestore2 関数
適用対象: Windows |Windows Server
JetExternalRestore2 関数
JetExternalRestore2 関数は、外部バックアップ API で取得された外部バックアップを復元し、循環ログ操作に使用するチェックポイントを提供します。 これはハード リカバリと呼ばれ、 JetInit 関数によって実行されるソフト リカバリと似ていますが、異なります。
Windows XP: JetExternalRestore2 は Windows XP で導入されています。
JET_ERR JET_API JetExternalRestore2(
__in JET_PSTR szCheckpointFilePath,
__in JET_PSTR szLogPath,
__in_opt JET_RSTMAP* rgrstmap,
__in long crstfilemap,
__in JET_PSTR szBackupLogPath,
__in_out JET_LOGINFO* pLogInfo,
__in_opt JET_PSTR szTargetInstanceName,
__in_opt JET_PSTR szTargetInstanceLogPath,
__in_opt JET_PSTR szTargetInstanceCheckpointPath,
__in JET_PFNSTATUS pfn
);
パラメーター
szCheckpointFilePath
szTargetInstanceCheckpointPath が指定されていない場合、またはそのパスにアクティブまたは実行中のインスタンスがある場合に、回復中に使用するチェックポイント ファイルのパス。
szLogPath
復旧の最終フェーズ (元に戻す) と場合によってはロールフォワード ログのログのパスまたはディレクトリ。 このパスは 、szBackupLogPath と同じにすることができます。
rgrstmap
これは、 JET_RSTMAP 構造体の配列です。 これは、古いデータベース パスと新しいデータベース パスまたはファイル名のマップです。 これは、バックアップ元の場所以外の場所にデータベースを復旧する必要がある場合があるために使用されます。 複数のデータベースが 1 つのログ セットにアタッチされている場合、復元マップでは、復元するデータベースのサブセットを指定できます。
crstfilemap
rgrstmap 配列パラメーター内のエントリの数。
szBackupLogPath
ログ ファイルが復元されるディレクトリへのパス。 これらは、外部バックアップ シーケンス中に読み取られたログです。 このパスは 、szLogPath と同じにすることができます。
pLogInfo
pLogInfo では、復旧するバックアップ ログのいくつかの側面について説明します。このパラメーターを使用すると、JetExternalRestore2が持つ明示的な genLow パラメーターと genHigh パラメーターと、"edb" の推定ログベース名ではなく、ベース ログ名を取得できます。
szTargetInstanceName
このパラメーターは非推奨であり、アプリケーションでは使用できません。
szTargetInstanceLogPath
ロールフォワードするログの場所がアクティブなログ セットまたはインスタンスにある場合のロールフォワード ログのパス。 ターゲット インスタンスが循環ログを使用している場合は、これを指定しないでください。
szTargetInstanceCheckpointPath
このターゲットでアクティブなインスタンスが実行されていない場合の、復旧中のチェックポイントのパス。 ターゲット インスタンスが循環ログを使用している場合は、これを指定しないでください。
pfn
回復の進行状況を報告する状態コールバック。
戻り値
この関数は、次のいずれかの戻りコードを 使用して、JET_ERR データ型を返します。 考えられる ESE エラーの詳細については、「 拡張ストレージ エンジン エラー と エラー処理パラメーター」を参照してください。
リターン コード |
説明 |
---|---|
JET_errSuccess |
操作は正常に完了しました。 |
JET_errBadRestoreTargetInstance |
指定された szTargetInstanceLogPath は、初期化されたインスタンスに属していません。 このエラーは、Windows XP 以降でのみ返されます。 |
JET_errDatabaseCorrupted |
これは、データベースが破損しているか、認識されないファイルであることを示します。 |
JET_errEndingRestoreLogTooLow |
このエラーは、 szBackupLogPath 内のログ ファイルに対して、 genHigh または pLogInfo.ulGenHigh で指定されたログ生成が上記の場合に返されます。 |
JET_errFileNotFound |
指定したパスで見つからなかったため、要求されたファイルを開けなかったため、操作は失敗しました。 |
JET_errInvalidParameter |
指定されたパラメーターの 1 つに予期しない値が含まれていたか、別のパラメーターの値と組み合わせたときに意味のない値が含まれていました。 これは 、JetExternalRestore で発生する可能性があります。 szTargetCheckpointPath と szTargetInstanceLogPath の両方が指定されていないか、両方が指定されていない場合などです。 つまり、これらは一致する必要があり、両方を指定するか、両方を指定しない必要があります。 |
JET_errInvalidPath |
指定したパスが見つからなかったため、操作に失敗しました。 |
JET_errOutOfMemory |
完了するのに十分なメモリを割り当てられなかったため、操作は失敗しました。 |
JET_errRestoreOfNonBackupDatabase |
このエラーは、復元時に指定されたデータベース ファイルが、外部バックアップでバックアップされたデータベースではない場合に返されます。 |
JET_errRunningInOneInstanceMode |
データベース エンジンは、単一インスタンス モードで外部復元またはハード 回復を実行できません。 このエラーは、Windows XP 以降でのみ返されます。 |
JET_errStartingRestoreLogTooHigh |
このエラーは、 szBackupLogPath 内のいずれかのログ ファイルに genLow または pLogInfo.ulGenLow で指定されたログ生成が存在する場合に返されます。 |
成功すると、rgrstmap からのすべてのデータベースが完全に復旧され、クリーンまたは一貫性のある状態になります。 この時点で、データベースを既存のインスタンスに再マウントできます。
障害が発生した場合、エンジンはデータベースを復旧できませんでした。 データベースが無効な状態であり、ハード 回復を再試行するには、データベース全体を再度復元する必要があります。 通常、このような状況の原因は、ディスクまたはログの破損、または他の形式のログ管理の誤り、または非連続ログ セットです。
注釈
「JetExternalRestore」を参照してください。
要件
要件 | 値 |
---|---|
Client |
Windows Vista または Windows XP が必要です。 |
[サーバー] |
Windows Server 2008 または Windows Server 2003 が必要です。 |
Header |
Esent.h で宣言されています。 |
Library |
ESENT.lib を使用します。 |
[DLL] |
ESENT.dllが必要です。 |
Unicode |
JetExternalRestore2W (Unicode) および JetExternalRestore2A (ANSI) として実装されます。 |
参照
JET_ERR
JET_LOGINFO
JET_PFNSTATUS
JET_RSTMAP
JetBeginExternalBackup
JetExternalRestore
JetInit