SQL Managed Instance로 데이터 이동

완료됨

온-프레미스 및 클라우드 데이터베이스가 동기화된 상태로 유지되어야 하는 기간이 있는 마이그레이션이 많습니다. 예를 들어 클라이언트가 두 데이터베이스를 모두 변경하는 시간이 있을 수 있습니다.

스포츠 매장 제품 데이터베이스를 Azure SQL Managed Instance로 마이그레이션했습니다. 웹 사이트는 이미 클라우드 데이터베이스를 사용하고 있습니다. 새 데이터베이스를 사용하도록 클라이언트를 다시 구성하기 시작합니다. 일괄 처리를 통해 사용자를 새 시스템으로 옮기기로 결정했습니다. 각 팀에서 다음 사용자를 마이그레이션하기 전에 문제를 해결할 시간을 갖습니다. 이 방식을 사용하면 모든 사용자에게 한 번에 불편을 끼치지 않고 문제를 해결할 수 있습니다. 다음으로, Azure의 새 데이터베이스를 사용하도록 데이터 분석 시스템을 다시 구성합니다. 이 시간 동안 클라우드 및 온-프레미스 데이터베이스가 매시간 동기화되도록 하려고 합니다.

데이터 동기화를 구현하기 위한 다양한 방법을 살펴보겠습니다. 이러한 방법은 테이블의 하위 집합만 전송해야 하는 경우 데이터를 선택적으로 마이그레이션하는 데 사용할 수도 있습니다. 이런 유연성 덕분에 데이터 마이그레이션에 더욱 맞춤화된 방식을 적용할 수 있습니다.

온-프레미스 서버와 연결 옵션

온-프레미스 데이터베이스의 데이터를 Azure SQL Managed Instance와 동기화된 상태로 유지하려는 경우가 많습니다. 예를 들어 클라이언트 애플리케이션을 새 데이터베이스로 마이그레이션하도록 스테이징하려는 경우가 있습니다. 이 경우 클라이언트가 두 데이터베이스에 모두 연결하는 기간이 있습니다.

데이터 동기화 방법을 선택하기 전에 안전한 연결이 있는지 확인하는 것이 중요합니다. 온-프레미스 컴퓨터와 Azure 리소스 간 통신을 설정하는 데 사용할 수 있는 세 가지 연결 옵션이 있습니다.

  • 지점 및 사이트 간. P2S(지점 및 사이트 간) VPN 게이트웨이 연결을 사용하면 개별 클라이언트 컴퓨터에서 가상 네트워크에 대한 안전한 연결을 만들 수 있습니다.
  • 사이트 간. 사이트 간 VPN 게이트웨이는 전체 온-프레미스 사이트를 Azure 네트워크에 연결하는 데 사용됩니다.
  • ExpressRoute. Azure ExpressRoute를 사용하면 Azure 데이터 센터와 온-프레미스 인프라 또는 공동 배치 환경의 인프라 간에 프라이빗 연결을 만들 수 있습니다. ExpressRoute 연결은 퍼블릭 인터넷을 사용하지 않으며 일반적인 인터넷 연결보다 안정적이고 속도가 빠르며 대기 시간이 짧고 보안성이 높습니다.

공용 엔드포인트

SQL Managed Instance의 퍼블릭 엔드포인트는 VPN을 사용하지 않고도 인터넷에서 데이터베이스에 연결하는 데 도움이 되며 데이터 통신 전용으로 설계되었습니다. 데이터 퍼블릭 엔드포인트는 프라이빗 엔드포인트와 동시에 공존할 수 있습니다. 보안상의 이유로, 구현에서 퍼블릭 엔드포인트를 사용하도록 설정하는 경우 데이터베이스 관리자와 네트워크 관리자 간 SoD(의무 분리)가 허용됩니다.

관리형 인스턴스에 대해 퍼블릭 엔드포인트를 사용하도록 설정하려면 두 단계가 필요합니다. SoD의 경우 아래 단계를 완료하려면 다음 데이터베이스 및 네트워크 권한이 있는 두 개의 개별 역할이 필요합니다.

  1. Microsoft.Sql/managedInstances/* 범위에서 역할 기반 액세스 제어 권한이 있는 데이터베이스 관리자가 PowerShell 스크립트를 실행하여 관리형 인스턴스에 대해 퍼블릭 엔드포인트를 활성화해야 합니다.
  2. Microsoft.Network/* 범위에서 역할 기반 액세스 제어 권한이 있는 네트워크 관리자가 NSG(네트워크 보안 그룹)의 퍼블릭 엔드포인트에서 사용되는 포트 3342를 열고 UDR 경로를 제공하여 비대칭 라우팅을 방지해야 합니다.

동기화 방법 선택

다양한 방법을 사용하여 SQL Database Managed Instance의 데이터를 온-프레미스 서버에 동기화하거나 그 반대로 동기화할 수 있습니다.

네이티브 백업 및 복원

SAS(공유 액세스 서명)를 사용하여 Azure Blob Storage 파일에서 Azure SQL Managed Instance의 데이터베이스를 복원할 수 있습니다.

여기에는 Azure Blob Storage에 대한 액세스 권한이 있는 자격 증명을 만든 다음 COPY_ONLY 옵션과 함께 BACKUP DATABASE 명령을 사용하는 작업이 포함됩니다. 데이터베이스가 200GB보다 큰 경우 여러 URL 위치를 제공하여 스트라이프 백업을 사용할 수 있습니다.

BACKUP DATABASE YourDatabase TO URL = 'https://youraccount.blob.core.windows.net/yourcontainer/yourdatabase.bak' WITH COPY_ONLY

SQL Managed Instance에서 데이터베이스를 복원하려면 다음을 수행합니다.

RESTORE DATABASE YourDatabase FROM URL = 'https://youraccount.blob.core.windows.net/yourcontainer/yourdatabase.bak'

SqlPackage를 사용하는 BACPAC 파일

BACPAC 파일은 기본적으로 데이터베이스의 메타데이터와 데이터 둘 다의 압축된 버전입니다. 이 배포 방법은 SQL Database와 호환되지만 SQL Managed Instance는 Azure Portal 내에서 BACPAC를 통한 마이그레이션을 지원하지 않습니다. 대안으로 SQLPackage 유틸리티를 BACPAC 파일과 함께 사용해야 합니다.

BCP(대량 복사 프로그램)

BCP 유틸리티는 테이블을 가져올 수 있도록 파일로 내보내는 명령줄 도구입니다. 단일 SQL Database에서 SQL Managed Instance로 마이그레이션했다가 다시 마이그레이션하려면 이 방법을 사용합니다.

ADF(Azure Data Factory)

Azure Data Factory는 수집에 중점을 두고 데이터 이동 및 오케스트레이션을 위해 구축되었습니다. ADF에는 SSIS 패키지를 실행하기 위한 통합 런타임 지원과 SQL Managed Instance에 대한 공용 인터넷 지원이 있습니다.

트랜잭션 복제

트랜잭션 복제는 지속적으로 연결된 데이터베이스 서버 간에 데이터를 이동하는 방법입니다.

이 프로세스는 게시 데이터베이스 개체 및 데이터의 스냅샷부터 시작합니다. 초기 스냅샷이 생성되면 게시자의 데이터 또는 스키마에 대한 모든 후속 변경 사항은 일반적으로 발생하는 즉시 거의 실시간으로 Azure SQL Managed Instance에 전달됩니다.

SQL Managed Instance는 게시자, 배포자, 구독자가 될 수 있는 유연함을 갖추고 있습니다.

복제는 테이블의 일부를 복제할 수 있는 몇 가지 기술 중 하나입니다. 해당 테이블 부분을 아티클이라고 합니다. 그런 다음 데이터가 배포자에게 전송되며, 배포자는 구독자 수에 관계없이 구독자에게 데이터를 제공하는 공급자입니다.

요구 사항

  • 연결은 복제 참가자 간에 SQL 인증을 사용합니다.
  • 복제에 사용되는 작업 디렉터리의 Azure Storage 계정 공유
  • Azure 파일 공유에 액세스할 수 있도록 관리형 인스턴스의 보안 규칙에서 열린 포트 445(TCP 아웃바운드)
  • 게시자 또는 배포자가 관리형 인스턴스에 있고 구독자가 온-프레미스에 있는 경우 열린 포트 1433(TCP 아웃바운드)

SQL Managed Instance에 애플리케이션 연결

SQL Managed Instance는 관리되는 인스턴스 전용 Azure 가상 네트워크 서브넷 내에 배치해야 합니다. 이 배포는 안전한 개인 IP 주소와 온-프레미스 네트워크에 연결하는 기능을 제공합니다.

Azure SQL Managed Instance에서 연결이 이루어지는 방법을 보여 주는 다이어그램.

사용자 및 클라이언트 애플리케이션은 Azure Portal, PowerShell, Azure CLI, REST API를 통해 관리형 인스턴스 데이터베이스에 연결할 수 있습니다.

모든 통신은 인증서를 사용하여 암호화되고 서명됩니다. 통신 당사자를 신뢰성을 검사하기 위해, 관리되는 인스턴스는 인증서 해지 목록을 통해 이러한 인증서를 지속적으로 확인합니다. 인증서가 해지되면 SQL Managed Instance는 데이터를 보호하기 위해 연결을 종료합니다.