Chciałbym przenieść miliardy wierszy ze schema1.table1 do nowego schema2.table2, gdzie table2 jest refaktoryzowanym z table1. Stąd ich struktura tabel jest inna. zarówno tabela 1, jak i tabela 2 są podzielone na partycje, ale tabela 2 jest pusta. Oba te schematy znajdują się w tej samej bazie danych Oracle. Jaki jest efektywny sposób przeprowadzania tej migracji danych? Czy chcesz wykonać zatwierdzenie tylko na samym końcu, czy zdecydować się na zatwierdzenie przyrostowe? tzn. powiedzmy, że migracja danych kończy się niepowodzeniem po ukończeniu 99% zadania, które zajęło kilka godzin. Czy wycofujesz się teraz? Jeśli wykonasz zatwierdzenie przyrostowe, jak poradzisz sobie z niepowodzeniem?
jeśli schemat partycji jest taki sam (dane partycji a w tabeli 1 trafiają do partycji a w tabeli 2 itd.), to wybrałbym wiele sesji i kazałem każdej sesji dołączyć swoje dane do „własnej” partycji. Zapobiega to częstemu blokowaniu i ma najlepszą prędkość. W zależności od sprzętu możesz napełnić karty HBA do samej szyi. Zatwierdzenie dla każdej partycji - zakładając więcej niż kilka wierszy dla każdej partycji - nie będzie problemem i na pewno bym to zrobił. Zakładając, że aplikacja nie działa podczas migracji, cofnięcie jest proste: nie zmieniaj aplikacji i obcinaj partycje tabeli 2 przed ponowną próbą, przynajmniej w tych częściach, w których aplikacja zmieniła dane przed drugim uruchomieniem.
mam nadzieję, że to pomoże
źródło