容錯移轉叢集疑難排解
更新: 2006 年 7 月 17 日
本主題提供下列問題的相關資訊:
- 基本疑難排解步驟。
- 從容錯移轉叢集錯誤的狀況復原。
- 解決最常見的容錯移轉叢集問題。
- 使用擴充預存程序及 COM 物件。
基本疑難排解步驟
在處理 SQL Server 2005 容錯移轉叢集時,請記住,伺服器叢集是由在 Microsoft Cluster Services (MSCS) 之下執行的容錯移轉叢集執行個體所組成。SQL Server 執行個體可由提供 Microsoft Server Cluster 的 Microsoft MSCS 型節點所主控。
如果主控伺服器叢集的節點上發生問題,那些問題會顯示為是您的容錯移轉叢集執行個體出現問題。若要調查並解決這些問題,請依下列順序來排解 SQL Server 容錯移轉叢集的問題:
- 硬體:檢視 Microsoft Windows 系統事件記錄檔。
- 作業系統:請參閱 Windows 系統與應用程式記錄檔。
- 網路:請參閱 Windows 系統與應用程式事件記錄檔。確認目前的組態是否如以下知識庫文件所述:<叢集伺服器上建議使用的私人「活動訊號」(Heartbeat) 設定>。
- 安全性:請參閱 Windows 應用程式與安全性事件記錄檔。
- MSCS:請參閱 Windows 的系統、應用程式事件與叢集記錄檔。
- SQL Server:確認硬體、作業系統、網路、安全性及 MSCS 基礎都沒有問題之後,再進行正式的疑難排解。
從容錯移轉叢集錯誤的狀況復原
通常,容錯移轉叢集發生錯誤的原因有兩個:
- 在雙節點的叢集中,有一個節點的硬體故障。這種硬體故障可能是因為 SCSI 卡或作業系統的錯誤所導致。
若要從此錯誤中復原,請使用 SQL Server 安裝程式將故障的節點從容錯移轉叢集中移除、在電腦離線的情況下修復故障的硬體、將該機器回復連線,然後再將修復的節點重新加入容錯移轉叢集執行個體中。
如需詳細資訊,請參閱<如何:建立新的 SQL Server 2005 容錯移轉叢集 (安裝程式)>和<如何:從狀況 1 中的容錯移轉叢集失敗進行還原>。 - 作業系統發生錯誤。在此情況下,節點會離線,但並非無可挽回的嚴重錯誤。
若要復原錯誤的作業系統,請復原節點,並測試容錯移轉。如果 SQL Server 執行個體的容錯移轉不當,您就必須使用 SQL Server 安裝程式將 SQL Server 從容錯移轉叢集移除、進行必要的修復、將該電腦回復連線,然後再將修復的節點重新加入容錯移轉叢集執行個體中。
用這種方式來復原錯誤的作業系統會需要一些時間。如果可以輕易復原作業系統錯誤,請避免使用這項技術。
如需詳細資訊,請參閱<如何:建立新的 SQL Server 2005 容錯移轉叢集 (安裝程式)>和<如何:從狀況 2 中的容錯移轉叢集失敗進行還原>。
請您也考慮 SQL Server 2005 中容錯移轉叢集的下列變更:
- 在 SQL Server 2005 中,記錄檔的所在目錄與舊版 SQL Server 不同。如需詳細資訊,請參閱<如何:檢視 SQL Server 2005 安裝程式記錄檔>。
- 在 SQL Server 2005 中,與執行個體無關的元件只會安裝在主節點;在 SQL Server 2000 中,與執行個體無關的元件會安裝在所有節點。如需詳細資訊,請參閱<設定 Windows 服務帳戶>。
- 在 SQL Server 2005 中,目錄與登錄結構皆與舊版不同。如需詳細資訊,請參閱<設定 Windows 服務帳戶>和<SQL Server 2005 的預設和具名執行個體的檔案位置>。
解決一般問題
下列清單描述常見的使用狀況問題,並說明如何解決。
問題:使用錯誤的命令列提示語法安裝 SQL Server 2005
**問題 1:**在命令提示字元使用 /qn 參數將難以診斷安裝程式問題,因為 /qn 參數會抑制所有安裝程式對話方塊與錯誤訊息。若指定 /qn 參數,所有的安裝程式訊息 (包括錯誤訊息) 都會寫入到安裝程式記錄檔中。如需有關記錄檔的詳細資訊,請參閱<如何:檢視 SQL Server 2005 安裝程式記錄檔>。
**解決方式 1:**使用 /qb 參數,而不使用 /qn 參數。若使用 /qb 參數,則會顯示每個步驟的基本 UI (包括錯誤訊息)。
**問題 2:**未依照位於 SQL Server 2005 根目錄之 template.ini 檔案中所使用的格式。
**解決方式 2:**雖然安裝程式可能會略過未預期的字元,請在您的安裝命令中包含所有必要變數。
在命令行中,變數與其值之間不應有空格。例如,"ADDLOCAL=ALL" 中就不包含任何空格。若使用 "ADDLOCAL = ALL",安裝程式將會失敗。另一個範例是 IP 與其值。"IP=www.xxx.yyy.zzz,Local Area Connection" 是正確的。若在 "," 之後插入空格,安裝程式將會失敗。
問題:SQL Server 2005 無法在移轉至另一個節點之後登入至網路
**問題 1:**SQL Server 服務帳戶無法與網域控制站聯繫。
**解決方式 1:**檢查您的事件記錄檔,尋找是否有網路問題的相關記錄 (例如:網路卡失敗或 DNS 問題)。確認您可以偵測到 (ping) 您的網域控制站。
**問題 2:**SQL Server 服務帳戶密碼在所有叢集節點上並不相同,或節點並未重新啟動從失敗節點移轉的 SQL Server 服務。
**解決方式 2:**使用「SQL Server 組態管理員」來變更 SQL Server 服務帳戶密碼。若您不想這麼做,那麼當您變更了某個節點上的 SQL Server 服務帳戶密碼時,也必須同時變更其他所有節點上的密碼。「SQL Server 組態管理員」會替您自動執行此作業。
問題:SQL Server 無法存取叢集磁碟
**問題 1:**所有節點上的韌體或驅動程式都未更新。
**解決方式 1:**確定每個節點都已執行正確的韌體版本與相同的驅動程式版本。
**問題 2:**節點無法復原從共用叢集磁碟 (具有不同的磁碟機代號) 上之失敗節點移轉的叢集磁碟。
**解決方式 2:**兩台伺服器上的叢集磁碟的磁碟機代號必須相同。若不相同,請檢查作業系統和 Microsoft Cluster Service (MSCS) 的原始安裝。
問題:SQL Server 服務失敗導致容錯移轉
**解決方式:**為預防特定伺服器失敗導致 SQL Server 群組發生容錯移轉,請使用 Windows 中的「叢集管理員」來設定這些服務,如下所示:
- 清除 [全文檢索屬性] 對話方塊之 [進階] 索引標籤上的 [影響群組] 核取方塊。然而,如果 SQL Server 導致容錯移轉,全文檢索搜尋服務就會重新啟動。
問題:SQL Server 未自動啟動
**解決方式:**使用 MSCS 中的「叢集管理員」自動啟動容錯移轉叢集。SQL Server 服務應設定為手動啟動;且應在 MSCS 中設定「叢集管理員」來啟動 SQL Server 服務。
問題:「網路名稱」已離線,且您無法使用 TCP/IP 連接到 SQL Server
**問題 1:**對於設定為要求 DNS 的叢集資源,DNS 發生失敗。
**解決方式 1:**更正 DNS 問題。
**問題 2:**網路上有重複的名稱。
**解決方式 2:**使用 NBTSTAT 來尋找重複的名稱,然後更正此問題。
問題 3: SQL Server 並非使用具名管道來連接。
解決方式 3:若要使用具名管道來連接,請使用「SQL Server 組態管理員」來建立別名以連接到適當的電腦。例如,若您有一個具有兩個節點的叢集 (節點 A 與節點 B),以及具有預設執行個體的容錯移轉叢集執行個體 (Virtsql),則您可以利用下列步驟連接到網路名稱資源已離線的伺服器:
- 使用「叢集管理員」來判斷含有 SQL Server 執行個體的群組是在哪個節點上執行。就此範例而言,是節點 A。
- 使用 net start 來啟動該電腦上的 SQL Server 服務。如需有關使用 net start 的詳細資訊,請參閱<手動啟動 SQL Server>。
- 啟動節點 A 上的「SQL Server SQL Server 組態管理員」。檢視伺服器所接聽的管道名稱,應該類似於 \\.\$$\VIRTSQL\pipe\sql\query。
- 在用戶端電腦上,啟動「SQL Server 組態管理員」。
- 建立別名 SQLTEST1,透過具名管道來連接到此管道名稱。若要執行此作業,請輸入節點 A 來作為伺服器名稱,並將管道名稱編輯成 \\.\pipe\$$\VIRTSQL\sql\query。
- 使用 SQLTEST1 作為伺服器名稱與這個執行個體連接。
問題:SQL Server 安裝程式在叢集上失敗,錯誤為 1058
**問題:**在叢集節點上停用 Task Scheduler 服務會導致安裝程式失敗,並產生錯誤 1058。Core.log 中會出現下列項目:
Error: SetTargetComputer on \\machinename failed with
Unable to start service (1058)
Error: RunRemoteProcess Received return code 1058 from STPCOMPAQ3790N2
這是該記錄的最後一行:
<EndFunc Name='DwLaunchMsiExec' Return='1058' GetLastError='183'>
**解決方式:**使用叢集管理員來啟用所有叢集節點上的 Task Scheduler 服務。如需詳細資訊,請參閱<如何:啟用 Windows Task Scheduler 服務>。
問題:SQL Server 安裝程式在叢集上失敗,錯誤為 11001
問題:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.X\Cluster] 中被遺棄的登錄機碼
**解決方式:**確定目前並未使用 MSSQL.X 登錄群組,然後刪除該叢集機碼。
問題:叢集設定錯誤:「安裝程式的權限不足,無法存取這個目錄: <磁碟機>\Microsoft SQL Server。安裝無法繼續,以管理員的身分登入或是連絡您的系統管理員」
**問題:**此問題是由未正確分割的共用磁碟機所造成。
**解決方式:**使用下列步驟,在共用磁碟上重新建立單一分割區:
- 從叢集中刪除磁碟資源。
- 刪除磁碟上的所有分割區。
- 在磁碟屬性中確認該磁碟是基本磁碟。
- 在共用磁碟上建立一個分割區,將磁碟格式化,並指定磁碟的磁碟機代號。
- 使用「叢集管理員」(cluadmin) 將磁碟加入叢集。
- 執行 SQL Server 安裝程式。
問題:應用程式無法在分散式交易中編列 SQL Server 2005 資源
**問題:**因為 Windows 中的 Microsoft 分散式交易協調器 (MS DTC) 設定不完整,因此應用程式可能無法將 SQL Server 2005 資源編列為分散式交易。這個問題會影響使用分散式交易的連結伺服器、分散式查詢和遠端預存程序。
**解決方式:**為避免此問題,您必須在已安裝 SQL Server 2005 的伺服器上完整啟用 MS DTC 服務。
若要完整啟用 MS DTC,請使用下列步驟:
- 在 [控制台] 中,依序開啟 [系統管理工具] 和 [電腦管理]。
- 在 [電腦管理] 的左窗格中,展開 [服務及應用程式],然後按一下 [服務]。
- 在 [電腦管理] 的右窗格中,以滑鼠右鍵按一下 [Distributed Transaction Coordinator],並選取 [屬性]。
- 在 [Distributed Transaction Coordinator] 視窗中,按一下 [一般] 索引標籤,然後按一下 [停止] 來停止服務。
- 在 [Distributed Transaction Coordinator] 視窗中,按一下 [登入] 索引標籤,然後設定登入帳戶 NT AUTHORITY\NetworkService。
- 按一下 [套用] 和 [確定],關閉 [Distributed Transaction Coordinator] 視窗。關閉 [電腦管理] 視窗。關閉 [系統管理工具] 視窗。
附註: |
---|
如果 SQL Server 2005 是安裝在有參與容錯移轉叢集的電腦上,在您執行安裝程式之前,MS DTC 必須已完全啟用及叢集化。如果 MS DTC 沒有叢集化,安裝程式會失敗。執行安裝程式之前,請先使用「Microsoft 叢集管理員」來確定 MS DTC 已叢集化。 |
問題:從光碟片安裝時 SQL Server 2005 容錯移轉叢集安裝程式可能會失敗
**問題:**在 SQL Server 2005 安裝期間選取容錯移轉叢集元件和用戶端工具元件時,當您插入 CD 2 之後,安裝可能會失敗,並出現「遠端安裝失敗」的錯誤。
**解決方式:**將兩張光碟片上的安裝檔案複製到使用中叢集節點或網路共用上的同一個目錄中。例如,
c:
cd\
md SQLENT
將兩張光碟片複製到 SQLENT 目錄:
\SQLENT\Servers
\SQLENT\Tools
附註: |
---|
DVD 安裝不會發生這種問題。 |
使用擴充預存程序與 COM 物件
當您使用具有容錯移轉叢集組態的擴充預存程序時,所有擴充預存程序都必須安裝在與 SQL Server 相依的叢集磁碟上。這麼做可確保當節點容錯移轉時,仍可使用擴充預存程序。
如果擴充預存程序使用 COM 元件,系統管理員必須將 COM 元件登錄在叢集的每一個節點上。載入與執行 COM 元件的資訊必須位於作用中節點的登錄中,才能建立該元件。否則,資訊仍會留在第一次登錄 COM 元件的電腦登錄中。
請參閱
其他資源
如何:檢視 SQL Server 2005 安裝程式記錄檔
How Extended Stored Procedures Work
Execution Characteristics of Extended Stored Procedures
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 7 月 17 日 |
|