共用方式為


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擁有的明確genLowgenHigh參數,以及基底記錄檔名稱,而不是假設的記錄基底名稱 「edb」。

szTargetInstanceName

此參數已被取代,而且無法在您的應用程式中使用。

szTargetInstanceLogPath

如果您想要向前復原的記錄位置位於作用中記錄集或實例中,則向前復原記錄的路徑。 如果目標實例使用迴圈記錄,則不應該指定這個值。

szTargetInstanceCheckpointPath

如果在此目標上沒有作用中的實例,則為復原期間檢查點的路徑。 如果目標實例使用迴圈記錄,則不應該指定這個值。

pfn

狀態回呼,報告復原進度。

傳回值

此函式會傳回具有下列其中一個傳回碼 的 JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸儲存引擎錯誤錯誤處理參數

傳回碼

Description

JET_errSuccess

作業已成功完成。

JET_errBadRestoreTargetInstance

指定的 szTargetInstanceLogPath 不屬於已初始化的實例。 此錯誤只會在 Windows XP 和更新版本中傳回。

JET_errDatabaseCorrupted

這表示資料庫已損毀或無法辨識的檔案。

JET_errEndingRestoreLogTooLow

如果 szBackupLogPath中的記錄檔有一個記錄產生,則會傳回此錯誤,其記錄產生高於 genHighpLogInfo.ulGenHigh中指定的記錄。

JET_errFileNotFound

作業失敗,因為它無法開啟要求的檔案,因為它在指定的路徑找不到。

JET_errInvalidParameter

提供的其中一個參數包含非預期的值,或包含與另一個參數的值結合時沒有意義的值。 當szTargetCheckpointPathszTargetInstanceLogPath未同時指定或未指定兩者時,JetExternalRestore可能會發生這種情況。 也就是說,它們必須相符,而且必須同時指定或兩者皆未指定。

JET_errInvalidPath

作業失敗,因為找不到指定的路徑。

JET_errOutOfMemory

作業失敗,因為無法配置足夠的記憶體來完成。

JET_errRestoreOfNonBackupDatabase

如果還原期間指定的資料庫檔案不是使用外部備份進行備份的資料庫,就會傳回此錯誤。

JET_errRunningInOneInstanceMode

資料庫引擎無法在單一實例模式中執行外部還原或硬式復原。 此錯誤只會在 Windows XP 和更新版本中傳回。

JET_errStartingRestoreLogTooHigh

如果 szBackupLogPath中的其中一個記錄檔低於 genLowpLogInfo.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