2013-03-21 5 views
4

나는 엔터 프라이즈 내 SVN 서버에 큰 저장소가 작동합니다. 매일 SGBD의 불안정성이나 파열 여부를 확인하기 위해이 저장소의 무결성을 확인해야합니다.SVNAdmin 최적화 SVN에서

내 저장소의 무결성을 확인하기 위해 프롬프트 명령 줄 "svnadmin path_to_my_repository"를 사용하고 있습니다.

문제는 다음과 같습니다. 내 저장소가 얼마나 큰지 (약 23GB와 28.029 개정),이 작업을 완료하기 전에 많은 시간이 필요합니다.

질문 :이 작업을 최적화하는 것이 실제로 취하는 것보다 시간이 덜 걸리는 이유는 무엇입니까? 또는 적은 시간으로 저장소의 무결성을 검증하는 데 사용할 수있는 다른 방법이 있습니까?

일부 추가 정보 :

  • 설치되어있는 SVN의 저장소 인 OS : 윈도우 서버 2008
  • 난 내 저장소를 저장하는 데 사용하고있어 SVN 서버는 다음과 같습니다 VisualSVN 서버 관리자 2.5. 7
  • "svnadmin path_to_my_repository"명령은 실제로 약 18 ~ 24 시간이 걸립니다.

답변

0

내가 찾은 가장 빠른 해결책은 svn 명령 (svnadmin path_to_my_repository)의 호출을 병렬 처리하는 코드입니다. 그런 다음 각 스레드에 대해 SVNServer의 다른 저장소에 대해 "verify"명령을 호출했습니다. 이것은 내가 찾고있는 솔루션이 아니지만, 이것으로 성능을 약간 얻었습니다. 누군가 svnadmin 명령을 통해서만이 작업을 최적화 할 수있는 해결책을 알고 있다면 알려주십시오. 감사.

+0

이것은 서버에서 많은 HDD 액세스를 유발하므로 대부분의 경우 글로벌 확인 속도를 늦출 수 있습니까? 최소한 병렬 스레드의 양을 신중하게 제한하는 것이 유용합니다. – AFract

2

"svnadmin verify"명령에는 몇 가지 다른 인수가 사용됩니다. 그 중 하나는 "--revision"입니다. 따라서 각 저장소에 대해해야 할 일은 마지막 N 일 (매일 실행하는 경우 지난 7 일)에 수정 된 수정 목록을 가져와 확인하는 방법을 찾아야합니다.

List of files changed since a certain date using SVN

당신은 여전히 ​​전체 정기적으로 전체 저장소에 대해 "svnadmin 검증"해야한다 (월? 주?). 전체 검사의 빈도는 문제가 발생할 경우 백업 세트에서 손상된 개정을 끌어낼 수 있어야합니다.

"svnadmin hotcopy"를 사용하고 해당 핫 카피를 두 번째 스핀들 세트 (또는 두 번째 서버)로 푸시하면 핫 카피의 유효성을 검사 할 수 있습니다. 어느 것이 기본 디스크의 부하를 제거합니다.

+0

이봐, 괜찮아! 어쩌면 내 제안을 결합하여 내 작업을 더 최적화 할 수 있습니다. 감사. – kamusett