Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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. Revise el informe de conversión y use Conversion Explorador de objetos para inspeccionar las definiciones de objetos y las notas de conversión. GitHub Copilot puede ayudar a explicar la salida y editar objetos que necesitan cambios manuales.
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 e inventaria los objetos de los esquemas seleccionados. Revise el ámbito de extracción planeado, las exclusiones, los permisos y las dependencias antes de continuar.
- 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 de base de datos temporal: la herramienta intenta compilar definiciones generadas en la base de datos temporal seleccionada y usa comprobaciones estáticas disponibles para identificar problemas de conversión. Estas comprobaciones no establecen un comportamiento de aplicación equivalente.
- Revisión de objetos: El informe HTML y el Explorador de objetos de conversión muestran los resultados de la conversión, las definiciones disponibles y las notas de conversión. Revise los objetos Convertidos y No convertidos .
- Corrección guiada: use Preguntar para comprender la conversión de un objeto o Corregir para las modificaciones asistidas por Copilot. Compila manualmente las definiciones editadas en la base de datos donde se ha implementado el esquema convertido.
-
Preparación de la implementación: la herramienta genera archivos postgreSQL
.sqle instrucciones de configuración. Revisa el resultado y ejecuta los scripts de configuración por separado; la generación de estos archivos no implica su implementación en el 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
-
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) oCmd+Shift+X(macOS). -
Busque la extensión: en el cuadro de búsqueda extensiones de Marketplace, escriba
PostgreSQL(o el identificadorms-ossdata.vscode-pgsqlde extensión ) para buscar la extensión. - 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.
- 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
El flujo de trabajo comienza con el descubrimiento, seguido de la extracción y conversión. La herramienta valida las definiciones de PostgreSQL generadas en una base de datos temporal y usted revisa los resultados en Conversion Explorador de objetos antes de preparar los archivos de implementación.
Discovery
La detección se realiza tras la conexión a Oracle y la selección del esquema, antes de la configuración de la base de datos temporal de PostgreSQL. Comprueba los permisos de origen y hace un inventario de los objetos del esquema sin extraer DDL. Los recuentos describen el inventario de origen y la extracción planeada, no los resultados de la conversión.
| Result | Lo que te dice |
|---|---|
| Descubierto | Objetos encontrados durante la detección. |
| Por extraer | Objetos previstos para la extracción de DDL. |
| Excluido | Objetos omitidos del ámbito de extracción planeado. |
| Objetos no válidos | Objetos marcados como no válidos por el descubrimiento. |
Revise la compatibilidad y exclusiones del tipo de objeto, junto con las dependencias de esquema, antes de confirmar el ámbito. Esquemas dependientes enumera los esquemas a los que se hace referencia y que no ha seleccionado. El hecho de que un esquema aparezca en esta lista no confirma que esté incluido en el ámbito de la conversión.
Para ver los pasos detallados, consulte Revisar los resultados de Discovery en el tutorial.
Extracción
La extracción lee el DDL de Oracle y los metadatos del ámbito fuente revisado. Las definiciones extraídas sirven de entrada para la conversión; la extracción correcta no significa que se haya convertido un objeto.
Conversion
Los agentes de conversión de esquemas usan modelos en Microsoft Foundry para traducir las definiciones de Oracle extraídas a DDL de PostgreSQL e intentar la compilación en la base de datos temporal. Revise tanto los objetos convertidos como los no convertidos en el Explorador de objetos de conversión y valide de forma independiente su comportamiento antes de la implementación.
Base de datos de borrador
Selecciona una base de datos vacía o una base de datos dedicada y sin usar en Servidor flexible de Azure Database for PostgreSQL para validar la conversión. La herramienta utiliza esquemas que se corresponden con los esquemas de Oracle que selecciones; no aísla los objetos existentes en los esquemas con un prefijo de nombre temporal independiente.
Warning
La herramienta quita los schemas coincidentes con DROP SCHEMA ... CASCADE y los vuelve a crear. Esta acción elimina sus objetos y datos existentes y puede quitar objetos dependientes en otros esquemas. No seleccione una base de datos que contenga nada que necesite conservar.
El usuario de conexión necesita permiso para conectarse, crear esquemas y objetos de validación y quitar los esquemas coincidentes. El nivel CREATE de base de datos no concede permiso para eliminar un esquema propiedad de otro rol. Consulte Privilegios de PostgreSQL necesarios.
Las comprobaciones estáticas y de compilación pueden identificar errores de sintaxis, dependencia y tipo en este entorno. No prueban los datos de producción, el comportamiento de la aplicación ni todas las rutas de acceso en tiempo de ejecución.
Explorador de objetos de conversión
Utiliza el Explorador de objetos de conversión para examinar las correspondencias entre el origen y el destino, comparar las definiciones de Oracle y PostgreSQL, y leer las notas de conversión. Seleccione Preguntar para obtener una explicación sobre la conversión y las dependencias de un objeto, o Corregir para realizar cambios en su archivo de PostgreSQL con la ayuda de Copilot. Compile la definición editada manualmente en la base de datos de destino donde se implementa el esquema convertido.
Para obtener pasos detallados, consulte Revisar objetos convertidos en Conversion Explorador de objetos.
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 refinar los objetos convertidos 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. Para ver los sistemas operativos compatibles, consulte los requisitos del sistema operativo del tutorial.
- Descargue el paquete Oracle Instant Client Basic o Basic Light para su sistema operativo desde descargas de Oracle Instant Client. Elija un paquete compatible con el sistema operativo y la arquitectura del entorno de conversión.
- Siga las instrucciones de instalación de la página de descarga específica de la plataforma para instalar el paquete, las dependencias necesarias y la configuración de la ruta de búsqueda de la biblioteca.
- 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:
- 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.
-
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. - 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.
- 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.
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.
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, las regresiones funcionales o los problemas de seguridad, valide de forma independiente los objetos generados y las correcciones manuales antes de realizar la implementación 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 reduce el esfuerzo manual mediante la generación de definiciones de PostgreSQL, su comprobación en una base de datos temporal y la provisión de resultados de nivel de objeto y revisión asistida por IA. Todavía debe validar el esquema generado según los requisitos de su aplicación antes de 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.
- Comprobaciones de la base de datos temporal: utiliza la compilación y las comprobaciones estáticas disponibles para identificar problemas de conversión.
- 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: combina notas de conversión, comparación de origen a destino y ediciones asistidas por Copilot.
- 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
Los modelos de Microsoft Foundry traducen el DDL de Oracle extraído a definiciones de PostgreSQL. La herramienta utiliza la compilación de la base de datos temporal y las comprobaciones estáticas disponibles para identificar problemas y guiar las correcciones.
Para las rutinas PL/pgSQL, plpgsql_check proporciona comprobaciones estáticas adicionales de los cuerpos de las rutinas. Estas comprobaciones pueden identificar problemas que la creación rutinaria por sí sola no detecta. Para obtener más información, consulte Validar el PL/pgSQL convertido con plpgsql_check.
Un estado convertido no es una garantía de éxito de compilación, una implementación completa o un comportamiento equivalente en tiempo de ejecución. Revise las definiciones de objetos y las notas de conversión en el informe HTML y el Explorador de objetos de conversión, incluidos los marcadores de posición o las dependencias que necesitan atención manual. Para ver limitaciones específicas de Oracle, consulte Limitaciones de conversión de esquemas.
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 BODYmétodos de miembro,VARRAYtablas anidadas ySUBTYPEdeclaraciones.
Conversión de paquetes
Los paquetes de Oracle no tienen un equivalente directo en PostgreSQL. Las correspondencias generadas dependen de las definiciones de origen, y debe revisar los miembros del paquete y sus llamantes:
- Constantes: las funciones getter generadas necesitan el valor, el tipo y la volatilidad correctos.
-
Colecciones y cursores: Las correspondencias pueden utilizar matrices, dominios,
jsonborefcursor. Compruebe los límites, la indexación y las expectativas del código llamador. - Estado del paquete: los asistentes generados y la configuración de sesión requieren la validación de la inicialización y el estado entre llamadas, transacciones y sesiones.
-
Excepciones: Revisa la asignación de las excepciones y los códigos de error de Oracle a los valores
SQLSTATEy los controladores de excepciones de PostgreSQL. - Paquetes de solo especificación: la salida puede contener rutinas de marcador de posición que generan un error en lugar de implementar el cuerpo que falta.
Consultas jerárquicas
Las consultas jerárquicas de Oracle se pueden representar mediante expresiones de tabla comunes de PostgreSQL WITH RECURSIVE . Revise la gestión generada de raíces, uniones padre-hijo, profundidad, rutas de acceso, ordenación del mismo nivel y ciclos. Una consulta recursiva que compila no establece que sus resultados coincidan con la consulta original de Oracle.
Control de transacciones
La conversión de rutinas que usan PRAGMA AUTONOMOUS_TRANSACTION puede depender de una conexión independiente a través de dblink. Revise la función o procedimiento generado, las extensiones necesarias y los cambios necesarios en el código que la llama. Pruebe los límites de transacción, el contexto de conexión y sesión, las confirmaciones de transacción, las reversiones de transacción y el control de errores. No suponga que la compilación conserva el comportamiento de transacción original ni las convenciones de llamada.
Validar PL/pgSQL convertido con plpgsql_check
La creación de una rutina PL/pgSQL no valida todas las instrucciones que puede ejecutar. Algunas referencias no válidas o discrepancias de tipos solo aparecen cuando se ejecuta la ruta de ejecución correspondiente. La plpgsql_check extensión puede detectar problemas adicionales a través del análisis estático de cuerpos de rutinas.
Utilice estas comprobaciones además de la compilación, no como prueba de la lógica de negocio equivalente o la preparación para producción. Revise las definiciones generadas y complete la validación funcional y de datos de forma independiente.
Dónde se ejecuta la comprobación
La comprobación se ejecuta en la base de datos temporal que seleccione para la conversión. Examina las rutinas convertidas en ese entorno, no los datos de producción ni el tráfico de la aplicación.
plpgsql_check es una ayuda de validación; prepare por separado las extensiones en tiempo de ejecución que requiere el código convertido.
¿Qué ocurre cuando la extensión no está disponible?
Sin plpgsql_check, no están disponibles las comprobaciones adicionales del cuerpo. La compilación correcta o un estado convertido no significa que se ejecutaron estas comprobaciones. Confirme la disponibilidad de la extensión antes de la conversión y revise y pruebe las rutinas de forma independiente incluso cuando la extensión esté instalada.
Hacer que la comprobación esté disponible
Compruebe la lista de extensiones para su versión de PostgreSQL, agregue plpgsql_check a la lista de permitidos del servidor y configure su biblioteca de precarga necesaria. Reinicie el servidor después de cambiar shared_preload_librariesy confirme que la extensión está instalada en la base de datos temporal seleccionada. Para obtener el procedimiento completo, consulte Permitir e instalar extensiones necesarias.
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
- Abra la paleta de comandos con
Ctrl+Shift+P(Windows/Linux) oCmd+Shift+P(macOS). - 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.