Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

TFS 2012 Express의 필수 보완 작업: 데이터베이스 백업

며칠 전에, 집에 있는 컴퓨터의 하드 디스크 하나가 장애가 발생했습니다. RAID 1로 묶여져 있는 하드라서 다행히 데이터 손실 없이 지나갈 수 있었는데요. 이처럼, 항상 컴퓨터 부품은 어느 때든지 손상이 발생할 수 있음을 기본으로 가정해야 한다는 것을 잊으면 안됩니다. ^^

이런 이유로, 보통 TFS Express를 로컬 소스 세이프처럼 사용하는 '노트북 사용자'라면 '백업'이 필수라고 할 수 있는데, TFS는 이런 상황에 대한 쉬운 해결책으로 "Power Tools"를 제공하고 있습니다.

그리고, 마침 "TFS 2012" 버전에 대해서도 얼마 전에 공개가 되어 소개해 드립니다. ^^

Microsoft Visual Studio Team Foundation Server 2012 Power Tools
; https://marketplace.visualstudio.com/items?itemName=TFSPowerToolsTeam.MicrosoftVisualStudioTeamFoundationServer2012Power

백업 방법에 관해서는 다음의 글에서 2010을 기준으로 설명을 하고 있지만 2012와 비교해 크게 다르지 않습니다.

TFS 2010 Power Tools + TFS Backup and Restore Hands on Lab
; http://myalmblog.com/2010/09/12/tfs-2010-power-tools-tfs-backup-and-restore-hands-on-lab/

이 프로그램을 "TFS 2012 Power Tools"를 TFS 2012 Express가 있는 컴퓨터에 설치하면 "Team Foundation Server Express Administration Console"에 "Database Backup Tools"라는 항목이 더 추가됩니다.

howto_tfs_backup_1.png

어차피 저도 백업 수단을 강구해야 하므로, 위의 글을 보면서 따라 했는데요. 백업 파일이 놓일 경로는 UNC 경로이긴 하지만, 어쨌든 형식만 맞추면 되므로 그냥 "\\[로컬컴퓨터이름]\..."와 같은 식으로 지정할 수 있어서 반드시 네트워크 컴퓨터일 필요는 없습니다.

그런데, 모든 설정을 완료한 후 "Readiness Checks Validate that Your System is Ready to Configure" 단계에서 꼭 마지막 단계의 "Permissions" 확인에서 오류가 발생했습니다.

Account [계정명] failed to create backups using path \\targetpc\tfs_backup

[Info   @02:44:15.403] +-+-+-+-+-| Verify backups can be created |+-+-+-+-+-
[Info   @02:44:15.403] Starting Node: VerifyTestBackupCreated
[Info   @02:44:15.403] NodePath : Container/Progress/VerifyTestBackupCreated
[Info   @02:44:15.407] Creating dummy database to test backup.
[Info   @02:44:22.046] Node returned: Error
[Error  @02:44:22.046] Account [계정명] failed to create backups using path \\targetpc\tfs_backup
[Info   @02:44:22.046] Completed VerifyDummyBackupCreation: Error
[Info   @02:44:22.046] -----------------------------------------------------

이와 관련해서 많은 질의/응답들이 있는데 참고하시고요.

Creating a backup in Team Foundation Server 2010 using the Power Tools
; http://blog.hinshelwood.com/creating-a-backup-in-team-foundation-server-2010-using-the-power-tools/

이벤트 로그를 살펴보니, 제 경우에 다음과 같은 오류가 눈에 띕니다.

BackupDiskFile::CreateMedia: Backup device '\\targetpc\tfs_backup\temp_20120920204415.bak' failed to create. Operating system error 5(Access is denied.).
BACKUP failed to complete the command BACKUP DATABASE temp_20120920204415. Check the backup application log for detailed messages.


조사 결과, 제 SQL 서버 프로세스 - sqlservr.exe가 "NETWORK Service" 계정으로 실행 중임을 작업관리자를 통해서 알게 되었습니다. 즉, (로컬) 공유 폴더에는 그 계정으로 권한이 없었기 때문에 이런 오류가 났던 것입니다.

해결은 일단, 공유 폴더 측에 "NETWORK Service" 계정으로 권한을 주었습니다.




백업을 했다면 복원을 해야겠지요. 최악의 경우로, 제 노트북이 망가진 걸로 가정하고 작업을 진행해 보겠습니다.

TFS Power Tools의 "Database Backup Tools" 기능을 이용해서 백업을 한 경우, 다음의 글에서 설명한 방법을 따르면 쉽게 복원이 가능합니다.

Restore the Databases
; https://docs.microsoft.com/en-us/azure/devops/server/admin/backup/tut-single-svr-restore-dbs

우선, 새롭게 운영체제를 설치한 컴퓨터에 SQL Server 2012 Express를 설치한 후, SSMS 도구를 실행해서 백업했던 모든 DB를 "Restore Database" 메뉴를 이용해서 복원합니다.

보통, bak (Full 백업) 파일과 trn (트랜잭션) 파일로 백업이 되어 있을 텐데요. SQL 서버의 DB 복원 방법을 모른다면 꼭 Restore the Databases 글에 나온 방법을 참고하시기 바랍니다. 안 그러면, 저처럼 ^^ 트랜잭션 파일을 복원할 때 다음과 같은 오류를 만나게 됩니다.

The log or differential backup cannot be restored because no files are ready to rollforward. 
; http://justgeeks.blogspot.kr/2009/03/log-or-differential-backup-cannot-be.html

일단, DB 복원만 되었으면 다음 절차는 간단합니다. TFS Express를 설치하고, "Configuration Center" 창이 뜨면 "Application-Tier Only" 옵션으로 마법사를 시작해서 설정 작업을 마무리 해주시면 됩니다.

모든 설정이 완료되고, "http://localhost:8080/tfs"로 접속하면 정상적으로 Web Access가 되는 것을 확인할 수 있습니다.

즉, Active Directory가 아니어도, 아무런 계정 문제 없이 정상적으로 백업/복원이 가능하다는 것!

참고로, 제 경우에는 TFS DB를 로컬 PC에 백업하고, 그 백업 폴더를 윈도우 8의 백업 기능에 포함시켜 두었습니다. 역시... 백업이 되어야 안심하고 컴퓨터를 사용할 수 있습니다. ^^




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 7/17/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2014-07-28 05시11분
정성태

... 46  47  48  [49]  50  51  52  53  54  55  56  57  58  59  60  ...
NoWriterDateCnt.TitleFile(s)
12746정성태7/31/202123976개발 환경 구성: 588. 네트워크 장비 환경을 시뮬레이션하는 Packet Tracer 프로그램 소개
12745정성태7/31/202116438개발 환경 구성: 587. Azure Active Directory - tenant의 관리자 계정 로그인 방법
12744정성태7/30/202116490개발 환경 구성: 586. Azure Active Directory에 연결된 App 목록을 확인하는 방법?
12743정성태7/30/202118062.NET Framework: 1083. Azure Active Directory - 외부 Token Cache 저장소를 사용하는 방법파일 다운로드1
12742정성태7/30/202115755개발 환경 구성: 585. Azure AD 인증을 위한 사용자 인증 유형
12741정성태7/29/202117462.NET Framework: 1082. Azure Active Directory - Microsoft Graph API 호출 방법파일 다운로드1
12740정성태7/29/202116059오류 유형: 747. SharePoint - InvalidOperationException 0x80131509
12739정성태7/28/202116322오류 유형: 746. Azure Active Directory - IDW10106: The 'ClientId' option must be provided.
12738정성태7/28/202117546오류 유형: 745. Azure Active Directory - Client credential flows must have a scope value with /.default suffixed to the resource identifier (application ID URI).
12737정성태7/28/202116607오류 유형: 744. Azure Active Directory - The resource principal named api://...[client_id]... was not found in the tenant
12736정성태7/28/202116905오류 유형: 743. Active Azure Directory에서 "API permissions"의 권한 설정이 "Not granted for ..."로 나오는 문제
12735정성태7/27/202115883.NET Framework: 1081. C# - Azure AD 인증을 지원하는 데스크톱 애플리케이션 예제(Windows Forms) [2]파일 다운로드1
12734정성태7/26/202132764스크립트: 20. 특정 단어로 시작하거나/끝나는 문자열을 포함/제외하는 정규 표현식 - Look-around
12733정성태7/23/202121888.NET Framework: 1081. Self-Contained/SingleFile 유형의 .NET Core/5+ 실행 파일을 임베딩한다면? [1]파일 다운로드2
12732정성태7/23/202114400오류 유형: 742. SharePoint - The super user account utilized by the cache is not configured.
12731정성태7/23/202116417개발 환경 구성: 584. Add Internal URLs 화면에서 "Save" 버튼이 비활성화 된 경우
12730정성태7/23/202118267개발 환경 구성: 583. Visual Studio Code - Go 코드에서 입력을 받는 경우
12729정성태7/22/202116314.NET Framework: 1080. xUnit 단위 테스트에 메서드/클래스 수준의 문맥 제공 - Fixture
12728정성태7/22/202116921.NET Framework: 1079. MSTestv2 단위 테스트에 메서드/클래스/어셈블리 수준의 문맥 제공
12727정성태7/21/202118023.NET Framework: 1078. C# 단위 테스트 - MSTestv2/NUnit의 Assert.Inconclusive 사용법(?) [1]
12726정성태7/21/202117495VS.NET IDE: 169. 비주얼 스튜디오 - 단위 테스트 선택 시 MSTestv2 외의 xUnit, NUnit 사용법 [1]
12725정성태7/21/202116144오류 유형: 741. Failed to find the "go" binary in either GOROOT() or PATH
12724정성태7/21/202119132개발 환경 구성: 582. 윈도우 환경에서 Visual Studio Code + Go (Zip) 개발 환경 [1]
12723정성태7/21/202115221오류 유형: 740. SharePoint - Alternate access mappings have not been configured 경고
12722정성태7/20/202115318오류 유형: 739. MSVCR110.dll이 없어 exe 실행이 안 되는 경우
12721정성태7/20/202121054오류 유형: 738. The trust relationship between this workstation and the primary domain failed. - 세 번째 이야기
... 46  47  48  [49]  50  51  52  53  54  55  56  57  58  59  60  ...