JetRestore2 函式
適用于: Windows |Windows Server
JetRestore2 函式
JetRestore2會還原並復原實例的串流備份,包括所有附加的資料庫。 此函式主要適用于與 Windows 2000 和舊版資料庫引擎的回溯相容性,其中只允許一個資料庫實例。 在此情況下,使用中實例是還原的實例。
JET_ERR JET_API JetRestore2(
__in JET_PCSTR sz,
__in_opt JET_PCSTR szDest,
__in JET_PFNSTATUS pfn
);
參數
深圳
備份所在的資料夾。 備份應該已經使用 JetBackup API 產生。
szDest
將複製和復原備份組中資料庫檔案的資料夾名稱。 如果此設定為 Null (,這是舊版 JetRestore) 的情況,資料庫檔案將會複製並復原到其原始位置。
pfn
函式的選擇性指標,該函式會呼叫為還原作業進度的通知資訊。
傳回值
此函式會傳回具有下列其中一個傳回碼 的JET_ERR 資料類型。 如需可能 ESE 錯誤的詳細資訊,請參閱 可延伸的儲存引擎錯誤 和 錯誤處理參數。
傳回碼 |
Description |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errAlreadyInitialized |
作業失敗,因為此實例的引擎已經初始化。 |
JET_errInvalidLogSequence |
備份組和目前記錄檔路徑中的記錄檔集不相符。 |
JET_errInvalidParameter |
提供的其中一個參數包含非預期的值,或包含與另一個參數值結合時沒有意義的值。 當引擎處於多重實例模式且釘選是指不正確實例 Windows XP 和更新版本時, JetRestoreInstance 會傳回此錯誤。 |
JET_errInvalidPath |
作業失敗,因為提供的某些路徑 (備份路徑、目的地路徑、實例的記錄檔或系統路徑) 無效。 |
JET_errPageSizeMismatch |
作業失敗,因為引擎設定為使用 JetSetSystemParameter 的資料庫頁面大小 (, JET_paramDatabasePageSize) 不符合 用來建立交易記錄檔的資料庫頁面大小或與交易記錄檔相關聯的資料庫。 |
JET_errRunningInMultiInstanceMode |
作業失敗,因為參數隱含單一實例模式 (Windows 2000 相容性模式) ,而且引擎已在多重實例模式中。 |
成功時,備份組中的資料庫檔案將會還原到其位置,而復原將會執行,讓資料庫處於全新的交易一致性狀態。 如果這類檔案存在,復原將會從備份組重新執行記錄檔,以及記錄路徑中的記錄檔。 此復原會導致檢查點檔案、交易記錄檔,以及這些交易記錄檔所參考的任何資料庫變更。
失敗時,實例會維持未初始化的狀態。 嘗試初始化還原和復原資料庫時,交易記錄檔和這些交易記錄檔所參考的任何資料庫狀態可能會有所變更。
備註
復原程式會在備份期間重新建構附加至實例的資料庫,並將變更儲存回資料庫檔案。 結果將會是交易一致的資料庫。 可能的話,它也會儲存至資料庫,因為備份是在交易記錄中找到的最新變更之前所完成的變更。 如果由於建立備份以來產生的交易記錄仍存在於交易記錄目錄中,就可能發生這種情況。 請注意,如果實例已啟用迴圈記錄,則產生的交易記錄會重複使用,讓復原能夠儲存備份時間所發生的變更。 在任何情況下,如果要對資料庫重新執行交易記錄檔的數目很大,此程式可能需要很長的時間。
在針對該實例呼叫JetInit之前,必須先在 實例上呼叫JetRestore函式。
由於在復原期間會使用大量資料庫頁面和交易記錄,因此這些函式可能會傳回整個一系列錯誤。 這類錯誤可能是暫時性資源配置失敗,例如Jet_errOutOfMemory到代表實體損毀的錯誤,例如JET_errReadVerifyFailure、JET_errLogFileCorrupt或JET_errBadPageLink。 這些錯誤幾乎一律是由硬體問題所造成,因此無法避免。 檔案管理錯誤最常以JET_errMissingLogFile或JET_errAttachedDatabaseMismatch或JET_errDatabaseSharingViolation或JET_errInvalidLogSequence的形式顯示。 應用程式可避免這些錯誤。 應用程式必須小心保護這些檔案的存放庫,以防止外部強制操作,例如使用者或其他應用程式。 如果應用程式想要完全終結實例,則必須刪除與實例相關聯的所有檔案。 其中包括檢查點檔案、交易記錄檔,以及附加至 實例的任何資料庫檔案。
復原的不同步驟會產生事件記錄檔專案,包括交易記錄重新執行進度和還原的最終結果。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 Windows Vista、Windows XP 或 Windows 2000 Professional。 |
Server |
需要 Windows Server 2008、Windows Server 2003 或 Windows 2000 Server。 |
標頭 |
在 Esent.h 中宣告。 |
程式庫 |
使用 ESENT.lib。 |
Dll |
需要ESENT.dll。 |
Unicode |
實作為 JetRestore2W (Unicode) 和 JetRestore2A (ANSI) 。 |
另請參閱
JET_ERR
JET_GRBIT
JET_INSTANCE
JetBackup
JetBackupInstance
JetCreateInstance
JetInit
JetRestore
JetRestoreInstance
JetSetSystemParameter