Помилка duplicate key value violates unique constraint при реплікації даних з операційної у аналітичну базу даних

При помилці error 500 при перегляді MRов в gerrit є ймовірність, що зламалася h2 база.

h2 base 1

Кроки з відновлення:

  1. Необхідно завантажити відповідний .war файл (розархівувати за допомогою unzip або jar), у директорії WEB-INF/lib буде файл програму з відновлення для бази h2-1.3.176.jar

  2. На под gerrit завантажити файл:

    kubectl cp h2-1.3.176.jar gerrit-pod-name:/var/gerrit/review_site/db
  3. Запустити програму з відновлення в директорії з базою даних:

    java -cp h2*.jar org.h2.tools.Recover
  4. Після генерації sql файлів, запустити наступні команди:

    java -cp h2-1.3.176.jar org.h2.tools.RunScript -url jdbc:h2:/var/gerrit/review_site/db/account_patch_reviews_restore -script account_patch_reviews.h2.sql
    
    rm account_patch_reviews.h2.db
    
    mv account_patch_reviews_restore.h2.db account_patch_reviews.h2.db

Для видалення кешу використувуйте поду jenkins:

ssh -p 31965 gerrit gerrit flush-caches --list

ssh -p 31965 gerrit gerrit flush-caches --cache <cache-name>
or
ssh -p 31965 gerrit gerrit flush-caches --all