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 命令?

最佳答案

要运行 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/36368633/

相关文章:

java - Android Studio - SQL 数据库/表未创建 - 应用程序无法打开

ios - 在数据库中进行一系列插入后内存不会减少

iphone - 需要 iOS 数据库云设计技巧

sqlite - 迁移待定。要解决此问题,请在本地运行 : bin/rake db:migrate RAILS_ENV=development, 工作

java - 远程访问sqlite或mysql数据库

Java - SQLite - 如何在 where 子句中使用一列的一组值?

ruby-on-rails - Cloud9 - rails |将数据库从 SQLite3 更改为 PostgreSQL

具有多个位置的android sqlite查询

PHP/SQLite - 将表从磁盘复制到内存

SQLite changes() 计算未更改的更新