Come posso risolvere i problemi di mancata corrispondenza dei dati tra i database di origine e di destinazione in AWS DMS?

Ultimo aggiornamento: 12-09-2022

Ho un'attività AWS Database Migration Service (AWS DMS) che si trova nella fase di migrazione completa o di replica in corso. Tuttavia, i dati a valle nel database di destinazione non corrispondono ai dati dell'origine. Come posso risolvere i problemi di mancata corrispondenza dei dati tra i database di origine e di destinazione?

Breve descrizione

Ci sono vari motivi per cui potresti riscontrare una mancata corrispondenza dei dati quando esegui la loro migrazione in un ambiente eterogeneo utilizzando AWS DMS. Ad esempio:

  • Se non si utilizzano le impostazioni LOB corrette, i dati vengono troncati in base all'impostazione dell'attività MaxLobSize. Pertanto, la colonna LOB di destinazione non contiene esattamente gli stessi dati dell'origine.
  • Durante la migrazione eterogenea, AWS DMS converte il tipo di dati di origine in un tipo di dati interno. Quindi, AWS DMS converte i dati interni nel tipo di dati di destinazione. Tuttavia, poiché alcuni tipi di dati di origine e di destinazione non sono completamente supportati da AWS DMS, è possibile che si verifichi una mancata corrispondenza dei dati tra l'origine e la destinazione.
  • Se si verificano errori o eccezioni durante la replica di Change Data Capture (CDC), la transazione DML potrebbe non riuscire nel database di destinazione.

Risoluzione

Esegui alcuni controlli preliminari prima della risoluzione dei problemi

Prima di risolvere il problema utilizzando la procedura descritta in questo articolo, esegui i seguenti controlli preliminari:

  • Se utilizzi un'attività solo a pieno carico, assicurati che la migrazione sia completa e che l'attività sia stata arrestata correttamente.
  • Se utilizzi un'attività solo a pieno carico o solo CDC, controlla le metriche CDCLatencySource e CDCLatencyTarget di Amazon CloudWatch. Verifica che non vi sia alcuna latenza.
  • Controlla anche che non vi siano altre applicazioni connesse ai database di origine o di destinazione. Ciò può causare la manipolazione dei dati. Ad esempio, se si esegue un'attività solo a pieno carico e i dati all'origine vengono modificati da un'altra applicazione, è possibile che si verifichi una mancata corrispondenza dei dati nella destinazione. Oppure, se il database di destinazione dispone di trigger DML o un'altra applicazione scrive dati nella tabella di destinazione migrata, si noterà anche una mancata corrispondenza dei dati tra destinazione e origine.

Eseguire una query sulla tabella awsdms_validation_failures_v1 nella destinazione

Quando la consistenza dei dati è il tuo obiettivo principale, assicurati di attivare la convalida quando crei l'attività AWS DMS.

Risoluzione dei problemi quando la convalida è attivata

Se la convalida è attivata, è possibile controllare la tabella awsdms_Validation_failures_v1 nel database di destinazione. Se un record passa allo stato ValidationSuspended o ValidationFailed durante la migrazione, AWS DMS scrive le informazioni di diagnostica in awsdms_validation_failures_V1. Esegui una query in questa tabella per risolvere gli errori di convalida lanciando un comando simile al seguente:

select * from awsdms_validation_failures_v1 where TASK_NAME = 'ABC123FGJASHKNA345';

Controlla la colonna dei dettagli nell'output per ottenere informazioni sull'errore. Utilizza la colonna Chiave per confrontare i dati dei record tra l'origine e la destinazione. Per ulteriori informazioni, consulta la sezione Risoluzione dei problemi della documentazione di convalida dei dati di AWS DMS.

Risoluzione dei problemi quando la convalida è disattivata

Se non hai attivato la convalida dell'attività AWS DMS, crea un'attività di sola convalida:

  • Per una migrazione una tantum, utilizza la funzione di sola convalida a pieno carico per confrontare rapidamente tutte le righe tra l'origine e la destinazione.
  • Per la replica continua, utilizza l'attività di sola convalida CDC. Un'attività di sola convalida CDC convalida le righe esistenti tra le tabelle di origine e di destinazione. L'attività continua con le modifiche in corso non appena vengono visualizzate e segnala eventuali errori di convalida dei dati.

Verifica le limitazioni nei dati di origine e di destinazione

Dopo aver identificato i dati non corrispondenti, controlla l'origine e la destinazione per trovare eventuali limitazioni associate ai relativi tipi di dati. Ad esempio, quando utilizzi PostgreSQL come origine, non puoi migrare i tipi di dati ENUM.

Verifica la presenza di errori nel registro attività

Verificare la presenza di errori nel registro attività al momento dell'errore di convalida. In alternativa, verifica le tabelle di controllo per appurare se durante la fase di replica dei dati sono state registrate eccezioni.

Risolvi i dati non corrispondenti causati dal troncamento

Quando utilizzi la modalità LOB limitata, AWS DMS alloca preventivamente la memoria nell'istanza di replica. Quindi, carica i dati LOB in blocco utilizzando l'impostazione dell'attività LobMaxSize. AWS DMS tronca tutti i LOB che superano la dimensione massima del LOB, quindi invia un avviso al file di registro.

Controlla i file di registro e cerca messaggi di avviso che indicano che i dati sono stati troncati, quindi verifica la lunghezza massima della colonna LOB corrispondente. Definisci un LobMaxSize maggiore della lunghezza della colonna LOB in modo che i dati non vengano troncati. Utilizza lo script di supporto diagnostico per scoprire quali tabelle contengono dati LOB e quindi esegui una query di conseguenza.

Se la dimensione massima della colonna LOB è superiore a 100 MB, utilizza la modalità LOB completa o LOB in linea per interrompere il troncamento dei dati della colonna LOB.


Questo articolo è stato utile?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?