Firebirdの一時ファイルのパスをFIREBIRD_TMPで変更する方法
FIREBIRD_TMPを使用してFirebird一時ファイルのパスを変更する方法
記事「FirebirdSQL: 内部ファイル、一時ファイル、および環境変数」から、Firebird一時ファイルの場所は環境変数FIREBIRD_TMPによって管理されることがわかります。
一時ファイルのデフォルトの場所にスペースが不足している場合、または低速なドライブにある場合は、Firebird一時ファイルのパスを変更してみることができます。これには、新しいパスでFIREBIRD_TMPを定義する必要があります。
FIREBIRD_TMP環境変数を使用してFirebird一時ファイルの場所を実際に変更するにはどうすればよいですか?
Linux
Linuxで環境変数を定義するには、Firebirdサービスファイルを開き、[service]セクションに以下を追加します:
Environment=FIREBIRD_TMP=/new/path/to/tmp
次に、デーモン環境を更新し、以下のコマンドでFirebirdサービスを再起動します:
systemctl daemon-reload
systemctl restart firebird-superserver
注意 - この方法はFirebird 3およびFirebird 4で動作します。2.5の場合は、サービスファイルに以下の行を追加します:
FIREBIRD_TMP=/new/path/to/tmp
export FIREBIRD_TMP
環境変数の値を確認するには、次のコマンドを使用します:
strings /proc/PID/environ
ここで、PIDはFirebirdサーバーのプロセスIDです。
その後、一時ファイルは新しいパスに配置されます。ただし、それらは「事前削除」モードで作成されるため、単純なlsコマンドでは表示できません。新しいパスで一時ファイルを表示するには、次のコマンドを使用します:
ls -l /proc/PID/fd/|grep deleted
ここで、PIDはFirebirdプロセスIDです。
次のような表示がされます(アクティブなORDER BY/GROUP BY/DISTINCTクエリがある場合):
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では、管理者権限でコマンドプロンプトを実行し、次のコマンドを実行するのが最も簡単な方法です:
setx /m FIREBIRD_TMP DISK:/Path/To/Temp/Folder
また、「システム環境変数の編集」ダイアログを開き、そこに変数を追加することもできます。
その後、適用するにはFirebirdサービスを再起動します。