Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O recurso de conversão de esquema do Banco de Dados Oracle para Azure para PostgreSQL na extensão PostgreSQL do Visual Studio Code ajuda você a converter seus objetos de esquema de banco de dados Oracle existentes em esquema compatível com PostgreSQL. Essa funcionalidade foi projetada para esquemas relacionais e gera um esquema convertido para o Azure Database para PostgreSQL – servidor flexível.
A ferramenta fornece uma interface do usuário baseada em projeto para automatizar a conversão de esquema. Se determinados objetos não puderem ser convertidos automaticamente, a ferramenta os sinaliza como tarefas de revisão, que você pode resolver manualmente usando o gitHub agente do Copilot modo.
Architecture
O processo de conversão de esquema envolve vários componentes trabalhando juntos:
- Banco de dados Oracle de origem: seu banco de dados Oracle existente que contém o esquema a ser convertido.
- Visual Studio Code extensão postgreSQL: a interface primária para gerenciar o processo de conversão.
- Servidor flexível do Banco de Dados do Azure para PostgreSQL: hospeda os esquemas de rascunho usados na validação e nos testes.
- Microsoft Foundry: fornece os modelos de linguagem que alimentam a transformação de esquema orientada por IA.
- Agentes de conversão de esquema: agentes baseados em IA que realizam o processo automatizado de conversão.
Como funciona
O processo de conversão de esquema usa uma abordagem inteligente de vários estágios que combina a transformação automatizada com a supervisão humana:
- Conexão e descoberta: a ferramenta se conecta ao banco de dados Oracle e cataloga todos os objetos de esquema. Ele analisa sua estrutura, dependências e complexidade para criar um plano de conversão.
- transformação alimentada porAI: agentes de conversão de esquema usam modelos de linguagem hospedados no Microsoft Foundry para transformar constructos específicos do Oracle em equivalentes compatíveis com PostgreSQL. A IA leva em conta o contexto, os relacionamentos e as práticas recomendadas 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 Banco de Dados do Azure para PostgreSQL. Esta etapa verifica a correção e a compatibilidade da sintaxe antes da geração de saída final.
- Geração de tarefas de revisão: a ferramenta sinaliza itens que não podem ser totalmente automatizados ou que exigem avaliação humana como tarefas de revisão. Esses objetos podem incluir lógica de negócios complexa ou recursos específicos do Oracle que precisam de atenção manual.
- Resolução guiada: o modo agente do GitHub Copilot oferece ajuda para concluir tarefas de revisão. Ele oferece sugestões com reconhecimento de contexto e práticas recomendadas para o servidor flexível do Banco de Dados do Azure para PostgreSQL, ajudando você a tomar decisões informadas.
-
Geração de saída: a ferramenta converte objetos validados com êxito em arquivos PostgreSQL
.sqlorganizados, prontos para implantação em seu ambiente de destino.
Instalar a extensão
O recurso de conversão de esquema Oracle to PostgreSQL é integrado à extensão PostgreSQL para Visual Studio Code. Você não precisa instalar uma extensão separada.
Etapas de instalação
-
Open Extensions Marketplace: no Visual Studio Code, selecione o ícone Extensões na Barra de Atividades no lado esquerdo ou use o atalho de teclado
Ctrl+Shift+X(Windows/Linux) ouCmd+Shift+X(macOS). -
Pesquise a extensão: na caixa de pesquisa do Extensions Marketplace, insira
PostgreSQL(ou a IDms-ossdata.vscode-pgsqlda extensão) para localizar a extensão. - Instale a extensão: nos resultados da pesquisa, localize PostgreSQL publicado pelo Microsoft e selecione Install. Várias extensões do PostgreSQL estão disponíveis no Marketplace, portanto verifique se o fornecedor é a Microsoft antes de instalar.
- Conversão de esquema do Access: Após a instalação da extensão, um ícone de elefante aparece na Barra de Atividades do Visual Studio Code. Selecione o ícone para abrir a extensão PostgreSQL e acessar o recurso conversão de esquema.
Fluxo de trabalho de conversão de esquema
Esta seção explica os conceitos centrais usados em todo o fluxo de trabalho de conversão de esquema do Oracle para o Banco de Dados do Azure para PostgreSQL, incluindo unidades de conversão (esquemas, tabelas, índices, views e procedimentos), tarefas de revisão para supervisão humana, validação em banco de dados temporário, agentes de conversão de esquema com tecnologia de IA e os artefatos SQL resultantes do PostgreSQL. Entender esses conceitos ajuda você a interpretar os resultados da conversão, priorizar e resolver itens sinalizados e preparar arquivos convertidos para implantação no servidor flexível do Banco de Dados do Azure para PostgreSQL.
Banco de dados do zero
A ferramenta de conversão de esquema usa um servidor Banco de Dados do Azure para PostgreSQL flexível como um ambiente de validação temporária. Dentro desse servidor, a ferramenta cria um ou mais esquemas temporários, que são esquemas PostgreSQL de curta duração que armazenam objetos convertidos para que a ferramenta possa testá-los sem afetar seus dados de produção.
Usar esquemas scratch dentro de um banco de dados scratch permite que a ferramenta verifique se:
- Os objetos convertidos estão sintaticamente corretos.
- As dependências entre objetos são resolvidas na ordem correta.
- As definições de objeto permanecem compatíveis com a versão postgreSQL de destino.
- Os recursos de servidor flexível do Banco de Dados do Azure para PostgreSQL se aplicam corretamente.
Note
O usuário conector deve ter privilégios CREATE no banco de dados de rascunho para que a ferramenta possa criar e descartar esquemas de rascunho (nomeados com o prefixo _mig_scratch_), conforme necessário.
Revisar tarefas
A ferramenta sinaliza itens para revisão manual quando a IA não consegue converter totalmente um objeto ou recomenda que você confirme o resultado. As tarefas comuns de revisão incluem:
- Procedimentos complexos de PL/SQL que precisam de ajuste manual.
- Tipos de dados específicos do Oracle que têm várias alternativas do PostgreSQL.
- Funções personalizadas que contêm lógica específica do Oracle.
Para obter mais informações sobre as prioridades da tarefa de revisão e as pastas de saída geradas, consulte As tarefas de revisão e as pastas de saída do Oracle para Banco de Dados do Azure para PostgreSQL conversão de esquema de servidor flexível.
Modo de agente do GitHub Copilot
O modo de agente do Copilot do GitHub é um recurso de Visual Studio Code integrado que fornece prompts guiados para ajudá-lo a concluir tarefas de revisão e alinhar o esquema convertido com seus requisitos de aplicativo. Ofertas de modo de agente:
- Sugestões com reconhecimento de contexto para modificações de esquema.
- Recomendações de melhores práticas para o Azure Database para PostgreSQL - Servidor Flexível.
- Conclusão de código para transformações complexas.
- Integração com seu fluxo de trabalho de desenvolvimento existente.
Modos de conectividade Oracle
A ferramenta de conversão de esquema dá suporte a dois modos de conectividade para se conectar ao banco de dados Oracle de origem: fino e grosso. Entender a diferença ajuda você a escolher o modo certo para seu ambiente.
Modo de cliente fino (padrão)
O modo fino se conecta diretamente ao Banco de Dados Oracle sem bibliotecas de clientes Oracle adicionais. Esse modo é o padrão e não requer nenhuma configuração extra.
- Não requer nenhuma instalação do Oracle Instant Client.
- Dá suporte ao Oracle Database 12.1 e posterior.
- É adequada para a maioria dos cenários de conversão de esquema.
- Conecta-se usando a rede TCP/IP padrão.
Modo de cliente pesado
O modo Thick usa bibliotecas do Oracle Instant Client para se conectar ao Banco de Dados Oracle. A ferramenta de conversão de esquema detecta quando o modo espesso é necessário com base na configuração de rede oracle e alterna para ele automaticamente.
Quando o modo de cliente pesado é necessário
Você pode determinar se o modo de cliente espesso é necessário verificando os arquivos de configuração de rede Oracle em seu ambiente de origem. Procure os seguintes parâmetros no sqlnet.ora arquivo (normalmente localizado em $ORACLE_HOME/network/admin/):
| Parâmetro | Indica que o modo denso é necessário |
|---|---|
SQLNET.CRYPTO_CHECKSUM_CLIENT |
Definir para REQUIRED ou REQUESTED para criptografia de rede nativa |
SQLNET.ENCRYPTION_CLIENT |
Definir para REQUIRED ou REQUESTED para criptografia de rede nativa |
Se qualquer um desses parâmetros estiver configurado em seu ambiente Oracle de origem, o modo de cliente espesso será necessário. A ferramenta de conversão de esquema detecta essa configuração e alterna automaticamente para o modo espesso. Verifique se o Oracle Instant Client está instalado no computador em que Visual Studio Code está em execução antes de iniciar a conversão.
Instalar o Cliente Instantâneo do Oracle
Para usar o modo de cliente espesso, instale o Oracle Instant Client no computador em que Visual Studio Code e a ferramenta de conversão de esquema estão em execução. A conversão de esquema tem suporte apenas no Windows e no Linux .
- Baixe o pacote Oracle Instant Client Basic ou Basic Light do site da Oracle para seu sistema operacional.
- Extraia o pacote para um diretório no computador.
- Adicione o diretório cliente instantâneo à variável de ambiente do sistema
PATH:-
Windows: Adicione o diretório do Instant Client à variável de ambiente
PATHpor meio de Propriedades do Sistema>Variáveis de Ambiente, ou usando o PowerShell. -
Linux: adicione o diretório do Cliente Instantâneo ao
PATHe defina a variável de ambienteLD_LIBRARY_PATHpara incluir o diretório. Verifique se alibaiobiblioteca está instalada.
-
Windows: Adicione o diretório do Instant Client à variável de ambiente
- Reinicie Visual Studio Code para pegar as variáveis de ambiente atualizadas.
Autenticação para Microsoft Foundry
A ferramenta de conversão de esquema dá suporte a dois métodos de autenticação para se conectar a modelos de linguagem no Microsoft Foundry:
Autenticação da chave de API
A autenticação de chave de API usa uma chave específica de implantação para autorizar solicitações. Esse método é simples e adequado para cenários de desenvolvimento e teste.
Autenticação do Microsoft Entra ID
A autenticação do Microsoft Entra ID permite acesso ao Microsoft Foundry baseado em tokens e orientado por identidade, sem a necessidade de gerenciar chaves de API. Esse método é recomendado para ambientes de produção e organizações com gerenciamento de identidade centralizado.
Para usar a autenticação da ID do Microsoft Entra:
- Atribua a função necessária: Verifique se o usuário conectado ou a entidade de serviço tem a função Foundry User (anteriormente Azure AI User) no recurso do Microsoft Foundry que hospeda a implantação do seu modelo. Atribua a função no portal do Azure no Controle de Acesso (IAM). Para obter mais informações, consulte o controle de acesso baseado em funções do Microsoft Foundry.
-
Sign in to Azure in Visual Studio Code: Use o comando Azure: Entrar da Paleta de Comandos (
Ctrl+Shift+P) para autenticar com sua conta Microsoft Entra ID. - Select Entra ID authentication: na etapa Migration Wizard de configuração do modelo de linguagem, selecione Microsoft Entra ID como o método de autenticação em vez de API key.
- Informe o endpoint: Insira a URL do endpoint da Microsoft Foundry. A ferramenta adquire o token de autenticação automaticamente de sua sessão de login.
Note
A autenticação do Microsoft Entra ID requer a extensão Azure Account no Visual Studio Code. A extensão deve estar conectada com uma identidade que tenha a atribuição de função adequada no recurso do Microsoft Foundry.
Rede e segurança
Ao usar o recurso de conversão de esquema, verifique se o ambiente do Visual Studio Code pode se conectar com segurança ao banco de dados Oracle de origem e à instância de servidor flexível do Banco de Dados do Azure para PostgreSQL que você usa como banco de dados de rascunho.
A Microsoft recomenda conectar-se ao seu recurso do Microsoft Foundry por meio de um ponto de extremidade privado. Para obter mais informações, consulte Configurar um link privado para Microsoft Foundry.
Para obter mais informações sobre como proteger suas conexões do Microsoft Foundry, consulte Data, privacidade e segurança para Azure Modelos Diretos no Microsoft Foundry.
Importante
Responsabilidade de validação do cliente: o mesmo mecanismo de IA usado para conversão de esquema também pode ajudar na validação e revisão. Os sistemas de IA ocasionalmente podem confirmar seus próprios erros. Para evitar perda de dados, regressões funcionais ou problemas de segurança, valide independentemente todos os objetos convertidos e as resoluções de tarefa de revisão antes de implantar em produção. Como parte de seus controles, considere habilitar a filtragem de conteúdo do Foundry para ajudar a reduzir saídas prejudiciais ou indesejadas. Para obter diretrizes, consulte Filtragem de conteúdo na Foundry.
Por que usar o recurso de conversão de esquema?
A conversão de esquemas Oracle no Banco de Dados do Azure para PostgreSQL simplifica a migração e a modernização. Ele reduz o esforço e o risco manuais automatizando transformações, validando resultados em um banco de dados zero e fornecendo revisão assistida por IA e saída otimizada para Azure pronta para implantação.
- Conversão automatizada: reduz o esforço manual convertendo automaticamente objetos de esquema compatíveis.
- transformação alimentada porAI: usa modelos de linguagem hospedados no Microsoft Foundry para decisões de conversão com reconhecimento de contexto.
- Abordagem com validação em primeiro lugar: usa schemas temporários para confirmar que os objetos convertidos funcionam corretamente.
- Fluxo de trabalho integrado: funciona no ambiente de desenvolvimento Visual Studio Code.
- Conectividade oracle flexível: dá suporte a modos de cliente finos e espessos para se conectar a bancos de dados Oracle.
- Múltiplas opções de autenticação: Oferece suporte à autenticação por chave de API e pelo Microsoft Entra ID para o Microsoft Foundry.
- Revisão e refinamento: fornece diretrizes claras para tarefas de revisão manual.
- Otimização do Azure: Projetado para o Banco de Dados do Azure para PostgreSQL flexible server.
Objetos de esquema com suporte
A ferramenta de conversão dá suporte a uma ampla gama de objetos de código e esquema Oracle, incluindo elementos de definição de dados, componentes no nível do esquema e código de procedimento. Embora você possa converter muitos objetos comuns automaticamente, talvez seja necessário revisar ou personalizar manualmente o mapeamento para determinados recursos específicos do Oracle ou extensões proprietárias. Para obter listas detalhadas de objetos com suporte e limitações conhecidas, consulte as seções neste artigo.
Como as conversões são produzidas
A ferramenta de conversão de esquema combina a tradução alimentada por IA com a validação automatizada para fornecer resultados confiáveis. Microsoft modelos do Foundry convertem o Oracle DDL no PostgreSQL. Em seguida, a ferramenta compila cada objeto convertido em um esquema de rascunho no servidor flexível do Banco de Dados do Azure para PostgreSQL de destino, executa análise estática e aplica correções automatizadas para problemas comuns. Os estágios restantes do pipeline – análise de origem, extração de metadados e geração de script – são executados como etapas previsíveis baseadas em regras.
Para rotinas PL/pgSQL, a ferramenta adiciona uma verificação de semântica de corpo que usa a plpgsql_check extensão no banco de dados zero. Quando a verificação encontra um defeito que a compilação simples não captura, a ferramenta descarta essa rotina e a envia de volta pelo loop de correção de IA em vez de escrevê-la na saída. Para obter mais informações, consulte Validar PL/pgSQL convertido com plpgsql_check.
Essa abordagem usa IA em que adiciona mais valor e mantém o restante do fluxo de trabalho determinístico e verificável. Objetos que não podem ser totalmente validados são sinalizados como tarefas de revisão para que você possa resolvê-los antes de aplicar o esquema convertido. Para recursos oracle que não têm um equivalente prático do PostgreSQL, consulte Oracle para Banco de Dados do Azure para PostgreSQL limitações flexíveis de conversão de esquema de servidor.
Objetos de esquema de banco de dados
A ferramenta de conversão dá suporte aos seguintes objetos de banco de dados Oracle:
- Tabelas: Definições de tabela, especificações de coluna e restrições no nível da tabela.
- Restrições: chaves primárias, chaves estrangeiras, restrições exclusivas e restrições de verificação.
- Índices: índices de árvore B, índices exclusivos e índices compostos.
- Sequências: objetos de sequência do Oracle para valores autoincrementados.
- Gatilhos : gatilhos no nível da linha e no nível da instrução.
- Exibições: exibições de banco de dados padrão.
- Exibições materializadas: exibições materializadas da Oracle e lógica de atualização.
- Esquemas: objetos e organização no 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 dá suporte aos seguintes constructos de código Oracle:
- Gatilhos: lógica de gatilho complexa e manipulação de eventos.
- Pacotes: especificações e corpos de pacotes Oracle.
- Funções: funções definidas pelo usuário com lógica complexa.
- Procedimentos armazenados: procedimentos armazenados e manipulação de parâmetros da Oracle.
-
Tipos e coleções: tipos de objeto Oracle,
TYPE BODYmétodos de membro,VARRAYtabelas aninhadas eSUBTYPEdeclarações.
Conversão de pacotes
Os pacotes Oracle não têm um equivalente postgreSQL direto, portanto, a ferramenta converte cada parte de um pacote em um constructo PostgreSQL que preserva a superfície callable:
-
Constantes: a ferramenta converte constantes de pacote público em
IMMUTABLEfunções getter. -
Coleções e cursores: tabelas aninhadas e
VARRAYse tornam domínios de matriz, ondeVARRAYtambém obtém uma restrição de comprimento. Matrizes associativas com chave de cadeia de caracteres tornam-sejsonbdomínios eREF CURSORse tornamrefcursor. - Estado do pacote: as variáveis de pacote público tornam-se pares getter e setter apoiados por uma configuração de sessão, que emula o estado da sessão do pacote Oracle.
-
Exceções: exceções declaradas pelo usuário se tornam funções que retornam um
SQLSTATEvalor. Por exemplo, uma exceção inicializada com-20001mapas paraU0001. - Pacotes somente especificação: um pacote que não tem corpo é convertido em stubs que geram um erro quando chamado, portanto, a superfície callable ainda existe.
Consultas hierárquicas
As consultas hierárquicas oracle convertem-se em expressões de tabela comuns do PostgreSQL WITH RECURSIVE . A ferramenta converte e se ingressa CONNECT BY no membro recursivo, START WITH no membro de âncora e LEVEL em um contador de profundidade.PRIOR Ele também converte SYS_CONNECT_BY_PATH, CONNECT_BY_ROOTe ORDER SIBLINGS BYNOCYCLE. 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 o fizer.
Controle de transação
Uma rotina que usa PRAGMA AUTONOMOUS_TRANSACTION mantém sua classe de objeto Oracle original, portanto, uma função permanece uma função e os chamadores existentes que a usam em uma SELECT expressão ou continuam funcionando. O trabalho autônomo é executado em uma conexão separada por meio da dblink extensão, portanto, verifique se dblink está disponível no servidor de destino. Uma rotina que usa um pragma explícito COMMIT ou ROLLBACK sem esse pragma é convertido em um procedimento, pois o PostgreSQL permite o controle de transação lá.
Validar PL/pgSQL convertido com plpgsql_check
O PostgreSQL não valida totalmente um corpo de rotina PL/pgSQL quando você o cria.
CREATE FUNCTION confirma que o corpo analisa, mas não resolve as tabelas, colunas e variáveis que o corpo faz referência. Uma rotina que lê uma coluna que não existe é criada com êxito e falha apenas na primeira vez em que é executada. Em uma migração, isso transforma um defeito de conversão em um incidente de produção, porque a implantação parece limpa.
A ferramenta de conversão de esquema fecha essa lacuna com a plpgsql_check extensão. Depois que uma rotina convertida é compilada no banco de dados zero, a ferramenta executa uma verificação de semântica de corpo em relação a ele. Quando a verificação encontra um defeito genuíno, a ferramenta descarta a rotina e a retorna para o loop de correção de IA, que a repara e a compila novamente. Somente rotinas que passam são gravadas na saída de conversão.
Essa validação é o principal motivo pelo qual uma rotina convertida é confiável antes de você implantá-la. Trate plpgsql_check como uma parte necessária do ambiente de conversão em vez de um extra opcional.
Onde a verificação é executada
A verificação é executada inteiramente no banco de dados zero que a ferramenta cria durante a conversão. Seu banco de dados de destino não precisa plpgsql_check em tempo de execução e nada que a ferramenta gera depende dele. A extensão é uma porta de qualidade de tempo de conversão, não uma dependência de runtime.
O que acontece quando a extensão não está disponível
A verificação está em fail-open. Quando plpgsql_check não está na lista de permissões ou não está disponível no servidor que hospeda o banco de dados zero, a ferramenta ignora a verificação e a conversão continua. Nenhum erro e nenhum aviso aparece no relatório de conversão de esquema, portanto, uma execução sem a extensão tem a mesma aparência de uma execução com ele.
As rotinas ainda são compiladas, portanto, os erros de sintaxe ainda são capturados. O que você perde é a validação mais profunda do corpo, portanto, defeitos como uma coluna não resolvida ou uma referência de tabela podem alcançar a saída e a superfície geradas posteriormente em tempo de execução. Confirme se a extensão está disponível antes de você contar com os resultados da conversão.
Disponibilizar a verificação
plpgsql_checké compatível com Banco de Dados do Azure para PostgreSQL servidor flexível para PostgreSQL 14 e posterior. Permita a lista de permissões da extensão, adicione-a shared_preload_librariese reinicie o servidor antes de converter. Em seguida, a ferramenta instala a extensão no banco de dados zero para você. Para o procedimento completo, consulte As práticas recomendadas para o Oracle Banco de Dados do Azure para PostgreSQL conversão de esquema de servidor flexível.
Versões do Oracle com suporte
Esta seção resume as versões do mecanismo de banco de dados que dão suporte à conversão de esquema automatizada e realça considerações de compatibilidade. Use as versões Oracle e PostgreSQL com suporte listadas para obter os melhores resultados. Valide as conversões em um ambiente de teste de não produção e use o patch secundário mais recente de cada versão principal com suporte. Se seu ambiente usa uma versão sem suporte ou inclui recursos proprietários do Oracle, talvez seja necessário executar mapeamento manual extra ou revisão antes da implantação.
As seguintes versões do banco de dados Oracle dão suporte à conversão de esquema:
- Oracle 21c
- Oracle 19c
- Oracle 18c
- Oracle 12.2
- Oracle 12.1
Feedback e suporte
Para bugs, solicitações de recursos e problemas relacionados ao recurso de conversão de esquema ou à extensão PostgreSQL, use a ferramenta de comentários interna no Visual Studio Code. Você pode acessar essa ferramenta de duas maneiras:
Menu de Ajuda
Acesse Ajuda>Relatar problema.
Paleta de Comandos
- Abra a Paleta de Comandos com
Ctrl+Shift+P(Windows/Linux) ouCmd+Shift+P(macOS). - Execute o comando: PGSQL: Problema de Relatório.
Ao criar seu problema ou fornecer comentários, inclua Schema Conversion: como um prefixo em seu título. Esse prefixo ajuda a equipe de desenvolvimento a identificar e priorizar rapidamente os comentários relacionados à conversão de esquema. Esse mecanismo de feedback ajuda a equipe de desenvolvimento a melhorar continuamente o recurso de conversão de esquema e a tratar quaisquer problemas que você encontrar durante seus projetos de migração do Oracle para o Banco de Dados do Azure para PostgreSQL.
Conteúdo relacionado
- Práticas recomendadas para o Oracle Banco de Dados do Azure para PostgreSQL conversão de esquema de servidor flexível
- Examinar tarefas e pastas de saída do Oracle para Banco de Dados do Azure para PostgreSQL conversão de esquema de servidor flexível
- Oracle para Banco de Dados do Azure para PostgreSQL limitações de conversão de esquema de servidor flexível