InterBase/Firebirdの破損によって引き起こされる一般的なエラーとその復旧の可能性
Alexey Kovyazin, 31-03-2014
Ниже приведено описание типичных ошибок и проблем в базах данных InterBase/Firebird и шансы на их восстановление.
Чтобы получить точную цену и сроки восстановления, пожалуйста, свяжитесь с нами по электронной почте.
Для приблизительной оценки стоимости, пожалуйста, ознакомьтесь с описанием услуги “Firebird and InterBase Recovery”. Нет 100% гарантии, что описанные ошибки точно соответствуют описанным причинам.
Internal gds software consistency check (cannot find tip page (165))
Описание ошибки
База данных не может быть открыта с помощью движка Firebird или InterBase, и появляется следующее сообщение: Internal gds software consistency check (cannot find tip page (165))
Аварийное завершение работы или физическое повреждение файла базы данных. Страница инвентаризации транзакций (TIP) была утеряна. Область повреждения может варьироваться от нескольких страниц до всей базы данных, поэтому требуется дополнительное исследование.
Причина (почему это произошло?) Наиболее вероятные причины - аварийное завершение работы сервера (с помощью кнопки Reset), неправильный подход к резервному копированию или инструменты резервного копирования. На Windows XP такое повреждение может быть вызвано функцией “System Restore” для файлов “gdb”.
Процесс восстановления
Сначала база данных должна быть просканирована с помощью FirstAID Diagnostician. Если FirstAID не предупреждает о серьезном повреждении, повреждение может быть исправлено с помощью полной версии FirstAID.
В случае серьезного повреждения требуется индивидуальное восстановление.
Шансы на исправление повреждения
99%
Database file appears corrupt. Wrong page type. Page NNN is of wrong type (expected X, found Y)
Описание ошибки
Сообщение об ошибке появилось в стандартном выводе или в firebird.log или interbase.log:
Database file appears corrupt. Wrong page type. Page NNN is of wrong type (expected X, found Y)
Из-за физического повреждения или по другой причине была изменена последовательность страниц файла базы данных, или на страницах указателей, корневых страницах индексов и т.д. появились неверные значения.
Причина
Наиболее вероятные причины - аварийное завершение работы сервера (с помощью кнопки Reset), неправильная процедура резервного копирования или неправильные инструменты/подход к резервному копированию.
Процесс восстановления
Сначала база данных должна быть просканирована с помощью FirstAID Diagnostician. Если FirstAID не предупреждает о серьезном повреждении, повреждение может быть исправлено с помощью полной версии FirstAID.
В противном случае требуется индивидуальный процесс восстановления.
Шансы на исправление повреждения
95%.
Unknown database I/O error for file “*.gdb”. Error while trying to read from file
Описание ошибки
База данных не может быть открыта, и появляется следующее сообщение об ошибке: Unknown database I/O error for file “*.gdb”. Error while trying to read from the file.
Причина
Из-за аварийного завершения работы сервера самые последние страницы базы данных не были записаны на диск.
Процесс восстановления
Индивидуальный процесс восстановления. База данных проверяется с помощью gfix и backup/restore.
Шансы на восстановление
95%
Decompression overran buffer
Описание ошибки
Появляется сообщение об ошибке: Internal gds software consistency check (decompression overran buffer (179))
Причина
Это серьезное повреждение базы данных: системные таблицы могут быть повреждены. Иногда эта ошибка возникает после переноса базы данных на новый сервер/компьютер. Требуется исследование.
Процесс восстановления
Анализ структуры базы данных, генерация новых страниц, требуется несколько итераций.
Шансы на восстановление
95%
Wrong record length
Описание ошибки
Появляется сообщение об ошибке: Internal gds software consistency check. Wrong record length
Причина
Чаще всего ошибка “Wrong record length” вызвана плохой оперативной памятью. Мы настоятельно рекомендуем проверить память ( RAM) на сервере.
Процесс восстановления
Найти и удалить неверные записи с помощью низкоуровневых инструментов IBSurgeon. Требуется несколько итераций.
Шансы на восстановление
97%
Database file appears corrupt. Bad checksum
Описание ошибки
Database file appears corrupt. Bad checksum. Checksum error on database page XX.
Причина
Плохая оперативная память. Мы настоятельно рекомендуем проверить память ( RAM) на сервере.
Процесс восстановления
Индивидуальный процесс восстановления. Требуется несколько итераций.
Шансы на восстановление
99%
Cannot find record back version
Описание ошибки
База данных, похоже, работает, но gbak не может завершить резервное копирование.
Текст ошибки:
Internal gds software consistency check (cannot find record back version (291))
gds_$receive failed. Exiting before completion due to errors. internal gds software consistency check (can’t continue after bug check).
Причина
Наиболее вероятная причина - неправильное управление транзакциями. Исследование производительности транзакций.
Процесс восстановления
База данных требует детального анализа, и обычно решение состоит в том, чтобы найти и удалить проблемные объекты базы данных, а затем воссоздать их. Иногда необходимо перенести данные в новую базу данных.
Шансы на восстановление
99%
Next transaction older than oldest active transaction
Сообщения об ошибке
Internal gds software consistency check (next transaction older than oldest active transaction (266))
Причина
Эта редкая ошибка возникает в InterBase 4.x-5.x, это баг.
Процесс восстановления
Индивидуальный процесс восстановления
Шансы на восстановление
99%
Corrupted header
Описание ошибки
База данных не может быть открыта, и Firebird/InterBase не считает ее допустимой базой данных.
Причина
Физическое повреждение, сбой жесткого диска.
Процесс восстановления
Индивидуальный процесс восстановления
Шансы на восстановление
80%
Database file size exceeds implementation limit
Описание ошибки
Это происходит на серверах InterBase 4.x-5.x и ранних бета-версиях Firebird (0.9.x). База данных не может быть открыта, размер файла базы данных составляет 4 ГБ.
Причина
Ограничение реализации InterBase 4.x-5.x-6.0.x и ранних версий Firebird 0.9.x.
Процесс восстановления
Индивидуальный процесс восстановления.
Шансы на восстановление
Обычно мы можем сохранить все данные (т.е. 100%), но иногда это может быть менее 70%.
Conversion error from string
Описание ошибки
Текст ошибки: Conversion error from string “XXX”.
Причина
Предварительный диагноз невозможен, требуется исследование на месте.
Процесс восстановления
Индивидуальный процесс восстановления.
Шансы на восстановление
99%
INET/inet_error: read errno = 10054 or 10038 or 10093
Сообщения об ошибке
Множественные записи в firebird.log или interbase.log с ошибками 10054, 10038, 10093 и т.д.
Причина
Эти ошибки вызваны сетевыми проблемами - проверьте свои концентраторы, сетевые адаптеры и т.д. Это не ошибка Firebird/InterBase как таковая, но она может повлиять на Firebird/InterBase.
Процесс восстановления
Мы предлагаем инструмент FBScanner для решения проблемы “ошибок 10054” (среди прочих вопросов). Подробности см. здесь.
Шансы на восстановление
Не применимо.
Partner index description not found (175))
Описание ошибки
Текст сообщений об ошибке: internal gds software consistency check (partner index description not found (175))
Отсутствует индекс для первичного или внешнего ключа.
Причина
Это может быть вызвано физическим повреждением или внутренними ошибками сервера.
Процесс восстановления
Индивидуальный процесс восстановления.
Шансы на восстановление
100%
Другие ошибки
Описание ошибки
Ниже приведен список редких ошибок Firebird/InterBase, которые могут быть вызваны разными причинами. Не стесняйтесь отправлять нам описание вашей проблемы - мы можем вам помочь.
Неправильный UDF может вызвать следующие ошибки в interbase.log:
SCH_validate – not entered
SCH_validate – wrong thread
Повреждение индекса может вызвать следующее сообщение в interbase.log:
Page 34672 is an orphan
И эта ошибка может возникнуть при интенсивных вставках/обновлениях/удалениях в рамках одной транзакции:
internal gds software consistency check (Too many savepoints (287))
Трудно распознать причину без исследования базы данных в случае следующих ошибок:
internal gds software consistency check (error during savepoint backout (290))
internal gds Software consistency check (size of opt block exceeded (286))
内部 gds 软件一致性检查(无效的 SEND 请求(167))
可能的原因
原因各不相同。我们需要调查损坏的数据库。
恢复过程
自定义恢复过程。
恢复几率
各不相同