Эта страница переведена машинным переводом. Читайте английский оригинал. English

Библиотека IBSurgeon

Как изменить путь для временных файлов Firebird с помощью FIREBIRD_TMP

Как изменить путь для временных файлов Firebird с помощью FIREBIRD_TMP

Из статьи " FirebirdSQL: внутренние файлы, временные файлы и переменные окружения" вы знаете, что расположение временных файлов Firebird определяется переменной окружения FIREBIRD_TMP.

Если вы видите, что в месте по умолчанию для временных файлов не хватает места, или оно находится на медленном диске, вы можете попробовать изменить путь к временным файлам Firebird. Для этого вам нужно задать переменную FIREBIRD_TMP с новым путем.

Как на практике изменить расположение временных файлов Firebird с помощью переменной окружения FIREBIRD_TMP?

Linux

Чтобы задать переменную окружения в Linux, откройте файл службы Firebird () и добавьте в секцию [service]:

Code
Environment=FIREBIRD_TMP=/new/path/to/tmp

затем обновите окружение демона и перезапустите службу Firebird следующими командами:

Code
systemctl daemon-reload
systemctl restart firebird-superserver

Обратите внимание - этот подход работает для Firebird 3 и Firebird 4. Для версии 2.5 добавьте в файл службы строки с

Code
FIREBIRD_TMP=/new/path/to/tmp
export FIREBIRD_TMP

Чтобы проверить значения переменных окружения, используйте следующую команду:

Code
strings /proc/PID/environ

где PID - это идентификатор процесса сервера Firebird.

После этого временные файлы будут сохраняться по новому пути. Однако вы не сможете просмотреть их простой командой ls, поскольку они создаются в режиме “предварительного удаления”. Чтобы просмотреть временные файлы по новому пути, используйте следующие команды:

Code
 ls -l /proc/PID/fd/|grep deleted

где PID - это идентификатор процесса Firebird.

Вы увидите что-то вроде этого (если есть активные запросы ORDER BY/GROUP BY/DISTINCT):

Code
root@ubuntu:/opt/testtmp# ls -l /proc/122999/fd/|grep deleted
lrwx------ 1 firebird firebird 64 Jan 11 01:55 7 -> /opt/testtmp/fb_sort_hFFA8P (deleted)

Windows

В Windows самый простой способ задать переменную - запустить командную строку с правами администратора и выполнить команду:

Code
 setx /m FIREBIRD_TMP  DISK:/Path/To/Temp/Folder

Также вы можете открыть диалог " Изменение системных переменных среды" и добавить переменную там.

После этого для применения изменений перезапустите службу Firebird.