此页面为机器翻译。请阅读英文原文。 English

IBSurgeon 文库

如何通过FIREBIRD_TMP更改Firebird临时文件的路径

如何通过 FIREBIRD_TMP 更改 Firebird 临时文件的路径

从文章“FirebirdSQL:内部文件、临时文件和环境变量”中,您了解到 Firebird 临时文件的位置由环境变量 FIREBIRD_TMP 控制。

如果您发现临时文件的默认位置空间不足,或者位于速度较慢的磁盘上,您可以尝试更改 Firebird 临时文件的路径。为此,您需要使用新路径定义 FIREBIRD_TMP。

如何通过 FIREBIRD_TMP 环境变量实际更改 Firebird 临时文件的位置?

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 服务器的进程 ID。

之后,临时文件将写入新路径。但是,您无法使用简单的 ls 命令查看它们,因为它们是以“预删除”模式创建的。要查看新路径中的临时文件,请使用以下命令:

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

其中 PID 是 Firebird 进程 ID。

您将看到类似以下内容(如果有活动的 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 服务以应用更改。