Nexus OrientDB數據庫變為只讀 storage is switched to 'read only' mode


錯誤消息 :

2021-01-15 16:23:06,604+0800 ERROR [event-6-thread-1396 <command>sql.select from browse_node where asset_id=:asset_id limit 1</command>] yw com.orientechnologies.orient.core.storage.cache.local.OWOWCache - $ANSI{grean {db=security}}checksum verification failed for page '2' of 'browse_node_3.pcl'.
2021-01-15 16:23:06,627+0800 WARN  [qtp1067566931-4517] yw org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: PUT /repository/maven-deploy/org/bouncycastle/bcprov-jdk15on/1.64/bcprov-jdk15on-1.64.jar.md5 com.orientechnologies.orient.core.exception.OPageIsBrokenException: Following files and pages are detected to be broken ['browse_node_3.pc]' :2;], storage is switched to 'read only' mode. Any modifycation operations are prohibited. To restore database and make it fully operational you may export and import database to and from JSON.
        DB name="security"
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.CheckLowDiskSpaceRequestsAndReadOnlyConditions(OAbstractpaginatedStorage.java:5144)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.commit(OAbstractPaginatedStorage.java:1729)
        at com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:541)
        at com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:99)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2908)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2870)
        at org.sonatype.nexus.repository.storage.StorageTxImpl.commit(StorageTxImpl.java:179)
        ...

解決步驟:

  • 停止nexus進程
    ./nexus stop

  • 備份變成只讀模式的數據庫 ,我這里是 security 數據庫
    cp -rv /opt/nexus/sonatype-work/nexus3/db/security /backup/

  • 運行OrientDB 數據庫客戶端
    java -jar /opt/nexus-3.12.1-01/lib/support/nexus-orient-console.jar

  • 連接出錯數據庫
    orientdb> connect PLOCAL:/opt/sonatype-work/nexus3/db/security admin admin

  • 導出數據庫
    orientdb {db=security}> EXPORT DATABASE /backup/orientdb-security.export

  • 斷開與數據庫security 的連接
    orientdb {db=security}> DISCONNECT

  • 刪除出問題的庫
    orientdb> DROP DATABASE PLOCAL:/opt/sonatype-work/nexus3/db/security admin admin

  • 重新創建出問題的庫
    orientdb> CREATE DATABASE PLOCAL:/opt/sonatype-work/nexus3/db/security admin admin

  • 導入之前的備份
    orientdb {db=security}> IMPORT DATABASE /backup/orientdb-security.export.gz

  • 關閉數據庫連接
    orientdb {db=security}> DISCONNECT

  • 退出數據庫客戶端
    orientdb> EXIT


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM