Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка при восстановлении из бэкапа / 5 сообщений из 5, страница 1 из 1
04.02.2016, 17:27
    #39163224
AsPushkinCbr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при восстановлении из бэкапа
Всем доброго времени.

Проблема: базы нет, есть бэкап. При restore выдает ошибку:
Код: plsql
1.
2.
3.
gbak: ERROR:invalid request BLR at offset 1163
gbak: ERROR:    Input parameter mismatch for procedure CESAR_TEMP
gbak:Exiting before completion due to errors



Сразу первый вопрос: mismatch это несовпадение типов при вызове процедуры, или несовпадение количества объявленных параметров с количеством в вызове?

Со слов админа - вроде как менялось количество параметров. Мое мнение - не факт.

Почитав различные источники пришел к выводу:
ремонтных утилит в FireBird для таких случаев нет. Можно только руками и с гемором.

Можно сравнивать количество объявленных параметров с тем, что вызываются прямо в бэкапе. ( место нашел, список параметров при создании базы из бэкапа написан в логе gbak. Но вот с вызовом неясности: там их гораздо меньше, чем при создании процедуры и как их туда добавлять пока не придумал).

Вижу еще 2 пути:
1. Дебаггером перехватывать ошибку во время работы gbak и смотреть что там. (ну это для другого форума)
2. Найти исходник gbak (он же вроде бы с открытым кодом), найти проверку на список параметров хранимых процедур, отключить, перекомпилить.


Не смейтесь, базу нужно восстановить ВоИмяЧегоБыТоНеСтало, поэтому любые методы катят. Причем сами понимаете, чем скорее, тем быстрее, поэтому ищу наиболее быстрый вариант.

Ваше мнение.

PS и ДА!, Любителям упреков, укоров и наставлений: база не моя. Моя задача - реанимировать
...
Рейтинг: 0 / 0
04.02.2016, 17:35
    #39163228
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при восстановлении из бэкапа
AsPushkinCbr,

http://www.ibase.ru/devinfo/db_repair.htm#proc

AsPushkinCbrВижу еще 2 пути:
есть еще третий - ibbackupsurgeon .
...
Рейтинг: 0 / 0
04.02.2016, 17:36
    #39163231
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при восстановлении из бэкапа
AsPushkinCbrНайти исходник gbak (он же вроде бы с открытым кодом), найти проверку на список параметров хранимых процедур, отключить, перекомпилить.

не выйдет. Это проверяется движком.
...
Рейтинг: 0 / 0
04.02.2016, 17:42
    #39163236
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при восстановлении из бэкапа
AsPushkinCbrСразу первый вопрос: mismatch это несовпадение типов при вызове
процедуры, или несовпадение количества объявленных параметров с количеством в вызове?
Количества.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.02.2016, 17:59
    #39163244
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при восстановлении из бэкапа
AsPushkinCbrбазу нужно восстановить ВоИмяЧегоБыТоНеСтало, поэтому любые методы катят.
Берём исходники Firebird, учимся их собирать
Далее в src/jrd/par.cpp, ищем
Код: plaintext
1.
2.
error(csb, Arg::Gds(input_flag ? isc_prcmismat : isc_prc_out_param_mismatch) <<
				Arg::Str(procedure->prc_name));

их там две штуки.

Меняем error() на warning()
Собираем сервер, ресторим БД.

PS Гарантий не дам...
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка при восстановлении из бэкапа / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]