還原資料庫 - BizTalk Server
您必須將所有資料庫還原為相同的標記,以確保資料庫間的交易狀態一致。 (請參閱 Marked Transactions, Full Backups, and Log Backups)。
如果目的系統中只有一個伺服器,請確認已還原所有記錄檔備份集 (除了最新的記錄檔備份集以外)。 (請參閱 Viewing the History of Restored Backups)。 如果尚未還原所有記錄檔備份集,且目前沒有執行還原作業,請執行還原作業 (如果需要,請以手動執行)。 如果有可還原的未完成備份集,此作業會處理這些備份集,直到全部都還原為止。
如果目的系統中有多部伺服器,必須將所有伺服器還原為相同的備份集。 檢視每部伺服器上的還原記錄,同時確認所有伺服器上最近所還原的記錄檔備份集皆相同。 否則,您必須在每部需要還原最新記錄檔備份集的伺服器上,手動執行還原作業。
當所有伺服器都位在相同的備份集後,便可手動還原最後的備份集。
adm_BackupHistory 資料表是來源系統中記錄檔傳送程序的中央歷程記錄點。 所有執行的備份工作都會記錄到這個資料表中。 您目的系統中的所有伺服器都會讀取這個資料表,以接收執行其還原工作所需的資訊。
開始之前
- 如果您是從備份還原「BAM 主要匯入」資料庫,那麼您也應該使用比 BAM 主要備份還舊的備份,來還原「BAM 封存」、「BAM 星狀結構描述」及「BAM 分析」資料庫。 (請參閱 Backing Up and Restoring BAM)。
- 如果您要從「備份 BizTalk Server」工作放置來源資料庫之完整或記錄檔備份的位置移動它們,就應該透過在目的系統的 bts_LogShippingDatabases 資料表中,將 LogFileLocation 或 DBFileLocation 設定為目的系統應該讀取完整/記錄檔備份檔案的新位置,更新該資料庫的相關聯資料列。 當您執行 bts_ConfigureBtsLogShipping 預存程序時,便會填入此資料表。 依照預設,會將這些資料行設為空值,這表示目的系統應該從 adm_BackupHistory 資料表中儲存的位置讀取備份檔案。
- 請務必在安全的位置保留備份檔案的複本。 即使您擁有記錄檔備份,也無法在沒有備份檔案的情況下還原資料庫。
必要條件
使用系統管理員SQL Server角色成員的帳戶登入SQL Server。
還原資料庫
在目的地系統上,開啟SQL Server Management Studio,然後連線到您的SQL Server。
展開[SQL Server Agent],然後展開 [作業]。 執行下列動作:
在 BTS 記錄傳送 - 取得備份記錄 作業上按一下滑鼠右鍵,然後選取 [停用] 。 狀態會變更為「成功」。
在 BTS 記錄傳送 - 還原資料庫 作業上按一下滑鼠右鍵,然後選取 [停用] 。 狀態會變更為「成功」。
在 BTS 檔記錄傳送 - 還原為標示 上按一下滑鼠右鍵,然後選取 [從下列步驟啟動作業] 。 選取 [步驟 ID 1] ,然後選取 [開始] 。
當狀態變更為[成功] 時,SQL Server Agent作業和BizTalk Server資料庫會還原至目的地系統。
重要
若 狀態 為「錯誤」,請選取 [訊息] 欄位中的連結判斷原因。 這些作業的狀態必須都是成功才能繼續。
在您編輯 SampleUpdateInfo.xml 檔案的BizTalk Server上,開啟命令提示字元,然後移至:
32 位電腦:
%SystemDrive%\Program Files\Microsoft BizTalk Server <version>\Schema\Restore
64 位電腦:
%SystemDrive%\Program Files (x86)\Microsoft BizTalk Server <version>\Bins32\Schema\Restore
在命令提示字元中,輸入:
cscript UpdateDatabase.vbs SampleUpdateInfo.xml
注意
使用 SQL Server 2016 或更新版本環境時,您可能需要在 UpdateDatabase.vbs 中使用 MSOLEDBSQL。 在 UpdateDatabase.vbs 中,移至
conn.Provider = "SQLOLEDB"
。 將SQLOLEDB
變更為MSOLEDBSQL
。 否則,腳本可能會失敗,並出現錯誤:SQL Server: Invalid connection string attribute
。這個指令碼會更新所有儲存其他資料庫位置相關資訊的資料表。
重要
- 您只須在 BizTalk 群組中的 任一部 伺服器上執行 UpdateDatabase.vbs 即可。
- 在 64 位元電腦上,您必須從 64 位元命令提示字元中執行 UpdateDatabase.vbs。 請注意,64 位電腦上的預設命令提示字元是 64 位命令提示字元,且位於 %SystemDrive%\windows\System32\cmd.exe。
- BizTalk EDI 引擎在還原資料庫時,不需要對 SampleUpdateInfo.xml 進行任何自己的修改。 它依賴 BizTalkDTADb 資料庫的連線能力來存取 EDI 資料表。
將編輯的 SampleUpdateInfo.xml 檔案複製到此 BizTalk 群組中執行BizTalk Server的每部電腦上下列資料夾:
32 位電腦:複製到
%SystemDrive%\Program Files\Microsoft BizTalk Server <version>\Schema\Restore
64 位電腦:複製到
%SystemDrive%\Program Files (x86)\Microsoft BizTalk Server <version>\Bins32\Schema\Restore
在BizTalk Server群組中的每個電腦上,開啟命令提示字元,然後移至:
32 位電腦:
%SystemDrive%\Program Files\Microsoft BizTalk Server <version>\Schema\Restore
64 位電腦:
%SystemDrive%\Program Files (x86)Microsoft BizTalk Server <version>\Bins32\Schema\Restore
在命令提示字元中,輸入:
cscript UpdateRegistry.vbs SampleUpdateInfo.xml
這個指令碼會更新所有儲存其他資料庫位置相關資訊的登錄項目。
重要
- 在 BizTalk 群組中的 每部 伺服器上執行 UpdateRegistry.vbs。
- 在 64 位元電腦上,您必須從 64 位元命令提示字元中執行 UpdateRegistry.vbs。 請注意,64 位元電腦上的預設命令提示字元是 64 位元的命令提示字元,位於 %systemdrive%\windows\system32\cmd.exe。
重新開機所有BizTalk Server服務。 (請參閱 How to Start, Stop, Pause, Resume, or Restart BizTalk Server Services)。
還原資料庫後,請重新啟動 Windows Management Instrumentation 服務。
開啟 services.msc。
在 [Windows Management Instrumentation] 上按一下滑鼠右鍵,然後按一下 [重新啟動] 。
開啟 [BizTalk Server 管理] 。 執行下列動作:
在 [BizTalk 群組] 上按一下滑鼠右鍵,然後選取 [移除] 。
在 [BizTalk Server 管理] 節點上按一下滑鼠右鍵,然後選取 [連接至現有的群組] 。
在 [SQL Server 名稱] 中,選取裝載 BizTalk 管理資料庫之 SQL Server 執行個體的名稱。 當您選取SQL Server實例時,BizTalk Server會自動偵測該電腦上的BizTalk Server資料庫。
在 [資料庫名稱] 中選取您的 BizTalk 管理資料庫 (預設是BizTalkMgmtDb ),然後選取 [確定] 。
BizTalk Server管理主控台會將 BizTalk 群組新增至管理主控台。
您的BizTalk Server現在已還原,且應該正在執行。 接下來,設定備份BizTalk Server作業,以開始將備份寫入新的目的地伺服器。 您也應該重新設定新的目的系統。
重要
- 如果您使用規則引擎,在還原資料庫之後,您必須重新開機BizTalk Server群組中每部伺服器上的規則引擎更新服務。 (請參閱 How to Start, Stop, Pause, Resume, or Restart BizTalk Server Services)。
- 如果您使用 BAM,現在就是還原 BAM 資料庫的時間。 (請參閱 Backing Up and Restoring BAM)。
- 如果您要移動資料庫並使用 BizTalk EDI 或 RosettaNet 加速器,則某些 SQL 埠可能會針對 BizTalk 資料庫進行設定。 匯出系結、搜尋舊的資料庫連結,並據以取代資料庫連結。