我有一个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),我可以删除该文件吗?有没有其他方法可以改变它的读/写模式?谢谢!
我得到SQL错误的原因是由root拥有的锁文件.我发现它在.artifactory/derby目录中,它被调用db.lck,并删除它有神器再次启动就好了.
我们在Tomcat下运行artifactory,而.artifactory目录在启动Tomcat的用户的主目录中.
我清理了磁盘,但没有重新启动连接到 derby 的 java 进程。我杀死了该进程并重新启动它,derby 处于读/写模式。
| 归档时间: |
|
| 查看次数: |
10461 次 |
| 最近记录: |