Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La funzionalità di conversione dello schema da Oracle a Database di Azure per PostgreSQL nell'estensione PostgreSQL di Visual Studio Code consente di convertire gli oggetti dello schema di database Oracle esistenti in uno schema compatibile con PostgreSQL. Questa funzionalità è progettata per schemi relazionali e produce lo schema convertito per Database di Azure per PostgreSQL server flessibile.
Lo strumento fornisce un'interfaccia utente basata su progetto per automatizzare la conversione dello schema. Esaminare il report di conversione e usare Conversion Esplora oggetti per esaminare le definizioni degli oggetti e le note di conversione. GitHub Copilot può aiutare a spiegare l'output e modificare gli oggetti che richiedono modifiche manuali.
Architecture
Il processo di conversione dello schema prevede l'utilizzo di più componenti:
- Database Oracle di origine: database Oracle esistente che contiene lo schema da convertire.
- Visual Studio Code estensione PostgreSQL: interfaccia primaria per la gestione del processo di conversione.
- Database di Azure per PostgreSQL Flexible Server: ospita gli schemi temporanei utilizzati per la convalida e il test.
- Microsoft Foundry: fornisce i modelli di linguaggio che alimentano la trasformazione dello schema basato su intelligenza artificiale.
- Agenti di conversione dello schema: agenti basati su intelligenza artificiale che gestiscono il processo di conversione automatica.
Come funziona
Il processo di conversione dello schema usa un approccio intelligente e a più fasi che combina la trasformazione automatizzata con la supervisione umana:
- Connessione e individuazione: lo strumento si connette al database Oracle ed esegue l'inventario degli oggetti negli schemi selezionati. Esaminare l'ambito di estrazione pianificato, le esclusioni, le autorizzazioni e le dipendenze prima di continuare.
- AI-powered transformation: gli agenti di conversione dello schema usano modelli di linguaggio ospitati in Microsoft Foundry per trasformare costrutti specifici di Oracle in equivalenti compatibili con PostgreSQL. L'intelligenza artificiale prende in considerazione il contesto, le relazioni e le procedure consigliate per la piattaforma.
- Convalida del database scratch: lo strumento tenta di compilare definizioni generate nel database scratch selezionato e usa controlli statici disponibili per identificare i problemi di conversione. Questi controlli non garantiscono un comportamento equivalente dell'applicazione.
- Revisione oggetto: Il report HTML e Conversion Esplora oggetti mostrano i risultati della conversione, le definizioni disponibili e le note di conversione. Esaminare sia gli oggetti convertiti sia quelli non convertiti.
- Correzione guidata: usare Ask per comprendere la conversione di un oggetto o Fix per modifiche assistite da Copilot. Inserire manualmente le definizioni modificate nel database in cui è distribuito lo schema convertito.
-
Preparazione della distribuzione: lo strumento genera file PostgreSQL
.sqle istruzioni di installazione. Esaminare l'output ed eseguire gli script di installazione separatamente; la generazione di questi file non li distribuisce nella destinazione specificata.
Installare l'estensione
La funzionalità di conversione dello schema da Oracle a PostgreSQL è incorporata nell'estensione PostgreSQL per Visual Studio Code. Non è necessario installare un'estensione separata.
Passaggi di installazione
-
Apri estensioni Marketplace: in Visual Studio Code selezionare l'icona Estensioni nella barra delle attività a sinistra oppure usare il tasto di scelta rapida da tastiera
Ctrl+Shift+X(Windows/Linux) oCmd+Shift+X(macOS). -
Cercare l'estensione: nella casella di ricerca Extensions Marketplace immettere
PostgreSQL(o l'IDms-ossdata.vscode-pgsqlestensione ) per trovare l'estensione. - Installa l'estensione: nei risultati della ricerca individuare PostgreSQL pubblicato da Microsoft e quindi selezionare Install. Nel Marketplace sono disponibili diverse estensioni PostgreSQL, quindi verificare che il server di pubblicazione sia Microsoft prima dell'installazione.
- Access Schema Conversion: dopo l'installazione dell'estensione, viene visualizzata un'icona a forma di elefante nella barra delle attività Visual Studio Code. Selezionare l'icona per aprire l'estensione PostgreSQL e accedere alla funzionalità di conversione dello schema.
Flusso di lavoro di conversione dello schema
Il flusso di lavoro inizia con l'individuazione, seguito dall'estrazione e dalla conversione. Lo strumento convalida le definizioni di PostgreSQL generate in un database creato da zero e si esaminano i risultati in Esplora oggetti di conversione prima di preparare i file di distribuzione.
Scoperta
L'individuazione segue la connessione Oracle e la selezione dello schema, prima della configurazione di PostgreSQL scratch-database. Controlla le autorizzazioni di origine e censisce gli oggetti dello schema senza estrarre DDL. I conteggi descrivono l'inventario di origine e l'estrazione pianificata, non i risultati della conversione.
| Result | Cosa ti dice |
|---|---|
| Scoperto | Oggetti trovati durante il rilevamento. |
| Da estrarre | Oggetti pianificati per l'estrazione DDL. |
| Escluso | Oggetti omessi dall'ambito di estrazione pianificata. |
| Oggetti non validi | Oggetti contrassegnati come non validi dal processo di individuazione. |
Esaminare il supporto e le esclusioni dei tipi di oggetto, insieme alle dipendenze dello schema, prima di confermare l'ambito. Schemi dipendenti elenca gli schemi di riferimento non selezionati. Uno schema visualizzato in questo elenco non è una conferma che sia incluso nell'ambito di conversione.
Per i passaggi dettagliati, vedi Esaminare i risultati di individuazione nel tutorial.
Estrazione
L'estrazione legge il DDL Oracle e i metadati per l'ambito di origine esaminato. Le definizioni estratte forniscono l'input per la conversione; l'estrazione riuscita non significa che un oggetto è stato convertito.
Conversion
Gli agenti di conversione dello schema usano modelli in Microsoft Foundry per tradurre le definizioni Oracle estratte in DDL PostgreSQL e tentare la compilazione nel database scratch. Esaminare sia gli oggetti convertiti che non convertiti in Conversion Esplora oggetti e convalidare in modo indipendente il comportamento prima della distribuzione.
Database temporaneo
Selezionare un database vuoto o un database dedicato inutilizzato in Database di Azure per PostgreSQL server flessibile per la convalida della conversione. Lo strumento usa schemi corrispondenti agli schemi Oracle selezionati; non isola gli oggetti esistenti negli schemi con un prefisso scratch-name separato.
Avviso
Lo strumento elimina gli schemi corrispondenti con DROP SCHEMA ... CASCADE e li ricrea. Questa azione elimina i loro oggetti e dati esistenti e può rimuovere oggetti dipendenti in altri schemi. Non selezionare un database contenente dati da conservare.
L'utente di connessione deve disporre dell'autorizzazione per connettersi, creare schemi e oggetti di convalida ed eliminare gli schemi corrispondenti. Il solo livello di database CREATE non concede l'autorizzazione per eliminare uno schema di proprietà di un altro ruolo. Vedere Privilegi PostgreSQL necessari.
I controlli statici e di compilazione possono identificare errori di sintassi, dipendenza e tipo in questo ambiente. Non verificano i dati di produzione, il comportamento dell'applicazione o tutti i percorsi di esecuzione.
Esplora oggetti di conversione
Usare Conversion Esplora oggetti per esaminare i mapping da origine a destinazione, confrontare le definizioni di Oracle e PostgreSQL e leggere le note di conversione. Selezionare Domanda per una spiegazione della conversione e delle dipendenze di un oggetto oppure Correzione per le modifiche assistite da Copilot al relativo file PostgreSQL. Compilare manualmente la definizione modificata nel database di destinazione in cui viene distribuito lo schema convertito.
Per i passaggi dettagliati, vedere Esaminare gli oggetti convertiti in Conversion Esplora oggetti.
Modalità agente di GitHub Copilot
La modalità agente Copilot di GitHub è una funzionalità integrata di Visual Studio Code che fornisce richieste guidate che consentono di perfezionare gli oggetti convertiti e di allineare lo schema convertito ai requisiti dell'applicazione. La modalità agente offre:
- Suggerimenti con riconoscimento del contesto per le modifiche dello schema.
- Raccomandazioni sulle procedure consigliate per Database di Azure per PostgreSQL - Server flessibile.
- Completamento del codice per trasformazioni complesse.
- Integrazione con il flusso di lavoro di sviluppo esistente.
Modalità di connettività Oracle
Lo strumento di conversione dello schema supporta due modalità di connettività per la connessione al database Oracle di origine: thin e thick. Comprendere la differenza consente di scegliere la modalità corretta per l'ambiente in uso.
Modalità thin client (impostazione predefinita)
La modalità thin si connette direttamente a Oracle Database senza librerie client Oracle aggiuntive. Questa modalità è l'impostazione predefinita e non richiede alcuna configurazione aggiuntiva.
- Non richiede l'installazione di Oracle Instant Client.
- Supporta Oracle Database 12.1 e versioni successive.
- Si adatta alla maggior parte degli scenari di conversione degli schemi.
- Si connette usando la rete TCP/IP standard.
Modalità client pesante
La modalità Thick utilizza le librerie di Oracle Instant Client per connettersi a Oracle Database. Lo strumento di conversione dello schema rileva quando è necessaria la modalità spessa in base alla configurazione di rete Oracle e passa automaticamente a essa.
Quando è necessaria la modalità thick client
È possibile determinare se è necessaria la modalità client spessa controllando i file di configurazione di rete Oracle nell'ambiente di origine. Cercare i parametri seguenti nel sqlnet.ora file (in genere si trova in $ORACLE_HOME/network/admin/):
| Parametro | Indica che è necessaria la modalità densa |
|---|---|
SQLNET.CRYPTO_CHECKSUM_CLIENT |
Impostare su REQUIRED o REQUESTED per la crittografia di rete nativa |
SQLNET.ENCRYPTION_CLIENT |
Impostare su REQUIRED o REQUESTED per la crittografia di rete nativa |
Se uno qualsiasi di questi parametri è configurato nell'ambiente Oracle di origine, è necessaria la modalità thick client. Lo strumento di conversione dello schema rileva questa configurazione e passa automaticamente alla modalità spessa. Assicurarsi che Oracle Instant Client sia installato nel computer in cui Visual Studio Code è in esecuzione prima di avviare la conversione.
Installare Oracle Instant Client
Per usare la modalità thick client, installare Oracle Instant Client nel computer in cui Visual Studio Code e lo strumento di conversione dello schema sono in esecuzione. Per i sistemi operativi supportati, vedere i requisiti del sistema operativo dell'esercitazione.
- Scaricare il pacchetto Oracle Instant Client Basic o Basic Light per il sistema operativo dai download di Oracle Instant Client. Scegliere un pacchetto compatibile con il proprio sistema operativo e l'architettura dell'ambiente di conversione.
- Seguire le istruzioni di installazione nella pagina di download specifica della piattaforma per installare il pacchetto, le dipendenze necessarie e la configurazione del percorso di ricerca della libreria.
- Riavviare Visual Studio Code per recuperare le variabili di ambiente aggiornate.
Autenticazione per Microsoft Foundry
Lo strumento di conversione dello schema supporta due metodi di autenticazione per la connessione ai modelli linguistici in Microsoft Foundry:
Autenticazione con chiave API
L'autenticazione con chiave API usa una chiave specifica della distribuzione per autorizzare le richieste. Questo metodo è semplice e adatto per scenari di sviluppo e test.
Autenticazione tramite Microsoft Entra ID
L'autenticazione di Microsoft Entra ID fornisce un accesso a Microsoft Foundry basato su token e sull'identità, senza dover gestire le chiavi API. Questo metodo è consigliato per ambienti di produzione e organizzazioni con gestione centralizzata delle identità.
Per usare l'autenticazione di Microsoft Entra ID:
- Assegna il ruolo richiesto: assicurati che l'utente o l'entità servizio che ha effettuato l'accesso abbia il ruolo Foundry User (in precedenza Azure AI User) per la risorsa Microsoft Foundry che ospita la distribuzione del modello. Assegnare il ruolo nel portale di Azure sotto Controllo di accesso (IAM). Per altre informazioni, vedere Controllo degli accessi in base al ruolo per Microsoft Foundry.
-
Accedere ad Azure in Visual Studio Code: usare il comando Azure: Accedi dal Riquadro comandi (
Ctrl+Shift+P) per autenticarti con l'account Microsoft Entra ID. - Seleziona l'autenticazione Entra ID: nel passaggio di configurazione del modello linguistico di Migration Wizard, seleziona Microsoft Entra ID come metodo di autenticazione invece di chiave API.
- Specifica l'endpoint: Immetti l'URL dell'endpoint Microsoft Foundry. Lo strumento acquisisce automaticamente il token di autenticazione dalla sessione di accesso.
L'autenticazione di Microsoft Entra ID richiede l'estensione Azure Account per Visual Studio Code. L'estensione deve essere firmata con un'identità che abbia l'assegnazione del ruolo appropriato sulla risorsa Microsoft Foundry.
Sicurezza e rete
Utilizzando la funzionalità di conversione dello schema, assicurati che il tuo ambiente di Visual Studio Code possa connettersi in modo sicuro sia al database Oracle di origine che all'istanza del server flessibile di Azure Database per PostgreSQL utilizzata come database temporaneo.
Microsoft consiglia di connettersi alla risorsa Microsoft Foundry usando un endpoint privato. Per altre informazioni, vedere Configurare un collegamento privato per Microsoft Foundry.
Per altre informazioni sulla protezione delle connessioni di Microsoft Foundry, vedere Dati, privacy e sicurezza per i Modelli diretti di Azure in Microsoft Foundry.
Importante
Responsabilità di convalida dei clienti: lo stesso motore di intelligenza artificiale usato per la conversione dello schema può anche facilitare la convalida e la revisione. I sistemi di intelligenza artificiale possono occasionalmente confermare i propri errori. Per evitare perdite di dati, regressioni funzionali o problemi di sicurezza, convalidare in modo indipendente gli oggetti generati e le correzioni manuali prima della distribuzione nell'ambiente di produzione. Come parte dei controlli, è consigliabile abilitare il filtro del contenuto Foundry per ridurre gli output dannosi o indesiderati. Per indicazioni, vedere Filtro del contenuto in Foundry.
Perché usare la funzionalità di conversione dello schema?
La conversione dello schema riduce il lavoro manuale generando definizioni PostgreSQL, controllandole in un database scratch e fornendo risultati a livello di oggetto e revisione assistita dall'intelligenza artificiale. È ancora necessario validare lo schema generato rispetto ai requisiti della tua applicazione prima della distribuzione.
- Conversione automatica: riduce lo sforzo manuale convertendo automaticamente gli oggetti dello schema compatibili.
- trasformazione basata su AI: usa modelli linguistici ospitati in Microsoft Foundry per decisioni di conversione con riconoscimento del contesto.
- Controlli del database creato da zero: utilizza la compilazione e i controlli statici disponibili per identificare i problemi di conversione.
- Flusso di lavoro integrato: funziona all'interno dell'ambiente di sviluppo Visual Studio Code.
- Connettività Oracle flessibile: supporta entrambe le modalità client, thin e thick, per la connessione a database Oracle.
- Opzioni di autenticazionemultiple: supporta la chiave API e l'autenticazione Microsoft Entra ID per Microsoft Foundry.
- Revisione e perfezionamento: combina le note di conversione, il confronto tra testo di origine e di destinazione e le modifiche assistite da Copilot.
- Ottimizzazione di Azure: Progettata per Database di Azure per PostgreSQL - Server flessibile.
Oggetti dello schema supportati
Lo strumento di conversione supporta un'ampia gamma di oggetti di codice e schema Oracle, inclusi elementi di definizione dei dati, componenti a livello di schema e codice procedurale. Sebbene sia possibile convertire automaticamente molti oggetti comuni, potrebbe essere necessario esaminare o personalizzare manualmente il mapping per determinate funzionalità specifiche di Oracle o estensioni proprietarie. Per elenchi dettagliati di oggetti supportati e limitazioni note, vedere le sezioni di questo articolo.
Come vengono prodotte le conversioni
I modelli Microsoft Foundry traducono il DDL Oracle estratto in definizioni PostgreSQL. Lo strumento usa la compilazione scratch-database e i controlli statici disponibili per identificare i problemi e guidare le correzioni.
Per le routine PL/pgSQL, plpgsql_check fornisce controlli statici aggiuntivi sui corpi delle routine. Questi controlli possono identificare i problemi che la creazione di routine da sola non intercetta. Per ulteriori informazioni, consulta Convalidare il PL/pgSQL convertito con plpgsql_check.
Uno stato Convertito non garantisce una compilazione riuscita, un'implementazione completa o un comportamento di runtime equivalente. Rivedere le definizioni degli oggetti e le note di conversione nel report HTML e in Conversion Esplora oggetti, inclusi eventuali segnaposto o dipendenze che richiedono attenzione manuale. Per i gap specifici di Oracle, vedere Limitazioni di conversione dello schema.
Oggetti dello schema del database
Lo strumento di conversione supporta gli oggetti di database Oracle seguenti:
- Tabelle: definizioni di tabella, specifiche di colonna e vincoli a livello di tabella.
- Vincoli: chiavi primarie, chiavi esterne, vincoli univoci e vincoli CHECK.
- Indici: indici ad albero B, indici univoci e indici compositi.
- Sequenze: oggetti sequence di Oracle per valori con incremento automatico.
- Trigger: trigger a livello di riga e a livello di istruzione.
- Viste: viste di database standard.
- Viste materializzate: viste materializzate di Oracle e logica di aggiornamento.
- Schemi: oggetti a livello di schema e organizzazione.
- Sinonimi: sinonimi pubblici e privati (con limitazioni).
Oggetti di codice Oracle
Lo strumento di conversione supporta i costrutti di codice Oracle seguenti:
- Trigger: logica di trigger complessa e gestione degli eventi.
- Pacchetti: specifiche e corpi dei pacchetti Oracle.
- Funzioni: funzioni definite dall'utente con logica complessa.
- Procedure memorizzate: procedure memorizzate di Oracle e gestione dei parametri.
-
Tipi e raccolte: tipi di oggetto Oracle,
TYPE BODYmetodi membro,VARRAYtabelle annidate eSUBTYPEdichiarazioni.
Conversione di pacchetti
I pacchetti Oracle non hanno un equivalente PostgreSQL diretto. Le mappature generate dipendono dalle definizioni sorgente e devi esaminare i membri del pacchetto e i relativi chiamanti:
- Costanti: le funzioni getter generate devono avere il valore, il tipo e la volatilità corretti.
-
Collezioni e cursori: le mappature possono usare array, domini,
jsonborefcursor. Controllare i limiti, l'indicizzazione e le aspettative del chiamante. - Stato del pacchetto: gli helper generati e le impostazioni di sessione richiedono la convalida dell'inizializzazione e dello stato tra chiamate, transazioni e sessioni.
-
Eccezioni: esaminare il mapping di eccezioni e codici di errore Oracle ai valori di PostgreSQL
SQLSTATEe ai gestori di eccezioni. - Pacchetti solo di specifica: l'output può contenere routine segnaposto che sollevano un errore anziché implementare il corpo mancante.
Query gerarchiche
Le query gerarchiche di Oracle possono essere rappresentate mediante le espressioni di tabella comuni WITH RECURSIVE di PostgreSQL. Rivedi la gestione generata di radici, relazioni padre-figlio, profondità, percorsi, ordinamento tra elementi fratelli e cicli. Una query ricorsiva che viene compilata non garantisce che i suoi risultati corrispondano a quelli della query Oracle originale.
Controllo delle transazioni
La conversione di routine che usano PRAGMA AUTONOMOUS_TRANSACTION può dipendere da una connessione separata tramite dblink. Esaminare la funzione o la procedura generata, le estensioni richieste e le eventuali modifiche necessarie nel codice che la richiama. Testare i limiti delle transazioni, il contesto di connessione e sessione, i commit, i rollback e la gestione degli errori. Non presupporre che la compilazione mantenga il comportamento originale delle transazioni o le convenzioni di chiamata.
Convalida il PL/pgSQL convertito con plpgsql_check
Durante la creazione di una routine PL/pgSQL non viene convalidata ogni istruzione che può essere eseguita. Alcuni riferimenti non validi o incompatibilità di tipo si verificano solo quando viene eseguito il percorso di esecuzione corrispondente. L'estensione plpgsql_check può rilevare problemi aggiuntivi tramite l'analisi statica dei corpi di routine.
Utilizzare questi controlli in aggiunta alla compilazione, non come prova di una logica di business equivalente o della prontezza per la produzione. Esaminare le definizioni generate e completare la convalida funzionale e dei dati in modo indipendente.
Dove viene effettuato il controllo
Il controllo viene eseguito sul database temporaneo selezionato per la conversione. Esamina le routine convertite in tale ambiente, non i dati di produzione o il traffico dell'applicazione.
plpgsql_check è un aiuto di convalida; preparare separatamente le estensioni di runtime richieste dal codice convertito.
Cosa accade quando l'estensione non è disponibile
Senza plpgsql_check, ulteriori controlli del corpo non sono disponibili. Una compilazione riuscita o lo stato Convertito non significa che questi controlli siano stati eseguiti. Verificare la disponibilità dell'estensione prima della conversione ed esaminare e testare routine in modo indipendente anche quando l'estensione è installata.
Rendere disponibile il controllo
Controllare l'elenco di estensioni per la versione di PostgreSQL, aggiungere plpgsql_check all'elenco elementi consentiti del server e configurare la libreria di precaricamento necessaria. Riavvia il server dopo aver modificato shared_preload_libraries, quindi conferma che l'estensione sia installata nel database scratch selezionato. Per la procedura completa, vedere Consentire e installare le estensioni necessarie.
Versioni di Oracle supportate
Questa sezione riepiloga le versioni del motore di database che supportano la conversione automatica dello schema ed evidenzia le considerazioni sulla compatibilità. Usare le versioni di Oracle e PostgreSQL supportate elencate per ottenere risultati ottimali. Convalidare le conversioni in un ambiente di test non di produzione e usare la patch secondaria più recente di ogni versione principale supportata. Se l'ambiente usa una versione non supportata o include funzionalità proprietarie di Oracle, potrebbe essere necessario eseguire il mapping manuale aggiuntivo o la revisione prima della distribuzione.
Le versioni di database Oracle seguenti supportano la conversione dello schema:
- Oracle 21c
- Oracle 19c
- Oracle 18c
- Oracle 12.2
- Oracle 12.1
Feedback e supporto
Per bug, richieste di funzionalità e problemi relativi alla funzionalità di conversione dello schema o all'estensione PostgreSQL, usare lo strumento di feedback predefinito in Visual Studio Code. È possibile accedere a questo strumento in due modi:
Menu Aiuto
Vai a Guida>Segnala un problema.
Palette dei comandi
- Aprire il riquadro comandi con
Ctrl+Shift+P(Windows/Linux) oCmd+Shift+P(macOS). - Eseguire il comando PGSQL: Problema del report.
Quando crei il problema o fornisci commenti e suggerimenti, includi Schema Conversion: come prefisso nel titolo. Questo prefisso consente al team di sviluppo di identificare e classificare rapidamente in ordine di priorità il feedback correlato alla conversione dello schema. Questo meccanismo di feedback consente al team di sviluppo di migliorare continuamente la funzionalità di conversione dello schema e risolvere eventuali problemi riscontrati durante Oracle per Database di Azure per PostgreSQL progetti di migrazione.