Козиев Илья (kelijah) wrote,
Козиев Илья
kelijah

Categories:

ORA-00439, ты сделала мой день :)

Дано. Две базы данных Oracle 11.2g в виртуальных машинах.
В одной выгружаю дамп с помощью expdp.
Переливаю дамп во вторую виртуалку и запускаю impdp.
Вроде бы простая, понятная и линейная операция.

Последний раз я словил проблемы с экспортом-импортом базы год назад, когда обнаружил, что пустые таблицы перестали выгружаться в старом добром exp. Почему перестали? Оптимизация, сэр. Какой-то умник для версии 11 придумал, что если таблицу создали, но ни разу к ней не обращались, то физическим воплощением этой таблицы можно не утруждать себя. Эдакие таблицы Шредингера, которые существуют виртуально, пока на них не посмотришь.

Правда, это ломает сценарий "подготовили базу скриптом, в ней пустые таблицы, которые будут заполняться у клиента". Кайф от сюрприза возрастает, если ты не знаешь об этой супер-мега-фиче и отправил дамп далекому клиенту за несколько часовых поясов. Он там у себя грузит дамп в продакшн, видит отломавшуюся бизнес-логику в pl/sql хранимках и сообщает тебе пишет, что пакеты не компилируются. Причина - отсутствуют таблицы (те самые пустые, которые в дамп молча не попадают). Мне тогда понадобилось сделать две попытки загрузить дамп в клиентскую базу, чтобы заподозрить нелады с экспортом и понять, что мы имеем дело с какой-то фичей. И найти два способа лечения. Один способ - травой: записать что-то в таблицу и потом стереть запись перед экспортом, после этого таблица "воплощается" и экспортируется. Либо перейти на datapump. Второй вариант и был выбран, поскольку у потребителей базы по факту версия уже поддерживает насос.

И вот теперь новая фича от оракла.

При загрузке дампа во второй базе появляются ошибки

ora-00439 deferred segment creation

И оказывается, что это не баг, это фича! Потому что дамп выгружен в 11.2g EE, а загружается в 11.2g SE. Standard Edition, Карл!

Но лекарство тоже есть, и оно такое чудное, как сама ошибка: добавить опцию version=11.1 в параметры запуска impdp :)
Tags: oracle
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 1 comment