Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Открыть новую тему     Написать ответ в эту тему

chAlx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OXDBA:
 
Насчёт производительности я не против. Но gonkon спрашивал только про размер файла базы.

Цитата:
кооперативная сборка мусора не должна зависить от значения sweep interval

И не зависит. Но свип дополняет её своими перепроверками неактуальных транзакций, что позволяет в итоге вычистить больше.
Формулировка и правда сомнительная, уберу про автосвип. (Тем более, что тема нетривиальная: чтобы его включать, база должна быть готова с запасом укладываться в лимиты при штатной работе.)

Цитата:
чем был обоснован выбор IB, а не FB?

Очень просто: IB6 появился в опенсорсе, а Firebird был известен только как выдранный из Mozilla Suite почтовый клиент браузер (ныне Firefox). Ну а дальше апгрейды того, что было.
 
Теперь на FB переехать не так-то просто: и формат бэкапа этого не предполагает, и ряд ограничений FB мешает (начиная с унылого лимита в 31 символ на имена метаданных, который торжественно перетащили в FB3).
 

Addon:
Подправил про название. Давно дело было...
 
Addon2:
Похоже, некоторые сюда ходят только чтобы похвастаться своим невежеством...


Всего записей: 1691 | Зарегистр. 19-03-2003 | Отправлено: 22:40 09-04-2015 | Исправлено: chAlx, 00:05 13-04-2015
exteris

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
а Firebird существовал только как выдранный из Mozilla Suite почтовый клиент (ныне Thunderbird).

Шта?

Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 09:11 10-04-2015
pzaytsev

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chAlx
 
Firebird и Firefox совсем разные вещи
Более того, насколько я помню, Mozilla в своих продуктах использует БД sqlite. Как в Firefox, так и в Thunderbird.

Всего записей: 402 | Зарегистр. 22-08-2005 | Отправлено: 18:04 11-04-2015
Ded0k



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
exteris, pzaytsev
Я тоже сначала не понял, о чем-это chAlx ляпнул, потом сообразил - он видимо имел в виду, что во время появления IB6 под словом Firebird широко было известно лишь о браузере под таким именем (кто не знает, нынешний FireFox 2 раза менял название: Phoenix -> FireBird -> FireFox). Только он как-то не корректно сделал, с такой фантазией еще можно было Pontiac Firebird наплести

Всего записей: 87 | Зарегистр. 02-11-2004 | Отправлено: 04:51 12-04-2015
obtim



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А куда копать, если в логах вижу периодически эту ошибку:  
INET/inet_error: read errno = 104 ?
База на серваке с CentOs
Само ПО на терминальном сервере с Win2008R2

----------
Дьявол коварен - он может явиться к нам просто в образе дьявола

Всего записей: 8937 | Зарегистр. 03-03-2002 | Отправлено: 22:25 14-04-2015
Ded0k



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
obtim
Обрыв сетевого подключения к СУБД. Вероятно ваше ПО, подключающееся к СУБД, аварийно закрывается и при этом соединение с СУБД не завершается корректно (без команды DISCONNECT). Или это какие-то неполадки в сетевой инфраструктуре.

Всего записей: 87 | Зарегистр. 02-11-2004 | Отправлено: 09:25 15-04-2015
obtim



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ded0k
Сетевые проблемы уже исключил.
У нас просто специфическое ПО использует FireBird и разработчик не очень активен в решении проблем.  
Есть проблемы в последнее время и надо сформулировать задачу.
А аварийно закрывается и некорректно завершает работу с БД может быть синонимом в этом случае?
На сервере с этим Firebird лежит несколько баз. Как-то можно вычленить, к какой именно базе относятся логи?
Имеет ли смысл апгрейд до 2.5.4(стоит 2.5.3)?
P.S. Нашел совет по CONNECTION_TIMEOUT
Попробую поиграться с ним
P.P.S. под винды существует ibconsvc.zip, которая заносит информацию о коннектах и дисконнектах (только tcp) прямо в interbase.log, что позволяет отследить станции или хабы, генерирующие ошибку.
А есть что-нибудь подобное для Unix систем?

----------
Дьявол коварен - он может явиться к нам просто в образе дьявола

Всего записей: 8937 | Зарегистр. 03-03-2002 | Отправлено: 09:32 15-04-2015 | Исправлено: obtim, 09:46 15-04-2015
Ded0k



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
obtim,

Цитата:
А аварийно закрывается и некорректно завершает работу с БД может быть синонимом в этом случае?  

Конечно может. Например, программа вылетела, команда DISCONNECT на сервер не поступила, он ждет некоторое время, потом закрывает соединение по таймауту и заносит ошибку в лог.

Цитата:
На сервере с этим Firebird лежит несколько баз. Как-то можно вычленить, к какой именно базе относятся логи?  

Штатных средств для раздельного ведения лога разных баз сходу не нашел.
Первое что пришло в голову - ставить базы на разные сервера. Это можно сделать в пределах одной машины, но назначить им разные сетевые порты для коннекта.
По Unix не подскажу, не знаю.

Всего записей: 87 | Зарегистр. 02-11-2004 | Отправлено: 09:54 15-04-2015
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А есть что-нибудь подобное для Unix систем?

FBScanner
Правда нужна будет еще одна машина под Win

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 10:16 15-04-2015
obtim



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OXDBA
Спасибо за подсказку. Осталось найти лекарство
Нашел

Всего записей: 8937 | Зарегистр. 03-03-2002 | Отправлено: 11:08 15-04-2015 | Исправлено: obtim, 11:12 15-04-2015
chAlx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
obtim
 
Чтобы увидеть TCP-соединения с сервером БД, достаточно утилиты netstat. Чтобы поймать подключения и записать их в лог, можно использовать tcpdump. Только при использовании терминального сервера это неинтересно: все коннекты будут с него.
 
Firebird-сервер и сам имеет некоторую дополнительную информацию по подключениям ("аттачам"). В частности, подключениям сопоставлен номер процесса, запущенного на машине клиента (т.е. на терминальном сервере). Т.о. можно сравнить этот список с реальным перечнем процессов на терминальном сервере и увидеть те, которые числятся подключенными без фактически запущенного клиентского ПО.
 
Самый простой способ увидеть подключения -- открыть в IBExpert меню Services - Database Monitoring - Attachments. Смотреть столбцы Remote PID и Remote Process.
 
ПС: Полностью избавиться от ошибок 104 всё равно не получится из-за специфики сетевых технологий и убогого протокола Interbase/Firebird. Обрывы связи неизбежны и ПО должно это предусматривать. Так что если проблема только в нештатном отключении, то надо проверить наличие зависших транзакций в списке сервера. Если клиент перед вылетом всё нормально закоммитил (особенно запись), то обрыв не на что особо не повлияет.

Всего записей: 1691 | Зарегистр. 19-03-2003 | Отправлено: 14:46 15-04-2015
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chAlx
 

Цитата:
ПС: Полностью избавиться от ошибок 104 всё равно не получится из-за специфики сетевых технологий и убогого протокола Interbase/Firebird.

А можно чуть детальнее о специфике и убогости? Для общего, так сказать, развития?

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 16:19 15-04-2015 | Исправлено: miwa, 16:20 15-04-2015
obtim



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chAlx
Уменьшил timeout до 170, но не рестартовал firebird(рестарт будет после 21 по МСК)=>результат увижу только завтра.
Прогнал одну из БД через IBAnalyst27

Есть набор плохих индексов и бесполезных.
Вопрос по sweep interval:
он вроде как промаркирован желтым, при этом 20000 это вроде как дефолтное значение.
Физический размер БД 4.8 Гб.
Надо ли для такой  БД "оптимизировать" sweep interval?
P.S. Сопоставлять PID  буду уже завтра

Всего записей: 8937 | Зарегистр. 03-03-2002 | Отправлено: 17:39 15-04-2015
chAlx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
miwa

Цитата:
Для общего, так сказать, развития?

Это "типа троллинг" в стиле эскуэль-ру или действительно несколько лет работы с субжем не заставило прочувствовать какие-то "особенности"? Просто их там достаточно, чтобы хоть раз на какой-то споткнуться.
 
По-минимуму: долгие TCP-сессии, возможность молчаливой потери пакетов, отсутствие "пинга" внутри соединения, отсутствие шифрования (это уже на любителя)... Смутно помню, что где-то не хватало проверок целостности. Ну и, субъективно, дико низкая скорость передачи данных.
 
Что уж говорить, если [возможно, лучшее в истории клиентское приложение] IBExpert год за годом падает в случае тех или иных проблем связи с сервером.
 
Добавлено:
obtim:
 
Тут не в автоматическом свипе дело, а в том, что там зависает и надолго ли. Разница между самой старой и самой новой транзакциями ~6500 шт., но актуальность старых неизвестна.
 
Можно сделать свип и посмотреть, сдвинется ли счётчик старых. Это в реальном времени видно там же, в мониторинге IBExpert.
 
Заведомых проблем со значением 20000 тут нет.

Всего записей: 1691 | Зарегистр. 19-03-2003 | Отправлено: 18:00 15-04-2015
obtim



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chAlx
Попробую обрисовать картину, чтобы было более понятно,к чему вопросы.
Имеем сервак с esxi 5.5 на борту.
На нем поднята виртуальная машина Win2008R2 с 12 процами и 16 гигами оперативки.
Имеем второй сервак с esxi 5.5 на борту.
На нем поднята Centos с базой Firebird
Серваки соедиенены по гигабиту. На уровне esxi проблем нет.
В win2008r2 судя по логам проблем нет. Активирован терминальник. Пользователей около 20. Они пользуют самую малость office 2010+firefox и МИС Инфоклиника(использует БД Firebird).
Есть непонятные пиковые моменты в которые сервак виснет.
Методом исключения(system explorer+process hacker) звезды пришли к Инфоклинике.
Инфоклиника использует fastreport(*.fr3) для построения отчетов. По сути это принцип business object.
Отчеты клепает один из сотрудников компании. Отчетов много, поэтому перепроверять их сложновато.
Инфоклиника лицензионная, но там очень сложно с тех. поддержкой.
Есть две мысли: возможно она(или один из отчетов) не корректно работает с БД.
Сейчас пытаюсь ее опровергнуть или подтвердить.
Или глючит репликатор БД(в современных наших реалиях он работает вхолостую и поэтому почти его исключил).
Из двух независимых источников получил, что для проги характерна запись INET/inet_error: read errno = 104 в логах.
С фаербердом знаком на уровне ВУЗа, поэтому чуть позже позадаю еще вопросов

Всего записей: 8937 | Зарегистр. 03-03-2002 | Отправлено: 20:50 15-04-2015
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chAlx

Цитата:
Это "типа троллинг" в стиле эскуэль-ру или действительно несколько лет работы с субжем не заставило прочувствовать какие-то "особенности"? Просто их там достаточно, чтобы хоть раз на какой-то споткнуться.  

Нет, не тролинг. Судя по ответам у вас (тебя?) достаточно опыта чтобы такие заявления делать обоснованно. Поэтому и интересуюсь.
 
Я работал с разными технологиями, СУБД, железками и прочим и нередко бывало так, что то, что я по молодости и неопытности считал убогостью или, наоборот, чрезмерной  усложненностью, оказывалось логичным, нужным или востребованным. Это приучило сперва спрашивать более опытных людей прежде чем делать какие-то категорические заявления по поводу чего-то, что я не знаю.
 

Цитата:
По-минимуму: (1)долгие TCP-сессии, (2)возможность молчаливой потери пакетов, (3)отсутствие "пинга" внутри соединения, (4)отсутствие шифрования (это уже на любителя)... Смутно помню, что (5) где-то не хватало проверок целостности. Ну и, субъективно, (6) дико низкая скорость передачи данных.  
 
Что уж говорить, если [возможно, лучшее в истории клиентское приложение] IBExpert год за годом падает в случае тех или иных проблем связи с сервером.  

Пронумеровал для удобства цитирования.
1. Не понял. В смысле долго инициализируется сессия, или долго держится активной?
2. Это каких пакетов? На уровне ТСР или выше?
3. DummyPacketInterval - не оно?
4. Понято и принято.
5. В смысле можно при желании сформировать неправильный пакет на клиенте, который завалит сервер или повредит данные?
6. Что есть, то есть, тут тоже вопросов нет.

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 22:07 15-04-2015
exteris

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
obtim
FastReport, скорее всего, всего лишь визуализирует сформированный  отчет, который запросто может долго формироваться в БД или на клиенте.

Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 08:34 16-04-2015 | Исправлено: exteris, 08:35 16-04-2015
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Есть непонятные пиковые моменты в которые сервак виснет.  

Только firebird или весь сервер? Раньше такие проблемы наблюдались или появились внезапно?( На одном из серверов у наших заказчиков наблюдалась аналогичная картина, оказалось сдохла батарейка в SCSI контроллере)
 
 
Добавлено:
Кстати, БД в 1 диалекте, это как-то странно в 2015 году.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 09:36 16-04-2015
obtim



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
exteris
Я понимаю.  
*.fr3=xml
Немного пожалуюсь:
*.fr3 файлы клепает человек, который с компами на ВЫ. Ему когда-то показали, вот он и наделал. По факту там могут быть кривые запросы.
Перепроверять все отчеты пока нет возможности и желания. Как исключить факт их влияния - пока не понимаю.

Всего записей: 8937 | Зарегистр. 03-03-2002 | Отправлено: 09:51 16-04-2015
chAlx

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
obtim:

Цитата:
Есть непонятные пиковые моменты в которые сервак виснет.  


Цитата:
для проги характерна запись INET/inet_error: read errno = 104

Ну вот тут видно, что есть две проблемы: актуальная и понятная. Вторая не особо и проблема (так, симптомчик) и не особо мешает. Так что можно про неё забыть до тех пор, пока не будет доказана причинная связь с первой ;)
 
Про зависоны главный вопрос задан:

Цитата:
Только firebird или весь сервер?

Т.е. надо локализовать проблему по месту проявления, времени, вызывающим её факторам (это малореально, но хотя бы уловить предшествующие события и характерные симптомы). Для этого нужен мониторинг основных параметров линух-сервера (load, iowait, память, место в разделах, загрузка сети), процесса fbserver (загрузка процессора, памяти, число сетевых соединений) и внутренних метрик Firebird (счётчики транзакций, число коннектов, время последней транзакции, загрузки памяти). Можно в лог писать, можно в систему мониторинга выгружать:
 
Мониторинг ~40 параметров сервера и базы с помощью Zabbix
Это самопальная выборка. Говорят, сейчас есть более-менее готовые системы мониторинга (отдельно для сервера, отдельно для Firebird).
 
 
Добавлено:
miwa

Цитата:
достаточно опыта чтобы такие заявления делать обоснованно

Я потому так категорично, что тут и изначально натыкаешься на ограничения, и по мере накопления опыта они никуда не уходят, а выявляются новые. Тем более, что вопрос касался обрывов связи, неизбежность которых очевидна, и относился не только к протоколу СУБД, но и к остальным слоям:
 
  • (1)долгие TCP-сессии: стандартный keepalive timeout 2 часа. Отвалившаяся сессия (клиент умер или просто закрылся по-быстрому) не рубится и СУБД считает аттач активным.
  • (2)возможность молчаливой потери пакетов: по-сути тот же контроль целостности. Что-то где-то в сети потерялось, а драйверу (на сервере или на клиенте) пофиг: соберёт и так либо умрёт, пытаясь. Или будет ждать того, чего уже не будет (что более характерно, т.к. посреди TCP-сессии сложно что-то потерять, а в конце легко).
  • 3. DummyPacketInterval - не оно? Оно, спасибо. При переносе сервера осталось в дефолтном нулевом значении: тогда некоторые обслуживающие процедуры по полдня работали без фетча. Теперь надо будет попробовать, несмотря на всеобщее недоверие к этой фиче.
  • (5) где-то не хватало проверок целостности: точно не вспомню, но вроде дело касалось банальной чексуммы: что пакет пришёл целиком и он верный. "Пакет-убийца" -- это как одно из последствий попадания в него мусора.

  • Всего записей: 1691 | Зарегистр. 19-03-2003 | Отправлено: 13:42 16-04-2015
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru