Страница 1 из 1
Падение индексов и первичных ключей
Добавлено: 17 мар 2006, 12:46
Shum
Периодически падают индексы, а иногда даже первичный ключ.
База работает под управлением Yaffil 1.0.
Таблицы с падающими индексами активно используются (несколько десятков тысяч транзакций в день) и содержат порядка 5-10 миллионов записей.
При такой работе где-то раз в неделю-две приходиться делать восстановление базы. Можно конечно пересоздавать только индексы на эти таблицы, но по времени это сравнимо.
Размеры самих записей небольшие (порядка 50-100 байт). Индексов по этим таблицам не более 2-х десятков, причем составных не много и по неболее чем 2-м полям.
Что характерно, есть одна подобная таблица, на которой индексы не падают.
Чем это может быть обусловлено и как с этим бороться?
База используется в режиме 24*7 и частые остановки для восстановления недопустимы.
Добавлено: 17 мар 2006, 12:48
kdv
можно проверить железо (память)
База используется в режиме 24*7 и частые остановки для восстановления недопустимы.
www.ibase.ru/devinfo/sys_failure.htm
Добавлено: 17 мар 2006, 13:20
Merlin
Сервер часто падает или принудительно останавливается? Свет часто гаснет? УПС есть? Индексы обычно страдают первыми.
Добавлено: 17 мар 2006, 14:14
Shum
Перебои с питанием исключены! Совершенно!
Добавлено: 17 мар 2006, 14:58
kdv
а ты как обнаруживаешь повреждение индексов? в логе? и там точно нет (в логе) падений или нештатных рестартов сервера?
Re: Падение индексов и первичных ключей
Добавлено: 17 мар 2006, 15:01
hvlad
Shum писал(а):Периодически падают индексы, а иногда даже первичный ключ.
База работает под управлением Yaffil 1.0.
Таблицы с падающими индексами активно используются (несколько десятков тысяч транзакций в день) и содержат порядка 5-10 миллионов записей.
Что такое падают ?
Как об этом узнаёте и что в yaffil.log ?
Массовые insert\update\delete с одинаковыми ключами есть ?
Какой билд дятла ?
Добавлено: 17 мар 2006, 17:44
Shum
Падают - это значит в какой-то момент сервер начинает страшно тормозить выдавая ответы на запросы к этим таблицам раз в 100-1000 медленнее, загрузка процессора 100% при этом время ядра 50%!
При попытке с делать простейшую выборку select * зависает напроч.
После пересоздания индексов приходит в норму. Но был случай когда помогло только удаление всех индексов и внешних ключей на эту таблицу, затем пересоздание первичного ключа. Но резервирование-восстановление решает эту проблему проще.
Версия 1.3.0.887 Classic
В логе ничего подозрительного нет. Максимум - несвоевременное завершение соединения со стороны клиента. Пользователи не дожидаются отвисания часами и снимают клиентов.
Массовые insert-delete с одинаковыми ключами индексов есть. Но не с первичным.
Для одной таблицы планировщик периодически гоняет пересоздание индексов - но это не дело!
Добавлено: 17 мар 2006, 18:15
Merlin
Shum писал(а):Падают - это значит в какой-то момент сервер начинает страшно тормозить выдавая ответы на запросы к этим таблицам раз в 100-1000 медленнее, загрузка процессора 100% при этом время ядра 50%!
Тьфу, блин... Падают... Мусору надо плодить менше, а собирать его часче, и не держать висячие сутками транзакции. Вот если запись в таблице есть, а по индексу не селектится - это да, падают.
Добавлено: 17 мар 2006, 18:16
hvlad
Shum писал(а):Падают - это значит в какой-то момент сервер начинает страшно тормозить выдавая ответы на запросы к этим таблицам раз в 100-1000 медленнее, загрузка процессора 100% при этом время ядра 50%!
При попытке с делать простейшую выборку select * зависает напроч
Мусор собирать нужно, однако. Хотя бы иногда.
IBAnalyst возьми, когда опять тормоза начнутся, и посмотри на своё безобразие в БД
Добавлено: 18 мар 2006, 01:36
kdv
IBAnalyst + читать хелп к нему.
В Yaffil работает кооперативная сборка мусора
(
www.ibase.ru/devinfo/garbage.htm), а не фоновая. Отсюда тормоза на запросах. Но обычно так быть не должно, значит скапливается мусор. Значит фигово работаете с транзакциями, уважаемый.
Могу в саппорте выдать монитор транзакций, посмотришь, чем у тебя движение транзакций отличается от систем, которые по миллиону транзакций в день стартуют, и в ус не дуют.