Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esegui la migrazione dei codici di errore del database Oracle a un database compatibile con Amazon Aurora PostgreSQL
Creato da Sai Parthasaradhi (AWS) e Veeranjaneyulu Grandhi (AWS)
Ambiente: PoC o pilota | Fonte: Oracle | Obiettivo: PostgreSQL |
Tipo R: Replatform | Carico di lavoro: Oracle | Tecnologie: migrazione; database |
Servizi AWS: Amazon Aurora |
Riepilogo
Questo modello mostra come migrare i codici di errore di Oracle Database su un database Edition compatibile con Amazon Aurora PostgreSQL utilizzando una tabella di metadati predefinita.
I codici di errore del database Oracle non hanno sempre un codice di errore PostgreSQL corrispondente. Questa differenza nei codici di errore può rendere difficile la configurazione della logica di elaborazione delle procedure o delle funzioni nell'architettura PostgreSQL di destinazione.
È possibile semplificare il processo memorizzando i codici di errore del database di origine e di destinazione significativi per il programma PL/pgSQL in una tabella di metadati. Quindi, configura la tabella per contrassegnare i codici di errore del database Oracle validi e mapparli agli equivalenti PostgreSQL prima di continuare con la logica di processo rimanente. Se il codice di errore del database Oracle non è presente nella tabella dei metadati, il processo termina con l'eccezione. È quindi possibile esaminare manualmente i dettagli dell'errore e aggiungere il nuovo codice di errore alla tabella se il programma lo richiede.
Utilizzando questa configurazione, il database compatibile con Amazon Aurora PostgreSQL può gestire gli errori allo stesso modo del database Oracle di origine.
Nota: la configurazione di un database PostgreSQL per gestire correttamente i codici di errore del database Oracle richiede in genere modifiche al database e al codice dell'applicazione.
Prerequisiti e limitazioni
Prerequisiti
Un account AWS attivo
Un database Oracle di origine con servizi di istanza e listener attivi e funzionanti
Un cluster compatibile con Amazon Aurora PostgreSQL che è attivo e funzionante
Familiarità con Oracle Database
Familiarità con i database PostgreSQL
Architettura
Il diagramma seguente mostra un esempio di flusso di lavoro di database compatibile con Amazon Aurora PostgreSQL per la convalida e la gestione dei codici di errore dei dati:
![Convalida e gestione del codice di errore dei dati per un database compatibile con Aurora PostgreSQL.](images/pattern-img/82751f40-2fd9-4ce7-ab61-0874552d857b/images/b7ab627e-8f34-4635-8660-93c5c80ce38d.png)
Il diagramma mostra il flusso di lavoro seguente:
Una tabella contiene i codici e le classificazioni di errore del database Oracle e i codici di errore e le classificazioni di errore PostgreSQL equivalenti. La tabella include una colonna valid_error che classifica se codici di errore specifici e predefiniti sono validi o meno.
Quando una funzione PL/pgSQL (func_processdata) genera un'eccezione, richiama una seconda funzione PL/pgSQL (error_validation).
La funzione error_validation accetta il codice di errore del database Oracle come argomento di input. Quindi, la funzione confronta il codice di errore in entrata con la tabella per verificare se l'errore è incluso nella tabella.
Se il codice di errore del database Oracle è incluso nella tabella, la funzione error_validation restituisce un valore TRUE e la logica del processo continua. Se il codice di errore non è incluso nella tabella, la funzione restituisce un valore FALSE e la logica del processo esce con un'eccezione.
Quando la funzione restituisce un valore FALSE, i dettagli dell'errore vengono esaminati manualmente dal responsabile funzionale dell'applicazione per determinarne la validità.
Il nuovo codice di errore viene quindi aggiunto manualmente alla tabella oppure no. Se il codice di errore è valido e aggiunto alla tabella, la funzione error_validation restituisce un valore TRUE la volta successiva che si verifica l'eccezione. Se il codice di errore non è valido e il processo deve fallire quando si verifica l'eccezione, il codice di errore non viene aggiunto alla tabella.
Stack tecnologico
Amazon Aurora PostgreSQL
pgAdmin
Oracle SQL Developer
Strumenti
Amazon Aurora PostgreSQL Compatible Edition è un motore di database relazionale completamente gestito e conforme ad ACID che ti aiuta a configurare, gestire e scalare le distribuzioni PostgreSQL.
pgAdmin
è uno strumento di amministrazione e sviluppo open source per PostgreSQL. Fornisce un'interfaccia grafica che semplifica la creazione, la manutenzione e l'uso degli oggetti del database. Oracle SQL Developer
è un ambiente di sviluppo gratuito e integrato che semplifica lo sviluppo e la gestione di Oracle Database sia nelle implementazioni tradizionali che in quelle cloud.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea una tabella nel database compatibile con Amazon Aurora PostgreSQL. | Esegui il seguente comando PostgreSQL CREATE TABLE:
| Sviluppatore PostgreSQL, Oracle, RDS/Aurora per PostgreSQL |
Aggiungere i codici di errore PostgreSQL e i codici di errore del database Oracle corrispondenti alla tabella. | Esegui il comando PostgreSQL I codici di errore PostgreSQL devono utilizzare il tipo di dati variabile del carattere (valore SQLSTATE). I codici di errore Oracle devono utilizzare il tipo di dati numerico (valore SQLCODE). Esempio di istruzioni Insert:
Nota: se rilevi eccezioni Java Database Connectivity (JDBC) specifiche di Oracle, devi sostituirle con eccezioni generiche tra database o passare a eccezioni specifiche di PostgreSQL. | Sviluppatore PostgreSQL, Oracle, RDS/Aurora per PostgreSQL |
Crea una funzione PL/pgSQL per convalidare i codici di errore. | Crea una funzione PL/pgSQL eseguendo il comando PostgreSQL CREATE FUNCTION.
| Sviluppatore PostgreSQL, Oracle, RDS/Aurora per PostgreSQL |
Esamina manualmente i nuovi codici di errore man mano che vengono registrati dalla funzione PL/pgSQL. | Esamina manualmente i nuovi codici di errore. Se un nuovo codice di errore è valido per il tuo caso d'uso, aggiungilo alla tabella error_codes eseguendo il comando PostgreSQL INSERT. oppure Se un nuovo codice di errore non è valido per il tuo caso d'uso, non aggiungerlo alla tabella. La logica del processo continuerà a fallire e terminerà con un'eccezione quando si verifica l'errore. | Sviluppatore PostgreSQL, Oracle, RDS/Aurora per PostgreSQL |
Risorse correlate
Appendice A. Codici di errore PostgreSQL (documentazione PostgreSQL
Messaggi di errore del database (documentazione di Oracle Database