共用方式為


在叢集環境設定 Integration Services

新增: 2007 年 9 月 15 日

Integration Services 服務不是叢集的服務或是感知叢集的服務,所以不支援一個叢集節點容錯移轉到另一個叢集節點。因此,在叢集的環境中,叢集中的每個節點上應該要安裝 Integration Services 並啟動為獨立的服務。

ms345193.note(zh-tw,SQL.90).gif重要事項:
Microsoft 不建議您將 Integration Services 服務設定為叢集資源。

雖然 Integration Services 服務不是叢集服務,但是當您在叢集的每個節點個別安裝 Integration Services 之後,您可以手動設定此服務當做叢集資源運作。這個主題包含設定服務做為叢集資源的指示,提供給認為這項組態的優點大於缺點的客戶。

但是,如果高度可用性是您建立叢集硬體環境的目標,您不需要將 Integration Services 服務設定為叢集資源就可以達成這個目標。如果要管理叢集中任何節點上的封裝,請修改叢集中每個節點上 Integration Services 服務的組態檔。您修改這些組態檔,讓每個組態檔指向儲存封裝之 SQL Server 的所有可用執行個體。這個解決方案可以提供大部分客戶所需的高可用性,並避免將 Integration Services 服務設定成叢集資源時發生潛在問題。如需有關如何變更組態檔的詳細資訊,請參閱<設定 Integration Services 服務>。

了解 Integration Services 服務的角色

了解 Integration Services 服務的角色非常重要。因為這樣您才能在資訊充足的情況下,做出如何在叢集環境中設定服務的最佳決策。

Integration Services 服務支援 SQL Server Management Studio 中的管理介面,以供表列、啟動、停止、監視、匯入和匯出 Integration Services 封裝。設計封裝不需要 Integration Services 服務。執行封裝或排程執行封裝的 SQL Server Agent 作業也不需要 Integration Services 服務。

以下是即使沒有執行 Integration Services 服務,您也可以完成的部分工作:

  • 在 Business Intelligence Development Studio 中設計和執行封裝。
  • 使用 dtexec 命令提示公用程式 (dtexec.exe)、執行封裝公用程式 (dtexecui.exe)、SQL Server Agent 或 SQL Server 匯入和匯出精靈,來執行封裝。
  • 使用 Transact-SQL 查詢,列出儲存在 msdb 資料庫中的封裝,以及使用 Windows Explorer,列出儲存在檔案系統中的封裝。
  • 建立並執行 SQL Server Agent 作業,以及維護計畫。

了解將 Integration Services 設定成叢集資源的缺點

將 Integration Services 服務設定成叢集資源的一些可能的缺點包括如下:

  • 發生容錯移轉時,無法重新啟動正在執行的封裝。您可以從檢查點重新啟動封裝,復原封裝失敗的情況。不需要將服務設定成叢集資源,您就能從檢查點重新啟動。如需詳細資訊,請參閱<在封裝中使用檢查點>。
  • 當您在 SQL Server 的不同資源群組中設定 Integration Services 服務時,無法從用戶端電腦使用 Management Studio 來管理儲存在 msdb 資料庫中的封裝。Integration Services 服務無法在這個雙躍點狀況中委派認證。
  • 當您在叢集中有多個包含 Integration Services 服務的 SQL Server 資源群組時,容錯移轉可能導致意外的結果。請考慮下列狀況。群組 1 (包括 SQL Server 服務和 Integration Services 服務) 在節點 A 上執行。群組 2 (也包括 SQL Server 服務和 Integration Services 服務) 在節點 B 上執行。群組 2 容錯移轉至節點 A。在節點 A 上試圖啟動另一個 Integration Services 服務的執行個體會失敗,因為 Integration Services 服務是單一執行個體的服務。試圖容錯移轉至節點 A 的 SQL Server 服務是否失敗,會依據群組 2 中 Integration Services 服務的組態而定。如果 Integration Services 服務設定成影響資源群組中的其他服務,則因為 Integration Services 服務失敗,正在容錯移轉的 SQL Server 服務就會失敗。如果服務設定成不影響資源群組中的其他服務,則 SQL Server 服務就可以容錯移轉至節點 A。

將 Integration Services 服務設定成叢集資源

這一節包含必要的設定指示,提供給認為將 Integration Services 服務設定成叢集資源之優點大於缺點的客戶。但是,Microsoft 不建議您將 Integration Services 服務設定為叢集資源。

如果要將 Integration Services 服務設定成叢集資源,您必須遵循下列步驟:

  • 在叢集上安裝 Integration Services。
  • 將 Integration Services 設定成叢集資源。
  • 設定 Integration Services 服務和封裝存放區。
  • 將 Integration Services 服務連線為叢集資源。

在叢集上安裝 Integration Services

如果要在叢集上安裝 Integration Services,您必須在叢集中的每個節點上安裝 Integration Services。

在叢集上安裝 Integration Services

  1. 安裝和設定具有一或多個節點的叢集。

  2. (選擇性) 安裝叢集服務,例如 SQL Server Database Engine。

  3. 在叢集的每個節點上安裝 Integration Services。

將 Integration Services 服務設定成叢集資源

如果要在叢集中的每個節點上安裝 Integration Services,您必須將 Integration Services 設定成叢集資源。當您將 Integration Services 服務設定成叢集資源後,就可以將服務加入與 SQL Server Database Engine 相同的資源群組,或加入不同的群組。下表說明選擇資源群組的可能優缺點。

當 Integration Services 和 SQL Server 在相同的資源群組中 當 Integration Services 和 SQL Server 在不同的資源群組中

用戶端電腦可以使用 SQL Server Management Studio 來管理儲存在 msdb 資料庫中的封裝,因為 SQL Server Database Engine 和 Integration Services 服務都在相同的虛擬伺服器上執行。這樣的組態可以避免雙躍點狀況的委派問題發生。

用戶端電腦無法使用 SQL Server Management Studio 來管理儲存在 msdb 資料庫中的封裝。用戶端可以連接到 Integration Services 服務執行所在的虛擬伺服器。但是,電腦無法將使用者的認證委派到 SQL Server 執行所在的虛擬伺服器。這就是所謂的雙躍點狀況。

Integration Services 服務會與其他 SQL Server 服務競爭 CPU 和其他電腦資源。

Integration Services 服務不會與其他 SQL Server 服務競爭 CPU 和其他電腦資源,因為已經在不同的節點上設定了不同的資源群組。

將封裝載入和儲存到 msdb 資料庫會比較快並產生較小的網路流量,因為兩個服務都在相同的電腦上執行。

將封裝載入和儲存到 msdb 資料庫可能會比較慢並且產生較大的網路流量。

兩種服務會同時連線或離線。

Integration Services 服務連線時 SQL Server Database Engine 會離線。因此,無法使用儲存在 SQL Server Database Engine 之 msdb 資料庫中的封裝。

如果 Integration Services 服務是必要的服務,則無法快速移到另一個節點。

如果 Integration Services 服務是必要的服務,則可以較快速移到另一個節點。

決定要加入 Integration Services 的資源群組之後,您必須在該群組中將 Integration Services 設定成叢集資源。

將 Integration Services 服務設定成叢集資源

  1. 開啟 [叢集管理員]

  2. 在主控台樹狀結構中,選取 [Groups] 資料夾。

  3. 在結果窗格中,選取您計劃加入 Integration Services 的群組:

    • 如果要以叢集資源形式將 Integrations Services 加入與 SQL Server 相同的資源群組,請選取 SQL Server 所屬的群組。
    • 如果要以叢集資源形式將 Integrations Services 加入與 SQL Server 不同的資源群組,請選取 SQL Server 所屬群組之外的群組。
  4. [檔案] 功能表上,指向 [新增],然後按一下 [資源]

  5. 在 [資源精靈] 的 [新資源] 頁面上輸入名稱,然後選取 [一般服務] 做為 [服務類型]。請不要變更 [群組] 的值。按 [下一步]

  6. [可能的擁有者] 頁面中,加入或移除做為資源之可能擁有者的叢集節點。按 [下一步]

  7. 若要在 [相依性] 頁面上加入相依性,請選取 [可用的資源] 之下的資源,然後按一下 [加入]。在容錯移轉時,SQL Server 和儲存 Integration Services 封裝的共用磁碟會在 Integration Services 連線之前重新連線。選取相依性之後,請按一下 [下一步]

  8. [一般服務參數] 頁面上,輸入 MsDtsServer 做為服務的名稱。按 [下一步]

  9. [機碼複寫] 頁面上,按一下 [加入] 以加入用來識別 Integration Services 服務之組態檔位置的登錄機碼。這個檔案必須位於與 Integration Services 服務相同之資源群組中的共用磁碟上。

  10. [登錄機碼] 對話方塊中,輸入 SOFTWARE\Microsoft\MSDTS\ServiceConfigFile。按一下 [確定],再按一下 [完成]

  11. Integration Services 服務現在已加入成叢集資源。

設定 Integration Services 服務和封裝存放區

要將 Integration Services 設定成叢集資源,您必須修改叢集中每個節點之 Integration Services 服務的組態檔位置和內容。如果發生容錯移轉,這些修改會使所有節點都可使用組態檔和封裝存放區。在您修改組態檔的位置和內容後,服務必須重新連線。

設定 Integration Services 服務和封裝存放區

  1. 請尋找位於 %ProgramFiles%\Microsoft SQL Server\90\DTS\Binn\MsDtsSrvr.ini.xml 的組態檔。將檔案複製到已加入 Integration Services 服務之群組的共用磁碟。

  2. 在共用磁碟上建立名為 Packages 的新資料夾,用來當做封裝存放區。請將新資料夾的「列出資料夾」和「寫入」權限授與適當的使用者和群組。

  3. 在共用磁碟上,以文字編輯器或 XML 編輯器開啟組態檔。將 ServerName 元素的值變更成相同資源群組中之虛擬 SQL Server 的名稱。

  4. 變更 StorePath 元素的值,使其符合在上一個步驟的共用磁碟上建立之 Packages 資料夾的完整路徑。

  5. 更新登錄中的 **HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\**MSDTS\ServiceConfigFile 值,使其符合共用磁碟上之服務組態檔的完整路徑和檔案名稱。

重新連線 Integration Services 服務

  • 請在 [叢集管理員] 中,選取 Integration Services 服務,並按一下滑鼠右鍵,再從快顯功能表中選取 [線上工作]。Integration Services 服務現在已連線成叢集資源。

在叢集環境中連線到 Integration Services

在叢集或任何伺服器上設定 Integration Services 服務之後,您可能必須設定 DCOM 權限,才能從用戶端電腦連線到該服務。如需詳細資訊,請參閱<連接到遠端 Integration Services 伺服器>。

Integration Services 服務無法委派認證。因此,下列情況成立時,您電腦無法使用 Management Studio 來管理儲存在 msdb 資料庫中的封裝:

  • Integration Services 服務和 SQL Server 分別在伺服器或虛擬伺服器上執行。
  • 執行 SQL Server Management Studio 的用戶端是第三部電腦。

用戶端可以連線到 Integration Services 服務執行所在的虛擬伺服器。但是,電腦無法將使用者的認證委派到 SQL Server 執行所在的虛擬伺服器。這就是所謂的雙躍點狀況。