我正在尝试在数据库上运行 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 命令运行,请将临时文件的目录更改为具有足够可用空间的目录。
SQLite 的 documentation说临时目录是(按顺序):
- 无论使用PRAGMA temp_store_directory设置什么命令;或
- 使用
SQLITE_TMPDIR
环境变量设置的内容;或 - 使用
TMPDIR
环境变量设置的内容;或 /var/tmp
;或/usr/tmp
;或/tmp
;或.
,当前工作目录
关于SQLITE3真空, "database or disk is full",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30296980/