JetBackup 函式
適用于: Windows |Windows Server
JetBackup 函式
JetBackup函式會在資料庫上線時建立資料庫的備份。 此函式主要用於與 Windows 2000 和更早版本資料庫引擎的回溯相容性,其中只允許一個資料庫的實例。 在此情況下,使用中實例是備份的實例。
JET_ERR JET_API JetBackup(
__in JET_PCSTR szBackupPath,
__in JET_GRBIT grbit,
__in JET_PFNSTATUS pfnStatus
);
參數
szBackupPath
儲存備份的目錄。 如果備份路徑為 Null,函式會盡可能截斷記錄。
grbit
指定下列選項之零或多個位群組。
值 |
意義 |
---|---|
JET_bitBackupAtomic |
建立資料庫的完整備份。 如果新的備份失敗,這可保留相同目錄中的現有備份。 |
JET_bitBackupIncremental |
建立增量備份,而不是完整備份。 這表示只會備份上次完整備份或增量備份後的記錄檔。 |
pfnStatus
JET_PFNSTATUS回呼函式的指標,提供備份作業進度的相關通知資訊。
傳回值
函式會傳回其中一個 JET_ERR 錯誤碼。 以下是最常傳回的 。 (如需此 API 錯誤的完整清單,請參閱 可延伸儲存引擎錯誤碼。)
傳回碼 |
描述 |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errBackupInProgress |
相同實例的備份已在進行中。 不允許同時進行多個備份。 |
JET_errBackupNotAllowedYet |
實例尚未準備好進行備份,因為它正在初始化。 |
JET_errClientRequestToStopJetService |
作業無法完成,因為呼叫 JetStopService時,與會話相關聯的實例上的所有活動都已停止。 |
JET_errInstanceUnavailable |
作業無法完成,因為與會話相關聯的實例發生嚴重錯誤,需要撤銷所有資料的存取權,以保護該資料的完整性。 Windowsxp: 這個傳回值是在 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 |
同一個會話不能同時用於一個以上的執行緒。 Windowsxp: 這個傳回值是在 Windows XP 中引進。 |
JET_errTermInProgress |
作業無法完成,因為與會話相關聯的實例正在關閉。 |
如果函式成功,備份目錄中將會包含備份目錄中最多還原所需的所有檔案。 如果這是完整備份,檔案會是資料庫檔案,以及將資料庫帶入一致狀態所需的記錄檔。 如果這是增量備份,則只會將記錄檔新增至目錄,但現有的檔案 (資料庫和記錄檔) ,以及新的記錄檔,將能夠還原,讓資料庫回到備份開始時的狀態。
做為備份的副作用,不再需要的記錄檔將會遭到截斷。
同時,資料庫標頭將會隨著上次備份發生時的資訊進行更新。
如果函式失敗,備份目錄目的地中不會有任何檔案,因此無法還原。 同時,不會截斷目前的記錄檔。
備註
備份的不同步驟會產生事件記錄檔專案,包括檔案名、記錄截斷,以及備份的最終結果。
只有在建立完整備份之後,才能進行增量備份。 此外,只有在迴圈記錄已關閉時,才能進行增量備份。 建議備份目錄不應包含備份中使用的檔案,或先前成功備份所新增的檔案。
除非為 實例設定參數 JET_paramCreatePathIfNotExist ,否則備份目錄應該存在。 如需詳細資訊,請參閱 系統參數。
備份也會在所有已使用的資料庫頁面上以及從 Windows Server 2003 開始,在記錄檔上執行總和檢查碼驗證。 這可讓您估計資料庫的健康情況,即使是在正常作業期間未讀取的頁面也一般。 如果遇到任何這類損毀,備份將會失敗。
在備份期間,將會完成目前的記錄檔,並產生新的記錄檔。 如此一來,所有必要的記錄檔都可以複製,因為目前的記錄將不再使用中。
強烈建議不要將備份用於引擎層級的備份和還原以外的任何用途。 這會將備份和還原作業期間發生錯誤的機會降到最低。
規格需求
需求 | 值 |
---|---|
用戶端 |
需要 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 |
實作為 JetBackupW (Unicode) 和 JetBackupA (ANSI) 。 |
另請參閱
可延伸儲存引擎檔案
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_PFNSTATUS
JetRestore
JetRestore2
JetRestoreInstance
JetStopService
系統參數