Проблема при ресторе с 1.5.6 на 2.1.3

Администирование клиентской и серверной части InterBase, Firebird, Yaffil. Настройка файла конфигурации и т.п.

Модераторы: kdv, Alexey Kovyazin

Ответить
nevadimka
Сообщения: 51
Зарегистрирован: 04 мар 2008, 10:33

Проблема при ресторе с 1.5.6 на 2.1.3

Сообщение nevadimka » 05 авг 2010, 10:41

При попытке восстановить базу с бэкапа 1.5.6 версии на 2.1.3 версию FireBird выдает ошибку: gbak: ERROR:index PK_blablabla cannot be used in the specified plan gbak:Exiting before completion due to errors При этом рестор на 1.5.6 идет нормально.
Как устранить такую проблему не создавая новый бэкап?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Проблема при ресторе с 1.5.6 на 2.1.3

Сообщение Dimitry Sibiryakov » 05 авг 2010, 13:53

-NO_VALIDITY может помочь. Но прибитый гвоздиками план придётся потом убить.

nevadimka
Сообщения: 51
Зарегистрирован: 04 мар 2008, 10:33

Re: Проблема при ресторе с 1.5.6 на 2.1.3

Сообщение nevadimka » 14 дек 2010, 10:40

ну да сейчас делаем так: перед переходом делаем накат метаданных на пустую базу, находим процедуры с некорректным планом, коментируем фиксим после перехода.

С переходом на 2.1.3 есть еще одна проблема при ресторе:

gbak: ERROR:value exceeds the range for valid dates
gbak: ERROR:gds_$send failed
gbak:Exiting before completion due to errors

База большая со множеством таблиц в которых есть даты. Может кто-то посоветует быстрый способ сделать даты корректными или рестор прошел

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Проблема при ресторе с 1.5.6 на 2.1.3

Сообщение kdv » 14 дек 2010, 14:43

разве что select cast(datefield as varchar(20)) from ...
и то, не знаю, что даст у вас эта проверка.

nevadimka
Сообщения: 51
Зарегистрирован: 04 мар 2008, 10:33

Re: Проблема при ресторе с 1.5.6 на 2.1.3

Сообщение nevadimka » 15 дек 2010, 12:48

Апдейт поля типа DATE в таблице, на которой упало, помог. Но при ресторе упало с такой же ошибкой, но на другой таблице.
На сколько я понял определить, что дата не в таком формате нельзя.

Как выход вижу через системные таблицы вытянуть все поля типа date и через execute statement их проапдейтить.
Или может вы что-то посоветуете?

Вариант создать пустую базу на 2.1.3 и перезалить данные рассматриваю в последнюю очередь.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Проблема при ресторе с 1.5.6 на 2.1.3

Сообщение Dimitry Sibiryakov » 15 дек 2010, 14:42

nevadimka писал(а):Вариант создать пустую базу на 2.1.3 и перезалить данные рассматриваю в последнюю очередь.
А зря. Это самый быстрый способ.

nevadimka
Сообщения: 51
Зарегистрирован: 04 мар 2008, 10:33

Re: Проблема при ресторе с 1.5.6 на 2.1.3

Сообщение nevadimka » 16 дек 2010, 12:33

Просто апдейт можно запустить на выходные и пойти домой, а потом сделать бекап/рестор и перейти на новую версию.
Процесс переливки все же нада контролировать, хотя тоже можно запустить и уйти домой, а если что-то упадет, то наследующие выходные попробовать снова.

Может подскажите сколько времени займет переливка по SUSE бд размером 100ГБ, правда не знаю какой % от этого индексы, но вроде большой?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Проблема при ресторе с 1.5.6 на 2.1.3

Сообщение Dimitry Sibiryakov » 16 дек 2010, 14:37

Семь часов максимум. Это если все 100 гигабайт - данные.

Ответить