powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Битый индекс
25 сообщений из 28, страница 1 из 2
Битый индекс
    #40111552
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, возникла такая ситуция.

В результате какого-то сбоя индексное чтение из таблицы (FK = число) возвращает 8 строк, а поиск натуралом (FK+0 = число) возвращает 6 строк, т.е. меньше чем индексный поиск.

После обновления индекcа
Код: sql
1.
ALTER INDEX TABLE_FK ACTIVE

натурал и индексный поиски совпадают.
Я понимаю когда запись "вылетела" из индекса, но тут какой-то странный сбой.

После backup/restore лишние 2 строки пропадают.

FB 3.0.4
...
Рейтинг: 0 / 0
Битый индекс
    #40111564
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

не вижу никаких проблем. в смысле, сбой это сбой.
А индекс хранит все ключи, т.е. записи+версии. Запрос видит записи, а поиск по индексу видит записи+версии. Ну и т.д.
...
Рейтинг: 0 / 0
Битый индекс
    #40111591
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

валидацию не делал ?
...
Рейтинг: 0 / 0
Битый индекс
    #40111593
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийВ результате какого-то сбоя индексное чтение из таблицы (FK = число) возвращает
8 строк, а поиск натуралом (FK+0 = число) возвращает 6 строк, т.е. меньше чем
индексный поиск.

Тип поля и план запроса с индексом какой?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Битый индекс
    #40111627
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
валидацию не делал ?
Код: plaintext
1.
2.
3.
4.
5.
6.
Summary of validation errors 
	Number of data page errors	: 2 
	Number of index page errors	: 4 
	Number of record level warnings	: 1 
	Number of index page warnings	: 43 
	Number of pointer page warnings	: 57 
	Number of database page warnings	: 2670 

После валидации стало находится 8 записей, что по индексу, что без

Код: plaintext
1.
2.
3.
4.
Summary of validation errors 
	Number of index page errors	: 4 
	Number of record level warnings	: 1 
	Number of index page warnings	: 43 
	Number of database page warnings	: 2670
Повторная валидация дает такие данные

Dimitry Sibiryakov
Тип поля и план запроса с индексом какой?

Поле integer
PLAN (TABLE1 INDEX (FK_TABLE1_1))
...
Рейтинг: 0 / 0
Битый индекс
    #40111652
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

не надо заниматься ерундой, а надо срочно делать b/r. Я вообще не понимаю, что там выискивать в битой базе, "почему это вот так, а это не так".
...
Рейтинг: 0 / 0
Битый индекс
    #40111672
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений
Код: plaintext
1.
2.
	Number of data page errors	: 2 
	Number of index page errors	: 4 
Вот эти ошибки в firebird.log можешь найти ?
...
Рейтинг: 0 / 0
Битый индекс
    #40111685
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийPLAN (TABLE1 INDEX (FK_TABLE1_1))

Странно. Даже если нода индекса задвоилась, битмап не должен был позволить
пройти по одной записи дважды. Вот был бы ORDER...
А если в ноду вкрался адрес левой записи, она не должна была пройти сравнение реального значения.
Как вообще возможно для этого плана вернуть больше записей, чем у натурала?
...
Рейтинг: 0 / 0
Битый индекс
    #40111696
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Я давно уже сделал b/r теперь тренируюсь "на кошках"

У меня есть битая база. Поэтому если будет интересно, могу ее предоставить разработчикам.
Если это имеет смысл
...
Рейтинг: 0 / 0
Битый индекс
    #40111704
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

В архиве 2 лога. После первой и второй проверок
...
Рейтинг: 0 / 0
Битый индекс
    #40111709
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

не имеет смысла. и логи тоже не имеют смысла. При сбое "молния" ударяет куда попало. Поэтому интересует разве что - сбой памяти, сбой диска, ресет, и так далее, и то для владельца железа. Для разработчиков куда брякнуло - не интересует вообще.
Ну например, база на ХДД, и там появились сбойные секторы. Они обнулились. И что дальше? Как вы себе представляете, что разработчики Фб могут с этим делать?
...
Рейтинг: 0 / 0
Битый индекс
    #40111710
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvКак вы себе представляете, что разработчики Фб могут с этим делать?

Как минимум - обнаружить и выдать вменяемую ошибку: "нарушение структуры базы на
странице Х ожидалось У, получено О". А не то чтобы молча выдавать восемь строк
из шести возможных...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Битый индекс
    #40111714
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

в первую очередь при сбое наезжают на разработчика. Разработчик начинает искать на кого бы стрелки перевести. А перевести их на разработчика HDD - это последнее дело. Видимо никто не поймёт. Надо хранить бекапы. А искать чёрную кошку в тёмной комнате, особенно если её там нет - пустое занятие.
Давным-давно, когда только появились флешки, клиент решил хранить базу на ней. А чего? Хорошо. Всегда с собой. Если что, можно оперативно вынуть. Но ведь никто не предупредил, что флешка (на том этапе развития) долго не живёт. Вот в один прекрасный момент всё заглючило. База работала, но как-то странно. Оказалось, что большая часть информации безвозвратно потеряна. Хорошо, что удалось вовремя лечение провести и потерянная информация не сильно критична. Можно сказать - произошло чудо. А кто когда думает о бэкапе?
...
Рейтинг: 0 / 0
Битый индекс
    #40111718
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI,

+100
...
Рейтинг: 0 / 0
Битый индекс
    #40111723
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovКак минимум - обнаружить и выдать вменяемую ошибку:
оно и так такие сообщения выдает. А если не нравится - сходи в ремонт дисков, они тебе еще чего-нибудь такое расскажут.
В принципе, поврежденная база и поврежденная файловая система - почти одно и то же.
...
Рейтинг: 0 / 0
Битый индекс
    #40111753
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
оно и так такие сообщения выдает.

Ну если бы выдало багчек (или подобное предупреждение) было бы гораздо лучше, а не молча проглотить ошибку, выдав ее в лог только при валидации.
...
Рейтинг: 0 / 0
Битый индекс
    #40111826
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

проблема с потерявшимися для натурального скана записями из-за этого:

Код: plaintext
	Error: Data page 195225 {sequence 57} marked as secondary but contains primary record versions in table ECHO_NALOG (169)

таких ошибок в логе ровно 2 штуки.
Ошибка известная, но очень редкая и пока что не пойманнаяб увы.

Но в логе ещё полно мелких несоответствий на PP, куча орфанов и есть ошибки в индексах, что однозначно указывает на нештатное завершение работы БД как минимум один раз.
Я уже устал твердить об обязательной валидации БД после любого сбоя.
Интересно так же что там с FW ?
...
Рейтинг: 0 / 0
Битый индекс
    #40111852
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк Евгений,

после записи на диск страницы не проверяются на целостность. Если где-то сбойнуло, или "ударила молния", обнаружить проблему можно только тогда, когда кто-то обратится к этим данным. Потом. В приложениях это так и есть. А валидация проверяет всю БД целиком, от начала до конца.
...
Рейтинг: 0 / 0
Битый индекс
    #40111867
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
Интересно так же что там с FW ?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Database header page information:
        Flags                   0
        Generation              5727
        System Change Number    0
        Page size               4096
        ODS version             12.0
        Oldest transaction      5726
        Oldest active           5727
        Oldest snapshot         5727
        Next transaction        5728
        Sequence number         0
        Next attachment ID      78
        Implementation          HW=AMD/Intel/x64 little-endian OS=Windows CC=MSVC
        Shadow count            0
        Page buffers            0
        Next header page        0
        Database dialect        3
        Creation date           Nov 4, 2021 22:02:43
        Attributes              force write

    Variable header data:
        Sweep interval:         20000
        *END*
...
Рейтинг: 0 / 0
Битый индекс
    #40112221
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad

Но в логе ещё полно мелких несоответствий на PP, куча орфанов и есть ошибки в индексах, что однозначно указывает на нештатное завершение работы БД как минимум один раз


Это было давно и неправда, то есть на полуторке, но. У нас по ночам просчитывались весьма серьёзные хранимые агрегаты, процесс продолжался несколько часов. И если оставались брошенные соединения, то мог затянуться так, что не успевал к началу следующего рабочего дня. Почему - загадка, массированных изменений-удалений в оперативной бизнес-логике, по таблицам которой считались эти агрегаты, то есть мусора, не было. Ну, во-первых, под страхом 10% недельной зарплаты через генерала был проведён указ - не бросать включённые компы на ночь, в том числе из противопожарных соображений, на которые он отреагировал с бОльшим пониманием, чем на программистские причуды. А во-вторых ночная богатая внутренняя жизнь сервера (классик на голеньком линуксе без прибамбасов) была организована так:
1. Шатдаун
2. Килл коннектов нофсякей
3. Бэкап без сборки мусора
4. Просчёт
5. Свип
6. В онлайн
Несколько лет всё жило как часики, но потом завёлся у нас таракан финансовый аналитик, который забивал на организационные пугалки и запускал вечерком свои продолжительные расчёты и уходил, надеясь что оно успеет до шатдауна. И тут и начали примерно раз в месяц-два биться индексы, причём на таблицах, с которыми расчёты этого кренделя не работали. Пришлось поднять вопрос на совещании, в смысле - мы сегодня до обеда не работали потому что некоторые стали позволять себе накладные карманы и напомнить о подзабытых уже 10%. Подействовало и битьё индексов прекратилось. А килл процесса классика - это ведь и есть нештатное завершение, хотя, казалось бы, после шатдауна не должно бы аукнуться. Напоминаю, что это было давно и неправда :)
...
Рейтинг: 0 / 0
Битый индекс
    #40112231
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишка
Напоминаю, что это было давно и неправда :)
Охотно верю ;)
...
Рейтинг: 0 / 0
Битый индекс
    #40112514
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://github.com/FirebirdSQL/firebird/issues/7044

Советую обновиться до 3.0.8, он на днях выйдет.
...
Рейтинг: 0 / 0
Битый индекс
    #40112537
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

Спасибо
...
Рейтинг: 0 / 0
Битый индекс
    #40112571
ggreggory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
он на днях выйдет.


Релиз 3.0.8 очень жду! Ура!
...
Рейтинг: 0 / 0
Битый индекс
    #40112580
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

А в четверке что с этим?
А, все, рассмотрел в тикете б
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Битый индекс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]