Gostaria de mover bilhões de linhas do schema1.table1 para o novo schema2.table2, em que a tabela2 é um refatorado da tabela1. Portanto, a estrutura da tabela é diferente. a tabela1 e a tabela2 são particionadas, mas a tabela2 está vazia. Ambos os esquemas estão no mesmo banco de dados Oracle. Qual é a maneira eficiente de executar essa migração de dados? Deseja executar o commit apenas no final ou optar pelo commit incremental? ou seja, digamos que a migração de dados falhe após a conclusão de 99% do trabalho, que levou algumas horas. Você reverte agora? Se você faz a confirmação incremental, como você lida com a falha?
se o esquema de partição for o mesmo (os dados da partição a na tabela 1 vão para a partição a na tabela 2 etc.), eu usaria várias sessões e cada uma delas acrescentaria seus dados em sua própria partição. Isso evita muito bloqueio e tem a melhor velocidade. Dependendo do hardware, você pode preencher os cartões HBA até o pescoço. Um commit para cada partição - assumindo mais do que algumas linhas para cada partição - não será um problema e eu certamente o faria. Supondo que o aplicativo esteja inativo durante a migração, o fallback é simples: não altere o aplicativo e trunque as partições da tabela2 antes de tentar novamente, pelo menos nas partes em que o aplicativo alterou os dados antes que uma segunda execução pudesse ocorrer.
Eu espero que isso ajude
fonte