Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Fase 3: migración
Una tarea principal de las migraciones de bases de datos es completar la migración con un tiempo de inactividad mínimo. Como ambas bases de datos deben utilizar el mismo lenguaje de programación y los mismos protocolos de comunicación, es posible que necesite convertir el código y el esquema para utilizar sintaxis, procedimientos y funciones de consulta similares. Al convertir un esquema, tenga en cuenta los siguientes aspectos:
-
Modifique la conexión de la base de datos según corresponda para el nuevo motor.
-
Corrija las advertencias y los errores de la conversión del código.
-
Modifique las asignaciones y el código de las tablas según corresponda para el esquema convertido.
-
Identifique y refactorice cualquier funcionalidad específica del proveedor que utilice su aplicación.
Puede utilizar cualquier herramienta de migración de terceros para la conversión del código de esquema, como la base de datos SAP ASE y Amazon RDS for SQL Server. Es posible que necesite convertir parte del código manualmente porque SQL Server no admite SQL que no sea ANSI.
Después de convertir el código, convierta el código de la aplicación o la aplicación de SQL dinámico y, a continuación, realice las pruebas unitarias y funcionales. Para obtener más información, consulte Probar objetos de bases de datos (SybaseToSQL) migrados
Conversión de los datos
Transforme los datos sin procesar para que sean más útiles limpiándolos, estandarizándolos, verificándolos y clasificándolos. En las migraciones de bases de datos, los procesos de extracción, transformación y carga (ETL) se utilizan de las siguientes maneras:
-
Dentro de la base de datos
-
Con scripts externos
-
Uso de herramientas de terceros
Algunos ejemplos de herramientas de ETL son AWS Glue Informatica y Talend. Para las migraciones de SAP ASE a SQL Server, algunas herramientas gratuitas pueden convertir automáticamente los procedimientos y funciones almacenados.
Validación de objetos de bases de datos
La validación de la base de datos ayuda a evitar problemas en las etapas posteriores de la migración. Tras la conversión del código, valide el esquema de la base de datos comparando los siguientes elementos entre SAP ASE y RDS SQL Server:
-
Esquemas
-
Tablas
-
Vistas
-
Funciones
-
Índices de procedimientos almacenados
-
Desencadenadores
-
Restricciones (por ejemplo, claves principales, claves externas, comprobaciones y valores predeterminados)
Compruebe que cada objeto se haya migrado correctamente. Si encuentra diferencias, identifique el motivo del error. Es posible que tenga que crear manualmente los objetos que faltan en la base de datos de destino o convertir el código Transact-SQL. Para obtener más información, consulte Validar objetos de bases de datos después de migrar de SAP ASE a Amazon RDS for SQL Server o Microsoft
Migración de datos mediante AWS DMS
Si tiene varios usuarios de bases de datos, es posible que sea necesario migrar la aplicación según un cronograma. Según el tamaño de la base de datos y la ventana de migración, estas migraciones de datos requieren conocer las cargas completas y las cargas incrementales. Por este motivo, AWS DMS puede conectar las bases de datos de origen y destino para replicar el contenido de la base de datos de acuerdo con los siguientes procesos:
-
Crear un servidor de replicación.
-
Cree puntos finales de origen y destino que describan las conexiones del almacén de datos.
-
Cree una o más tareas de migración para migrar los datos entre los almacenes de datos de origen y destino.
-
Replicación continua de SAP ASE a SQL Server
-
(Opcional) Migración completa de datos de SAP ASE a SQL Server con captura de datos de cambios
Es posible que necesite AWS DMS optimizarlos para gestionar determinados tipos de datos. Para obtener más información, consulte Uso de una base de datos SAP ASE como fuente de AWS DMS.
Migración de datos fuera de línea
Puede utilizarla AWS Storage Gateway para integrar su base de datos SAP ASE con Amazon Simple Storage Service (Amazon S3), que proporciona un almacenamiento rentable, escalable y seguro para las copias de seguridad de bases de datos SAP ASE locales. Para obtener más información, consulte Integrar una base de datos SAP ASE en Amazon S3 mediante AWS Storage Gateway
Uso de herramientas de terceros
Algunas aplicaciones funcionan como un punto de contacto único (SPOC) que interactúa con otras aplicaciones. Al migrar a una plataforma de base de datos de SQL Server, estas interconexiones pueden verse afectadas y la supervisión de la base de datos puede requerir herramientas nativas o de terceros que utilicen protocolos de comunicación específicos del servidor. Es importante evaluar si estas aplicaciones y herramientas dependientes ya son compatibles con SQL Server o si necesitan modificaciones para funcionar correctamente.
En el caso de las aplicaciones empaquetadas, consulte a los proveedores para determinar si admiten Amazon RDS for SQL Server. En el caso de las aplicaciones personalizadas, es posible que deba modificar el código para garantizar la compatibilidad con la base de datos migrada.
Supervisión de la base de datos
Independientemente de la ruta de migración que elija, Amazon CloudWatch desempeña un papel en la recopilación de métricas, como el tipo de CPU, la memoria y I/O las funciones. También es capaz de establecer umbrales de métricas e iniciar acciones cuando se activan los umbrales.
Por ejemplo, puede crear alarmas para las métricas, notificaciones y acciones del clúster de Amazon RDS a fin de detectar y cerrar las instancias de lectura no utilizadas o infrautilizadas. Establecer alarmas en las métricas y los eventos puede ayudar a minimizar el tiempo de inactividad y el impacto empresarial. Servicios de AWS como Amazon S3, Amazon RDS Performance Insights
Validar los datos
Una vez finalizada la migración de datos de SAP ASE a Amazon RDS for SQL Server, valide los datos para garantizar la precisión y la coherencia. Utilice las siguientes consultas SQL para generar declaraciones de metadatos para cada tabla de la base de datos.
Paso 1: Genere declaraciones de metadatos y listas de columnas
SELECT dt.schema_name, dt.table_name, STRING_AGG(dt.column_name, ',') AS column_name, STRING_AGG(dt.cname, ',') AS column_order FROM ( SELECT object_name(a.id) AS table_name, a.name colname, c.name col_type, a.isnullable, a.name AS cname, schema_name(b.uid) AS schema_name, CASE WHEN a.isnullable = 1 THEN CASE WHEN c.name LIKE '%char%' THEN 'coalesce(ltrim(rtrim('+a.name+')),''X'') as '+a.name WHEN (c.name LIKE '%int%' OR c.name = 'numeric') THEN 'coalesce('+a.name+',0) as '+a.name WHEN c.name IN ('decimal','float','money') THEN 'coalesce('+a.name+',0.0) as '+a.name WHEN c.name LIKE 'datetime%' THEN 'coalesce(convert(nvarchar(30),'+a.name+',112),''99991231'') as '+a.name ELSE a.name END WHEN c.name LIKE 'datetime%' THEN 'coalesce(convert(nvarchar(30),'+a.name+',112),''99991231'') as '+a.name WHEN c.name LIKE '%char%' THEN 'coalesce(ltrim(rtrim('+a.name+')),''X'') as '+a.name ELSE a.name END AS column_name FROM syscolumns a INNER JOIN sysobjects b ON a.id = b.id AND b.type = 'U' INNER JOIN systypes c ON a.usertype = c.usertype AND a.xusertype = c.xusertype AND c.name != 'varbinary' INNER JOIN ( SELECT OBJECT_NAME(ic.OBJECT_ID) AS table_name, COL_NAME(ic.OBJECT_ID, ic.column_id) AS column_name FROM sys.indexes AS i INNER JOIN sys.index_columns AS ic ON i.OBJECT_ID = ic.OBJECT_ID AND i.index_id = ic.index_id AND i.is_primary_key = 1 ) pk ON pk.table_name = object_name(a.id) AND pk.column_name = a.name ) dt GROUP BY dt.schema_name, dt.table_name;
En la siguiente tabla se muestran ejemplos de resultados:
Nombre del esquema |
Nombre de la tabla |
Nombre de la columna |
Orden de columnas |
|---|---|---|---|
Persona |
Dirección |
ID de dirección |
ID de dirección |
Persona |
AddressType |
AddressTypeID |
AddressTypeID |
Persona |
BusinessEntity |
BusinessEntityID |
BusinessEntityID |
Persona |
BusinessEntityAddress |
BusinessEntityID, ID de dirección, AddressType ID |
BusinessEntityID, ID de dirección, ID AddressType |
Paso 2: Genere consultas de comparación utilizando los resultados de los metadatos y cree sentencias SELECT
SELECT <column_name> FROM [schema_name].[table_name] ORDER BY <column_order>;
El siguiente es un ejemplo de una consulta generada:
SELECT BusinessEntityID, AddressID, AddressTypeID FROM [Person].[BusinessEntityAddress] ORDER BY BusinessEntityID, AddressID, AddressTypeID;
Paso 3: Validación
-
Ejecute la consulta de metadatos en ambas bases de datos.
-
Genere y ejecute
SELECTdeclaraciones para cada tabla. -
Compare los resultados entre las bases de datos de origen y destino:
-
Los recuentos de filas deben coincidir.
-
Los valores de los datos deben ser idénticos.
-
Compruebe si hay problemas de conversión de tipos de datos.
-
Paso 4: Validar el recuento de filas
SELECT COUNT(1) AS total_rows FROM [schema_name].[table_name];
Paso 5: Actualice la configuración de la aplicación para que apunte a la nueva base de datos
-
Actualice el grupo de seguridad.
-
Modifique la cadena de conexión DNS según sea necesario para conectarse a la base de datos de destino.
Prueba de la migración
El proceso de pruebas puede ayudarle a identificar los problemas que se pasaron por alto durante el desarrollo, como consultas mal convertidas o índices faltantes. Además, puede revelar la necesidad de ajustar el motor de la base de datos o de modificar las consultas en función del rendimiento de la carga de trabajo.
Las pruebas funcionales, que incluyen pruebas unitarias para los flujos de trabajo de las aplicaciones, ayudan a garantizar una integración perfecta con la nueva base de datos. Las pruebas de rendimiento ayudan a optimizar la base de datos al verificar los tiempos de respuesta aceptables e identificar los cuellos de botella.
Si bien existen métodos de prueba manuales y automatizados, recomendamos un método automatizado porque es más eficiente, especialmente para ciclos de prueba adicionales.