IB 4, record xxx is wrong length

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

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

Ответить
Кузнецов Евгений
Сообщения: 144
Зарегистрирован: 16 фев 2006, 22:36

IB 4, record xxx is wrong length

Сообщение Кузнецов Евгений » 24 янв 2007, 11:00

Доброго времени суток!

IB 4.0 (+ Patch #2 от 08.02.1995 + Patch 12.01.2001), Win 2kSP4

Вчера один нехороший человек (т.е. я) случайно снял 2 запроса, вставляющие записи в БД.
Тут же сделали backup-restore в копию БД - в логах все было чисто, поэтому
беспокоиться не стали.
Сегодня утром до рабочего дня решили таки прогнать gfix -v -full на рабочей БД.

Summary of validation errors
Number of record level errors : 14104
Number of database page errors : 25

В interbas.log записи вида

Record xxx is wrong length in table (null) (130)

Page xxx is an orphan

Вопрос 1) Если вторую ошибку можно смело игнорировать, то первая внушает некоторые опасения
(или она неотъемлемый спутник второй?) Является ли она эквивалентом известной
internal gds software consistency check (wrong record length (183)) ?

Плюнули, восстановили БД из ночного backup в рабочую (предварительно скопировав ее,
конечно) и в тестовую копию. На тестовой копии прогнали gfix -v -full - все
чисто (по совести говоря, надо было на рабочей, но времени не было - исходили из
эквивалентности двух процессов restore из одного backup-файла :) )
Решили проверить копию еще с помощью IBFirstAIDDiagnostian 1.9
(база состоит из 7 файлов по 131072 страницу, страница 8 Кб, 4-й файл заполнен не полностью,
последние 3 файла пустые)
Выдал примерно следующее

24.01.2007 9:17:04 INFO: Open database files: D:\bases\bascop.GDB
D:\bases\bascop2.GDB
D:\bases\bascop3.GDB
D:\bases\bascop4.GDB
D:\bases\bascop5.GDB
D:\bases\bascop6.GDB
D:\bases\bascop7.GDB

24.01.2007 9:17:04 INFO: Analyzing database low-level structures...
24.01.2007 9:17:04 INFO: Process database file #1 of 7 files.
24.01.2007 9:17:26 INFO: Process database file #2 of 7 files.
24.01.2007 9:17:47 INFO: Process database file #3 of 7 files.
24.01.2007 9:18:25 INFO: Process database file #4 of 7 files.
24.01.2007 9:18:40 INFO: Process database file #5 of 7 files.
24.01.2007 9:18:40 INFO: Process database file #6 of 7 files.
24.01.2007 9:18:40 INFO: Process database file #7 of 7 files.
24.01.2007 9:18:40 INFO: Actual PageCount: 480557 found in database
24.01.2007 9:18:40 ERROR: Found 349472 undefined pages.
24.01.2007 9:18:40 INFO: ====== DATABASE IS READY FOR DIAGNOSING AND REPAIRING. ====
24.01.2007 9:18:40 INFO: ====== Now choose "Diagnose" or "Repair". ====

а дальше портянка из сплошных OK

Вопрос 2) Является ли строка, выделенная жирным, ошибкой IBFirstAIDDiagnostian? -
похоже он неверно работает с многофайловыми БД
(на целехонькой месячной копии из 6 файлов созерцали также Found 355532 undefined pages)

Все вроде работает (отчеты сходятся со вчерашним днем), но хотелось бы обрести душевное
равновесие.

Ответить