Я хотел бы переместить миллиарды строк из schema1.table1 в новую schema2.table2, где table2 является рефакторированным из table1. Следовательно, их структура таблицы отличается. и table1, и table2 разделены, но table2 пуст. Обе эти схемы находятся в одной и той же оракулярной базе данных. Каков эффективный способ выполнения этой миграции данных? Вы хотите выполнить коммит только в самом конце или выбрать инкрементный коммит? т. е., скажем, перенос данных не выполняется после выполнения 99% задания, которое заняло несколько часов. Откатываете ли вы сейчас? Если вы делаете добавочный коммит, как вы справляетесь с ошибкой?
если схема разделов одинакова (данные раздела a в таблице 1 идут в раздел a в таблице 2 и т. д.), то я бы пошел на несколько сеансов, и каждый сеанс добавлял свои данные в свой «собственный» раздел. Это предотвращает много блокировок и имеет лучшую скорость. В зависимости от аппаратного обеспечения вы можете заполнить карты HBA до шеи. Фиксация для каждого раздела - при условии, что для каждого раздела будет несколько строк, - не будет проблемой, и я бы, конечно, сделал это. Предполагая, что приложение не работает во время миграции, запасной вариант прост: не меняйте приложение и не обрезайте разделы таблицы 2 перед повторной попыткой, по крайней мере для тех частей, где приложение изменило данные до того, как может произойти второй запуск.
надеюсь, это поможет
источник