Migrar una base de datos Oracle a una versión más reciente es un proyecto complejo. No se trata sólo de transferir datos: también hay que adaptar un gran volumen de código PL/SQL, limpiar los elementos obsoletos que se han acumulado con el tiempo y asegurarse de que no se introducen regresiones. Por ello, los desarrolladores y los DBA de Oracle deben extremar la vigilancia en cada etapa del proyecto.
Afortunadamente, las herramientas especializadas pueden facilitar mucho el trabajo. Visual Expert ofrece una combinación de herramientas para ayudarle a abordar cada fase de una migración a Oracle con confianza. Visual Expert es una herramienta de análisis estático de código PL/SQL, ideal para explorar, comprender y documentar el código existente.
En este artículo, veremos las etapas típicas de una migración a Oracle, y para cada una de ellas examinaremos las dificultades encontradas y cómo esta herramienta ayuda a superarlas, gracias a funciones específicas.
Tomemos el ejemplo de una base de datos Oracle 11g que contiene principalmente código PL/SQL interno (procedimientos almacenados, triggers, etc.), migrada a Oracle 19c (o 21c).
El primer paso en cualquier proyecto de migración es evaluar la magnitud del trabajo. Es necesario inventariar todos los objetos de la base de datos (tablas, vistas, índices...), así como todo el código PL/SQL (paquetes, procedimientos, funciones, triggers). Esta estimación del volumen se utiliza para planificar la carga de trabajo y los recursos necesarios.
Sin herramientas, esto significa tener que navegar manualmente por el catálogo de Oracle y el código PL/SQL, lo que resulta tedioso y propenso a errores. Una base de datos Oracle puede contener miles de objetos y millones de líneas de código. Obtener una visión global y precisa desde el principio es un reto para los arquitectos y los jefes de proyecto.
Visual Expert también puede utilizarse para crear modelos de la base de datos existente. Genera automáticamente un diagrama entidad-relación que da una idea de la complejidad del modelo de datos: número de tablas y relaciones, desglose en subdominios funcionales, etc.
Visual Expert también puede utilizarse para crear modelos de la base de datos existente. Genera automáticamente un diagrama entidad-relación que da una idea de la complejidad del modelo de datos: número de tablas y relaciones, desglose en subdominios funcionales, etc.
Así, un arquitecto podrá ver si determinadas partes del modelo son muy densas (muchas tablas interconectadas) o aisladas. De este modo, podrá evaluar qué zonas del modelo serán las más críticas para migrar (una zona más densa suele implicar más lógica asociada).
Antes de migrar, conviene ordenar el código y los objetos: ¿por qué migrar a la nueva versión los elementos que ya no se utilizan (procedimientos antiguos que ya no se llaman, tablas temporales o de prueba olvidadas, vistas o sinónimos obsoletos, etc.)?
Migrarlos consumiría tiempo en vano y aumentaría los riesgos (por ejemplo: un paquete obsoleto puede contener código incompatible con 19c).
Sin embargo, detectar manualmente los objetos no utilizados es muy difícil en una base de datos de gran tamaño. Los desarrolladores son reacios a eliminar código por miedo a romper funcionalidades ocultas. Como medida de precaución, suelen migrarlo todo, a costa de un esfuerzo innecesario y una mayor deuda técnica.
Visual Expert ayuda en esta tarea enumerando el "código muerto" de la base de datos Oracle. Con esta información, el equipo puede decidir qué objetos no se migrarán a Oracle 19c, eliminando así elementos innecesarios.
Un análisis estático completo de las dependencias permite identificar los objetos PL/SQL potencialmente no utilizados (aquellos que nunca son referenciados/llamados por otros procedimientos, triggers o aplicaciones externas conocidas).
También puede detectar tablas nunca utilizadas por el código (nunca referenciadas por consultas SELECT/INSERT/UPDATE/DELETE), lo que sugiere que puede que no sean (o ya no sean) explotadas por la aplicación.
Por último, también señala otros elementos que hay que limpiar: procedimientos vacíos, código duplicado que hay que consolidar, etc.
Leer más:
Además de los elementos no utilizados, el equipo tendrá que ocuparse de los elementos necesarios pero obsoletos.
Con el tiempo, Oracle marca como obsoletasciertas funciones e introduce otras nuevas. Por ejemplo, la función DBMS_JOB ha sido sustituida por DBMS_SCHEDULER y ya no se promociona; ciertos tipos de datos como LONG han quedado obsoletos en favor de CLOB/BLOB. Por lo tanto, se recomienda sustituir estos elementos para evitar mantener tecnologías heredadas y no más soportadas.
La dificultad reside en detectar sistemáticamente todos los lugares donde se utilizan estos elementos obsoletos en el esquema y en el código de la base de datos. Un descuido puede pasar fácilmente desapercibido (por ejemplo, una columna de tipo LONG oculta en una tabla técnica). Por tanto, los desarrolladores y los DBA deben ser minuciosos en su detección para planificar las sustituciones necesarias. Escanear manualmente miles de líneas de código o navegar por el diccionario de Oracle no es una solución realista. Por lo tanto, se necesitan herramientas.
Visual Expert sobresale en esta tarea gracias a su profundo análisis de dependencias: un análisis estático completo de las dependencias permite identificar los objetos PL/SQL potencialmente no utilizados (aquellos nunca referenciados/llamados por otros procedimientos, triggers o aplicaciones externas conocidas)
Visual Expert actúa como un escáner de compatibilidad, examinando el código existente de acuerdo con las mejores prácticas, para evitar sorpresas desagradables durante las pruebas.
Al crear los modelos de datos, Visual Expert ayuda a identificar los arcaísmos de diseño que deben modernizarse para aprovechar las mejoras proporcionadas por Oracle. Por ejemplo:
De este modo, Visual Expert permite reflexionar sobre los cambios estructurales que deben introducirse además de los cambios de código. Se puede añadir notas al diagrama con las modificaciones previstas (nuevas relaciones, nuevos tipos). Estos elementos se utilizarán en la siguiente etapa del análisis de impacto.
Una vez que sepa qué cambiar (funciones que sustituir, columnas que modificar, etc.), tiene que evaluar dónde tendrán efecto estos cambios. Se trata del análisis de impacto, crucial para no romper nada durante la migración.
Sin una herramienta, mapear estos impactos es laborioso: hay que seguir manualmente el hilo de múltiples dependencias (quién llama a qué, quién utiliza qué tabla/columna). El temor del equipo es pasar por alto una referencia y descubrir el problema en pruebas o en producción, en un fragmento de código que no se había actualizado.
Visual Expert responde a preguntas como "¿Qué pasa si cambio X?" con un análisis de impacto interactivo:
Si selecciona un objeto (una función o una columna, por ejemplo) y ejecuta el análisis de impacto, Visual Expert enumera todos los objetos que hacen referencia a él.
Por ejemplo: "Si modifico la columna 'nombre_cliente', ¿qué procedimientos, triggers, vistas y paquetes se verán afectados?" o "¿Quién llama a la función XYZ? ¿Qué scripts hacen referencia a ella?
La herramienta puede representar las dependencias en forma de diagramas E/R o matrices.
Por ejemplo, la matriz CRUDcruza los datos con las funciones que los manipulan, especificando el tipo de operación (Create/Read/Update/Delete) que realiza cada procedimiento.En segundos, Visual Expert realiza lo que llevaría horas de trabajo manual. Así, el equipo prepara cada cambio (estimando el tiempo necesario, enumerando los objetos a modificar) y elimina también el riesgo de descuido: ninguna dependencia oculta será ignorada.
Tras la fase de análisis viene la fase de cambios (refactorización del código, modificaciones del esquema).
Aunque Visual Expert es una herramienta de análisis, no de edición (las modificaciones se harán con su editor de código estándar), la misma proporciona una valiosa ayuda durante la implementación.
El equipo puede utilizar Visual Expert como un panel de control para hacer un seguimiento de las modificaciones. Después de realizar un cambio, puede analizarse el nuevo código para comprobar que no quedan referencias al antiguo elemento. Este control de calidad puede realizarse periódicamente durante la implementación.
Visual Expert también ofrece una función de comparación código/esquema que puede utilizarse entre el esquema inicial y el esquema migrado. La herramienta comprende la estructura del código y de los objetos, y genera un informe de las diferencias estructuradas: objetos suprimidos o añadidos, cambios en el código de los procedimientos, cambios en los tipos de columnas, etc. Esta lista de comprobación permite asegurarse de que se ha tratado cada punto previsto y detectar posibles desviaciones involuntarias.
Una vez completada la migración, tendrá que elaborar una documentación técnica actualizada. Esta documentación servirá tanto de inventario de las mejoras para su mantenimiento como de registro de los cambios realizados.
Pero documentar manualmente un esquema y miles de líneas de código no es realista, y el tiempo suele escasear al final de un proyecto. Es laborioso, poco rentable y propenso a errores. Por eso es esencial automatizar la documentación.
Por defecto, la documentación debe incluir:
Visual Expert genera automáticamente la documentación del código. A partir de su repositorio de análisis, puede producir páginas HTML que describan la aplicación en detalle. Los recién llegados al equipo no tendrán que adivinar cómo funciona el código; pueden consultar este repositorio.
Visual Expert también es una ventaja para la documentación del modelo de datos posterior a la migración.
Para ir más allá de la documentación técnica, Visual Expert también puede:
Al combinar una visión general del modelo de datos, una documentación detallada del código y explicaciones funcionales, corrobaramos que Visual Expert cubre todos los aspectos de la base de datos.
El esfuerzo es mínimo gracias a estas herramientas, lo que mejora la calidad global del proyecto, sin sobrecargar al equipo.
El éxito de la migración no se limita a la actualización de la versión. La base de datos también debe funcionar de forma óptima. Sin embargo, pasar a una versión superior puede revelar problemas inesperados. La migración también es una oportunidad para solucionar problemas de rendimiento que no se abordaron en la versión anterior (índices ausentes, consultas lentas, etc.).
Estas optimizaciones posteriores a la migración a veces se pasan por alto por falta de tiempo. Así que hay que identificar las más urgentes: ¿cuáles de los cientos de consultas y procedimientos deben optimizarse primero?
Visual Expert integra un módulo de optimización del rendimiento que recoge y analiza las estadísticas de ejecución generadas por Oracle. La corrección de estos problemas posteriores a la migración mejorará el rendimiento y la mantenibilidad de la base de datos.
Esta combinación de funciones mejorará el rendimiento de las aplicaciones, ya sea como parte de un enfoque preventivo global o para eliminar específicamente determinados cuellos de botella.
También puede utilizar Visual Expert para medir el rendimiento antes y después de la migración, a fin de evaluar el impacto real de las optimizaciones que se han realizado.
Una vez finalizada la migración, es esencial preservar los logros técnicos. Visual Expert ayuda a asegurar, documentar y controlar la evolución de los esquemas Oracle y del código PL/SQL a lo largo del tiempo.
Estas optimizaciones posteriores a la migración a veces se pasan por alto por falta de tiempo. Así que hay que identificar las más urgentes: ¿cuáles de los cientos de consultas y procedimientos deben optimizarse primero?
Automated Code Inspection Summary
Esta supervisión continua reduce los costes de mantenimiento y asegura las evoluciones futuras, lo que permite a los equipos concentrarse más en las mejoras funcionales posteriores a la migración.
Migrar una base de datos Oracle 11g a 19c/21c es un proyecto complejo que puede simplificarse enormemente con las herramientas adecuadas. Con Visual Expert, los equipos de desarrollo y de administración tienen acceso a una completa caja de herramientas que abarca el análisis de código, la gestión de esquemas, el modelado y la documentación.
Visual Expert facilita del proceso de migración: identificación precisa del alcance, limpieza, adaptación a las nuevas funciones, modificaciones controladas, documentación técnica y optimización continua.
Tras la migración inicial, Visual Expert sigue proporcionando un apoyo sustancial con análisis de impacto regulares, comprobaciones de rendimiento y controles periódicos de la calidad del código. Estas características garantizan la estabilidad, la calidad y el rendimiento a largo plazo de la base de datos Oracle, y aseguran un retorno de la inversión sostenible para el proyecto de migración.
Combinando Visual Expert con herramientas de edición de código, y con una gestión rigurosa de los pasos del proyecto, los equipos técnicos pueden llevar a cabo con éxito ambiciosas migraciones al tiempo que reducen los riesgos, aseguran los desarrollos y facilitan la futura mantenibilidad de su base de datos Oracle.
Stay informed about Oracle features that are deprecated or removed in recent versions. Use this list to anticipate necessary changes during your migration projects.
Explore the full list deprecated and desupported Oracle features (18c - 23c)