sitelink1 http://www.trycatchexfinally.co.uk/posts...le-restore 
sitelink2  
sitelink3  

A서버에서 최신의 백업 데이터를 B서버로 옮기는데 [Team Foundation Server 관리 콘솔]에서 [데이터베이스 복원 마법사]를 이용하여 복원을 시도하였다.

그런데 진행도중 갑작스럽게 마법사와 관리 콘솔이 비정상 종료되어서 관리 콘솔을 다시 실행해보니 다음과 같은 오류창이 떴다. (TF246017)

 

오류한.JPG

 

구글을 검색하니 나와 같은 현상으로 고생했다는 외쿡인의 사연도 있었다.

 

오류영.png

 

MS SQL Server Management Studio 를 열어보니 다음과 같은 상태였었다.

 

2017-06-02 오후 5-31-24.jpg

 

DB가 계속 (복원 중...)

10분을 기다려도 도통 끝날 기미가 안보인다... 휴우

그래서 포기하고 "C:\Program Files\Microsoft Team Foundation Server 14.0\Tools\TfsRestore.exe" 를 이용하여 같은 데이터를 복원 시도하였다.

 

2017-06-02 오후 5-57-54.jpg

 

그랬더니 성공적으로 복원이 되었다.

DB 복원시 원래 DB명에 "_9859695652863690486F" 와 같은 시퀀스 번호 같은 시리얼이 붙는데 [SQL Server Management Studio] 에서 해당 시리얼들을 제거하여 원래 DB명으로 변경해 준다.

그러면 [Team Foundation Server 관리 콘솔] 이 성공적으로 수행되고 TFS에 접속할 수 있다.

하지만 브라우저로 TFS에 접속하니 다음과 같은 에러가 났다.

 

TF30046: �몄뒪�댁뒪 �뺣낫媛� �쇱튂�섏� �딆뒿�덈떎. Team Foundation�먮뒗 b35c94ac-2270-4cde-89b8-c659fa6a950b��(媛�) �꾩슂�쒕뜲 李얠쓣 �� �놁뒿�덈떎. Team Foundation Server 愿�由ъ옄�먭쾶 臾몄쓽�섏떗�쒖삤.

 

도무지 알아먹지도 못할 에러메세지에 그나마 알 수 있는 힌트는 TF30046 이라는거...

혹시나 데이터베이스 복원후 TFS를 복구하면 깨짐현상이 없어질까싶어서 [제어판]>[프로그램 및 기능]>[설치된TFS] 에서 우클릭하여 변경으로 뜨는 창에서 복구를 시도해 보았다.

똑같다;;;

 

정상적인 방법으로는 해결이 되지 않을거라 판단이 되어 예전에 TFS를 업그레이드하면서 데이터마이그레이션 하던 작업이 기억나서 기존의 TFS update3를 제거하고

TFS update1을 설치하여 DB를 복원하였다.

그리고 TFS update3로 업그레이드를 시도하였다.

허나 업그레이드 후반부에 Team Foundation Server 구성 센터 화면에서는 다음과 같은 오류화면을 보게 되었다. (tf401057)

 

2017-06-05 오후 2-20-34.jpg

 

마지막에 AT 전용 마법사라는 말에 힌트를 얻고 [구성 센터]에서 다음과 같이 [응용 프로그램 계층만]을 선택하여 설치를 계속하였다.

 

052b26bb2f459ba00bcd67b1cfef432d.JPG

 

하지만 곧 다음과 같은 오류를 또 만나게 되었다. (tf254006)

 

2017-06-05 오후 2-30-03.jpg

 

위 에러를 해결하기 위해 나는 도스 콘솔창을 열고 다음과 같은 명령어를 입력해야 했다. (TfsConfig 에 대한 참고 URL)

 

 C:\Program Files\Microsoft Team Foundation Server 14.0\Tools>TfsConfig Accounts /add /AccountType:ApplicationTier /account:administrator /SQLInstance:TOBE-Project /DatabaseName:Tfs_Configuration 

 

각고의 노력끝에 드디어 다음과 같은 성공 메세지를 볼 수 있었다.

 

2017-06-05 오후 2-57-55.jpg

 

그리고 다음과 같이 깨끗한(?) 로그인 화면을 볼 수 있었다.

 

2017-06-05 오후 2-59-44.jpg

 

추가적으로 마지막으로 성공한 방식은 TFS 버전 업그레이드를 통한 데이터 마이그레이션을 응용한 것이기 때문에 필수적으로 다음과 같은 명령어로 SQL instance명 설정과 SID매핑 작업을 해줘야한다.

 

 C:\Program Files\Microsoft Team Foundation Server 14.0\Tools>tfsconfig registerDB /sqlinstance:TOBE-Project /databasename:Tfs_Configuration 
 C:\Program Files\Microsoft Team Foundation Server 14.0\Tools>tfsconfig identities /change /fromdomain:TOBE-Project /todomain:TOBE-Project 

 

마지막으로 브라우저에서 TFS 서버 관리에 들어가서 컬렉션, 팀프로젝트에 구성원을 추가해주면 복원작업은 끝이 난다.

구성원 목록은 복원시 자동으로 추가되지는 않는것 같다.

 

끝.

 

 

 

 

 

※ 추가로 원래 시도하려던 복원 절차는 다음과 같았다.

  1. 백업데이터중 가장 최신 백업 데이터를 복원할 서버로 파일 복사한다.
  2. 복사한 백업 데이터를 “네트워크 파일 및 폴더 공유” 로 공유한다.
  3. 공유할 사람에 Everyone을 추가하고 권한을 읽기/쓰기로 준다. (복원이 끝나면 공유폴더는 삭제해야 보안 위험이 없다)
  4. SQL Server를 실행하여 TFS에서 사용하는 Tfs_DefaultCollection, Tfs_Configuration 데이터베이스에 마우스 우클릭하여 [태스크]>[분리]를 실행하여 데이터베이스를 분리하여야 한다.
  5. "C:\Program Files\Microsoft Team Foundation Server 14.0\Tools\TfsRestore.exe"을 마우스 우클릭하여 관리자 권한으로 실행
  6. 대상 SQL Server 인스턴스가 올바른지 확인하고 [연결]버튼 클릭
  7. 탐색기에서 복사한 백업 데이터를 선택하고 파일 이름에 DB목록이 출력되면 모두 체크후 하단의 [기존 데이터베이스 덮어쓰기] 체크박스를 체크하고 [복원] 버튼을 클릭한다.
  8. 복원이 성공적으로 완료되면 [SQL Server Management Studio]에서 복원한 DB명에 붙은"_9859695652863690486F" 식의 시퀀스 문자열을 지워서 “Tfs_Configuration”, “Tfs_DefaultCollection”의 이름으로 변경한다.
  9. Team Foundation Server 2015 update 3 설치 디스크에서 Tfs2015.3.exe 파일을 실행후 “복구” 버튼으로 복구 수행
  10. 복구가 완료하면 tfsconfig 명령어를 수행하기 위해 도스 prompt에서 "Drive:\%programfiles%\Microsoft Team Foundation Server 14.0\Tools" 경로로 이동한다.
  11. CMD 명령어 실행(Team Foundation의 서비스 계정을 추가) => TfsConfig Accounts /add /AccountType:ApplicationTier /account:Administrator /SQLInstance:[도메인명] /DatabaseName:TFS_Configuration
  12. CMD 명령어 실행(SQL instance명 설정) => tfsconfig registerDB /sqlinstance:[도메인명] /databasename:Tfs_Configuration
  13. CMD 명령어 실행(SID매핑) => tfsconfig identities /change /fromdomain:[구 도메인명] /todomain:[신 도메인명]
  14. http://[도메인]:9090/tfs 에 접속하여 administrator로 로그인후 오른쪽 상단의 [팀관리] 버튼을 클릭한다. 
  15. [제어판]>"팀 프로젝트"의 [보안]탭을 선택하여 이동후 각 팀별 구성원을 등록해준다.
  16. 참고로 브랜치 권한은 [버전 제어]탭에서 사용자를 추가후 오른쪽 화면에서 [분기 관리]를 허용하면 된다.
  17. 마지막으로 복원에 사용했던 백업 데이터를 삭제한다.

 

 

 

※ 참고로 또다른 복원 방법

 

1. [Team Foundation Server 관리 콘솔 > 응용 프로그램 계층 > 예약된 백업 > 데이터베이스 복원]을 통한 복원하는 방법

    -> https://msdn.microsoft.com/ko-kr/library/ms404869.aspx#RestoreDB

 

2. SQL Server에서 제공하는 도구를 사용하여 Team Foundation Server의 데이터를 복원하는 방법

    -> https://msdn.microsoft.com/ko-kr/library/hh529829(v=vs.110).aspx