Quali sono le best practice per la migrazione di un database Oracle a un database RDS per PostgreSQL di destinazione utilizzando AWS DMS?

Ultimo aggiornamento: 31/08/2022

Desidero migrare i dati da un database di origine Oracle a un database di destinazione Amazon Relational Database Service (Amazon RDS) per PostgreSQL. Quali best practice posso seguire durante la migrazione dei dati da Oracle a PostgreSQL utilizzando AWS Database Migration Service (AWS DMS)?

Risoluzione

Best practice per la migrazione da database Oracle a PostgreSQL

  • Configura il database di origine Oracle utilizzando i prerequisiti richiesti prima di iniziare la migrazione dei dati.
  • Testa la migrazione utilizzando gli stessi dati di produzione su qualsiasi altro ambiente di database QA/DEV. In base ai risultati, è possibile continuare con la migrazione della produzione. Assicurati di utilizzare la stessa configurazione di AWS DMS sia per le migrazioni di test che per le migrazioni di produzione.
  • Effettua il provisioning delle tue istanze AWS DMS con CPU, memoria, spazio di archiviazione e IOPS sufficienti per evitare conflitti di risorse durante la migrazione. Per ulteriori informazioni, consulta Choosing the right AWS DMS replication instance for your migration (Scelta dell'istanza di replica AWS DMS corretta per la migrazione) e Choosing the best size for a replication instance (Scelta della dimensione migliore per un'istanza di replica). Per ulteriori informazioni sui costi associati all'aggiornamento dell'istanza, consulta i prezzi di AWS Database Migration Service. Esegui il provisioning dell'istanza Amazon RDS di destinazione tenendo conto delle stesse considerazioni.
  • Se il database di origine contiene molte tabelle, con un carico di lavoro pesante, suddividi le tabelle tra più attività AWS DMS. Suddividi le tabelle in base alla loro dimensione nel database di origine, ai modelli di traffico dell'applicazione e alla presenza di colonne LOB. Se una tabella ha molte colonne LOB, con traffico di scrittura elevato sull'origine, crea un'attività separata per tale tabella.
  • Usa il caricamento parallelo per ridurre i tempi di migrazione per carichi di lavoro pesanti. Per ulteriori informazioni, consulta la pagina Using parallel load for selected tables, views, and collections (Utilizzo del caricamento parallelo per tabelle, viste e raccolte selezionate).
  • Durante la migrazione, disattiva i backup e i registri specifici del database (ad esempio i registri delle query sui contenitori, generali, di controllo e di PG) sul database di destinazione. Riattivali per risolvere gli eventuali problemi.
  • Durante la migrazione, disattiva i trigger, le procedure, gli altri processi cron e i pianificatori di eventi sul database di destinazione.
  • Evita di usare concetti Multi-AZ sui database RDS di destinazione durante la migrazione.
  • Evita di applicare qualsiasi altro traffico client esterno al database di destinazione durante la migrazione.
  • Aggiungi eventuali indici secondari sul database di destinazione prima di avviare la fase di replica CDC (Change Data Capture).
  • Disattiva le chiavi esterne sulla destinazione prima della migrazione. A tale scopo, utilizza l'impostazione dell'attributo di connessione aggiuntivo (ECA)/dell'endpoint di destinazione. Per maggiori informazioni, consulta Using a PostgreSQL database as a target for AWS Database Migration Service (Utilizzo di un database PostgreSQL come destinazione per AWS Database Migration Service).
afterConnectScript=SET session_replication_role='replica'
  • Utilizza impostazioni LOB ottimizzate come modalità LOB limitate o in linea per la migrazione.
  • Testa il carico di lavoro utilizzando l'applicazione CDC transazionale predefinita prima di utilizzare il metodo CDC di applicazione batch. Per maggiori informazioni, consulta la pagina How can I use the DMS batch apply feature to improve CDC replication performance? (In che modo è possibile utilizzare la funzione di applicazione batch di DMS per migliorare le prestazioni di replica CDC?)
  • Aumenta i valori di executeTimeout nelle impostazioni dell'endpoint di destinazione. Questo valore imposta il timeout dell'istruzione client per un'istanza PostgreSQL. Il valore predefinito è 60 secondi.
  • Se utilizzi sequenze per le colonne ID, imposta valori di destinazione più elevati rispetto a quelli di origine. Assicurati che i valori di destinazione siano ancora più elevati di quelli di origine alla data di conversione della migrazione. Questo approccio impedisce la collisione degli ID di sequenza dopo la migrazione.
  • Per migliorare le prestazioni nella fase di migrazione a pieno carico, usa impostazioni come:
    • MaxFullLoadSubtasks: il valore predefinito è 8 e il massimo è 49. Questa impostazione è utile, ma assicurati di disporre di risorse sufficienti.
    • CommitRate: utilizza questa impostazione per indicare il numero massimo di record che possono essere trasferiti insieme.
      • Per la modalità LOB completa nella fase di migrazione a pieno carico: N righe dall'origine = N inserimenti + N aggiornamenti nella destinazione = N eventi, dove CommitRate=N.
      • Per la modalità LOB limitata nella fase di migrazione a pieno carico: scrivi N righe nel file CSV, dove CommitRate=N.
    • Per le tabelle di grandi dimensioni, aumenta le dimensioni del file CSV. Questo è controllato da maxFileSize nelle impostazioni dell'endpoint di destinazione.

    Esegui la migrazione di un database Oracle a un database PostgreSQL

    Nota: prima di continuare con questi passaggi, prepara il database Oracle di origine come descritto nei Prerequisiti.

    1.    Installa i driver SQL e lo Strumento di conversione dello schema AWS (AWS SCT) sul tuo computer locale.

    2.    Configura il tuo database di origine Oracle e il database di destinazione PostgreSQL.

    3.    Converti lo schema Oracle in PostgreSQL utilizzando AWS SCT.

    4.    Crea un'istanza di replica di AWS DMS.

    5.    Crea i tuoi endpoint di origine e di destinazione AWS DMS.

    6.    Crea e poi esegui la tua attività AWS DMS.

    7.    In Mappature tabella, applica una regola di trasformazione. Aggiungi il parametro rule-action, con il valore convert-lowercase. Il motore Oracle archivia tutti i nomi degli oggetti in maiuscolo, per impostazione predefinita, mentre PostgreSQL archivia tutti i nomi degli oggetti in minuscolo.

    8.    Crea un'attività AWS DMS di migrazione a pieno carico e CDC per replicare i tuoi dati. Arresta l'attività al termine della fase di migrazione a pieno carico utilizzando StopTaskCachedChangesNotApplied. Ora, crea indici secondari.

    9.    Esegui la conversione a PostgreSQL.


    Migrating an Oracle Database to PostgreSQL (Migrazione di un database Oracle a PostgreSQL)

    How to migrate your Oracle database to PostgreSQL (Come migrare il database Oracle a PostgreSQL)

    Questo articolo è stato utile?


    Benötigen Sie Hilfe zur Fakturierung oder technischen Support?