내보내기(0) 인쇄
모두 확장

Azure SQL 데이터베이스에서 데이터베이스 복사

업데이트 날짜: 2014년 6월

데이터베이스 복사 작업에서는 Microsoft Azure SQL 데이터베이스를 새 데이터베이스에 복사합니다. 같은 논리적 서버 또는 다른 논리적 서버에 복사본을 만들 수 있습니다. 복사 프로세스가 완료되면 새 데이터베이스는 원본 데이터베이스에 독립적이며 완전한 기능을 갖춘 데이터베이스입니다. 새 데이터베이스는 복사가 완료되면 원본 데이터베이스와 트랜잭션 면에서 일치합니다. 복사본의 데이터베이스 서비스 계층, 크기 및 성능은 원본 데이터베이스와 같습니다.

새 데이터베이스가 원본 데이터베이스와 동일한 서비스 계층 및 성능 수준이기 때문입니다. 각 복사본의 수는 총 데이터베이스 수에 추가되며 원본 데이터베이스와 동일한 요율로 요금이 청구됩니다. 자세한 내용은 SQL 데이터베이스 가격 정보를 참조하십시오.

항목 내용:

개요

다음 시나리오에서는 원본 데이터베이스를 새 데이터베이스로 복사해야 합니다. 이러한 시나리오에서 사용되는 메서드는 원본 및 대상 데이터베이스가 상주하는 서버, 영역 또는 구독이 동일한가 다른가에 따라 달라집니다. 이러한 메서드는 이 항목의 뒷부분에 나오는 데이터베이스를 복사하는 기타 방법 섹션에서 자세히 설명합니다.

  • 응용 프로그램 개발 및 테스트: 개발 및 테스트에 사용할 수 있는 새 데이터베이스로 프로덕션 데이터베이스를 복사합니다.

  • 응용 프로그램 업그레이드: 주요 응용 프로그램을 업데이트하기 전에 응용 프로그램 데이터베이스를 다른 이름을 사용하는 백업 데이터베이스로 복사합니다. 업그레이드 프로세스에 실패하거나 업그레이드 프로세스를 완료했으나 오류가 발생한 경우 백업 데이터베이스의 이름을 응용 프로그램 데이터베이스 이름으로 바꾸기만 하면 업그레이드 이전 버전의 데이터베이스로 전환할 수 있습니다.

  • 응용 프로그램 마이그레이션: 데이터베이스의 이동을 수반하는 응용 프로그램 마이그레이션을 수행해야 할 수도 있습니다.

note참고
복사 기능으로 만들어진 데이터베이스는 각 Azure SQL 데이터베이스 서버에 대해 Azure SQL 데이터베이스 제한인 데이터베이스 150개에 포함되어 계산됩니다. 비용 및 청구 관련 영향에 대한 내용은 Azure SQL 데이터베이스 계정 및 요금 청구를 참조하십시오.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘 [Top]

데이터베이스 복사 사용

데이터베이스 복사 기능을 사용하면 데이터베이스가 비동기적으로 복사되므로 전체 프로세스 기간 동안 계속해서 Azure SQL 데이터베이스 서버에 연결할 필요는 없습니다. 대상 서버의 master 데이터베이스에 로그인하고 AS COPY OF 절이 포함된 Transact-SQL CREATE DATABASE 문을 실행하여 데이터베이스를 복사할 수 있습니다. 그런 다음 대상 서버에서 sys.dm_database_copiessys.databases 뷰를 사용하여 복사 프로세스를 모니터링할 수 있습니다.

다른 데이터베이스 이름을 사용하여 동일한 Azure SQL 데이터베이스 서버에 데이터베이스를 복사하거나 다른 Azure SQL 데이터베이스 서버에 데이터베이스를 복사할 수 있습니다. 이 섹션에서는 이러한 방법을 둘 다 고려합니다.

동일 서버 내 복사

데이터베이스를 복사하여 동일한 Azure SQL 데이터베이스 서버에 새 데이터베이스를 만들 경우 두 데이터베이스에서 동일한 로그인을 사용할 수 있습니다. 데이터베이스를 복사하는 데 사용하는 보안 주체는 새 데이터베이스 생성 시 해당 데이터베이스의 DBO(데이터베이스 소유자)가 됩니다. 다음 그림은 동일 서버 내 복사를 보여줍니다.

동일한 SQL 데이터베이스 서버에 데이터베이스 복사

이 그림에서는 Database1A가 동일한 Azure SQL 데이터베이스서버인 Database1B의 새 데이터베이스 Server1로 복사됩니다. 데이터베이스를 복사한 로그인이 Database1B의 DBO가 됩니다. Database1A의 모든 데이터베이스 사용자, 사용 권한 및 SID(보안 식별자)가 Database1B로 복사됩니다. 두 데이터베이스의 사용자 SID가 동일하기 때문에 Server1의 로그인이 두 데이터베이스에서 동일한 사용 권한을 유지합니다.

복사가 완료되면 Database1B는 독립적이고 완전한 기능을 갖춘 데이터베이스가 됩니다. Database1B에 독립적으로 Database1A의 로그인, 사용자 및 사용 권한을 관리할 수 있습니다.

서버 간 복사

동일한 지역에 있는 다른 두 Azure SQL 데이터베이스 서버 간에 데이터베이스를 복사할 수도 있습니다. 새 데이터베이스가 다른 Azure SQL 데이터베이스에서 만들어지므로 다른 master 데이터베이스에 연결됩니다. 새 데이터베이스의 모든 사용자는 원본 데이터베이스에서 가졌던 사용 권한을 계속 유지합니다. 새 데이터베이스를 만들어 새 SID(보안 식별자)를 할당하면 데이터베이스를 복사하는 데 사용된 보안 주체가 새 데이터베이스의 DBO가 됩니다. 다음 그림은 서버 간 복사를 보여줍니다.

다른 SQL 데이터베이스 서버에 데이터베이스 복사

이 그림에서는 Database1AServer1에서 다른 Azure SQL 데이터베이스 서버인 Database2A의 새 데이터베이스 Server2로 복사됩니다. 데이터베이스를 복사한 로그인이 Database2A의 DBO가 됩니다. Database1A의 모든 데이터베이스 사용자와 사용 권한(SID 제외)이 Database2A로 복사됩니다. Server1의 로그인이 다른 Azure SQL 데이터베이스 서버에 연결되어 있고 Database2A 사용자 SID가 Database1A 사용자 SID와 다르므로 해당 로그인을 새 데이터베이스에서 사용할 수 없습니다.

Important중요
Azure SQL 데이터베이스 영역은 여러 개의 물리적 클러스터로 구성될 수 있습니다. 현재는 서로 다른 두 클러스터 간에 데이터베이스를 복사할 수 없습니다. 또한 서로 다른 두 구독 간에 데이터베이스를 복사할 수도 없습니다. 제한 사항에 대한 자세한 내용은 Restrictions을 참조하십시오.

서버 간 복사 프로세스가 완료되면 Database2A에 독립적으로 Database1A의 로그인, 사용자 및 사용 권한을 관리할 수 있습니다. DBO 로그인과 Transact-SQL ALTER USER 문을 사용하여 새 데이터베이스의 사용자를 새 Azure SQL 데이터베이스 서버의 로그인에 매핑합니다. 예를 들면 다음과 같습니다. ALTER USER userName WITH LOGIN='loginName'. 자세한 내용은 ALTER USER를 참조하십시오.

맨 위로 이동 링크와 함께 사용되는 화살표 아이콘 [Top]

데이터베이스를 복사하는 기타 방법

데이터베이스 복사 기능(DB 복사)을 사용하여 데이터베이스를 복사하는 것이 가장 간단한 방법이지만 앞에서 설명한 제한 사항을 고려하면 경우에 따라 대체 방법 중 하나를 사용해야 할 수도 있습니다. .

다음은 지원되는 옵션에 대하여 알아두어야 할 몇 가지 사항입니다.

지정 시간 복원을 사용하면 데이터베이스의 과거 버전 복사본을 만들 수 있습니다. 예를 들어 마지막 업그레이드 전으로 데이터베이스 복사본 버전을 만들어야 하는 경우입니다. 지정 시간 복원은 새 서비스 계층에서만 사용할 수 있습니다. 지정 시간 복원에 대한 자세한 내용은 Azure SQL 데이터베이스 백업 및 복원을 참조하세요.

활성 지리적 복제는 Premium 서비스 계층을 사용하는 데이터베이스에서만 사용할 수 있습니다. 복사 완료 타이밍을 제어할 수 있습니다. 워크플로에서 다른 작업과 복사 종료 시점을 면밀하게 조정해야 할 경우 사용해야 합니다. 자세한 내용은 Azure SQL 데이터베이스를 위한 활성 지리적 복제를 참조하십시오.

특정 시나리오에서 기타 옵션을 사용할 수 없는 경우 가져오기/내보내기 서비스를 고려해야 합니다. 가져오기/내보내기에 대한 자세한 내용은 방법: 데이터베이스 가져오기 및 내보내기(Azure SQL 데이터베이스)를 참조하세요.

아래 테이블에는 다른 사용 사례에 사용할 수 있는 옵션이 표시되어 있습니다.

 

사례 구독 지역 Server 지원되는 옵션

사례 A

동일

동일

동일

  • DB 복사(T-SQL, REST 또는 PowerShell)

  • 지정 시간 복원

사례 B

동일

동일

다름

  • DB 복사(T-SQL)

  • 동일한 서버로 DB 복사(T-SQL, REST 또는 PowerShell) + 내보내기/가져오기

  • 동일한 서버로 지정 시간 복원 + 내보내기/가져오기

  • 활성 지리적 복제

사례 B

동일

다름

다름

  • 동일한 서버로 DB 복사(T-SQL, REST 또는 PowerShell) + 내보내기/가져오기

  • 동일한 서버로 지정 시간 복원 + 내보내기/가져오기

  • 활성 지리적 복제

사례 C

다름

동일

다름

  • 동일한 서버로 DB 복사(T-SQL, REST 또는 PowerShell) + 내보내기/가져오기

  • 동일한 서버로 지정 시간 복원 + 내보내기/가져오기

사례 C

다름

다름

다름

  • 동일한 서버로 DB 복사(T-SQL, REST 또는 PowerShell) + 내보내기/가져오기

  • 동일한 서버로 지정 시간 복원 + 내보내기/가져오기

사용 사례 A
원본 및 대상 데이터베이스가 동일한 서버에 내에 있으면 DB 복사 또는 지정 시간 복원을 사용하는 것이 데이터베이스를 복사하는 가장 단순한 방법입니다. 앞에서 설명한 것처럼 지정 시간 복원을 사용하면 과거 어떤 시점의 데이터베이스 복사본을 만들 수 있으며 DB 복사는 현재 시간을 기준으로 데이터베이스를 복사합니다.

사용 사례 B
원본 및 대상 데이터베이스가 동일한 구독 내의 다른 서버에 있는 경우 T-SQL을 사용한 DB 복사를 통해 다른 논리 서버로 복사할 수 있습니다. 그러나 논리 서버가 다른 물리적 클러스터에 있는 경우에는 복사할 수 없습니다. 논리 서버가 동일한 클러스터에 있는지 확인하려면 두 서버에 'Ping'을 사용해 두 서버가 동일한 IP 주소를 공유하는지 확인합니다. 대상 서버가 다른 클러스터에 있는 경우 다음 단계를 수행합니다.

  1. DB 복사 또는 지정 시간 복원을 사용하여 원본과 동일한 서버에 있는 데이터베이스의 중간(준비) 복사본을 만듭니다.

  2. 복사본을 Azure BLOB 저장소의 BACPAC 파일로 내보냅니다.

  3. 2단계에서 만든 BACPAC 파일을 원하는 구독/영역/서버의 데이터베이스로 가져옵니다.

  4. 1단계에서 만든 중간(준비) 데이터베이스를 삭제합니다.

Premium 데이터베이스의 경우: 대안으로 활성 지리적 복제을 사용하여 보조 데이터베이스를 원본 데이터베이스의 복사본으로 만들도록 선택할 수 있습니다. 데이터베이스 복사본을 만들려면 다음 단계를 수행해야 합니다.

  1. 대상 서버에서 보조 데이터베이스를 만듭니다.

  2. 복제 프로세스가 catch-up 상태이면 보조 데이터베이스를 중지합니다.

  3. 새 복사본은 읽기 및 쓰기 작업이 가능한 독립적인 데이터베이스가 됩니다.

  4. 복사본의 이름이 원본 데이터베이스와 달라야 하는 경우 복사본의 이름을 바꿉니다.

사용 사례 C
원본 및 대상 데이터베이스가 다른 구독에 있는 경우 데이터베이스 영역이 동일한지 다른지에 상관없이 사용 사례 B에서 설명한 프로세스를 사용할 수 있습니다(활성 지리적 복제은 제외). 활성 지리적 복제은 다른 구독에서 작동하지는 않습니다.

다음 섹션에서는 동일하거나 다른 논리 서버로 복사할 때 DB 복사 기능이 작동하는 방법에 대해 설명합니다.

관련 태스크

참고 항목

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft