O que é Oracle to Base de Dados do Azure para PostgreSQL para conversão flexível de esquema de servidor?

A funcionalidade de conversão de esquemas Oracle to Azure Database para PostgreSQL na extensão Visual Studio Code do PostgreSQL ajuda-o a converter os seus objetos de esquema de base de dados Oracle existentes em esquemas compatíveis com PostgreSQL. Esta funcionalidade foi concebida para esquemas relacionais e produz esquemas convertidos para o servidor flexível Base de Dados do Azure para PostgreSQL.

A ferramenta fornece uma interface de utilizador baseada em projetos para automatizar a conversão de esquemas. Se certos objetos não puderem ser convertidos automaticamente, a ferramenta assinala-os como tarefas de revisão, que podes resolver manualmente usando o modo agente do Copilot do GitHub.

Diagrama da Oracle para a Base de Dados Base de Dados do Azure para PostgreSQL arquitetura de conversão de esquemas.

Arquitetura

O processo de conversão de esquemas envolve múltiplos componentes a trabalharem em conjunto:

  • Fonte da base de dados Oracle: A sua base de dados Oracle existente que contém o esquema a converter.
  • Visual Studio Code Extensão PostgreSQL: A interface principal para gerir o processo de conversão.
  • Azure Database para o PostgreSQL – Servidor Flexível: Aloja os esquemas temporários utilizados para validação e testes.
  • Microsoft Foundry: Fornece os modelos de linguagem que impulsionam a transformação de esquemas impulsionada por IA.
  • Agentes de conversão de esquemas: Agentes alimentados por IA que tratam do processo automatizado de conversão.

Como funciona

O processo de conversão de esquemas utiliza uma abordagem inteligente e em múltiplas etapas que combina transformação automatizada com supervisão humana:

  • Ligação e descoberta: A ferramenta liga-se à sua base de dados Oracle e cataloga todos os objetos de esquema. Analisa a sua estrutura, dependências e complexidade para criar um plano de conversão.
  • transformação com tecnologia de IA: os agentes de conversão de esquemas utilizam modelos de linguagem alojados no Microsoft Foundry para transformar elementos específicos de Oracle em equivalentes compatíveis com PostgreSQL. A IA tem em conta o contexto, as relações e as melhores práticas da plataforma.
  • Validação em esquemas temporários: A ferramenta testa todos os objetos convertidos em esquemas temporários no seu servidor flexível do Base de Dados do Azure para PostgreSQL. Esta etapa verifica a correção e compatibilidade da sintaxe antes da geração final da saída.
  • Geração de tarefas de revisão: A ferramenta sinaliza objetos que não podem ser totalmente automatizados ou que requerem avaliação humana como tarefas de revisão. Estes objetos podem incluir lógica de negócio complexa ou funcionalidades específicas da Oracle que requerem atenção manual.
  • Resolução guiada: O modo de agente do GitHub Copilot fornece assistência na conclusão de tarefas de revisão. Oferece sugestões contextualizadas e as melhores práticas flexíveis para servidores Base de Dados do Azure para PostgreSQL para o ajudar a tomar decisões informadas.
  • Geração de saída: A ferramenta converte objetos validados com sucesso em ficheiros PostgreSQL .sql organizados, prontos para implementação no ambiente de destino.

Instalar a extensão

A funcionalidade de conversão de esquema de Oracle para PostgreSQL está integrada na extensão PostgreSQL para Visual Studio Code. Não precisas de instalar uma extensão separada.

Etapas de instalação

  1. Open Extensions Marketplace: No Visual Studio Code, selecione o ícone de Extensões na Barra de Atividade do lado esquerdo, ou use o atalho de teclado Ctrl+Shift+X (Windows/Linux) ou Cmd+Shift+X (macOS).
  2. Procure a extensão: Na caixa de pesquisa do Extension Marketplace, introduza PostgreSQL (ou o ID ms-ossdata.vscode-pgsqlda extensão) para encontrar a extensão.
  3. Instalar a extensão: Nos resultados da pesquisa, localize PostgreSQL publicado por Microsoft, e depois selecione Install. Várias extensões do PostgreSQL estão disponíveis no Marketplace, pelo que verifique se o publicador é Microsoft antes de instalar.
  4. Conversão de Esquema de Acesso: Após a instalação da extensão, aparece um ícone de elefante na Barra de Atividade Visual Studio Code. Selecione o ícone para abrir a extensão PostgreSQL e aceda à funcionalidade de Conversão de Esquema.

Fluxo de trabalho de conversão de esquemas

Esta secção explica os conceitos fundamentais utilizados em todo o fluxo de trabalho de conversão de esquemas do Oracle para o Base de Dados do Azure para PostgreSQL, incluindo unidades de conversão (esquemas, tabelas, índices, vistas e procedimentos), tarefas de revisão para supervisão humana, validação numa base de dados temporária, agentes de conversão de esquemas baseados em IA e os artefactos SQL do PostgreSQL resultantes. Compreender estes conceitos ajuda-o a interpretar resultados de conversão, priorizar e resolver itens sinalizados, e preparar ficheiros convertidos para implementação no Azure Database para o servidor flexível PostgreSQL.

Base de dados scratch

A ferramenta de conversão de esquema utiliza um servidor flexível Base de Dados do Azure para PostgreSQL como ambiente de validação temporária. Dentro desse servidor, a ferramenta cria um ou mais esquemas do scratch, que são esquemas PostgreSQL de curta duração que armazenam objetos convertidos para que a ferramenta os possa testar sem afetar os seus dados de produção.

Usar esquemas scratch dentro de uma base de dados scratch permite à ferramenta verificar que:

  • Os objetos convertidos são sintaticamente corretos.
  • As dependências entre objetos são resolvidas na ordem correta.
  • As definições de objetos continuam compatíveis com a versão alvo PostgreSQL.
  • As funcionalidades flexíveis do Base de Dados do Azure para PostgreSQL aplicam-se corretamente.

Note

O utilizador que estabelece a ligação deve ter privilégios CREATE na base de dados scratch para que a ferramenta possa criar e eliminar esquemas scratch (com o prefixo _mig_scratch_), conforme necessário.

Rever tarefas

A ferramenta assinala itens para revisão manual quando a IA não consegue converter totalmente um objeto ou recomenda que confirmes o resultado. Tarefas comuns de revisão incluem:

  • Procedimentos complexos de PL/SQL que precisam de ajustes manuais.
  • Tipos de dados específicos da Oracle que têm múltiplas alternativas ao PostgreSQL.
  • Funções personalizadas que contêm lógica específica da Oracle.

Para mais informações sobre prioridades de revisão de tarefas e pastas de saída geradas, consulte Rever tarefas e pastas de saída para Oracle to Base de Dados do Azure para PostgreSQL conversão flexível de esquema de servidor.

Modo de agente do GitHub Copilot

O modo GitHub agente do Copilot é uma funcionalidade integrada do Visual Studio Code que fornece prompts guiados para o ajudar a completar tarefas de revisão e alinhar o esquema convertido com os requisitos da sua aplicação. O modo agente oferece:

  • Sugestões conscientes do contexto para modificações de esquema.
  • Recomendações de melhores práticas para Base de Dados do Azure para PostgreSQL flexible server.
  • Completação de código para transformações complexas.
  • Integração com o seu fluxo de trabalho de desenvolvimento atual.

Modos de conectividade Oracle

A ferramenta de conversão de esquemas suporta dois modos de conectividade para ligação à sua base de dados Oracle de origem: fino e espesso. Compreender a diferença ajuda-o a escolher o modo certo para o seu ambiente.

Modo terminal leve (padrão)

O modo Thin liga-se diretamente à Oracle Database sem bibliotecas adicionais de clientes Orecle. Este modo é o padrão e não requer qualquer configuração extra.

  • Não requer instalação do Oracle Instant Client.
  • Suporta Oracle Database 12.1 e versões posteriores.
  • Adequa-se à maioria dos cenários de conversão de esquema.
  • Liga-se usando rede TCP/IP padrão.

Modo cliente pesado

O modo Thick utiliza bibliotecas Oracle Instant Client para se ligar à Oracle Database. A ferramenta de conversão de esquemas deteta quando é necessário o modo thick com base na configuração da sua rede Oracle e muda automaticamente para esse modo.

Quando é necessário o modo de cliente pesado

Pode determinar se é necessário um modo cliente robusto verificando os ficheiros de configuração de rede Oracle no seu ambiente de origem. Procure os seguintes parâmetros no sqlnet.ora ficheiro (normalmente localizados em $ORACLE_HOME/network/admin/):

Parâmetro Indica que é necessário o modo espesso
SQLNET.CRYPTO_CHECKSUM_CLIENT Definido para REQUIRED ou REQUESTED para encriptação nativa de rede
SQLNET.ENCRYPTION_CLIENT Definido para REQUIRED ou REQUESTED para encriptação nativa de rede

Se algum destes parâmetros estiver configurado no seu ambiente Oracle de origem, é necessário um modo cliente espesso. A ferramenta de conversão de esquemas deteta esta configuração e muda automaticamente para o modo espesso. Certifique-se de que o Oracle Instant Client está instalado na máquina onde o Visual Studio Code está a correr antes de iniciar a conversão.

Instalar o Oracle Instant Client

Para usar o modo cliente espesso, instale o Oracle Instant Client na máquina onde o Visual Studio Code e a ferramenta de conversão de esquemas estão a correr. A conversão de esquema é suportada apenas no Windows e Linux .

  1. Descarregue o pacote Oracle Instant Client Basic ou Basic Light do site da Oracle para o seu sistema operativo.
  2. Extrai o pacote para um diretório na máquina.
  3. Adicione o diretório Instant Client à variável de ambiente do sistema PATH :
    • Windows: Adicione o diretório do Cliente Instantâneo à PATH variável através das Propriedades do Sistema> e Variáveis de Ambiente, ou usando o PowerShell.
    • Linux: Adicione o diretório Instant Client e PATH defina a LD_LIBRARY_PATH variável ambiente para incluir o diretório. Certifique-se de que a libaio biblioteca está instalada.
  4. Reinicie o Visual Studio Code para recolher as variáveis de ambiente atualizadas.

Autenticação para Microsoft Foundry

A ferramenta de conversão de esquema suporta dois métodos de autenticação para ligação a modelos de linguagem no Microsoft Foundry:

Autenticação por chave API

A autenticação por chave API utiliza uma chave específica de implementação para autorizar pedidos. Este método é simples e adequado para cenários de desenvolvimento e testes.

Autenticação do Microsoft Entra ID

A autenticação Microsoft Entra ID fornece acesso baseado em tokens e orientado por identidade ao Microsoft Foundry sem gerir chaves API. Este método é recomendado para ambientes de produção e organizações com gestão centralizada de identidades.

Para usar a autenticação Microsoft Entra ID:

  1. Atribua a função necessária: Certifique-se de que o utilizador autenticado ou o principal de serviço tem a função Foundry User (anteriormente Azure AI User) no recurso do Microsoft Foundry que aloja a implementação do modelo. Atribua a função no portal do Azure em Controlo de Acesso (IAM). Para mais informações, consulte Controlo de acesso baseado em funções para Microsoft Foundry.
  2. Iniciar sessão para Azure em Visual Studio Code: Use o comando Azure: Iniciar sessão da Paleta de Comandos (Ctrl+Shift+P) para autenticar com a sua conta Microsoft Entra ID.
  3. Selecione a autenticação do Entra ID: No passo de configuração do modelo de linguagem do Migration Wizard, selecione Microsoft Entra ID como método de autenticação em vez de chave de API.
  4. Indique o endpoint: Introduza o endereço URL do endpoint do Microsoft Foundry. A ferramenta adquire automaticamente o token de autenticação a partir da sua sessão iniciada.

Note

A autenticação do Microsoft Entra ID requer a extensão Azure Account no Visual Studio Code. A extensão tem de ter sessão iniciada com uma identidade que tenha a atribuição de função adequada no recurso Microsoft Foundry.

Segurança e rede

Ao usar a funcionalidade de conversão de esquema, certifique-se de que o seu ambiente Visual Studio Code pode ligar-se de forma segura tanto à sua base de dados Oracle de origem como à instância de servidor flexível Base de Dados do Azure para PostgreSQL que utiliza como base de dados do zero.

A Microsoft recomenda que se ligue ao seu recurso Microsoft Foundry usando um endpoint privado. Para mais informações, consulte Configure um link privado para Microsoft Foundry.

Para mais informações sobre como proteger as suas ligações Microsoft Foundry, consulte Dados, privacidade e segurança para Azure Modelos Diretos em Microsoft Foundry.

Diagrama de como o Visual Studio Code se liga a um endpoint privado.

Important

Responsabilidade pela validação do cliente: O mesmo motor de IA usado para conversão de esquemas também pode ajudar na validação e revisão. Os sistemas de IA podem, por vezes, confirmar os seus próprios erros. Para evitar perda de dados, regressões funcionais ou problemas de segurança, valide de forma independente todos os objetos convertidos e reveja as resoluções das tarefas antes de implementar para produção. Como parte dos seus controlos, considere ativar a filtragem de conteúdos do Foundry para ajudar a reduzir resultados prejudiciais ou indesejados. Para orientação, consulte filtragem de conteúdo no Foundry.

Por que usar a funcionalidade de conversão de esquema?

Converter esquemas Oracle para Azure Database para PostgreSQL facilita a migração e modernização. Reduz o esforço manual e o risco ao automatizar transformações, validar resultados numa base de dados improvisada e fornecer revisão assistida por IA e resultados otimizados para Azure, prontos para implementação.

  • Conversão automática: Reduz o esforço manual ao converter automaticamente objetos de esquema compatíveis.
  • transformação baseada em IA: Utiliza modelos de linguagem alojados no Microsoft Foundry para decisões de conversão conscientes do contexto.
  • Abordagem de validação em primeiro lugar: Utiliza esquemas temporários para confirmar que os objetos convertidos funcionam corretamente.
  • Fluxo de trabalho integrado: Funciona no ambiente de desenvolvimento Visual Studio Code.
  • Conectividade flexível da Oracle: Suporta modos thin e thick client para ligação a bases de dados Oracle.
  • Múltiplas opções de autenticação: Suporta chave API e autenticação Microsoft Entra ID para Microsoft Foundry.
  • Revisão e aperfeiçoamento: Fornece orientações claras para tarefas de revisão manual.
  • Otimização do Azure: Concebido para o servidor flexível do Base de Dados do Azure para PostgreSQL.

Objetos de esquema suportados

A ferramenta de conversão suporta uma vasta gama de esquemas e objetos de código Oracle, incluindo elementos de definição de dados, componentes ao nível do esquema e código procedural. Embora possa converter muitos objetos comuns automaticamente, pode ser necessário rever ou personalizar manualmente o mapeamento para certas funcionalidades específicas da Oracle ou extensões proprietárias. Para listas detalhadas de objetos suportados e limitações conhecidas, consulte as secções deste artigo.

Como são produzidas as conversões

A ferramenta de conversão de esquemas combina tradução alimentada por IA com validação automática para fornecer resultados fiáveis. Os modelos do Microsoft Foundry traduzem o Oracle DDL para PostgreSQL. A ferramenta compila então cada objeto convertido num esquema temporário no servidor flexível Base de Dados do Azure para PostgreSQL de destino, executa análises estáticas e aplica correções automáticas para resolver problemas comuns. As restantes fases do pipeline – análise sintética de fontes, extração de metadados e geração de scripts – funcionam como etapas previsíveis baseadas em regras.

Para rotinas PL/pgSQL, a ferramenta adiciona uma verificação de semântica corporal que utiliza a plpgsql_check extensão na base de dados scratch. Quando a verificação encontra um defeito que a compilação simples não deteta, a ferramenta descarta essa rotina e envia-a de volta pelo ciclo de correção da IA em vez de a escrever na saída. Para mais informações, consulte Validar PL/pgSQL convertido com plpgsql_check.

Esta abordagem utiliza IA onde acrescenta mais valor e mantém o resto do fluxo de trabalho determinístico e verificável. Os objetos que não podem ser totalmente validados são assinalados como tarefas de revisão para que possas resolvê-los antes de aplicares o esquema convertido. Para funcionalidades Oracle que não têm um equivalente prático ao PostgreSQL, veja Oracle to Base de Dados do Azure para PostgreSQL limitações de conversão flexível de esquema de servidor.

Objetos de esquema de base de dados

A ferramenta de conversão suporta os seguintes objetos da base de dados Oracle:

  • Tabelas: Definições de tabelas, especificações de colunas e restrições ao nível da tabela.
  • Restrições: Chaves primárias, chaves estrangeiras, restrições únicas e restrições de verificação.
  • Índices: índices de árvore B, índices únicos e índices compostos.
  • Sequências: Objetos de sequência do Oracle para incrementar valores automaticamente.
  • Acionadores: Acionadores ao nível da linha e ao nível da instrução.
  • Visualizações: Vistas padrão da base de dados.
  • Vistas materializadas: Oracle visualizações materializadas e lógica de atualização.
  • Esquemas: Objetos e organização ao nível do esquema.
  • Sinónimos: Sinónimos públicos e privados (com limitações).

Objetos de código Oracle

A ferramenta de conversão suporta as seguintes construções de código Oracle:

  • Triggers: Lógica complexa de gatilhos e gestão de eventos.
  • Pacotes: especificações e corpos dos pacotes Oracle.
  • Funções: Funções definidas pelo utilizador com lógica complexa.
  • Procedimentos armazenados: Procedimentos armazenados da Oracle e tratamento de parâmetros.
  • Tipos e coleções: tipos de objetos Oracle, TYPE BODY métodos membro, VARRAYtabelas aninhadas e SUBTYPE declarações.

Conversão de pacotes

Os pacotes Oracle não têm um equivalente direto ao PostgreSQL, por isso a ferramenta converte cada parte de um pacote numa construção PostgreSQL que preserva a superfície chamável:

  • Constantes: A ferramenta converte constantes de pacotes públicos em IMMUTABLE funções getter.
  • Coleções e cursores: Tabelas aninhadas tornam-se VARRAY domínios de arrays, onde VARRAY também obtém uma restrição de comprimento. Arrays associativos com chaves de corda tornam-se jsonb domínios, e REF CURSOR tornam-se refcursor.
  • Estado do pacote: As variáveis públicas do pacote tornam-se pares getter e setter apoiadas por uma configuração de sessão, que emula o estado da sessão do pacote Oracle.
  • Exceções: Exceções declaradas pelo utilizador tornam-se funções que devolvem um SQLSTATE valor. Por exemplo, uma exceção inicializada com -20001 mapeia para U0001.
  • Pacotes apenas de especificações: Um pacote sem corpo converte-se em stubs que geram um erro quando chamados, pelo que a superfície chamável ainda existe.

Consultas hierárquicas

Consultas hierárquicas por oráculo convertem-se em expressões de tabelas comuns do PostgreSQL WITH RECURSIVE . A ferramenta converte CONNECT BY e PRIOR para a junção recursiva do membro, START WITH para o membro âncora e LEVEL para um contador de profundidade. Também converte SYS_CONNECT_BY_PATH, CONNECT_BY_ROOT, ORDER SIBLINGS BY, e NOCYCLE. Após a conversão, a ferramenta verifica se o objeto gerado tem a forma recursiva esperada e tenta novamente a conversão se não tiver.

Controlo de transações

Uma rotina que usa PRAGMA AUTONOMOUS_TRANSACTION mantém a sua classe original de objeto Oracle, por isso uma função mantém-se como função e os chamadores existentes que a usam numa SELECT expressão ou continuam a funcionar. O trabalho autónomo corre numa ligação separada através da dblink extensão, por isso certifique-se dblink de que está disponível no servidor alvo. Uma rotina que usa um pragma explícito COMMIT ou ROLLBACK sem este converte-se num procedimento, porque o PostgreSQL permite o controlo de transações aí.

Validar PL/pgSQL convertido com plpgsql_check

O PostgreSQL não valida totalmente o corpo de uma rotina PL/pgSQL quando o crias. CREATE FUNCTION confirma que o corpo faz análise, mas não resolve as tabelas, colunas e variáveis que o corpo referencia. Uma rotina que lê uma coluna que não existe é criada com sucesso e falha apenas na primeira execução. Numa migração, isso transforma um defeito de conversão num incidente de produção, porque a implementação parece limpa.

A ferramenta de conversão de esquemas fecha essa lacuna com a plpgsql_check extensão. Após uma rotina convertida compilar na base de dados scratch, a ferramenta executa uma verificação semântica do corpo contra ela. Quando a verificação encontra um defeito genuíno, a ferramenta descarta a rotina e devolve-a ao ciclo de correção da IA, que a repara e compila novamente. Apenas as rotinas que passam são escritas para a saída de conversão.

Esta validação é a principal razão pela qual uma rotina convertida é fiável antes de a implementar. Trate plpgsql_check como uma parte obrigatória do ambiente de conversão em vez de um extra opcional.

Onde corre o cheque

A verificação corre inteiramente na base de dados scratch que a ferramenta cria durante a conversão. A tua base de dados de destino não precisa plpgsql_check de tempo de execução, e nada do que a ferramenta gera depende disso. A extensão é uma porta de qualidade em tempo de conversão, não uma dependência em tempo de execução.

O que acontece quando a extensão não está disponível

O cheque é fail-open. Quando plpgsql_check não está permitido ou não está disponível no servidor que aloja a base de dados scratch, a ferramenta ignora a verificação e a conversão continua. Não aparece nenhum erro nem aviso no relatório de conversão de esquema, por isso uma execução sem extensão parece igual a uma execução com ela.

As rotinas continuam a ser compiladas, por isso os erros de sintaxe continuam a ser detetados. O que se perde é a validação mais profunda do corpo, por isso defeitos como uma coluna ou referência de tabela não resolvida podem chegar à saída gerada e emergir mais tarde em tempo de execução. Confirme que a extensão está disponível antes de confiar nos resultados da conversão.

Disponibilize o cheque

plpgsql_checké suportado no Base de Dados do Azure para PostgreSQL flexible server para PostgreSQL 14 e posteriores. Permite a extensão, adiciona-a a shared_preload_libraries, e reinicia o servidor antes de converteres. A ferramenta instala então a extensão na base de dados do scratch para si. Para o procedimento completo, consulte Melhores práticas para Oracle to Base de Dados do Azure para PostgreSQL conversão flexível de esquema de servidor.

Versões Oracle suportadas

Esta secção resume as versões dos motores de base de dados que suportam a conversão automática de esquemas e destaca considerações de compatibilidade. Use as versões suportadas da Oracle e PostgreSQL listadas para obter os melhores resultados. Valide as conversões num ambiente de teste não produtivo e use o patch menor mais recente de cada versão maior suportada. Se o seu ambiente usar uma versão não suportada ou incluir funcionalidades proprietárias da Oracle, poderá ser necessário realizar mapeamentos ou revisão manual extra antes da implementação.

As seguintes versões da base de dados Oracle suportam conversão de esquemas:

  • Oracle 21c
  • Oráculo 19c
  • Oráculo 18c
  • Oracle 12.2
  • Oracle 12.1

Comentários e suporte

Para bugs, pedidos de funcionalidades e problemas relacionados com a funcionalidade de conversão de esquemas ou a extensão PostgreSQL, utilize a ferramenta de feedback incorporada no Visual Studio Code. Pode aceder a esta ferramenta de duas formas:

Menu Ajuda

Vá a Ajudar>a Reportar Problema.

Paleta de comandos

  1. Abra a Paleta de Comandos com Ctrl+Shift+P (Windows/Linux) ou Cmd+Shift+P (macOS).
  2. Executa o comando: PGSQL: Reportar Problema.

Quando criar o seu problema ou fornecer feedback, inclua Schema Conversion: como um prefixo no título. Este prefixo ajuda a equipa de desenvolvimento a identificar rapidamente e a priorizar o feedback relacionado com a conversão de esquemas. Este mecanismo de feedback ajuda a equipa de desenvolvimento a melhorar continuamente a funcionalidade de conversão de esquemas e a resolver quaisquer problemas que encontre durante os seus projetos de migração do Oracle para Base de Dados do Azure para PostgreSQL.