2011-11-28 62 views
0

我通過一個Perl程序訪問SQLite數據庫時遇到了這個問題。 我可以使用INSERT和DELETE命令,但不能引發錯誤的VACUUM:「磁盤I/O錯誤」。SQLite的磁盤I/O錯誤VACUUM

如果我以root的身份運行程序,我沒有問題,所以我想它一定是一些權限問題。我檢查過程中涉及的每個文件的權限,並且應該沒問題。 我真的不明白。 VACUUM命令是否在DB目錄之外執行I/O操作?

Thanx提前爲您提供幫助。 最好的問候,

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

回答

2

如果你想看到我/這是在VACUUM執行O操作,您可以使用strace。它將列出SQLite執行的所有系統調用,包括磁盤IO。

strace sqlite3 someDB.db 'VACUUM;' 
+0

Thanx。我發現我的硬盤已滿... – Pierre