【问题标题】:disk I/O error with SQLite VACUUMSQLite VACUUM 的磁盘 I/O 错误
【发布时间】:2011-11-28 15:24:04
【问题描述】:

我通过 Perl 程序访问的 SQLite DB 遇到了这个问题。 我可以使用 INSERT 和 DELETE 命令,但不能使用 VACUUM 会引发错误:“磁盘 I/O 错误”。

如果我以 root 身份运行程序,我没有问题,所以我想这一定是一些权限问题。我检查了该过程中涉及的每个文件的权限,应该没问题。 我真的不明白。 VACUUM 命令是否在 DB 目录之外执行 I/O 操作?

提前感谢您的帮助。 最好的问候,

my $dbh = DBI->connect("dbi:SQLite:someDB.db", undef, undef, {RaiseError => 1, AutoCommit => 1});
my $sth = $dbh->prepare("VACUUM;");
$sth->execute;

【问题讨论】:

    标签: perl sqlite io dbi


    【解决方案1】:

    如果您想查看在VACUUM 期间执行的 I/O 操作,您可以使用strace。它将列出 SQLite 执行的所有系统调用,包括磁盘 IO。

    strace sqlite3 someDB.db 'VACUUM;'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多