SQLITE3真空, "database or disk is full"

标签 sqlite

我正在尝试在数据库上运行 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说临时目录是(按顺序):

  1. 无论使用PRAGMA temp_store_directory设置什么命令;或
  2. 使用 SQLITE_TMPDIR 环境变量设置的内容;或
  3. 使用 TMPDIR 环境变量设置的内容;或
  4. /var/tmp;或
  5. /usr/tmp;或
  6. /tmp;或
  7. .,当前工作目录

关于SQLITE3真空, "database or disk is full",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30296980/

相关文章:

sqlite - Windows 8应用程序-与Skydrive的Sqlite同步

mysql - SQL - 表在不同时间点具有不同的值 - 最佳实践?

python - 如何将 Beautiful Soup 输出保存到我​​的 SQLite 数据库中?

SQLite:一个单词中的FTS匹配可以忽略哪个字符

android - 哪个查询效率更高?

android - IBM Worklight 将数据从 SQLite 检索到 MySQL

SQLite : How to combine subquery results

android - 如何将数据插入 Assets 文件夹中的数据库文件

android - 对 CursorLoaders 感到困惑并将它们与自定义 SQLiteOpenHelper 一起使用

java - SQL - 如何重新组织一组行