데이터 계층 애플리케이션 내보내기
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance
배포된 데이터 계층 애플리케이션(DAC) 또는 데이터베이스를 내보내면 데이터베이스의 개체 정의와 테이블의 모든 데이터가 포함된 내보내기 파일이 생성됩니다. 그런 다음 내보내기 파일을 데이터베이스 엔진 다른 인스턴스 또는 Azure SQL Database로 가져올 수 있습니다. 내보내기 가져오기 작업을 결합하여 인스턴스 간에 DAC를 마이그레이션하거나, 보관 파일을 만들거나, SQL Database에 배포된 데이터베이스의 온-프레미스 복사본을 만들 수 있습니다.
필수 조건
내보내기 프로세스는 두 단계로 DAC 내보내기 파일을 빌드합니다.
내보내기는 DAC 추출이 DAC 패키지 파일에 DAC 정의를 빌드하는 것과 같은 방식으로 내보내기 파일(BACPAC 파일)에 DAC 정의를 빌드합니다. 내보낸 DAC 정의에는 현재 데이터베이스의 모든 개체가 포함됩니다. 내보내기 프로세스가 처음에 DAC에서 배포된 데이터베이스에 대해 실행되고 배포 후 데이터베이스에 직접 변경이 이루어졌다고 가정해 보겠습니다. 이 경우 내보낸 정의는 원래 DAC에 정의된 개체가 아니라 데이터베이스에 설정된 개체와 일치합니다.
내보내기에서는 데이터베이스의 모든 테이블에서 데이터를 대량 복사하고 데이터를 내보내기 파일에 통합합니다.
내보내기 프로세스에서는 DAC 버전을 1.0.0.0으로 설정하고 내보내기 파일의 DAC 설명을 빈 문자열로 설정합니다. 데이터베이스가 DAC에서 배포된 경우, 내보내기 파일의 DAC 정의에는 원래 DAC에 지정된 이름이 포함됩니다. 그렇지 않으면 DAC 이름이 데이터베이스 이름으로 설정됩니다.
사용 권한
DAC를 내보내려면 최소한 ALTER ANY 로그인 및 데이터베이스 수준의 VIEW DEFINITION 권한과 sys.sql_expression_dependencies에 대한 SELECT 권한이 있어야 합니다. 이 작업은 DAC의 소스 데이터베이스 내에서 securityadmin 고정 서버 역할과 database_owner 고정 데이터베이스 역할의 멤버십을 보유한 개인이 수행할 수 있습니다. 또한 DAC 내보내기는 sysadmin 고정 서버 역할의 일부이거나 기본 제공 SQL Server 시스템 관리자 계정인 sa에 대한 액세스 권한이 있는 사용자만 사용할 수 있습니다.
Azure SQL 데이터베이스에서는 각 데이터베이스에 대해 모든 테이블 또는 특정 테이블에 대한 VIEW DEFINITION 및 SELECT 권한을 부여해야 합니다.
데이터 계층 애플리케이션 내보보내기 마법사 사용
마법사를 사용하여 DAC를 내보내려면
온프레미스 또는 SQL 데이터베이스에 있는 SQL Server 인스턴스에 연결합니다.
개체 탐색기에서 DAC를 내보낼 인스턴스의 노드를 확장합니다.
데이터베이스 이름을 마우스 오른쪽 버튼으로 클릭합니다.
작업을 선택한 다음, 데이터 계층 애플리케이션 내보내기...를 선택합니다.
마법사 대화 상자를 완료합니다.
소개 페이지
이 페이지에서는 데이터 계층 애플리케이션 내보내기 마법사의 단계에 대해 설명합니다.
옵션
이 페이지를 다시 표시 안 함 - 앞으로 소개 페이지가 표시되지 않도록 하려면 이 확인란을 선택합니다.
다음 - DAC 패키지 선택 페이지로 진행합니다.
취소 - 작업을 취소하고 마법사를 닫습니다.
내보내기 설정 페이지
이 페이지에서는 BACPAC 파일을 만들려는 위치를 지정할 수 있습니다.
로컬 디스크에 저장 - 로컬 컴퓨터의 디렉터리에 BACPAC 파일을 만듭니다. 찾아보기...를 선택하여 로컬 컴퓨터로 이동하거나 제공된 공간에 경로를 지정합니다. 경로 이름에는 파일 이름과 .bacpac 확장명을 포함해야 합니다.
Azure에 저장 - Azure 컨테이너에 BACPAC 파일을 만듭니다. 이 옵션의 유효성을 검사하려면 Azure 컨테이너에 연결해야 합니다. 또한 이 옵션을 사용하려면 임시 파일에 대한 로컬 디렉터리를 지정해야 합니다. 임시 파일은 지정된 위치에 생성되며 작업 후에도 그 위치에 유지됩니다.
내보낼 테이블의 하위 집합을 지정하려면 고급 옵션을 사용합니다.
요약 페이지
이 페이지에서 작업의 지정된 소스 및 대상 설정을 검토할 수 있습니다. 지정된 설정을 사용하여 내보내기 작업을 완료하려면 종료를 선택합니다. 내보내기 작업을 취소하고 마법사를 종료하려면 취소를 선택합니다.
진행률 페이지
이 페이지에는 작업의 상태 나타내는 진행률 표시줄이 표시됩니다. 자세한 상태 보려면 세부 정보 보기 옵션을 선택합니다.
결과 페이지
이 페이지에서는 내보내기 작업의 성공 또는 실패를 보고하여 각 작업의 결과를 보여줍니다. 오류가 발생한 모든 작업에는 결과 열에 링크가 있습니다. 링크를 선택하여 해당 작업에 대한 오류 보고서를 확인합니다.
마법사를 닫으려면 종료를 선택합니다.
.NET Framework 애플리케이션 사용
.Net Framework 애플리케이션에서 Export() 메서드를 사용하여 DAC를 내보냅니다.
SMO 서버 개체를 생성하고 내보낼 DAC가 포함된 인스턴스로 설정합니다.
ServerConnection 개체를 열고 동일한 인스턴스에 연결합니다.
Export 형식의 Microsoft.SqlServer.Management.Dac.DacStore 메서드를 사용하여 DAC를 내보냅니다. 내보낼 DAC의 이름과 내보내기 파일을 배치할 폴더의 경로를 지정합니다.
제한 사항
DAC 또는 데이터베이스는 SQL Database 또는 SQL Server 2005(9.x) SP4(서비스 팩 4) 이상의 데이터베이스에서만 내보낼 수 있습니다.
DAC에서 지원되지 않거나 사용자를 포함하는 개체를 사용하여 데이터베이스를 내보낼 수 없습니다. DAC에서 지원되는 개체 유형에 대한 자세한 내용은 SQL Server 개체 및 버전에 대한 DAC 지원을 참조하세요.
디스크 공간 부족으로 실패 메시지가 표시되는 경우 시스템의 % TEMP % 폴더가 별도의 데이터 디스크에 있도록 구성하는 것이 좋습니다. 이렇게 하면 내보내기 프로세스가 원활하게 실행될 수 있는 충분한 공간을 확보하여 잠재적인 디스크 공간 문제를 방지할 수 있습니다.
시스템의 %TEMP% 폴더를 구성하려면 다음을 수행합니다.
Windows에서 시스템 속성>속성을 연 다음 고급 시스템 설정이라고 표시된 링크를 선택합니다.
이어지는 시스템 속성 창에서 하단으로 이동하여 환경 변수를 선택합니다.
시스템 변수 섹션에서 TEMP 및 TMP 변수를 찾은 다음, 각각에 연결된 편집을 선택합니다.
두 변수의 값을 수정하여 설정한 별도의 데이터 디스크의 경로를 가리킵니다. 예를 들어, 데이터 디스크가
D:
(으)로 지정된 경우 값을D:\Temp
(으)로 설정합니다.확인을 선택하고 열려 있는 모든 창을 닫아 변경 내용을 확인합니다.