故障转移群集管理器的群集和服务用命令操作记录

近日在做灾备切换项目时,客户的系统中有微软的“故障转移群集管理器”软件,这是我头一次接触这种冷门软件,客户方面的运维人员都是手工管理这个软件中的服务,而我们的灾备自动化切换需要通过命令方式来对群集、服务做启停、改ip地址。

查阅网上文档,得知需要用cluster命令来实现,可参考一位博友的文档

cluster命令用法总结  

https://blog.csdn.net/jaminwm/article/details/8008895/

 

这是一张故障转移群集管理器的截图,展示了群集、群集中的服务和应用程序、节点、网络。

群集名称是my12cluster,群集的IP地址需要通过命令方式进行修改,后面介绍修改的命令。

故障转移群集管理器的群集和服务用命令操作记录_第1张图片

 这是服务和应用程序my12AG的基本信息截图,服务的IP地址要通过命令进行修改,后面介绍修改的命令。

故障转移群集管理器的群集和服务用命令操作记录_第2张图片

几经周折和反复试验,终于找到了对故障转移群集管理器中的服务做启停、改ip地址的命令方法,这里来记录下。

1. 停止群集和服务

使用命令  cluster resource ResourceName  /off

C:\Windows\System32\cluster resource "群集 IP 地址" /off
C:\Windows\System32\cluster resource "群集名称" /off
C:\Windows\System32\cluster resource "my12AG" /off
C:\Windows\System32\cluster resource "my12AG_10.0.128.185" /off
C:\Windows\System32\cluster resource "my12AG_my12sql-db" /off

启动的结果输出:

正在将资源“群集 IP 地址”脱机...

资源                 组                   节点            状态
-------------------- -------------------- --------------- ------
群集 IP 地址             群集组                  my12sql-db02    脱机


正在将资源“群集名称”脱机...

资源                 组                   节点            状态
-------------------- -------------------- --------------- ------
群集名称                 群集组                  my12sql-db02    脱机


正在将资源“my12AG”脱机...

资源                 组                   节点            状态
-------------------- -------------------- --------------- ------
my12AG               my12AG               my12sql-db02    脱机


正在将资源“my12AG_my12sql-db”脱机...

资源                 组                   节点            状态
-------------------- -------------------- --------------- ------
my12AG_my12sql-db    my12AG               my12sql-db02    脱机


正在将资源“my12AG_10.0.128.185”脱机...

资源                 组                   节点            状态
-------------------- -------------------- --------------- ------
my12AG_10.0.128.185  my12AG               my12sql-db02    脱机

 

2. 修改群集和服务的IP地址

使用命令  cluster resource ResourceName  /priv address=IPAddress subnetmask=AddressMask

C:\Windows\System32\cluster resource "群集 IP 地址" /priv address=10.7.128.184 subnetmask=255.255.255.0
C:\Windows\System32\cluster resource "my12AG_10.0.128.185" /priv address=10.7.128.185 subnetmask=255.255.255.0

 

3. 启动群集和服务

使用命令  cluster resource ResourceName  /on

C:\Windows\System32\cluster resource "群集 IP 地址" /on
C:\Windows\System32\cluster resource "群集名称" /on
C:\Windows\System32\cluster resource "my12AG" /on
C:\Windows\System32\cluster resource "my12AG_my12sql-db" /on
C:\Windows\System32\cluster resource "my12AG_10.0.128.185" /on

启动的结果输出:
正在将资源“群集 IP 地址”联机...

资源                 组                   节点            状态
-------------------- -------------------- --------------- ------
群集 IP 地址             群集组                  my12sql-db02    联机


正在将资源“群集名称”联机...

资源                 组                   节点            状态
-------------------- -------------------- --------------- ------
群集名称                 群集组                  my12sql-db02    联机

正在将资源“my12AG”联机...

资源                 组                   节点            状态
-------------------- -------------------- --------------- ------
my12AG               my12AG               my12sql-db02    联机

正在将资源“my12AG_my12sql-db”联机...

资源                 组                   节点            状态
-------------------- -------------------- --------------- ------
my12AG_my12sql-db    my12AG               my12sql-db02    联机

正在将资源“my12AG_10.0.128.185”联机...

资源                 组                   节点            状态
-------------------- -------------------- --------------- ------
my12AG_10.0.128.185  my12AG               my12sql-db02    联机

 

4. 检查群集和服务是否是脱机状态

通过一个批处理,将服务的状态中有“脱机”关键字的信息写入一个文本,然后判断文件文件中字符串行数是否是5,表示所有服务都是脱机状态。

如果要检查是否是联机状态,把find关键字换成“联机”。

@echo off

C:\Windows\System32\cluster resource "群集 IP 地址" /status < nul | find "脱机" >> cluster_off_check.txt
C:\Windows\System32\cluster resource "群集名称" /status < nul | find "脱机" >> cluster_off_check.txt
C:\Windows\System32\cluster resource "my12AG" /status < nul | find "脱机" >> cluster_off_check.txt
C:\Windows\System32\cluster resource "my12AG_10.0.128.185" /status < nul | find "脱机" >> cluster_off_check.txt
C:\Windows\System32\cluster resource "my12AG_my12sql-db" /status < nul | find "脱机" >> cluster_off_check.txt

for /f "delims=" %%b in (cluster_off_check.txt) do (echo %%b)

SETLOCAL ENABLEDELAYEDEXPANSION
SET lines=0
FOR /F "tokens=* delims=" %%i IN (cluster_off_check.txt) DO (SET /A lines = !lines! + 1)
echo offline cluster resource count: %lines%

rem 5个服务是否都是脱机状态
if %lines% EQU 5 (echo OK, 群集服务和应用都已脱机) else (echo ERROR, 有群集服务和应用联机,请检查)

del cluster_off_check.txt

启动的结果输出:
群集 IP 地址             群集组                  my12sql-db02    联机
群集名称                 群集组                  my12sql-db02    联机
my12AG               my12AG               my12sql-db02    联机
my12AG_10.0.128.185  my12AG               my12sql-db02    联机
my12AG_my12sql-db    my12AG               my12sql-db02    联机
running cluster resource count: 5
OK, 群集服务和应用都已联机

你可能感兴趣的:(运维)