powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Зависание Firebird на базе 50 МБ
25 сообщений из 102, страница 3 из 5
Зависание Firebird на базе 50 МБ
    #39669673
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не должен, но может где-то на стадии проектирования чего-то не доглядел.
А такая реакция может быть, если где-то SMALLINT? Разве не закончится все просто вылетом ошибки?
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669674
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsites,

Если ты действительно хочешь, чтобы тебе помогли, то
1. Отвечай на все вопросы;
2. Выложи (для начала) хотя бы структуру базы сюда. И опиши при этом, какие обращения к базе (запросы) делает "пользователь", когда зависает. Это, кстати, можно точно определить, заюзав какой-нибудь sql-монитор - тогда последняя запись в лог sql-монитора, вероятно, и будет запросом, который убивает сервер.
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669675
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисoffsites,

в базе в 50Мб достигнуть предел это сильно. Вы там что SMALLINT что ли используете
Да хоть SHORTINT. При переполнении посыпятся исключения, а не зависон.
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669676
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пока ставлю на какой-нибудь вечный цикл (где-то).
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669677
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

Я не на все вопросы отвечаю, т.к. не все понимаю. Например как снять статистику с базы во время зависания, если все висит. Он же ни на что не отвечает? Любая работа с fbserver невозможна. А при остановке сервера работа с базой невозможна. Поэтому я и молчу, думаю как это можно сделать. Тут тоже по каждому чиху не хочется задавать вопросы, пытаюсь искать ответы в сети.
Кстати после того как база глюканет, я больше ничего не могу с ней сделать. Ни бэкам с рестором не работает, ничего. Т.е. данные за часов 5 накапливаются, и снова теряются. Как оттуда их извлечь, я пока не знаю.
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669678
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

я в курсе. Это был сарказм насчёт предположения ТС.
Я бы поглядел триггеры на коннект, старт транзакции и коммит.
А также обратил внимание на использование MON$ таблиц в триггерах
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669679
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsites,

SuperServer?
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669680
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насчет вечных циклов, я тоже думал.. но смущает другое - последние изменения в базе по коду делал более года назад. До сих пор все работало как часы. Вечный цикл дал бы знать о себе раньше.
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669681
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

да, на новой машине поднял тоже SuperServer
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669683
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsites,

переходи на CS/SC. SuperServer будешь в 3.0 терзать
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669684
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsitesЯ не на все вопросы отвечаю, т.к. не все понимаю.
Какая буква тебе непонятна здесь:
hvladoffsitesRelation has X orphan backversions (0 in use) in table YX - это сколько ??
offsitesПоэтому я и молчу, думаю как это можно сделать.Думаешь, как в IBExpert нажать пункт меню Tools-Extract Metadata?

offsitesкак база глюканет, я больше ничего не могу с ней сделать. Ни бэкам с рестором не работает, ничегоОшибка с пустым текстом выдается при соединении, или сервер (перезапущенный перед этим, естественно), снова зависает?
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669685
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsitesпоследние изменения в базе по коду делал более года назадМогут и десятилетия пройти до первой проблемы. К делу это отношения не имеет никакого.
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669686
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockЯ пока ставлю на какой-нибудь вечный цикл (где-то).
вот да. А поэтому надо запускать аудит (не трейс), а в момент 100% загрузки всё это срубать и смотреть конец лога аудита.
Наверняка где-то вечный цикл образуется.
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669687
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЯ бы поглядел триггеры на коннект, старт транзакции и коммит.
А также обратил внимание на использование MON$ таблиц в триггерах
Судя по этому, с вероятностью 79.63% ты прав:
offsitesКстати после того как база глюканет, я больше ничего не могу с ней сделать. Ни бэкам с рестором не работает, ничего
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669688
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

X=1

Extract-Metadata это хорошо, но IBExpert не может подключиться к базе когда она висит, он тоже зависает.

Ошибки никакие не выдаются вообще. Висит как просто занят. На вечный цикл и правда похоже. После рестарта сервера, он впорядке, до любого действия с базой (подключения к ней и т.п.)
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669689
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsitesВечный цикл дал бы знать о себе раньше.
чего это? Вечный цикл у тебя срабатывает по достижении некоего порогового значения чего-то. Это примитивный вывод из перехода "за 50 мегабайт".
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669690
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsitesно IBExpert не может подключиться к базе когда она висит, он тоже зависает."Metadata" не зависит от того, навернулась уже база, или еще нет (из бэкапа поднятая, рабочая).
Возьми с рабочей базы, естественно.
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669691
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас на минут 20 пропаду, восстановлю снова базу из бэкапа. Посмотрю код.
Процедуры по сути не сложные - 1 операция за процедуру и все. Либо селект простой, либо инсерт. Транзакций я никаких не создаю. Коммитов внутри хранимок нет. Пока не знаю хорошо это или плохо, но вроде как задача не требовала сложностей.

Единственное что меня пока смущает, вспомнил я про такую вот вещь: юзеры чето делают, потом не понять кто из них вредитель, друг на друга пальцем показывают. Пришлось хранить логи. Кто когда вошел, вышел, записал в какую таблицу. И условие стоит, типа ограничения на 1000 записей таблицы логов. Как размер достигнут, нужно 500 записей удалить. Вот эта процедура мне не нравилась еще на стадии проектирования, но я ее все таки сделал. Единственная мысль что там что-то не так... Поэтому ща базу разбэкапю и посмортю условия и кол-во записей
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669693
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, и еще. Размер 50 мб отменяется. Т.к. в этот раз база накрылась раньше немного.
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669695
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsitesЕдинственное что меня пока смущает, вспомнил я про такую вот вещь: юзеры чето делают, потом не понять кто из них вредитель, друг на друга пальцем показывают. Пришлось хранить логи. Кто когда вошел, вышел, записал в какую таблицу. И условие стоит, типа ограничения на 1000 записей таблицы логов. Как размер достигнут, нужно 500 записей удалить. Вот эта процедура мне не нравилась еще на стадии проектирования, но я ее все таки сделал. Единственная мысль что там что-то не так... Поэтому ща базу разбэкапю и посмортю условия и кол-во записей

Вот это полный трындец. Небось на ON CONNECT/DISCONNECT триггерах. Вот тут небось цикл и происходит
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669696
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gstat -r для "плохой" БД покажи
и где gstat -h для security2.fdb ?
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669698
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Может быть, сейчас код покажу.

EVENTS - Таблица хранения событий.
EType - тип события (удаление, логин и т.п.)

ONCONNECT:

Код: sql
1.
2.
3.
4.
5.
AS
begin
  INSERT INTO events(EType)
  VALUES (4) ;
end



Таблица EVENTS:

BEFORE INSERT:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
as
begin
  if (new.eid is null) then
    new.eid = gen_id(gen_events_id,1);
    new.edatetime = current_timestamp;
    new.user_login = current_user;
    new.user_role = current_role;
    new.eip = (SELECT FIRST 1 MON$REMOTE_ADDRESS FROM MON$ATTACHMENTS);
end



AFTER INSERT:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
AS
begin
  IF ((SELECT COUNT(Eid) FROM events)>100000) THEN
  BEGIN
    DELETE FROM events
    WHERE Eid NOT IN ( SELECT FIRST 50000 Eid
                        FROM events
                        ORDER BY Eid DESC );
  END
end
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669699
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offsites,

выкинь это срочно!!! Чушь несусветная
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669700
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

А как избавиться от лишнего разрастания таблицы? Да и вообще, в этом ли дело?
...
Рейтинг: 0 / 0
Зависание Firebird на базе 50 МБ
    #39669701
offsites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
offsites,

Да, дело похоже в этом)) Посмотрел count Записей в Events = 99 654. Т.е. еще чуть чуть, часов 5, и нужно будет выполнить AFTER INSET, и судя повсему нахрен зависнуть.
...
Рейтинг: 0 / 0
25 сообщений из 102, страница 3 из 5
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Зависание Firebird на базе 50 МБ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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