Migración de una base de datos SQL Server a Babelfish para Aurora PostgreSQL - Amazon Aurora

Migración de una base de datos SQL Server a Babelfish para Aurora PostgreSQL

Puede utilizar Babelfish para Aurora PostgreSQL a fin de migrar una base de datos de SQL Server a un clúster de base de datos de Amazon Aurora PostgreSQL. Antes de migrar, revise Uso de Babelfish con una base de datos única o varias bases de datos.

Información general sobre el proceso de migración

En el siguiente resumen, se enumeran los pasos necesarios para migrar correctamente su aplicación de SQL Server y hacerla funcionar con Babelfish. Para obtener información sobre las herramientas que puede utilizar para los procesos de exportación e importación y para obtener más detalles, consulte Herramientas de importación y exportación para migrar de SQL Server a Babelfish. Para cargar los datos, le recomendamos que utilice AWS DMS con un clúster de base de datos de Aurora PostgreSQL como punto de conexión de destino.

  1. Cree un nuevo clúster de base de datos Aurora PostgreSQL con Babelfish activado. Para saber cómo hacerlo, consulte Creación de un clúster de base de datos de Babelfish para Aurora PostgreSQL.

    Para importar los diversos artefactos SQL exportados desde su base de datos SQL Server, conéctese al clúster de Babelfish mediante una herramienta de SQL Server como sqlcmd. Para obtener más información, consulte Uso de un cliente de SQL Server para conectarse al clúster de su base de datos.

  2. En la base de datos SQL Server que desea migrar, exporte el lenguaje de definición de datos (DDL). El DDL es un código de SQL que describe los objetos de base de datos que contienen datos de usuario (como tablas, índices y vistas) y código de base de datos escrito por el usuario (como procedimientos almacenados, funciones definidas por el usuario y activadores).

    Para obtener más información, consulte Uso de SQL Server Management Studio (SSMS) para migrar a Babelfish.

  3. Ejecute una herramienta de evaluación para valorar el alcance de cualquier cambio que deba realizar para que Babelfish pueda admitir eficazmente la aplicación que se ejecuta en SQL Server. Para obtener más información, consulte Evaluación y gestión de diferencias entre SQL Server y Babelfish.

  4. Revise las limitaciones del punto de conexión de destino de AWS DMS y actualice el script DDL según sea necesario. Para obtener más información, consulte Limitations to using a PostgreSQL target endpoint with Babelfish tables en Using for Aurora PostgreSQL as a target.

  5. En su nuevo clúster de base de datos de Babelfish, ejecute el DDL con la base de datos T-SQL especificada para crear solo los esquemas, los tipos de datos definidos por el usuario y las tablas con sus restricciones de clave principal.

  6. Utilice AWS DMS para migrar los datos de SQL Server a las tablas de Babelfish. Para la replicación continua mediante la captura de datos de cambios de SQL Server o la replicación SQL, utilice Aurora PostgreSQL en lugar de Babelfish como punto de conexión. Para ello, consulte Using Babelfish for Aurora PostgreSQL as a target for AWS Database Migration Service (Uso de Babelfish para Aurora PostgreSQL como destino para Database Migration Service).

  7. Cuando se complete la carga de datos, cree todos los objetos T-SQL restantes que admita la aplicación en su clúster de Babelfish.

  8. Vuelva a configurar la aplicación cliente para conectarse al punto de conexión de Babelfish en lugar de a la base de datos de SQL Server. Para obtener más información, consulte Conexión a un clúster de base de datos de Babelfish.

  9. Modifique la aplicación según sea necesario y vuelva a probarla. Para obtener más información, consulte Diferencias entre Babelfish for Aurora PostgreSQL y SQL Server.

Todavía tiene que evaluar sus consultas SQL del cliente. Los esquemas generados a partir de la instancia de SQL Server convierten solo el código SQL en el servidor. Le recomendamos que siga los siguientes pasos:

  • Capture las consultas del cliente mediante SQL Server Profiler con la plantilla predefinida TSQL_Replay. Esta plantilla captura la información de las instrucciones T-SQL que se pueden reproducir para el ajuste y las pruebas iterativas. Puede iniciar el generador de perfiles en SQL Server Management Studio, desde el menú Tools (Herramientas). Elija SQL Server Profiler para abrir el generador de perfiles y elija la plantilla TSQL_Replay.

    Para utilizarlo en su migración a Babelfish, inicie un seguimiento y, después, ejecute la aplicación mediante las pruebas funcionales. El generador de perfiles captura las instrucciones T-SQL. Cuando termine la prueba, detenga el seguimiento. Guarde el resultado en un archivo XML con sus consultas del cliente (File > Save as > Trace XML File for Replay [Archivo > Guardar como > Archivo XML de seguimiento para la reproducción]).

    Para obtener más información, consulte SQL Server Profiler en la documentación de Microsoft. Para obtener más información sobre la plantilla TSQL_Replay, consulte SQL Server Profiler Templates (Plantillas de SQL Server Profiler).

  • Para las aplicaciones con consultas SQL complejas del cliente, le recomendamos que use Babelfish Compass para determinar la compatibilidad con Babelfish de estas consultas. Si el análisis indica que las instrucciones SQL del cliente contienen características de SQL no compatibles, revise los aspectos de SQL de la aplicación cliente y realice modificaciones según sea necesario.

  • También puede capturar las consultas SQL como eventos extendidos (formato .xel). Paar ello, utilice SSMS XEvent Profiler. Tras generar el archivo .xel, extraiga las instrucciones SQL en archivos .xml que Compass pueda procesar. Para obtener más información, consulte Use the SSMS XEvent Profiler (Uso de SSMS XEvent Profiler) en la documentación de Microsoft.

Cuando esté satisfecho con todas las pruebas, análisis y cualquier modificación necesaria de la aplicación migrada, podrá empezar a utilizar la base de datos de Babelfish para la producción. Para ello, detenga la base de datos original y redirija las aplicaciones cliente activas para utilizar el puerto TDS de Babelfish.

nota

AWS DMS ahora admite la replicación de datos de Babelfish. Para obtener más información, consulte AWS DMS now supports Babelfish for Aurora PostgreSQL as a source.

Evaluación y gestión de diferencias entre SQL Server y Babelfish

Para obtener los mejores resultados, le recomendamos que evalúe el DDL/DML generado y el código de consulta del cliente antes de migrar realmente la aplicación de la base de datos SQL Server a Babelfish. Según la versión de Babelfish y las características específicas de SQL Server que implemente la aplicación, es posible que tenga que refactorizarla o utilizar alternativas para las funcionalidades que aún no son totalmente compatibles con Babelfish.

  • Para evaluar el código de la aplicación de SQL Server, utilice Babelfish Compass en el DDL generado para determinar hasta qué punto el código T-SQL es compatible con Babelfish. Identifique el código T-SQL que podría necesitar modificaciones antes de ejecutarse en Babelfish. Para obtener más información sobre esta herramienta, consulte Babelfish Compass en GitHub.

    nota

    Babelfish Compass es una herramienta de código abierto. Informe de cualquier problema con Babelfish Compass a través de GitHub en lugar de hacerlo a través de AWS Support.

Puede utilizar el asistente de generación de scripts con SQL Server Management Studio (SSMS) para generar el archivo SQL que Babelfish Compass o la CLI AWS Schema Conversion Tool evalúan. Recomendamos los siguientes pasos para agilizar la evaluación.

  1. En la página Choose Objects (Elegir objetos), elija Script entire database and all database objects (Script de toda la base de datos y todos los objetos de la base de datos).

    Uso del asistente de generación de scripts de SSMS para elegir objetos.
  2. En Set Scripting Options (Definir opciones de scripts), elija Save as script file (Guardar como archivo de script) como Single script file (Archivo de script único).

    Utilice el asistente de generación de scripts de SSMS para configurar las opciones de script.
  3. Elija Advanced (Avanzado) para cambiar las opciones de scripts predeterminadas a fin de identificar las características que normalmente se configuran en falsas para una evaluación completa:

    • Script Change Tracking (Rastreo de cambios de script) en True (Verdadero)

    • Script Full-Text Indexes (Índices de texto completo de script) True (Verdadero)

    • Script Triggers (Desencadenadores de scripts) True (Verdadero)

    • Script Logins (Inicios de sesión de scripts) True (Verdadero)

    • Script Owner (Propietario del script) True (Verdadero)

    • Script Object-Level Permissions (Permisos a nivel de objeto del script) True (Verdadero)

    • Script Collations (Intercalaciones de scripts) True (Verdadero)

    Utilice el asistente de generación de scripts de SSMS para configurar las opciones de script avanzadas.
  4. Siga el resto de pasos del asistente para generar el archivo.

Herramientas de importación y exportación para migrar de SQL Server a Babelfish

Le recomendamos que utilice AWS DMS como herramienta principal para migrar de SQL Server a Babelfish. Sin embargo, Babelfish admite otras formas de migrar datos mediante herramientas de SQL Server, entre las que se incluyen las siguientes.

  • Servicios de integración de SQL Server (SSIS) para todas las versiones de Babelfish. Para obtener más información, consulte Migrar de SQL Server a Aurora PostgreSQL mediante SSIS y Babelfish.

  • Utilice el asistente de importación/exportación de SSMS para las versiones 2.1.0 y posteriores de Babelfish. Esta herramienta está disponible a través de SSMS, pero también está disponible como herramienta independiente. Para obtener más información, consulte Welcome to SQL Server Import and Export Wizard (Asistente de importación y exportación de SQL Server) en la documentación de Microsoft.

  • El programa de copia de datos masiva de Microsoft (bcp) le permite copiar datos de una instancia de Microsoft SQL Server a un archivo de datos en el formato que especifique. Para obtener más información, consulte bcp Utility (Utilidad bcp) en la documentación de Microsoft. Babelfish ahora admite la migración de datos mediante el cliente BCP y la utilidad bcp ahora admite el indicador -E (para las columnas de identidad) y el indicador -b (para las inserciones por lotes). Algunas opciones de bcp no son compatibles, como -C, -T, -G, -K, -R, -V y -h.

Uso de SQL Server Management Studio (SSMS) para migrar a Babelfish

Se recomienda generar archivos independientes para cada uno de los tipos de objetos específicos. Puede utilizar primero el asistente de generación de scripts de SSMS para cada conjunto de instrucciones DDL y, a continuación, modificar los objetos como un grupo para corregir cualquier problema que se encuentre durante la evaluación.

Siga estos pasos para migrar los datos mediante AWS DMS u otros métodos de migración de datos. Ejecute primero estos tipos de scripts de creación para cargar los datos de las tablas de Babelfish en Aurora PostgreSQL de una manera mejor y más rápida.

  1. Ejecute instrucciones CREATE SCHEMA.

  2. Ejecute instrucciones CREATE TYPE para crear tipos de datos definidos por el usuario.

  3. Ejecute instrucciones CREATE TABLE básicas con las claves principales o restricciones únicas.

Realice la carga de datos con la herramienta de importación/exportación recomendada. Ejecute los scripts modificados para los siguientes pasos para añadir los objetos de base de datos restantes. Necesita las instrucciones de creación de tablas para ejecutar estos scripts para las restricciones, los desencadenadores y los índices. Una vez generados los scripts, elimine las instrucciones de creación de tablas.

  1. Ejecute instrucciones ALTER TABLE para las restricciones de verificación, las restricciones de clave externa y las restricciones predeterminadas.

  2. Ejecute instrucciones CREATE TRIGGER.

  3. Ejecute instrucciones CREATE INDEX.

  4. Ejecute instrucciones CREATE VIEW.

  5. Ejecute instrucciones CREATE STORED PROCEDURE.

Para generar scripts para cada tipo de objeto

Utilice los siguientes pasos para crear las instrucciones básicas de creación de tablas mediante el asistente para generar scripts en SSMS. Siga los mismos pasos para generar scripts para los diferentes tipos de objetos.

  1. Conéctese a la instancia existente de SQL Server.

  2. Abra el menú contextual (haga clic con el botón derecho) para obtener un nombre de la base de datos.

  3. Elija Tasks (Tareas) y, a continuación, elija Generate Scripts... (Generar scripts).

  4. En el panel Choose Objects (Elegir objetos), elija Select specific database objects (Seleccionar objetos específicos de la base de datos). Elija Tables (Tablas), para seleccionar todas las tablas. Elija Siguiente para continuar.

    Uso del asistente Generate Scripts (Generación de scripts) de SSMS para elegir objetos.
  5. En la página Set Scripting Options (Establecer las opciones de scripting), elija Advanced (Avanzado) para abrir la configuración Options (Opciones). Para generar las instrucciones básicas de creación de tablas, cambie los siguientes valores predeterminados:

    • Script Defaults (Valor predeterminado del script) en False (Falso).

    • Script Extended Properties (Propiedades extendidas de script) en False (Falso). Babelfish no admite propiedades extendidas.

    • Script Check Constraints (Restricciones de comprobación de scripts) en False (Falso). Script Foreign Keys (Claves externas de scripts) en False (Falso).

    Utilice el asistente de generación de scripts de SSMS para configurar las opciones avanzadas.
  6. Seleccione Aceptar.

  7. En Set Scripting Options (Definir opciones de scripts), elija Save as script file (Guardar como archivo de script) y luego elija la opción Single script file (Archivo de script único). Escriba un nombre en File name (Nombre de archivo).

    Utilice el asistente de generación de scripts de SSMS para establecer los valores predeterminados del script.
  8. Seleccione Next (Siguiente) para ver la página Summary wizard (Asistente de resumen).

  9. Elija Next (Siguiente) para iniciar la generación del script.

    Puede seguir generando scripts para los demás tipos de objetos en el asistente. En lugar de elegir Finish (Finalizar) después de guardar el archivo, pulse tres veces el botón Previous (Anterior) para volver a la página Choose Objects (Elegir objetos). A continuación, repita los pasos del asistente para generar scripts para los demás tipos de objetos.