VENTAS: 1-800-867-1389

Migración de datos a Base de datos SQL de Azure: herramientas y técnicas

Actualizado: mayo de 2014

Este documento proporciona instrucciones para la migración de la definición de datos (esquema) y los datos a Base de datos SQL de Microsoft Azure. Está dirigida principalmente a una migración única de SQL Server a Base de datos SQL de Azure.

Microsoft Azure ofrece varias opciones para el almacenamiento de datos. Puede usar una de ellas o varias en sus proyectos.

Base de datos SQL de Microsoft Azure es tecnología de SQL Server proporcionada como un servicio en la plataforma Azure. Las soluciones Base de datos SQL de Azure basadas en la nube pueden aportar muchas ventajas, incluido aprovisionamiento rápido, escalabilidad rentable, alta disponibilidad y menor sobrecarga de administración. Base de datos SQL de Azure admite las mismas herramientas y prácticas de desarrollo que se usan para las aplicaciones locales de SQL Server. Por tanto, debe resultar una experiencia familiar para la mayoría de los desarrolladores.

El objetivo a largo plazo para SQL Server y Base de datos SQL de Azure es lograr simetría y paridad en cuanto a sus características y capacidades; sin embargo, actualmente hay diferencias en la arquitectura y la implementación que es necesario resolver al migrar bases de datos a Base de datos SQL de Azure y desarrollar soluciones de Base de datos SQL de Azure.

Antes de migrar una base de datos a Base de datos SQL de Azure, es importante entender cuándo realizar la migración y las diferencias existentes entre Base de datos SQL de Azure y SQL Server.

La plataforma Azure incluye tres ofertas de almacenamiento principales. Almacenamiento de Azure contiene Tabla, Blob y Cola. Al diseñar una solución de Azure, debe evaluar las diferentes opciones y usar cada mecanismo de almacenamiento para sacar el máximo partido de esa parte de la solución. Para obtener información sobre los niveles de servicio y las ofertas del nuevo Azure, lea “Niveles de servicio para Base de datos SQL (ediciones)”.

 

Oferta de almacenamiento

Finalidad

Tamaño máximo

Base de datos SQL de Microsoft Azure

Sistema de administración de bases de datos relacionales

150 GB

Almacenamiento de Azure

Blob

Almacenamiento duradero para objetos binarios grandes como vídeo o audio

200 GB o 1 TB

Tabla

Almacenamiento duradero para datos estructurados

100 TB

Queue

Almacenamiento duradero para mensajes entre procesos

100 TB

Almacenamiento local

Almacenamiento temporal por instancia

De 250 GB a 2 TB

El almacenamiento local proporciona almacenamiento temporal para una instancia de aplicación en ejecución de forma local. Un almacén local solo está disponible para la instancia local. Si la instancia se reinicia en hardware diferente, como ocurre cuando se produce un error de hardware o cuando se realizan tareas de mantenimiento de hardware, los datos del almacén local no siguen a la instancia. Si la aplicación necesita durabilidad confiable de los datos, desea compartir datos entre instancias o tiene acceso a los datos fuera de Azure, considere la posibilidad de usar una cuenta de Almacenamiento de Azure o Base de datos SQL de Microsoft Azure en su lugar.

Base de datos SQL de Azure proporciona capacidades de procesamiento de datos mediante consultas, transacciones y procedimientos almacenados que se ejecutan en el lado servidor; solo los resultados se devuelven a la aplicación. Si tiene una aplicación que necesita procesamiento de datos e implica operaciones de combinación y relaciones en datos de tamaño limitado, Base de datos SQL de Azure es una buena elección. Si tiene una aplicación que almacena y recupera grandes conjuntos de datos pero no necesita procesamiento de datos, es mejor usar Almacenamiento de Tabla de Azure.

El límite del tamaño de Base de datos SQL de Azure está establecido actualmente en 500 GB para el nivel Premium, Base de datos SQL de Azure es mucho más caro que el almacenamiento de Azure. Por lo tanto, tenga en cuenta mover los datos de blob al almacenamiento de blob de Azure. De esta forma puede reducir la presión del límite de tamaño de la base de datos y el costo operativo. Para obtener información sobre los niveles de servicio y las ofertas del nuevo Azure, lea “Niveles de servicio para Base de datos SQL (ediciones)”.

De manera similar a SQL Server, Base de datos SQL de Azure expone una interfaz de flujo TDS para el acceso a bases de datos basado en Transact-SQL. Esto permite que sus aplicaciones de base de datos empleen Base de datos SQL de Azure del mismo modo en que usan SQL Server.

A diferencia de la administración de SQL Server, Base de datos SQL de Azure abstrae la administración lógica de la administración física; usted continúa administrando las bases de datos, los inicios de sesión, los usuarios y los roles, pero Microsoft administra y configura el hardware físico como discos duros, servidores y almacenamiento. Puesto que Microsoft se encarga de toda la administración física, hay algunas diferencias entre Base de datos SQL de Azure y SQL Server en lo que se refiere a administración, aprovisionamiento, compatibilidad con Transact-SQL, modelo de programación y características.

En la lista siguiente se proporciona información general de alto nivel sobre algunas de las diferencias principales:

  • Tamaño de base de datos

    Base de datos SQL de Azure ofrece actualmente la siguientes ediciones:

    • Ediciones Web, con unos tamaños de 1 y 5 GB.

    • Ediciones Business, con unos tamaños de 10, 20, 30, 40, 50, 100 y 150 GB.

    • La edición Premium admite una base de datos de hasta 500 GB de datos.

    Es importante comprobar el tamaño de la base de datos y ver cómo encaja dentro de los límites de base de datos usados por Base de datos SQL de Azure. Si la base de datos es mayor que la limitación de tamaño de Base de datos SQL de Azure, debe examinar la base de datos y ver si se puede dividir en bases de datos menores (es decir, realizar el particionamiento) o mover datos grandes al almacenamiento de blob de Windows Azure. Para obtener más información acerca de las conexiones de base de datos, vea Escalar horizontalmente bases de datos SQL de Azure.

  • Autenticación

    Base de datos SQL de Azure solo admite la autenticación de SQL. Debe considerar si es necesario realizar cambios en el esquema de autenticación usado por la aplicación. Para obtener más información sobre las limitaciones de seguridad, vea Instrucciones y limitaciones de seguridad.

  • Versión de la base de datos de SQL Server

    Base de datos SQL de Azure se basa en SQL Server 2014. Si desea migrar sus bases de datos de SQL Server 2000 o SQL Server 2005 a Base de datos SQL de Azure, debe asegurarse de que estas sean compatibles con SQL Server 2014. La mejor ruta de migración es de SQL Server 2014 a Base de datos SQL de Azure. Puede realizar una actualización local a SQL Server 2014 antes de migrar a Base de datos SQL de Azure. A continuación se muestran algunos recursos excelentes que le ayudarán a migrar desde versiones anteriores de SQL Server: Actualizar a SQL Server 2014 y Asesor de actualizaciones de Microsoft SQL Server 2014.

  • Schema

    Base de datos SQL de Azure no admite montones. TODAS las tablas deben tener un índice clúster para que se puedan insertar datos. Para obtener más información sobre el requisito de índice clúster, vea Interioridades de Base de datos SQL de Azure.

  • Compatibilidad con Transact-SQL

    Base de datos SQL de Microsoft Azure admite un subconjunto del lenguaje Transact-SQL. Debe modificar el script para incluir únicamente las instrucciones de Transact-SQL admitidas antes de implementar la base de datos en Base de datos SQL de Azure. Para obtener más información, vea la Referencia de Transact-SQL (motor de base de datos).

  • La instrucción USE

    En Base de datos SQL de Azure, la instrucción USE no cambia de base de datos. Para cambiar las bases de datos, debe conectarse directamente a la base de datos.

  • Precios

    El precio para la suscripción a Base de datos SQL de Azure es por base de datos y depende de la edición. También hay cargos adicionales según el volumen de transferencia de datos, siempre que entran o salen datos del centro de datos. Tiene la posibilidad de ejecutar el código de la aplicación de forma local y conectarse al Base de datos SQL de Azure en el centro de datos o ejecutar el código de la aplicación en Azure, que se hospeda en el mismo centro de datos que el Base de datos SQL de Azure. La ejecución del código de aplicación en Azure evita los gastos adicionales por transferencia de datos. En cualquier caso, debe ser consciente de la latencia de Internet que no se puede mitigar en ninguno de los modelos. Para obtener más información, vea Información general sobre precios.

  • Limitaciones de las características

    Base de datos SQL de Azure no admite actualmente algunas de las características de SQL Server. Entre ellas se incluyen las siguientes: Agente SQL, búsqueda de texto completo, Service Broker, copias de seguridad y restauración, Common Language Runtime y SQL Server Integration Services. Para obtener una lista detallada, vea Limitaciones de las características de SQL Server. Para obtener información sobre las opciones de restauración y copia de seguridad, lea "Copias de seguridad y restauración de bases de datos SQL de Azure".

Cuando se usa una base de datos basada en la nube como Base de datos SQL de Azure, se necesitan conexiones a través de Internet u otras redes complejas. Por ello, debe estar preparado para controlar la interrupción inesperada de las conexiones. 

Base de datos SQL de Azure proporciona un servicio de base de datos de varios inquilinos a gran escala en recursos compartidos. Para proporcionar una buena experiencia a todos los clientes de Base de datos SQL de Azure, su conexión al servicio se puede cerrar debido a varias condiciones. 

A continuación se muestra una lista de causas de finalización de las conexiones:

  • Latencia de red

    La latencia produce un aumento del tiempo necesario para transferir datos a Base de datos SQL de Azure. La mejor forma de mitigar este efecto es transferir datos mediante varios flujos simultáneos. Sin embargo, la eficiencia de la paralelización está limitada por el ancho banda de la red.

    Base de datos SQL de Azure permite crear la base de datos en diferentes centros de datos. Según su ubicación y la conectividad de red, obtendrá distintas latencias de red entre su ubicación y cada uno de los centros de datos. Para ayudar a reducir la latencia de red, seleccione un centro de datos que esté más cerca de la mayoría de los usuarios. Para obtener información sobre cómo medir la latencia de red, vea Probar la latencia del cliente en Base de datos SQL de Azure.

    Hospedar el código de la aplicación en Azure es beneficioso para el rendimiento de la aplicación porque minimiza la latencia de red asociada a las solicitudes de datos de la aplicación a Base de datos SQL de Azure.

    Reducir al mínimo los ciclos de ida y vueltas de red también puede ayudar a reducir los problemas relacionados con la red.

  • Conmutación por error de la base de datos

    Base de datos SQL de Azure replica varias copias redundantes de sus datos en varios servidores físicos para mantener la disponibilidad de los datos y la continuidad del negocio. En caso de que se produzcan errores o actualizaciones de hardware, Base de datos SQL de Azure proporciona conmutación automática por error para optimizar la disponibilidad de la aplicación. Actualmente, algunas acciones de conmutación por error dan lugar a una terminación repentina de una sesión.

  • Equilibrio de carga

    El equilibrador de carga de Base de datos SQL de Azure garantiza el uso óptimo de los servidores físicos y los servicios de los centros de datos. Cuando el uso de CPU, la latencia de entrada y salida (E/S) o el número de trabajadores ocupados para un equipo supera los umbrales, Base de datos SQL de Azure podría terminar las transacciones y desconectar las sesiones.

  • Limitación

    Para asegurarse de que todos los suscriptores reciban una cuota apropiada de recursos y que ningún suscriptor monopoliza los recursos a costa de otros suscriptores, Base de datos SQL de Azure puede cerrar o “limitar” las conexiones de los suscriptores en determinadas circunstancias. El servicio Limitación del motor de Base de datos SQL de Azure supervisa continuamente ciertos umbrales de rendimiento para evaluar el estado del sistema y puede iniciar niveles variables de limitación para determinados suscriptores según el impacto que tengan estos suscriptores sobre el estado del sistema.

    Limitación del motor de Base de datos SQL de Azure supervisa los umbrales de rendimiento siguientes:

    • Porcentaje del espacio asignado a una base de datos física de Base de datos SQL de Azure que está en uso; los porcentajes de límites variables y estrictos son los mismos.

    • Porcentaje del espacio asignado para los archivos de registro de Base de datos SQL de Azure que está en uso. Los archivos de registro se comparten entre los suscriptores. Los porcentajes de límites variables y estrictos son diferentes.

    • Milisegundos de retraso al escribir en una unidad de registro; los porcentajes de límites variables y estrictos son diferentes.

    • Milisegundos de retraso al leer archivos de datos; los porcentajes de límites variables y estrictos los mismos.

    • Uso del procesador; los porcentajes de límites variables y estrictos son los mismos.

    • Tamaño de las bases de datos individuales con respecto al tamaño máximo permitido para la suscripción de la base de datos; los porcentajes de límites variables y estrictos son los mismos.

    • Número total de trabajadores que atienden solicitudes activas a las bases de datos; los porcentajes de límites variables y estrictos son diferentes. Si se supera este umbral, los criterios para elegir qué bases de datos se bloquean son diferentes que en el caso de otros umbrales. Es más probable que las bases de datos que usan el mayor número de trabajadores sean candidatas a la limitación que las bases de datos que experimentan las tasas de tráfico más elevadas.

Para obtener más información, vea Administración de conexiones de Base de datos SQL de Azure y Guía de rendimiento y elasticidad de Base de datos SQL de Azure.

La mejor forma de controlar la pérdida de una conexión para volver a establecer la conexión y ejecutar de nuevo los comandos o la consulta con errores. Para obtener más información, vea Marco para la administración de errores transitorios.

Hay algunas cosas que puede hacer en las bases de datos para mejorar el rendimiento de la migración:

  • Retrasar la creación de índices no clúster o deshabilitar los índices no clúster. Los índices adicionales creados antes de cargar los datos pueden aumentar considerablemente el tiempo necesario para cargar la misma cantidad de datos.

  • Deshabilitar desencadenadores y la comprobación de restricciones. Los desencadenadores pueden activarse cuando se inserta una fila en una tabla, lo que hace que la fila se vuelva a insertar en otra tabla. El desencadenador puede producir retrasos y es posible que no desee que se reinserten esos tipos de inserciones.

  • El rendimiento de la importación masiva mejora si los datos importados se ordenan según el índice clúster de la tabla. Para obtener más información, vea Controlar el criterio de ordenación en las importaciones masivas de datos.

SQL Server Integration Services (SSIS) y la utilidad bcp funcionan perfectamente con una migración de datos grande.

Al cargar datos grandes en Base de datos SQL de Azure, es conveniente dividir los datos en varios flujos simultáneos para obtener el máximo rendimiento.

De forma predeterminada, todas las filas del archivo de datos se importan en un solo lote. Para distribuir las filas entre varios lotes, especifique un tamaño de lote cuando esté disponible. Si se produce un error en la transacción de un lote, solamente se revierten las inserciones del lote actual. Los lotes ya importados por transacciones confirmadas no se ven afectados por los errores posteriores. Es mejor probar diversas configuraciones de tamaño de lote para su escenario y entorno concretos con el fin de encontrar el tamaño de lote óptimo.

Existen diversas herramientas disponibles para la migración de bases de datos a Base de datos SQL de Azure. La migración de bases de datos suele implicar la migración del esquema y la migración de datos. Hay herramientas que admiten una de ellas o ambas. Puede usar incluso la API de copia masiva para crear su propia aplicación personalizada de carga de datos.

 

Herramientas

Schema

Comprobación de compatibilidad de Base de datos SQL de Azure

Datos

Eficiencia de transferencia de datos

Nota

Paquete DAC

No

N/D

  • Entidad que contiene todos los objetos de base de datos, pero no datos

  • Totalmente compatible con Base de datos SQL de Azure

Importación y exportación de BACPAC de DAC

Bueno

  • Exportación o importación de DAC y datos con DAC Framework

  • Hay disponible soporte técnico solo para el servicio en la nube

  • Ejemplos de DAC de SQL disponibles en CodePlex

Asistente para generar scripts de SSMS

Algunos

Insuficiente

  • Tiene una opción explícita para la generación de scripts de Base de datos SQL de Azure

  • Buena para una base de datos menor

bcp

No

N/D

Bueno

  • Transferencia eficiente de datos a una tabla existente

  • Cada comando bcp transfiere una tabla

Asistente para migración de Base de datos SQL de Azure

Bueno

  • Buenas capacidades; por ejemplo, evaluar archivos de seguimiento

  • Código abierto en CodePlex

  • Microsoft no ofrece soporte técnico

SQL Server Integration Services

No

N/D

Bueno

  • La que ofrece más flexibilidad

  • Transferencia directa entre orígenes de datos sin dejar un archivo

Asistente para importación y exportación de SQL Server

No

N/D

Bueno

  • Interfaz de usuario simple sobre SSIS; también está disponible en SSMS

Se puede usar Base de datos SQL de Azure Migration Assistant para migrar bases de datos de Access, MySQL, Oracle y Sybase a Base de datos SQL de Azure.

El nombre de código de Microsoft “Transferencia de datos” puede transferir datos de un archivo CSV o Excel a Base de datos SQL de Azure.

Para migrar datos de una Base de datos SQL de Azure a otra Base de datos SQL de Azure, puede usar una copia de Base de datos SQL de Azure.

Base de datos SQL de Azure admite una característica de copia de base de datos. Esta característica crea nueva una base de datos en Base de datos SQL de Azure que es una copia transaccionalmente coherente de una base de datos existente. Para copiar una base de datos, debe estar conectado a la base de datos maestra del servidor de Base de datos SQL de Azure donde se vaya a crear la nueva base de datos y usar el comando CREATE DATABASE:

CREATE DATABASE destination_database_name AS COPY OF 
[source_server_name.]source_database_name

La nueva base de datos puede estar en el mismo servidor o en otro servidor diferente. El usuario que ejecuta esta instrucción debe tener el rol dbmanager en el servidor de destino (para crear una nueva base de datos) y debe ser dbowner en la base de datos de origen. Para obtener más información, vea Copiar bases de datos en Base de datos SQL de Azure.

Las aplicaciones de capa de datos (DAC) aparecieron por primera vez en SQL Server 2008 R2, con compatibilidad con herramientas de desarrollo de Visual Studio 2010. Son útiles para empaquetar el esquema, el código y la configuración de una base de datos e implementarla en otro servidor. Cuando una DAC está lista para su implementación, se integra en un paquete DAC (.bacpac), que es un archivo comprimido que contiene las definiciones de DAC en formato XML. Desde SQL Server Management Studio, puede exportar el esquema de la base de datos a un paquete DAC y después implementar el paquete en Base de datos SQL de Azure.

noteNota
El formato DACPAC es distinto del formato BACPAC. El formato BACPAC amplía el formato DACPAC para incluir un archivo de metadatos y datos de tabla codificados como Notación de objetos JavaScript (JSON), además del contenido del archivo .dacpac estándar. El formato BACPAC se describe en la sección Importación y exportación de DAC.

Tiene la posibilidad de modificar el paquete DAC mediante Visual Studio 2010 antes de la implementación. Dentro del proyecto DAC, puede especificar scripts previos a la implementación y posteriores a la implementación. Se trata de scripts Transact-SQL que pueden realizar cualquier acción, incluida la inserción de datos en los scripts posteriores a la implementación. Sin embargo, no se recomienda insertar grandes cantidades de datos mediante un paquete DAC.

DAC se entrega con SQL Server 2008 R2. La migración del esquema de una base de datos de SQL Server a Base de datos SQL de Azure implica dos pasos principales:

  1. Extraer un paquete DAC de una base de datos de SQL Server:

    Se puede usar el asistente Extraer aplicación de capa de datos para compilar un paquete DAC basado en una base de datos existente. El paquete DAC contiene los objetos seleccionados de la base de datos y objetos de nivel de instancia asociados como los inicios de sesión que se asignan a los usuarios de las bases de datos. 

    A continuación se muestra una captura de pantalla de lo que aparece al abrir el asistente:



    El asistente implica los pasos principales siguientes:

    1. Establecer las propiedades de DAC, incluido el nombre de la aplicación DAC, la versión, la descripción y la ubicación del archivo de paquete.

    2. Validar que una DAC admite todos los objetos de base de datos.

    3. Compilar el paquete.

    Una DAC solo se puede extraer de una base de datos de Base de datos SQL de Azure o SQL Server 2005 Service Pack 4 (SP4) o posterior. No puede extraer ninguna DAC si la base de datos tiene objetos que no se admiten en una DAC o usuarios contenidos. Para obtener más información acerca de los tipos de objetos admitidos en una DAC, vea Compatibilidad de DAC con las versiones y objetos de SQL Server.

  2. Implementar el paquete DAC en Base de datos SQL de Azure:

    Se puede usar el asistente Implementar aplicación de capa de datos para implementar un paquete DAC. Debe conectarse primero al servidor de Base de datos SQL de Azure desde SQL Server Management Studio. El asistente crea la base de datos si no existe. El asistente implementa el paquete DAC en la instancia del Motor de base de datos asociado al nodo que seleccionó en la jerarquía del Explorador de objetos. Por ejemplo, la captura de pantalla siguiente muestra el paquete en el SQL Server denominado maqqarly23.database.windows.net:

    ImportantImportante
    Es conveniente revisar el contenido de un paquete DAC antes de implementarlo en producción, especialmente cuando el paquete implementado no se desarrolló en su organización. Para obtener más información, vea Validar un paquete DAC.

    El asistente implica los pasos principales siguientes:

    1. Seleccionar el paquete DAC.

    2. Validar el contenido del paquete.

    3. Configurar las propiedades de implementación de la base de datos, donde se especifica el Base de datos SQL de Azure.

    4. Implementar el paquete.

Aparte de usar el asistente, también puede emplear PowerShell con el método dacstore.install() para migrar el esquema a Base de datos SQL de Azure.

Una aplicación de capa de datos (DAC) es una unidad autocontenida para desarrollar, implementar y administrar objetos de capa de datos. DAC permite a los desarrolladores de capa de datos y a los administradores de bases de datos empaquetar objetos de Microsoft SQL Server, incluidos objetos de base de datos y objetos de instancia, en una única entidad denominada un paquete DAC (archivo .dacpac). El formato BACPAC amplía el formato DACPAC para incluir un archivo de metadatos y datos de tabla codificados como Notación de objetos JavaScript (JSON), además del contenido del archivo .dacpac estándar. Puede empaquetar la base de datos de SQL Server en un archivo .bacpac y usarlo para migrar la base de datos a Base de datos SQL de Azure.

noteNota
DACPAC y BACPAC son similares pero están dirigidos a escenarios muy diferentes. DACPAC se centra en la captura y la implementación del esquema. Su uso principal es la implementación en el entorno de desarrollo, prueba y después producción.

BACPAC se centra en la captura del esquema y los datos. Es el equivalente lógico de una copia de seguridad de base de datos y no se puede usar para actualizar bases de datos existentes. Los usos principales de BACPAC son mover una base de datos de un servidor a otro (o a Base de datos SQL de Azure) y almacenar una base de datos existente en un formato abierto.

El Servicio de importación y exportación para Base de datos SQL de Azure está disponible normalmente. El servicio puede importar o exportar directamente archivos BACPAC entre Base de datos SQL de Azure y el almacenamiento de Blob de Azure. El Servicio de importación y exportación para Base de datos SQL de Azure proporciona algunos extremos REST públicos para el envío de solicitudes.

El Portal de administración de la plataforma Azure dispone de una interfaz para llamar al Servicio de importación y exportación para Base de datos SQL de Azure.

SQL Server Management Studio no admite actualmente exportar una base de datos a un archivo BACPAC. Puede aprovechar la API de DAC para importar y exportar datos.

Los Ejemplos de DAC de SQL muestran cómo usar la API del Marco de trabajo de la aplicación de capa de datos para migrar bases de datos de SQL Server a Base de datos SQL de Azure. El paquete proporciona dos utilidades de línea de comandos y su código fuente:

  • Se pueden usar herramientas del lado cliente para importar y exportar DAC con el fin de exportar e importar archivos bacpac.

  • El cliente del Servicio de importación y exportación de DAC se puede usar para llamar al Servicio de importación y exportación para Base de datos SQL de Azure con el fin de importar y exportar archivos bacpac entre el almacenamiento de Blob de Azure y Base de datos SQL de Azure.

    Una manera de copiar un archivo bacpac al almacenamiento de Blob de Azure consiste en usar el nombre de código de Microsoft “Transferencia de datos”. Para obtener más información, vea la sección sobre el nombre de código de Microsoft “Transferencia de datos”.

noteNota
La posibilidad de importar y exportar datos a Base de datos SQL de Azure con el marco de Aplicación de capa de datos (DAC) solo está disponible actualmente como ejemplos de CodePlex. Las herramientas solo reciben soporte técnico de la comunidad.

En esta sección se muestra cómo usar las herramientas cliente de los Ejemplos de DAC de SQL para migrar una base de datos de SQL Server a Base de datos SQL de Azure.

Puede descargar los Ejemplos de DAC de SQL desde CodePlex. Para ejecutar el ejemplo, debe instalar también el Marco de la aplicación de capa de datos en el equipo.

Antes de usar las herramientas para migrar una base de datos, debe crear primero el Base de datos SQL de Azure de destino. El uso de la herramienta para la migración implica dos pasos:

  1. Exportar una base de datos de SQL Server

    Suponga que existe una base de datos que se está ejecutando en SQL Server 2014, en la que un usuario tiene acceso de seguridad integrado. La base de datos se puede exportar a un archivo “.bacpac” llamando al archivo EXE de ejemplo con los argumentos siguientes:

    DacCli.exe -s serverName -d databaseName -f C:\filePath\exportFileName.bacpac -x -e
    
  2. Importar el paquete a Base de datos SQL de Azure

    Una vez exportado, el archivo de exportación se puede importar a Base de datos SQL de Azure con los argumentos siguientes:

    DacCli.exe -s serverName.database.windows.net -d databaseName -f C:\filePath\exportFileName.bacpac -i -u userName -p password
    

El asistente Generar scripts se puede usar para crear scripts Transact-SQL para bases de datos de SQL Server u objetos relacionados dentro de la base de datos seleccionada. Después se pueden usar los scripts para transferir el esquema o datos a Base de datos SQL de Azure.

El asistente Generar scripts se instala con SQL Server 2008 R2. El asistente se puede abrir desde SQL Server Management Studio 2008 R2. En la captura de pantalla siguiente se muestra cómo abrir el asistente:

El asistente implica los pasos principales siguientes:

  1. Elija los objetos que desee exportar.

  2. Establezca las opciones de scripting. Hay opciones para guardar el script en un archivo, en el Portapapeles o en una nueva ventana de consulta, o para publicarlo en un servicio Web.

  3. Establezca las opciones de scripting avanzadas.

    De forma predeterminada, el script se genera para una instancia independiente de SQL Server. Para cambiar la configuración, debe hacer clic en el botón Avanzadas del cuadro de diálogo Establecer opciones de scripting y, después, establecer la propiedad Script para el tipo de motor de base de datos en Base de datos SQL.



    También puede establecer los Tipos de datos que se deben incluir en el script como uno de los siguientes, según sus requisitos: Solo esquemas, Solo datos, Esquemas y datos.

Una vez creado el script, es posible modificarlo antes de ejecutar el script en una Base de datos SQL de Azure para transferir la base de datos.

bcp es una utilidad de la línea de comandos diseñada para la carga masiva de alto rendimiento a SQL Server o Base de datos SQL de Azure. No es una herramienta de migración. No extrae ni crea un esquema. Primero debe transferir el esquema a Base de datos SQL de Azure mediante una de las herramientas de migración de esquema.

noteNota
Puede usar bcp para hacer copia de seguridad y restaurar los datos en Base de datos SQL de Azure.

noteNota
El Asistente para migración de Base de datos SQL de Azure emplea bcp.

La utilidad bcp se incluye con SQL Server. La versión incluida con SQL Server 2014 es totalmente compatible con Base de datos SQL de Azure.

Para usar bcp se deben seguir dos pasos:

  1. Exportar los datos a un archivo de datos.

    Para exportar datos fuera de la base de datos de SQL Server, puede ejecutar la instrucción siguiente en el símbolo del sistema:

    bcp tableName out C:\filePath\exportFileName.dat –S serverName –T –n -q
    
    El parámetro out indica la copia de datos fuera de SQL Server. El parámetro -n realiza la operación de copia masiva con los tipos de datos nativos de base de datos de los datos. El parámetro -q ejecuta la instrucción SET QUOTED_IDENTIFIERS ON en la conexión entre la utilidad bcp y la instancia de SQL Server.

  2. Importar el archivo de datos a Base de datos SQL de Azure

    Para importar datos en la Base de datos SQL de Azure, primero debe crear el esquema de la base de datos de destino y después ejecutar la utilidad bcp desde un símbolo del sistema:

    Bcp tableName in c:\filePath\exportFileName.dat –n –U userName@serverName –S tcp:serverName.database.windows.net –P password –b batchSize
    
    El parámetro –b especifica el número de filas por lote de datos importados. Cada lote se importa y registra como una transacción aparte que importa el lote entero antes de confirmarse. Es conveniente identificar el tamaño de lote más adecuado y usarlo para reducir las pérdidas de conexión con Base de datos SQL de Azure durante la migración de datos.

He aquí algunas prácticas recomendadas cuando se usa bcp para transferir una gran cantidad de datos.

  1. Use la opción –N para transferir datos en modo nativo de forma que no sea necesario realizar la conversión de ningún tipo de datos.

  2. Use la opción –b para especificar el tamaño de lote. De forma predeterminada, todas las filas del archivo de datos se importan como un solo lote. Si se produce un error en una transacción, solamente se revierten las inserciones del lote actual.

  3. Use la opción –h “TABLOCK, ORDER(…)”. –h “TABLOCK" especifica que se necesita un bloqueo de tabla de actualización masiva mientras dura la operación de carga masiva; de lo contrario, se adquiere un bloqueo de fila. Esto puede reducir la contención de bloqueo en la tabla. La opción –h “ORDER(…)” especifica el criterio de ordenación de los datos del archivo de datos. El rendimiento de la importación masiva mejora si los datos importados se ordenan según el índice clúster de la tabla.

Puede usar las opciones –F y –L para especificar la primera y la última filas de un archivo plano para la carga. Esto es útil si se desea evitar tener que dividir el archivo de datos para lograr la carga de varios flujos.

El Asistente para migración de Base de datos SQL de Azure es una herramienta de UI de código abierto que ayuda a migrar bases de datos de SQL Server 2005/2008 o bases de datos posteriores a Base de datos SQL de Azure. Además de para migrar datos, también se puede usar para identificar problemas de compatibilidad, corregirlos en la medida de lo posible y notificarle todos los problemas encontrados.

El Asistente para migración de Base de datos SQL de Azure integra lógica para administrar la pérdida de la conexión. Desglosa las transacciones en grupos menores y se ejecuta hasta que Base de datos SQL de Azure finaliza la conexión. Cuando el asistente encuentra el error de conexión, vuelve a establecer una nueva conexión con Base de datos SQL de Azure y reanuda el procesamiento después del último comando correcto. Del mismo modo, cuando se usa bcp para cargar los datos en Base de datos SQL de Azure, el asistente fragmenta los datos en secciones menores y usa lógica de reintento para averiguar cuál es el último registro cargado correctamente antes de que se cerrara la conexión. Después, hace que bcp reinicie la carga de datos con el siguiente conjunto de registros.

noteNota
El Asistente para migración de Base de datos SQL de Azure es una herramienta de código abierto creada por la comunidad, que se encarga del soporte técnico.

El Asistente para migración de Base de datos SQL de Azure se puede descargar desde http://sqlazuremw.codeplex.com. Descomprima el paquete en el equipo local y ejecute SQLAzureMW.exe. A continuación se muestra una captura de pantalla de la aplicación:

El asistente implica los pasos siguientes:

  1. Seleccione el proceso por el que desee que le guíe el asistente.

  2. Seleccione el origen que desee incluir en el script.

  3. Seleccione los objetos de base de datos que desee incluir en el script.

  4. Genere el script. Puede modificarlo más adelante.

  5. Escriba la información de conexión a un servidor de destino. Tiene la posibilidad de crear la Base de datos SQL de Azure de destino.

  6. Ejecute el script en el servidor de destino.

Es posible usar SQL Server Integration Services (SSIS) para realizar numerosas tareas de migración de datos. Se trata de una herramienta eficaz cuando se emplea en varios orígenes de datos y destinos heterogéneos. Esta herramienta ofrece compatibilidad con flujos de trabajo y transformaciones de datos complejos entre el origen y el destino. SSIS no está disponible como un servicio de Azure similar a Base de datos SQL de Azure. Puede ejecutar paquetes de SSIS en una instancia local de SQL Server para transferir datos a Base de datos SQL de Azure. Además, puede ejecutar paquetes de SSIS en una instancia de SQL Server que se ejecuta en una Máquina virtual de Azure para transferir datos a Base de datos SQL de Microsoft Azure. Sin embargo, SQL IaaS también es una opción para hospedar SSIS.

El Asistente para importación y exportación de SSIS permite al usuario crear paquetes que mueven datos de un único origen de datos a un destino sin ninguna transformación. El asistente puede mover rápidamente datos desde diversos tipos de orígenes a diversos tipos de destinos, incluidos archivos de texto y otras instancias de SQL Server. Para obtener más información, vea “ Usar Integration Services para migrar una base de datos a Base de datos SQL de Azure”.

Debe usar la versión de SQL Server 2008 R2 o una versión posterior de SSIS para conectarse a Base de datos SQL de Azure.

Los adaptadores de ADO.NET tienen la compatibilidad necesaria con Base de datos SQL de Azure. Ofrece una opción para la carga masiva de datos específicamente para Base de datos SQL de Azure. Use el adaptador Destino de ADO.NET para transferir datos a Base de datos SQL de Azure. No se admite la conexión a Base de datos SQL de Microsoft Azure mediante OLEDB.

Como se puede producir un error en el paquete debido a la limitación o a un problema de red, puede diseñar los paquetes de forma que se puedan reanudar en el punto del error, en lugar de reiniciar el paquete. Para obtener más información, lea “SSIS para el movimiento de datos híbridos y de Azure”.

Cuando configure el destino de ADO.NET, asegúrese de usar la opción "Use Inserción masiva cuando sea posible". Eso le permite usar capacidades de carga masiva para mejorar el rendimiento de la transferencia. . Para obtener más información, lea “Guía operativa y de optimización de SSIS”.

El Asistente para importación y exportación de SQL Server ofrece el método más sencillo para crear un paquete de SQL Server Integration Services para una importación o exportación simple. Para obtener más información, vea “ Usar el Asistente para importación y exportación para migrar una base de datos a Base de datos SQL de Azure”.

El asistente admite los orígenes de datos siguientes:

  • Proveedor de datos de .NET Framework para ODBC

  • Proveedor de datos de .NET Framework para Oracle

  • Proveedor de datos .NET Framework para SQL Server

  • Origen de archivo plano

  • Proveedor Microsoft OLE DB para Analysis Services 10.0

  • Proveedor Microsoft OLE DB para Search

  • Proveedor Microsoft OLE DB para SQL Server

  • SQL Native Client

  • SQL Server Native Client 10.0

El Asistente para importación y exportación de SQL Server solo puede transferir datos. Antes de usar el asistente, debe transferir esquemas mediante una de las herramientas de migración de esquema, el asistente Generar scripts o un paquete DAC.

noteNota
En un equipo de 64 bits, Integration Services instala la versión de 64 bits del Asistente para importación y exportación de SQL Server (DTSWizard.exe). Sin embargo, algunos orígenes de datos solo tienen un proveedor de 32 bits disponible. Para trabajar con estos orígenes de datos, podría tener que instalar y ejecutar la versión de 32 bits del asistente. Para instalar la versión de 32 bits del asistente, seleccione Herramientas cliente o Business Intelligence Development Studio durante la instalación.

Nombre de código de Microsoft “Transferencia de datos” es un servicio en la nube que permite transferir datos del equipo a Base de datos SQL de Azure o al almacenamiento de Blob de Azure. Puede cargar cualquier formato de datos al almacenamiento de Blob de Azure y los datos almacenados en formato de valores separados por comas (CSV) o de Microsoft Excel (.xlsx) a Base de datos SQL de Azure. Al cargar datos en Base de datos SQL de Azure, se transforman en tablas de base de datos.

Se puede tener acceso al servicio de transferencia de datos desde https://web.datatransfer.azure.com/. En la página principal, tiene las opciones para importar datos, y para administrar sus conjuntos de datos y sus almacenes.

La importación de datos al proceso de Base de datos SQL de Azure implica los pasos siguientes:

  • Escribir sus credenciales de Base de datos SQL de Azure.

  • Elegir un archivo para transferir.

  • Analizar archivos de datos y después transferir los datos.

SQL Server Migration Assistant (SSMA) es una familia de productos para reducir el costo y el riesgo de la migración desde bases de datos de Oracle, Sybase, MySQL y Microsoft Access a Base de datos SQL de Azure o SQL Server. SSMA automatiza todos los aspectos de la migración, incluido el análisis de la evaluación de la migración, la conversión de esquema y de instrucciones SQL, la migración de datos y la prueba de la migración.

SSMA es una descarga Web. Para descargar la versión más reciente, vea la página del producto Herramientas de migración de SQL Server. En la fecha en que se escribió este tema, estas son las versiones más recientes:

SSMS se instala mediante un asistente basado en Windows Installer. SSMA está gratuito, pero debe descargar una clave de registro. Después de instalar y ejecutar la aplicación, la aplicación le pide que registre y descargue la clave de registro.

El proceso de migración de SSMA para Access implica los pasos siguientes:

  1. Crear un nuevo asistente para migración. Asegurarse de seleccionar Base de datos SQL de Azure en el cuadro Migrate To.

  2. Agregar bases de datos de Access.

  3. Seleccionar los objetos de Access que se desean migrar.

  4. Conectarse a Base de datos SQL de Azure.

  5. Vincular tablas. Si desea usar las aplicaciones de Access existentes con Base de datos SQL de Azure, puede vincular las tablas de Access originales a las tablas migradas de Base de datos SQL de Azure. La vinculación modifica la base de datos de Access de forma que las consultas, los formularios, los informes y las páginas de acceso a datos usan los datos de Base de datos SQL de Azure en lugar de los datos de la base de datos de Access.

  6. Convertir los objetos seleccionados.

  7. Cargar los objetos convertidos en Base de datos SQL de Azure.

  8. Migrar los datos para los objetos seleccionados de Access.

Vea también

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios
Mostrar:
© 2014 Microsoft