Проблема переноса данных в живую среду
Я планирую перенести данные из базы данных Oracle в базу данных приложения CMDB.
Поскольку база данных не видна для конечных пользователей / разработчиков CMDB, мы используем API для импорта данных в CMDB.
В настоящее время у меня проблемы: я не могу закрыть базу данных oracle, пока мы выполняем миграцию, значит, база данных oracle всегда будет вставлять данные, пока я выполняю миграцию через инструмент ETL. Поэтому, даже если миграция завершится, данные снова будут заполнены в базе данных Oracle.
Как я могу обойти эту ситуацию? Без простоя? или это никогда не возможно?
1 ответ
Чтобы минимизировать время простоя: предполагая, что у всех таблиц есть первичный ключ (который они должны иметь), запишите значение первичного ключа каждой таблицы в точке миграции, перенесите большую часть данных до записанных значений ключа, затем выполните второй шаг с небольшим отключение, чтобы забрать любые дальнейшие изменения.
Это может быть еще сложнее, если у вас есть много новых внешних ключей. Я бы записал все значения первичного ключа в сериализуемую транзакцию, чтобы обеспечить согласованное представление всех данных.
Ваш вопрос довольно широкий, поэтому этот ответ на высоком уровне. Предлагаем вам добавить более подробно, если вы хотите более подробный ответ.