SVN Repository복구하고 사용시에 "svn: Found malformed header in revision file"이란 error message.
svn을 설치해서 사용하던 시스템이 심각한 오류가 발생해서 시스템에 Linux를 새로이 설치하였습니다.
다행스럽게도 svn은 별도의 disk에 있어서, 별도의 svn repository를 백업하지는 않았지만,
repository directory는 그대로 남아 있습니다.
새로이 설치한 시스템에 svn의 repository를 svnserve -i -r 를 지정해서
사용하면 일단, 서버 상태는 정상적으로 보입니다.
그런데, 리모트에 작업용 시스템에서 svn log를 해보면..
.....
.....
svn: Corrupt node-revision '2-30.0-9.r32/356955'
svn: Found malformed header in revision file
이렇게 에러 메세지가 나옵니다. svn update를 실행하면, 그냥 무한정 멈춰서있습니다.
서버 시스템에서 svnadmin으로 다음과 같이 실행하면,
svnadmin verify
* Verified revision 0.
* Verified revision 1.
* Verified revision 2.
* Verified revision 3.
svnadmin: Found malformed header in revision file
이렇게 error가 납니다.
svnadmin dump로 백업을할려고 해도 동일하게 revision 4에서 위와 동일한 에러 "Found malformed header in revision file"이라는 에러가 발생합니다.
그냥 repository directory를 통째로 가지고 있어도 복구가 안되는 건가요?
svnadmin dump 로 dump
svnadmin dump 로 dump 하신 후에 svnadmin load로 저장소를 재구축하시면 되지 않을까요?
svnadmin dump로 dump를
svnadmin dump로 dump를 해도 똑같이
svnadmin dump > repo.dmp
* Dumped revision 0.
* Dumped revision 1.
* Dumped revision 2.
* Dumped revision 3.
svnadmin: Found malformed header in revision file
이렇게 에러가 발생합니다. 현재 repository의 revision은 77까지 되있습니다.
혹시 recover 해보셨나요?
예전에 테스트로 flash 메모리에 svn 저장소를 쓸일이 있었는데 버클리 DB가 이상하게 자주 깨지는 경우가 발생했었습니다. 그외에도 잘쓰다가 깨진적도 있었구요.
이후로 아예 svn repository를 백업하는 습관이 생겼습니다.
백업 본이 있으니, 한번 테스트라도 해보세요.
복구 할수 있는 가장 최신 revision으로 돌아가는 걸로 알고 있는데, svn의 버전이 올라가면서 거의 이런 상황은 저에게 사라졌었습니다.
음.. svnadmin recover는
음.. svnadmin recover는 버클리 DB에서만 사용하는 것 아닌가요? 전 default롤 fsfs type이라서요.
svnadmin recover
Repository lock acquired.
Please wait; recovering the repository may take some time...
Recovery completed.
The latest repos revision is 77.
실행은 정상적으로 되었지만, 문제점은 해결되지 않네요..
fsfs type일때는 어떻게 해야 하죠?
아니면.. 현재 문제가 되는 revision은 제외하고, 가장 최신 revision만을 복구할 수 있는 방법은 없을까요?
svnadmin dump -r 77 > repo.dump
이렇게 복구를 시도해도 동일한 error message가 나와 버리네요..
어떻게 해야 할지 막막합니다..
댓글 달기