Saya ingin memindahkan miliaran baris dari schema1.table1 ke schema2.table2 baru di mana table2 adalah yang refactored dari table1. Karenanya struktur tabel mereka berbeda. table1 dan table2 dipartisi tetapi table2 kosong. Kedua skema ini berada dalam DB oracle yang sama. Apa cara efisien kinerja untuk melakukan migrasi data ini? Apakah Anda ingin melakukan komit hanya di bagian paling akhir atau memilih untuk komit tambahan? misalkan migrasi data gagal setelah menyelesaikan 99% pekerjaan yang membutuhkan waktu beberapa jam. Apakah Anda mundur sekarang? Jika Anda melakukan incremental commit, bagaimana Anda menangani kegagalan?
jika skema partisi adalah sama (data partion a dalam tabel 1 pergi ke partisi a dalam tabel 2 dll) maka saya akan pergi untuk beberapa sesi dan setiap sesi menambahkan data mereka di partisi 'sendiri'. Ini mencegah banyak penguncian dan memiliki kecepatan terbaik. Tergantung pada perangkat kerasnya, Anda dapat mengisi kartu HBA hingga lehernya. Komit untuk setiap partisi - dengan asumsi lebih dari beberapa baris untuk setiap partisi - tidak akan menjadi masalah dan saya pasti akan melakukannya. Dengan asumsi bahwa aplikasi sedang down selama migrasi, fallback sederhana: jangan mengubah aplikasi dan memotong partisi table2 sebelum mencoba lagi, setidaknya untuk bagian-bagian di mana aplikasi mengubah data sebelum menjalankan kedua dapat dilakukan.
saya harap ini membantu
sumber