sqlite3的通过JDBC INTEGRITY_CHECK通过说数据库映像格式不正确

问题描述 投票:0回答:1

我有一个是通过JDBC抛出这个错误时,我可以是一个16GB的sqlite3的数据库:

[SQLException: [SQLITE_CORRUPT]  The database disk image is malformed (database disk image is malformed)]

play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[SQLException: [SQLITE_CORRUPT]  The database disk image is malformed (database disk image is malformed)]]
    at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:293)
    at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:220)
    at play.api.GlobalSettings$class.onError(GlobalSettings.scala:160)
    at play.api.DefaultGlobal$.onError(GlobalSettings.scala:188)
    at play.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:100)
    at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:100)
    at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:99)
    at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:346)
    at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:345)
    at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
Caused by: java.sql.SQLException: [SQLITE_CORRUPT]  The database disk image is malformed (database disk image is malformed)
    at org.sqlite.DB.newSQLException(DB.java:383)
    at org.sqlite.DB.newSQLException(DB.java:387)
    at org.sqlite.DB.throwex(DB.java:374)
    at org.sqlite.NestedDB.prepare(NestedDB.java:134)
    at org.sqlite.DB.prepare(DB.java:123)
    at org.sqlite.PrepStmt.<init>(PrepStmt.java:42)
    at org.sqlite.Conn.prepareStatement(Conn.java:404)
    at org.sqlite.Conn.prepareStatement(Conn.java:399)
    at org.sqlite.Conn.prepareStatement(Conn.java:383)
    at slick.jdbc.JdbcBackend$SessionDef$class.prepareStatement(JdbcBackend.scala:252)

我用sqlite3的命令行实用程序检查数据库,并没有问题:

sqlite> pragma integrity_check;
ok
sqlite> 

我可以因为异常的JDBC精细与sqlite3的命令行实用程序但不进行查询。

我还有其他8个数据库(所有已创建使用CSV装载机在命令行实用程序的方法相同)是〜1Gb的每个并没有问题,使用JDBC访问它们(被那些巧舌如簧的称呼)..

我试图倾销与数据库

echo '.dump' | sqlite3 titleRelV4.db | sqlite3 titleRelV4_COPY.db

但这并不能帮助所有..我很困惑。是的16Gb太大SQLite数据库?还有什么我可以做什么?

编辑。该数据库是工作在Linux上。看起来像一个苹果特定错误。

scala jdbc sqlite slick
1个回答
0
投票

我关sqlitestudio当我运行使用了有问题的SQLite数据库的Java应用程序,我不再有任何错误消息。所有我认为的原因是数据库不再接受连接或无法对其进行管理,因此,如果有多个同时访问,您可以在Java中的异常“磁盘映像格式不正确(代码11)”

© www.soinside.com 2019 - 2024. All rights reserved.