Migración de base de datos Oracle

Prepare, migre y optimice sus esquemas Oracle y código PL/SQL con Visual Expert

Prube Visual Expert


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).

Paso 1: Evaluar el volumen de código y de objetos

Objetivo: establecer un análisis claro y estimar la carga de trabajo de la migración.

Desafíos

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.

Inventario automático de código y de objetos

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.

Leer más

Database Inventory with Object Counts

Modelo de bases de datos

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).

Entity-Relationship Diagram

Leer más

Paso 2: Limpiar el código

Objetivo: eliminar elementos no utilizados para reducir la deuda técnica y los riesgos.

Desafíos

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.

Análisis de dependencias para detectar código muerto

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.

Unused Oracle Components List

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).

Tablas no utilizadas y sugerencias de limpieza

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:

Paso 3: Identificar los componentes obsoletos que deben sustituirse

Objetivo: identificar las tecnologías obsoletas que deben sustituirse antes de la migración

Desafíos

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.

Solución Visual Expert

Análisis en profundidad de las dependencias

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)

  • Puede listar todos los procedimientos, triggers, funciones, paquetes, subprogramas y tipos que hacen referencia a objetos obsoletos como función Oracle, paquetes, subprogramas.
  • También puede listar tablas y columnas basadas en un tipo obsoleto, como paquetes LONG o DBMS_XMLGEN, etc.
    Deprecated LONG and LONG RAW datatypes alert
  • Visual Expert también incluye un motor de inspección automática del código, cuyas reglas le avisan del uso de elementos obsoletos.

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.

Sugerencias de modernización del diseño

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:

  • Algunas tablas utilizan un identificador compuesto en lugar de un identificador único de secuencia/identidad.
  • Algunas relaciones no se declaran mediante una restricción (históricamente se gestionan mediante código).
  • ¿Quizás algunos campos de texto muy largos y no relacionados podrían convertirse en CLOB?

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.

Paso 4: Análisis de impacto de los cambios que deben introducirse

Objetivo: anticipar todas las consecuencias del cambio para evitar la regresión.

Desafíos

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.

  • Por ejemplo: sustituir una función obsoleta significa modificar el código de todos los procedimientos que la llaman. Pero estos procedimientos pueden a su vez ser llamados en otros lugares. Tendrá que comprobar las consecuencias de todas estas modificaciones.
  • Del mismo modo, cambiar una columna LONG a CLOB requerirá modificar los procedimientos que manipulan esta columna y comprobar los componentes upstream/downstream (vistas, interfaces, etc.).

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.

Solución Visual Expert

Análisis de impacto interactivo

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?



Column Impact Analysis

Leer más

Visualización de la dependencia

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.

CRUD Matrix

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.

Leer más

Paso 5: Realizar los cambios

Objetivo: aplicar los cambios de forma coherente y segura.

Desafíos

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.

Solución Visual Expert

Panel de control del seguimiento de modificaciones

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.

Comparación de códigos y esquemas

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.

Code Comparison Tool

Leer más

Paso 6: Documentación técnica de la base de datos migrada

Objetivo: generar automáticamente documentación completa, actualizada y utilizable.

Desafíos

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:

  1. Estructura de la base de datos (esquemas, diagramas),
  2. Diccionario de datos (columnas, tipos),
  3. Código PL/SQL (lista y descripción de módulos, parámetros, llamadas),
  4. Y posiblemente comparaciones antes/después de la migración

 

Solución Visual Expert

Documentación automática del código

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.

  • Para cada paquete/procedimiento/trigger, especificará: su código fuente, una lista de sus parámetros, una explicación, así como sus referencias (por ejemplo, "este procedimiento llama a tales tablas, es llamado por tal otro objeto..."). Estas referencias son hipervínculos sobre los que se puede hacer clic en la documentación, lo que la hace navegable como un sitio web.
  • También se pueden generar informes específicos: por ejemplo, una lista de todos los objetos modificados durante la migración con su nuevo estado, así como una matriz CRUD o un diagrama de llamadas para ilustrar las interacciones entre componentes.

Leer más

Documentación del modelo de datos y lógica empresarial

Visual Expert también es una ventaja para la documentación del modelo de datos posterior a la migración.

  • Una vez finalizada la migración, actualizará el diagrama entidad-relación para obtener un diagrama visual actualizado de todo el sistema.
  • Este diagrama puede ajustarse: por ejemplo, puede dividirse en varios subdiagramas temáticos, más fáciles de consultar. Cada subdiagrama puede abarcar un área funcional (facturación, gestión de clientes, etc.).
  • Una vez que los diagramas son satisfactorios, Visual Expert puede exportarlos como PDF o imágenes de alta resolución para integrarlos en la documentación final.

Leer más

Explicar y comentar el código con funciones de IA

Para ir más allá de la documentación técnica, Visual Expert también puede:

  1. Explicar la finalidad empresarial del código
  2. Describir su lógica interna.
  3. Generar comentarios en el código.

Visual Expert AI – Explaining and commenting code

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.

Paso 7 : Optimización posterior a la migración

Objetivo: mejorar el rendimiento y la mantenibilidad de la base de datos migrada.

Desafíos

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?

Soluciones Visual Expert

Análisis del rendimiento

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.

Call Graph Execution Time

Leer más

Calidad y optimización del código

  • Visual Expert también comprueba la calidad del código y detecta ciertas malas prácticas que afectan al rendimiento (por ejemplo, el uso bucles anidados (nested loops) en PL/SQL, en lugar de uniones SQL).
  • Detecta automáticamente los índices que faltan (columnas de la base de datos sin índices, que se utilizan en las cláusulas Where/Group by/Order by/Having de las consultas SQL), lo queretarda innecesariamente la ejecución de las consultas SQL.
  • Por último, Visual Expert puede utilizarse para analizar las consultas lentas encontradas: el DBA puede visualizar el plan de ejecución de la consulta para ver cómo es procesada por Oracle (index traversal, scan completos , unión mediate hash , sorting, etc.). De este modo, puede pasar rápidamente del análisis a la acción para las optimizaciones SQL.
  • Cuando un objeto o consulta retarda la aplicación, Visual Expert puede optimizar su código:

Visual Expert AI – Improving performance

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.

Paso 8: Seguimiento continuo tras la migración

Objetivo: Mantener la calidad y el rendimiento del código PL/SQL a largo plazo.

Desafíos

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?

Soluciones de Visual Expert

Mantenimiento proactivo

  • Análisis de impacto sistemático antes de cada cambio
    Se recomienda realizar sistemáticamente un análisis de impacto antes de cada cambio significativo en la base de datos Oracle y en el código PL/SQL. Esta práctica garantiza una consideración exhaustiva de las dependencias y minimiza los riesgos de regresión.
  • Comprobaciones periódicas del funcionamiento
    Puede supervisar los tiempos de ejecución de procedimientos y consultas SQL para detectar y solucionar rápidamente nuevos problemas. Pueden aparecer, por ejemplo, tras modificaciones de consultas que requieran la creación de nuevos índices para evitar degradar el rendimiento. Visual Expert detectará e informará de estos casos al DBA que podrá tomar las medidas necesarias.

Control de calidad y resolución de problemas

  • Verificación periódica de la calidad y la seguridad del código
    Visual Expert puede inspeccionar automática y periódicamente el código para detectar la aparición de problemas de calidad o seguridad. Los equipos podrían, por ejemplo, estar utilizando un tipo de datos o una función de Oracle obsoleta por costumbre o hábito. Este control periódico ayudará a mantener un alto nivel de calidad y de seguridad a lo largo del tiempo.
  • Code Inspection Dashboard Visual Expert for Oracle

    Automated Code Inspection Summary

  • Solución de problemas detectados en el código
    Para cada problema encontrado en el código, Visual Expert puede sugerir una solución potencial
  • Fixing issues found in Oracle PL/SQL code

  • Seguimiento documentado de los cambios en el esquema y el código
    Visual Expert realizará un seguimiento de todos los cambios realizados en el esquema y en el código PL/SQL, lo que simplificará enormemente la gestión de versiones y la trazabilidad de los cambios.

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.

Conclusió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.

Cuadro recapitulativo por etapas

Fase del proyecto Funciones de Visual Expert
1. Evaluation of volume

- Cálculo de métricas (líneas de código, objetos)
- Inventario por tipo de objeto
- Visión general de los activos de la aplicación
- Generación automática de diagramas E/R (modelo de datos)
- Análisis visual de áreas complejas o aisladas

2. Llimpieza del código

- Identificación de objetos no utilizados (no referenciados)
- Identificación de tablas a las que nunca accede el código
- Detección de código duplicado, vacío o redundante

3. Detección de elementos obsoletos

- Comprobación del uso de funciones/tipos obsoletos
- Alerta mediante reglas de análisis de código
- Identificación automática de objetos que deben modernizarse
- Análisis del modelo E/R para identificar arcaísmos de diseño
- Anotación del modelo para definir evoluciones

4. Análisis de impacto

- Análisis de impacto interactivo (¿quién utiliza un elemento?)
- Matriz CRUD (¿quién lee/escribe en qué tablas?)
- Diagramas de llamadas y referencias cruzadas

5. Aplicación de los cambios

- Verificación posterior al cambio (todos los puntos cubiertos)
- Comparación de esquemas/códigos antes/después de la migración

6. Documentación técnica

- Generación automática de documentación de código
- Generación de matrices CRUD - Generación de diagramas de llamadas
- Diagramas E/R actualizados para la documentación posterior a la migración
- Exportación y creación de subdiagramas del modelo de datos

7. Optimización posterior a la migración

- Análisis del rendimiento del código (tiempo medio, frecuencia)
- Análisis de cadenas de llamadas a funciones - Detección de índices ausentes
- Análisis y ajuste de consultas SQL (plan de ejecución)
- Actualización del modelo para reflejar las optimizaciones

8 - Seguimiento continuo tras la migración

- Análisis sistemático del impacto antes de cada cambio
- Comprobaciones periódicas del rendimiento
- Controles de calidad periódicos
- Documentación de las evoluciones del esquema y del código

Funciones obsoletas y no admitidas de 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)