Je voudrais déplacer des milliards de lignes de schema1.table1 à nouveau schema2.table2 où table2 est une refactorisée de table1. Par conséquent, leur structure de table est différente. table1 et table2 sont partitionnées mais la table2 est vide. Ces deux schémas se trouvent dans la même base de données Oracle. Quelle est la manière la plus efficace d'effectuer cette migration de données? Souhaitez-vous effectuer la validation uniquement à la toute fin ou opter pour une validation incrémentielle? c'est-à-dire que la migration des données échoue après avoir terminé 99% du travail, ce qui a pris quelques heures. Revenez-vous maintenant? Si vous effectuez la validation incrémentielle, comment gérez-vous l'échec?
si le schéma de partition est le même (les données de la partition a dans le tableau 1 vont à la partition a dans le tableau 2, etc.), je choisirais plusieurs sessions et chaque session ajouterait ses données dans sa «propre» partition. Cela empêche beaucoup de verrouillage et a la meilleure vitesse. Selon le matériel, vous pouvez remplir les cartes HBA jusqu'au cou. Un commit pour chaque partition - en supposant plus de quelques lignes pour chaque partition - ne sera pas un problème et je le ferais certainement. En supposant que l'application est arrêtée pendant la migration, la solution de rechange est simple: ne modifiez pas l'application et tronquez les partitions de table2 avant de réessayer, au moins pour les parties où l'application a modifié les données avant qu'une deuxième exécution puisse avoir lieu.
J'espère que ça aide
la source