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

Gar*_*ary 4 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
Run Code Online (Sandbox Code Playgroud)

我清理了磁盘,有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.
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*rvo 8

我得到SQL错误的原因是由root拥有的锁文件.我发现它在.artifactory/derby目录中,它被调用db.lck,并删除它有神器再次启动就好了.

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

  • 在我的情况下,它位于:`ARTIFACTORY_HOME/data/derby /` (3认同)

Gar*_*ary 1

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

  • 通过重新启动 Derby,您允许 Derby 执行事务恢复,该恢复由于磁盘空间不足的情况而被暂停。在使磁盘空间可用后重新启动 Derby 是正确的做法。 (2认同)