Åtgärda inkonsekvenser i databasen när SegmentNotFound rapporteras i AEM 6.x

Om du har inkonsekvenser i databasen (repo) när SegmentNotFound rapporterades kör du en konsekvenskontroll på rapporten, letar reda på den senaste fungerande revisionen (felfritt läge) och återgår till det.

Beskrivning description

Miljö

Adobe Experience Manager (AEM) 6.x

Problem/symtom

Undantag för SegmentNotFound har observerats i loggarna.

Exempel:

  1. *ERROR* [ FelixStartLevel] org.apache.sling.event [ org.apache.sling.event.impl.job.queues.QueueManager(1431)] Aktiveringsmetoden har genererat ett undantag (org.apache.jackrabbit.oak.plugins.segment.Segment NotFoundException: Segment da5bcb95-d00a-4c04-a9d9-0f10f2b14e5e not found)

  2. **ERROR* [ pool-6-thread-3] org.apache.sling.Commons.eduler.impl.QuartzScheduler Exception during job execution of org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate@1dc173f9 : Segment e669f30b-e886-4b7a-b161-5643 2601ec6b hittades inte

    org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segment e669f30b-e886-4b7a-b161-56432601ec6b hittades inte*

Upplösning resolution

Kör en konsekvenskontroll på rapporten och hitta den senaste fungerande ändringen (felfri status) och återgå till den.

Följ de här stegen:

  1. Hämta en version av eko-run som matchar din eke-kärnversion från https://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run

  2. Om du vill återställa ett skadat segmentlager till det senaste fungerande tillståndet ändrar du till CQ:s arbetskatalog (den som innehåller snabbstartmappen) och säkerhetskopierar alla filer i ./crx-quickstart/database/segmentstore/.

  3. Kör konsekvenskontrollen,

    java -Xmx6000m -jar oak-run-*.jar check --bin=-1 /path/to/crx-quickstart/repository/segmentstore

    Detta söker bakåt genom ändringarna tills det finns en konsekvent version:

    Leta efter ett meddelande som det nedan:

    [ main] INFO o.a.j.o.p.s.f.t.ConsistencyChecker - Den senaste goda versionen, afdb922d-ba53-4a1b-aa1b-1cb044b535cf:234880, hittades

  4. Återgå till den här versionen genom att redigera./crx-quickstart/repository/segmentstore/journal.log och ta bort alla rader efter raden som innehåller den senaste bra ändringen.

  5. Ta bort alla ./crx-quickstart/database/segmentstore/*.bak.

  6. Kör rensning av kontrollpunkter för att ta bort överblivna kontrollpunkter:

    java -Xmx6000m -jar oak-run-*.jar checkpoints /path/to/crx-quickstart/repository/segmentstore rm-unreferenced

  7. Slutligen, komprimera svaret:

    java -Xmx6000m -jar oak-run-*.jar compact /path/to/crx-quickstart/repository/segmentstore/

Orsak
På grund av vissa äldre problem i Oak eller vissa inkonsekvenser i databasen kan ett segment saknas och databasen kan vara inkonsekvent.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f