環境
Adobe Experience Manager 6.x
問題/症狀
已觀察 SegmentNotFound
記錄中出現例外。 範例:
*錯誤* FelixStartLevel org.apache.sling.event org.apache.sling.event.impl.jobs.queues.QueueManager(1431)啟動方法擲回例外狀況(org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException:區段da5bcb95-d00a-4c04-a9d9-0f10f2b14e5e找不到)
**ERROR* pool-6-thread-3 org.apache.sling.commons.scheduler.impl.QuartzScheduler作業執行期間發生例外狀況org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate@1dc173f9 :找不到區段e669f30b-e886-4b7a-b161-56432601ec6b
org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException:找不到區段e669f30b-e886-4b7a-b161-56432601ec6b*
對儲存庫運行一致性檢查,找出最後一個正確修訂的運行狀況,並回復到該狀態。 請依照下列步驟操作:
從 https://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run 下載和您的 Oak 核心版本相符的 Oak-run 版本
若要將損毀的區段存放區還原為最新的正常狀態,請變更至CQ的工作目錄(包含crx-quickstartfolder的目錄),並備份中的所有檔案。/crx-quickstart/repository/segmentstore/。
執行一致性檢查,
java -Xmx6000m -jar oak-run-*.jar check --bin=-1 /path/to/crx-quickstart/repository/segmentstore
這會向後搜尋修訂版本,直到找到一致的版本為止:
尋找如下所示的訊息:
主要資訊o.a.j.o.p.s.f.t.ConsistencyChecker — 找到最新的正確修訂afdb922d-ba53-4a1b-aa1b-1cb044b535cf:234880
透過編輯將存放庫還原到此版本。/crx-quickstart/repository/segmentstore/journal.log ,並刪除包含最新良好修訂的行之後的所有行。
全部移除。/crx-quickstart/repository/segmentstore/*.bak檔案。
執行查核點清理以移除孤立的檢查點:
java -Xmx6000m -jar oak-run-*.jar checkpoints /path/to/crx-quickstart/repository/segmentstore rm-unreferenced
最後,壓縮儲存庫:
java -Xmx6000m -jar oak-run-*.jar compact /path/to/crx-quickstart/repository/segmentstore/
原因
由於Oak中有些較舊的問題,或存放庫有些不一致,可能會遺失區段,且存放庫可能不一致。