Azure SQL Database Bacpac 로컬 복원


130

Azure 관리 콘솔에서 "내보내기"옵션을 사용하여 Azure SQL 데이터베이스의 BACPAC 백업을 만들었습니다.

이것을 내 컴퓨터에 다운로드 한 후 로컬 SQL Server 인스턴스로 복원하는 방법에 약간의 어려움이 있습니다. DacImportExportCli 도구를 발견했지만 로컬 복원의 예를 찾을 수 없습니다.

또한 누군가가 이것을 수행하는 스크립트를 작성했다면 (스케줄 가능) 훌륭합니다.


8
이것은 SQL Server 2012 일 수 있지만 로컬 서버의 데이터베이스 폴더를 마우스 오른쪽 단추로 클릭하고 BACPAC 파일을 읽고 내 Azure 데이터베이스의 복사본을 생성하는 마법사를 시작하는 데이터 계층 응용 프로그램 가져 오기를 선택하면 SQL Server Management Studio에서 . BACPAC 파일을 로컬로 먼저 복사하지 않으려는 경우 마법사는 blob-store에 직접 연결하여 BACPAC 파일을 얻을 수도 있습니다.
dumbledad

당신은 이것을 알아 낸 적이 있습니까?
Nate

3
@dumbledad Data-tier 응용 프로그램을 가져 오는 것은 SQL 2012 SSMS라고 생각합니다. 2008R2는 DACPAC를 내보낼 수있는 기능 만 가지고 있으며 가져 오기 옵션을 볼 수 없습니다.
jamiebarrow

답변:


179

이 작업은 SQL Server Management Studio 2012를 통해 간단히 수행 할 수 있습니다.

  1. 연결> 데이터베이스 노드를 마우스 오른쪽 단추로 클릭 하고 " 데이터 계층 애플리케이션 가져 오기 ... "를 선택하십시오 .
  2. 소개 단계에서 " 다음 "을 선택하십시오 .
  3. 여기에 이미지 설명을 입력하십시오
  4. 백업이 유지되는 저장소 계정을 찾아 보거나 연결합니다.

2
이것은 완벽 해요. RedGate 도구는 비정상적 일 수 있습니다. MS 지원 옵션을 보게되어 기쁩니다.
gilly3

2
sql express 2012에서 작동합니까? 다음과 같은 오류 메시지가 나타납니다. 패키지에서 스키마 모델을로드하지 않습니다. (Microsoft.SqlServer.Dac) ------------------------------ 추가 정보 : 내부 오류. 내부 대상 플랫폼 유형 SqlAzureDatabaseSchemaProvider는 스키마 파일 버전 '2.5'를 지원하지 않습니다. (파일 : C : \ Users \ xxxxx \ Downloads \ dbname-2013-10-10-20-2.bacpac) (Microsoft.Data.Tools.Schema.Sql)
Antoine Meltzheim

@ElTone 방금 Management Studio를 사용하여 Azure Storage에서 로컬 SQL Server Express 2012 데이터베이스로 bacpac을 직접 복원했습니다. 오류가 표시되지 않았으며 데이터가있는 것 같습니다. 누군가 최신 버전의 SQL Server 데이터 도구를 설치하면 도움이되었지만 (Management Studio를 언급하지는 않음) social.msdn.microsoft.com/Forums/windowsazure/en-US/…
Juha Palomäki

@ Juha Palomäki 수정 : 최신 버전의 SSDT를 설치하면 문제가 해결되었습니다. 모든 것이 지금 더 좋습니다.
Antoine Meltzheim

4
Management Studio에서 가져올 수있는 큰 bacpac 파일 크기에는 약간의 제한이있는 것 같습니다. 당신이에 OutOfMemory 예외를 공격하는 경우, 명령 행 도구 SqlPackage.exe 사용하는 방법에 벼룩의 답변을 확인
주하 Palomäki

52

SQL Azure 데이터베이스를 내 보낸 다음 로컬 SQL 2008 R2 서버로 가져와야했습니다 (참고 : Visual Studio 2010도 사용하고 있습니다). 마이크로 소프트는이 작업을 고통스러운 작업으로 만들기 위해 확실히 나섰지 만 다음과 같은 방법으로 할 수있었습니다.

  1. 이 링크 ( http://msdn.microsoft.com/en-us/jj650014)로 이동 하여 Visual Studio 2010 용 SQL Server 데이터 도구를 설치하십시오.

  2. 로컬 드라이브에 설치됩니다. 필자의 경우 여기에 C : \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DAC \ bin이 있습니다.

  3. 커맨드 라인 또는 powershell을 통해이를 찾아보십시오

  4. SqlPackage.exe를 실행하려고합니다.

  5. SqlPackage.exe에 대한 모든 매개 변수 옵션 목록을 보려면이 링크를 엽니 다 ( http://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx )

  6. .bacpac 파일을 로컬 SQL 2008 R2 서버로 가져 오기 위해 실행해야하는 명령 줄은 다음과 같습니다.

    . \ SqlPackage.exe / a : 가져 오기 /sf:C:\mydatabasefile.bacpac / tdn : NorthWind / tsn : BINGBONG

/tdnbacpac 파일을 복원 할 데이터베이스의 이름입니다. /tsnSQL 서버의 이름입니다.

# 5의 링크에서 이러한 모든 매개 변수 설명을 볼 수 있습니다.


SSMS 2012가 설치되어 있으면 훨씬 쉽게 수행 할 수 있습니다. 2008 R2 서버에서도 위의 @Josiah에서 설명한대로 마법사를 사용할 수 있습니다.
DanO

2
나는이 솔루션을 검색하는 데 많은 시간을 보냈으며 그 동안 전체 관리 스튜디오 2014를 다운로드 할 수있었습니다.
산토스

대상 데이터베이스를 완전히 삭제할 때까지 SqlPackage가 '데이터베이스 업데이트'단계에 매달 렸습니다.
michael_hook

10

클라이언트 측 도구를 사용하여 BACPAC를 복원 할 수 있습니다. 비디오는 다음과 같습니다.

http://dacguy.wordpress.com/2011/09/09/importexport-services/

도구는 여기에서 사용할 수 있습니다.

http://sqldacexamples.codeplex.com/documentation


이 도구는 bacpac을 로컬 데이터베이스로 가져 오는 것을 지원합니다. 예를 들어 Windows Auth를 사용하여 bacpac를 데이터베이스로 가져 오면 "DacCli -S myserver -E -D nw_restored -F northwind.bacpac -I"와 같이 표시됩니다. 그러나 필요한 어셈블리의 코드 플렉스 목록이 오래되었습니다. 링크가 작동하지 않으므로 도구가 실행되지 않습니다 (일부 SQL 2012 CTP 구성 요소에 대한 필수 구성 요소가 있음).
David Airapetyan 2016 년

내 컴퓨터에 모든 구성 요소가 설치되어 있으므로 DacCli를 사용하여 bacpac를 가져 오려고 시도했습니다. 작동했습니다 (이전 주석의 명령 줄 참조). 100MB bacpac에 대해 약 20 분이 걸렸습니다.
David Airapetyan 2016 년

7

내기도가 응답 된 것 같습니다. Redgate는 오늘 무료로 SQL Azure 백업 도구를 시작했습니다-http: //www.red-gate.com/products/dba/sql-azure-backup/download


몇 가지 문제 : 1. SQL Azure Backup의 활성 개발이 현재 중지되었습니다 (이 메모는 최신 버전의 도구를 실행할 때 표시됨) 2. Azure에서 로컬 SQL로 직접 백업 할 때 bacpac는 대신 자체 개발 한 스키마 / 데이터 복사본을 구현합니다. 내 경험상, 그것은 매우 느렸다. 이전 지점에 구축하기 3. 메커니즘은 버그가 - 나는 여러 테이블이 도구는 고유 키 감지 할 수 있기 때문에 전송하는 데 실패 했어
데이비드 Airapetyan

2
이 답변은 업데이트되거나 더 이상 허용되는 답변이 아닙니다. 연결된 도구는 "클라우드"솔루션이되었으며 로컬 백업을 지원하지 않습니다.
Timothy Strimple


5

SSMS 2012를 사용하는 경우 개체 탐색기에서 서버 아래의 데이터베이스 폴더를 마우스 오른쪽 단추로 클릭하고 "데이터 계층 응용 프로그램 가져 오기 ..."를 선택하는 것만 큼 쉽습니다.

조심해야 할 길이 하나 있습니다. 2013 년 3 월 26 일 (자기 해결 방법을 찾아야 할 때)부터 Azure에서 .bacpac를 내 보내면 .zip 파일로 다운로드됩니다. 하지 .bacpac 파일, 오직 하나 * .bacpac 또는 표시됩니다 가져 오기 마법사에서 찾아보기 버튼에 의해 열린 파일 대화 상자 . 파일 필터에서 .zip이 지원되지 않음을 나타냅니다. 그러나, 당신은에 필터를 변경하는 경우 . 다운로드 한 .zip을 선택하고 다음을 클릭하면 마법사가 정상적으로 진행됩니다.


2
이것이 정답입니다. 이제 독립 실행 형 SSMS 2016 버전을 설치할 수 있으며 이러한 모든 기능을 제공합니다.
Aaron

3

다음은 한 번에 여러 개의 bacpac 파일을 복원하는 스크립트입니다. 대량 복구 bacpac 파일 로컬

cd [FOLDERPATH]
$goodlist = dir
cd 'C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin'
foreach($i in $goodlist){ $name = $i.Name; $namer = $i.Name.Substring(0, $i.Name.length - 7); .\SqlPackage.exe /a:Import /sf:[FOLDERPATH]\$name /tdn:$namer /tsn:[SERVERNAME] }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.