JetBackupInstance 函式
適用於: Windows |Windows Server
JetBackupInstance 函式
JetBackupInstance 函式會執行實例的串流備份,包括所有附加的資料庫到目錄。 使用引擎支援的多個備份方法,這是最簡單的且最封裝的函式。
Windows XP:JetBackupInstance 是在 Windows XP 中引進的。
JET_ERR JET_API JetBackupInstance(
__in JET_INSTANCE instance,
__in JET_PCSTR szBackupPath,
__in JET_GRBIT grbit,
__in JET_PFNSTATUS pfnStatus
);
參數
instance
要備份之資料庫的實例。
szBackupPath
儲存備份的目錄。 如果備份路徑是 NULL,則使用 函式會盡可能截斷記錄。
grbit
指定下列選項之零或多個位的群組。
值 |
意義 |
---|---|
JET_bitBackupAtomic |
建立資料庫的完整備份。 這可讓新備份失敗時,保留相同目錄中的現有備份。 |
JET_bitBackupIncremental |
建立增量備份,而不是完整備份。 這表示只會備份自上次完整備份或增量備份之後建立的記錄檔。 |
JET_bitBackupSnapshot |
保留供未來使用。 |
pfnStatus
JET_PFNSTATUS回呼函式的指標,提供備份作業進度的通知資訊。
傳回值
此函式會傳回具有下列其中一個傳回 碼的 JET_ERR 數據類型。 如需可能 ESE 錯誤的詳細資訊,請參閱可延伸 儲存體 引擎錯誤和錯誤處理參數。
傳回碼 |
描述 |
---|---|
JET_errSuccess |
作業已成功完成。 |
JET_errBackupInProgress |
相同實例的備份正在進行中。 不允許同時進行多個備份。 |
JET_errBackupNotAllowedYet |
實例尚未準備好進行備份,因為它正在初始化。 |
JET_errClientRequestToStopJetService |
作業無法完成,因為對 JetStopServiceInstance 的呼叫已停止與會話相關聯的實例上的所有活動。 |
JET_errInstanceUnavailable |
作業無法完成,因為與會話相關聯的實例發生嚴重錯誤,因此需要撤銷所有數據的存取權,以保護該數據的完整性。 Windows XP: 這個傳回值是在 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 |
同一個會話不能同時用於一個以上的線程。 Windows XP: 這個傳回值是在 Windows XP 中引進的。 |
JET_errTermInProgress |
作業無法完成,因為與會話相關聯的實例正在關閉。 |
函式傳回成功之後,在備份目錄中,備份目錄中所有還原到備份時所需的檔案都會存在。 如果這是完整備份,檔案會是資料庫檔案,以及將資料庫帶入一致狀態所需的記錄檔。 如果這是增量備份,則只會將記錄檔新增至目錄,但現有的檔案(資料庫和記錄檔)以及新的記錄檔將可以還原,並將資料庫帶回備份時的狀態。
作為備份的副作用,將截斷不再需要的記錄檔。
同時,資料庫標頭會隨著上次備份發生時的資訊一起更新。
失敗時,備份目錄目的地中不會有任何檔案,因此無法還原。 同時,將不會截斷目前的記錄檔。
備註
備份的不同步驟會產生事件記錄檔專案,包括檔名、記錄截斷和備份的最終結果。
只有在進行完整備份之後,才能進行增量備份。 此外,只有在循環記錄關閉時,才能進行增量備份。 建議備份目錄不應該包含其他檔案,然後是先前成功備份所牽涉到備份或新增的檔案。
除非為 實例設定參數 JET_paramCreatePathIfNotExist ,否則備份目錄應該存在。 如需詳細資訊,請參閱 系統參數。
備份會在所有已使用的資料庫頁面上執行總和檢查碼驗證,並從Windows Server 2003 開始,在記錄檔上執行檢查碼驗證。 這可讓您評估資料庫的健康情況,即使是在正常作業期間未讀取的頁面也一般。 如果遇到任何這類損毀,備份將會失敗。
在備份期間,目前的記錄檔將會完成,我們將開始產生新的記錄檔。 這可允許複製所需的記錄檔,因為最後一個需要的記錄檔將不再使用。
強烈建議不要將備份用於備份和在引擎層級還原以外的其他用途。 這會在備份和還原作業期間將取得錯誤的變更降到最低。
需求
需求 | 值 |
---|---|
用戶端 |
需要 Windows Vista 或 Windows XP。 |
Server |
需要 Windows Server 2008 或 Windows Server 2003。 |
頁首 |
在 Esent.h 中宣告。 |
程式庫 |
使用 ESENT.lib。 |
Dll |
需要 ESENT.dll。 |
Unicode |
實作為 JetBackupInstanceW (Unicode) 和 JetBackupInstanceA (ANSI)。 |
另請參閱
JET_ERR
JET_GRBIT
JET_INSTANCE
JET_PFNSTATUS
JetRestore
JetRestore2
JetRestoreInstance
JetStopServiceInstance
系統參數