如何将德比改为READ / WRITE模式

时间:2014-09-09 14:29:06

标签: java derby

我有一个Derby数据库,它给了我一个只读错误。数据库工作正常,直到上周磁盘空间不足时:

Caused by: java.io.IOException: No space left on device
        at java.io.RandomAccessFile.writeBytes0(Native Method)
        at java.io.RandomAccessFile.writeBytes(RandomAccessFile.java:520)
        at java.io.RandomAccessFile.write(RandomAccessFile.java:550)
        at org.apache.derby.impl.store.raw.log.LogAccessFile.writeToLog(Unknown Source)
        at org.apache.derby.impl.store.raw.log.LogAccessFile.flushDirtyBuffers(Unknown Source)
        ... 23 more

我清理了磁盘,有80%的磁盘被释放用于德比。但是德比仍处于只读模式:

java.sql.SQLException: An SQL data change is not permitted for a read-only connection, user or database.
org.apache.derby.impl.jdbc.EmbedSQLException: An SQL data change is not permitted for a read-only connection, user or database.
org.apache.derby.iapi.error.StandardException: An SQL data change is not permitted for a read-only connection, user or database.

我发现有一个db.lck文件(文件大小为0),我可以删除该文件吗?有没有其他方法可以改变它的读/写模式? 谢谢!

2 个答案:

答案 0 :(得分:6)

我收到SQL错误的原因是root拥有的锁文件。我在.artifactory/derby目录中找到了它,它被称为db.lck,并且删除它会产生神经,以便再次启动。

我们在Tomcat下运行artifactory,而.artifactory目录在启动Tomcat的用户的主目录中。

答案 1 :(得分:1)

我清理了磁盘但是我没有重新启动连接到derby的java进程。我杀死了进程并重新启动它,derby处于读/写模式。