Compartir vía


Tutorial: Migración de SQL Server a Azure SQL Database sin conexión

Puede usar Azure Database Migration Service a través de Azure Portal para migrar bases de datos de una instancia local de SQL Server a Azure SQL Database (sin conexión).

En este tutorial, aprenderá a migrar la base de datos de ejemplo AdventureWorks2022 de una instancia local de SQL Server a Azure SQL Database mediante Database Migration Service. Este tutorial utiliza el modo de migración sin conexión, en el que se tiene en cuenta un tiempo de inactividad aceptable durante el proceso de migración.

En este tutorial, aprenderá a:

  • Creación de una instancia de Azure Database Migration Service
  • Iniciar la migración y supervisar el progreso hasta su finalización.

Importante

Actualmente, las migraciones en línea para destinos de Azure SQL Database no están disponibles con Azure Database Migration Service. Con una migración sin conexión, el tiempo de inactividad de la aplicación se inicia cuando comienza la migración. Se recomienda probar una migración sin conexión para determinar si el tiempo de inactividad es aceptable.

Opciones de migración

En la sección siguiente se describe cómo usar Azure Database Migration Service con Azure Portal.

Requisitos previos

Antes de comenzar el tutorial:

  • Asegúrese de que puede acceder a Azure Portal.

  • Asegúrese de que el proveedor de recursos Microsoft.DataMigration esté registrado en la suscripción.

  • Debe tener una cuenta de Azure que esté asignada a uno de los siguientes roles integrados:

    • Colaborador para la base de datos SQL de Azure de destino
    • Rol de lector para el grupo de recursos de Azure que contiene la base de datos SQL de Azure de destino
    • Rol de propietario o colaborador de la suscripción de Azure (necesario si crea una nueva instancia de Azure Database Migration Service).

    Como alternativa al uso de uno de estos roles integrados, puede asignar un rol personalizado.

  • Cree una instancia de Azure SQL Database de destino.

  • Asegúrese de que el inicio de sesión de SQL Server que conecta con la instancia de SQL Server de origen sea miembro del rol db_datareader y que el inicio de sesión de la instancia de SQL Server de destino sea miembro del rol de db_owner.

  • Para migrar el esquema de base de datos del origen al destino de Azure SQL Database mediante Database Migration Service, la versión mínima admitida de SHIR necesaria es 5.37 o superior.

  • Para la migración de esquemas, los permisos mínimos en el SQL Server de origen es db_owner para acceder a la base de datos y en el Azure SQL Database de destino, el usuario debe ser miembro de todos los roles de nivel de servidor de la tabla siguiente:

Funciones Descripción
##MS_DatabaseManager## Los miembros del rol fijo de servidor ##MS_DatabaseManager## pueden crear y eliminar bases de datos. Un miembro del rol ##MS_DatabaseManager## que crea una base de datos se convierte en el propietario de esa base de datos, lo que permite que ese usuario se conecte a esa base de datos como usuario dbo. El usuario dbo tiene todos los permisos de base de datos en la base de datos. Los miembros del rol ##MS_DatabaseManager## no tienen necesariamente permiso para acceder a las bases de datos que no poseen. Se recomienda usar este rol de servidor a través del rol de nivel de base de datos dbmanager que existe en la master base de datos.
##MS_DatabaseConnector## Los miembros del rol de servidor fijo ##MS_DatabaseConnector## pueden conectarse a cualquier base de datos sin necesitar una cuenta de usuario en la base de datos.
##MS_DefinitionReader## Los miembros del rol fijo de servidor ##MS_DefinitionReader## pueden leer todas las vistas de catálogo cubiertas por VIEW ANY DEFINITION en cualquier base de datos en la que el miembro de este rol tenga una cuenta de usuario.
##MS_LoginManager## Los miembros del rol fijo de servidor ##MS_LoginManager## pueden crear y eliminar inicios de sesión. Se recomienda usar este rol de servidor a través del rol de nivel de base de datos loginmanager que existe en la master base de datos.

Prepare el Azure SQL Database de destino

Para crear el inicio de sesión y el usuario en la base de datos Azure SQL de destino, ejecute el siguiente script en la base de datos master.

CREATE LOGIN testuser WITH PASSWORD = '<password>';

ALTER SERVER ROLE ##MS_DefinitionReader## ADD MEMBER [testuser];
GO

ALTER SERVER ROLE ##MS_DatabaseConnector## ADD MEMBER [testuser];
GO

ALTER SERVER ROLE ##MS_DatabaseManager## ADD MEMBER [testuser];
GO

ALTER SERVER ROLE ##MS_LoginManager## ADD MEMBER [testuser];
GO

CREATE USER testuser FOR LOGIN testuser;
EXECUTE sp_addRoleMember 'dbmanager', 'testuser';
EXECUTE sp_addRoleMember 'loginmanager', 'testuser';

Ahora, puede migrar el esquema de la base de datos y los datos mediante Database Migration Service. También puede usar otras herramientas como la extensión Proyectos de SQL Database en Visual Studio Code para migrar el esquema antes de seleccionar la lista de tablas que se van a migrar.

Nota:

Si no existen tablas en el destino de Azure SQL Database o no se selecciona ninguna tabla antes de iniciar la migración, el botón Siguiente no está disponible para iniciar la migración. Si no existe ninguna tabla en el destino, debe seleccionar la opción de migración de esquema para avanzar.

Creación de una instancia de Azure Database Migration Service

Paso 1: en Azure Portal, acceda a Azure Database Migration Service. Cree una nueva instancia de Azure Database Migration Service o reutilice una instancia existente anteriormente creada.

Uso de una instancia existente de Database Migration Service

Para usar una instancia existente de Database Migration Service, siga estos pasos:

  • En Azure Portal, en Azure Database Migration Services, seleccione una instancia existente de Database Migration Service que desee usar; asegúrese de que esté presente en el grupo de recursos y la región adecuados.

    Captura de pantalla que muestra la información general de Database Migration Service.

Creación de una nueva instancia de Database Migration Service

Para crear una nueva instancia de Database Migration Service, siga estos pasos:

  1. En Azure Portal, en Azure Database Migration Service, seleccione Crear.

    Captura de pantalla que muestra la opción de creación de Database Migration Service.

  2. En Seleccionar escenario de migración y Database Migration Service, configure la entrada deseada como «Tipo de servidor de origen y destino», elija Database Migration Service y escoja Seleccionar.

    Captura de pantalla que muestra los escenarios de migración de Database Migration Service.

  3. En la siguiente pantalla, Crear Data Migration Service, seleccione la suscripción y el grupo de recursos y, a continuación, seleccione Ubicación e introduzca el nombre del Database Migration Service. Seleccione Revisar + crear. De este modo, se crea el Azure Database Migration Service.

    Captura de pantalla que muestra los detalles necesarios a introducir en el servicio migración de la base de datos.

  4. Si se requiere el entorno de ejecución de integración autohospedado (SHIR), seleccione Entorno de ejecución de integración en la sección de configuración de la página de información general de su Database Migration Service y complete los pasos siguientes:

    1. Seleccione Configuración y escoja el vínculo Descargar e instalar el entorno de ejecución de integración para abrir el vínculo de descarga en un explorador web. Descargue el entorno de ejecución de integración y, luego, instálelo en un equipo que cumpla los requisitos previos para la conexión con la instancia de SQL Server de origen. Para más información, consulte Entorno de ejecución de integración autohospedado para migraciones de bases de datos.

      Captura de pantalla que muestra el vínculo Descargar e instalar el entorno de integración.

      Una vez completada la instalación, se abre automáticamente Microsoft Integration Runtime Configuration Manager para iniciar el proceso de registro.

    2. En la tabla Clave de autenticación, copie una de las claves de autenticación que se proporcionan en el asistente y péguela en Microsoft Integration Runtime Configuration Manager.

      Captura de pantalla que resalta la tabla de claves de autenticación en el asistente.

      Si la clave de autenticación es válida, aparece una marca de verificación verde en Integration Runtime Configuration Manager. Una marca verde de verificación indica que puede continuar con el registro.

      Después de registrar el entorno de ejecución de integración autohospedado, cierre Microsoft Integration Runtime Configuration Manager. Los detalles del nodo pueden tardar varios minutos en reflejarse en Azure Portal para Database Migration Service, en Configuración > Entorno de ejecución de integración.

      Captura de pantalla que resalta el estado SHIR en Azure Portal.

      Nota:

      Para obtener más información sobre el entorno de ejecución de integración autohospedado, vea Creación y configuración de un entorno de ejecución de integración autohospedado.

Inicio de una nueva migración

  1. Para iniciar una nueva migración, vaya a Azure Database Migration Service en Azure Portal y use +Crear para crear una nueva instancia de Database Migration Service o seleccione una instancia existente y, a continuación, vaya a la instancia de Azure Database Migration Service.

  2. En el panel Información general de la instancia de Azure Database Migration Service, seleccione Nueva migración:

    Captura de pantalla del panel de migración de Azure Database.

  3. En Seleccionar nuevo escenario de migración, elija el los tipos de servidor de origen y destino y el modo de migración, y escoja Seleccionar.

    Captura de pantalla de la selección del nuevo escenario de migración.

  4. En el Asistente para la migración sin conexión de Azure SQL Database, siga estos pasos:

    1. En la pestaña Detalles del origen, escriba los detalles de la instancia de SQL Server de origen y, a continuación, seleccione Siguiente: Conectarse al origen de SQL Server:

      Captura de pantalla del seguimiento de origen.

    2. En la pestaña Conectarse al origen de SQL Server , proporcione los detalles de conexión y, a continuación, seleccione Siguiente: Seleccione bases de datos para la migración:

      Captura de pantalla de Conexión al origen.

    3. En la pestaña Seleccionar bases de datos para la migración , active la casilla situada junto a las bases de datos que desea migrar. Rellenar la lista de bases de datos puede tardar algún tiempo. Seleccione Siguiente: Conectarse a Azure SQL Database de destino.

      Captura de pantalla de seleccionar la base de datos.

    4. En la pestaña Conectarse a Azure SQL Database de destino , proporcione los detalles de conexión y seleccione Siguiente: Asignar bases de datos de origen y de destino:

      Captura de pantalla del destino de conexión.

    5. En la pestaña Asignar bases de datos de origen y destino , asigne las bases de datos entre el origen y el destino.

      Captura de pantalla de las bases de datos de mapa.

    6. (Opcional) Active la casilla situada junto a Migrar esquema que falta para implementar objetos de esquema que faltan desde el origen al destino de Azure SQL Database para migrar los siguientes objetos de esquema con una sola casilla:

      • Esquemas
      • Tablas (seleccionadas)
      • Índices
      • Vistas
      • Procedimientos almacenados (StoredProcedures)
      • Sinónimos
      • Desencadenadores DDL (DdlTriggers)
      • Valores predeterminados
      • Catálogos de texto completo (FullTextCatalogs)
      • Guías de plan (PlanGuides)
      • Funciones
      • Reglas
      • Roles de aplicaciones (ApplicationRoles)
      • Agregados definidos por el usuario (UserDefinedAggregates)
      • Tipos de datos definidos por el usuario (UserDefinedDataTypes)
      • Funciones definidas por el usuario (UserDefinedFunctions)
      • Tipos de tabla definidos por el usuario (UserDefinedTableTypes)
      • Tipos definidos por el usuario (UserDefinedTypes)
      • Usuarios* (no todos los tipos de usuario)
      • XmlSchemaCollections

      Nota:

      • Si selecciona Migrar esquema que falta, database Migration service realiza la migración del esquema antes de migrar los datos.
      • DMS continúa con la fase de migración de datos incluso si la migración de esquema encuentra errores, a menos que haya problemas con objetos de tabla.

      A continuación, use Seleccionar todas las tablas para migrar todas las tablas o use el cuadro de entrada de texto para filtrar la lista de tablas y seleccionar tablas individuales para migrar. A continuación, seleccione Siguiente: Resumen de la migración de base de datos.

      Captura de pantalla de selección de esquema y tablas.

    7. En la pestaña Resumen de la migración de base de datos, revise los detalles y seleccione Iniciar migración, que inicia la migración de la base de datos y le lleva automáticamente al panel de Database Migration Service.

      Captura de pantalla del resumen.

      Nota:

      Para una migración sin conexión, el tiempo de inactividad de la aplicación se inicia cuando se inicia la migración.

Supervisión de la migración de la base de datos

  1. Para supervisar la migración de la base de datos, en el panel Información general de la instancia de Database Migration Service, seleccione Supervisar migraciones.

    Captura de pantalla de información general de Azure Database Migration Service en Azure Portal.

  2. En la pestaña Migraciones, puede efectuar un seguimiento de las migraciones en curso, completadas y con errores (si las hay), o puede ver todas las migraciones de base de datos. En la barra de menús, seleccione Actualizar para actualizar el estado de la migración.

    Captura de pantalla de la supervisión del panel de DMS.

    Database Migration Service devuelve el estado de migración más reciente conocido cada vez que se actualiza el estado de migración. En la tabla siguiente se describen los posibles estados:

    Estado Descripción
    Crear El servicio está iniciando la migración.
    Preparación para la copia El servicio está deshabilitando estadísticas automáticas, desencadenadores e índices en la tabla de destino.
    Copiar Los datos se copian de la base de datos de origen a la base de datos de destino.
    Copia finalizada La copia de datos ha finalizado. El servicio está a la espera de que otras tablas terminen de copiarse para comenzar los pasos finales a fin de devolver las tablas al esquema original
    Reconstrucción de índices El servicio está recompilando los índices de las tablas de destino.
    Exitoso Todos los datos se copian y los índices se vuelven a compilar.
  3. En Nombre de origen, seleccione un nombre de base de datos para abrir la vista de tabla. En esta vista detallada, verá el estado actual de la migración, el número de tablas que están actualmente en ese estado y un estado detallado de cada tabla:

    Captura de pantalla de supervisión detallada de la migración.

  4. Después de migrar todos los datos de tabla al destino de Azure SQL Database, Database Migration Service actualiza el estado de la migración de En curso a Correcto.

    Captura de pantalla del éxito detallado de la migración.

Nota:

Database Migration Service optimiza la migración omitiendo las tablas sin datos (0 filas). Las tablas que no tienen datos no aparecen en la lista, incluso si seleccionó las tablas al crear la migración.

Ahora ha completado la migración a Azure SQL Database. Realice una serie de tareas posteriores a la migración para garantizar que todo funcione sin problemas y de forma eficaz.


Limitaciones

La migración sin conexión de Azure SQL Database emplea canalizaciones de Azure Data Factory (ADF) para el movimiento de datos y, por tanto, respeta las limitaciones de ADF. También se crea una instancia de ADF correspondiente cuando se crea un servicio de migración de base de datos. Por lo tanto, se aplican límites de fábrica por servicio.

  • La máquina donde se instala SHIR actúa como el recurso computacional para la migración. Asegúrese de que esta máquina pueda administrar la carga de CPU y memoria de la copia de datos. Para obtener más información, consulte Creación y configuración de un entorno de ejecución de integración autohospedado.
  • Límite de 100 000 tablas por base de datos.
  • Límite de 10 000 migraciones simultáneas de bases de datos por servicio.
  • La velocidad de migración depende en gran medida del SKU de Azure SQL Database de destino y del host de entorno de ejecución de integración autohospedado.
  • La migración de Azure SQL Database se escala de forma deficiente con el número de tablas debido a la sobrecarga de ADF al iniciar actividades. Si una base de datos tiene miles de tablas, el proceso de inicio de cada tabla puede tardar un par de segundos, aunque estén compuestas por una fila con 1 bit de datos.
  • Los nombres de tabla de Azure SQL Database con caracteres de doble byte no se admiten actualmente para la migración. La mitigación consiste en cambiar el nombre de las tablas antes de la migración; se pueden volver a cambiar a sus nombres originales después de una migración correcta.
  • Es posible que las tablas con columnas de blobs grandes no migren debido a un tiempo de espera.
  • Los nombres de base de datos con SQL Server reservado no se admiten actualmente.
  • Los nombres de tabla que incluyen punto y coma no se admiten actualmente.
  • Las columnas calculadas no se migran.
  • Las columnas de la base de datos de origen que tienen restricciones predeterminadas y contienen NULL valores, se migran con sus valores predeterminados definidos en la base de datos de Azure SQL de destino, en lugar de conservar los VALORES NUL.