このページは機械翻訳されています。英語の原文をお読みください。 English

IBSurgeon ライブラリ

Firebirdの一時ファイルのパスをFIREBIRD_TMPで変更する方法

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サービスを再起動します。