Fases de migración de Oracle a Azure Database for PostgreSQL
Una migración integral de un extremo a otro de Oracle a Azure Postgres requiere la ejecución cuidadosa de varios pasos clave y fases de migración. Todos estos hitos están estrechamente relacionados y son esenciales para una migración completa y satisfactoria.
Detección
La mayoría de los clientes ya están familiarizados con las cantidades y ubicaciones de sus instancias de base de datos de Oracle (especialmente sus costos de licencia asociados), pero por motivos de integridad estamos resaltando esta fase como un punto de partida importante en la migración. La fase de detección es una fase ideal para determinar el ámbito adecuado de los esfuerzos de migración. ¿Tiene un entorno de "granja" de servidor de bases de datos de Oracle que requiere decenas, cientos o incluso miles de bases de datos para migrar? ¿Está considerando una migración a gran escala después de un enfoque de "fábrica de migración"? En cambio, ¿su entorno es más adecuado para la migración de extremo a extremo de una única base de datos junto con una modernización paralela de todos los clientes conectados antes de pasar a la siguiente base de datos de la lista de migración? En cualquier caso, un inventario actualizado y exhaustivo es un requisito previo crítico y la fase de detección garantiza que está preparado para el éxito.
Evaluaciones
Las evaluaciones engloban muchos tipos diferentes de operaciones exploratorias basadas en estimaciones que se definen individualmente por sus características únicas. Algunas evaluaciones están diseñadas para estimar y categorizar la complejidad del esfuerzo y los recursos implicados en la migración de objetos de bases de datos y se basan en factores como el número de objetos (pudiendo incluso explorar el número de líneas de código) que requieren la atención de un experto en la materia. Como alternativa, otros tipos de evaluaciones exploran la estructura y el tamaño de los datos subyacentes y proporcionan instrucciones sobre la cantidad de tiempo necesario para migrar completamente los datos al entorno de destino. Otro tipo de evaluación se estructura para garantizar que los recursos Azure Postgres de destino se escalan adecuadamente para adaptarse a la configuración de computación, memoria, IOPS y red necesaria para dar servicio a sus datos. Una de las evaluaciones más importantes que se deben incluir para asegurarse de que el éxito de la migración es una revisión exhaustiva y consideración de todos los clientes conectados y el ámbito que comprende todas las aplicaciones dependientes. En resumen, al preparar las evaluaciones de migración, asegúrese de evaluar todos los aspectos de la migración de la base de datos, incluidos:
- Cantidad y complejidad de la conversión del esquema de la base de datos/código
- Tamaño y escala de la base de datos
- Requisitos operativos de los recursos de la base de datos
- Migración del código de la aplicación cliente
La precisión de su evaluación estará estrechamente ligada a las herramientas subyacentes específicas y a las plataformas de servicios implicadas en la ejecución y finalización de los pasos posteriores de la migración. Por lo tanto, es importante tener en cuenta que hay varios factores que pueden afectar a la precisión de estas estimaciones de evaluación y los resultados notificados se correlacionan directamente con las herramientas subyacentes que se usan en la evaluación de la migración. Hay que tener cuidado para evitar interpolar los resultados estimados de herramientas diferentes o combinadas al revisar e incorporar los resultados de la evaluación a sus planes de migración.
Para obtener más información, consulte nuestro Cuaderno de estrategias de migración de Oracle a Azure Postgres
Migración de esquemas de base de datos
Las definiciones de datos estructurados son una de las características distintivas de los motores de bases de datos transaccionales y una base esencial para una plataforma de datos bien diseñada. Garantizar que las estructuras de datos y las definiciones de tipos de datos exclusivas de Oracle se asignen correctamente a sus respectivas tablas en Azure Postgres es un requisito fundamental para el éxito general de la migración. Aunque todas las bases de datos transaccionales comparten muchas similitudes, existen diferencias en los tipos de datos de tablas y columnas, por lo que se debe tener cuidado para garantizar que los datos no se pierdan, trunquen o manipulen inadvertidamente debido a definiciones de datos no coincidentes. Los tipos de datos numéricos, los tipos de datos de fecha y hora y los tipos de datos basados en texto son solo algunos ejemplos de áreas que deben examinarse detenidamente al desarrollar asignaciones de datos correspondientes para la migración.
Para obtener información adicional y ejemplos de las diferencias entre los tipos de datos de Oracle y Postgres, consulte nuestro cuaderno de estrategias de migración de Oracle a Azure Postgres
Migración de código de base de datos
La migración del código de base de datos se refiere al proceso de convertir el código de base de datos escrito para Oracle para que sea compatible con el motor de base de datos Postgres, manteniendo tanto la funcionalidad original como las características de rendimiento existentes. Este proceso implica la conversión de consultas Oracle PL/SQL, procedimientos almacenados, funciones, desencadenadores y otros objetos de base de datos para que sean compatibles con Postgres PL/pgSQL. Afortunadamente, los dialectos del lenguaje de procedimientos PL/SQL de Oracle y PL/pgSQL de Postgres comparten muchas similitudes, y éste suele ser el factor inicial que muchas organizaciones identifican a la hora de seleccionar Postgres como el más adecuado para las migraciones de bases de datos Oracle. Sin embargo, hay algunas diferencias y diferencias únicas entre los dos lenguajes de base de datos que se deben tener en cuenta. Las áreas de atención incluyen: palabras clave y sintaxis específicas de la base de datos, control de excepciones, funciones integradas, tipos de datos y incremento de secuencia.
En muchos casos, el ecosistema de extensiones de Postgres puede ser un eficaz aliado para ayudar a simplificar el proceso de migración de código. Por ejemplo, la extensión "Oracle Functions for PostgreSQL" (orafce) proporciona un conjunto de funciones y paquetes integrados de compatibilidad con Oracle que pueden reducir la necesidad de reescribir partes de su código base que dependen y hacen referencia a estas funciones de Oracle. El uso de este enfoque basado en la compatibilidad durante la migración de código Oracle a PostgreSQL ofrece ventajas significativas en términos de reducción de la complejidad, el tiempo y el coste del proceso de migración al mantener la lógica y la funcionalidad originales de las definiciones de la base de datos de origen, garantiza la coherencia de los resultados y mejora la productividad de los desarrolladores. Todos estas ventajas se suman a una migración de código a PostgreSQL simplificada y más eficiente.
Para obtener información adicional y ejemplos de las diferencias entre las funciones integradas y los operadores lógicos de Oracle y Postgres, consulte nuestro cuaderno de estrategias de migración de Oracle a Azure Postgres
Migración de datos
En el entorno controlado por datos de hoy en día, los datos son posiblemente su recurso más valioso. Los recursos de datos influyen cada vez más en todos los aspectos de las operaciones empresariales fundamentadas y la toma de decisiones estratégicas. Por lo tanto, es especialmente importante que sus procesos de migración de datos funcionen de forma eficaz y rápida, sean totalmente coherentes y verificables y, en última instancia, se completen con éxito.
La estrategia de migración de datos debe considerarse cuidadosamente para determinar si los enfoques "sin conexión" o "activos" son aplicables a su entorno. Cada estrategia de migración de datos tiene su propia combinación de ventajas y consideraciones, y la elección entre operaciones "sin conexión" y "en directo" depende de los requisitos y limitaciones específicos de su entorno. Por ejemplo, las migraciones "sin conexión" pueden ser más sencillas y menos complejas que las migraciones "activas", sin embargo, las migraciones "sin conexión" implican tiempo de inactividad durante el período de tiempo necesario para migrar completamente los datos a la base de datos de destino. Las migraciones "dinámicas" ofrecen un tiempo de inactividad mínimo o sin tiempo de inactividad, pero implican más complejidad e infraestructura para supervisar la carga inicial de los datos de reposición y la sincronización de datos posterior de los cambios que pueden haberse producido desde el inicio de la migración de datos. La planeación cuidadosa, la evaluación exhaustiva de los requisitos empresariales y la consideración de los factores críticos específicos de su equipo garantizará que pueda tomar una decisión informada totalmente alineada con sus necesidades de migración de datos.
Migración de código de aplicación
Aunque las aplicaciones externas se pueden considerar técnicamente fuera del dominio de las responsabilidades de migración del equipo de base de datos, actualizar y modernizar la conectividad de la base de datos a las aplicaciones cliente es una fase esencial e estrechamente relacionada con el éxito general del recorrido de migración de la base de datos. Al igual que con las otras fases de la migración, el esfuerzo asociado y la complejidad implicados en la corrección de la compatibilidad de la plataforma de aplicaciones cliente depende de las circunstancias únicas de su entorno. ¿Las aplicaciones cliente las desarrolla un tercero? Si es así, es importante asegurarse de que su producto de software está certificado para soportar la plataforma de base de datos Postgres. ¿Las aplicaciones internas usan tecnologías de asignación relacional de objetos, como Hibernate o Entity Framework? En algunos casos, un pequeño cambio de configuración o archivo puede ser todo lo necesario. Por el contrario, si tiene grandes cantidades de consultas e instrucciones de base de datos insertadas en el código, es posible que tenga que asignar más tiempo para revisar, modificar y validar correctamente los cambios de código.
Como alternativa, hay proveedores de soluciones de asociados que ofrecen enfoques nuevos capaces de traducir las operaciones de base de datos de cliente heredadas en tiempo real. Estos servicios proxy proporcionan una abstracción sobre las capas de la base de datos que desacopla eficazmente las aplicaciones de cualquier dependencia lingüística específica de la base de datos.
En muchos casos, la decisión puede incorporar una combinación de varias estrategias y enfoque híbrido empleado colectivamente para sus respectivos puntos fuertes y capacidades combinadas. La implementación de una capa de traducción de bases de datos en tiempo real puede permitir a sus equipos volver a implementar rápidamente sus aplicaciones cliente, al tiempo que proporciona a sus ingenieros de software y desarrolladores el tiempo y la planificación de recursos adecuados para refactorizar sus dependencias específicas de bases de datos para admitir las operaciones nativas de Postgres.
Importante
Cada una de estas opciones va acompañada de sus propios conjuntos concretos de consideraciones y ventajas, y es esencial que los equipos revisen cuidadosamente cada uno de estos enfoques para determinar el camino estratégico ideal hacia adelante.
Validación de la migración
Al migrar de Oracle a PostgreSQL, garantizar la integridad de los datos y la coherencia lógica es primordial. La validación de la migración desempeña un papel fundamental en este proceso, ya que implica comprobar que los datos transferidos desde la base de datos de Oracle de origen son precisos y completos en el sistema PostgreSQL de destino. Este paso no solo es esencial para mantener la confiabilidad de los datos, sino también para confirmar que el proceso de migración no ha introducido errores ni discrepancias. Las comprobaciones de validación pueden incluir comparar recuentos de tablas, comprobar tipos de datos y estructuras, comparar valores de columna de nivel de fila y garantizar que las consultas complejas produzcan resultados coherentes en ambas bases de datos. Además, hay que prestar especial atención a las diferencias en la forma en que los dos sistemas de bases de datos administran los datos, como las variaciones en los formatos de fecha y hora, la codificación de caracteres y el tratamiento de los valores nulos.
Esto suele implicar la configuración de scripts de validación automatizados que pueden comparar conjuntos de datos en ambas bases de datos y resaltar las anomalías. Las herramientas y marcos diseñados para la comparación de datos pueden aprovecharse para simplificar este proceso. La validación posterior a la migración debe ser un proceso iterativo, con múltiples comprobaciones realizadas en distintas fases de la migración para detectar los problemas a tiempo y minimizar el riesgo de corrupción de los datos. Al priorizar la validación de datos, las organizaciones pueden realizar una transición segura de Oracle a PostgreSQL, sabiendo que sus datos siguen siendo confiables y accionables.
Optimización del rendimiento
El rendimiento se considera generalmente una de las características más tangibles e importantes que determinan la percepción y la facilidad de uso de la plataforma. Garantizar que la migración sea precisa y eficaz es fundamental para lograr el éxito y no puede pasarse por alto. Más concretamente, el rendimiento de las consultas suele considerarse el indicador más crítico de una configuración óptima de la base de datos y los usuarios suelen utilizarlo como prueba de fuego para determinar el estado de salud del entorno.
Afortunadamente, la plataforma Azure incorpora de forma nativa las herramientas y funcionalidades necesarias para supervisar los puntos de rendimiento en una variedad de métricas, incluida la escala, la eficiencia y, quizás, la velocidad más importante. Estas características de rendimiento inteligente funcionan a mano con los recursos de supervisión de Postgres para simplificar los procesos de optimización y, en muchos casos, automatizar estos pasos para adaptar y ajustar automáticamente según sea necesario. Las siguientes herramientas de Azure pueden asegurarse de que los sistemas de base de datos funcionan en sus mejores niveles.
Almacén de consultas
El Almacén de consultas para Azure Postgres sirve como base para las características de supervisión. Almacén de consultas realiza un seguimiento de las estadísticas y las métricas operativas de la base de datos de Postgres, incluidas las consultas, los planes de explicación asociados, el uso de recursos y el tiempo de carga de trabajo. Estos puntos de datos pueden descubrir consultas de larga duración, consultas que consumen la mayoría de los recursos, las consultas que se ejecutan con más frecuencia, el sobredimensionamiento excesivo de tablas y muchas más facetas operativas de la base de datos. Esta información le ayuda a dedicar menos tiempo a solucionar problemas mediante la identificación rápida de las operaciones o áreas que requieren atención. El Almacén de consultas proporciona una visión completa del rendimiento general de la carga de trabajo mediante la identificación:
- Consultas de larga duración y cómo cambian con el tiempo.
- Tipos de espera que afectan a esas consultas.
- Detalles sobre las consultas principales de la base de datos por llamadas (recuento de ejecuciones), por uso de datos, por IOPS y por uso de archivos temporales (posibles candidatos de optimización para mejorar el rendimiento).
- Explore en profundidad los detalles de una consulta para ver el id. de consulta y el historial de uso de recursos.
- Información más detallada sobre el consumo de recursos de las bases de datos.
Ajuste del índice
El ajuste de índices es una característica del servidor flexible de Azure Database for PostgreSQL que puede mejorar automáticamente el rendimiento de la carga de trabajo mediante el análisis de consultas con seguimiento y la provisión de recomendaciones de índice. Está integrado de forma nativa en el servidor flexible de Azure Database for PostgreSQL y se basa en la funcionalidad del almacén de consultas. El ajuste de índices analiza las cargas de trabajo de las que realiza el seguimiento el Almacén de consultas y genera recomendaciones de índice para mejorar el rendimiento de la carga de trabajo analizada o para quitar índices duplicados o sin usar. Esto se logra de tres maneras únicas:
- Identifique qué índices son beneficiosos crear porque podrían mejorar significativamente las consultas analizadas durante una sesión de ajuste de índices.
- Identifique los índices que son duplicados exactos y que se pueden eliminar para reducir el impacto en el rendimiento que su existencia y mantenimiento tienen en el rendimiento general del sistema.
- Identifique los índices que no se usan en un período configurable que podrían ser candidatos para eliminar.
Ajuste inteligente
El ajuste inteligente es un proceso de supervisión y análisis continuo que no solo aprende de las características de la carga de trabajo, sino que también realiza un seguimiento de la carga actual y el uso de los recursos, como CPU o IOPS. Además, el ajuste inteligente no interrumpe la ejecución de las operaciones normales de la carga de trabajo de la aplicación. El proceso permite que la base de datos se ajuste dinámicamente a la carga de trabajo al distinguir la relación de sobredimensionamiento actual, el rendimiento de escritura y la eficacia de los puntos de comprobación en la instancia. Con esta información, el ajuste inteligente implementa acciones de optimización que mejoran el rendimiento de la carga de trabajo y evitan posibles problemas. Esta característica consta de dos funciones de ajuste automático:
- Ajuste del vaciado automático: esta función realiza un seguimiento de la relación de sobredimensionamiento y ajusta la configuración del vaciado automático en consecuencia. Tiene en cuenta el uso de recursos actual y previsto para evitar interrupciones de la carga de trabajo.
- Ajuste de escrituras: esta función supervisa el volumen y los patrones de las operaciones de escritura y modifica los parámetros que afectan el rendimiento de la escritura. Estos ajustes mejoran tanto el rendimiento del sistema como su confiabilidad para evitar, de forma proactiva, posibles complicaciones.
Sugerencia
Obtenga más información sobre cómo aplicar rendimiento inteligente para maximizar las plataformas de Azure Postgres.
Optimización de la nube
La optimización del nuevo entorno de base de datos de Azure Postgres significa la culminación de todo el esfuerzo increíble y el trabajo duro que ha llevado a su equipo a llegar a este punto clave. La optimización de la nube puede ser una nueva responsabilidad, especialmente cuando procede de un entorno de base de datos local o heredado. La plataforma en la nube Azure introduce un conjunto nuevo y mejorado de valiosas y avanzadas características de escalabilidad que permiten a su equipo "marcar" la asignación precisa de recursos, características y rentabilidad para satisfacer sus necesidades organizativas actuales y futuras. La optimización de la nube es un proceso continuo de perfeccionamiento de su entorno visto a través de las lentes de las mejores prácticas asociadas con el marco bien diseñado de Microsoft: optimización de costos, excelencia operativa, eficiencia del rendimiento, confiabilidad y seguridad.
La optimización de costos es una combinación de ajuste de tamaño correcto de los recursos, la aplicación de estrategias para la administración de costos y el uso eficaz de los recursos.
La excelencia operativa incluye la adopción de la automatización para implementaciones, supervisión y escalado, y reduce el error al tiempo que aumenta la eficacia.
La eficiencia del rendimiento garantiza la elección de los recursos adecuados para satisfacer los requisitos sin sobreaprovisionamiento, al tiempo que se aplican procedimientos recomendados para la escalabilidad para controlar las distintas cargas de forma eficaz durante los períodos operativos máximos.
La confiabilidad le guía hacia sistemas altamente disponibles y tolerantes a errores con redundancia y mecanismos de conmutación por error para minimizar el tiempo de inactividad y las estrategias de recuperación ante desastres para implementar planes de recuperación sólidos, incluidos los procedimientos de copia de seguridad y restauración.
La seguridad hace hincapié en la importancia de los protocolos de identidad seguros y las prácticas de administración de acceso, como el acceso con privilegios mínimos, la autenticación sin contraseña y el control de acceso basado en rol. La protección y el cifrado de datos garantizan la protección de los datos confidenciales tanto en reposo como en tránsito. La seguridad también incluye herramientas y procedimientos recomendados para la detección de amenazas y respuestas automatizadas para abordar los incidentes de seguridad rápidamente. El cumplimiento garantiza que su entorno cumpla con los estándares y las regulaciones del sector.
Para más información sobre los cinco pilares de la guía y los aspectos básicos de la implementación de optimización en la nube, visite nuestro Centro de Azure Well-Architected Framework (WAF).
Para garantizar que estos pilares están alineados con la implementación de Azure Postgres, revise nuestra Guía del servicio Azure Well-Architected Framework Service para PostgreSQL.