Порча индексов
Порча индексов
есть база в которой после вызова sp происходит разрушение индексов.
Размер в 7zip 3375 kB.
Куда слать?
Размер в 7zip 3375 kB.
Куда слать?
Re: Порча индексов
Для начала хотелось бы знать точную версию FB (IB?) и как именно определяется порча индексов
Re: Порча индексов
Прошу прощения, запамятовал. FB WI-V2.5.1.26229
После вызова sp независимо от завершения COMMIT или ROLLBACK
Проверка БД сообщает
Summary of validation errors
Number of index page errors : 2
IBE: Validation completed.
После вызова sp независимо от завершения COMMIT или ROLLBACK
Проверка БД сообщает
Summary of validation errors
Number of index page errors : 2
IBE: Validation completed.
Re: Порча индексов
А что в firebird.log ?dostap писал(а):Прошу прощения, запамятовал. FB WI-V2.5.1.26229
После вызова sp независимо от завершения COMMIT или ROLLBACK
Проверка БД сообщает
Summary of validation errors
Number of index page errors : 2
IBE: Validation completed.
А если валидацию сделать ДО выполнения процедуры ?
Re: Порча индексов
Перед выполнением процедуры validate OK, т.к. база перед запуском сп восстанавливается.
в логе
DMW2KH Wed Feb 23 16:16:04 2011
Database: doorsdb
Index 1 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 16:16:04 2011
Database: doorsdb
Index 3 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 18:18:32 2011
Database: doorsdb
Index 1 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 18:18:33 2011
Database: doorsdb
Index 3 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 19:43:21 2011
Database: doorsdb
Index 1 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 19:43:21 2011
Database: doorsdb
Index 3 is corrupt (missing entries) in table TWGOODS (218)
в логе
DMW2KH Wed Feb 23 16:16:04 2011
Database: doorsdb
Index 1 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 16:16:04 2011
Database: doorsdb
Index 3 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 18:18:32 2011
Database: doorsdb
Index 1 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 18:18:33 2011
Database: doorsdb
Index 3 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 19:43:21 2011
Database: doorsdb
Index 1 is corrupt (missing entries) in table TWGOODS (218)
DMW2KH Wed Feb 23 19:43:21 2011
Database: doorsdb
Index 3 is corrupt (missing entries) in table TWGOODS (218)
Re: Порча индексов
Вот теперь это стало действительно интересно. Даже очень.
Откуда скачать ?
Откуда скачать ?
Re: Порча индексов
Как добиться :
После рестора
select * from repair_all(1,1,0)
даст нужный результат.
Скачать с http://azov.dveri-k.ru/obmen/dvk/doors21.zip
После рестора
select * from repair_all(1,1,0)
даст нужный результат.
Скачать с http://azov.dveri-k.ru/obmen/dvk/doors21.zip
Re: Порча индексов
Скачал, воспроизвел, смотрю.
Пока могу сказать только что проблема в сочетании вычислимых полей и select with lock.
Если убрать with lock из TWGOODS_UPD (их там два), то всё ок.
Пока могу сказать только что проблема в сочетании вычислимых полей и select with lock.
Если убрать with lock из TWGOODS_UPD (их там два), то всё ок.
Re: Порча индексов
Там происходит закольцовка при update TWGOODS
по причине ошибки которую я внёс собственными руками
по причине ошибки которую я внёс собственными руками
Re: Порча индексов
А что такое - закольцовка, и к чему она должна приводить ?
Re: Порча индексов
Закольцовка значит что TWGOODS может обновлятся вечно( TWGOODS_UPD вызывается рекурсивно).
Но это не должно приводить к поломке базы.
Но это не должно приводить к поломке базы.
Re: Порча индексов
Я не вижу зацикливания. Проверить можешь 2-мя способами
а) убрать with lock, как я говорил выше, и запустить процедуру, или
б) отключить триггеры, проапдейтить таблицу саму в себя, собрать мусор (селектом), включить триггеры и опять же запустить процедуру.
а) убрать with lock, как я говорил выше, и запустить процедуру, или
б) отключить триггеры, проапдейтить таблицу саму в себя, собрать мусор (селектом), включить триггеры и опять же запустить процедуру.
Re: Порча индексов
Исправление тестируется и будет доступно на днях.
Re: Порча индексов
В продолжение осмелюсь предположить что в фазе триггера after insert (or update ?)
не корректно получаются значения new.COMPUTED_BY_FIELD в частности для double precision = .0
хотя уже всё должно быть посчитано.
Я кажись тока нарвался на эту засаду.
Завтра проверю точно
не корректно получаются значения new.COMPUTED_BY_FIELD в частности для double precision = .0
хотя уже всё должно быть посчитано.
Я кажись тока нарвался на эту засаду.
Завтра проверю точно
Re: Порча индексов
Очень может быть.dostap писал(а):В продолжение осмелюсь предположить что в фазе триггера after insert (or update ?)
не корректно получаются значения new.COMPUTED_BY_FIELD в частности для double precision = .0
Холостой апдейт таблицы решит проблему.
Есс-но будет и полноценное решение в самом движке.
Re: Порча индексов
Тикет в трекере
Исправление для всех 2.х уже закоммиченно, так что следующий снапшот можно пробовать.
Исправление для всех 2.х уже закоммиченно, так что следующий снапшот можно пробовать.