Esegui la migrazione dei codici di errore del database Oracle a un database compatibile con Amazon Aurora PostgreSQL - Prontuario AWS

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.

Il diagramma mostra il flusso di lavoro seguente:

  1. 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.

  2. Quando una funzione PL/pgSQL (func_processdata) genera un'eccezione, richiama una seconda funzione PL/pgSQL (error_validation).

  3. 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.

  4. 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.

  5. Quando la funzione restituisce un valore FALSE, i dettagli dell'errore vengono esaminati manualmente dal responsabile funzionale dell'applicazione per determinarne la validità.

  6. 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àDescrizioneCompetenze richieste

Crea una tabella nel database compatibile con Amazon Aurora PostgreSQL.

Esegui il seguente comando PostgreSQL CREATE TABLE:

( source_error_code numeric NOT NULL, target_error_code character varying NOT NULL, valid_error character varying(1) NOT NULL );
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 INSERT per aggiungere i valori del codice di errore richiesti alla tabella error_codes.

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:

insert into error_codes values (-1817,'22007','Y'); insert into error_codes values (-1816,'22007','Y'); insert into error_codes values (-3114,'08006','N');

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. Assicurati che la funzione esegua le seguenti operazioni:

  • Accetta i codici di errore Oracle generati da un programma.

  • Verifica se i codici di errore sono presenti nella tabella error_codes.

  • Restituisce il valore TRUE o FALSE, a seconda che il codice di errore sia presente o meno nella tabella dei metadati.

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)