我有一个SQLite数据库,我正在清理和重新整形以进行分析。它的大小约为120GB。
我们买了一台更好的机器,更多内核,20倍内存等等。它还有一套四个1TB驱动器(我在一个物理驱动器上有root
,我有/home
在其他三个物理驱动器的RAID0阵列上。)
我正在开发一台资源少得多的机器,我的脚本完美运行(尽管速度很慢)。我从未遇到过这些错误和腐败。但是当我在新机器上运行完全相同的脚本时,我开始收到此错误。我无法打开数据库。我有备份,但这种情况经常发生,因为自从搬到新机器后我没有在分析方面取得任何进展。
Error in sqliteNewConnection(drv, ...) :
RS-DBI driver: (could not connect to dbname:
unable to open database file
)
Calls: insertLinks ... .valueClassTest -> is -> is -> sqliteNewConnection -> .Call
In addition: Warning message:
In mclapply(idx, function(idx1) { :
all scheduled cores encountered errors in user code
Execution halted
我执行的每个插入(一次1,000 - 10,000条记录)都封装在一个transcation中。以下是导致此特定错误的代码。
insertLinks <- function(b) {
con <- dbConnect(SQLite(), dbpro)
sql <- 'insert into link (emailid, md5, field, email, domain, company) values (?, ?, ?, ?, ?, ?)'
dbBeginTransaction(con)
dbGetPreparedQuery(con, sql, bind.data = b)
dbCommit(con)
dbDisconnect(con)
}
运行.log标准输出并尝试从SQLite提示符
中打开数据库时出错(14) cannot open file at line 29016 of [27392118af]
(14) os_unix.c:29016: (2) open((unreachable)/databaseFile.db)