Preparación del entorno para un vínculo: Azure SQL Managed Instance

Se aplica a: Azure SQL Managed Instance

Este artículo le enseñará cómo preparar el entorno para un vínculo de instancia administrada a fin de que pueda replicar entre SQL Server instalado en Windows o Linux y Azure SQL Managed Instance.

Nota:

Puede automatizar la preparación del entorno para el vínculo de Instancia administrada mediante un script descargable. Para más información, vea el blog de automatización de la configuración del vínculo.

Requisitos previos

Para crear un vínculo entre SQL Server y Azure SQL Managed Instance, necesita los siguientes requisitos previos:

Precaución

Al crear la instancia administrada de SQL para usarla con la característica de vínculo, tenga en cuenta los requisitos de memoria de las características OLTP en memoria que use SQL Server. Para más información, vea Introducción a los límites de recursos de Azure SQL Managed Instance.

Permisos

Para SQL Server, debe tener permisos sysadmin.

Para Azure SQL Managed Instance, debe ser miembro del Colaborador de SQL Managed Instance o tener los siguientes permisos para un rol personalizado:

Microsoft.Sql/ resource Permisos necesarios
Microsoft.Sql/managedInstances /lectura, /escritura
Microsoft.Sql/managedInstances/hybridCertificate /action
Microsoft.Sql/managedInstances/databases /read, /delete, /write, /completeRestore/action, /readBackups/action, /restoreDetails/read
Microsoft.Sql/managedInstances/distributedAvailabilityGroups /read, /write, /delete, /setRole/action
Microsoft.Sql/managedInstances/endpointCertificates /lectura
Microsoft.Sql/managedInstances/hybridLink /lectura, /escritura, /eliminación
Microsoft.Sql/managedInstances/serverTrustCertificates /escritura, /eliminación, /lectura

Preparación de la instancia de SQL Server

Para preparar la instancia de SQL Server, debe validar que:

  • Tiene la versión mínima admitida.
  • Ha habilitado la característica de grupos de disponibilidad.
  • Ha agregado las marcas de seguimiento adecuadas al inicio.
  • Las bases de datos están en el modelo de recuperación completa y se ha hecho una copia de seguridad.

Debe reiniciar SQL Server para que estos cambios surtan efecto.

Instalación de actualizaciones de servicio

Asegúrese de que su versión de SQL Server tiene instalada la actualización de mantenimiento adecuada, tal y como se indica en la tabla de compatibilidad de versiones. Si necesita instalar actualizaciones, debe reiniciar la instancia de SQL Server durante la actualización.

Para comprobar la versión de SQL Server, ejecute el siguiente script de Transact-SQL (T-SQL) en SQL Server:

-- Run on SQL Server
-- Shows the version and CU of the SQL Server
USE master;
GO
SELECT @@VERSION as 'SQL Server version';

Creación de una clave maestra de base de datos en la base de datos master

Cree una clave maestra de base de datos en la base de datos master, si aún no está presente. Inserte la contraseña en lugar de <strong_password> en el script siguiente y manténgala en un lugar confidencial y seguro. Ejecute este script de T-SQL en SQL Server:

-- Run on SQL Server
-- Create a master key
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong_password>';

Para asegurarse de que tiene la clave maestra de base de datos, use el siguiente script de T-SQL en SQL Server:

-- Run on SQL Server
USE master;
GO
SELECT * FROM sys.symmetric_keys WHERE name LIKE '%DatabaseMasterKey%';

Habilitación de grupos de disponibilidad

La característica de vínculo se basa en la característica de grupos de disponibilidad Always On, que está desactivada de manera predeterminada. Para más información, vea Habilitación de la característica Grupos de disponibilidad Always On.

Nota:

Para SQL Server en Linux, consulte Habilitar grupos de disponibilidad Always On.

Para confirmar que la característica de grupos de disponibilidad está habilitada, ejecute el siguiente script de T-SQL en SQL Server:

-- Run on SQL Server
-- Is the availability groups feature enabled on this SQL Server
DECLARE @IsHadrEnabled sql_variant = (select SERVERPROPERTY('IsHadrEnabled'))
SELECT
    @IsHadrEnabled as 'Is HADR enabled',
    CASE @IsHadrEnabled
        WHEN 0 THEN 'Availability groups DISABLED.'
        WHEN 1 THEN 'Availability groups ENABLED.'
        ELSE 'Unknown status.'
    END
    as 'HADR status'

Importante

Para SQL Server 2016 (13.x), si necesita habilitar la característica de grupos de disponibilidad, deberá completar los pasos adicionales documentados en Preparación de SQL Server 2016 requisitos previos: vínculo de Azure SQL Managed Instance. Estos pasos adicionales no son necesarios para SQL Server 2019 (15.x) y versiones posteriores compatibles con el vínculo.

Si la característica de grupos de disponibilidad no está habilitada, siga estos pasos para habilitarla:

  1. Abra el Administrador de configuración de SQL Server.

  2. En el panel izquierdo, seleccione Servicios de SQL Server.

  3. Haga clic con el botón derecho en el servicio SQL Server y seleccione Propiedades.

    Captura de pantalla que muestra el Administrador de configuración de SQL Server, con selecciones para propiedades de apertura para el servicio.

  4. Vaya a la pestaña Grupos de disponibilidad Always On.

  5. Active la casilla Hablitar los grupos de disponibilidad Always On y, a continuación, seleccione Aceptar.

    Captura de pantalla que muestra la casilla para habilitar los grupos de disponibilidad Always On.

  6. Seleccione Aceptar en el cuadro de diálogo.

  7. Reinicie el servicio SQL Server.

Habilitación de marcas de seguimiento de inicio

Para optimizar el rendimiento del vínculo se recomienda habilitar las siguientes marcas de seguimiento en el inicio:

  • -T1800: esta marca de seguimiento optimiza el rendimiento cuando los discos que hospedan los archivos de registro de la réplica principal y secundaria de un grupo de disponibilidad tienen tamaños de sector diferentes, por ejemplo, 512 bytes y 4 KB. Si la réplica principal y la secundaria tienen un tamaño de sector de disco de 4 KB, esta marca de seguimiento no es necesaria. Para más información, consulte KB3009974.
  • -T9567: esta marca de seguimiento habilita la compresión del flujo de datos para los grupos de disponibilidad durante la inicialización automática. La compresión aumenta la carga en el procesador, pero puede reducir significativamente el tiempo de transferencia durante la inicialización.

Nota:

Para SQL Server en Linux, consulte Habilitación de marcas de seguimiento.

Para habilitar estas marcas de seguimiento en el inicio, siga estos pasos:

  1. Abra el Administrador de configuración de SQL Server.

  2. En el panel izquierdo, seleccione Servicios de SQL Server.

  3. Haga clic con el botón derecho en el servicio SQL Server y seleccione Propiedades.

    Captura de pantalla que muestra el Administrador de configuración de SQL Server.

  4. Vaya a la pestaña Parámetros de inicio. En Especificar un parámetro de inicio, escriba -T1800 y seleccione Agregar para agregar el parámetro de inicio. A continuación, escriba -T9567 y seleccione Agregar para agregar otra marca de seguimiento. Seleccione Aplicar para guardar los cambios.

    Captura de pantalla que muestra las propiedades del parámetro startup.

  5. Seleccione Aceptar para cerrar la ventana Propiedades.

Para más información, consulte la sintaxis para habilitar marcas de seguimiento.

Reinicio de SQL Server y validación de la configuración

Después de asegurarse de que tiene una versión compatible de SQL Server, de que ha habilitado la característica Grupos de disponibilidad Always On y de que ha agregado las marcas de seguimiento de inicio, reinicie la instancia de SQL Server para aplicar todos estos cambios:

  1. Abra el Administrador de configuración de SQL Server.

  2. En el panel izquierdo, seleccione Servicios de SQL Server.

  3. Haga clic con el botón derecho en el servicio de SQL Server y, a continuación, seleccione Reiniciar.

    Captura de pantalla que muestra la llamada de comando de reinicio de SQL Server.

Después del reinicio, ejecute el siguiente script de T-SQL en SQL Server para validar la configuración de la instancia de SQL Server:

-- Run on SQL Server
-- Shows the version and CU of SQL Server
USE master;
GO
SELECT @@VERSION as 'SQL Server version';
GO
-- Shows if the Always On availability groups feature is enabled
SELECT SERVERPROPERTY ('IsHadrEnabled') as 'Is Always On enabled? (1 true, 0 false)';
GO
-- Lists all trace flags enabled on SQL Server
DBCC TRACESTATUS;

La versión de su servidor SQL Server debe ser una de las versiones compatibles aplicadas con las actualizaciones de servicio adecuadas, la función de grupos de disponibilidad Always On debe estar activada y debe tener las marcas de seguimiento -T1800 y -T9567 habilitadas. La captura de pantalla siguiente es un ejemplo del resultado esperado para una instancia de SQL Server que se ha configurado correctamente:

Captura de pantalla que muestra el resultado esperado en S S M S.

Configuración de la conectividad de red

Para que el vínculo funcione, debe tener conectividad de red entre SQL Server y SQL Managed Instance. La opción de red que elija depende de si la instancia de SQL Server está o no en una red de Azure.

SQL Server en Azure Virtual Machines

La implementación de SQL Server en Azure Virtual Machines en la misma red virtual de Azure que hospeda SQL Managed Instance es el método más sencillo, ya que automáticamente habrá conectividad de red entre las dos instancias. Para más información, vea Inicio rápido: Configuración de una VM de Azure para la conexión a Azure SQL Managed Instance.

Si su instancia de SQL Server en Azure Virtual Machines está en una red virtual diferente de la instancia administrada, debe establecer una conexión entre ambas redes virtuales. Las redes virtuales no tienen por qué estar en la misma suscripción para que este escenario funcione.

Para conectar redes virtuales hay dos opciones:

El emparejamiento es la opción preferida porque se usa la red troncal de Microsoft y, por lo tanto, desde la perspectiva de la conectividad, no hay diferencias notables de latencia entre las máquinas virtuales de la red virtual emparejada y la propia. El emparejamiento de red virtual se admite entre las redes de la misma región. El emparejamiento de red virtual global es compatible con instancias hospedadas en subredes creadas desde el 22 de septiembre de 2020. Para más información, vea Preguntas más frecuentes (P+F).

SQL Server fuera de Azure

Si la instancia de SQL Server se hospeda fuera de Azure, establezca una conexión VPN entre SQL Server y SQL Managed Instance con cualquiera de estas opciones:

Sugerencia

Se recomienda ExpressRoute para obtener el mejor rendimiento de red al replicar los datos. Aprovisione una puerta de enlace con el ancho de banda suficiente para su caso de uso.

Puertos de red entre los entornos

Independientemente del mecanismo de conectividad, hay requisitos que deben cumplirse para que el tráfico de red fluya entre los entornos:

Las reglas del grupo de seguridad de red (NSG) en la subred que hospeda la instancia gestionada permiten lo siguiente:

  • Puerto de entrada 5022 e intervalo de puertos 11000-11999 para recibir tráfico de la IP de SQL Server de origen
  • Puerto de salida 5022 para enviar tráfico a la IP de SQL Server de destino

Todos los firewalls de la red que hospeda SQL Server y el sistema operativo del host deben permitir:

  • Puerto de entrada 5022 abierto para recibir tráfico del intervalo IP de origen de la subred MI /24 (por ejemplo, 10.0.0.0/24)
  • Puertos de salida 5022 y el intervalo de puertos 11000-11999 abierto para enviar tráfico al intervalo IP de destino de la subred MI (ejemplo 10.0.0.0/24)

Diagrama que muestra requisitos de red para configurar el vínculo entre SQL Server y la instancia gestionada.

En la tabla siguiente se describen las acciones de puerto para cada entorno:

Entorno Qué hacer
SQL Server (en Azure) Abra el tráfico entrante y saliente en el puerto 5022 para el firewall de red para todo el intervalo IP de la subred de SQL Managed Instance. Si es necesario, haga lo mismo en el firewall del sistema operativo (Windows o Linux) del host de SQL Server. Para permitir la comunicación en el puerto 5022, cree una regla de grupo de seguridad de red (NSG) en la red virtual que hospeda la máquina virtual.
SQL Server (fuera de Azure) Abra el tráfico entrante y saliente en el puerto 5022 para el firewall de red para todo el intervalo IP de la subred de SQL Managed Instance. Si es necesario, haga lo mismo en el firewall del sistema operativo (Windows o Linux) del host de SQL Server.
Instancia administrada de SQL Cree una regla de NSG en Azure Portal para permitir el tráfico entrante y saliente desde la dirección IP y la red que aloja SQL Server en el puerto 5022 y el rango de puertos 11000-11999.

Use el siguiente script de PowerShell en el SO del host Windows de la instancia de SQL Server para abrir los puertos en el firewall de Windows:

New-NetFirewallRule -DisplayName "Allow TCP port 5022 inbound" -Direction inbound -Profile Any -Action Allow -LocalPort 5022 -Protocol TCP
New-NetFirewallRule -DisplayName "Allow TCP port 5022 outbound" -Direction outbound -Profile Any -Action Allow -LocalPort 5022 -Protocol TCP

En el diagrama siguiente se muestra un ejemplo de un entorno de red local, que indica que todos los firewalls del entorno deben tener puertos abiertos, incluido el firewall del sistema operativo que hospeda SQL Server, así como los firewalls corporativos o las puertas de enlace:

Diagrama que muestra infraestructura de red para configurar el vínculo entre SQL Server y la instancia administrada.

Importante

  • Los puertos deben estar abiertos en todos los firewalls del entorno de red, incluido el servidor host, así como los firewalls corporativos o las puertas de enlace de la red. En entornos corporativos, es posible que tenga que mostrar a su administrador de red la información de esta sección para ayudar a abrir puertos adicionales en la capa de redes corporativas.
  • Aunque puede elegir personalizar el punto de conexión en el lado de SQL Server, los números de puerto de SQL Managed Instance no se pueden cambiar ni personalizar.
  • Los intervalos de direcciones IP de subredes que hospedan instancias administradas y SQL Server no deben superponerse.

Añadir URL a la lista permitida

En función de la configuración de seguridad de red, es posible que sea necesario agregar direcciones URL para el FQDN de SQL Managed Instance y algunos de los puntos de conexión de Resource Management usados por Azure a la lista de permitidos.

A continuación se enumeran los recursos que se deben agregar a la lista de permitidos:

  • Nombre de dominio completo (FQDN) de la instancia SQL Managed Instance. Por ejemplo, managedinstance1.6d710bcf372b.database.windows.net.
  • La autoridad de Microsoft Entra
  • Identificador de recurso del punto de conexión de Microsoft Entra
  • Punto de conexión de Resource Manager
  • Punto de conexión de servicio

Siga los pasos descritos en la sección Configurar SSMS para nubes gubernamentales para acceder a la interfaz herramientas de SQL Server Management Studio (SSMS) e identificar las direcciones URL específicas de los recursos de la nube que debe agregar a la lista de permitidos.

Comprobar la conectividad de red

La conectividad de red bidireccional entre SQL Server y SQL Managed Instance es necesaria para que el vínculo funcione. Después de abrir los puertos en el lado de SQL Server y configurar una regla NSG en el lado de SQL Managed Instance, pruebe la conectividad utilizando SQL Server Management Studio (SSMS) o Transact-SQL.

Pruebe la red mediante la creación de un trabajo temporal del Agente SQL en SQL Server y SQL Managed Instance para comprobar la conexión entre las dos instancias. Cuando se usa Network Checker en SSMS, el trabajo se crea automáticamente y se elimina una vez completada la prueba. Debe eliminar manualmente el trabajo del Agente SQL si prueba la red mediante T-SQL.

Nota:

Actualmente no se admite la ejecución de scripts de PowerShell mediante el Agente SQL Server en SQL Server en Linux, por lo que actualmente no es posible ejecutar Test-NetConnection desde el trabajo de Agente SQL Server en SQL Server en Linux.

Para usar el Agente SQL a fin de probar la conectividad de red, necesita los siguientes requisitos:

  • El usuario que realiza la prueba debe tener permisos para crear un trabajo (ya sea como sysadmin o perteneciente al rol SQLAgentOperator para msdb) para SQL Server y SQL Managed Instance.
  • Se debe ejecutar el servicio Agente SQL Server en SQL Server. Puesto que el Agente está activado de forma predeterminada en SQL Managed Instance, no es necesario realizar ninguna acción adicional.

Para probar la conectividad de red entre SQL Server y SQL Managed Instance en SSMS, siga estos pasos:

  1. Conéctese a la instancia que será la réplica principal en SSMS.

  2. En Explorador de objetos, expanda bases de datos y haga clic con el botón derecho en la base de datos que quiere vincular con la base de datos secundaria. Seleccione el vínculo Tareas>Azure SQL Managed Instance>Prueba de conexión para abrir el asistente Comprobador de red:

    Captura de pantalla del explorador de objetos en S S M S, con la conexión de prueba seleccionada en el menú contextual del vínculo de base de datos.

  3. Seleccione Siguiente en la página Introducción del asistente de Network Checker.

  4. Si se cumplen todos los requisitos en la página Requisitos previos, seleccione Siguiente. De lo contrario, resuelva los requisitos previos no satisfechos y, a continuación, seleccione Volver a ejecutar validación.

  5. En la página Inicio de sesión, seleccione Iniciar sesión para conectarse a la otra instancia que será la réplica secundaria. Seleccione Siguiente.

  6. Compruebe los detalles de la página Especificar opciones de red y proporcione una dirección IP, si es necesario. Seleccione Siguiente.

  7. En la página Resumen, revise las acciones que realiza el asistente y, a continuación, seleccione Finalizar para probar la conexión entre las dos réplicas.

  8. Revise la página Resultados para validar que existe conectividad entre las dos réplicas y, a continuación, seleccione Cerrar para finalizar.

Precaución

Continúe con los pasos siguientes solo si ha validado la conectividad de red entre los entornos de origen y de destino. De lo contrario, solucione los problemas de conectividad de red antes de continuar.

Migración de certificados de una base de datos protegida por TDE (opcional)

Si va a vincular una base de datos de SQL Server protegida por el Cifrado de datos transparente (TDE) a una instancia administrada, debe migrar el certificado de cifrado correspondiente de la máquina virtual de Azure o local de la instancia de SQL Server a la instancia administrada antes de usar el vínculo. Para obtener pasos detallados, vea Migración de un certificado de una base de datos protegida por TDE a Azure SQL Managed Instance.

Las bases de datos de SQL Managed Instance cifradas con claves TDE administradas por el servicio no pueden vincularse a SQL Server. Solo puede vincular una base de datos cifrada en SQL Server si se cifró con una clave administrada por el cliente y el servidor de destino tiene acceso a la misma clave que se usa para cifrar la base de datos. Para más información, consulte Configuración de TDE de SQL Server con Azure Key Vault.

Nota:

Azure Key Vault es compatible con SQL Server en Linux a partir de SQL Server 2022 CU 14.

Instalación de SSMS

SQL Server Management Studio (SSMS) es la manera más fácil de usar el vínculo de Instancia administrada. Descargue SSMS versión 19.0 o posterior e instálelo en la máquina cliente.

Una vez finalizada la instalación, abra SSMS y conéctese a la instancia de SQL Server compatible. Haga clic con el botón derecho en una base de datos de usuario y compruebe que se muestre la opción Azure SQL Managed Instance link (Vínculo de Azure SQL Managed Instance) en el menú.

Captura de pantalla que muestra la opción de vínculo Azure SQL Managed Instance en el menú contextual.

Configuración de SSMS para nubes de administración pública

Si quiere implementar SQL Managed Instance en una nube de administración pública, debe modificar la configuración de SQL Server Management Studio (SSMS) para usar la nube correcta. Si no va a implementar SQL Managed Instance en una nube de administración pública, omita este paso.

Para actualizar la configuración de SSMS, siga estos pasos:

  1. Abra SSMS.
  2. En el menú, elija Herramientas y, después, Opciones.
  3. Expanda Servicios de Azure y seleccione Nube de Azure.
  4. En Seleccionar nube de Azure, use la lista desplegable para elegir AzureUSGovernment u otra nube de administración pública, como AzureChinaCloud:

Captura de pantalla de la interfaz de usuario de SSMS, página de opciones, servicios de Azure, con la nube de Azure resaltada.

Si quiere volver a la nube pública, elija AzureCloud en la lista desplegable.

Para usar el vínculo:

Para más información sobre el vínculo:

Para otros escenarios de replicación y migración, considere lo siguiente: