Распространенные ошибки InterBase/Firebird, вызванные повреждениями, и их шансы на восстановление
Алексей Ковязин, 31-03-2014
Ниже приведено описание типичных ошибок и проблем в базах данных InterBase/Firebird и шансы на их восстановление.
Чтобы получить точную стоимость и время восстановления, пожалуйста, свяжитесь с нами по электронной почте.
Для приблизительной оценки стоимости, пожалуйста, ознакомьтесь с описанием услуги “Восстановление Firebird и InterBase”. Нет 100% гарантии, что описанные ошибки точно соответствуют описанным причинам.
Внутренняя проверка согласованности программного обеспечения gds (cannot find tip page (165))
Описание ошибки
База данных не может быть открыта с помощью движка Firebird или InterBase, и появляется следующее сообщение: Internal gds software consistency check (cannot find tip page (165))
Аварийное завершение работы или физическое повреждение файла базы данных. Страница инвентаризации транзакций (TIP) утеряна. Область повреждения может варьироваться от нескольких страниц до всей базы данных, поэтому требуется дополнительное исследование.
Причина (почему это произошло?) Наиболее вероятные причины - аварийное завершение работы сервера (с помощью кнопки Reset), неправильный подход к резервному копированию или неправильные инструменты резервного копирования. В Windows XP такое повреждение может быть вызвано функцией “Восстановление системы” для файлов “gdb”.
Процесс восстановления
Сначала база данных должна быть просканирована с помощью FirstAID Diagnostician. Если FirstAID не предупреждает о серьезном повреждении, повреждение может быть исправлено с помощью полной версии FirstAID.
В случае серьезного повреждения требуется индивидуальное восстановление.
Шансы на исправление повреждения
99%
Файл базы данных поврежден. Неправильный тип страницы. Страница NNN имеет неправильный тип (ожидался X, найден 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%.
Неизвестная ошибка ввода/вывода для файла “*.gdb”. Ошибка при попытке чтения из файла
Описание ошибки
База данных не может быть открыта, и появляется следующее сообщение об ошибке: 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%
Неправильная длина записи
Описание ошибки
Появляется сообщение об ошибке: Internal gds software consistency check. Wrong record length
Причина
Чаще всего ошибка “Wrong record length” вызвана неисправной оперативной памятью. Мы настоятельно рекомендуем проверить память ( RAM) на сервере.
Процесс восстановления
Найдите и удалите неправильные записи с помощью низкоуровневых инструментов IBSurgeon. Требуется несколько итераций.
Шансы на восстановление
97%
Файл базы данных поврежден. Плохая контрольная сумма
Описание ошибки
Файл базы данных поврежден. Плохая контрольная сумма. Ошибка контрольной суммы на странице базы данных 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%
Следующая транзакция старше самой старой активной транзакции
Сообщения об ошибке
Internal gds software consistency check (next transaction older than oldest active transaction (266))
Причина
Эта редкая ошибка возникает в InterBase 4.x-5.x, это ошибка (баг).
Процесс восстановления
Индивидуальный процесс восстановления
Шансы на восстановление
99%
Поврежденный заголовок
Описание ошибки
База данных не может быть открыта, и Firebird/InterBase не считает ее допустимой базой данных.
Причина
Физическое повреждение, сбой жесткого диска.
Процесс восстановления
Индивидуальный процесс восстановления
Шансы на восстановление
80%
Размер файла базы данных превышает лимит реализации
Описание ошибки
Это происходит на серверах 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 “XXX”.
Причина
Предварительный диагноз невозможен, требуется исследование на месте.
Процесс восстановления
Индивидуальный процесс восстановления.
Шансы на восстановление
99%
INET/inet_error: read errno = 10054 или 10038 или 10093
Сообщения об ошибке
Множественные записи в firebird.log или interbase.log с ошибками 10054, 10038, 10093 и т.д.
Причина
Эти ошибки вызваны сетевыми проблемами - проверьте свои концентраторы, сетевые адаптеры и т.д. Это не ошибка Firebird/InterBase как таковая, но она может повлиять на Firebird/InterBase.
Процесс восстановления
Мы предлагаем инструмент FBScanner для решения проблемы “ошибок 10054” (среди прочих вопросов). Подробности см. здесь.
Шансы на восстановление
Не применимо.
Описание партнерского индекса не найдено (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))
Вероятная причина
Различные причины. Необходимо исследовать поврежденную базу данных.
Процесс восстановления
Индивидуальный процесс восстановления.
Шансы на восстановление
Различные.