Azure 서비스가 서버에 액세스할 수 있도록 허용하지 않고 Azure SQL Database 가져오기 또는 내보내기
적용 대상: Azure SQL Database
이 문서에서는 Azure 서비스 및 리소스의 해당 서버 액세스 허용이 끄기로 설정된 경우 Azure SQL Database를 가져오거나 내보내는 방법을 보여 줍니다. 방법 문서는 Azure 가상 머신을 사용하여 SqlPackage를 실행함으로써 가져오기 또는 내보내기 작업을 수행합니다.
Azure 서비스 및 리소스의 해당 서버 액세스 허용 설정이 Azure Portal에서 예외 섹션의 리소스 메뉴인 네트워킹의 보안 메뉴 아래에 표시됩니다. 이 설정에 대한 자세한 내용은 Azure SQL Database 네트워크 액세스 제어를 참조하세요.
Azure Portal에 로그인
Azure Portal에 로그인합니다.
Azure 가상 머신 만들기
Azure에 배포 단추를 선택하여 Azure 가상 머신을 만듭니다.
이 템플릿을 사용하면 최신 패치가 적용된 버전을 사용하여 Windows 버전에 몇 가지 다른 옵션을 사용해 간단한 Windows 가상 머신을 배포할 수 있습니다. 이렇게 하면 리소스 그룹 위치에 A2 크기의 VM이 배포되고 VM의 정규화된 도메인 이름이 반환됩니다.
Azure 빠른 시작 템플릿을 비롯한 자세한 내용은 간단한 Windows VM 배포를 참조하세요.
가상 머신에 연결
다음 단계에서는 원격 데스크톱 연결을 사용하여 가상 머신에 연결하는 방법을 보여 줍니다.
배포가 완료되면 가상 머신 리소스로 이동합니다.
연결을 선택합니다.
가상 머신의 공용 IP 주소 및 포트 번호를 사용하여 원격 데스크톱 프로토콜 파일(.rdp 파일) 양식이 나타납니다.
참고 항목
VM에 연결하는 방법은 여러 가지가 있습니다. 이 자습서에서는 RDP(원격 데스크톱 프로토콜)를 사용하여 VM에 연결하지만, 환경에 Bastion을 배포한 경우 Azure Bastion을 사용하는 최신 솔루션이 더 좋은 대안이 될 수 있습니다. SSH를 사용하여 VM에 연결할 수도 있습니다.
RDP 파일 다운로드를 선택합니다.
가상 머신에 연결 양식을 닫습니다.
VM에 연결하려면 다운로드한 RDP 파일을 엽니다.
메시지가 표시되면 연결을 선택합니다.
- Mac의 Mac 앱 스토어에서 이 원격 데스크톱 클라이언트와 같은 RDP 클라이언트가 필요합니다.
가상 머신을 만들 때 지정한 사용자 이름 및 암호를 입력하고 확인을 선택합니다.
로그인 프로세스 중에 인증서 경고가 나타날 수 있습니다. 예 또는 계속을 선택하여 연결을 진행합니다.
SqlPackage 설치
최신 버전의 SqlPackage를 다운로드 및 설치합니다. 자세한 내용은 SqlPackage를 참조하세요.
데이터베이스에 대한 VM 액세스를 허용하는 방화벽 규칙 만들기
먼저, 서버의 방화벽에 가상 머신의 공용 IP 주소를 추가합니다. 다음 단계에서는 가상 머신의 공용 IP 주소에 대한 서버 수준 IP 방화벽 규칙을 만들고 가상 머신에서 연결을 사용하도록 설정합니다.
왼쪽 메뉴에서 SQL 데이터베이스를 선택한 다음 SQL 데이터베이스 페이지에서 데이터베이스를 선택합니다. 데이터베이스에 대한 개요 페이지가 열리고, 정규화된 서버 이름(예:
sql-svr.database.windows.net
)을 표시하고, 추가 구성 옵션을 제공합니다.서버 및 해당 데이터베이스에 연결하는 데 사용하기 위해 이 정규화된 서버 이름을 복사합니다.
도구 모음에서 서버 방화벽 설정을 선택합니다.
네트워킹 페이지에 있는 공용 액세스 탭의 방화벽 설정 섹션에서 클라이언트 IPv4 주소 추가를 선택합니다. 가상 머신의 공용 IP 주소를 새 서버 수준 IP 방화벽 규칙에 추가합니다. 서버 수준 IP 방화벽 규칙은 단일 IP 주소 또는 IP 주소의 범위에 1433 포트를 열 수 있습니다.
저장을 선택합니다. 서버의 1433 포트를 여는 가상 머신의 공용 IP 주소에 서버 수준 IP 방화벽 규칙이 생성됩니다.
SqlPackage를 사용하여 데이터베이스 내보내기
SqlPackage 명령줄 유틸리티를 사용하여 Azure SQL Database를 내보내려면 매개 변수 및 속성 내보내기를 참조하세요. SqlPackage 유틸리티는 최신 버전의 SQL Server Management Studio 및 SQL Server Data Tools가 함께 제공되며, 최신 버전의 SqlPackage를 다운로드할 수 있습니다.
BACPAC 파일을 만드는 자세한 내용 및 단계는 BACPAC 파일로 내보내기를 참조하세요.
대부분의 프로덕션 환경에서 규모 및 성능에 SqlPackage 유틸리티를 사용하는 것이 좋습니다. BACPAC 파일을 사용한 마이그레이션에 관한 SQL Server 고객 자문 팀 블로그는 BACPAC 파일을 사용하여 SQL Server에서 Azure SQL Database로 마이그레이션을 참조하세요.
이 예제에서는 Active Directory 유니버설 인증으로 SqlPackage를 사용하여 데이터베이스를 내보내는 방법을 보여 줍니다. 환경에 필요한 값으로 바꿉니다.
SqlPackage /a:Export /tf:testExport.bacpac /scs:"Data Source=<servername>.database.windows.net;Initial Catalog=MyDB;" /ua:True /tid:"apptest.onmicrosoft.com"
SqlPackage를 사용하여 데이터베이스 가져오기
SqlPackage 명령줄 유틸리티를 사용하여 SQL Server 데이터베이스를 가져오려면 매개 변수 및 속성 가져오기를 참조하세요. SqlPackage에는 최신 SQL Server Management Studio 및 SQL Server Data Tools가 있습니다. 최신 버전의 SqlPackage를 다운로드할 수도 있습니다.
규모 및 성능과 관련하여 대부분의 프로덕션 환경에서는 Azure Portal보다 SqlPackage를 사용하는 것이 좋습니다. BACPAC
파일을 사용하는 마이그레이션에 대한 SQL Server 고객 자문 팀 블로그는 BACPAC 파일을 사용하여 SQL Server에서 Azure SQL Database로 마이그레이션하기를 참조하세요.
다음 SqlPackage 명령은 AdventureWorks2022
데이터베이스를 로컬 스토리지에서 Azure SQL Database 서버로 가져옵니다. 프리미엄 서비스 계층 및 P6 서비스 개체를 가진 myMigratedDatabase
(이)라는 새 데이터베이스를 만듭니다. 이러한 값을 사용자 환경에 적절하게 변경합니다.
SqlPackage /a:import /tcs:"Data Source=<serverName>.database.windows.net;Initial Catalog=myMigratedDatabase>;User Id=<userId>;Password=<password>" /sf:AdventureWorks2022.bacpac /p:DatabaseEdition=Premium /p:DatabaseServiceObjective=P6
중요
회사 방화벽 뒤에서 Azure SQL Database에 연결하려면 방화벽에 1433 포트가 열려 있어야 합니다.
이 예제는 Active Directory 유니버설 인증으로 SqlPackage를 사용하여 데이터베이스를 가져오는 방법을 보여줍니다.
SqlPackage /a:Import /sf:testExport.bacpac /tdn:NewDacFX /tsn:apptestserver.database.windows.net /ua:True /tid:"apptest.onmicrosoft.com"
성능 고려 사항
내보내기 속도는 다양한 요인(예: 데이터 모양)으로 인해 달라질 수 있으므로 속도를 예측할 수 없습니다. SqlPackage는 특히 큰 데이터베이스의 경우 상당한 시간이 걸릴 수 있습니다.
최상의 성능을 위해 다음 전략을 시도해 볼 수 있습니다.
- 데이터베이스에서 다른 워크로드가 실행되고 있지 않은지 확인합니다. 내보내기 전에 복사본을 만드는 것이 다른 워크로드의 실행을 방지하는 가장 좋은 해결 방법일 수 있습니다.
- 데이터베이스 SLO(서비스 수준 목표)를 늘려 내보내기 워크로드(주로 I/O 읽기)를 효율적으로 처리합니다. 데이터베이스가 현재 GP_Gen5_4인 경우 중요 비즈니스용 계층이 읽기 워크로드에 도움이 될 수 있습니다.
- 특히 큰 테이블의 경우 클러스터형 인덱스가 있는지 확인합니다.
- 네트워크 제약을 피하기 위해 VM(가상 머신)은 데이터베이스와 동일한 지역에 있어야 합니다.
- VM에는 Blob 스토리지에 업로드하기 전에 임시 아티팩트를 생성하기에 충분한 크기의 SSD가 있어야 합니다.
- VM에는 특정 데이터베이스에 대한 적절한 코어 및 메모리 구성이 있어야 합니다.
가져오거나 내보낸 BACPAC 파일 저장
BACPAC 파일은 Azure Blob 또는 Azure Files에 저장할 수 있습니다.
최상의 성능을 얻으려면 Azure Files를 사용합니다. SqlPackage는 Azure Files에 직접 액세스할 수 있도록 파일 시스템을 사용하여 작동합니다.
비용을 절감하려면 프리미엄 Azure 파일 공유보다 비용이 저렴한 Azure Blob을 사용합니다. 단, 가져오기 또는 내보내기 작업을 수행하기 전에 Blob 및 로컬 파일 시스템 간에 BACPAC 파일을 복사해야 합니다. 시간이 더 오래 걸립니다.
BACPAC 파일을 업로드하거나 다운로드하려면 AzCopy 및 Blob 스토리지를 사용하여 데이터 전송 및 AzCopy 및 파일 스토리지를 사용하여 데이터 전송을 참조하세요.
환경에 따라 Azure Storage 방화벽 및 가상 네트워크를 구성해야 할 수도 있습니다.
관련 콘텐츠
- 가져온 SQL Database에 연결하고 쿼리하는 방법을 알아보려면 빠른 시작: Azure SQL Database: SQL Server Management Studio를 사용하여 데이터에 연결 및 쿼리를 참조하세요.
- BACPAC 파일을 사용한 마이그레이션에 관한 SQL Server 고객 자문 팀 블로그는 BACPAC 파일을 사용하여 SQL Server에서 Azure SQL Database로 마이그레이션을 참조하세요.
- 성능 권장 사항을 비롯한 전체 SQL Server 데이터베이스 마이그레이션 프로세스에 대한 설명은 Azure SQL Database로 SQL Server 데이터베이스 마이그레이션을 참조하세요.
- 스토리지 키 및 공유 액세스 서명을 안전하게 관리하고 공유하는 방법을 알아보려면 Azure Storage 보안 가이드를 참조하세요.