Always On 가용성 그룹을 Azure SQL Managed Instance로 확장(미리 보기)

적용 대상:Azure SQL Managed Instance에 적용합니다.

이 글에서는 SQL Server Management Studio(SSMS), PowerShell, 또는 Azure CLI을 사용하여 SQL Server와 Azure SQL Managed Instance 사이에 여러 데이터베이스를 포함하는 Always On 가용성 그룹을 확장하는 방법을 Managed Instance 링크로 안내합니다.

이 글은 하나의 링크를 통해 가용성 그룹 내 모든 데이터베이스를 복제하는 다중 데이터베이스 링크 모드를 다룹니다. 단일 데이터베이스 링크 모드는 링크당 하나의 데이터베이스를 복제합니다.

메모

SQL Server와 Azure SQL Managed Instance 간에 Always On 가용성 그룹 내 여러 데이터베이스를 연결하는 지원은 현재 프리뷰 단계입니다.

개요

SQL Server와 Azure SQL Managed Instance 간에 Always On 가용성 그룹을 확장하면, 가용성 그룹 내 여러 데이터베이스를 대상 복제체로 복제하는 링크를 생성합니다. 이 링크는 분산 가용성 그룹을 사용하여 현재 주 복제본에서 보조 복제본의 읽기 전용 데이터베이스 복사본으로 거의 실시간으로 변경 사항을 복제합니다. 이렇게 하면 보조 서버의 읽기 전용 복사본이 주 서버와 동기화된 최신 상태로 유지됩니다.

기존 가용성 그룹을 사용하거나 독립 실행형 데이터베이스로 시작할 수 있습니다. SSMS에서 독립 실행형 데이터베이스를 선택하면 마법사가 초기 기본 데이터베이스에 단일 노드 가용성 그룹을 생성하고 선택한 데이터베이스를 하나의 링크를 통해 복제합니다.

SQL Server 또는 Azure SQL Managed Instance 중 하나가 초기 프라이머리가 될 수 있습니다. SQL Managed Instance에서 링크를 생성하려면 필수 누적 업데이트가 적용된 SQL Server 2022 또는 SQL Server 2025와 이에 맞는 SQL Managed Instance 업데이트 정책이 필요합니다. 이 글의 생성 예시는 SQL Server에서 시작됩니다. SQL Managed Instance에서 생성 과정을 진행하지 않습니다. 업데이트 정책이 일치하도록 구성된 인스턴스의 경우, SQL Server와 Azure SQL Managed Instance 간 역할 전환을 포함한 장애 조치가 지원됩니다.

Supportability

미리보기 중 다중 데이터베이스 링크를 통해 가용성 그룹을 확장할 때 다음 요구사항이 적용됩니다. Windows와 Linux 모두에서 SQL Server가 지원됩니다. 필요한 누적 업데이트(CU)를 설치해야 합니다. 초기 빌드는 이 기능을 지원하지 않습니다.

SQL Server 버전 필수 업데이트 지원되는 버전
SQL Server 2022(16.x) CU27 또는 그 이후 기업 및 개발자
SQL Server 2025(17.x) CU9 또는 그 이후 기업 및 개발자

다음을 고려하십시오.

  • 기본 가용성 그룹이 하나의 데이터베이스만 지원하기 때문에 표준 에디션은 지원되지 않습니다.
  • SQL Server 2019 및 그 이전 버전은 SQL Server 2022에서 도입된 필수 기술이 없기 때문에 다중 데이터베이스 링크 모드에 지원되지 않습니다.
  • SQL Managed Instance에서 링크를 생성하거나 역할 역으로 SQL Server로 돌아가려면, SQL 관리용 인스턴스는 SQL Server 버전에 맞는 업데이트 정책을 사용해야 합니다. SQL Server에서 일방향 복제 및 컷오버를 위해서는 목적지 업데이트 정책이 SQL Server 버전과 일치하거나 더 높아야 합니다.
    • SQL Server 2022는 SQL Server 2022, SQL Server 2025, 그리고 Always-up-to-date 정책으로 구성된 인스턴스로의 복제를 지원합니다.
    • SQL Server 2025는 SQL Server 2025 및 Always-up-to-date 정책으로 구성된 인스턴스로의 복제를 지원하지만, 2022 SQL Server 지원하지 않습니다. 정책이 일치하지 않으면 데이터를 복제할 수 없고 컷오버 후 SQL Server로 페일백할 수도 없습니다.

단일 데이터베이스 링크를 지원하는 SQL Server 버전 및 에디션에 대해서는 Managed Instance 링크 버전 지원성을 참조하세요.

Caution

가용성 그룹 내 모든 SQL Server 복제본은 동일한 지원되는 SQL Server 버전을 사용해야 하며, 필요한 누적 업데이트 또는 그 이후의 버전이 설치되어 있어야 하며, 다중 데이터베이스 링크 모드가 활성화되어 있어야 합니다. 다중 데이터베이스 링크 모드를 지원하는 복제본과 이전 빌드의 복제본을 섞거나 해당 기능을 비활성화한 상태에서 사용하지 마세요. 이 구성을 혼합하면 SQL Server가 예측 불가능하게 동작할 수 있습니다.

Prerequisites

SQL Server와 Azure SQL Managed Instance 간 가용성 그룹을 확장하려면 다음 전제 조건이 필요합니다:

  • 활성 상태의 Azure 구독. 계정이 없다면, 무료 계정을 만드세요.
  • 지원되는 SQL Server 버전과 에디션, 그리고 필요한 서비스 업데이트가 설치되어 있습니다. 기존 Always On 가용성 그룹이나 SSMS가 새로운 단일 노드 가용성 그룹에 배치한 독립 실행형 데이터베이스를 사용할 수 있습니다. 포함된 가용성 그룹은 지원되지 않습니다.
  • Azure SQL Managed Instance와 귀하의 시나리오에 맞는 업데이트 정책을 사용하는 것이 좋습니다. SQL Managed Instance가 초기 프라이머리이거나 역할 전환을 위해 매칭 정책이 필요합니다. SQL 관리 인스턴스가 없다면 바로 시작하세요.
  • SQL Server Management Studio (SSMS) 22.10.2 이상.
  • 스크립트 설정의 경우, Azure PowerShell 중 Az 모듈 버전 16.3.0 이상과 Az.Sql 버전 7.1.0 이상, 또는 Azure CLI 버전 2.90.0 이상을 사용합니다. Azure Cloud Shell을 사용할 수도 있습니다. 설치된 모듈이나 CLI가 이 버전 요구사항을 충족하는지 확인하세요.
  • 제대로 준비된 환경.
  • 다중 노드 가용성 그룹의 경우, 구성된 가용성 그룹 리스너가 있습니다. 링크를 구성할 때는 개별 SQL Server 복제본의 IP 주소가 아니라 리스너의 IP 주소를 사용하세요. 리스너를 사용하면 로컬 가용성 그룹 장애 조치 후에도 링크가 계속 작동할 수 있습니다.
  • 멀티 데이터베이스 링크 모드를 활성화하면 어떤 SQL Server 복제본에도 기존 링크가 없습니다. 시작하기 전에 이전 단일 데이터베이스 링크 모드를 사용하는 모든 링크를 제거하세요.
  • 가용성 그룹의 모든 데이터베이스에 대해 대상 관리형 인스턴스에 충분한 사용 가능한 데이터베이스 용량과 저장소 공간이 있음 자원 한도를 검토하세요.

Permissions

SQL Server의 경우 sysadmin 권한이 필요합니다.

Azure SQL Managed Instance의 경우 SQL Managed Instance 기여자 역할의 멤버이거나 다음 사용자 지정 역할 권한이 있어야 합니다.

Microsoft.Sql/ 리소스 필요한 권한
Microsoft.Sql/managedInstances /읽기, /쓰기
Microsoft.Sql/managedInstances/hybridCertificate /액션
Microsoft.Sql/managedInstances/databases /읽기, /삭제, /쓰기, /완료복원/작업, /백업읽기/작업, /복원세부정보/읽기
Microsoft.Sql/managedInstances/distributedAvailabilityGroups /읽기, /쓰기, /삭제, /역할설정/작업 (Note: Terms are preserved for clarity)
Microsoft.Sql/managedInstances/엔드포인트 인증서 /읽기
Microsoft.Sql/managedInstances/hybridLink /읽기, /쓰기, /삭제
Microsoft.Sql/managedInstances/serverTrustCertificates /쓰기, /삭제, /읽기

미리보기 중에는 기본적으로 다중 데이터베이스 링크 모드 지원이 비활성화되어 있습니다. 내장 sys.sp_multidb_milink 저장 프로시저를 사용해 가용성 그룹 내 모든 SQL Server 복제본이나 단일 노드 그룹을 만들 계획인 SQL Server 인스턴스에서 활성화하세요.

Warning

다중 데이터베이스 링크 모드를 활성화하거나 비활성화하기 전에 모든 기존 링크를 제거하세요. 링크가 활성화된 상태에서 설정을 변경하면 SQL Server에서 예측할 수 없는 동작이 발생할 수 있습니다. 단일 데이터베이스와 다중 데이터베이스 링크를 섞지 마세요. 모드를 변경할 때는 먼저 링크를 제거하고, 모든 SQL Server 복제본의 설정을 변경한 후 새 링크를 생성하세요.

모든 SQL Server 복제본에 다음 명령을 실행하여 다중 데이터베이스 링크 모드를 활성화하세요:

EXEC sys.sp_multidb_milink 1;

이 설정은 SQL Server 재시작 후에도 유지되므로, 각 복제본에서 한 번만 활성화하면 됩니다.

설정을 확인하려면 각 복제본에 매개변수 없이 저장 프로시저를 실행하세요. 활성화되면 0를 반환하고 비활성화되면 1를 반환합니다:

EXEC sys.sp_multidb_milink;

저장 프로시저가 없으면, 레플리카가 지원되는 SQL Server 버전과 누적 업데이트가 설치되어 있는지 확인하세요.

다중 데이터베이스 링크 모드를 비활성화하려면 먼저 모든 링크를 제거한 후 모든 SQL Server 복제본에 대해 다음 명령을 실행하세요:

EXEC sys.sp_multidb_milink 0;

가용성 그룹 데이터베이스를 준비하세요

복제하려는 각 SQL Server 데이터베이스를 전체 복구 모델로 설정한 후 완전한 백업을 생성하세요. 기존의 가용성 그룹 데이터베이스와 독립 실행형 데이터베이스 모두 이러한 준비가 필요합니다. 링크 구성 가이드의 SSMS 백업 절차를 사용하세요.

Caution

데이터베이스에서 투명한 데이터 암호화(TDE)을 사용한다면, 링크를 생성하기 전에 목적지에서 암호화 인증서나 키를 준비하세요. 이들이 없으면 링크가 암호화된 데이터베이스를 복제할 수 없습니다.

SQL Server 데이터베이스의 경우, TDE 인증서를 SQL Managed Instance로 이전하세요. SQL Server에 연결된 암호화된 SQL Managed Instance 데이터베이스의 경우, 목적지 SQL Server에 접근 가능한 고객 관리 키를 사용하세요. 각 방향별 요구사항은 링크에 대한 TDE 준비를 검토하세요.

링크는 선택한 가용성 그룹 내 모든 데이터베이스를 복제합니다. 하위 집합을 선택할 수 없으니, 링크를 만들기 전에 대상 SQL 관리 인스턴스의 사용 가능한 용량을 확인하세요. 목적지에는 복제하려는 데이터베이스와 같은 이름을 가진 데이터베이스가 포함되어서는 안 됩니다. 인스턴스의 용량 제한에 따라 서로 다른 이름을 가진 기존 데이터베이스도 허용됩니다.

링크는 사용자 데이터베이스 복제만 지원합니다. 시스템 데이터베이스의 복제는 지원되지 않습니다. master 또는 msdb에 저장된 인스턴스 수준 개체를 복제하려면 스크립트를 작성하여 대상 인스턴스에서 T-SQL 스크립트를 실행하십시오.

리스너와 인증서를 설정하세요

다중 노드 가용성 그룹의 경우, SSMS와 스크립트 모두에서 리스너의 IP 주소를 링크 설정 시 사용하세요. 리스너는 연결을 현재 주 복제본으로 지시합니다. 개별 SQL Server 복제본의 IP 주소를 링크의 파트너 엔드포인트로 사용하지 마세요. 리스너가 없으면 로컬 가용성 그룹 장애 조치 이후에 링크가 계속 작동하지 않습니다. 단일 노드 가용성 그룹, 즉 SSMS 위드가 독립 실행형 데이터베이스를 위해 생성하는 그룹을 포함해서는, 해당 SQL Server 인스턴스의 IP 엔드포인트를 사용하세요.

SSMS 마법사는 Azure SQL Managed Instance와 현재 SQL Server 기본 복제본만 간에 인증서를 교환합니다. 다른 SQL Server 복제본에 대한 인증서 신뢰를 설정하지 않습니다. 로컬 가용성 그룹 장애 조치 후에도 링크가 계속 작동하도록 모든 다른 SQL Server 복제본에 필요한 인증서를 수동으로 복사하고 설정해야 합니다. 이 수동 단계는 SSMS와 스크립트 설정 모두에 적용됩니다. 인증서 교환 단계는 인스턴스 간 신뢰 설정을 검토하세요.

권장 설정 경험을 위해 SSMS를 사용하세요. 이 위드(wizard)는 많은 구성 단계를 자동화합니다. 스크립트 자동화가 필요 없다면 이 섹션은 건너뛰고 가용성 확장 그룹의 SSMS 탭으로 진행하세요.

스크립트 설정은 가용성 그룹, 엔드포인트, 인증서 신뢰 설정 경험이 필요한 고급 옵션입니다. 이 단계는 PowerShell이나 Azure CLI를 SQL Server로 기본 사용하는 경우에만 완료하세요.

이 체크리스트는 기존 가용성 그룹과 독립 데이터베이스 모두를 포함합니다. 데이터베이스, 트러스트, 엔드포인트를 준비한 후에는 기존 가용성 그룹을 재사용하거나 4단계에서 하나를 생성하세요. 그 다음 분산 가용성 그룹을 만드세요. PowerShell과 Azure CLI 링크 생성 명령어는 가용성 그룹을 자동으로 생성하지 않습니다.

환경에 맞춘 스크립트를 원하시면 SSMS 링크 마법사를 사용하시고 요약 페이지에서 스크립트를 선택하세요. 생성된 스크립트를 검토하고 따로 실행하세요.

  1. 모든 SQL Server 복제본이나 독립 실행형 SQL Server 인스턴스에서 다중 데이터베이스 링크 모드를 활성화하고 데이터베이스를 준비하세요.
  2. 인스턴스 간에 신뢰를 구축합니다 인증서 생성, 공개키 교환, 루트 인증서 가져오기, 인증서 체인 검증 단계를 따라가세요. 다중 노드 그룹의 경우, 현재 기본 저장소뿐만 아니라 모든 SQL Server 복제본에 인증서 요구사항을 적용하세요.
  3. 데이터베이스 미러링 엔드포인트를 안전하게 보호하세요. 만약 가용성 그룹에 이미 엔드포인트가 있다면, 다른 엔드포인트를 만드는 대신 기존 엔드포인트를 변경 하세요. 링크 생성 명령어를 위해 설정된 엔드포인트 포트를 유지하세요.
  4. 가용성 그룹을 준비합니다. 복제하려는 모든 데이터베이스가 포함된 가용성 그룹이 이미 있다면, 이를 재사용하고 새 그룹 생성은 건너뛰세요. 독립형 데이터베이스로 시작한다면, 먼저 SQL Server에서 가용성 그룹을 만드세요. SQL Server 초기 주 서버 탭에서 CLUSTER_TYPE = NONE와 함께 단일 노드 CREATE AVAILABILITY GROUP 예제를 사용하되, FOR DATABASE [DB01], [DB03], [DB05], [DB07]는 FOR DATABASE [<DatabaseName>]와 같은 전체 데이터베이스 목록으로 바꾸세요. <AGNameOnSQLServer>을 새 그룹에 지정할 이름으로 설정하세요. 분산 가용성 그룹 생성을 계속하기 전에 이 스크립트를 실행하세요. 기존 그룹과 대조하거나 기존 그룹의 클러스터 구성을 변경하지 마세요.
  5. SQL Server에서 분산 가용성 그룹을 만드세요. SQL Server의 초기 기본 탭을 사용하여 분산 가용성 그룹 생성 지시부터 시작하세요. 이전 단계에서 재사용하거나 생성한 가용성 그룹으로 설정 <AGNameOnSQLServer> 하세요. 다중 노드 그룹의 경우, 청취자의 IP 주소를 사용합니다 <SQLServerIP>. 단일 노드 그룹의 경우, SQL Server 인스턴스의 엔드포인트를 사용하세요. 아래 생성 명령어의 링크 이름 <AGNameOnSQLMI> 과 관리 인스턴스 가용성 그룹 이름으로 유지 <DAGName> 하세요.
  6. SQL Server에서 가용성 그룹을 확인하세요. 항상 온(Always On) 가용성 그룹과 분산 가용성 그룹이 모두 존재하는지 확인하세요. 그 후 가용성 그룹을 확장하여PowerShell 또는 Azure CLI를 선택한 뒤, 이 글에서 다른 가이드의 단일 데이터베이스 명령 대신 다중 데이터베이스 생성 명령을 실행하세요.

가용성 그룹 확장

시딩에 필요한 로그 레코드를 유지하기 위해, 특히 대규모 데이터베이스나 다중 데이터베이스 링크 모드의 다중 데이터베이스 생성 시 지원되는 SQL Server 빌드에서 링크를 생성하기 전에 트레이스 플래그 12381을 활성화하는 것이 권장됩니다. 하지만 플래그는 필수가 아니며, Troubleshoot error 1412에 나열된 대체 완화 방안이 있습니다. 플래그가 활성화되면 로그 백업은 계속될 수 있지만, 저장된 로그 레코드는 재사용이 불가능합니다. SQL Server 로그 성장과 여유 디스크 공간을 모니터링하고, 시딩이 완료되면 생성되는 모든 링크에 대한 플래그를 비활성화하세요.

SSMS를 사용해 링크 생성을 자동화하거나, 고급 스크립트 구성을 위해 PowerShell이나 Azure CLI를 선택하세요. 다음 예시들은 SQL Server를 초기 기본 서버로 사용합니다. SQL Managed Instance에서 매칭 업데이트 정책을 적용해 시작할 수도 있지만, 그 생성 워크플로우는 여기서는 다루지 않습니다.

스크립트 설정의 경우, 복제하려는 모든 데이터베이스를 포함한 가용성 그룹을 재사용하거나 생성하는 스크립트 설정 단계를 완료한 후, PowerShell이나 Azure CLI 생성 명령을 실행하기 전에 분산 가용성 그룹을 생성하세요. 또는 독립형 데이터베이스로 시작한다면, 이 섹션의 SSMS 절차가 링크 설정 시 단일 노드 가용성 그룹을 자동으로 생성합니다.

다중 데이터베이스 링크 모드의 경우, 스크립트에 명시적으로 명 MultiDatabase 시하고 가용성 그룹에 있는 모든 데이터베이스 이름을 제공하세요. SingleDatabase이 생략되면 PowerShell은 -LinkMode를 기본값으로 사용합니다. --link-mode MultiDatabase PowerShell 또는 -LinkMode MultiDatabase Azure CLI에서 사용하세요.

Warning

모든 SQL Server 복제본에 필요한 누적 업데이트가 적용되어 있고 MultiDatabase 저장 프로시저를 통해 다중 데이터베이스 링크 모드가 활성화되어 있지 않다면, sys.sp_multidb_milink 링크 모드로 링크를 만들지 마세요. 이 모드를 지원하지 않는 SQL Server 빌드에 이 모드를 사용하면 SQL Server가 예측 불가능하게 동작할 수 있습니다. 먼저 지원 가능성을 검토하고 다중 데이터베이스 링크 모드를 활성화하세요 .

SSMS의 New SQL Managed Instance 링크 마법사를 사용하여 기존 가용성 그룹이나 독립 실행형 데이터베이스에서 Azure SQL Managed Instance로 링크를 생성하세요.

  1. SSMS를 열고 SQL Server에 연결하세요. 다중 노드 가용성 그룹의 경우, 리스너의 IP 주소를 통해 연결합니다. 독립 실행형 데이터베이스나 단일 노드 그룹의 경우, SQL Server 인스턴스에 연결하세요.

  2. 개체 탐색기에서 복제하고 싶은 데이터베이스를 우클릭한 후 Azure SQL Managed Instance 링크 위에 마우스를 올리고 New...를 선택하면 New SQL Managed Instance 링크 마법사를 엽니다.

    SSMS에서 New Managed Instance link 명령어를 선택한 데이터베이스 컨텍스트 메뉴 스크린샷입니다.

  3. 마법사의 소개 페이지에서 다음을 선택합니다.

  4. 링크 옵션 지정 페이지에서 다중 데이터베이스 링크 모드가 활성화되어 있는지 확인하고, 링크 이름을 제공하세요. 모드 체크박스는 읽기 전용이며, SQL Server의 설정을 반영합니다sys.sp_multidb_milink. 체크박스를 선택해서 모드를 활성화할 수 없습니다. 모드가 활성화되어 있지 않다면, SQL Server 버전과 누적 업데이트를 확인한 후 모든 복제본에서 해당 기능을 활성화한 후 계속 진행하세요. 링크 이름은 소문자로 사용하세요. 하이픈은 시작이나 끝을 제외하고는 허용됩니다. 다음을 선택합니다.

    링크 지정 옵션 스크린샷과 링크 이름과 활성화된 읽기 전용 다중 데이터베이스 모드 체크박스가 표시됩니다.

  5. 요구 사항 페이지에서 마법사는 귀하의 보조 복제본에 대한 링크를 설정하기 위한 요구 사항을 검증합니다. 모든 요구 사항을 확인한 후 다음을 선택하거나 충족되지 않는 요구 사항을 해결한 다음, 유효성 검사 다시 실행을 선택합니다.

  6. Select Databases 페이지에서 기존 가용성 그룹 또는 독립 실행형 데이터베이스 중 하나를 선택하세요:

    • AG01을 선택하여 DB01, DB03, DB05, DB07 등 모든 데이터베이스를 복제합니다.
    • 또는 독립형 DB10 과 DB11을 선택하세요. 다중 데이터베이스 링크 모드가 활성화된 상태에서 SSMS는 현재 SQL Server 인스턴스에 단일 노드 가용성 그룹을 생성하고, 두 데이터베이스를 그 안에 배치한 뒤 하나의 링크를 통해 복제합니다.

    선택 사항을 검토한 후 다음을 선택하세요.

    Select Databases가 기존 AG01 그룹 또는 독립 실행형 데이터베이스인 DB10과 DB11을 제공하는 스크린샷입니다.

  7. Specify Secondary Replica 페이지에서 Add secondary replica를 선택하세요. SQL 관리 인스턴스가 보조 인스턴스라면, Azure에 로그인한 후 구독, 리소스 그룹, 보조 SQL 관리 인스턴스를 선택하여 인스턴스에 연결하세요.

    Specify Secondary Replica 스크린샷으로, SQL Server를 기본 모델로 하고 SQL Managed Instance를 보조 계정으로 표시하고 있습니다.

  8. 엔드포인트 설정을 검토하고 SSMS로 링크 구성을 안내한 대로 남은 검증 단계를 완료하세요.

  9. 요약 페이지에서 구성을 다시 한 번 검토합니다. 선택적으로, 스크립트를 생성하려면 스크립트 를 선택하세요. 링크를 만들 준비가 되면 마침을 선택합니다.

  10. 모든 단계가 완료되면 결과 페이지에서 성공적으로 완료된 작업 옆에 확인 표시가 나타납니다. 이제 창을 닫을 수 있습니다.

다중 데이터베이스 모드는 가용성 그룹의 데이터베이스를 하나의 링크를 통해 복제합니다. 이 방법은 각 데이터베이스별로 별도의 링크를 생성하는 단일 데이터베이스 모드에서 여러 데이터베이스를 선택하는 것과는 다릅니다.

복제 검증

링크를 만들거나 데이터베이스를 추가한 후, 데이터는 현재 주 복제본에서 보조 복제본으로 복제됩니다. SQL Server 또는 Azure SQL Managed Instance 중 하나가 초기 프라이머리가 될 수 있습니다. 역할이 뒤바뀌면 데이터는 반대 방향으로 복제됩니다. 데이터베이스 크기와 네트워크 속도에 따라 각 데이터베이스는 처음에 보조 복제본에서 복원 상태일 수 있습니다. 초기 시드 배정이 완료되면 데이터베이스는 보조 복제본으로 복원되고 읽기 전용 워크로드가 준비됩니다.

어느 복제본이든 SSMS의 개체 탐색기를 사용하여 복제된 각 데이터베이스의 동기화된 상태를 확인하세요. Always On High Availability 및 Availability Groups를 펼치면 링크에 생성된 분산 가용성 그룹을 볼 수 있습니다.

SQL Server가 주 버전일 때, 지원되는 빌드에서 trace flag 12381이 활성화되어 있다면 시딩 중에 트랜잭션 로그 백업을 계속할 수 있습니다. 로그 백업을 일시정지하여 조기 절단을 방지한다면, 초기 시딩이 끝난 후 다시 백업을 재개하세요. 로그 백업 일정이 없는 각 데이터베이스의 경우, 시딩 중에는 사용하지 않고 초기 시딩이 완료된 후에만 첫 트랜잭션 로그 백업 을 수행합니다. 모든 링크에 대해 시딩이 완료된 후에는 플래그를 활성화했다면 비활성화하고, SQL Server가 기본 상태인 동안 정기적으로 SQL Server 트랜잭션 로그 백업을 하세요. Azure SQL Managed Instance가 기본 인스턴스일 때는 트랜잭션 로그 백업을 자동으로 수행합니다. SQL Server가 보조 데이터베이스일 때는 SQL Server 로그 백업을 수동으로 할 필요가 없습니다.

시딩 중 조기 로그가 절단되면 SQL Managed Instance 오류 로그에 1408과 1412 오류가 발생할 수 있습니다. 이를 지원하는 빌드에서는 trace flag 12381 가 이 절단을 방지합니다. 시딩이 완료되면 생성된 모든 링크에 대해 비활성화하고, 활성화된 동안 트랜잭션 로그 사용량, 성장률, 여유 디스크 공간을 모니터링하세요. 필요한 기록이 유지되는 동안 로그 백업은 계속될 수 있습니다. 이 보존은 시드 후 일반적인 로그 백업을 대체하지 않습니다. 로그가 조기에 잘리는 것을 방지를 참조하세요.

데이터베이스 추가

SSMS 마법사를 사용해 현재 기본 데이터베이스(SQL Server나 SQL Managed Instance)에서 데이터베이스를 추가하세요. 마법사는 필요한 변경을 자동화합니다. 고급 자동화를 원한다면 PowerShell이나 Azure CLI를 사용하세요. 데이터베이스 추가는 주 측에서 단일 작업입니다.

데이터베이스를 추가하기 전에 기존 링크가 다중 데이터베이스 링크 모드를 사용하고, 목적지가 충분한 데이터베이스 용량과 저장 공간이 있으며, 기존 데이터베이스 이름이 새 데이터베이스와 충돌하지 않는지 확인하세요. SQL Server가 기본 모드일 때는 가용성 그룹에 이미 속하지 않은 모든 새 데이터베이스를 전체 복구 모델로 설정하고, SSMS 백업 절차를 사용해 완전한 백업을 생성합니다.

SSMS가 포함된 데이터베이스 추가

기존 다중 데이터베이스 링크에 데이터베이스를 추가하려면 Azure SQL Managed Instance 링크에 데이터베이스 추가 마법사를 사용하세요:

  1. SSMS에서 현재 주 계정과 연결하세요. 개체 탐색기에서 Always On High Availability 및 Availability Groups를 펼칩니다.

  2. 링크의 분산 가용성 그룹을 우클릭하고 Azure SQL Managed Instance 링크 위에 마우스를 올린 후 데이터베이스 추가를 선택하세요.

    SSMS의 분산 가용성 그룹 컨텍스트 메뉴 스크린샷으로, 데이터베이스 추가와 데이터베이스 제거 명령어가 표시됩니다.

  3. 소개와 Azure 로그인 과정을 거쳐 '선택 링크' 페이지에서 다중 데이터베이스 링크를 선택하세요.

  4. 데이터베이스 선택 페이지에서 추가하고 싶은 데이터베이스를 선택하세요. Ready 상태가 있는 데이터베이스만 추가할 수 있습니다. 링크에 이미 포함된 데이터베이스는 선택된 링크의 '이미 일부'로 표시됩니다. 진행하기 전에 자격 문제를 먼저 해결하세요.

    DB10과 DB11이 선택되고 기존 링크 멤버가 유지된 데이터베이스 추가 마법사의 스크린샷입니다.

  5. 검증을 완료하고 요약을 검토하세요. 변경 사항을 실행하려면 Finish 를 선택하거나, 변경 사항을 실행하지 않고도 스크립트를 생성하려면 Script 를 선택해 별도로 검토, 맞춤화, 실행할 수 있습니다. 마법사에서 변경을 실행한다면, 종료 전에 결과를 확인하세요.

스크립트가 포함된 데이터베이스 추가

현재 기본 노드에서 추가를 실행하세요. 그 경우에 맞는 지침을 따르세요.

SQL Server가 기본 상태일 때

T-SQL을 사용해 각 데이터베이스를 가용성 그룹에 추가하세요. 이 링크는 추가 사항을 SQL Managed Instance로 전파합니다. SQL Managed Instance에 대해서는 추가 조치가 필요하지 않습니다. 이 추가 기능을 위해 PowerShell이나 Azure CLI 업데이트를 실행하지 마세요.

SQL Managed Instance가 기본 인스턴스일 때

PowerShell이나 Azure CLI를 사용해 SQL Managed Instance의 링크를 업데이트하세요. 이 링크는 추가된 데이터베이스를 자동으로 가용성 그룹으로 전파합니다. SQL Server에서 별도의 단계는 필요하지 않습니다. 보유하고자 하는 기존 데이터베이스와 새 데이터베이스를 포함한 전체 회원 자격을 제공하세요. 제공된 명단은 현재 회원 명단을 대체합니다. 데이터베이스를 누락하면 링크 멤버 자격에서 제외됩니다.

예를 들어, 링크에 이미 DB09, DB09, DB07, DB05가 포함되어 있을 때 DB01를 추가하려면, 해당 네 이름을 목록에 그대로 유지하고 DB03도 목록에 추가합니다. 리소스와 데이터베이스 이름을 값으로 바꾸세요.

PowerShell 변수 Azure CLI 변수 Description
$ResourceGroup ResourceGroupName SQL 관리 인스턴스를 포함하는 리소스 그룹입니다.
$ManagedInstanceName ManagedInstanceName 링크를 호스팅하는 SQL 관리 인스턴스의 이름입니다.
$DAGName DAGName 기존 링크 이름이 생성 시 사용된 분산 가용성 그룹 이름과 일치합니다.
$DatabaseNames DatabaseNames 보유할 기존 데이터베이스와 추가할 새로운 데이터베이스의 전체 목록. 예시는 DB03, DB07, DB05, DB01를 유지하고 DB09를 추가합니다.

PowerShell에서 Update-AzSqlInstanceLink 를 사용하세요. 생성 시의 $ResourceGroup, $ManagedInstanceName, $DAGName를 다시 사용하거나, 업데이트하려는 리소스 그룹, 인스턴스 및 링크로 설정하세요:

# Include every existing database to retain and each new database to add.
$DatabaseNames = @("DB01", "DB03", "DB05", "DB07", "DB09")

Update-AzSqlInstanceLink -ResourceGroupName $ResourceGroup -InstanceName $ManagedInstanceName -Name $DAGName -Database $DatabaseNames

새로 추가된 각 데이터베이스마다 복제 검증 단계를 반복합니다. 수동 로그 백업 단계는 SQL Server가 주 서버일 때만 따르세요.

데이터베이스 제거

현재 주 복제본에서 SSMS 마법사를 사용하여 양쪽에서 제거 작업을 자동화하세요. 데이터베이스를 제거하려면 SQL Managed Instance의 링크와 가용성 그룹에서 데이터베이스를 제거해야 합니다. 한쪽만 제거한다고 해서 작업이 완성되지는 않습니다.

Warning

SQL Managed Instance에서 링크에서 데이터베이스를 제거하고 가용성 그룹에 남기면 가용성 그룹이 건강하지 않게 됩니다. 양쪽에서 완전 제거 스크립트를 사용한 제거의 경우 현재 기본 설정에 해당하는 섹션의 안내를 따르세요.

SSMS가 포함된 데이터베이스 제거

SQL Server 또는 SQL Managed Instance가 기본 방식이든 다음 단계들이 적용됩니다:

  1. SSMS에서 현재 주 계정과 연결하세요. 개체 탐색기에서 Always On High Availability 및 Availability Groups를 펼칩니다.

  2. 링크의 분산 가용성 그룹을 우클릭한 후 Azure SQL Managed Instance 링크 위에 마우스를 올린 후 데이터베이스 제거를 선택하세요.

    데이터베이스 제거 명령어가 선택된 분산 가용성 그룹 메뉴 스크린샷입니다.

  3. Azure SQL Managed Instance Link에서 데이터베이스 제거 마법사에서 소개 및 Azure 로그인 단계를 진행한 후 링크 선택에서 링크를 선택하세요.

  4. 데이터베이스 선택에서 제거할 데이터베이스를 선택하세요. 예를 들어, DB05 를 선택해 링크에서 제거한 후 다음을 선택하세요.

    DB05가 링크에서 제거되도록 선택한 데이터베이스 제거 마법사 스크린샷입니다.

  5. 검증을 완료하고 요약을 검토한 후 제거를 실행하거나 스크립트를 선택하여 생성된 명령어를 먼저 검토합니다. 위저드를 닫기 전에 성공적인 완료 여부를 확인 해 주세요.

스크립트가 포함된 데이터베이스 제거

두 인스턴스 모두에서 데이터베이스를 제거하세요. 현재 기본 인스턴스가 어떤 인스턴스를 먼저 업데이트할지 결정합니다.

PowerShell과 Azure CLI 예시는 다음과 같은 변수를 사용합니다:

PowerShell 변수 Azure CLI 변수 Description
$ResourceGroup ResourceGroupName SQL 관리 인스턴스를 포함하는 리소스 그룹입니다.
$ManagedInstanceName ManagedInstanceName 링크를 호스팅하는 SQL 관리 인스턴스의 이름입니다.
$DAGName DAGName 기존 링크 이름이 생성 시 사용된 분산 가용성 그룹 이름과 일치합니다.
$DatabaseNames DatabaseNames 삭제할 데이터베이스를 제외한 유지할 데이터베이스 전체 목록. 예시에서는 DB07를 제외하고 DB03, DB09, DB05, 및 DB01는 유지합니다.

SQL Server가 기본 상태일 때

  1. T-SQL을 사용해 데이터베이스를 가용성 그룹에서 제거하세요.
  2. PowerShell이나 Azure CLI를 사용해 이 섹션에서 보이는 대로 SQL Managed Instance의 링크에서 데이터베이스를 제거하세요.

SQL Managed Instance 단계에서는 유지할 데이터베이스 전체 목록을 제공하고, 제거하려는 것만 생략하세요. 예를 들어, 링크에 DB09, DB01, DB05, DB07, DB05가 포함되어 있다면 다음 명령은 DB03를 제거하고 나머지 네 개는 유지합니다. 리소스와 데이터베이스 이름을 값으로 바꾸세요.

Update-AzSqlInstanceLink를 사용하세요. 생성 시 사용한 $ResourceGroup, $ManagedInstanceName, $DAGName를 다시 사용하거나, 업데이트할 리소스 그룹, 인스턴스 및 링크로 설정하세요:

# Include only the databases to retain, excluding DB05.
$DatabaseNames = @("DB01", "DB03", "DB07", "DB09")

Update-AzSqlInstanceLink -ResourceGroupName $ResourceGroup -InstanceName $ManagedInstanceName -Name $DAGName -Database $DatabaseNames

SQL Managed Instance가 기본 인스턴스일 때

  1. PowerShell이나 Azure CLI를 사용해 이 섹션에서 보이는 대로 SQL Managed Instance의 링크에서 데이터베이스를 제거하세요.
  2. SQL Server에서 T-SQL을 사용해 데이터베이스를 가용성 그룹에서 제거하세요. 이 단계를 완료하기 전까지는 제거가 완료되지 않습니다.

SQL Managed Instance 단계에서는 유지할 데이터베이스 전체 목록을 제공하고, 제거하려는 것만 생략하세요. 예를 들어, 링크에 DB09, DB01, DB05, DB07, DB05가 포함되어 있으면 다음 명령어는 DB03를 제거하고 나머지 네 개는 유지합니다. 리소스와 데이터베이스 이름을 값으로 바꾸세요.

Update-AzSqlInstanceLink를 사용하세요. 생성 시 사용한 $ResourceGroup, $ManagedInstanceName, $DAGName를 다시 사용하거나, 업데이트할 리소스 그룹, 인스턴스 및 링크로 설정하세요:

# Include only the databases to retain, excluding DB05.
$DatabaseNames = @("DB01", "DB03", "DB07", "DB09")

Update-AzSqlInstanceLink -ResourceGroupName $ResourceGroup -InstanceName $ManagedInstanceName -Name $DAGName -Database $DatabaseNames

삭제된 데이터베이스가 더 이상 링크나 가용성 그룹에 속하지 않는지 확인하세요. 복제에서 데이터베이스를 제거하는 것은 보관된 복사본을 삭제하는 것과 다릅니다. 더 이상 필요하지 않은 복사본을 삭제할지 결정하기 전에 두 인스턴스 모두의 데이터베이스를 검토하세요.

페일 오버 또는 Azure로 전환

SSMS나 스크립트의 기존 페일오버 절차를 사용해 SQL Server와 Azure SQL Managed Instance 간 역할을 반전시키세요. 역할 전환은 SQL 관리 인스턴스가 SQL Server 버전에 맞는 업데이트 정책을 사용해야 합니다. 일방향 복제 및 Azure SQL Managed Instance로의 전환을 위해서는 업데이트 정책이 SQL Server 버전과 일치하거나 더 높아야 합니다. 정책이 맞지 않으면 데이터를 복제하거나 SQL Server로 다시 실패할 수 없습니다. 지원되는 조합을 검토하세요. 마이그레이션 및 컷오버 가이드는 링크가 포함된 마이그레이션을 참조하세요.

복제 모니터링 및 문제 해결

다음 동적 관리 뷰(DMV)와 SQL Server의 카탈로그 뷰를 사용하여 주요 가용성 그룹, 복제체 연결성, 각 데이터베이스의 복제 상태를 확인하세요:

View 정보
sys.availability_groups 내부 데이터베이스별 복제 그룹을 제외한 가용성 그룹.
sys.dm_hadr_availability_replica_states 메인 그룹과 내부 데이터베이스별 복제 그룹의 역할, 연결성 및 동기화 건강 상태.
sys.dm_hadr_database_replica_states 데이터베이스 수준의 복제 상태 및 동기화 건강 상태.
sys.dm_hadr_internal_availability_groups 다중 데이터베이스 링크 모드에서 개별 데이터베이스별로 생성되는 내부 복제 그룹.
sys.dm_hadr_internal_availability_replicas 다중 데이터베이스 링크 모드의 내부 각 데이터베이스별 복제 그룹에 속하는 복제본.
SELECT * FROM sys.availability_groups;
SELECT * FROM sys.dm_hadr_availability_replica_states;
SELECT * FROM sys.dm_hadr_database_replica_states;
SELECT * FROM sys.dm_hadr_internal_availability_groups;
SELECT * FROM sys.dm_hadr_internal_availability_replicas;

내부 복제 DMV가 없거나, 저장 sys.sp_multidb_milink 프로시저 실행 중에 사용 불가가 보고된다면, 해당 복제본에 설치된 SQL Server 버전과 누적 업데이트를 확인하세요. 일반적인 연결 및 복제 문제 해결에 대해서는 'Troubleshoot the Managed Instance link'를 참조하세요.

Limitations

다중 데이터베이스 링크를 통해 가용성 그룹을 확장할 때 다음과 같은 제한사항을 고려해야 합니다:

  • 링크 이름은 소문자를 사용해야 합니다. 하이픈은 허용되지만, 이름이 하이픈으로 시작하거나 끝날 수는 없습니다.
  • SQL Server 2022 CU27 또는 SQL Server 2025 CU9 이하의 SQL Server 복제본은 다중 데이터베이스 모드에서 활성화된 상태에서 다운그레이드하지 마세요. 필요한 CU 이하로 다운그레이드하면 장애 조치 없이도 예측할 수 없는 문제가 발생할 수 있습니다.
  • 포함된 가용성 그룹은 지원되지 않습니다.
  • 단일 데이터베이스 링크와 다중 데이터베이스 링크는 동일한 SQL Server 인스턴스에서 공존할 수 없습니다.
  • 링크의 모드를 변경할 수는 없습니다. 단일 데이터베이스와 다중 데이터베이스 링크 모드를 전환하려면, 기존 링크를 모두 제거하고, 모든 SQL Server 복제본에서 모드를 변경한 후 새 모드에서 링크를 다시 생성합니다.
  • 기존 가용성 그룹에 대한 링크를 생성할 때, 그 그룹의 모든 데이터베이스를 복제해야 합니다. 그 그룹 내 데이터베이스의 일부만 선택할 수는 없습니다.
  • 대상 SQL 관리 인스턴스의 남은 데이터베이스 용량이 복제할 수 있는 데이터베이스 수를 제한합니다. General Purpose and Business Critical Instance는 인스턴스당 최대 100개의 데이터베이스를 지원하며, 차세대 General Purpose는 최대 500개의 데이터베이스를 지원합니다. 기존 데이터베이스도 이 한도에 포함된다. 예를 들어, 데이터베이스 수가 100개이고 기존 데이터베이스가 10개인 인스턴스는 90개의 데이터베이스를 더 저장할 수 있습니다. 자세한 내용은 자원 제한을 참조하세요.
  • 대상 SQL managed instance의 가용 데이터베이스 용량을 넘어 가용성 그룹에 데이터베이스를 추가하는 것은 SQL Server에서 성공할 수 있지만, SQL Managed Instance로의 복제는 실패합니다. 이 상태는 링크가 일관성 없는 상태로 남아, 복제되지 않은 데이터베이스를 가용성 그룹에서 수동으로 제거해야 할 수 있습니다.
  • 데이터베이스 추가는 링크를 통해 전파되지만, 한쪽에서 데이터베이스를 제거한다고 해서 다른 쪽 데이터베이스가 자동으로 사라지는 것은 아닙니다. 가용성 그룹에서 데이터베이스를 제거하면, 그 복사본은 SQL Managed Instance에 남아 있습니다. SQL Managed Instance에서 링크에서 데이터베이스를 제거하면, 데이터베이스는 링크를 통한 복제 없이 가용성 그룹에 남아 수동으로 정리해야 합니다.
  • SSMS를 통해 기존 링크에 데이터베이스를 추가할 때는 Ready 상태인 데이터베이스만 추가할 수 있습니다. 다른 가용성 그룹에 속하거나 목적지에 이미 존재하는 이름을 가진 데이터베이스를 추가할 수 없습니다.