Azure SQL Database를 BACPAC 파일로 내보내기Export an Azure SQL database to a BACPAC file

다른 플랫폼에 보관하거나 이동하기 위해 데이터베이스를 내보내야 할 경우 데이터베이스 스키마 및 데이터를 BACPAC 파일로 내보낼 수 있습니다.When you need to export a database for archiving or for moving to another platform, you can export the database schema and data to a BACPAC file. BACPAC 파일은 메타데이터 및 SQL Server 데이터베이스의 데이터를 포함하는 BACPAC의 확장명을 가진 ZIP 파일입니다.A BACPAC file is a ZIP file with an extension of BACPAC containing the metadata and data from a SQL Server database. BACPAC 파일은 Azure Blob Storage 또는 온-프레미스 저장소의 로컬 저장소에 저장할 수 있으며 나중에 Azure SQL Database 또는 SQL Server 온-프레미스 설치로 다시 가져올 수 있습니다.A BACPAC file can be stored in Azure blob storage or in local storage in an on-premises location and later imported back into Azure SQL Database or into a SQL Server on-premises installation.

중요

Azure SQL Database 자동화된 내보내기는 2017년 3월 1일에 사용이 중지되었습니다.Azure SQL Database Automated Export was retired on March 1, 2017. 장기 백업 보존 또는 Azure Automation을 사용하여 선택한 일정에 따라 PowerShell을 사용해 주기적으로 SQL Database를 보관할 수 있습니다.You can use long-term backup retention or Azure Automation to periodically archive SQL databases using PowerShell according to a schedule of your choice. 샘플의 경우 GitHub에서 샘플 PowerShell 스크립트를 다운로드합니다.For a sample, download the sample PowerShell script from Github.

Azure SQL Database를 내보낼 경우 고려 사항Considerations when exporting an Azure SQL database

  • 내보내기 작업에서 트랜잭션이 일치하도록 내보내기 중에나 Azure SQL Database의 트랜잭션 일치 복사본에서 내보내는 중에는 쓰기 활동이 발생하지 않도록 해야 합니다.For an export to be transactionally consistent, you must ensure either that no write activity is occurring during the export, or that you are exporting from a transactionally consistent copy of your Azure SQL database.
  • Blob Storage로 내보내는 경우 BACPAC 파일의 최대 크기는 200GB입니다.If you are exporting to blob storage, the maximum size of a BACPAC file is 200 GB. 더 큰 BACPAC 파일을 보관하려면 로컬 저장소로 내보냅니다.To archive a larger BACPAC file, export to local storage.
  • 이 문서에서 설명하는 방법을 사용하여 Azure Premium Storage에서 BACPAC 파일을 내보낼 수는 없습니다.Exporting a BACPAC file to Azure premium storage using the methods discussed in this article is not supported.
  • Azure SQL Database에서 내보내기 작업이 20시간을 초과하면 취소될 수 있습니다.If the export operation from Azure SQL Database exceeds 20 hours, it may be canceled. 내보내는 중에 성능을 향상시키기 위해 다음을 수행할 수 있습니다.To increase performance during export, you can:
    • 서비스 수준을 일시적으로 높이기Temporarily increase your service level.
    • 내보내기 중에 모든 읽기 및 쓰기 작업 중단Cease all read and write activity during the export.
    • 모든 대형 테이블에 null이 아닌 값의 클러스터형 인덱스 를 사용합니다.Use a clustered index with non-null values on all large tables. 클러스터형 인덱스가 없는 경우 6~12시간 이상 소요되면 내보내기에 실패할 수 있습니다.Without clustered indexes, an export may fail if it takes longer than 6-12 hours. 전체 테이블 내보내기를 시도하려면 내보내기 서비스에서 테이블 스캔을 완료해야 하기 때문입니다.This is because the export service needs to complete a table scan to try to export entire table. 테이블이 내보내기에 최적화되었는지 확인하는 좋은 방법은 DBCC SHOW_STATISTICS를 실행하고 RANGE_HI_KEY가 null이 아닌지와 해당 값이 잘 배포되어 있는지 검토하는 것입니다.A good way to determine if your tables are optimized for export is to run DBCC SHOW_STATISTICS and make sure that the RANGE_HI_KEY is not null and its value has good distribution. 자세한 내용은 DBCC SHOW_STATISTICS를 참조하세요.For details, see DBCC SHOW_STATISTICS.

참고

BACPAC는 백업에 사용되는 목적이 아니며 작업을 복원합니다.BACPACs are not intended to be used for backup and restore operations. Azure SQL Database에서는 모든 사용자 데이터베이스의 백업이 자동으로 생성됩니다.Azure SQL Database automatically creates backups for every user database. 자세한 내용은 비즈니스 연속성 개요SQL Database 백업을 참조하세요.For details, see Business Continuity Overview and SQL Database backups.

Azure Portal을 사용하여 BACPAC 파일로 내보내기Export to a BACPAC file using the Azure portal

Azure Portal을 사용하여 데이터베이스를 내보내려면 데이터베이스에 대한 페이지를 열고 도구 모음에서 내보내기를 클릭합니다.To export a database using the Azure portal, open the page for your database and click Export on the toolbar. BACPAC 파일 이름을 지정하고, 내보내기에 필요한 Azure Storage 계정 및 컨테이너를 제공하고, 원본 데이터베이스에 연결할 자격 증명을 제공합니다.Specify the BACPAC filename, provide the Azure storage account and container for the export, and provide the credentials to connect to the source database.

데이터베이스 내보내기

내보내기 작업의 진행률을 모니터링하려면 내보낼 데이터베이스가 포함된 논리 서버에 대한 페이지를 엽니다.To monitor the progress of the export operation, open the page for the logical server containing the database being exported. 아래로 작업이 나올 때까지 스크롤한 다음 Import/Export 기록을 클릭합니다.Scroll down to Operations and then click Import/Export history.

내보내기 기록 내보내기 기록 상태export history export history status

SQLPackage 유틸리티를 사용하여 BACPAC 파일로 내보내기Export to a BACPAC file using the SQLPackage utility

SqlPackage 명령줄 유틸리티를 사용하여 SQL Database를 내보내려면 매개 변수 및 속성 내보내기를 참조하세요.To export a SQL database using the SqlPackage command-line utility, see Export parameters and properties. SQLPackage 유틸리티는 최신 버전의 SQL Server Management StudioVisual Studio용 SQL Server Data Tools가 함께 제공되며, Microsoft 다운로드 센터에서 직접 최신 버전의 SqlPackage를 다운로드할 수 있습니다.The SQLPackage utility ships with the latest versions of SQL Server Management Studio and SQL Server Data Tools for Visual Studio, or you can download the latest version of SqlPackage directly from the Microsoft download center.

대부분의 프로덕션 환경에서 규모 및 성능에 SQLPackage 유틸리티를 사용하는 것이 좋습니다.We recommend the use of the SQLPackage utility for scale and performance in most production environments. BACPAC 파일을 사용하는 마이그레이션에 관한 SQL Server 고객 자문 팀 블로그는 BACPAC 파일을 사용하여 SQL Server에서 Azure SQL Database로 마이그레이션을 참조하세요.For a SQL Server Customer Advisory Team blog about migrating using BACPAC files, see Migrating from SQL Server to Azure SQL Database using BACPAC Files.

이 예제는 Active Directory 유니버설 인증으로 SqlPackage.exe를 사용하여 데이터베이스를 내보내는 방법을 보여줍니다.This example shows how to export a database using SqlPackage.exe with Active Directory Universal Authentication:

SqlPackage.exe /a:Export /tf:testExport.bacpac /scs:"Data Source=apptestserver.database.windows.net;Initial Catalog=MyDB;" /ua:True /tid:"apptest.onmicrosoft.com"

SSMS(SQL Server Management Studio)를 사용하여 BACPAC 파일로 내보내기Export to a BACPAC file using SQL Server Management Studio (SSMS)

또한 최신 버전의 SQL Server Management Studio에서는 Azure SQL Database를 BACPAC 파일로 내보내기 위한 마법사도 제공합니다.The newest versions of SQL Server Management Studio also provide a wizard to export an Azure SQL Database to a BACPAC file. 데이터 계층 응용 프로그램 내보내기를 참조하세요.See the Export a Data-tier Application.

PowerShell을 사용하여 BACPAC 파일로 내보내기Export to a BACPAC file using PowerShell

New-AzureRmSqlDatabaseExport cmdlet을 사용하여 Azure SQL Database 서비스에 데이터베이스 내보내기 요청을 제출합니다.Use the New-AzureRmSqlDatabaseExport cmdlet to submit an export database request to the Azure SQL Database service. 데이터베이스 크기에 따라 내보내기 작업을 완료하는 데 다소 시간이 걸릴 수 있습니다.Depending on the size of your database, the export operation may take some time to complete.

$exportRequest = New-AzureRmSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
  -DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
  -AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password

내보내기 요청의 상태를 확인하려면 Get AzureRmSqlDatabaseImportExportStatus cmdlet을 사용합니다.To check the status of the export request, use the Get-AzureRmSqlDatabaseImportExportStatus cmdlet. 이 요청 직후에 이 명령을 실행하면 Status: InProgress가 반환됩니다.Running this immediately after the request usually returns Status: InProgress. Status : Succeeded가 표시되면 내보내기가 완료된 것입니다.When you see Status: Succeeded the export is complete.

$exportStatus = Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write("Exporting")
while ($exportStatus.Status -eq "InProgress")
{
    $exportStatus = Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
    [Console]::Write(".")
    Start-Sleep -s 10
}
[Console]::WriteLine("")
$exportStatus

다음 단계Next steps