Configuración de uno o varios clientes de escucha de grupo de disponibilidad AlwaysOn
Se aplica a: SQL Server en máquina virtual de Azure
Sugerencia
Hay muchos métodos para implementar un grupo de disponibilidad. Simplifique la implementación y elimine la necesidad de un nombre de red distribuida (DNN) o un equilibrador de carga de Azure para el grupo de disponibilidad Always On mediante la creación de las máquinas virtuales (VM) de SQL Server en varias subredes dentro de la misma red virtual de Azure. Si ya ha creado el grupo de disponibilidad en una sola subred, puede migrarlo a un entorno de varias subredes.
En este documento se muestra cómo usar PowerShell para realizar una de las siguientes tareas:
- Crear un equilibrador de carga
- Agregar direcciones IP a un equilibrador de carga existente para grupos de disponibilidad de SQL Server.
Un agente de escucha del grupo de disponibilidad es un nombre de red virtual al que se conectan los clientes para acceder a la base de datos. En Azure Virtual Machines en una sola subred, un equilibrador de carga contiene la dirección IP del cliente de escucha. El equilibrador de carga enruta el tráfico a la instancia de SQL Server que está escuchando en el puerto de sondeo. Normalmente, un grupo de disponibilidad usa un equilibrador de carga interno. Un equilibrador de carga interno de Azure puede hospedar una o varias direcciones IP. Cada una usa un puerto de sondeo específico.
La capacidad para asignar varias direcciones IP a un equilibrador de carga interno es nueva en Azure y solo está disponible en el modelo de Resource Manager. Para completar esta tarea, debe tener un grupo de disponibilidad de SQL Server implementado en Azure Virtual Machines con el modelo de Resource Manager. Las dos máquinas virtuales de SQL Server deben pertenecer al mismo conjunto de disponibilidad. Puede usar la plantilla de Microsoft para crear automáticamente el grupo de disponibilidad en Azure Resource Manager. Esta plantilla crea automáticamente el grupo de disponibilidad, incluido el equilibrador de carga interno. Si lo prefiere, puede configurar manualmente un grupo de disponibilidad AlwaysOn.
Para completar los pasos de este artículo, los grupos de disponibilidad deben estar ya configurados.
Temas relacionados:
- Configuración de Grupos de disponibilidad AlwaysOn en la máquina virtual de Azure (GUI)
- Configuración de una conexión entre dos redes virtuales mediante Azure Resource Manager y PowerShell
Nota:
En este artículo se usa el módulo Az de PowerShell, que es el módulo de PowerShell que se recomienda para interactuar con Azure. Para empezar a trabajar con el módulo Az de PowerShell, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Inicio de una sesión de PowerShell
Ejecute el cmdlet Connect-Az Account y aparecerá una pantalla de inicio de sesión donde podrá especificar sus credenciales. Use las mismas credenciales que las utilizadas para iniciar sesión en el Portal de Azure.
Connect-AzAccount
Si tiene varias suscripciones, use el cmdlet Set-AzContext para seleccionar la suscripción que se debe usar en la sesión de PowerShell. Para ver la suscripción que se usa en la sesión actual de PowerShell, ejecute Get-AzContext. Para ver todas las suscripciones, ejecute Get-AzSubscription.
Set-AzContext -SubscriptionId '4cac86b0-1e56-bbbb-aaaa-000000000000'
Verificación de la versión de PowerShell
Los ejemplos de este artículo se prueban con la versión 5.4.1 del módulo de Azure PowerShell.
Verifique que el módulo de PowerShell utiliza la versión 5.4.1 o una posterior.
Consulte Instalación del módulo de Azure PowerShell.
Configurar el Firewall de Windows
Configure Firewall de Windows para permitir el acceso de SQL Server. Las reglas de firewall permiten las conexiones TCP para el uso de puertos por la instancia de SQL Server, así como el sondeo del agente de escucha. Para instrucciones detalladas, consulte Configurar Firewall de Windows para el acceso al motor de base de datos. Cree una regla de entrada para el puerto de SQL Server y para el puerto de sondeo.
Si restringe el acceso con Azure Network Security Group, asegúrese de que las reglas de permiso incluyan las direcciones IP de back-end de VM con SQL Server, y direcciones IP flotantes del equilibrador de carga para la escucha de grupo de disponibilidad y la dirección IP principal del clúster, si corresponde.
Determinar la SKU requerida del equilibrador de carga
Azure Load Balancer está disponible en dos SKU: básico y estándar. Se recomienda el equilibrador de carga estándar, ya que la SKU básica está programada para retirarse el 30 de septiembre de 2025. El equilibrador de carga estándar es necesario en las máquinas virtuales de una zona de disponibilidad. El equilibrador de carga estándar requiere que todas las direcciones IP de las VM usen direcciones IP estándar.
La plantilla de Microsoft actual para un grupo de disponibilidad usa un equilibrador de carga básico con direcciones IP básicas.
Nota:
Si usa un equilibrador de carga estándar y Azure Storage para el testigo en la nube, tendrá que configurar un punto de conexión de servicio .
En los ejemplos de este artículo se especifica un equilibrador de carga estándar. En los ejemplos, el script incluye -sku Standard
.
$ILB= New-AzLoadBalancer -Location $Location -Name $ILBName -ResourceGroupName $ResourceGroupName -FrontendIpConfiguration $FEConfig -BackendAddressPool $BEConfig -LoadBalancingRule $ILBRule -Probe $SQLHealthProbe -sku Standard
Para crear un equilibrador de carga básico, quite -sku Standard
de la línea que crea el equilibrador de carga. Por ejemplo:
$ILB= New-AzLoadBalancer -Location $Location -Name $ILBName -ResourceGroupName $ResourceGroupName -FrontendIpConfiguration $FEConfig -BackendAddressPool $BEConfig -LoadBalancingRule $ILBRule -Probe $SQLHealthProbe
Script de ejemplo: creación de un equilibrador de carga interno con PowerShell
Nota:
Si ha creado el grupo de disponibilidad con la plantilla Microsoft, ya se ha creado el equilibrador de carga interno.
El siguiente script de PowerShell crea un equilibrador de carga interno, configura las reglas de equilibrio de carga y establece una dirección IP para el equilibrador de carga. Para ejecutar el script, abra Windows PowerShell ISE y pegue el script en el panel Script. Use Connect-AzAccount
para iniciar sesión en PowerShell. Si tiene varias suscripciones de Azure, puede usar Select-AzSubscription
para establecer la suscripción.
# Connect-AzAccount
# Select-AzSubscription -SubscriptionId <xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>
$ResourceGroupName = "<Resource Group Name>" # Resource group name
$VNetName = "<Virtual Network Name>" # Virtual network name
$SubnetName = "<Subnet Name>" # Subnet name
$ILBName = "<Load Balancer Name>" # ILB name
$Location = "<Azure Region>" # Azure location
$VMNames = "<VM1>","<VM2>" # Virtual machine names
$ILBIP = "<n.n.n.n>" # IP address
[int]$ListenerPort = "<nnnn>" # AG listener port
[int]$ProbePort = "<nnnn>" # Probe port
$LBProbeName ="ILBPROBE_$ListenerPort" # The Load balancer Probe Object Name
$LBConfigRuleName = "ILBCR_$ListenerPort" # The Load Balancer Rule Object Name
$FrontEndConfigurationName = "FE_SQLAGILB_1" # Object name for the front-end configuration
$BackEndConfigurationName ="BE_SQLAGILB_1" # Object name for the back-end configuration
$VNet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName
$Subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet -Name $SubnetName
$FEConfig = New-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -PrivateIpAddress $ILBIP -SubnetId $Subnet.id
$BEConfig = New-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName
$SQLHealthProbe = New-AzLoadBalancerProbeConfig -Name $LBProbeName -Protocol tcp -Port $ProbePort -IntervalInSeconds 15 -ProbeCount 2
$ILBRule = New-AzLoadBalancerRuleConfig -Name $LBConfigRuleName -FrontendIpConfiguration $FEConfig -BackendAddressPool $BEConfig -Probe $SQLHealthProbe -Protocol tcp -FrontendPort $ListenerPort -BackendPort $ListenerPort -LoadDistribution Default -EnableFloatingIP
$ILB= New-AzLoadBalancer -Location $Location -Name $ILBName -ResourceGroupName $ResourceGroupName -FrontendIpConfiguration $FEConfig -BackendAddressPool $BEConfig -LoadBalancingRule $ILBRule -Probe $SQLHealthProbe
$bepool = Get-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB
foreach($VMName in $VMNames)
{
$VM = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName
$NICName = ($vm.NetworkProfile.NetworkInterfaces.Id.split('/') | select -last 1)
$NIC = Get-AzNetworkInterface -name $NICName -ResourceGroupName $ResourceGroupName
$NIC.IpConfigurations[0].LoadBalancerBackendAddressPools = $BEPool
Set-AzNetworkInterface -NetworkInterface $NIC
start-AzVM -ResourceGroupName $ResourceGroupName -Name $VM.Name
}
Script de ejemplo: Agregar una dirección IP a un equilibrador de carga existente con PowerShell
Para utilizar más de un grupo de disponibilidad, agregue una dirección IP adicional al equilibrador de carga. Cada dirección IP requiere su regla de equilibrio de carga, puerto de sondeo y puerto de front-end propios. Agregue solo la dirección IP principal de la VM al grupo de back-end del equilibrador de carga, ya que la dirección IP de la VM secundaria no admite IP flotantes.
El puerto de front-end es el que las aplicaciones usan para conectarse a la instancia de SQL Server. Las direcciones IP para los diferentes grupos de disponibilidad pueden usar el mismo puerto de front-end.
Nota:
Para los grupos de disponibilidad de SQL Server, cada dirección IP requiere un puerto de sondeo específico. Por ejemplo, si una dirección IP en un equilibrador de carga utiliza el puerto de sondeo 59999, no puede usarlo ninguna otra dirección IP de ese equilibrador de carga.
- Para información sobre los límites del equilibrador de carga, consulte IP de front-end privada por equilibrador de carga en Límites de redes - Azure Resource Manager.
- Para información acerca de los límites de los grupos de disponibilidad, consulte Restricciones (grupos de disponibilidad).
El script siguiente agrega una nueva dirección IP a un equilibrador de carga existente. El equilibrador de carga interno usa el puerto del cliente de escucha como puerto de front-end de equilibrio de carga. Este puerto puede ser aquel en el que SQL Server escucha. Para las instancias predeterminadas de SQL Server, se trata del puerto 1433. La regla de equilibrio de carga para un grupo de disponibilidad requiere una dirección IP flotante (Direct Server Return), así que el puerto de back-end es el mismo que el puerto de front-end. Actualice las variables para su entorno.
# Connect-AzAccount
# Select-AzSubscription -SubscriptionId <xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>
$ResourceGroupName = "<ResourceGroup>" # Resource group name
$VNetName = "<VirtualNetwork>" # Virtual network name
$SubnetName = "<Subnet>" # Subnet name
$ILBName = "<ILBName>" # ILB name
$ILBIP = "<n.n.n.n>" # IP address
[int]$ListenerPort = "<nnnn>" # AG listener port
[int]$ProbePort = "<nnnnn>" # Probe port
$ILB = Get-AzLoadBalancer -Name $ILBName -ResourceGroupName $ResourceGroupName
$count = $ILB.FrontendIpConfigurations.Count+1
$FrontEndConfigurationName ="FE_SQLAGILB_$count"
$LBProbeName = "ILBPROBE_$count"
$LBConfigrulename = "ILBCR_$count"
$VNet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName
$Subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet -Name $SubnetName
$ILB | Add-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -PrivateIpAddress $ILBIP -SubnetId $Subnet.Id
$ILB | Add-AzLoadBalancerProbeConfig -Name $LBProbeName -Protocol Tcp -Port $Probeport -ProbeCount 2 -IntervalInSeconds 15 | Set-AzLoadBalancer
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName
$FEConfig = get-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -LoadBalancer $ILB
$SQLHealthProbe = Get-AzLoadBalancerProbeConfig -Name $LBProbeName -LoadBalancer $ILB
$BEConfig = Get-AzLoadBalancerBackendAddressPoolConfig -Name $ILB.BackendAddressPools[0].Name -LoadBalancer $ILB
$ILB | Add-AzLoadBalancerRuleConfig -Name $LBConfigRuleName -FrontendIpConfiguration $FEConfig -BackendAddressPool $BEConfig -Probe $SQLHealthProbe -Protocol tcp -FrontendPort $ListenerPort -BackendPort $ListenerPort -LoadDistribution Default -EnableFloatingIP | Set-AzLoadBalancer
Configuración del agente de escucha
El agente de escucha del grupo de disponibilidad es un nombre de red y una dirección IP en los que escucha el grupo de disponibilidad de SQL Server. Para crear la escucha de grupo de disponibilidad:
Obtenga el nombre del recurso de red del clúster:
a. Use RDP para conectarse a la máquina virtual de Azure que hospeda la réplica principal.
b. Abra el Administrador de clústeres de conmutación por error.
c. Seleccione el nodo Redes y anote el nombre de red del clúster. Use este nombre en la variable
$ClusterNetworkName
del script de PowerShell. En la siguiente imagen, el nombre de red del clúster es Cluster Network 1:Agregue el punto de acceso cliente El punto de acceso cliente es el nombre de red que las aplicaciones utilizan para conectarse a las bases de datos en un grupo de disponibilidad.
a. En el Administrador de clúster de conmutación por error, expanda el nombre del clúster y, a continuación, seleccione Roles.
b. En el panel Roles, haga clic con el botón derecho en el nombre del grupo de disponibilidad y, después, seleccione Agregar recurso>Punto de acceso cliente.
c. En el cuadro Nombre, cree un nombre para este nuevo agente de escucha. Las aplicaciones utilizarán el nombre del nuevo agente de escucha como nombre de red para conectarse a las bases de datos del grupo de disponibilidad de SQL Server.
d. Para terminar de crear el cliente de escucha, seleccione Siguiente dos veces y, a continuación, seleccione Finalizar. No ponga el cliente de escucha o el recurso en línea en este momento.
Desconecte el rol de clúster del grupo de disponibilidad. En el Administrador de clústeres de conmutación por error, en Roles, haga clic con el botón derecho en el rol y seleccione Detener el rol.
Configure el recurso de IP del grupo de disponibilidad:
a. Haga clic en la pestaña Recursos y expanda el punto de acceso de cliente que ha creado. El punto de acceso cliente está desconectado.
b. Haga clic con el botón derecho en el recurso de IP y, después, seleccione Propiedades. Tenga en cuenta el nombre de la dirección IP y úselo en la variable
$IPResourceName
en el script de PowerShell.c. En Dirección IP, seleccione Dirección IP estática. Establezca la dirección IP como la misma dirección que usó cuando estableció la dirección del equilibrador de carga en Azure Portal.
Haga que el grupo de disponibilidad de SQL Server dependa del punto de acceso de cliente:
a. En el Administrador de clústeres de conmutación por error, seleccione Roles y, después, seleccione el grupo de disponibilidad.
b. En la pestaña Recursos, en Otros recursos, haga clic con el botón derecho en el recurso del grupo de disponibilidad y, después, seleccione Propiedades.
c. En la pestaña Dependencias, agregue el nombre del punto de acceso de cliente (el cliente de escucha).
d. Seleccione Aceptar.
Haga que el punto de acceso de cliente dependa de la dirección IP:
a. En el Administrador de clústeres de conmutación por error, seleccione Roles y, después, seleccione el grupo de disponibilidad.
b. En la pestaña Recursos, haga clic con el botón derecho en el punto de acceso de cliente en Nombre del servidor y después seleccione Propiedades.
c. Seleccione la pestaña Dependencias. Compruebe que la dirección IP es una dependencia. Si no es así, establezca una dependencia en la dirección IP. Si aparecen varios recursos, compruebe que las direcciones IP tengan dependencias OR y no AND. Después, seleccione Aceptar.
Sugerencia
Puede validar que las dependencias estén configuradas correctamente. En el Administrador de clústeres de conmutación por error, vaya a Roles, haga clic con el botón derecho en el grupo de disponibilidad, seleccione Más acciones y, después, seleccione Mostrar informe de dependencias. Cuando las dependencias estén configuradas correctamente, el grupo de disponibilidad depende en el nombre de red y el nombre de red depende de la dirección IP.
Establezca los parámetros de clúster en PowerShell:
a. Copie el siguiente script de PowerShell en una de las instancias de SQL Server. Actualice las variables para su entorno.
$ClusterNetworkName
encuentre el nombre en el Administrador de clústeres de conmutación por error seleccionando Redes, haga clic con el botón derecho en la red y después seleccione Propiedades. $ClusterNetworkName está debajo del campo Nombre en la pestaña General.$IPResourceName
es el nombre que se asigna al recurso de dirección IP en el Administrador de clústeres de conmutación por error. Puede encontrarlo en el Administrador de clústeres de conmutación por error seleccionando Roles, seleccione el Nombre de AG o FCI de SQL Server, seleccione la pestaña Recursos en Nombre del servidor, haga clic con el botón derecho en el recurso de dirección IP y seleccione Propiedades. El valor correcto está debajo del campo Nombre en la pestaña General.$ListenerILBIP
es la dirección IP que creó en Azure Load Balancer para el agente de escucha del grupo de disponibilidad. Busque $ListenerILBIP en el Administrador de clústeres de conmutación por error en la misma página de propiedades que el nombre del recurso del agente de escucha de AG/FCI de SQL Server.$ListenerProbePort
es el puerto que configuró en Azure Load Balancer para la escucha de grupo de disponibilidad, como 59999. Cualquier puerto TCP no utilizado es válido.
$ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name. $IPResourceName = "<IPResourceName>" # The IP address resource name. $ListenerILBIP = "<n.n.n.n>" # The IP address of the internal load balancer. This is the static IP address for the load balancer that you configured in the Azure portal. [int]$ListenerProbePort = <nnnnn> Import-Module FailoverClusters Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
b. Ejecute el script de PowerShell en uno de los nodos del clúster para establecer los parámetros del clúster.
Nota:
Si las instancias de SQL Server se encuentran en distintas regiones, debe ejecutar el script de PowerShell dos veces. La primera vez, utilice los valores
$ListenerILBIP
y$ListenerProbePort
de la primera región. La segunda vez, utilice los valores$ListenerILBIP
y$ListenerProbePort
de la segunda región. El nombre de red del clúster y el nombre del recurso IP del clúster también son diferentes para cada región.Ponga en línea el rol de clúster para el grupo de disponibilidad. En el Administrador de clústeres de conmutación por error, en Roles, haga clic con el botón derecho en el rol y, a continuación, seleccione Iniciar rol.
Si es necesario, repita los pasos anteriores para establecer los parámetros de clúster para la dirección IP del clúster de conmutación por error de Windows Server:
Obtenga el nombre de la dirección IP del clúster de conmutación por error de Windows Server. En el Administrador de clústeres de conmutación por error, en Recursos principales de clúster, busque Nombre del servidor.
Haga clic con el botón derecho en Dirección IP y, a continuación, seleccione Propiedades.
Copie el nombre de la dirección IP que aparece en Nombre. Puede ser Dirección IP del clúster.
Establezca los parámetros de clúster en PowerShell:
a. Copie el siguiente script de PowerShell en una de las instancias de SQL Server. Actualice las variables para su entorno.
$ClusterCoreIP
es la dirección IP que creó en el equilibrador de carga de Azure para el recurso del clúster principal del clúster de conmutación por error de Windows Server. Es diferente de la dirección IP de la escucha de grupo de disponibilidad.$ClusterProbePort
es el puerto que configuró en el equilibrador de carga de Azure para el sondeo de estado del clúster de conmutación por error de Windows Server. Es diferente del sondeo de la escucha de grupo de disponibilidad.
$ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name. $IPResourceName = "<ClusterIPResourceName>" # The IP address resource name. $ClusterCoreIP = "<n.n.n.n>" # The IP address of the cluster IP resource. This is the static IP address for the load balancer that you configured in the Azure portal. [int]$ClusterProbePort = <nnnnn> # The probe port from WSFCEndPointprobe in the Azure portal. This port must be different from the probe port for the availability group listener. Import-Module FailoverClusters Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ClusterCoreIP";"ProbePort"=$ClusterProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
b. Ejecute el script de PowerShell en uno de los nodos del clúster para establecer los parámetros del clúster.
Si se configura algún recurso de SQL para usar un puerto entre 49152 y 65536 (el intervalo de puertos dinámico predeterminado para TCP/IP), agregue una exclusión para cada puerto. Estos recursos pueden incluir:
- Motor de base de datos de SQL Server
- Escucha de grupo de disponibilidad Always On
- Sondeo de estado para la instancia del clúster de conmutación por error
- Punto de conexión de creación de reflejo de la base de datos
- Recurso de IP principal del clúster
Al agregar una exclusión, impedirá que otros procesos de sistema se asignen dinámicamente al mismo puerto. En este escenario, configure las siguientes exclusiones en todos los nodos del clúster:
netsh int ipv4 add excludedportrange tcp startport=58888 numberofports=1 store=persistent
netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent
Es importante configurar la exclusión de puertos cuando el puerto no está en uso. De lo contrario, se producirá un error en el comando con un mensaje similar a "El proceso no puede acceder al archivo porque está en uso en otro proceso". Para confirmar que las exclusiones se han configurado correctamente, use el siguiente comando: netsh int ipv4 show excludedportrange tcp
.
Advertencia
El puerto del sondeo de estado de la escucha de grupo de disponibilidad debe ser diferente del puerto del sondeo de estado de la dirección IP principal del clúster. En estos ejemplos, el puerto del cliente de escucha es 59999 y el puerto del sondeo del estado de la dirección IP principal del clúster es 58888. Ambos puertos requieren una regla de firewall de "permitir la entrada".
Establecimiento del puerto del agente de escucha en SQL Server Management Studio
Abra SQL Server Management Studio y conéctese a la réplica principal.
Vaya a Alta disponibilidad de AlwaysOn>Grupos de disponibilidad>Agentes de escucha del grupo de disponibilidad.
Ahora tienes que ver el nombre del agente de escucha que creaste en el Administrador de clústeres de conmutación por error. Haga clic con el botón derecho en el nombre del cliente de escucha y seleccione Propiedades.
En el cuadro Puerto, especifique el número de puerto de escucha del grupo de disponibilidad mediante el valor de $EndpointPort que ha utilizado antes (1433 era el valor predeterminado) y, a continuación, seleccione Aceptar.
Comprobación de la conexión con el agente de escucha
Para probar la conexión:
Use el Protocolo de escritorio remoto (RDP) para conectarse a una instancia de SQL Server que esté en la misma red virtual, pero que no sea la propietaria de la réplica; por ejemplo, a otra instancia de SQL Server del clúster.
Use la utilidad sqlcmd para probar la conexión. Por ejemplo, el siguiente script establece una conexión sqlcmd con la réplica principal por medio del agente de escucha con autenticación de Windows:
sqlcmd -S <listenerName> -E
Si el agente de escucha usa un puerto distinto del predeterminado (1433), especifíquelo en la cadena de conexión. Por ejemplo, el siguiente comando sqlcmd se conecta a un agente de escucha en el puerto 1435:
sqlcmd -S <listenerName>,1435 -E
La conexión SQLCMD se establece automáticamente con la instancia de SQL Server en la que se hospede la réplica principal.
Nota:
Asegúrese de que el puerto especificado esté abierto en el firewall de los dos servidores SQL Server. En estos dos servidores, es necesario definir una regla de entrada para el puerto TCP. Consulte Agregar o editar regla de firewall para más información.
Si está en la máquina virtual de la réplica secundaria y no puede conectarse al cliente de escucha, es posible que el puerto de sondeo no se haya configurado correctamente.
Puede usar el siguiente script para validar que el puerto de sondeo está configurado correctamente para el grupo de disponibilidad:
Clear-Host
Get-ClusterResource `
| Where-Object {$_.ResourceType.Name -like "IP Address"} `
| Get-ClusterParameter `
| Where-Object {($_.Name -like "Network") -or ($_.Name -like "Address") -or ($_.Name -like "ProbePort") -or ($_.Name -like "SubnetMask")}
Pautas y limitaciones
Cuando utilice un equilibrador de carga interno, tenga en cuenta las siguientes instrucciones que se aplican al agente de escucha del grupo de disponibilidad de Azure:
Como solo hay un equilibrador de carga interno, el acceso al agente de escucha se realizará desde la misma red virtual.
Si va a restringir el acceso con un grupo de seguridad de red de Azure, asegúrese de que las reglas de tipo permitir incluyen:
- Las direcciones IP de la máquina virtual de SQL Server de back-end
- Las direcciones IP flotantes del equilibrador de carga para el cliente de escucha de AG
- La dirección IP principal del clúster, si procede.
Cree un punto de conexión de servicio cuando use un equilibrador de carga estándar con Azure Storage para el testigo en la nube. Para más información, consulte Concesión de acceso desde una red virtual.
Cmdlets de PowerShell
Use los siguientes cmdlets de PowerShell para crear un equilibrador de carga interno para Azure Virtual Machines.
- New-AzLoadBalancer crea un equilibrador de carga.
- New-AzLoadBalancerFrontendIpConfig crea una configuración IP de front-end para un equilibrador de carga.
- New-AzLoadBalancerRuleConfig crea una configuración de regla para un equilibrador de carga.
- New-AzLoadBalancerBackendAddressPoolConfig crea una configuración de grupo de direcciones de back-end para un equilibrador de carga.
- New-AzLoadBalancerProbeConfig crea una configuración de sondeo para un equilibrador de carga.
- Remove-AzLoadBalancer quita un equilibrador de carga de un grupo de recursos de Azure.
Pasos siguientes
Para obtener más información, consulte:
- Clúster de conmutación por error de Windows Server con SQL Server en máquinas virtuales de Azure
- Grupos de disponibilidad Always On para SQL Server en Azure Virtual Machines
- Introducción a los grupos de disponibilidad Always On
- Configuración de alta disponibilidad y recuperación ante desastres para SQL Server en máquinas virtuales de Azure