[sql-server] SQL Azure 데이터베이스를 로컬 개발 서버에 어떻게 복사합니까?
누구나 SQL Azure 데이터베이스를 개발 컴퓨터에 복사하는 방법을 알고 있습니까? 클라우드에 개발 데이터베이스를 설치하기 위해 비용을 지불하고 싶지 않지만 프로덕션 데이터를 얻는 가장 좋은 방법입니다. 프로덕션 데이터베이스를 새로운 개발 데이터베이스에 복사하지만 동일한 데이터베이스를 로컬로 만들고 싶습니다.
어떤 제안?
답변
이를 수행하는 여러 가지 방법이 있습니다.
- SSIS 사용 (SQL Server Integration Services) .
data
테이블 에서만 가져옵니다 . 열 속성, 제약 조건, 키, 인덱스, 저장 프로 시저, 트리거, 보안 설정, 사용자, 로그온 등은 전송되지 않습니다. 그러나 매우 간단한 프로세스이며 SQL Server Management Studio에서 마법사를 통해 간단하게 수행 할 수 있습니다. - SSIS와 DB 생성 스크립트의 조합 사용 . 그러면 SSIS에서 전송하지 않은 데이터와 누락 된 모든 메타 데이터가 제공됩니다. 이것은 또한 매우 간단합니다. 먼저 SSIS를 사용하여 데이터를 전송 한 다음 (아래 지침 참조) SQL Azure 데이터베이스에서 DB Create 스크립트를 생성 한 후 로컬 데이터베이스에서 재생하십시오.
- 마지막으로 SQL Azure에서 가져 오기 / 내보내기 서비스를 . 그러면 스키마 개체가있는 데이터를 BACPAC로 Azure Blob Storage에 전송합니다. Azure Storage 계정이 필요하며 Azure 웹 포털에서이 작업을 수행하십시오. 내보낼 데이터베이스를 선택할 때 Azure 웹 포털에서 “내보내기”버튼을 누르는 것만 큼 간단합니다. 단점은 수동 절차 일뿐이며 적어도 웹 페이지를 클릭 해야하는 첫 번째 부분 인 도구 또는 스크립트를 통해이를 자동화하는 방법을 모르겠습니다.
방법 # 1에 대한 수동 절차 (SSIS 사용)는 다음과 같습니다.
- SSMS (Sql Server Management Studio)에서 로컬 SQL 인스턴스에 빈 데이터베이스를 새로 만듭니다.
- 컨텍스트 메뉴에서 데이터 가져 오기를 선택하십시오 (데이터베이스-> 작업-> 데이터 가져 오기 …를 마우스 오른쪽 단추로 클릭하십시오).
- 소스의 연결 매개 변수를 입력하십시오 (SQL Azure). 공급자로 “SqlServer 용 Net Framework 데이터 공급자”를 선택하십시오.
- 기존 비어있는 로컬 데이터베이스를 대상으로 선택하십시오.
- 마법사를 따르십시오-복사하려는 테이블 데이터를 선택할 수 있습니다. 필요하지 않은 테이블은 건너 뛰도록 선택할 수 있습니다. 예를 들어 응용 프로그램 로그를 데이터베이스에 보관하면 백업에 필요하지 않을 수 있습니다.
SSIS 패키지를 작성하고 데이터를 다시 가져 오려면 언제든지 다시 실행하여이를 자동화 할 수 있습니다. SSIS를 사용하여 깨끗한 DB로만 가져올 수 있으며 이미 한 번 수행 한 후에는 로컬 데이터베이스에 대한 증분 업데이트를 수행 할 수 없습니다.
방법 # 2 (SSID 데이터와 스키마 객체)는 매우 간단합니다. 먼저 위에서 설명한 단계를 수행 한 다음 DB 생성 스크립트를 생성하십시오 (SSMS에서 데이터베이스를 클릭하고 스크립트 생성-> 데이터베이스 생성을 선택하십시오). 그런 다음 로컬 데이터베이스에서이 스크립트를 재생하십시오.
방법 # 3 은 블로그 ( http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/ )에 설명되어 있습니다 . DB 콘텐츠를 BACPAC로 Azure Blob 저장소에 전송하는 프로세스가 포함 된 비디오 클립이 있습니다. 그런 다음 파일을 로컬로 복사하여 SQL 인스턴스로 가져올 수 있습니다. BACPAC를 Data-Tier 응용 프로그램으로 가져 오는 프로세스는 http://msdn.microsoft.com/en-us/library/hh710052.aspx에 설명되어 있습니다 .
답변
Azure 데이터베이스 데이터를 로컬 데이터베이스에 복사 : 이제 SQL Server Management Studio를 사용하여 아래와 같이 할 수 있습니다.
- SQL Azure 데이터베이스에 연결하십시오.
- 개체 탐색기에서 데이터베이스를 마우스 오른쪽 단추로 클릭하십시오.
- “작업”/ “데이터베이스를 SQL Azure에 배포”옵션을 선택하십시오.
- “배포 설정”단계에서 로컬 SQL Server를 연결하고 새 데이터베이스를 작성하십시오.
“다음”/ “다음”/ “마침”
답변
dumbledad의 답변을 단순화 된 버전으로 추가하고 싶었습니다 .
- Azure SQL 데이터베이스를 Blob 저장소의 BACPAC 파일로 내 보냅니다.
- SQL Management Studio 내부에서 데이터베이스를 마우스 오른쪽 단추로 클릭하고 “데이터 계층 응용 프로그램 가져 오기”를 클릭하십시오.
- Azure Blob 저장소의 BACPAC 파일에 액세스하려면 정보를 입력하라는 메시지가 표시됩니다.
- 다음에 몇 번 치고 … 완료!
답변
SQL Server 2016 Management Studio에서는 Azure 데이터베이스를 로컬 컴퓨터로 가져 오는 프로세스가 간소화되었습니다.
가져올 데이터베이스를 마우스 오른쪽 단추로 클릭하고 태스크> 데이터 계층 애플리케이션 내보내기를 클릭 한 후 데이터베이스를 로컬 .dacpac 파일로 내보내십시오.
로컬 대상 SQL Server 인스턴스에서 데이터베이스> 데이터 계층 애플리케이션 가져 오기를 마우스 오른쪽 단추로 클릭 하고 로컬 인 후에는 데이터베이스 백업 및 복원과 같은 작업을 수행 할 수 있습니다.
답변
나는 지금 훨씬 더 쉽다고 생각합니다.
- SQL Management Studio 시작
- “데이터베이스”를 마우스 오른쪽 단추로 클릭하고 “데이터 계층 응용 프로그램 가져 오기 …”를 선택하십시오.
- 마법사는 Azure 계정에 연결하고 BACPAC 파일을 만들고 데이터베이스를 만드는 과정을 안내합니다.
또한 Sql Backup 및 FTP ( https://sqlbackupandftp.com/ )를 사용하여 보안 FTP 서버에 매일 백업을 수행합니다. 최근 BACPAC 파일을 가져와 동일한 대화 상자에서 가져와 로컬 데이터베이스를 더 빠르고 쉽게 만들 수 있습니다.
답변
Windows Azure 관리 포털에서 SQL Azure 데이터 동기화 를 확인할 수도 있습니다 . SQL Azure와 SQL Server 간의 스키마 및 데이터를 포함하여 전체 데이터베이스를 검색하고 복원 할 수 있습니다.
답변
꽤 쉽습니다. 이것은 Azure SQL 데이터베이스를 로컬 컴퓨터로 가져 오는 것과 관련하여 저에게 효과적이었습니다.
- SQL Management Studio를 열고 Azure SQL Server에 연결합니다.
- 로컬 머신으로 가져 오려는 데이터베이스를 선택하고 마우스 오른쪽 단추를 클릭 한 후 “스크립트 생성”을 선택하십시오. 지시를 따릅니다 …
그러나 스크립트뿐만 아니라 데이터도 원하는 경우 생성을 시작하기 전에 고급 옵션을 확인해야합니다. “스크립트 유형의 데이터”로 스크롤하여 ” “스키마와 데이터”… 또는 당신에게 적합한 모든 것.
멋진 SQL 스크립트 파일을 제공하여 로컬 컴퓨터에서 실행할 수 있으며 데이터베이스를 생성하고 모든 데이터로 채울 것입니다.
필자의 경우 FK 또는 다른 제약 조건이 없습니다. 또한 많은 데이터가 아닙니다.
나는 이것을 일반적으로 백업 메커니즘으로 권장하지 않습니다 …