Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.

증상

Microsoft SQL Server 2012의 WITH REPLACE 옵션을 사용 하 여 백업에서 데이터베이스를 복원 하는 경우 백업 데이터베이스에서 제공 되는 복원 된 데이터베이스의 실제 파일 이름이 기존 데이터베이스의 실제 파일 이름을 덮어쓸 수 있습니다. 예를 들어 다음과 같은 시나리오를 고려해 보겠습니다.

  • SQL Server InstanceA 및 Instancea 인스턴스가 두 개 있습니다.

  • SQL Server의 각 인스턴스에서 같은 이름인 SQLDB를 사용 하는 데이터베이스를 사용 하 고 있습니다.

  • InstanceA에서 SQLDB 데이터베이스 데이터 파일 이름은 DB1_InstanceA .mdf와 로그 파일 이름은 .ldf DB1_InstanceA입니다.

  • InstanceB에서는 SQLDB 데이터베이스 데이터 파일 이름이 DB1_InstanceB .mdf와 로그 파일 이름이 .ldf DB1_InstanceB 됩니다.

  • Restore 명령의 WITH REPLACE 옵션을 사용 하 여 INSTANCEA의 sqldb 데이터베이스에서 sqldb 데이터베이스의 백업을 복원 하려고 합니다.

이 시나리오에서는 InstanceB의 SQLDB의 실제 파일 이름이 DB1_InstanceA .mdf 및 DB1_InstanceA로 변경 됩니다. 

원인

이 동작은 SQL Server 2012에서 의도적으로 설계 되었습니다.

해결 방법

이 문제를 해결 하려면 복원 명령의 WITH REPLACE 옵션을 사용 하지 마세요. 대신 WITH MOVE 옵션을 사용 합니다.참고 WITH MOVE 옵션은 실제 파일 이름을 변경 하는 옵션을 제공 합니다.

추가 정보

WITH MOVE 옵션은 복원 명령을 처음 사용할 때만 필요 합니다. 백업에서 데이터베이스를 복원 하려고 하면 SQL Server가 데이터베이스의 복구 포크 값을 비교 합니다. 그런 다음 백업 집합은 해당 값이 일치 하는지 여부에 따라 다음과 같은 작업을 수행 합니다.

  • 일치 하는 항목이 있는 경우 백업 집합은 대상 데이터베이스의 파일 이름을 계속 사용 합니다.

  • 값이 다르면 백업 집합에서 백업 집합의 이름을 사용 하 여 대상 데이터베이스의 실제 파일 이름을 바꿉니다.

복원 명령과 함께 WITH MOVE 옵션을 사용 하는 경우 다음 작업이 수행 됩니다.

  1. 대상 서버에서 새 복구 포크를 만듭니다.

  2. 다음 복원 작업에서 백업 세트의 복구 포크 Id가 대상 서버의 Id와 일치 합니다.

  3. WITH REPLACE 옵션과 함께 사용 되는 복원 명령은 대상 서버의 실제 이름을 유지 합니다.

복원 명령에 대 한 자세한 내용은 복원 (transact-sql) 을 참조 하세요.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×