Azure SQL Managed Instance에서 SQL Server 2022로 데이터베이스 복원

적용 대상:Azure SQL Managed Instance

이 문서에서는 데이터베이스 백업을 Azure SQL Managed Instance에서 SQL Server 2022로 복원하는 방법을 설명합니다.

개요

SQL Managed Instance 및 SQL Server 2022 간의 데이터베이스 형식이 맞으면 관리되는 인스턴스에서 온-프레미스, Azure의 가상 머신 또는 다른 클라우드에서 호스트되는 SQL Server 2022의 Enterprise, Developer 또는 Standard 버전으로 데이터베이스를 쉽게 복사하거나 이동할 수 있습니다.

관리되는 인스턴스에서 SQL Server 2022 인스턴스로 데이터베이스를 복원하면 다음과 같은 시나리오가 가능해집니다.

  • SQL Managed Instance 및 SQL Server 기반 제품 간의 데이터베이스 이동성이 보장됩니다.
  • 고객 및 기타 적격 당사자에게 데이터베이스 복사본을 제공합니다.
  • SQL Managed Instance 외부에서 환경을 새로 고칩니다.

데이터베이스의 복사 전용 전체 백업을 SQL Managed Instance에서 SQL Server 2022로 복원하는 기능은 기본적으로 모든 기존 인스턴스와 새로 배포된 인스턴스에서 사용할 수 있습니다.

중요

SQL Managed Instance에서 SQL Server 2022로 데이터베이스의 복사 전용 전체 백업을 복원하는 기능은 SQL Server 2022에 대한 일반 지원이 끝날 때까지 사용할 수 있습니다.

SQL Managed Instance에서 백업 수행

먼저 인스턴스에서 스토리지 계정에 액세스하는 자격 증명을 만들고, 데이터베이스의 복사 전용 백업을 수행한 다음, 저장합니다.

관리 ID 또는 SAS(공유 액세스 서명) 토큰을 사용하여 자격 증명을 만들 수 있습니다.

관리 ID는 Azure 서비스의 인스턴스(예: Azure SQL Managed Instance)에 Microsoft Entra ID의 자동 관리 ID인 시스템이 할당한 관리 ID를 제공하는 Microsoft Entra ID(이전의 Azure Active Directory) 기능입니다.

이 ID를 사용하여 스토리지 계정을 포함한 다른 Azure 리소스에 대한 데이터 액세스 요청에 권한을 부여할 수 있습니다. Azure SQL Managed Instance와 같은 서비스에는 시스템 할당 관리 ID가 있으며 하나 이상의 사용자 할당 관리 ID가 있을 수도 있습니다. 시스템 할당 관리 ID 또는 사용자 할당 관리 ID를 사용하여 요청에 권한을 부여할 수 있습니다.

Azure Storage 관리자가 스토리지 계정에 백업 파일을 쓰기 전에 관리 ID에 데이터를 쓸 수 있는 권한을 부여해야 합니다. 인스턴스의 관리 ID에 대한 권한 부여는 다른 Microsoft Entra 사용자에게 권한을 부여하는 것과 동일한 방식으로 수행됩니다. 예시:

  1. Azure Portal에서 스토리지 계정의 액세스 제어(IAM) 창에서 역할 할당 추가를 선택합니다.

  2. Storage Blob 데이터 기여자 기본 제공 Azure RBAC(역할 기반 액세스 제어) 역할을 선택합니다. 이렇게 하면 필요한 Azure Blob Storage 컨테이너에 대한 관리 ID에 대해 읽기/쓰기 액세스 권한이 제공됩니다.

    관리 ID에 Storage Blob 데이터 기여자 Azure RBAC 역할을 부여하는 대신, 더 세분화된 권한을 부여할 수 있습니다. 자세한 내용은 Azure Data Lake Storage Gen2에서 ACL 설정을 참조하세요.

  3. 다음 페이지에서 다음에 대한 액세스 할당에 대해 관리 ID를 선택합니다.

  4. 구성원 선택을 선택한 다음, 관리 ID 드롭다운 목록에서 적절한 관리 ID를 선택합니다. 자세한 내용은 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.

이제 관리 ID 인증을 위한 데이터베이스 범위 자격 증명을 만드는 것은 간단합니다.

다음 예제에서는 Managed Identity가 하드 코딩된 문자열이며 제네릭 스토리지 계정 이름을 실제 스토리지 계정의 이름으로 바꿔야 합니다.

CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<containername>] 
WITH IDENTITY = 'MANAGED IDENTITY'  

그런 후 다음 샘플 T-SQL 명령을 실행하여 데이터베이스의 COPY_ONLY 백업을 수행합니다.

BACKUP DATABASE [SampleDB]
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/SampleDB.bak'
WITH COPY_ONLY

SQL Server로 복원

RESTORE DATABASE T-SQL 명령의 WITH MOVE 옵션을 사용하고 대상 서버의 파일에 대한 명시적 파일 경로를 제공하여 데이터베이스를 SQL Server로 복원합니다.

데이터베이스를 SQL Server로 복원하려면 환경에 적합한 파일 경로를 사용하여 다음 샘플 T-SQL 명령을 실행합니다.

RESTORE DATABASE [SampleDB]
FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<containername>/SampleDB.bak'
WITH
MOVE 'data_0' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDB_data_0.mdf',
MOVE 'log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDBlog.ldf',
MOVE 'XTP' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\SampleDB_xtp.xtp'

참고

TDE(투명한 데이터 암호화)를 사용하여 미사용 데이터베이스를 복원하려면 SQL Server의 대상 인스턴스가 Azure Key Vault의 SQL Server Connector를 통해 원본 데이터베이스를 보호하는 데 사용되는 것과 동일한 키에 액세스할 수 있어야 합니다. 자세한 내용은 AKV를 사용하여 SQL Server TDE 설정을 참조하세요.

고려 사항

SQL Server로 데이터베이스를 복원하는 경우 다음을 고려합니다.

  • WITH MOVE 한정자를 사용하고 데이터 파일에 대한 명시적 경로를 제공해야 합니다.
  • 서비스 관리 TDE 키로 암호화된 데이터베이스는 SQL Server로 복원할 수 없습니다. 암호화된 데이터베이스가 고객 관리형 키로 암호화되고 대상 서버가 데이터베이스를 암호화하는 데 사용되는 것과 동일한 키에 액세스할 수 있는 경우에만 암호화된 데이터베이스를 SQL Server로 복원할 수 있습니다. 자세한 내용은 Azure Key Vault를 사용하여 SQL Server TDE 설정을 참조하세요.
  • 앞으로 Azure SQL Managed Instance에 데이터베이스 형식을 변경해야 하는 일부 기능이 도입되어 백업이 SQL Server 2022와 호환되지 않을 수도 있습니다. 이러한 기능에 액세스하려면 명시적 옵트인이 필요합니다.

다음 단계