容錯移轉叢集疑難排解

本主題提供下列問題的相關資訊:

  • 基本疑難排解步驟。

  • 從容錯移轉叢集錯誤的狀況復原。

  • 解決最常見的容錯移轉叢集問題。

  • 使用擴充預存程序及 COM 物件。

基本疑難排解步驟

在處理 SQL Server 容錯移轉叢集時,請記住,伺服器叢集是由在 Microsoft Cluster Services (MSCS) 之下執行的容錯移轉叢集執行個體所組成。SQL Server 的執行個體可由提供 Microsoft Server Cluster 的 Microsoft MSCS 型節點所主控。

如果主控伺服器叢集的節點上發生問題,那些問題會顯示為是您的容錯移轉叢集執行個體出現問題。若要調查並解決這些問題,請依下列順序來排解 SQL Server 容錯移轉叢集的問題:

  1. 硬體:檢視 Microsoft Windows 系統事件記錄檔。

  2. 作業系統:請參閱 Windows 系統與應用程式記錄檔。

  3. 網路請參閱 Windows 系統與應用程式事件記錄檔。確認目前的組態是否如以下知識庫文件所述:<叢集伺服器上建議使用的私人「活動訊號」(Heartbeat) 設定>。

  4. 安全性:請參閱 Windows 應用程式與安全性事件記錄檔。

  5. MSCS:請參閱 Windows 的系統、應用程式事件與叢集記錄檔。

  6. SQL Server:確認硬體、作業系統、網路、安全性及 MSCS 基礎都沒有問題之後,再進行正式的疑難排解。

從容錯移轉叢集錯誤的狀況復原

通常,容錯移轉叢集發生錯誤的原因有兩個:

  • 在雙節點的叢集中,有一個節點的硬體故障。這種硬體故障可能是因為 SCSI 卡或作業系統的錯誤所導致。

    若要從此錯誤中復原,請使用 SQL Server 安裝程式將故障的節點從容錯移轉叢集中移除、在電腦離線的情況下修復故障的硬體、將該機器回復連線,然後再將修復的節點重新加入容錯移轉叢集執行個體中。

    如需詳細資訊,請參閱<如何:建立新的 SQL Server 容錯移轉叢集 (安裝程式)>和<如何:從狀況 1 中的容錯移轉叢集失敗進行還原>。

  • 作業系統發生錯誤。在此情況下,節點會離線,但並非無可挽回的嚴重錯誤。

    若要復原錯誤的作業系統,請復原節點,並測試容錯移轉。如果 SQL Server 執行個體的容錯移轉不當,您就必須使用 SQL Server 安裝程式將 SQL Server 從容錯移轉叢集移除、進行必要的修復、將該電腦回復連線,然後再將修復的節點重新加入容錯移轉叢集執行個體中。

    用這種方式來復原錯誤的作業系統會需要一些時間。如果可以輕易復原作業系統錯誤,請避免使用這項技術。

    如需詳細資訊,請參閱<如何:建立新的 SQL Server 容錯移轉叢集 (安裝程式)>和<如何:從狀況 2 中的容錯移轉叢集失敗進行還原>。

解決一般問題

下列清單描述常見的使用狀況問題,並說明如何解決。

問題:使用錯誤的命令列提示語法安裝 SQL Server

**問題 1:**在命令提示字元使用 /qn 參數將難以診斷安裝程式問題,因為 /qn 參數會抑制所有安裝程式對話方塊與錯誤訊息。若指定 /qn 參數,所有的安裝程式訊息 (包括錯誤訊息) 都會寫入到安裝程式記錄檔中。如需有關記錄檔的詳細資訊,請參閱<如何:檢視與讀取 SQL Server 安裝程式記錄檔>。

**解決方式 1:**使用 /qb 參數,而不使用 /qn 參數。若使用 /qb 參數,則會顯示每個步驟的基本 UI (包括錯誤訊息)。

問題:SQL Server 無法在移轉至另一個節點之後登入至網路

**問題 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),則您可以利用下列步驟連接到網路名稱資源已離線的伺服器:

  1. 使用「叢集管理員」來判斷含有 SQL Server 執行個體的群組是在哪個節點上執行。就此範例而言,是節點 A

  2. 使用 net start 來啟動該電腦上的 SQL Server 服務。如需有關使用 net start 的詳細資訊,請參閱<手動啟動 SQL Server>。

  3. 啟動節點 A 上的「SQL Server SQL Server 組態管理員」。檢視伺服器所接聽的管道名稱,應該類似於 \\.\$$\VIRTSQL\pipe\sql\query。

  4. 在用戶端電腦上,啟動「SQL Server 組態管理員」。

  5. 建立別名 SQLTEST1,透過具名管道來連接到此管道名稱。若要執行此作業,請輸入節點 A 來做為伺服器名稱,並將管道名稱編輯成 \\.\pipe\$$\VIRTSQL\sql\query。

  6. 使用 SQLTEST1 做為伺服器名稱與這個執行個體連接。

問題:SQL Server 安裝程式在叢集上失敗,錯誤為 11001

問題:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.X\Cluster] 中被遺棄的登錄機碼

**解決方式:**確定目前並未使用 MSSQL.X 登錄區,然後刪除該叢集機碼。

問題:叢集設定錯誤:「安裝程式的權限不足,無法存取這個目錄: <磁碟機>\Microsoft SQL Server。安裝無法繼續,以管理員的身分登入或是連絡您的系統管理員」

**問題:**此問題是由未正確分割的共用磁碟機所造成。

**解決方式:**使用下列步驟,在共用磁碟上重新建立單一分割區:

  1. 從叢集中刪除磁碟資源。

  2. 刪除磁碟上的所有分割區。

  3. 在磁碟屬性中確認該磁碟是基本磁碟。

  4. 在共用磁碟上建立一個分割區,將磁碟格式化,並指定磁碟的磁碟機代號。

  5. 使用「叢集管理員」(cluadmin) 將磁碟加入叢集。

  6. 執行 SQL Server 安裝程式。

問題:應用程式無法在分散式交易中編列 SQL Server 資源

**問題:**因為 Windows 中的 Microsoft 分散式交易協調器 (MS DTC) 設定不完整,因此應用程式可能無法將 SQL Server 資源編列為分散式交易。這個問題會影響使用分散式交易的連結伺服器、分散式查詢和遠端預存程序。如需有關如何設定 MS DTC 的詳細資訊,請參閱<安裝容錯移轉叢集之前>。

解決方案:若要預防這類問題發生,您必須在有安裝 SQL Server 及設定 MS DTC 的伺服器上完整啟用 MS DTC 服務。

若要完整啟用 MS DTC,請使用下列步驟:

  1. 在 [控制台] 中,依序開啟 [系統管理工具][電腦管理]

  2. 在 [電腦管理] 的左窗格中,展開 [服務及應用程式],然後按一下 [服務]

  3. 在 [電腦管理] 的右窗格中,以滑鼠右鍵按一下 [分散式交易協調器],並選取 [屬性]

  4. [分散式交易協調器] 視窗中,按一下 [一般] 索引標籤,然後按一下 [停止] 來停止服務。

  5. [分散式交易協調器] 視窗中,按一下 [登入] 索引標籤,然後設定登入帳戶 NT AUTHORITY\NetworkService。

  6. 按一下 [套用][確定],關閉 [分散式交易協調器] 視窗。關閉 [電腦管理] 視窗。關閉 [系統管理工具] 視窗。

使用擴充預存程序與 COM 物件

當您使用具有容錯移轉叢集組態的擴充預存程序時,所有擴充預存程序都必須安裝在與 SQL Server 相依的叢集磁碟上。這麼做可確保當節點容錯移轉時,仍可使用擴充預存程序。

如果擴充預存程序使用 COM 元件,系統管理員必須將 COM 元件登錄在叢集的每一個節點上。載入與執行 COM 元件的資訊必須位於作用中節點的登錄中,才能建立該元件。否則,資訊仍會留在第一次登錄 COM 元件的電腦登錄中。