在故障轉移群集中配置 Reporting Services SQL Server 2005 Windows Server 2003
我有以下情況:
兩台機器(例如 NODE1 和 NODE2)在故障轉移群集(例如 CLUSTER)中安裝了 Windows Server 2003。在這個集群上成功安裝了 SQL Server 2005,假設虛擬伺服器是 DATABASE。然後,SSRS 2005 安裝在 NODE1 上。
問題是要使用此設置的應用程序假定報告服務在http://DATABASE/reports上執行,但是,鑑於唯一可能的安裝(據我所知),您只能獲得http://NODE1 /報告。
應用程序無法修改,正確的方法是什麼?
我正在考慮在集群上設置 IIS(並讓它作為虛擬數據庫伺服器執行)並在其上安裝報告和報告伺服器 webapps,使問題消失,但我不確定這是否真的可行也不是最好的選擇。
我考慮過的另一個選擇是安裝反向代理,但我又不確定如何讓它在http://DATABASE/reports上回答,而至少不必先安裝 IIS(並採取額外的步驟.)
建議?
我昨天沒有意識到的是 DATABASE 還解析到目前活動的節點,而不僅僅是 CLUSTER:
假設 DATABASE 是集群名稱,NODE1 和 NODE2 是節點,那麼 DATABASE 解析為目前活動節點,因此如果 NODE1 是活動節點,則 DATABASE 解析為 NODE1。
因此,要做的事情是在兩個節點中安裝報告服務,讓它們都指向數據庫集群中的同一個 ReportServer 數據庫。
假設您已經擁有集群並且已經在集群模式下安裝了 SQL Server(要求)。始終使用相同的版本(每個節點中的報告服務之間的 SP 相同。)
然後,這些是要遵循的步驟:
- 連接到活動節點 (NODE1) 並在其上安裝和配置報告服務,在 DATABASE 上創建 ReportServer 數據庫(通過數據庫設置,向數據庫提供適當的憑據),然後在配置中初始化數據庫。
- 然後在被動節點 (NODE2) 上連接、安裝和配置報告服務,將數據庫設置為 DATABASE 上的現有數據庫(您已經創建的數據庫,提供相同的憑據以連接到數據庫),但不要初始化它現在(在被動節點上)。
- 連接回主動節點並再次執行報告服務配置,現在在初始化中您將看到被動節點出現,然後您可以從那裡對其進行初始化。
然後,您將擁有兩個報告服務實例,每個節點上都有一個,並指向同一個數據庫。現在,當節點故障轉移時,您將使另一個實例正常工作。
到目前為止,我發現的唯一痛苦是,如果您不公開日誌,也不能通過 \DATABASE\C$\Program Files\MSSQL…\ReportServer\Logs 訪問它們,那麼您必須記住哪個是活動的節點去那裡查看日誌。
這稱為“向外擴展 Reporting Services”,僅在企業版(加上開發人員和評估)上受支持
參考:
http://technet.microsoft.com/en-us/library/ms156453(SQL.90).aspx
http://technet.microsoft.com/en-us/library/ms159114(SQL.90).aspx
要升級兩個報表伺服器: http ://technet.microsoft.com/en-us/library/ms143735(SQL.90).aspx