Trang này được dịch bằng máy. Đọc bản gốc tiếng Anh. English

Thư viện IBSurgeon

Cách thay đổi đường dẫn cho các tệp tạm thời của Firebird bằng FIREBIRD_TMP

Cách thay đổi đường dẫn cho các tệp tạm thời của Firebird bằng FIREBIRD_TMP

Từ bài viết " FirebirdSQL: internal files, temporary files, and environment variables" bạn biết rằng vị trí của các tệp tạm thời của Firebird được quy định bởi biến môi trường FIREBIRD_TMP.

Nếu bạn thấy rằng vị trí mặc định cho các tệp tạm thời thiếu dung lượng, hoặc nếu nó nằm trên ổ đĩa chậm, bạn có thể thử thay đổi đường dẫn đến các tệp tạm thời của Firebird. Để làm điều này, bạn cần định nghĩa FIREBIRD_TMP với đường dẫn mới.

Làm thế nào để thay đổi vị trí của các tệp tạm thời Firebird bằng biến môi trường FIREBIRD_TMP một cách thực tế?

Linux

Để định nghĩa biến môi trường trong Linux, hãy mở tệp dịch vụ Firebird () và thêm vào phần [service]:

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

sau đó cập nhật môi trường daemon và khởi động lại dịch vụ Firebird bằng các lệnh sau:

Code
systemctl daemon-reload
systemctl restart firebird-superserver

Xin lưu ý - cách tiếp cận này hoạt động cho Firebird 3 và Firebird 4. Đối với 2.5, hãy thêm vào tệp dịch vụ các dòng với

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

Để kiểm tra các giá trị của biến môi trường, hãy sử dụng lệnh sau:

Code
strings /proc/PID/environ

trong đó PID là ID tiến trình của máy chủ Firebird.

Sau đó, các tệp tạm thời sẽ được chuyển đến đường dẫn mới. Tuy nhiên, bạn sẽ không thể xem chúng bằng lệnh ls đơn giản, vì chúng được tạo ở chế độ “pre-deleted”. Để xem các tệp tạm thời trong đường dẫn mới, hãy sử dụng các lệnh sau:

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

trong đó PID là ID tiến trình Firebird.

Bạn sẽ thấy một cái gì đó như thế này (nếu có các truy vấn ORDER BY/GROUP BY/DISTINCT đang hoạt động):

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

Trên Windows, cách dễ nhất để thiết lập là chạy dấu nhắc lệnh với quyền Quản trị viên và thực thi lệnh:

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

Ngoài ra, bạn có thể mở hộp thoại " Edit the system environment variables" và thêm biến ở đó.

Sau đó, để áp dụng, hãy khởi động lại dịch vụ Firebird.