我试图在数据库上运行VACUUM命令,但似乎空间不足:

> sqlite3 mydatabase.db "VACUUM"
Error: database or disk is full


该数据库约为36 GB,运行该驱动器的驱动器看起来像(通过df -h):

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       406G  171G  215G  45% /home


因此,我显然超出了所需的两倍大小限制。我该怎么做才能使vacuum命令运行?

最佳答案

要允许VACUUM命令运行,请将临时文件的目录更改为具有足够可用空间的目录。

SQLite的documentation表示临时目录是(按顺序):


PRAGMA temp_store_directory命令设置的任何内容;要么
SQLITE_TMPDIR环境变量设置的任何内容;要么
TMPDIR环境变量设置的任何内容;要么
/var/tmp;要么
/usr/tmp;要么
/tmp;要么
.,当前工作目录

关于sqlite - SQLITE3 VACUUM,“数据库或磁盘已满”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30296980/

10-11 18:13