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 結構的陣列。 這是舊和新資料庫路徑或檔案名的對應。 這是使用,因為資料庫可能需要復原到其備份位置以外的位置。 如果多個資料庫附加至單一記錄集,還原對應可以指定要還原的資料庫子集。
crstfilemap
rgrstmap陣列參數中的專案數。
szBackupLogPath
還原記錄檔之目錄的路徑。 這些是外部備份順序期間已讀取的記錄。 此路徑可能與 szLogPath相同。
pLogInfo
pLogInfo描述要復原之備份記錄的數個層面,此參數可讓JetExternalRestore2取得JetExternalRestore2擁有的明確genLow和genHigh參數,以及基底記錄檔名稱,而不是假設的記錄基底名稱 「edb」。
szTargetInstanceName
此參數已被取代,而且無法在您的應用程式中使用。
szTargetInstanceLogPath
如果您想要向前復原的記錄位置位於作用中記錄集或實例中,則向前復原記錄的路徑。 如果目標實例使用迴圈記錄,則不應該指定這個值。
szTargetInstanceCheckpointPath
如果在此目標上沒有作用中的實例,則為復原期間檢查點的路徑。 如果目標實例使用迴圈記錄,則不應該指定這個值。
pfn
狀態回呼,報告復原進度。
傳回值
此函式會傳回具有下列其中一個傳回碼 的 JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸儲存引擎錯誤 和 錯誤處理參數。
傳回碼 |
Description |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errBadRestoreTargetInstance |
指定的 szTargetInstanceLogPath 不屬於已初始化的實例。 此錯誤只會在 Windows XP 和更新版本中傳回。 |
JET_errDatabaseCorrupted |
這表示資料庫已損毀或無法辨識的檔案。 |
JET_errEndingRestoreLogTooLow |
如果 szBackupLogPath中的記錄檔有一個記錄產生,則會傳回此錯誤,其記錄產生高於 genHigh 或 pLogInfo.ulGenHigh中指定的記錄。 |
JET_errFileNotFound |
作業失敗,因為它無法開啟要求的檔案,因為它在指定的路徑找不到。 |
JET_errInvalidParameter |
提供的其中一個參數包含非預期的值,或包含與另一個參數的值結合時沒有意義的值。 當szTargetCheckpointPath和szTargetInstanceLogPath未同時指定或未指定兩者時,JetExternalRestore可能會發生這種情況。 也就是說,它們必須相符,而且必須同時指定或兩者皆未指定。 |
JET_errInvalidPath |
作業失敗,因為找不到指定的路徑。 |
JET_errOutOfMemory |
作業失敗,因為無法配置足夠的記憶體來完成。 |
JET_errRestoreOfNonBackupDatabase |
如果還原期間指定的資料庫檔案不是使用外部備份進行備份的資料庫,就會傳回此錯誤。 |
JET_errRunningInOneInstanceMode |
資料庫引擎無法在單一實例模式中執行外部還原或硬式復原。 此錯誤只會在 Windows XP 和更新版本中傳回。 |
JET_errStartingRestoreLogTooHigh |
如果 szBackupLogPath中的其中一個記錄檔低於 genLow 或 pLogInfo.ulGenLow所指定的記錄產生,就會傳回此錯誤。 |
成功時, rgrstmap 中的所有資料庫都會完全復原,且處於全新或一致的狀態。 此時,資料庫可以重新掛接至現有的實例。
失敗時,引擎無法復原資料庫。 資料庫處於無效狀態,若要重試硬式復原,必須再次還原整個資料庫。 一般而言,這類情況的來源是磁片或記錄損毀,或是某種形式的記錄錯誤或非連續記錄集。
備註
請參閱 JetExternalRestore。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 Windows Vista 或 Windows XP。 |
Server |
需要 Windows Server 2008 或 Windows Server 2003。 |
標頭 |
在 Esent.h 中宣告。 |
程式庫 |
使用 ESENT.lib。 |
Dll |
需要ESENT.dll。 |
Unicode |
實作為 JetExternalRestore2W (Unicode) 和 JetExternalRestore2A (ANSI) 。 |
另請參閱
JET_ERR
JET_LOGINFO
JET_PFNSTATUS
JET_RSTMAP
JetBeginExternalBackup
JetExternalRestore
JetInit