Manage a SQL Server failover cluster from command line or powershell
Manage a SQL Server failover cluster from command line or powershell
使用Command line或PowerShell管理SQL Server failover Cluster
1.1 目前的Cluster Name
c:\Windows\system32\cluster /prop
PS C:\Users\Administrator.domain>Get-Cluster | fl *
1.2 顯示目前的網域裡的所有Cluster
c:\Winodws\system32>cluster /list
PS C:\Users\Administrator.domain>Get-Cluster
PS.Windows 2008 R2必須先Import failover cluster module
PS C:\Windows\system32>Import-Module FailoverClusters
2.顯示目前的cluster的所有節點狀態
c:\Winodws\system32>cluster node
PS C:\Users\Administrator.domain>Get-ClusterNode
3.顯示Quorum狀態
c:\Winodws\system32>cluster /quorum
PS C:\Users\Administrator.domain>Get-ClusterQuorum
4.顯示所有叢集群組
c:\Winodws\system32>cluster group
PS C:\Users\Administrator.domain>Get-ClusterGroup
PS.可以查看目前Quorum在哪一個節點
顯示叢集群組(叢集應用程式)屬性
PS C:\Users\Administrator.domain>Get-ClusterGroup "叢集群組" | fl *
5.顯示所有叢集資源
c:\Winodws\system32>cluster resource
PS C:\Users\Administrator.domain>Get-ClusterResource
顯示Cluster IP Address
c:\Winodws\system32>cluster resource "叢集 IP 位址" /priv
PS C:\Users\Administrator.domain>Get-ClusterResource "叢集 IP 位址" | Get-ClusterParameter
PS C:\Users\Administrator.domain>Get-ClusterResource "SQL Server" | Get-ClusterParameter
6.執行離線與上線
安裝SQL Server Cluster時若沒有指定具名的執行個體,則此SQL Cluster instance的叢集群組名稱為SQL Server (MSSQLSERVER)
以下範例將SQL Server (MSSQLSERVER)叢集群組離線
c:\Winodws\system32>cluster group "SQL Server (MSSQLSERVER)" /Offline
以下範例將SQL Server (MSSQLSERVER)叢集群組上線
c:\Winodws\system32>cluster group "SQL Server (MSSQLSERVER)" /Online
PS C:\Users\Administrator.domain>Stop-ClusterGroup "叢集群組"
PS C:\Users\Administrator.domain>Start-ClusterGroup "叢集群組"
PS C:\Users\Administrator.domain>Stop-ClusterGroup "SQL Server (MSSQLSERVER)"
PS C:\Users\Administrator.domain>Start-ClusterGroup "SQL Server (MSSQLSERVER)"
7.執行手動容錯移轉Failover
(1)以下範例將名稱為"叢集群組"的叢集群組failover到另一個節點SQL2K8R2C2。
英文版作業系統預設第一個叢集群組名稱為cluster group
中文版作業系統預設第一個叢集群組名稱為叢集群組
c:\Winodws\system32>cluster group "叢集群組" /move:SQL2K8R2C2
c:\Winodws\system32>cluster group "cluster group" /move:SQL2K8R2C2
PS.以上範例會將Quorum搬移到另一個節點
PS C:\Users\Administrator.domain>Move-ClusterGroup -name "叢集群組" -Node "LAB25SQL2C2"
(2)以下範例將名稱為SQL Server (MSSQLSERVER)的叢集群組failover到另一個節點SQL2K8R2C2。
c:\Winodws\system32>cluster group "SQL Server (MSSQLSERVER)" /move:SQL2K8R2C2
PS C:\Users\Administrator.domain>Move-ClusterGroup -name "SQL Server (MSSQLSERVER)" -Node "LAB25SQL2C1"
(3)以下範例將名稱為 [可用存放裝置] failover到另一個節點SQL2K8R2C2,此範例可以將可用叢集磁碟機的擁有者移到另一個節點。
通常用在,當您希望先在第二個節點SQL2K8R2C2安裝SQL Cluster Instance時,則必須先將可用叢集磁碟機搬移到這個節點。
c:\Winodws\system32>cluster group "可用存放裝置" /move:SQL2K8R2C2
顯示叢集網路
PS C:\Users\Administrator.domain>Get-ClusterNetwork
列出登陸檢查點(Registry Checkpoint),以下範例是AlwaysOn
c:\Winodws\system32>cluster res /checkpoints
Cluster Log
[Windows Server 2012]
使用Powershell。
Run "powershell" as Administrator(也就是以[系統管理員身分]來啟動Windows PowerShell ISE,執行以下PowerShell指令來產生Cluster Log)
import-module failoverclusters
Get-ClusterLog -Destination D:\temp\
或
Get-ClusterLog
Log會產生在預設路徑:C:\Windows\Cluster\Reports
請到每一個節點的這個路徑下找到log(例如node1_cluster.log and node2_cluster.log)
[Windows Server 2008 / 2008 R2]
- 登入其中一個節點Node。
- 以管理員身分啟動command Line(命令提示字元),輸入以下指令:
- CLUSTER LOG /GEN /COPY:"c:\clusterlog"
- 命令完成後,會在c:\clusterlog\目錄裡面出現所有節點的Cluster Log檔。(例如node1_cluster.log and node2_cluster.log)
[Windows Server 2003]
每個節點的Windows Server 2003 Cluster Log:
預設路徑:
C:\Windows\Cluster\cluster.log
C:\Windows\Cluster\cluster.oml
[Windows 2008 Cluster Log Size] 因為使用ETL方式記錄,預設3個100MB
-- Cluster log Default 100MB (3個100MB,reboot才換檔)
Get-Cluster | fl *
-- 若為了疑難排解,可以考慮增加為3個300MB
Set-ClusterLog –Size 300
[Reference]
Appendix A - Cluster.exe Commands
https://technet.microsoft.com/en-us/library/cc723245.aspx
Failover Clusters Cmdlets in Windows PowerShell
https://technet.microsoft.com/en-us/library/hh847239.aspx
PowerShell for Failover Clustering: Getting Started
https://blogs.msdn.com/b/clustering/archive/2009/05/21/9633316.aspx
Mapping Cluster.exe Commands to Windows PowerShell Cmdlets for Failover Clusters
https://technet.microsoft.com/en-us/library/ee619744(v=ws.10).aspx
Understanding the Cluster Debug Log in 2008
https://blogs.technet.microsoft.com/askcore/2010/04/13/understanding-the-cluster-debug-log-in-2008/
Get-Cluster
https://technet.microsoft.com/en-us/library/ee461012.aspx