共用方式為


向外擴充 BizTalk Server 資料庫

若要為BizTalk Server資料庫提供高可用性,請設定在 Windows 叢集中執行SQL Server的兩部電腦。 這些電腦可以在主動/主動、主動/被動或主動/主動/被動 (中執行,需要三部電腦) 備援設定,而且可以將資料儲存在共用磁片磁碟機 (,例如 RAID 1+0 SCSI 磁片陣列) 或儲存區域網路 (SAN) 。

若 SQL Server 服務因故無法使用,資料庫叢集會將資源從主動電腦轉移到被動電腦。 在此容錯移轉程序期間,BizTalk Server 服務執行個體發生資料庫連接失敗並自動重新啟動以重新連接到資料庫。 正在運作的資料庫電腦 (先前為被動電腦) 會在容錯移轉期間獲得資源後,開始處理資料庫連接。

叢集BizTalk Server資料庫會在叢集BizTalk Server Databases2中討論。 本節著重于相應放大BizTalk Server資料庫以提供高可用性。

提供 BizTalk MessageBox 資料庫的高可用性

本節提供設定 BizTalk MessageBox 資料庫以取得高可用性的相關資訊。

執行多個 MessageBox 資料庫

若要增強BizTalk Server資料庫的延展性,並解決 MessageBox 資料庫SQL Server電腦上的高 CPU 使用率,您可以設定BizTalk Server,以跨多個 MessageBox 資料庫儲存資料。 當您執行「組態精靈」時,就會建立第一個 MessageBox 資料庫。 此 MessageBox 資料庫是主要 MessageBox 資料庫。 在 BizTalk Server 部署中有單一主要 MessageBox 資料庫。 主要 MessageBox 資料庫包含主要訂閱資訊,並將訊息路由至適當的 MessageBox 資料庫。 一般而言,您想要將主要 MessageBox 資料庫專用於只執行路由,並讓其他 MessageBox 資料庫執行處理。 若要讓 MessageBox 資料庫只執行路由,請從 BizTalk 管理主控台中的 MessageBox 屬性中選取 [停用新郵件發行集 ]。

MessageBox 資料庫處理流程的範例如下:

  1. 當主要 MessageBox 資料庫收到新啟動訊息時 (商務程序的全新執行個體或訂閱訊息),主要 MessageBox 資料庫會將啟動訊息分散至下一個可用的 MessageBox 資料庫。 例如,若您有一個主要 MessageBox 資料庫以及兩個 MessageBox 資料庫,則主要 MessageBox 資料庫會將第一個啟動訊息路由至 MessageBox 資料庫 1,第二個啟動訊息路由至 MessageBox 資料庫 2,第三個啟動訊息路由至 MessageBox 資料庫 1,以此輪流模式循環。 主要 MessageBox 資料庫使用內建邏輯來平衡負載,不需要其他負載平衡機制。

  2. 在主要 MessageBox 資料庫路由啟動訊息至特定 MessageBox 資料庫 (例如,MessageBox 資料庫 1) 後,商務程序就會進入記憶體並執行。

  3. 如果商務程式必須等候訊息,且等候時間超過數秒,則商務程式會保存回 MessageBox 資料庫 1。 商務程式正在等候相互關聯訊息。

  4. 當相互關聯訊息抵達主要 MessageBox 資料庫時,Message Engine 會在 MessageBox 資料庫的資料庫中執行查閱作業,其中包含此範例中相互關聯訊息的狀態 (MessageBox 1) 。 master MessageBox 資料庫會將訊息傳遞至包含商務程式的 MessageBox 資料庫。

  5. 商務程式會帶回記憶體,以繼續處理直到完成或必須等候另一個相互關聯訊息為止。

    BizTalk Server 會將所有狀態儲存在 MessageBox 資料庫中,而每個 MessageBox 資料庫包含不同商務程序的狀態資訊。 為了獲得可靠性,您必須叢集所有 MessageBox 資料庫,包括主要和次要 MessageBox 資料庫。

    若要設定多個 MessageBox 資料庫,您可以使用 BizTalk Server 管理主控台來新增執行SQL Server的電腦。 從管理的觀點而言,您只需新增 MessageBox 資料庫。 BizTalk Server 會自動處理啟動訊息的循環散佈,並將相互關聯訊息傳送至正確的 MessageBox 資料庫。

    如果您在環境中設定多個 MessageBox 資料庫,您應該為BizTalk Server群組建立至少三個 MessageBox 資料庫,而且應該停用主要 MessageBox 資料庫的訊息發行集。 因為新增額外的 MessageBox 資料庫會造成主要 MessageBox 資料庫在 MessageBox 資料庫之間路由傳送訊息的額外負荷而提出此建議。 如果您只設定兩個 MessageBox 資料庫,則其他 MessageBox 資料庫取得的大部分優點都會因主要 MessageBox 資料庫用於訊息路由而耗用的額外負荷所位移。

重要

BizTalk Server 會將所有狀態儲存在 MessageBox 資料庫中,而每個 MessageBox 資料庫包含不同商務程序的狀態資訊。 為了獲得可靠性,您必須叢集所有 MessageBox 資料庫,包括主要和次要 MessageBox 資料庫。

為多個 MessageBox 資料庫提供高可用性

雖然將 MessageBox 資料庫新增至您的BizTalk Server部署可改善延展性,但不會提供高可用性,因為每個 MessageBox 資料庫都是唯一且獨立的,而且可能是BizTalk Server環境的單一失敗點。 新增備援包含為每個 MessageBox 資料庫設定伺服器叢集。 BizTalk Server 會將資料分散在多個 MessageBox 資料庫之間,這樣資料庫就不會共用資料或是在沒有伺服器叢集的情況下提供備援。

為 BizTalk 追蹤資料庫提供高可用性

視特定部署的需求而定,您可能會藉由將 BizTalk 追蹤資料庫隔離到個別的 SQL Server 電腦上,或建立主控件追蹤專用的不同 BizTalk 主控件,來提升追蹤效能。 下圖顯示具有兩個主機實例和叢集資料庫的專用追蹤主機。

相應放大追蹤資料庫

若您的部署具有高輸送量且需要為這些訊息追蹤許多資料,追蹤的額外負擔可能會耗用許多執行 SQL Server 電腦的資源。 如果發生這種情況且傳入訊息的速率很高,BizTalk Server到達無法處理新訊息的點,因為追蹤訊息所需的資源大於執行其他BizTalk Server (元件所需的資源,例如接收訊息,並將其保存到 MessageBox 資料庫) 。

若要改善效能和安全性,建議您指派不包含任何其他項目 (例如,接收位置、協調流程或管線) 的主控件專供追蹤之用,並停用接收、處理和傳送主控件的追蹤。 若要為追蹤主控件提供高可用性,請為追蹤主控件建立一個以上的主控件執行個體。 請參閱 建立新的主機

對於每個 MessageBox 資料庫,BizTalk Server只會使用一個追蹤主機實例,將訊息從 MessageBox 資料庫移至 BizTalk 追蹤資料庫, (BizTalkDTADb) 。 若其他電腦執行追蹤主控件的執行個體,則 BizTalk Server 會自動將每個 MessageBox 資料庫的處理向外擴充至不同的追蹤主控件執行個體。 若 MessageBox 資料庫數目大於追蹤主控件執行個體數目,則一或多個追蹤主控件執行個體將服務一個以上的 MessageBox 資料庫。

若要提供 BizTalk 追蹤資料庫的高可用性,請使用 Windows 叢集來設定兩部以主動/被動組態執行 SQL Server 的資料庫電腦。

為 BAM 資料庫提供高可用性

商務活動監視 (BAM) 可讓您瞭解與 IT 實作無關的商務程式,或跨異質 IT 實作。 BAM SQL Server 資料庫 (BAM 星狀結構描述資料庫、BAM 主要匯入資料庫以及 BAM 封存資料庫) 與 BAM 分析資料庫會儲存異於操作監控資料的商務活動資料。 下圖顯示 BAM 資料庫基礎結構。

BAM 資料庫基礎結構

若要確定 BAM 基礎結構為高度可用,請執行下列動作:

  • 叢集 BAM 主要匯入資料庫和 BAM 分析資料庫。 BAM 主要匯入資料庫是商務活動監控系統的中心。 因此,使用 Windows 叢集讓此資料庫高度可用,並依照接下來的兩個建議以避免此資料庫被填滿,就很重要。 BAM 分析資料庫是一種 Analysis Services 資料庫,它儲存了商務分析師用以建立活動彙總和 OLAP Cube 的資料,因此,此資料庫的任何停機都會影響其產能。 雖然您不需要叢集 BAM 封存資料庫,但建議您在SQL Server Integration Services (SSIS) 套件執行時監視事件記錄檔中是否有錯誤,以確保資料已成功傳輸,以及監視資料庫的大小,以便在填滿資料庫之前加以取代。

  • 定義線上視窗。 為了提升效能並避免停機,BAM 會根據活動完成時的時間戳記,將資料分割到 BAM 主要匯入資料庫中的資料。 BAM 藉由定期將完成的資料表與另一個格式完全相同的空資料表交換來完成此項工作。 BAM 在執行此動作後,其他完成的活動就會存放在新分割上 (資料表),而 BAM 也會保留線上視窗所定義時間的舊分割。 您必須定義線上視窗以確保 BAM 主要匯入資料庫中的分割數目不會成長得太大。 如需排程線上視窗的詳細資訊,請參閱 封存主要匯入資料庫資料

  • 排程 SSIS 套件定期執行。 定義線上視窗可確保 BAM 主要匯入資料庫不會填滿舊活動的分割。 您也必須排程 SSIS 套件定期執行,以建立活動資料的新分割區,並將資料從 BAM 主要匯入資料庫中的舊分割區移至 BAM 封存資料庫。 如需排程 SSIS 套件的詳細資訊,請參閱排程 SQL Server Integration Services 封裝

  • 請小心選擇資料項目的小型集合 (檢查點),並避免在定義活動時包括不必要的資料項目。

  • 瞭解在設計彙總時排程彙總與即時彙總之間的取捨。 即時彙總會由 SQL Server 觸發程序自動維護且沒有延遲。 它們非常適合某些任務關鍵性低延遲案例,但每當事件寫入 BAM 主要匯入資料庫時,都會產生效能成本。 排程匯總依賴排程的 SSIS 封裝來更新其匯總資料。 其延遲等於或大於 SSIS 排程間隔,但整體上會對 BAM 主要匯入資料庫造成較小的效能影響。

  • 如果您選擇已排程的匯總,請確定您排程將存根 SSIS 排程為比封存 SSIS 更頻繁地執行。 這是因為封存 SSIS 不會將已針對排程匯總處理的活動資料移至 BAM 封存資料庫。

  • 在多部電腦中啟用 BAM 事件匯流排服務,以取得容錯移轉功能。

為其他 BizTalk 伺服器資料庫提供高可用性

若要為其他BizTalk Server資料庫提供高可用性,請設定在 Windows 叢集中執行SQL Server的兩部電腦。 這些電腦可以在主動/主動或主動/被動設定中執行以進行備援,而且可以將資料儲存在共用磁片磁碟機 (,例如 RAID 1+0 SCSI 磁片陣列) 或儲存區域網路 (SAN) 。

另請參閱

叢集BizTalk Server資料庫2