Ошибка при восстановлении БД

Ремонт и восстановление баз данных InterBase, Firebird, Yaffil

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

Ответить
Дмитрий
Сообщения: 127
Зарегистрирован: 26 окт 2004, 11:05

Ошибка при восстановлении БД

Сообщение Дмитрий » 26 окт 2004, 11:10

Привет всем! (Непонятно, к кому обращаюсь! Здесь никого нет!)

Может кто-то и прочитает, ответит хоть что-то.
Проблема в следующем. При восстановлении из Backup БД IB 6.5 возникает ошибка: Invalid transaction handle (...).
Что делать? Как лечить? БД размером 12 Гб.
Помогите!

Alexey Kovyazin
Сообщения: 15
Зарегистрирован: 25 окт 2004, 19:13

Сообщение Alexey Kovyazin » 26 окт 2004, 11:19

Привет!

На каком этапе возникает ошибка? Скопируйте сюда лог восстановления от команды
gbak -c -v ...

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

Сообщение kdv » 26 окт 2004, 11:20

гм, весь-то копировать не надо, конечно. лучше скопировать только ту часть, где видно сообщение об ошибке. :)

Дмитрий
Сообщения: 127
Зарегистрирован: 26 окт 2004, 11:05

Сообщение Дмитрий » 26 окт 2004, 11:32

Ура! Мне ответили! (Не ожидал!!!)
Сейчас лог выслать не могу (очередная попытка восстановления БД из графического интерфейса). Но ошибка возникала при восстановлении определенной таблицы с параметрами восстановления "Commit after each table". Сейчас восстанавливаюсь без этой опции с деактивацией индексов, без shadow-файлов. Если ничего не выйдет, то восстановлюсь из комендной строки с логом в файл и обязательно последний вышлю.

Спасибо!!!!!!

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

Сообщение kdv » 26 окт 2004, 11:39

Дмитрий писал(а):Ура! Мне ответили! (Не ожидал!!!)
дык, форум только вчера создан :-)
Но ошибка возникала при восстановлении определенной таблицы с параметрами восстановления "Commit after each table". Сейчас восстанавливаюсь без этой опции с деактивацией индексов, без shadow-файлов. Если ничего не выйдет, то восстановлюсь из комендной строки с логом в файл и обязательно последний вышлю.
не совсем понял ситуацию - оригинальная база убита, а бэкап поврежден?
В любом случае, тебе ВСЕГДА надо сохранять лог рестора - база то немаленькая, если лог не сохраняешь, то чтобы еще раз увидеть ошибку придется опять рестор по новой запускать.

Дмитрий
Сообщения: 127
Зарегистрирован: 26 окт 2004, 11:05

Сообщение Дмитрий » 26 окт 2004, 11:58

Оригинальная база жива и работает (тьфу,тьфу,тьфу). Просто рестор я не делал около 6-ти месяцев, а сейчас возникла необходимость восстановить некоторые таблицы из бэкапа. Вот он и не восстанавливается. А кстати, нет ли возможности восстановить отдельные таблицы, а не всю базу?

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

Сообщение kdv » 26 окт 2004, 12:08

увы, отдельные таблицы из бэкапа восстановить невозможно. либо все целиком, либо нет. конечно, если при ресторе возникают ошибки, то в базе будет все до появления ошибки - например будет база без процедур, без триггеров, или без части таблиц.

На данный момент обеспечить рестор части таблиц можно только если переписать gbak (взять исходные тексты fb).

Дмитрий
Сообщения: 127
Зарегистрирован: 26 окт 2004, 11:05

Сообщение Дмитрий » 26 окт 2004, 12:17

Восстановление все продрлжается. Жду.
А жаль, что нельзя восстанавливать отдельные таблицы. А то у меня сейчас справочник восстанавливается, а в нем 27 млн. записей! А восстановить мне надо три таблички по 6 млн. Много времени лишнего трачу. Да и места на сервере не так много.
И еще вопросик, пока жду результатов. Почему-то у меня не захотел восстанавливаться бэкап, находяшийся на другом компьютере. Говорит, что не может установить соединение с хостом, хотя диск с бэкапом был замаплен на сервер. Пришлось бэкап на сервер переписывать. :(
А написать свой рестор - это мысль хорошая, только времени столько нет для экспериментов. :(

Alexey Kovyazin
Сообщения: 15
Зарегистрирован: 25 окт 2004, 19:13

Сообщение Alexey Kovyazin » 26 окт 2004, 12:30

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

И бэкап и рестор делаются через сервер, gbak использует его стандартные функции записи и чтения. А сервер работает только с БД, физически находящейся на том же компьютере, что и запущенный экземпляр сервера.
В 1.5. есть возможность работать с с замапленным диском, но она с ограничениями, про которые никто не читает. На мой взгляд, вредная функциональность, ведущая к сбоям и проблемам.

Дмитрий
Сообщения: 127
Зарегистрирован: 26 окт 2004, 11:05

Сообщение Дмитрий » 26 окт 2004, 12:43

Спасибо за ответы!
Жду результатов восстановления. Как только появится ошибка, сразу выложу лог.

P.S. Огромное спасибо за книгу "Мир Interbase". У меня оба издания, которые очень помогли в работе.

Гость

Сообщение Гость » 27 окт 2004, 09:14

Удивительно! Из командной строки восстановление прошло без ошибок! Сейчас буду проверять базу. Интересно, почему так?

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 27 окт 2004, 11:58

Anonymous писал(а):Удивительно! Из командной строки восстановление прошло без ошибок! Сейчас буду проверять базу. Интересно, почему так?
Бага в
а) инструменте, посредством которого выполнялся b/r через сервисы?
б) библиотеке доступа, используемой указанным инструментом?
в) самом Services API IB6.5?
г) железе?
д) геомагнитном поле?

Дмитрий
Сообщения: 127
Зарегистрирован: 26 окт 2004, 11:05

Сообщение Дмитрий » 27 окт 2004, 12:42

Рестор делал из "родного" IBConsole.
Раньше все проходило нормально, потом непонятный глюк, и нормальное восстановление из командной строки.
Чудеса!

Андрей Могильный
Сообщения: 12
Зарегистрирован: 26 окт 2004, 15:47

Сообщение Андрей Могильный » 27 окт 2004, 13:35

Даю 99% - бага (либо просто плавающая ошибка) IBConsole или IBX, т.к. invalid transaction handle - это все-таки по-моему не сообщение сервера.

Дмитрий
Сообщения: 127
Зарегистрирован: 26 окт 2004, 11:05

Сообщение Дмитрий » 27 окт 2004, 13:40

Склоняюсь к мнению о плавающей ошибке. Перед Invalid transaction handle IBConsole при ресторе ругалась на индекс.
Глюки какие-то, причем плавающие.

Гость

Сообщение Гость » 27 окт 2004, 15:22

Плавающие баги обычно производная от битой памяти на сервере.

Проверь память с testmem/memtest low-level test

Андрей Могильный
Сообщения: 12
Зарегистрирован: 26 окт 2004, 15:47

Сообщение Андрей Могильный » 27 окт 2004, 15:37

Или от не очень прямых рук некоторых программистов :lol:

Гость

Сообщение Гость » 27 окт 2004, 17:09

ну, кривые руки - не причина ошибок - это основа мироздания :)

WAKE-UP
Сообщения: 20
Зарегистрирован: 17 ноя 2004, 12:26

Сообщение WAKE-UP » 06 дек 2004, 11:19

Пытаюсь восстановить базу из бэкапа:
IBExpert:
IBE: Starting restore. Current time: 11:11:09
IBE: Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
connection lost to database.

IBE: Restore completed. Current time: 11:11:09. Elapsed time: 00:00:00
На

Код: Выделить всё

H:\WorkApp\Firebird\Firebird_1_5\bin>gbak -C -V -G C:\Ready.fbk C:\fzBase\base.gdb
он вообще выдаёт виндово сообщение Memory can't be "read"

Помогите разобарться.
Спасибо!

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

Сообщение kdv » 06 дек 2004, 12:50

чего чужой топик другим вопросом продолжаем?
1. сейчас буду больно бить по пальцам за элементарное незнание ключей gbak. -g используется ТОЛЬКО при бэкапе.

2. какая версия FB 1.5, точно?
3. проверь версии gds32.dll и fbclient.dll на компе
4. проходит ли с localhost:C:\fzBase\base.gdb ?

Ответить