Падает Yaffil 887 вместе с базой
Падает Yaffil 887 вместе с базой
Есть программа, которая постоянно перекачивает данные между двумя ib-базами. Обе базы лежат на одном сервере, где крутится Yaffil build 887. Периодически одна из баз падает, при этом вылетает Yaffil (вылетает ibserver.exe с системным сообщением "Ошибка в программе"). Кто кого валит - непонятно.
Аппаратные сбои не причем - точно такие ситуации повторялись на двух разных машинах. База падала и в CS и SS режиме.
Смоделировать падение принудительно - не получается (((
В yaffil.log в течение дня до падения встречаются только такие сообщения:
XNET/xnet_error: read from map failed errno = 1067
Процесс был неожиданно завершен.
XNET/xnet_error: read from map failed errno = 298
Слишком много попыток занесения события для семафора.
После перезапуска yaffil`а - куча сообщений о неверных индексах, страницах и т.п. Наиболее частое из них:
Page 3818 is an orphan
Системе не удается найти указанный параметр среды.
после того как Yaffil выдает эту кучу сообщений он вырубается....
Еще один момент, возможно не существенный: если упавшую базу открыть через Yaffil (например при помощи IBExpert), то Yaffil сразу вылетает. Если открыть через Firebird 1.0 - всё открывается и просматривается. ПРИЧЁМ, если после этого базу опять открыть на Yaffil`е - всё тоже начинает работать. При этом в базе есть битые странички, которые легко лечатся.
Аппаратные сбои не причем - точно такие ситуации повторялись на двух разных машинах. База падала и в CS и SS режиме.
Смоделировать падение принудительно - не получается (((
В yaffil.log в течение дня до падения встречаются только такие сообщения:
XNET/xnet_error: read from map failed errno = 1067
Процесс был неожиданно завершен.
XNET/xnet_error: read from map failed errno = 298
Слишком много попыток занесения события для семафора.
После перезапуска yaffil`а - куча сообщений о неверных индексах, страницах и т.п. Наиболее частое из них:
Page 3818 is an orphan
Системе не удается найти указанный параметр среды.
после того как Yaffil выдает эту кучу сообщений он вырубается....
Еще один момент, возможно не существенный: если упавшую базу открыть через Yaffil (например при помощи IBExpert), то Yaffil сразу вылетает. Если открыть через Firebird 1.0 - всё открывается и просматривается. ПРИЧЁМ, если после этого базу опять открыть на Yaffil`е - всё тоже начинает работать. При этом в базе есть битые странички, которые легко лечатся.
Статистика упавшей БД:
Код: Выделить всё
Database header page information:
Flags 0
Checksum 12345
Generation 22725
Page size 4096
ODS version 10.0
Oldest transaction 1272
Oldest active 22717
Oldest snapshot 22717
Next transaction 22718
Bumped transaction 1
Sequence number 0
Next attachment ID 0
Implementation ID 16
Shadow count 0
Page buffers 0
Next header page 0
Database dialect 3
Creation date Jul 16, 2007 10:43:56
Attributes
Variable header data:
Sweep interval: 20000
*END*
-
- Сообщения: 144
- Зарегистрирован: 16 фев 2006, 22:36
Доброго времени суток!
Ну поскольку никто Вам не ответил, влезу я.
1) Есть 892 сборка Yaffil - если это баг, то он мог быть уже исправлен
2) По статистике видно, что автоматический сборщик пытается собрать мусор и, видимо, на этом обламывается.
Что бы я сделал :
- в монопольном режиме установил бы sweep interval в 0 (на всякий)
- сделал бы backup с ключом -g (без сборки мусора) и ведением лога (кажется, -v -y <файл>)
- restore в копию базы с созданием лога
В случае ошибок в логах, если бы не смог сам разобраться, выложил бы сюда, авось, кто-нибудь да помог бы.
3) В случае неудачи можно попробовать пересоздание базы из скрипта заново с переливкой данных
Ну поскольку никто Вам не ответил, влезу я.
1) Есть 892 сборка Yaffil - если это баг, то он мог быть уже исправлен
2) По статистике видно, что автоматический сборщик пытается собрать мусор и, видимо, на этом обламывается.
Что бы я сделал :
- в монопольном режиме установил бы sweep interval в 0 (на всякий)
- сделал бы backup с ключом -g (без сборки мусора) и ведением лога (кажется, -v -y <файл>)
- restore в копию базы с созданием лога
В случае ошибок в логах, если бы не смог сам разобраться, выложил бы сюда, авось, кто-нибудь да помог бы.
3) В случае неудачи можно попробовать пересоздание базы из скрипта заново с переливкой данных
[quote="Кузнецов Евгений"][/quote]
База действительно падает во время автоматической сборки мусора. Удалось добится 100-процентной повторяемости падёжа (или паданья ).
Беру нормальную базу, делаю своей прогой кучу транзакций, довожу разницу OAT-OIT до значения более 20 000 и отключаюсь......
... при новом коннекте падает сервер и сама база
Проверял на двух билдах Yaffil`а: 887 (CS и SS) и 892 (только SS), операционка - Win XP SP2. Sweep Interval=20 000. Размер базы ~ 15 Мб. Результат везде одинаковый.
Брал одну и ту же базу с разными данными (за разные числа) - с некоторыми базами сборка мусора проходит нормально и уронить их не удаётся вообще. Другие - падают во время первого же Sweep`а.
Все проблемы решаются, когда ставлю Sweep Interval = 0.
Спасибо Евгений.
База действительно падает во время автоматической сборки мусора. Удалось добится 100-процентной повторяемости падёжа (или паданья ).
Беру нормальную базу, делаю своей прогой кучу транзакций, довожу разницу OAT-OIT до значения более 20 000 и отключаюсь......
... при новом коннекте падает сервер и сама база
Проверял на двух билдах Yaffil`а: 887 (CS и SS) и 892 (только SS), операционка - Win XP SP2. Sweep Interval=20 000. Размер базы ~ 15 Мб. Результат везде одинаковый.
Брал одну и ту же базу с разными данными (за разные числа) - с некоторыми базами сборка мусора проходит нормально и уронить их не удаётся вообще. Другие - падают во время первого же Sweep`а.
Все проблемы решаются, когда ставлю Sweep Interval = 0.
Спасибо Евгений.
-
- Сообщения: 144
- Зарегистрирован: 16 фев 2006, 22:36
Доброго времени суток!
Думаю, FAQ Вы читали, но на всякий случай - http://www.ibase.ru/ibfaq.htm#xp - были сообщения даже о повреждении БД по этой причине.0leg писал(а):операционка - Win XP SP2
А вот на свежесозданной БД это воспроизводится? Просто с учетом того, что0leg писал(а): Беру нормальную базу, делаю своей прогой кучу транзакций, довожу разницу OAT-OIT до значения более 20 000 и отключаюсь......
я бы грешил на физическое/логическое повреждение БД, из-за которого и падает сборщик мусора (это, естественно, только предположение).0leg писал(а): Брал одну и ту же базу с разными данными (за разные числа) - с некоторыми базами сборка мусора проходит нормально и уронить их не удаётся вообще. Другие - падают во время первого же Sweep`а.
А при ручной сборке мусора через gfix -sweep проблем не возникает и БД не повреждается?0leg писал(а): Все проблемы решаются, когда ставлю Sweep Interval = 0.
читал, восстановление у меня отключеноДумаю, FAQ Вы читали, но на всякий случай - http://www.ibase.ru/ibfaq.htm#xp - были сообщения даже о повреждении БД по этой причине.
абсолютно то же самое - падает база и серверА при ручной сборке мусора через gfix -sweep проблем не возникает и БД не повреждается?
---
на вновь созданной базе ситуацию пока не моделировал, потом попробую...
backup/restore базы до падения - без ошибок, только в конце Restore 2 предупреждения:WildSery писал(а):Олег, не вижу упоминания в ветке, что у тебя с бэкап-рестором происходит-то.
Всё нормально, без ошибок?
Код: Выделить всё
gbak: WARNING:function ABS is not defined
gbak: WARNING: module name or entrypoint could not be found
сделать backup базы после падения сервера не удается - при попытке backup падает сервер (тот, который уже перезапущен ). Если при backup отключить сборку мусора - не помогает, ситуация та же.
Последний раз редактировалось 0leg 03 авг 2007, 10:52, всего редактировалось 1 раз.
Небольшое уточнение - я везде пишу, что вместе с сервером падает база, но это возможно не так. Обнаружить ошибки в базе после падения вервера удается не всегда.
На некоторых базах переживших падение сервера проверка показывает битые страницы, например:
на некоторых - error not found.
На некоторых базах переживших падение сервера проверка показывает битые страницы, например:
Код: Выделить всё
Summary of validation errors
Number of record level errors : 2
Number of index page errors : 2
Number of database page errors : 1997