Corupcja repozytorium SVN - svnrepo/db/prąd

Corupcja repozytorium SVN - svnrepo/db/prąd

Ostatnio jedno z repozytorium na moim serwerze SVN zostało uszkodzone. Po sprawdzeniu stwierdziliśmy, że problem z svnrepo/db/bieżącym plikiem został uszkodzony z powodu złych sektorów w moim hardisk. Próbowałem sprawdzić to repozytorium, ale nie udało mi się.

Jak odzyskać uszkodzone repozytorium SVN -

Przed uruchomieniem powinniśmy wiedzieć o tym pliku. Ten plik zawiera najnowszą wersję repozytorium. Na każdym serwerze zatwierdzenia SVN zwiększ tę wartość o +1 i zachowaj ją na ostatnią wersję.

Teraz, jeśli pamiętasz wersję swojego repozytorium, po prostu odtworz nowy plik i umieść ten numer w tym pliku. Ale jeśli tego nie pamiętasz, to problem zaczyna się, ale nie martw się. Wykonaj poniżej kroki, aby znaleźć numer wersji.

  • Wprowadź dowolny numer -

    Wprowadź numer i staraj się utrzymać go wyższą niż oczekiwano ostatnią wersję. W moim przypadku umieściłem 99999 w pliku DB/.

    [chroniony e -mail]: ~ $ cat db/bieżący 99999 
  • Repozytorium kopii zapasowych -

    Teraz użyj następującego polecenia, aby wykonać kopię zapasową tego repozytorium. Po uruchomieniu następującego polecenia może zakończyć się błędem jak poniżej.

    [e -mail chroniony]: ~ $ svnadmin zrzut/ścieżka/do/repo>/backup/myrepo.zrzucona * zrzucona wersja 0. * Zrzucona wersja 1… * Wersja porzucona 576. * Zrzucona wersja 577. * Porzucona wersja 578. Svnadmin: E160006: Brak takiej wersji 579  

    Zgodnie z wynikami, mamy, że nasze repozytorium ma 578 poprawki. Możesz po prostu umieścić tę wartość w swoim pliku DB/. Ale jeśli jest jeszcze jakieś pliki, kontynuuj następujące kroki.

  • Ponownie repozytorium kopii zapasowych -

    Teraz mamy ostatni numer rewizji, więc określ poprawę od 0 do ostatniej wersji do tworzenia kopii zapasowych.

    [e -mail chroniony]: ~ $ svnadmin zrzut -r 0: 578/ścieżka/do/repo>/backup/myrepo.wysypisko 
  • Odnamię na nowe repozytorium -

    Teraz usuń stare uszkodzone repozytorium i utwórz nowe o tej samej nazwie lub innej nazwie.

    [chroniony e -mail]: ~ $ mv/ścieżka/do/repo/kopia zapasowa/[e -mail chroniony]: ~ $ svnadmin 
  • Repozytorium ładowania z kopii zapasowej -

    Teraz ładuj dane repozytorium z pliku kopii zapasowej za pomocą następującego polecenia.

    [e -mail chroniony]: ~ $ svnadmin obciążenie/ścieżka/do/repo < /backup/myrepo.dump