Corupcja repozytorium SVN - svnrepo/db/prąd
- 2467
- 493
- Laura Zygmunt
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