断电后无法打开(本地DynamoDB)数据库文件

时间:2017-08-23 23:24:51

标签: amazon-web-services amazon-dynamodb

记录: 我能够读取/写入我的本地DynamoDB环境。 我按照AWS Documents下载和运行DynamoDB  [http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html]

问题: 我的电脑意外停电了。 现在,我在启动DynamoDB进程后出现以下错误

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb

错误消息

Aug 23, 2017 3:52:42 PM com.almworks.sqlite4java.Internal log
WARNING: [sqlite] SQLiteQueue[shared-local-instance.db]: stopped abnormally, reincarnating in 3000ms
Aug 23, 2017 3:52:45 PM com.almworks.sqlite4java.Internal log
WARNING: [sqlite] cannot open DB[2]: com.almworks.sqlite4java.SQLiteException: [14] unable to open database file
Aug 23, 2017 3:52:45 PM com.almworks.sqlite4java.Internal log
SEVERE: [sqlite] SQLiteQueue[shared-local-instance.db]: error running job queue
com.almworks.sqlite4java.SQLiteException: [14] unable to open database file
    at com.almworks.sqlite4java.SQLiteConnection.open0(SQLiteConnection.java:1480)
    at com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:282)
    at com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:293)
    at com.almworks.sqlite4java.SQLiteQueue.openConnection(SQLiteQueue.java:464)
    at com.almworks.sqlite4java.SQLiteQueue.queueFunction(SQLiteQueue.java:641)
    at com.almworks.sqlite4java.SQLiteQueue.runQueue(SQLiteQueue.java:623)
    at com.almworks.sqlite4java.SQLiteQueue.access$000(SQLiteQueue.java:77)
    at com.almworks.sqlite4java.SQLiteQueue$1.run(SQLiteQueue.java:205)
    at java.lang.Thread.run(Thread.java:748)

尝试: 这篇文章最接近我的错误,但它不涉及DynamoDB,而是涉及一些云日志等。 [https://forums.aws.amazon.com/thread.jspa?threadID=165134]

有关如何纠正数据库文件的任何想法?

5 个答案:

答案 0 :(得分:0)

快速解决方案是重新安装所有内容。

rm -rf <unzipped DynamoDB Local folder>

然后,返回安装说明。 http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html

我不熟悉jar文件。用新的jar文件替换它们就像重新安装一样?

答案 1 :(得分:0)

可能是权限问题。尝试更新权限。

sudo chown user dynamodb -R
chmod 775 -R dynamodb

答案 2 :(得分:0)

我在Windows上遇到了与Docker类似的错误,解决方案是向“系统”授予Docker Volume的所有权限,而Docker Volume可以保留数据库数据

答案 3 :(得分:0)

我在将 MacOS 升级到 Catalina 时遇到此错误。

我通过这些说明再次安装了 DynamoDBLocal - https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html

然后它就起作用了。

如果您需要复制旧数据,只需将现有的“shared-local-instance.db”文件复制到新安装中,它就会像以前一样工作。

这很可能是由于 Catalina 被放入后文件访问的某些权限更改造成的。

答案 4 :(得分:0)

如果您在 Windowsstart the command prompt in administrator mode,然后再次运行您的命令。

<块引用>

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb

它对我有用。