Автор Тема: Firebird 3 игнорирует параметр TempDirectories в /etc/firebird/firebird.conf  (Прочитано 3130 раз)

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 85
И снова здравствуйте.
Подскажите пожалуйста, что за ерунда с настройками у FB3? :-X
Задан глобальный параметр TempDirectories = /fb/tmp, а эта сволочь тупо сваливает всё в /tmp, который совсем не безразмерный.
Firebird TCP/IP server version LI-V3.0.7.33374 Firebird 3.0
Вычитал, что проблему можно купировать путём задания переменной окружения FIREBIRD_TMP, но как-то не красиво такие костыли использовать.
Спасибо за внимание.

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 85
Кстати, прописал в файле firebird-superserver.service:
[Unit]
Description=Firebird Database Server ( SuperServer )
After=network.target
Conflicts=firebird-classic.socket

[Service]
User=firebird
Group=firebird
Type=forking
ExecStart=/usr/sbin/fbguard -daemon -forever
StandardError=syslog
LimitNOFILE=49999
[b]Environment=FIREBIRD_TMP=/fb/tmp[/b]

[Install]
WantedBy=multi-user.target
Не помогает.

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 85
На просторах интернета нашел, что надо в кавычки заключать значение параметра Environment, но это тоже не помогает. Firebird всё так же упорно пишет всё в /tmp. :-[
На гитхабе пишут, что эта проблема решена в 4-й версии, но что делать тем, у кого софт под FB3? :-\
Смонтировать /tmp на бОльший раздел конечно выход, но так не правильно.

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 303
  • Дмитрий/Dmitry/德米特里/दिमित्री
На гитхабе пишут, что эта проблема решена в 4-й версии, но что делать тем, у кого софт под FB3?
Попросить, чтобы FB4 бэкпортировали из Сизифа в p10 или пересобрать его самому.

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 85
На гитхабе пишут, что эта проблема решена в 4-й версии, но что делать тем, у кого софт под FB3?
Попросить, чтобы FB4 бэкпортировали из Сизифа в p10 или пересобрать его самому.
Спасибо за внимание.
Пересобрать, т.е. запустить банально компиляцию по примеру из readme.md, я смогу. Перед "пересобрать" надо что "переделать" в исходниках. Я правильно понимаю?! И на сколько это сложно?
Или выяснить как работает нужный параметр в 4-ке, исправить в 3-ке и сделать форк?! ;-D ;-D ;-D
Красиво, но боюсь не потяну. Мой опыт программиста на ObjectPascal'e наверное не позволит сделать такой прыжок с подвыподвертом.  8-|

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 85
В сети подобные проблемы решают симлинками и с помощью bind в fstab.
Изначально я готовил сервак под Firebird и создал три раздела на NVMe диске с файловой системой btrfs: /fb/data, /fb/tmp.
В fstab я внёс дополнения:
/fb/tmp /tmp              none     bind                   0      0Посмотрим что будет после ночного перезапуска сервера.  ;-D

Оффлайн gosts 87

  • Участник
  • *
  • Сообщений: 3 303
  • Дмитрий/Dmitry/德米特里/दिमित्री
Пересобрать, т.е. запустить банально компиляцию по примеру из readme.md, я смогу. Перед "пересобрать" надо что "переделать" в исходниках. Я правильно понимаю?! И на сколько это сложно?
Нет. Поскольку в Сизифе есть fb4, то оттуда скачивается исходник src.rpm и пересобирается с помощью заранее установленного и настроенного rpm-build или Hasher.
https://www.altlinux.org/Инструкция_по_сборке_пакетов_с_помощью_rpm
https://www.altlinux.org/Hasher/Руководство

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 85
После перезагрузки /tmp привязался к папке на SSD. Включу создание резервных копий БД и буду наблюдать дальше.
# df /tmp/
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/nvme0n1p1     954G          41G  910G            5% /tmp

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 85
Монтирование /tmp в папку на диске решило проблему. Но это не красивое решение. Ресурс SSD многократно меньше, чем у оперативной памяти.
Разработчики софта не хотят переносить на FB4. И что делать простым смертным? :-o
Изменить исходники и перекомпилировать под себя - красивое решение, но мне, к сожалению, не подвластное.  8-|

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Ресурс SSD многократно меньше, чем у оперативной памяти.

подключите старый SATA HDD и /tmp/ монтировать на нем - пусть гадит туда :))

Оффлайн Nicom

  • Участник
  • *
  • Сообщений: 962
И что делать простым смертным?
tmpfs не поможет?
Вероятно, придётся добавить оперативной памяти.

Можно подобрать SSD с довольно большим MFTB, например от Micron.
« Последнее редактирование: 08.01.2025 21:33:23 от Nicom »

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 85
подключите старый SATA HDD и /tmp/ монтировать на нем - пусть гадит туда :))
Не проблема подключить механический HDD, но потеряю в производительности СУБД. :'-(

Оффлайн fraks

  • Участник
  • *
  • Сообщений: 20
Если у вас есть столько оперативки что вы хотите туда засунуть и TEMP от FIREBIRD - не лучше ли покрутить настройки самого FIREBIRD что бы он пользовался оперативкой непосредственно, без имитаций через файловую систему. Там вроде есть такие настройки.

По поводу вопроса как передать переменную через systemd в Firebird можно почитать тут
https://t.me/bashdays/1067

Оффлайн AndreyNag

  • Участник
  • *
  • Сообщений: 85
не лучше ли покрутить настройки самого FIREBIRD что бы он пользовался оперативкой непосредственно
Спасибо за внимание.
Передача значений переменной окружения не работает. FB3 банально игнорирует этот параметр, каким бы способом ему не передавался.
Но к сожалению FB3 имеет такую врождённую особенность, которую даже официально признали. Решение правда странное. Вместо того, чтобы исправить и выкатить релиз с заплаткой, они предлагают переход на FB4, где эта проблема решена. Ну или предлагают сделать собственный форк и исправить работу с tmp как это реализовано в 4-й версии. Я не на столько программист, чтобы самостоятельно это сделать.
А разработчики прикладного софта не хотят на FB4 переходить. Вот и остаюсь я как муха, зажатая между стеклами.
« Последнее редактирование: 26.06.2025 12:07:02 от AndreyNag »

Оффлайн fraks

  • Участник
  • *
  • Сообщений: 20
Вместо того, чтобы исправить и выкатить релиз с заплаткой, они предлагают переход на FB4, где эта проблема решена.

Не видел обсуждений этой проблемы.
На всякий случай - самая свежая версия тройки - это 3.0.12 которая вышла 08.08.2024 не исключено что там оно исправлено.
У вас какая версия используется?

Если вам известен номер фикса которым исправлена проблема с TEMP в четверке, можно по его истории на гитхабе посмотреть включен ли он в 3.0.12 или 3.0.11