Descripción de la configuración de conversión de SQL Server a PostgreSQL - AWS Database Migration Service

Descripción de la configuración de conversión de SQL Server a PostgreSQL

La configuración de conversión de SQL Server a PostgreSQL en la conversión de esquemas del DMS incluye lo siguiente:

  • Para convertir los objetos de base de datos aplicables mediante la IA generativa, active la configuración IA generativa. Los objetos que se conviertan correctamente mediante la IA generativa se identificarán claramente con el Elemento de acción 7744, que afirma: “Esta conversión utiliza modelos de machine learning que generan predicciones basadas en patrones de datos”. Para obtener más información, consulte Conversión de objetos de base de datos con la IA generativa.

  • En SQL Server, puede usar índices con el mismo nombre en diferentes tablas. Sin embargo, en PostgreSQL, todos los nombres de índice que utilice en el esquema deben ser únicos. Para asegurarse de que la conversión de esquemas del DMS genera nombres únicos para todos los índices, seleccione Generar nombres únicos para los índices.

  • Las versiones 10 y anteriores de PostgreSQL no admiten procedimientos. Si no está familiarizado con el uso de procedimientos en PostgreSQL, AWS DMS puede convertir los procedimientos de SQL Server en funciones de PostgreSQL. Para ello, seleccione Convertir procedimientos en funciones.

  • La base de datos de SQL Server de origen puede almacenar el resultado de EXEC en una tabla. La conversión de esquemas del DMS crea tablas temporales y un procedimiento adicional para emular esta característica. Para usar esta simulación, seleccione Crear rutinas adicionales para gestionar conjuntos de datos abiertos.

  • Puede definir la plantilla que se utilizará para los nombres de los esquemas del código convertido. Para Nombres de esquema, elija una de las siguientes opciones:

    • DB: utiliza el nombre de la base de datos de SQL Server como nombre de esquema en PostgreSQL.

    • SCHEMA: utiliza el nombre del esquema de SQL Server como nombre de esquema en PostgreSQL.

    • DB_SCHEMA: utiliza una combinación de los nombres de la base de datos y del esquema de SQL Server como nombre de esquema en PostgreSQL.

  • Puede mantener las mayúsculas y minúsculas en los nombres de los operandos de origen. Para evitar la conversión de los nombres de los operandos a minúsculas, seleccione Evitar la conversión a minúsculas para las operaciones que distingan entre mayúsculas y minúsculas. Esta opción solo se aplica si la característica de distinción entre mayúsculas y minúsculas está activada en la base de datos de origen.

  • Puede conservar los nombres de los parámetros de la base de datos de origen. La conversión de esquemas del DMS puede agregar comillas dobles a los nombres de los parámetros del código convertido. Para ello, seleccione Conservar los nombres de los parámetros originales.

  • Puede mantener una longitud de los parámetros de rutina de la base de datos de origen. La conversión de esquemas DMS crea dominios y los utiliza para especificar la longitud de los parámetros de rutina. Para ello, seleccione Conservar la longitud de los parámetros.

  • Para convertir objetos integrados no compatibles en objetos auxiliares, active la opción Convertir objetos integrados no compatibles en objetos auxiliares:

    • Si está activada, DMS SC reemplaza los objetos integrados no compatibles por los objetos auxiliares correspondientes en la base de datos de destino. Esta característica convierte las secciones de código que normalmente se incluirían en los problemas de migración 7811 o 7904. Crea objetos auxiliares basados en el tipo de objetos integrados de origen PROCEDURE para procedimientos y VIEW para vistas o tablas.

      La conversión de un objeto de base de datos de origen con una llamada a un objeto no compatible desencadena la llamada a un objeto auxiliar y genera un problema de migración 7822.

      Puede optar por crear objetos auxiliares en un esquema independiente activando la opción Crear objetos auxiliares en un esquema independiente. Cuando se seleccionan, los objetos auxiliares se crean en un esquema especial denominado aws_sqlserver_stub en la base de datos de destino. Si no se seleccionan, se crean en el mismo esquema que los objetos de llamada.

    • El nombre de las rutinas auxiliares se basa en el nombre completo del elemento integrado original. En el caso de las vistas auxiliares, la convención de nomenclatura incluye el nombre del esquema del sistema system_schema_name$builtin_view_name.

      Durante la reconversión, DMS SC comprueba las rutinas auxiliares existentes en la base de datos de destino. Si ya existe una rutina con el mismo nombre y los mismos parámetros de entrada, no se sobrescribe.

      Tras la conversión, revise e implemente el código personalizado para las rutinas auxiliares según sea necesario.

  • El tipo de datos CITEXT para la configuración de todos los tipos de datos de cadena en la Conversión de esquemas de DMS incluye lo siguiente:

    • Para usar el tipo de datos CITEXT para operaciones de cadena que no distingan entre mayúsculas y minúsculas al convertir desde SQL Server a PostgreSQL, active la opción Usar CITEXT para todos los tipos de datos de cadenas. Esta opción ayuda a mantener un comportamiento coherente al migrar desde un SQL Server que no distingue entre mayúsculas y minúsculas a un entorno de PostgreSQL que distinga entre mayúsculas y minúsculas.

    • Cuando está activado, DMS SC convierte todos los tipos de datos de cadena relevantes desde la base de datos de SQL Server de origen a CITEXT en PostgreSQL. Esto elimina la necesidad de realizar llamadas explícitas a la función LOWER () en determinadas condiciones y convierte automáticamente las expresiones de cadena en operaciones condicionales a CITEXT.

    • Para determinar si la instancia de SQL Server distingue entre mayúsculas y minúsculas, ejecute la siguiente consulta:

      SELECT SERVERPROPERTY('COLLATION');

      Un resultado que contiene “CI” indica que no distingue entre mayúsculas y minúsculas, mientras que “CS” indica que sí distingue entre mayúsculas y minúsculas.

    • Es posible que la conversión CITEXT no se aplique en situaciones en las que se utilicen configuraciones de compilado explícitas que distingan mayúsculas de minúsculas en el servidor, la base de datos o la columna.

      Para utilizar esta característica, asegúrese de que el módulo CITEXT esté instalado y disponible en la base de datos de PostgreSQL de destino.

    • Al utilizar la conversión de tipos de datos CITEXT, tenga en cuenta las siguientes prácticas recomendadas:

      • Active esta característica al migrar desde un servidor SQL Server que no distinga entre mayúsculas y minúsculas para mantener un comportamiento coherente en PostgreSQL.

      • Revise el código de la aplicación para asegurarse de que no dependa de operaciones de cadenas que distingan entre mayúsculas y minúsculas.

      • Pruebe minuciosamente la aplicación después de la migración para comprobar que el comportamiento que no distingue entre mayúsculas y minúsculas se mantiene tal como se esperaba.