¿Qué es la conversión de esquemas de Oracle a Servidor flexible de Azure Database for PostgreSQL?

La característica de conversión de esquema de Oracle a Azure Database for PostgreSQL en la extensión PostgreSQL de Visual Studio Code le ayuda a convertir los objetos de esquema de base de datos de Oracle existentes en un esquema compatible con PostgreSQL. Esta funcionalidad está diseñada para esquemas relacionales y genera esquema convertido para Azure Database for PostgreSQL servidor flexible.

La herramienta proporciona una interfaz de usuario basada en proyectos para automatizar la conversión de esquemas. Si determinados objetos no se pueden convertir automáticamente, la herramienta las marca como tareas de revisión, que puede resolver manualmente mediante el modo de agente de Copilot de GitHub.

Diagrama de oracle para Azure Database for PostgreSQL arquitectura de conversión de esquemas.

Architecture

El proceso de conversión de esquemas implica que varios componentes funcionen juntos:

  • Base de datos Oracle de origen: Su base de datos Oracle existente que contiene el esquema que se va a convertir.
  • Visual Studio Code extensión PostgreSQL: la interfaz principal para administrar el proceso de conversión.
  • Servidor flexible de Azure Database for PostgreSQL: hospeda los esquemas temporales utilizados para la validación y las pruebas.
  • Microsoft Foundry: proporciona los modelos de lenguaje que potencian la transformación del esquema controlado por IA.
  • Agentes de conversión de esquemas: agentes con tecnología de IA que controlan el proceso de conversión automatizado.

Cómo funciona

El proceso de conversión de esquemas usa un enfoque inteligente y de varias fases que combina la transformación automatizada con la supervisión humana:

  • Conexión y detección: la herramienta se conecta a la base de datos de Oracle y cataloga todos los objetos de esquema. Analiza su estructura, dependencias y complejidad para crear un plan de conversión.
  • Transformación impulsada por IA: los agentes de conversión de esquemas usan modelos de lenguaje alojados en Microsoft Foundry para transformar elementos específicos de Oracle en equivalentes compatibles con PostgreSQL. La inteligencia artificial tiene en cuenta el contexto, las relaciones y las mejores prácticas de la plataforma.
  • Validación en esquemas temporales: la herramienta valida todos los objetos convertidos en esquemas temporales de su servidor flexible de Azure Database for PostgreSQL. Este paso comprueba la exactitud y la compatibilidad de la sintaxis antes de la generación final de la salida.
  • Generación de tareas de revisión: La herramienta marca como tareas de revisión los objetos que no se pueden automatizar por completo o que requieren criterio humano. Estos objetos pueden incluir una lógica de negocios compleja o características específicas de Oracle que necesitan atención manual.
  • Resolución guiada: El modo de agente de Copilot de GitHub proporciona ayuda para completar las tareas de revisión. Ofrece sugerencias contextuales y procedimientos recomendados de servidor flexible de Azure Database for PostgreSQL para ayudarle a tomar decisiones fundamentadas.
  • Generación de salida: la herramienta convierte los objetos validados correctamente en archivos postgreSQL .sql organizados, listos para su implementación en el entorno de destino.

Instalación de la extensión

La característica de conversión de esquemas de Oracle a PostgreSQL está integrada en la extensión PostgreSQL para Visual Studio Code. No es necesario instalar una extensión independiente.

Pasos de instalación

  1. Abrir Extensiones Marketplace: en Visual Studio Code, seleccione el icono Extensiones en la barra de actividades de la izquierda o use el método abreviado de teclado Ctrl+Shift+X (Windows/Linux) o Cmd+Shift+X (macOS).
  2. Busque la extensión: en el cuadro de búsqueda extensiones de Marketplace, escriba PostgreSQL (o el identificador ms-ossdata.vscode-pgsqlde extensión ) para buscar la extensión.
  3. Instalar la extensión: en los resultados de la búsqueda, busque PostgreSQL publicado por Microsoft y seleccione Install. Hay varias extensiones de PostgreSQL disponibles en Marketplace, por lo que debe comprobar que el publicador está Microsoft antes de instalarlo.
  4. Access Schema Conversion: Después de instalar la extensión, aparece un icono de elefante en la barra de actividad de Visual Studio Code. Seleccione el icono para abrir la extensión PostgreSQL y acceder a la característica Conversión de esquemas.

Flujo de trabajo de conversión de esquema

En esta sección se explican los conceptos fundamentales utilizados a lo largo del flujo de trabajo de conversión de esquemas de Oracle a Azure Database for PostgreSQL, incluidas las unidades de conversión (esquemas, tablas, índices, vistas y procedimientos), las tareas de revisión para la supervisión humana, la validación de la base de datos de prueba, los agentes de conversión de esquemas basados en IA y los artefactos SQL de PostgreSQL resultantes. Comprender estos conceptos le ayuda a interpretar los resultados de la conversión, priorizar y resolver los elementos marcados y preparar los archivos convertidos para la implementación en el servidor flexible de Azure Database for PostgreSQL.

Base de datos de borrador

La herramienta de conversión de esquemas usa un servidor flexible Azure Database for PostgreSQL como entorno de validación temporal. Dentro de ese servidor, la herramienta crea uno o varios esquemas temporales, que son esquemas de PostgreSQL de corta duración que contienen objetos convertidos para que la herramienta pueda probarlos sin afectar sus datos de producción.

Usar esquemas de prueba dentro de una base de datos de prueba permite a la herramienta comprobar que:

  • Los objetos convertidos son sintácticamente correctos.
  • Las dependencias entre objetos se resuelven en el orden correcto.
  • Las definiciones de objeto siguen siendo compatibles con la versión de PostgreSQL de destino.
  • Las características de servidor flexible de Azure Database for PostgreSQL se aplican correctamente.

Note

El usuario que se conecta debe tener privilegios CREATE sobre la base de datos temporal para que la herramienta pueda crear y eliminar esquemas temporales (con el prefijo _mig_scratch_) según sea necesario.

Revisar tareas

La herramienta marca los elementos de revisión manual cuando la inteligencia artificial no puede convertir completamente un objeto o recomienda confirmar el resultado. Entre las tareas comunes de revisión se incluyen:

  • Procedimientos PL/SQL complejos que necesitan ajuste manual.
  • Tipos de datos específicos de Oracle que tienen varias alternativas de PostgreSQL.
  • Funciones personalizadas que contienen lógica específica de Oracle.

Para obtener más información sobre cómo revisar las prioridades de tareas y las carpetas de salida generadas, consulte Revisión de las tareas y carpetas de salida de Oracle para Azure Database for PostgreSQL conversión de esquemas de servidor flexible.

Modo de agente de Copilot de GitHub

El modo agente de Copilot de GitHub es una característica de Visual Studio Code integrada que proporciona indicaciones guiadas para ayudarle a completar las tareas de revisión y alinear el esquema convertido con los requisitos de la aplicación. Ofertas del modo agente:

  • Sugerencias compatibles con el contexto para modificaciones de esquema.
  • Recomendaciones de prácticas recomendadas para Servidor flexible de Azure Database for PostgreSQL.
  • Finalización del código para transformaciones complejas.
  • Integración con el flujo de trabajo de desarrollo existente.

Modos de conectividad de Oracle

La herramienta de conversión de esquemas admite dos modos de conectividad para conectarse a la base de datos de Oracle de origen: delgada y gruesa. Comprender la diferencia le ayuda a elegir el modo adecuado para su entorno.

Modo de cliente fino (valor predeterminado)

El modo fino se conecta directamente a Oracle Database sin bibliotecas cliente de Oracle adicionales. Este modo es el predeterminado y no requiere ninguna configuración adicional.

  • No requiere ninguna instalación de Oracle Instant Client.
  • Admite Oracle Database 12.1 y versiones posteriores.
  • Se adapta a la mayoría de los escenarios de conversión de esquemas.
  • Se conecta mediante redes TCP/IP estándar.

Modo de cliente pesado

El modo thick utiliza bibliotecas de Oracle Instant Client para conectarse a Oracle Database. La herramienta de conversión de esquemas detecta cuándo se necesita el modo grueso en función de la configuración de red de Oracle y cambia a ella automáticamente.

Cuando se requiere el modo de cliente pesado

Puede determinar si se requiere el modo de cliente grueso comprobando los archivos de configuración de red de Oracle en el entorno de origen. Busque los parámetros siguientes en el sqlnet.ora archivo (normalmente ubicado en $ORACLE_HOME/network/admin/):

Parámetro Indica que se requiere el modo grueso.
SQLNET.CRYPTO_CHECKSUM_CLIENT Establecer en REQUIRED o REQUESTED para el cifrado de red nativo
SQLNET.ENCRYPTION_CLIENT Establecer en REQUIRED o REQUESTED para el cifrado de red nativo

Si alguno de estos parámetros está configurado en su entorno de Oracle de origen, se requiere el modo de cliente pesado. La herramienta de conversión de esquemas detecta esta configuración y cambia al modo grueso automáticamente. Asegúrese de que Oracle Instant Client está instalado en la máquina donde se ejecuta Visual Studio Code antes de iniciar la conversión.

Instalación del cliente instantáneo de Oracle

Para usar el modo de cliente grueso, instale Oracle Instant Client en el equipo donde se ejecutan Visual Studio Code y la herramienta de conversión de esquemas. La conversión de esquema solo se admite en Windows y Linux .

  1. Descargue el paquete Oracle Instant Client Basic o Basic Light del sitio web de Oracle para su sistema operativo.
  2. Extraiga el paquete en un directorio de la máquina.
  3. Agregue el directorio Instant Client a la variable de entorno del sistema PATH :
    • Windows: Agregue el directorio de Instant Client a la variable a través de >Variables de entorno, o mediante PowerShell.
    • Linux: agregue el directorio De cliente instantáneo a PATH y establezca la LD_LIBRARY_PATH variable de entorno para incluir el directorio. Asegúrese de que la libaio biblioteca está instalada.
  4. Reinicie Visual Studio Code para seleccionar las variables de entorno actualizadas.

Autenticación para Microsoft Foundry

La herramienta de conversión de esquemas admite dos métodos de autenticación para conectarse a modelos de lenguaje en Microsoft Foundry:

Autenticación de clave de API

La autenticación de clave de API usa una clave específica de la implementación para autorizar solicitudes. Este método es sencillo y adecuado para escenarios de desarrollo y pruebas.

Autenticación de Microsoft Entra ID

Microsoft Entra ID autenticación proporciona acceso basado en tokens y controlado por identidades a Microsoft Foundry sin administrar claves de API. Este método se recomienda para entornos de producción y organizaciones con administración centralizada de identidades.

Para usar la autenticación de Microsoft Entra ID:

  1. Assignar el rol necesario: asegúrese de que el usuario o la entidad de servicio que ha iniciado sesión tiene el rol Foundry User (anteriormente Azure usuario de IA) en el recurso Microsoft Foundry que hospeda la implementación del modelo. Asigne el rol en Azure Portal en Control de acceso (IAM). Para obtener más información, consulte Control de acceso basado en rol para Microsoft Foundry.
  2. Inicie sesión en Azure desde Visual Studio Code: Use el comando Azure: Sign In de la Paleta de comandos (Ctrl+Shift+P) para autenticarse con su cuenta de Microsoft Entra ID.
  3. Seleccionar la autenticación de Entra ID: en el paso de configuración del modelo de lenguaje del Migration Wizard, seleccione Microsoft Entra ID como método de autenticación en lugar de clave de API.
  4. Provide el punto de conexión: escriba la dirección URL del punto de conexión de Microsoft Foundry. La herramienta obtiene automáticamente el token de autenticación de su sesión de inicio de sesión.

Note

La autenticación de Microsoft Entra ID requiere la extensión Azure Account en Visual Studio Code. La extensión debe iniciar sesión con una identidad que tenga la asignación de roles adecuada en el recurso Microsoft Foundry.

Seguridad y redes

Al usar la característica de conversión de esquemas, asegúrese de que el entorno de Visual Studio Code pueda conectarse de forma segura a la base de datos de Oracle de origen y a la instancia de servidor flexible de Azure Database for PostgreSQL que use como base de datos temporal.

Microsoft recomienda conectarse al recurso de Microsoft Foundry mediante un punto de conexión privado. Para obtener más información, consulte Configurar un vínculo privado para Microsoft Foundry.

Para obtener más información sobre cómo proteger las conexiones de Microsoft Foundry, consulte Datos, privacidad y seguridad para los modelos directos de Azure en Microsoft Foundry.

Diagrama de cómo Visual Studio Code se conecta a un punto de conexión privado.

Importante

Responsabilidad de validación del cliente: el mismo motor de IA que se usa para la conversión de esquemas también puede ayudar con la validación y revisión. Los sistemas de inteligencia artificial pueden confirmar ocasionalmente sus propios errores. Para evitar la pérdida de datos, regresiones funcionales o problemas de seguridad, valide de forma independiente todos los objetos convertidos y las resoluciones de la tarea de revisión antes de implementar en producción. Como parte de los controles, considere habilitar el filtrado de contenido Foundry para ayudar a reducir las salidas perjudiciales o no deseadas. Para obtener instrucciones, consulte Filtrado de contenido en Foundry.

¿Por qué usar la característica de conversión de esquemas?

La conversión de esquemas de Oracle en Azure Database for PostgreSQL simplifica la migración y la modernización. Reduce el esfuerzo manual y el riesgo automatizando las transformaciones, validando los resultados en una base de datos temporal y proporcionando una revisión asistida por IA y una salida optimizada para Azure listas para la implementación.

  • Conversión automatizada: reduce el esfuerzo manual mediante la conversión automática de objetos de esquema compatibles.
  • Transformación impulsada por IA: Usa modelos de lenguaje alojados en Microsoft Foundry para tomar decisiones de conversión en función del contexto.
  • Enfoque que prioriza la validación: utiliza esquemas temporales para verificar que los objetos convertidos funcionen correctamente.
  • Flujo de trabajo integrado: funciona en el entorno de desarrollo de Visual Studio Code.
  • Conectividad flexible de Oracle: admite modos de cliente finos y gruesos para conectarse a bases de datos de Oracle.
  • Múltiples opciones de autenticación: Admite la autenticación mediante clave de API y Microsoft Entra ID para Microsoft Foundry.
  • Revisión y refinamiento: proporciona instrucciones claras para las tareas de revisión manual.
  • Optimización de Azure: diseñado para el servidor flexible de Azure Database for PostgreSQL.

Objetos de esquema admitidos

La herramienta de conversión admite una amplia gama de objetos de código y esquema de Oracle, incluidos los elementos de definición de datos, los componentes de nivel de esquema y el código de procedimientos. Aunque puede convertir muchos objetos comunes automáticamente, es posible que tenga que revisar o personalizar manualmente la asignación de determinadas características específicas de Oracle o extensiones propietarias. Para obtener listas detalladas de objetos admitidos y limitaciones conocidas, consulte las secciones de este artículo.

Cómo se producen las conversiones

La herramienta de conversión de esquemas combina la traducción con tecnología de inteligencia artificial con validación automatizada para ofrecer resultados confiables. Los modelos Foundry de Microsoft traducen Oracle DDL a PostgreSQL. A continuación, la herramienta compila cada objeto convertido con respecto a un esquema de prueba en su servidor flexible de Azure Database for PostgreSQL de destino, ejecuta análisis estáticos y aplica correcciones automatizadas para problemas comunes. Las fases restantes de la canalización( análisis de origen, extracción de metadatos y generación de scripts) se ejecutan como pasos predecibles basados en reglas.

Para las rutinas pl/pgSQL, la herramienta agrega una comprobación semántica del cuerpo que usa la plpgsql_check extensión en la base de datos temporal. Cuando la comprobación encuentra un defecto que la compilación sin formato no detecta, la herramienta descarta esa rutina y la envía de vuelta a través del bucle de corrección de IA en lugar de escribirla en la salida. Para obtener más información, consulte Validación de PL/pgSQL convertido con plpgsql_check.

Este enfoque utiliza IA donde aporta más valor y mantiene el resto del flujo de trabajo determinista y verificable. Los objetos que no se pueden validar completamente se marcan como tareas de revisión para que pueda abordarlos antes de aplicar el esquema convertido. Para conocer las características de Oracle que no tienen un equivalente práctico de PostgreSQL, consulte Oracle para Azure Database for PostgreSQL limitaciones de conversión de esquemas de servidor flexibles.

Objetos de esquema de base de datos

La herramienta de conversión admite los siguientes objetos de base de datos de Oracle:

  • Tablas: definiciones de tabla, especificaciones de columna y restricciones de nivel de tabla.
  • Restricciones: claves principales, claves externas, restricciones únicas y restricciones check.
  • Índices: índices de árbol B, índices únicos e índices compuestos.
  • Secuencias: objetos de secuencia de Oracle para autoincrementar valores.
  • Desencadenadores: desencadenadores de nivel de fila y de nivel de instrucción.
  • Vistas: vistas de base de datos estándar.
  • Vistas materializadas: vistas materializadas de Oracle y lógica de actualización.
  • Esquemas: objetos de nivel de esquema y organización.
  • Sinónimos: sinónimos públicos y privados (con limitaciones).

Objetos de código de Oracle

La herramienta de conversión admite las siguientes construcciones de código de Oracle:

  • Desencadenadores: lógica de desencadenador compleja y control de eventos.
  • Paquetes: especificaciones y cuerpos del paquete de Oracle.
  • Funciones: funciones definidas por el usuario con lógica compleja.
  • Procedimientos almacenados: procedimientos almacenados de Oracle y control de parámetros.
  • Tipos y colecciones: tipos de objeto de Oracle, TYPE BODY métodos de miembro, VARRAYtablas anidadas y SUBTYPE declaraciones.

Conversión de paquetes

Los paquetes de Oracle no tienen un equivalente directo de PostgreSQL, por lo que la herramienta convierte cada parte de un paquete en una construcción de PostgreSQL que conserva la superficie invocable:

  • Constantes: la herramienta convierte constantes de paquete público en IMMUTABLE funciones getter.
  • Colecciones y cursores: tablas anidadas y VARRAY convertirse en dominios de matriz, donde VARRAY también obtiene una restricción de longitud. Las matrices asociativas con clave de cadena se convierten en jsonb dominios y REF CURSOR se convierten en refcursor.
  • Estado del paquete: las variables de paquete público se convierten en pares captadores y establecedores respaldados por una configuración de sesión, que emula el estado de sesión del paquete de Oracle.
  • Excepciones: las excepciones declaradas por el usuario se convierten en funciones que devuelven un SQLSTATE valor. Por ejemplo, una excepción inicializada con -20001 asignaciones a U0001.
  • Paquetes de solo especificación: un paquete que no tiene ningún cuerpo convierte en códigos auxiliares que generan un error cuando se llama, por lo que la superficie invocable sigue existiendo.

Consultas jerárquicas

Las consultas jerárquicas de Oracle se convierten en expresiones de tabla comunes de PostgreSQL WITH RECURSIVE . La herramienta convierte CONNECT BY y PRIOR en la combinación de miembro recursivo, START WITH en el miembro de anclaje y LEVEL en un contador de profundidad. También convierte SYS_CONNECT_BY_PATH, CONNECT_BY_ROOT, ORDER SIBLINGS BYy NOCYCLE. Después de la conversión, la herramienta comprueba que el objeto generado tiene la forma recursiva esperada y vuelve a intentar la conversión si no lo hace.

Control de transacciones

Una rutina que usa PRAGMA AUTONOMOUS_TRANSACTION mantiene su clase de objeto de Oracle original, por lo que una función permanece una función y los autores de llamadas existentes que lo usan en una SELECT expresión o siguen funcionando. El trabajo autónomo se ejecuta en una conexión independiente a través de la dblink extensión, por lo que asegúrese de que dblink está disponible en el servidor de destino. Una rutina que usa un pragma explícito COMMIT o ROLLBACK sin esta pragma convierte en un procedimiento, ya que PostgreSQL permite el control de transacciones allí.

Validación de PL/pgSQL convertido con plpgsql_check

PostgreSQL no valida completamente un cuerpo rutinario pl/pgSQL al crearlo. CREATE FUNCTION confirma que el cuerpo analiza, pero no resuelve las tablas, columnas y variables a las que hace referencia el cuerpo. Una rutina que lee una columna que no existe se crea correctamente y solo se produce un error la primera vez que se ejecuta. En una migración, que convierte un defecto de conversión en un incidente de producción, ya que la implementación parece limpia.

La herramienta de conversión de esquemas cierra esa brecha con la plpgsql_check extensión. Después de que una rutina convertida se compile en la base de datos temporal, la herramienta ejecuta una comprobación semántica del cuerpo en ella. Cuando la comprobación encuentra un defecto genuino, la herramienta descarta la rutina y la devuelve al bucle de corrección de IA, que lo repara y lo compila de nuevo. Solo las rutinas que se pasan se escriben en la salida de conversión.

Esta validación es la razón principal por la que una rutina convertida es confiable antes de implementarla nunca. Trate plpgsql_check como parte necesaria del entorno de conversión en lugar de un adicional opcional.

Dónde se ejecuta la comprobación

La comprobación se ejecuta completamente en la base de datos temporal que la herramienta crea durante la conversión. La base de datos de destino no necesita plpgsql_check en tiempo de ejecución y nada que la herramienta genere depende de ella. La extensión es una puerta de calidad en tiempo de conversión, no una dependencia en tiempo de ejecución.

¿Qué ocurre cuando la extensión no está disponible?

La comprobación está abierta por error. Cuando plpgsql_check no está permitido o no está disponible en el servidor que hospeda la base de datos temporal, la herramienta omite la comprobación y la conversión continúa. No aparece ningún error y no aparece ninguna advertencia en el informe de conversión de esquema, por lo que una ejecución sin la extensión tiene el mismo aspecto que una ejecución con él.

Las rutinas se siguen compilando, por lo que todavía se detectan errores de sintaxis. Lo que pierde es la validación más profunda del cuerpo, por lo que los defectos, como una columna o referencia de tabla sin resolver, pueden llegar a la salida y superficie generadas más adelante en tiempo de ejecución. Confirme que la extensión está disponible antes de confiar en los resultados de la conversión.

Hacer que la comprobación esté disponible

plpgsql_checkse admite en Azure Database for PostgreSQL servidor flexible para PostgreSQL 14 y versiones posteriores. Permitir incluir la extensión, agregarla a shared_preload_librariesy reiniciar el servidor antes de convertir. A continuación, la herramienta instala la extensión en la base de datos temporal automáticamente. Para obtener el procedimiento completo, consulte Procedimientos recomendados para que Oracle Azure Database for PostgreSQL conversión de esquemas de servidor flexible.

Versiones de Oracle admitidas

En esta sección se resumen las versiones del motor de base de datos que admiten la conversión automatizada de esquemas y resalta las consideraciones de compatibilidad. Use las versiones admitidas de Oracle y PostgreSQL para obtener los mejores resultados. Valide las conversiones en un entorno de prueba que no sea de producción y use la revisión secundaria más reciente de cada versión principal admitida. Si el entorno usa una versión no admitida o incluye características propietarias de Oracle, es posible que tenga que realizar una asignación manual adicional o revisarla antes de la implementación.

Las siguientes versiones de base de datos de Oracle admiten la conversión de esquemas:

  • Oracle 21c
  • Oracle 19c
  • Oracle 18c
  • Oracle 12.2
  • Oracle 12.1

Comentarios y soporte técnico

En el caso de errores, solicitudes de características y problemas relacionados con la característica de conversión de esquemas o la extensión postgreSQL, use la herramienta de comentarios integrada en Visual Studio Code. Puede acceder a esta herramienta de dos maneras:

Menú Ayuda

Vaya a Ayuda>Informar de un problema.

Paleta de comandos

  1. Abra la paleta de comandos con Ctrl+Shift+P (Windows/Linux) o Cmd+Shift+P (macOS).
  2. Ejecute el comando: PGSQL: Problema de informe.

Al crear el problema o proporcionar comentarios, incluya Schema Conversion: como prefijo en el título. Este prefijo ayuda al equipo de desarrollo a identificar y priorizar rápidamente los comentarios relacionados con la conversión de esquemas. Este mecanismo de comentarios ayuda al equipo de desarrollo a mejorar continuamente la función de conversión de esquema y a solucionar cualquier problema que pueda encontrar durante sus proyectos de migración de Oracle a Azure Database for PostgreSQL.