Preparación del entorno para una migración de máquinas virtuales con SQL (versión preliminar): SQL Server migración en Azure Arc

Se aplica a:SQL Server

Este artículo le ayuda a preparar el entorno para una migración de la máquina virtual de SQL Server de una instancia de SQL Server habilitada por Azure Arc a SQL Server en máquinas virtuales de Azure en el portal de Azure.

Nota:

Prerrequisitos

Para migrar las bases de datos de SQL Server a SQL Server en máquinas virtuales de Azure a través del portal de Azure, necesita los siguientes requisitos previos:

Versiones de SQL Server admitidas

La migración de máquinas virtuales de SQL Server funciona con cada edición de SQL Server en Windows y Linux.

En la tabla siguiente se enumeran las versiones mínimas admitidas SQL Server para la migración:

versión de SQL Server Actualización de mantenimiento mínima necesaria
SQL Server 2025 (17.x) SQL Server 2025 RTM (17.0.1000.7)
SQL Server 2022 (16.x) SQL Server 2022 RTM (16.0.1000.6)
SQL Server 2019 (15.x) SQL Server 2019 RTM (15.0.2000.5)
SQL Server 2017 (14.x) SQL Server 2017 RTM (14.0.1000.169)
SQL Server 2016 (13.x) SQL Server 2016 RTM (13.0.1400.361)
SQL Server 2014 (12.x) SQL Server 2014 RTM (12.0.2000.8)
SQL Server 2012 (11.x) SQL Server 2012 RTM (11.0.2100.60)

Permisos

En esta sección se describen los permisos necesarios para migrar las bases de datos de SQL Server a SQL Server en máquinas virtuales de Azure a través del portal de Azure.

En la instancia de SQL Server de origen, necesita los siguientes permisos:

  • Si habilita privilegios mínimos, se conceden los permisos necesarios, como sysadmin, según sea necesario durante el proceso de migración de la base de datos.
  • Si no puede usar privilegios mínimos, necesita permisos sysadmin en la instancia de SQL Server de origen.

Necesita el rol Colaborador de máquina virtual en la máquina virtual de Azure de destino para realizar la migración.

Crear una cuenta de almacenamiento

Usted utiliza una cuenta de Azure Blob Storage como almacenamiento intermedio para archivos de respaldo entre su instancia de SQL Server y su VM de Azure. La cuenta de almacenamiento debe estar en la misma suscripción y región de Azure que el servidor SQL en la máquina virtual de destino en Azure.

Para crear una nueva cuenta de almacenamiento y un contenedor de blobs dentro de esa cuenta:

  1. Cree una cuenta de almacenamiento:
    1. Busque Cuentas de almacenamiento en el portal de Azure y seleccione Crear.
    2. En la pestaña Aspectos básicos , seleccione la suscripción y el grupo de recursos. La región debe ser la misma que en la instancia de SQL Server en VM de Azure de destino.
    3. Deje el tipo de almacenamiento preferido en blanco.
    4. Use la configuración predeterminada para el resto de las pestañas y seleccione Revisar y crear.
    5. Una vez pasada la validación, seleccione Crear.
  2. Cree un contenedor de blobs dentro de la cuenta de almacenamiento.
    1. Vaya a la nueva cuenta de almacenamiento en el portal de Azure.
    2. En Almacenamiento de datos, seleccione Contenedores.
    3. Use Agregar contenedor para abrir el panel Nuevo contenedor .
    4. Escriba un nombre para el contenedor, deje las opciones en sus valores predeterminados y seleccione Crear para crear el contenedor.
  3. (Opcional) Si el Azure Storage está detrás de un firewall, el almacenamiento de blobs de Azure requiere configuración adicional después de aprovisionar la máquina virtual de SQL Server. Configure la delegación de la subred con el nombre vm.

Concesión de permisos para Azure Blob Storage

Migración de máquinas virtuales de SQL Server en Azure Arc usa una identidad administrada para autenticarse con Azure Blob Storage.

Debe conceder los siguientes permisos:

Concesión de acceso de usuario a la cuenta de almacenamiento

Para acceder a las copias de seguridad de la base de datos durante el proceso de migración, asigne al usuario que inicia sesión en el portal de Azure y realice la migración a la Storage Blob Data Reader rol de la cuenta de almacenamiento que contiene las copias de seguridad.

Para asignar el rol, siga estos pasos:

  1. En el portal de Azure, vaya al grupo de recursos que contiene la cuenta de almacenamiento.

  2. Seleccione Control de acceso (IAM) en el menú de recursos.

  3. Use + Agregar para seleccionar Agregar asignación de roles y abra el panel Agregar asignación de roles .

  4. Busque y seleccione el rol Lector de datos de Storage Blob . Después, seleccione Siguiente.

    Captura de pantalla de la búsqueda del rol de Lector de datos de blobs de almacenamiento en la página IAM de la cuenta de almacenamiento en el portal de Azure.

  5. Use + Seleccionar miembros para abrir el panel Seleccionar miembros y busque la cuenta de usuario de la persona que realiza la migración. Si varias personas van a migrar datos, conceda a todos esos usuarios este acceso. Seleccione la cuenta de usuario y, a continuación, use Seleccionar para guardar la selección. Active la opción para asignar acceso a usuario, grupo o entidad de servicio.

  6. Seleccione Revisar y asignar para ir a la pestaña Revisar y asignar y, a continuación, seleccione Revisar y asignar de nuevo para completar la asignación de roles.

Concesión de acceso de usuario al grupo de recursos

Para acceder a las copias de seguridad de la base de datos durante el proceso de migración, el usuario que inicia sesión en el portal de Azure y realiza la migración debe asignarse el rol Reader en el grupo de recursos que contiene la cuenta de almacenamiento.

Para asignar el rol, siga estos pasos:

  1. En el portal de Azure, vaya al grupo de recursos que contiene la cuenta de almacenamiento.

  2. Seleccione Control de acceso (IAM) en el menú de recursos.

  3. Use + Agregar para seleccionar Agregar asignación de roles y abra el panel Agregar asignación de roles .

  4. Busque y seleccione el rol Lector . Después, seleccione Siguiente.

    Captura de pantalla de la búsqueda del rol Lector en la página IAM del grupo de recursos en el portal de Azure.

  5. Use + Seleccionar miembros para abrir el panel Seleccionar miembros y busque la cuenta de usuario de la persona que realiza la migración. Si varias personas van a migrar datos, conceda a todos esos usuarios este acceso. Seleccione la cuenta de usuario y, a continuación, use Seleccionar para guardar la selección. Active la opción para asignar acceso a usuario, grupo o entidad de servicio y, a continuación, use Siguiente para continuar.

  6. En la pestaña Tipo de asignación , establezca el tipo de asignación en Activo y la duración de la asignación en Permanente:

    Pantallazo de la configuración del tipo de asignación a Activo y la duración de la asignación a Permanente en la pestaña de Tipo de Asignación del portal de Azure.

  7. Seleccione Revisar y asignar para ir a la pestaña Revisar y asignar y, a continuación, seleccione Revisar y asignar de nuevo para completar la asignación de roles.

Concesión de acceso de identidad administrada a la cuenta de almacenamiento

Después de aprovisionar la máquina virtual de SQL Server, debe asignar a la identidad administrada de ésta el rol de Storage Blob Data Reader para que pueda acceder a la cuenta de Azure Blob Storage durante el proceso de migración.

En primer lugar, debe determinar qué tipo de identidad administrada usa la máquina virtual de SQL Server. Para ello, siga estos pasos:

  1. Vaya al recurso Redes virtuales en el portal de Azure.
  2. En Seguridad, seleccione Identidad para abrir el panel Identidad . Elija entre usar la identidad asignada por el sistema o una identidad asignada por el usuario :
    1. En la pestaña Asignado por el sistema, puede usar el conmutador de Estado para habilitar la identidad asignada por el sistema si aún no está habilitada. Si la identidad asignada por el sistema está habilitada, después puede seleccionar Asignaciones de roles de Azure para ir a la página de Asignaciones de roles de Azure y luego usar +Agregar asignación de roles (versión preliminar) para conceder permisos de Storage Blob Data Reader a la identidad asignada por el sistema del SQL Server VM seleccionando Storage como Scope y luego seleccionando su recurso.
    2. En la pestaña Usuario asignado, puede ver la lista de identidades asignadas por el usuario que están asociadas a la máquina virtual de SQL Server. Si quiere agregar una nueva identidad asignada por el usuario, seleccione + Agregar identidad asignada por el usuario y, a continuación, seleccione una identidad asignada por el usuario existente de la suscripción para asociarla a la máquina virtual de SQL Server. Anote el nombre de la identidad asignada por el usuario que desea usar para la autenticación para Azure Blob Storage, ya que lo necesitará para los pasos siguientes.

Para conceder acceso a la identidad administrada asignada por el usuario a la cuenta de almacenamiento, siga estos pasos:

  1. Vaya a la cuenta de Azure Blob Storage en el portal de Azure que quiere usar para la migración.
  2. Seleccione Control de acceso (IAM) en el menú de recursos.
  3. Use + Agregar para seleccionar Agregar asignación de roles y abra el panel Agregar asignación de roles .
  4. Busque y seleccione el rol Lector de datos de Storage Blob . Después, seleccione Siguiente.
  5. En Asignar acceso para comprobar la opción Identidad administrada .
  6. Use Seleccionar miembros para abrir el panel Seleccionar miembros .
  7. En Identidad administrada, seleccione Identidad administrada asignada por el usuario.
  8. Busque el nombre Primary identity que anotó anteriormente en la página Identity de la SQL Server VM y selecciónela.
  9. Use Seleccionar para guardar la selección.
  10. Seleccione Revisar y asignar para ir a la pestaña Revisar y asignar y, a continuación, seleccione Revisar y asignar de nuevo para completar la asignación de roles.

Carga de copias de seguridad en la cuenta de Blob Storage

Cuando el contenedor de blobs esté listo y haya confirmado que la máquina virtual de SQL Server puede acceder al contenedor, puede empezar a cargar las copias de seguridad en la cuenta de Azure Blob Storage. Cuando todas las copias de seguridad se cargan en la cuenta de almacenamiento, está listo para continuar con la migración.

Para cargar las copias de seguridad en Azure:

  1. Realice copias de seguridad en una instancia de SQL Server.
  2. Copy las copias de seguridad en la cuenta de Blob Storage.

Puede usar los siguientes procedimientos recomendados:

  • Realice copias de seguridad con COMPRESSION opciones y CHECKSUM para reducir el tamaño de los archivos de copia de seguridad y evitar la migración de una base de datos dañada.
  • Realice copias de seguridad en lotes más pequeños.
  • Utilice hilos de carga en paralelo.
  • Haga que el último archivo de copia de seguridad sea lo más pequeño posible.
  • Para migrar varias bases de datos mediante el mismo contenedor de Azure Blob Storage, coloque todos los archivos de copia de seguridad de una base de datos individual en una carpeta independiente dentro del contenedor. Use una estructura de archivos plana para cada carpeta de base de datos. No se admite el anidamiento de carpetas dentro de carpetas de base de datos.

Realizar copias de seguridad en una instancia de SQL Server

Los pasos de esta sección muestran cómo realizar copias de seguridad localmente, pero también es posible hacer una copia de seguridad directamente en la URL.

Establezca las bases de datos que quiere migrar en el modo de recuperación completa para permitir copias de seguridad de registros.

-- To permit log backups, before the full database backup, modify the database to use the full recovery
USE master;

ALTER DATABASE SampleDB
SET RECOVERY FULL;
GO

Si aún no tiene copias de seguridad existentes, para realizar manualmente copias de seguridad completas, diferenciales y de registro de la base de datos en el almacenamiento local, use los siguientes scripts T-SQL de ejemplo. CHECKSUM no es necesario, pero es recomendable para evitar la migración de una base de datos dañada y para tiempos de restauración más rápidos.

En el ejemplo siguiente, se realiza una copia de seguridad completa de la base de datos en el disco local:

-- Take full database backup to local disk
BACKUP DATABASE [SampleDB]
    TO DISK = 'C:\BACKUP\SampleDB_full.bak'
    WITH INIT, COMPRESSION, CHECKSUM;
GO

En el ejemplo siguiente, se realiza una copia de seguridad diferencial en el disco local:

-- Take differential database backup to local disk
BACKUP DATABASE [SampleDB]
    TO DISK = 'C:\BACKUP\SampleDB_diff.bak'
    WITH DIFFERENTIAL, COMPRESSION, CHECKSUM;
GO

En el ejemplo siguiente, se realiza una copia de seguridad de registros en el disco local:

-- Take transactional log backup to local disk
BACKUP LOG [SampleDB]
    TO DISK = 'C:\BACKUP\SampleDB_log.trn'
    WITH COMPRESSION, CHECKSUM;
GO

Copia de copias de seguridad en la cuenta de Blob Storage

Una vez que las copias de seguridad estén listas y quiera empezar a migrar bases de datos a una máquina virtual de SQL Server, use los siguientes enfoques para copiar las copias de seguridad existentes en la cuenta de Blob Storage:

Nota:

Para migrar varias bases de datos mediante el mismo contenedor de Azure Blob Storage, coloque todos los archivos de copia de seguridad de una base de datos individual en una carpeta independiente dentro del contenedor. Use una estructura de archivos plana para cada carpeta de base de datos. No se admite el anidamiento de carpetas dentro de carpetas de base de datos.

Valide el acceso al almacenamiento de su máquina virtual SQL Server

Compruebe que la máquina virtual de SQL Server puede acceder a la cuenta de Blob Storage.

En primer lugar, cargue cualquier copia de seguridad de base de datos, como full_0_0.bak, en el contenedor de Azure Blob Storage.

A continuación, conéctese a la máquina virtual de SQL Server y ejecute una consulta de prueba de ejemplo para determinar si la máquina virtual de SQL Server puede acceder a la copia de seguridad en el contenedor.

Si usa un token de SAS para autenticarse en la cuenta de almacenamiento, reemplace el <sastoken> por el token de SAS y ejecute la siguiente consulta en la máquina virtual de SQL Server:

CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/databases]
    WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
    SECRET = '<sastoken>';

RESTORE HEADERONLY
    FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/full_0_0.bak';

Registrar máquinas virtuales de SQL Server con la extensión del agente de SQL IaaS

Si la máquina virtual de SQL Server de destino ya existe, debe registrarla con la extensión del agente de SQL IaaS antes de poder seleccionarla como destino de migración en el portal de Azure. Si la máquina virtual de SQL Server de destino aún no existe, puede aprovisionar una nueva durante el proceso de migración y se registrará automáticamente con la extensión de Agente IaaS de SQL.

Limitaciones

Tenga en cuenta las siguientes limitaciones al migrar las bases de datos de SQL Server a SQL Server en máquinas virtuales de Azure a través del portal de Azure:

  • Si migra una base de datos única, debe colocar las copias de seguridad de la base de datos en una estructura de archivos planos dentro de una carpeta de base de datos (incluida la carpeta raíz del contenedor). No se pueden anidar estas carpetas, ya que no se admite el anidamiento.
  • Si migra varias bases de datos con el mismo contenedor de Azure Blob Storage, debe colocar archivos de copia de seguridad para distintas bases de datos en carpetas independientes dentro del contenedor.
  • No se pueden sobrescribir las bases de datos existentes en el SQL Server de destino en una máquina virtual de Azure mediante DMS.
  • La migración de SQL Server no admite la configuración de la alta disponibilidad y la recuperación ante desastres en el destino para que coincida con la topología de origen.
  • No se admiten los siguientes objetos de servidor:
    • tareas del Agente de SQL Server
    • Credentials
    • paquetes de SQL Server Integration Services (SSIS)
    • Auditoría de servidor
  • No puede usar un entorno de ejecución de integración autohospedado existente creado a partir de Azure Data Factory (ADF) para migraciones de bases de datos con DMS.
  • Las máquinas virtuales con versiones de destino de SQL Server 2008 y versiones anteriores no se admiten al migrar a SQL Server en una máquina virtual de Azure.
  • Se requiere el registro con la extensión agente de IaaS de SQL para la migración. La extensión solo admite una instancia predeterminada o una única instancia con nombre.
  • Puede migrar un máximo de 100 bases de datos a la misma máquina virtual de Azure que el destino mediante una o varias migraciones simultáneamente. Además, una vez finalizada una migración con 100 bases de datos, espere al menos 30 minutos antes de iniciar una nueva migración al mismo SQL Server en una máquina virtual de Azure como destino. Además, cada operación de migración (iniciar la migración, transición) para cada base de datos tarda unos minutos secuencialmente. Por ejemplo, para migrar 100 bases de datos, puede tardar aproximadamente 200 (2 x 100) minutos en crear las colas de migración y aproximadamente 100 (1 x 100) minutos para recortar todas las 100 bases de datos (excepto el tiempo de copia de seguridad y restauración). Por tanto, la migración es más lenta a medida que aumenta el número de bases de datos. Debe programar una ventana de migración más larga de antemano en función de las rigurosas pruebas de migración o crear particiones de un gran número de bases de datos en lotes al migrarlas a SQL Server en una máquina virtual de Azure.
  • Además de configurar las redes o firewall de la cuenta de Azure Storage para permitir que la máquina virtual acceda a los archivos de copia de seguridad, también debe configurar las redes o el firewall de la SQL Server en una máquina virtual de Azure para permitir la conexión saliente a la cuenta de almacenamiento.
  • Debe mantener encendida la máquina virtual de Azure de destino mientras esté en curso la migración de SQL Server. Además, al crear una nueva migración, realice la conmutación por error o cancele cualquier migración que esté en curso.

Paso siguiente