Las instancias de clúster de conmutación por error (FCI) de Microsoft SQL Server son instancias de SQL Server que se implementan en varios nodos de clúster de conmutación por error de Windows Server (WSFC). En cualquier momento, uno de los nodos del clúster aloja activamente la instancia de SQL. En caso de fallo, WSFC transfiere automáticamente la propiedad de los recursos de la instancia a otro nodo.
Las instancias de clústeres de conmutación por error de SQL Server requieren que los datos se ubiquen en un almacenamiento compartido para que se pueda acceder a ellos en todos los nodos de WSFC. En esta guía se describe cómo puedes desplegar una instancia de clúster de conmutación por error de SQL Server 2022 y usar Hyperdisk Balanced High Availability en el modo de escritura múltiple como almacenamiento compartido regional (multizona).
- Balanceador de carga interno (consulta Ejecutar clústeres de conmutación por error de Windows Server)
- Nombre de red distribuida (DNN) (consulta Configurar un DNN para una instancia de clúster de conmutación por error)
En este artículo se da por hecho que ya has implementado Active Directory en Google Cloud y que tienes conocimientos básicos de SQL Server, Active Directory y Compute Engine.
Preparar el proyecto y la red
Para preparar tu proyecto y tu VPC para la implementación de FCI de SQL Server, haz lo siguiente: Google Cloud
En la Google Cloud consola, abre Cloud Shell haciendo clic en el botón Activar Cloud Shell
.
Inicializa las siguientes variables:
VPC_NAME=
VPC_NAME
SUBNET_NAME=SUBNET_NAME
Donde:
VPC_NAME
: nombre de tu VPCSUBNET_NAME
: nombre de tu subred
Configura tu ID de proyecto predeterminado:
gcloud config set project
PROJECT_ID
Sustituye
PROJECT_ID
por el ID de tu Google Cloud proyecto.Define tu región predeterminada:
gcloud config set compute/region
REGION
Sustituye
REGION
por el ID de la región en la que quieras hacer el despliegue.
Crear reglas de cortafuegos
Para permitir que los clientes se conecten a SQL Server, permitir la comunicación entre los nodos de WSFC y habilitar el balanceador de carga para que realice comprobaciones del estado, debe crear varias reglas de cortafuegos. Para simplificar la creación de estas reglas de cortafuegos, puedes usar etiquetas de red:
- Los dos nodos de WSFC se anotan con la etiqueta
wsfc-node
. - Todos los servidores (incluido el testigo) están anotados con la etiqueta
wsfc
.
Crea reglas de cortafuegos que usen estas etiquetas de red:
- Vuelve a tu sesión de Cloud Shell.
Crea reglas de cortafuegos para los nodos de WSFC:
SUBNET_CIDR=$(gcloud compute networks subnets describe $SUBNET_NAME --format=value\('ipCidrRange'\)) gcloud compute firewall-rules create allow-all-between-wsfc-nodes \ --direction=INGRESS \ --action=allow \ --rules=tcp,udp,icmp \ --enable-logging \ --source-tags=wsfc \ --target-tags=wsfc \ --network=$VPC_NAME \ --priority 10000 gcloud compute firewall-rules create allow-sql-to-wsfc-nodes \ --direction=INGRESS \ --action=allow \ --rules=tcp:1433 \ --enable-logging \ --source-ranges=$SUBNET_CIDR \ --target-tags=wsfc-node \ --network=$VPC_NAME \ --priority 10000
Crea una regla de cortafuegos que permita las comprobaciones de estado desde los intervalos de IP de los Google Cloud probers: (no es necesario con una configuración de DNN).
gcloud compute firewall-rules create allow-health-check-to-wsfc-nodes \ --direction=INGRESS \ --action=allow \ --rules=tcp \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=wsfc-node \ --network=$VPC_NAME \ --priority 10000
Crear instancias de VM
Ahora, despliega dos instancias de VM para el clúster de conmutación por error. En cualquier momento, solo una de estas VMs actúa como nodo FCI activo, mientras que el otro nodo actúa como nodo de conmutación por error. Las dos instancias de VM deben tener lo siguiente:
- Clústeres de conmutación por error de Windows Server y SQL Server instalados.
- Compatibilidad con WSFC de Compute Engine habilitada.
Usas una imagen premium de SQL Server que tiene preinstalado SQL Server 2022.
Para emitir un voto de desempate y alcanzar el quórum en el escenario de conmutación por error, debes implementar una tercera VM que actúe como controlador de dominio y un testigo de recurso compartido de archivos.
Vuelve a tu sesión de Cloud Shell.
Crea un script especializado para los nodos de WSFC. La secuencia de comandos instala la función de Windows necesaria y crea reglas de firewall para WSFC y SQL Server:
cat << "EOF" > specialize-node.ps1 $ErrorActionPreference = "stop" # Install required Windows features Install-WindowsFeature Failover-Clustering -IncludeManagementTools Install-WindowsFeature RSAT-AD-PowerShell # Open firewall for WSFC netsh advfirewall firewall add rule name="Allow SQL Server health check" dir=in action=allow protocol=TCP localport=59997 # Open firewall for SQL Server netsh advfirewall firewall add rule name="Allow SQL Server" dir=in action=allow protocol=TCP localport=1433 EOF
Crea las instancias de VM y habilita el agente de clúster de conmutación por error de Windows Server en los nodos de WSFC. Para ello, asigna el valor
true
a la clave de metadatosenable-wsfc
:MACHINE_TYPE=c3-standard-8 REGION=$(gcloud config get-value compute/region) ZONE_1=$REGION-a ZONE_2=$REGION-b gcloud compute instances create node-1 \ --zone $ZONE_1 \ --machine-type $MACHINE_TYPE \ --subnet $SUBNET_NAME \ --image-family sql-ent-2022-win-2022 \ --image-project windows-sql-cloud \ --tags wsfc,wsfc-node \ --boot-disk-size 50 \ --boot-disk-type hyperdisk-balanced \ --boot-disk-device-name node-1 \ --metadata enable-wsfc=true \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1 gcloud compute instances create node-2 \ --zone $ZONE_2 \ --machine-type $MACHINE_TYPE \ --subnet $SUBNET_NAME \ --image-family sql-ent-2022-win-2022 \ --image-project windows-sql-cloud \ --tags wsfc,wsfc-node \ --boot-disk-size 50 \ --boot-disk-type hyperdisk-balanced \ --boot-disk-device-name node-2 \ --metadata enable-wsfc=true \ --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1 gcloud compute instances create witness \ --machine-type n4-standard-2 \ --subnet $SUBNET_NAME \ --image-family=windows-2022 \ --image-project=windows-cloud \ --tags wsfc \ --boot-disk-size 50 \ --boot-disk-type hyperdisk-balanced \ --zone $ZONE_1 \ --metadata sysprep-specialize-script-ps1="add-windowsfeature FS-FileServer"
Para unir las tres instancias de VM a Active Directory, haz lo siguiente en cada una de ellas:
Monitoriza el proceso de inicialización de la VM consultando la salida de su puerto serie:
gcloud compute instances tail-serial-port-output
NAME
Sustituye
NAME
por el nombre de la instancia de VM.Espera unos 3 minutos hasta que veas el resultado
Instance setup finished
, luego pulsa Ctrl+C. En este punto, la instancia de VM ya se puede usar.Crea un nombre de usuario y una contraseña para la instancia de VM.
Conéctate a la VM mediante Escritorio remoto e inicia sesión con el nombre de usuario y la contraseña que has creado en el paso anterior.
Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y, a continuación, en Windows PowerShell (Administrador).
Confirma la solicitud de elevación haciendo clic en Sí.
Une el ordenador a tu dominio de Active Directory y reinícialo:
Add-Computer -Domain
DOMAIN -Restart
Sustituye
DOMAIN
por el nombre DNS de tu dominio de Active Directory.Espera aproximadamente 1 minuto a que se complete el reinicio.
Crear discos Hyperdisk Balanced High Availability en modo multiescritura
Ahora, crea un disco Hyperdisk Balanced High Availability en modo multiescritura y conéctalo a ambos nodos de WSFC. Una de las ventajas de Hyperdisk es la posibilidad de definir IOPS y el rendimiento para que se ajusten a las necesidades de la aplicación. Para obtener más información, consulta Información sobre Hyperdisk Balanced High Availability.
- Vuelve a tu sesión de Cloud Shell.
Crea un disco Hyperdisk Balanced High Availability:
SIZE=200 gcloud compute disks create multiwriter-datadisk-1 \ --size $SIZE \ --provisioned-throughput 200 \ --provisioned-iops 5000 \ --access-mode READ_WRITE_MANY \ --type hyperdisk-balanced-high-availability \ --replica-zones $ZONE_1,$ZONE_2
Acopla el disco a
node-1
:gcloud compute instances attach-disk node-1 \ --disk multiwriter-datadisk-1 \ --zone $ZONE_1 \ --disk-scope=regional
Acopla el disco a
node-2
:gcloud compute instances attach-disk node-2 \ --disk multiwriter-datadisk-1 \ --zone $ZONE_2 \ --disk-scope=regional
Reservar direcciones IP de clúster
Ahora tienes dos direcciones IP estáticas reservadas en tu VPC. Una dirección IP se usa como dirección IP del clúster de WSFC y la otra la usa el balanceador de carga interno.
Reserva una IP estática para el balanceador de carga interno y captura la dirección en una nueva variable de entorno llamada
LOADBALANCER_ADDRESS
:gcloud compute addresses create wsfc \ --region $REGION \ --subnet $SUBNET_NAME LOADBALANCER_ADDRESS=$(gcloud compute addresses describe wsfc \ --region $REGION \ --format=value\(address\)) && \ echo "Load Balancer IP: $LOADBALANCER_ADDRESS"
Anota la dirección IP, ya que la necesitarás más adelante.
Reserva otra dirección IP estática que uses como IP de clúster: (no es necesario con una configuración de DNN)
gcloud compute addresses create wsfc-cluster \ --subnet $SUBNET_NAME \ --region $REGION && \ CLUSTER_ADDRESS=$(gcloud compute addresses describe wsfc-cluster \ --region $REGION \ --format=value\(address\)) && \ echo "Cluster IP: $CLUSTER_ADDRESS"
Anota la dirección IP, ya que la necesitarás más adelante.
Tu proyecto y tu VPC ya están listos para implementar el WSFC y SQL Server.
Crear un recurso compartido de archivos de testigo
Para preparar witness
para que actúe como testigo de recurso compartido de archivos, crea un recurso compartido de archivos y concédete a ti mismo y a los dos nodos de WSFC acceso al recurso compartido de archivos:
- Conéctate a
witness
mediante Escritorio Remoto. Inicia sesión con tu cuenta de usuario del dominio. - Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y, a continuación, en Windows PowerShell (Administrador).
- Confirma la solicitud de elevación haciendo clic en Sí.
Crea la carpeta de testigo y compártela:
New-Item 'C:\QWitness' -type directory New-SmbShare ` -Name QWitness ` -Path 'C:\QWitness' ` -Description 'SQL File Share Witness' ` -FullAccess $env:username,node-1$,node-2$ Grant-SmbShareAccess -Name 'QWitness' -AccountName 'node-1$' -AccessRight Full -Force Grant-SmbShareAccess -Name 'QWitness' -AccountName 'node-2$' -AccessRight Full -Force
Desplegar el clúster de conmutación por error
Ahora, usa las instancias de VM para implementar un clúster de conmutación por error de Windows Server y SQL Server.
Desplegar WSFC
Ahora ya puedes crear el clúster de conmutación por error:
- Conéctate a
node-1
mediante Escritorio Remoto. Inicia sesión con tu cuenta de usuario del dominio. - Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y, a continuación, en Windows PowerShell (Administrador).
- Confirma la solicitud de elevación haciendo clic en Sí.
Crea un clúster:
- Para la configuración del balanceador de carga
New-Cluster ` -Name sql-cluster ` -Node node-1,node-2 ` -NoStorage ` -StaticAddress
CLUSTER_ADDRESS
Sustituye
CLUSTER_ADDRESS
por la dirección IP del clúster que has creado anteriormente.- Configuración de DNN
New-Cluster ` -Name sql-cluster ` -Node node-1,node-2 ` -NoStorage ` -ManagementPointNetworkType Distributed
Vuelve a la sesión de PowerShell en
witness
y concede al objeto de equipo virtual del clúster permiso para acceder al recurso compartido de archivos:icacls C:\QWitness\ /grant 'sql-cluster$:(OI)(CI)(M)' Grant-SmbShareAccess ` -Name QWitness ` -AccountName 'sql-cluster$' ` -AccessRight Full ` -Force
Vuelve a la sesión de PowerShell en
node-1
y configura el clúster para que use el recurso compartido de archivos enwitness
como quórum del clúster:Set-ClusterQuorum -FileShareWitness \\witness\QWitness
Verifica que el clúster se haya creado correctamente:
Test-Cluster
Es posible que veas algunas advertencias que puedes ignorar sin problema:
WARNING: System Configuration - Validate All Drivers Signed: The test reported some warnings.. WARNING: Network - Validate Network Communication: The test reported some warnings.. WARNING: Test Result: HadUnselectedTests, ClusterConditionallyApproved Testing has completed for the tests you selected. You should review the warnings in the Report. A cluster solution is supported by Microsoft only if you run all cluster validation tests, and all tests succeed (with or without warnings).
También puedes iniciar el complemento MMC Administrador de clústeres de conmutación por error para revisar el estado del clúster ejecutando
cluadmin.msc
.Si usas Managed AD, añade la cuenta de ordenador que usa WSFC al grupo Cloud Service Domain Join Accounts para que pueda unir ordenadores al dominio:
Add-ADGroupMember ` -Identity "Cloud Service Domain Join Accounts" ` -Members sql-cluster$
Añadir disco de clúster
Ahora inicializa el disco compartido Hyperdisk Balanced High Availability que has creado anteriormente y añádelo al clúster:
- Vuelve a la sesión de PowerShell en
node-1
. Inicializa el disco Hyperdisk Balanced High Availability:
$NodeName = [System.Net.Dns]::GetHostName() $ClusterDisks = Get-PhysicalDisk -CanPool $True | Where-Object { ($_ | Get-PhysicalDiskStorageNodeView | Select-Object -Property StorageNodeObjectId) -like ('*' + $NodeName + '*') } Initialize-Disk -Number $ClusterDisks[0].DeviceId
En el disco, crea una partición que use el sistema de archivos NTFS y formatea el disco con un tamaño de bloque de 64 KB:
New-Partition -DiskNumber $ClusterDisks[0].DeviceId ` -UseMaximumSize -DriveLetter D | Format-Volume ` -FileSystem NTFS -newfilesystemlabel DataDisk -AllocationUnitSize 65536
Añade el disco al clúster:
Get-ClusterAvailableDisk | Add-ClusterDisk
El disco aparece automáticamente en
node-2
, ya que el disco Hyperdisk Balanced de alta disponibilidad subyacente está conectado a ambas instancias de VM.Abre el complemento MMC Administrador de clústeres de conmutación por error:
cluadmin.msc
Probar la conmutación por error de discos
También puedes probar si la conmutación por error del disco funciona correctamente:
- Conéctate a
node-2
mediante Escritorio Remoto. Inicia sesión con tu cuenta de usuario del dominio. - Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y selecciona Ejecutar.
- Introduce
cluadmin.msc
y selecciona Aceptar. En el panel de la ventana de la izquierda, vaya a Administrador de clústeres de conmutación por error > sql-cluster > Almacenamiento > Discos.
Deberías ver un disco llamado Cluster Disk 1 con el valor
node-1
en Nodo propietario.Vuelve a Cloud Shell y restablece la VM
node-1
para simular una conmutación por error:gcloud compute instances reset node-1
Vuelve al Administrador de clústeres de conmutación por error en
node-2
.Observa el estado del disco pulsando repetidamente F5 para actualizar la vista.
Al cabo de unos 30 segundos, el nodo propietario debería cambiar automáticamente a
node-2
.
Quitar la instalación predeterminada de SQL Server
Ahora, elimina la instalación predeterminada de SQL Server de los dos nodos y sustitúyela por una nueva configuración de FCI.
En cada uno de los dos nodos de WSFC, node-1
y node-2
, sigue estos pasos:
- Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y, a continuación, en Windows PowerShell (Administrador).
- Confirma la solicitud de elevación haciendo clic en Sí.
Elimina la instancia de SQL Server predeterminada:
C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
Quitar el controlador OLE de Microsoft:
Get-Package -Name "Microsoft OLE*" | Uninstall-Package -Force
Quitar el controlador ODBC de Microsoft:
Get-Package -Name "Microsoft ODBC*" | Uninstall-Package -Force
Reinicia el ordenador:
Restart-Computer
Espera aproximadamente 1 minuto a que se complete el reinicio.
Instalar FCI de SQL Server
Antes de instalar la nueva configuración de FCI, comprueba que node-1
es el nodo activo del clúster:
- Vuelve a conectarte a
node-1
con Escritorio remoto e inicia sesión con tu usuario de dominio. - Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y selecciona Ejecutar.
- Introduce
cluadmin.msc
y selecciona Aceptar. En el panel de la ventana de la izquierda, vaya a Administrador de clústeres de conmutación por error > sql-cluster.
Comprueba que el servidor host actual esté configurado como
node-1
.Si el servidor host actual está configurado como
node-2
, haz clic con el botón derecho en sql-cluster en el panel de la ventana de la izquierda y selecciona Más acciones > Mover recursos del clúster principal > Seleccionar nodo… > nodo-1 y haz clic en Aceptar.En el panel de la ventana de la izquierda, vaya a Administrador de clústeres de conmutación por error > sql-cluster > Almacenamiento > Discos.
Verifica que el nodo propietario de Cluster Disk 1 esté configurado como
node-1
.Si el nodo propietario está configurado como
node-2
, haz clic en Mover almacenamiento disponible > Seleccionar nodo... > node-1 En el menú Acciones de la derecha, selecciona Aceptar.
Ahora, crea una instalación de clúster de conmutación por error de SQL Server en node-1
:
- Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y, a continuación, en Windows PowerShell (Administrador).
- Confirma la solicitud de elevación haciendo clic en Sí.
Crea una cuenta de usuario de dominio para SQL Server y el agente de SQL, y asigna una contraseña:
$Credential = Get-Credential -UserName sql_server -Message 'Enter password' New-ADUser ` -Name "sql_server" ` -Description "SQL Agent and SQL Admin account." ` -AccountPassword $Credential.Password ` -Enabled $true -PasswordNeverExpires $true
Inicia la configuración de SQL Server:
& c:\sql_server_install\setup.exe
En el menú de la izquierda, selecciona Instalación.
Selecciona Nueva instalación de clúster de conmutación por error de SQL Server.
En la página Edición, marca la casilla Solo tengo una licencia de SQL Server y selecciona Siguiente.
En la página Términos de la licencia, revisa los términos y, si los aceptas, selecciona Siguiente.
En la página Microsoft Update, selecciona Siguiente para iniciar la instalación.
En la página Install Failover Cluster Rules (Instalar reglas de clúster de conmutación por error), verás las advertencias MSCS cluster verification warnings (Advertencias de verificación de clústeres MSCS) y Windows firewall (Cortafuegos de Windows). Puede ignorar estas advertencias y seleccionar Siguiente.
En la página Feature Selection (Selección de funciones), selecciona Database Engine Services (Servicios del motor de base de datos) y, a continuación, Next (Siguiente).
En la página Instance Configuration (Configuración de la instancia), introduce
sql
como nombre de red y selecciona Next (Siguiente).En la página Cluster Resource Group (Grupo de recursos del clúster), mantén los valores predeterminados y selecciona Next (Siguiente).
En la página Cluster Disk Selection (Selección de disco de clúster), selecciona Cluster Disk 1 (Disco de clúster 1) y, a continuación, Next (Siguiente).
En la página Cluster Network Configuration (Configuración de red del clúster), configure los siguientes ajustes y, a continuación, seleccione Next (Siguiente):
- DHCP borrar
- Dirección IP: introduzca la dirección IP del balanceador de carga interno.
En la página Configuración del servidor, configura los siguientes ajustes para SQL Server Agent y SQL Server Database Engine:
- Nombre de la cuenta:
DOMAIN\sql_server
, dondeDOMAIN
es el nombre NetBIOS de tu dominio de Active Directory. - Contraseña: introduce la contraseña que has creado antes.
- Nombre de la cuenta:
Seleccione la pestaña Colación y elija la colación que quiera usar. A continuación, haz clic en Siguiente.
En la página Configuración del motor de base de datos, selecciona Añadir usuario actual para designar al usuario actual como administrador de SQL Server. A continuación, selecciona Siguiente.
En la página Listo para instalar, revisa la configuración y selecciona Instalar.
Una vez completada la instalación, selecciona Cerrar.
Ahora, añade node-2
al clúster de conmutación por error de SQL Server:
- Conéctate a
node-2
mediante Escritorio remoto e inicia sesión con tu usuario de dominio. - Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y, a continuación, en Windows PowerShell (Administrador).
- Confirma la solicitud de elevación haciendo clic en Sí.
Inicia la configuración de SQL Server:
& c:\sql_server_install\setup.exe
En el menú de la izquierda, selecciona Instalación.
Selecciona Añadir un nodo a un clúster de conmutación por error de SQL Server.
Sigue las instrucciones del asistente de instalación y acepta la configuración predeterminada hasta que llegues a la página Cuentas de servicio.
En la página Cuentas de servicio, introduce la contraseña que has creado anteriormente para Agente de SQL Server y Motor de base de datos de SQL Server. A continuación, selecciona Siguiente.
En la página Listo para instalar, revisa la configuración y selecciona Instalar.
Una vez completada la instalación, selecciona Cerrar.
Configurar comprobaciones del estado
Como paso final, configura el clúster para que exponga un endpoint de comprobación del estado que pueda usar un balanceador de carga interno:
- Vuelve a la sesión de PowerShell en
node-2
Inicializa una variable con la dirección IP del balanceador de carga.
$LoadBalancerIP = '
IP_ADDRESS
'Sustituye
IP_ADDRESS
por la dirección IP de la direcciónwsfc
que has reservado anteriormente.Configura el clúster de conmutación por error para que responda al servicio de comprobación del estado:
$SqlGroup = Get-ClusterGroup | Where-Object {$_.Name.StartsWith("SQL Server")} $SqlIpAddress = Get-ClusterResource | Where-Object {$_.Name.StartsWith("SQL IP Address")} $SqlIpAddress | Set-ClusterParameter -Multiple @{ 'Address'=$LoadBalancerIP; 'ProbePort'= 59997; 'SubnetMask'='255.255.255.255'; 'Network'= (Get-ClusterNetwork).Name; 'EnableDhcp'=0; }
Reinicia el recurso de clúster:
$SqlIpAddress | Stop-ClusterResource $SqlIpAddress | Start-ClusterResource
Reinicia el grupo de clústeres:
$SqlGroup | Stop-ClusterGroup $SqlGroup | Start-ClusterGroup
Crear un balanceador de carga interno
Para proporcionar un único endpoint a los clientes de SQL Server, ahora debes desplegar un balanceador de carga interno. El balanceador de carga usa una comprobación de estado que asegura que el tráfico se dirija al nodo activo del clúster de conmutación por error de Windows Server (WSFC).
- Vuelve a tu sesión de Cloud Shell.
Crea un grupo de instancias sin gestionar y añade los dos nodos al grupo:
gcloud compute instance-groups unmanaged create wsfc-group-1 \ --zone $ZONE_1 gcloud compute instance-groups unmanaged add-instances wsfc-group-1 \ --zone $ZONE_1 \ --instances node-1 gcloud compute instance-groups unmanaged create wsfc-group-2 \ --zone $ZONE_2 gcloud compute instance-groups unmanaged add-instances wsfc-group-2 \ --zone $ZONE_2 \ --instances node-2
Crea una comprobación del estado que el balanceador de carga pueda usar para determinar cuál es el nodo activo.
gcloud compute health-checks create tcp wsfc-healthcheck \ --check-interval="2s" \ --healthy-threshold=1 \ --unhealthy-threshold=2 \ --port=59997 \ --timeout="1s"
Las sondas de comprobación del estado usan el puerto
59997
, que es el que configuraste anteriormente comoProbePort
para la dirección IP del clúster WSFC.Crea un servicio de backend y añade el grupo de instancias:
gcloud compute backend-services create wsfc-backend \ --load-balancing-scheme internal \ --region $REGION \ --health-checks wsfc-healthcheck \ --protocol tcp gcloud compute backend-services add-backend wsfc-backend \ --instance-group wsfc-group-1 \ --instance-group-zone $ZONE_1 \ --region $REGION gcloud compute backend-services add-backend wsfc-backend \ --instance-group wsfc-group-2 \ --instance-group-zone $ZONE_2 \ --region $REGION
Crea el balanceador de carga interno:
gcloud compute forwarding-rules create wsfc-sql \ --load-balancing-scheme internal \ --address $LOADBALANCER_ADDRESS \ --ports 1433 \ --network $VPC_NAME \ --subnet $SUBNET_NAME \ --region $REGION \ --backend-service wsfc-backend
Configurar un recurso de DNN y un nombre de DNS de DNN
Al igual que el balanceador de carga interno, el recurso DNN actúa como una única puerta de enlace para los clientes de SQL Server. Durante las conmutaciones por error, el clúster dirige el tráfico de forma fluida al nodo FCI de SQL Server activo. Los clientes se conectan a la instancia de clúster de conmutación por error de SQL Server con el nombre DNS.
- Vuelve a la sesión de PowerShell en
node-1
. Ejecuta la secuencia de comandos para crear el recurso de DNN
$DNNResourceName='fci-dnn' $DNN_DNSName='fcidnn' # create the DNN resource Add-ClusterResource -Name $DNNResourceName -ResourceType 'Distributed Network Name' -Group 'SQL Server (MSSQLSERVER)' # set the DNS name of the DNN resource Get-ClusterResource -Name $DNNResourceName | Set-ClusterParameter -Name DnsName -Value $DNN_DNSName # start the DNN resource Start-ClusterResource -Name $DNNResourceName
Reinicia
node-1
ynode-2
.
Probar el clúster de conmutación por error
Has completado la instalación del clúster de conmutación por error, pero aún tienes que probar si funciona correctamente.
Preparar un cliente
Crea una instancia de VM que puedas usar para conectarte al clúster de conmutación por error:
- Vuelve a tu sesión de Cloud Shell.
Crea una instancia de VM:
gcloud compute instances create sqlclient \ --machine-type n2-standard-2 \ --subnet $SUBNET_NAME \ --image-family sql-ent-2022-win-2022 \ --image-project windows-sql-cloud \ --boot-disk-size 50 \ --boot-disk-type pd-ssd
Monitoriza el proceso de inicialización de la VM consultando la salida de su puerto serie:
gcloud compute instances tail-serial-port-output sqlclient
Espera unos 3 minutos hasta que veas el mensaje "Instance setup finished" (Configuración de la instancia finalizada) y, a continuación, pulsa Ctrl+C. En este punto, la instancia de VM ya se puede usar.
Crea un nombre de usuario y una contraseña para la instancia de VM.
Conéctate a la VM mediante Escritorio remoto e inicia sesión con el nombre de usuario y la contraseña que has creado en el paso anterior.
Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y, a continuación, en Windows PowerShell (Administrador).
Confirma la solicitud de elevación haciendo clic en Sí.
Une el ordenador a tu dominio de Active Directory:
Add-Computer -Domain
DOMAIN
Sustituye
DOMAIN
por el nombre DNS de tu dominio de Active Directory.Reinicia el ordenador:
Restart-Computer
Espera aproximadamente 1 minuto a que se complete el reinicio.
Ejecutar la prueba
Usa la VM sqlclient
para comprobar que puedes conectarte al clúster de conmutación por error y que la conmutación por error funciona correctamente:
- Conéctate a
sqlclient
mediante Escritorio remoto e inicia sesión con tu usuario de dominio. - Haz clic con el botón derecho en el botón Inicio (o pulsa Win+X) y, a continuación, en Windows PowerShell.
Conéctate al clúster de SQL Server mediante su nombre de red
sql
y consulta la tabladm_os_cluster_nodes
:& "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" ` -S
SQL_SERVER_NAME
-E -Q "SELECT * FROM sys.dm_os_cluster_nodes"Sustituye
SQL_SERVER_NAME
por elsql
de la configuración del balanceador de carga o porfcidnn
de la configuración de DNN.La salida debería tener este aspecto:
NodeName status status_description is_current_owner ------------------------------ ----------- ------------------ ---------------- NODE-1 0 up 1 NODE-2 0 up 0 (2 rows affected)
Ten en cuenta que
node-1
es el propietario actual del recurso de clúster de conmutación por error de SQL Server.Vuelve a Cloud Shell y desactiva la VM node-1 para probar la situación de conmutación por error.
gcloud compute instances stop node-1
Repite la consulta:
& "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" ` -S
SQL_SERVER_NAME
-E -Q "SELECT * FROM sys.dm_os_cluster_nodes"Sustituye
SQL_SERVER_NAME
por elsql
de la configuración del balanceador de carga o porfcidnn
de la configuración de DNN.La salida debería tener este aspecto:
NodeName status status_description is_current_owner ------------------------------ ----------- ------------------ ---------------- NODE-1 1 down 0 NODE-2 0 up 1 (2 rows affected)
Ten en cuenta que, a pesar de la pérdida de
node-1
, la consulta se realiza correctamente y muestra quenode-2
es ahora el propietario actual del clúster de conmutación por error.