安裝並設定 BizTalk Server 之後,請設定備份 BizTalk Server 作業來備份您的數據。
從 BizTalk Server 2016 Feature Pack 2 開始,您可以將資料庫和記錄檔備份至 Azure Blob 儲存器帳戶。
概觀
備份 BizTalk Server (BizTalkMgmtDb) 作業包含下列步驟:
步驟 1 – 設定壓縮選項:在備份期間啟用或停用壓縮
步驟 2 – BackupFull:執行 BizTalk Server 資料庫的完整資料庫備份
步驟 3 – MarkAndBackUpLog:備份 BizTalk Server 資料庫記錄
步驟 4 – 清除備份歷程記錄:選擇保留備份記錄的時間長度
若要設定此作業,您必須:
識別主要和目的地 SQL Server 和其他備份選項
選擇 Windows 使用者帳戶來備份資料庫,並為此帳戶建立 SQL Server 登入
將 SQL Server 登入對應至 BizTalk Server 資料庫中 BTS_BACKUP_USERS 資料庫角色
確定 MSDTC 服務在所有節點上都處於作用中狀態。 否則,在來源節點與目的地節點之間新增連結的伺服器會失敗。
開始之前
某些組態和備份作業需要系統管理員 SQL Server 角色的成員資格。 若要備份 BizTalk Server 資料庫,請使用屬於 SQL Server 系統管理員伺服器角色成員的帳戶登入主伺服器。 BizTalk Server 組態會新增BTS_BACKUP_USERS資料庫角色。 您用來備份資料庫的用戶帳戶不需要對所有可能參與備份的 SQL Server 具有系統管理員(sysadmin SQL Server 角色)權限,但主伺服器除外。
決定您用來執行 BizTalk Server 資料庫備份的登入帳戶。 您可以使用本機帳戶,而且可以使用多個帳戶。 但建立一個專用的 Windows 網域用戶帳戶,通常更簡單且更安全。 您必須為此使用者設定 SQL Server 登入帳戶,而且使用者必須對應至所有參與備份程式的 SQL Server 登入,無論是主要(來源)或次要(目的地)伺服器。 將此使用者指派到您備份的每個 BizTalk Server 資料庫的 BizTalk BTS_BACKUP_USERS 資料庫角色。
備份 BizTalk Server 作業不會刪除過期的備份檔,因此您必須手動管理這些備份檔以節省磁碟空間。 建立資料庫的新完整備份之後,您應該將過期的備份檔移至封存存儲設備,以回收主要磁碟上的空間。 請參閱 SSIS 套件 來管理這些檔案。
BizTalk Server 不會將追蹤數據直接寫入 BizTalk 追蹤資料庫;相反地,它會快取 MessageBox 資料庫中的數據,然後將它移至 BizTalk 追蹤資料庫。 如果 MessageBox 數據遺失,某些追蹤數據也可能遺失。
先決條件
使用屬於系統管理員 SQL Server 角色成員的帳戶登入 SQL Server。
將 SQL Server Agent 服務設定為在網域用戶帳戶下執行(建議使用),雖然也可以使用本機帳戶,並在每個 SQL Server 實例上使用相應的用戶登入。
若要使用 Azure Blob 記憶體帳戶,您需要一 般用途的記憶體帳戶、Blob 記憶體帳戶內的容器、共用 存取簽 章(SAS),以及 使用 SAS 的 SQL 認證。 建立之後,請備妥 Blob 服務端點 URL,這類似於 https:// ourstorageaccount.blob.core.windows.net/containername。
小提示
如果您沒有使用 SAS 設定的現有 Blob 儲存帳戶,則 SAS PowerShell 腳本 可以建立帳戶和容器。 SQL Server 備份至 URL 提供概觀和特定步驟。
配置任務
在裝載 BizTalk 管理資料庫的 SQL Server 上,開啟 SQL Server Management Studio,然後連線到您的 SQL Server。
展開 SQL Server Agent,然後展開 作業。
以滑鼠右鍵按兩下 [備份 BizTalk Server ][BizTalkMgmtDb], 然後選取 [ 屬性]。 在作業屬性中,選取 [ 步驟]。
選取 [ 設定壓縮選項] 步驟,然後選取 [編輯]:
此步驟會呼叫
sp_SetBackupCompression
BizTalk 管理資料庫中的預存程式 (BizTalkMgmtDb) 來設定資料表上的adm_BackupSettings
值。 預存程式有一個參數: @bCompression。 根據預設,它會設定為 0 (備份壓縮已關閉)。 若要套用壓縮,請將值變更為 1:exec [dbo].[sp_SetBackupCompression] @bCompression = 1 /*0 - Do not use Compression, 1 - Use Compression */
請選擇 [確定]。
選取 BackupFull 步驟,然後選取 [編輯]。 在 [ 命令] 方塊中,更新參數值:
頻率:預設值 為 d (每日):這是建議的設定。 其他值包括 h (每小時)、 w (每周)、 m (每月),或 y (每年)。
名稱:預設值為 BTS。 名稱會當做備份檔名的一部分使用。
備份檔的位置:將「<目的地路徑>」取代為完整路徑(路徑必須包含單引號)至您要備份 BizTalk Server 資料庫的計算機和資料夾,或 Azure Blob 儲存器帳戶的 Blob 服務端點 URL。
這很重要
如果您輸入本機路徑,則每當備份 BizTalk Server 作業建立新檔案時,都必須手動將所有檔案複製到目的地系統上的相同資料夾。
若要使用遠端路徑,請輸入 UNC 共用,例如 \\<ServerName SharedDrive\,其中 ServerName>\>是您想要檔案的伺服器名稱,而 SharedDrive 是共用磁碟驅動器或資料夾<的名稱。<><>
透過網路備份數據受限於任何網路問題。 使用遠端位置時,請確認備份在備份 BizTalk Server 作業完成時成功。
若要避免數據遺失,請將備份磁碟設定為與資料庫數據和記錄磁碟不同的磁碟。 這是必要的,因此,如果數據或記錄磁碟失敗,您可以存取備份。
備份至 Azure Blob 帳戶時,請輸入 Blob 服務端點 URL 和容器名稱,這些名稱會列在 Azure 入口網站中的 Blob 服務屬性中。
選擇性。 在部分備份失敗后強制完整備份 (@ForceFullBackupAfterPartialSetFailure):預設值為 0。 如果日誌備份失敗,則直到達到下一個完整備份頻率間隔,才不會執行完整備份。 如果您想要在發生記錄備份失敗時執行完整備份,請將 取代為 1 。
選擇性。 執行備份程式的當地時間小時 (@BackupHour):預設值為 NULL。 備份作業未與 BizTalk Server 計算機的時區相關聯,且會在 UTC 時間 (0000) 午夜執行。 如果您想要在 BizTalk Server 計算機的時區的特定時間備份,請輸入從 0(午夜)到下午 23(下午 11 點)的整數值作為當地時間小時。
選擇性。 使用當地時間 (@UseLocalTime):告知程式使用當地時間。 默認值為 0,並使用目前的 UTC 時間 – GETUTCDATE() – 2007-05-04 01:34:11.933。 如果設定為 1,則會使用當地時間 – GETDATE() – 2007-05-03 18:34:11.933
在下列範例中,每日備份會在上午 2 點建立,並儲存在 m:\ 磁碟驅動器中:
exec [dbo].[sp_BackupAllFull_Schedule] 'd' /* Frequency */, 'BTS' /* Name */, 'm:\BizTalkBackups' /* location of backup files */, '0' /* 0 (default) or 1 ForceFullBackupAfterPartialSetFailure */, '2' /* local time hour for the backup process to run */
在下列範例中,每周備份會在午夜 UTC 時間建立,並儲存在 Azure Blob 帳戶中:
exec [dbo].[sp_BackupAllFull_Schedule] 'w' /* Frequency */, 'BTS' /* Name */, 'http://yourstorageaccount.blob.core.windows.net/yourcontainer/' /* location of backup files */, '1' /* 0 (default) or 1 ForceFullBackupAfterPartialSetFailure */
請選擇 [確定]。
選取 MarkAndBackupLog 步驟,然後選取 [ 編輯]。 在 [ 命令] 方塊中,更新參數值:
@MarkName:這是備份檔的命名慣例的一部分:<伺服器名稱>_資料庫名稱>_<Log_< 記錄標記名稱 >_<Timestamp>
@BackupPath:計算機和資料夾的完整目的地路徑(包括單引號),以儲存 BizTalk Server 資料庫記錄,或 Azure Blob 記憶體帳戶和容器。 目的地<路徑>也可以是本機或另一部伺服器的 UNC 路徑。
MarkAndBackupLog 步驟會標示要備份的記錄,然後備份它們。
這很重要
為了避免 潛在的數據遺失 和 效能改善, <目的地路徑> 應該設定為不同的計算機或硬碟,不同於用來儲存原始資料庫記錄的內容。
請選擇 [確定]。
選取 [清除備份歷程記錄] 步驟,然後選取 [ 編輯]。 在 [ 命令] 方塊中,更新參數值:
@DaysToKeep:預設值為 14天。 決定備份記錄保留在數據表中的
Adm_BackupHistory
時間長度。 定期清除備份歷程記錄有助於將數據表維持Adm_BackupHistory
為適當的大小。選擇性。 @UseLocalTime:告知程式使用當地時間。 預設值為 0。 它會使用目前的 UTC 時間 – GETUTCDATE() – 2007-05-04 01:34:11.933。 如果設定為 1,則會使用當地時間 – GETDATE() – 2007-05-03 18:34:11.933
exec [dbo].[sp_DeleteBackupHistory] @DaysToKeep=14, @UseLocalTime =1
備註
此步驟 不會 從目的地路徑刪除備份檔。
選取 [確定 ] 並關閉所有屬性視窗。
選擇性。 變更備份排程。 請參閱 如何排程備份 BizTalk Server 作業。
備註
備份 BizTalk Server 作業會在您第一次設定時執行。 根據預設,在後續執行時,備份 BizTalk Server 作業會每天完成一次完整備份,並每隔 15 分鐘完成一次記錄備份。
以滑鼠右鍵按兩下 [備份 BizTalk Server ] 作業,然後選取 [ 啟用]。 狀態應該會變更為 [成功]。
執行Backup_Setup_All_Procs.sql 和 LogShipping_Destination_Logic.sql
BizTalk Server 2016 Feature Pack 2 (FP2) 使用了在\Program Files (x86)\Microsoft BizTalk Server *your version*\Schema
中的 Backup_Setup_All_Procs.sql 和 LogShipping_Destination_Logic.sql 腳本。
如果您的備份 BizTalk Server 作業已設定,而且您想要切換至使用 Azure Blob(而非磁碟),則也請執行下列動作:
在 SQL Server 上,針對備份 BizTalk Server 作業所備份的所有自訂資料庫執行
Backup_Setup_All_Procs.sql
腳本。 根據預設,FP2 會自動更新 BizTalk 資料庫;它不會更新任何自定義資料庫(BizTalkMgmtDb 數據表中的adm_OtherBackupDatabases
那些資料庫)。備份自定義資料庫 提供有關自訂資料庫的詳細數據。
如果您使用 記錄傳送,請在 SQL Server 內的目的地系統上執行LogShipping_Destination_Logic.sql腳本。 如果您未使用記錄傳送,則請勿執行此腳本。
設定記錄傳送的目的地系統 提供有關目的地系統的更多詳細資訊。
sp_ForceFullBackup預存程式
BizTalkMgmtDb 資料庫中的sp_ForceFullBackup預存程式可用來執行數據和記錄檔的特定完整備份。 預存程式會以值 1 更新adm_ForceFullBackup資料表。 下次執行備份 BizTalk Server 作業時,就會建立完整的資料庫備份集。
後續步驟
設定記錄傳送的目的地系統
排程備份 BizTalk Server 作業
Azure 儲存帳戶
SQL Server 備份至 URL