자습서: 활성 지역 복제 및 장애 조치(failover) 구성(Azure SQL Database)

적용 대상:Azure SQL Database

이 문서에서는 Azure Portal 또는 Azure CLI를 사용하여 Azure SQL Database에 대한 활성 지역 복제를 구성하고 장애 조치(Failover)를 시작하는 방법을 보여줍니다.

자동 장애 조치(failover) 그룹은 Azure SQL Database를 사용하는 장애 조치(failover) 그룹Azure SQL Managed Instance를 사용하는 장애 조치(failover) 그룹을 참조하세요.

필수 조건

이 문서에서는 SQL Database에서 활성 지역 복제를 구성하는 방법을 안내 합니다. Azure Portal, Azure CLI, Azure CLI(sql up) 또는 PowerShell을 사용하여 단일 데이터베이스를 만드는 방법을 알아보려면 빠른 시작: 단일 데이터베이스 만들기 - Azure SQL Database를 참조하세요.

보조 데이터베이스 추가

다음 단계에서는 지역에서 복제 파트너 관계에 새 보조 데이터베이스를 만듭니다.

보조 데이터베이스를 추가하려면 구독 소유자 또는 공동 소유자여야 합니다.

보조 데이터베이스는 주 데이터베이스와 이름이 같고, 기본적으로 서비스 계층과 컴퓨팅 크기가 동일합니다. 보조 데이터베이스는 단일 데이터베이스 또는 풀링된 데이터베이스가 될 수 있습니다. 자세한 내용은 DTU 기반 구매 모델vCore 기반 구매 모델을 참조하세요. 보조가 만들어지고 시드된 후 데이터는 주 데이터베이스에서 새로운 보조 데이터베이스로 복제되기 시작합니다.

보조 복제본(replica)이 DR(재해 복구)에만 사용되고 읽기 또는 쓰기 워크로드가 없는 경우, 새 활성 지역 복제 관계를 구성할 때 데이터베이스를 대기로 지정하여 라이선스 비용을 절감할 수 있습니다. 자세한 내용은 라이선스가 필요 없는 대기 복제본(replica)을 검토하세요.

참고 항목

파트너 데이터베이스가 이미 있는 경우(예: 이전 지역에서 복제 관계를 종료한 결과) 명령이 실패합니다.

  1. Azure Portal에서 지역에서 복제를 위해 설치하려는 데이터베이스를 찾습니다.

  2. SQL Database 페이지에서 데이터베이스를 선택하고, 데이터 관리로 이동하고, 복제본을 선택한 다음, 복제본 만들기를 선택합니다.

    Screenshot that shows the Configure geo-replication option.

  3. 보조 데이터베이스에 대해 서버를 선택하거나 만들고 필요에 따라 컴퓨팅 + 스토리지 옵션을 구성합니다. 보조 서버에 대해 지역을 선택할 수 있지만 쌍을 이루는 지역이 권장됩니다.

    Screenshot that shows the Create and configure replica screen.

    필요에 따라 탄력적 풀에 보조 데이터베이스를 추가할 수 있습니다. 풀에 보조 데이터베이스를 만들려면 SQL 탄력적 풀 사용 여부? 옆에서 를 선택하고 대상 서버에서 풀을 선택합니다. 대상 서버에 풀이 이미 있어야 합니다. 이 워크플로는 풀을 만들지 않습니다.

  4. 검토 + 만들기를 클릭하고, 정보를 검토한 다음, 만들기를 클릭합니다.

  5. 보조 데이터베이스가 생성되고 배포 프로세스가 시작됩니다.

    Screenshot that shows the deployment status of the secondary database.

  6. 배포가 완료되면 보조 데이터베이스에 해당 상태가 표시됩니다.

    Screenshot that shows the secondary database status after deployment.

  7. 주 데이터베이스 페이지로 돌아간 후 복제본을 선택합니다. 보조 데이터베이스가 지역 복제본 아래에 나열됩니다.

    Screenshot that shows the SQL database primary and geo replicas.

장애 조치(failover) 시작

보조 데이터베이스가 주 데이터베이스가 되도록 전환할 수 있습니다.

  1. Azure Portal에서 지역에서 복제 파트너 관계에 있는 주 데이터베이스를 찾습니다.

  2. 데이터 관리로 스크롤한 후 복제본을 선택합니다.

  3. 지역 복제본 목록에서 새 주 데이터베이스로 지정할 데이터베이스를 선택하고, 줄임표를 선택한 후 강제 장애 조치(failover) 를 선택합니다.

    Screenshot that shows selecting forced failover from the drop-down.

  4. 를 선택하여 장애 조치(failover)를 시작합니다.


이 명령은 보조 데이터베이스를 주 역할로 즉시 전환합니다. 이 프로세스는 일반적으로 30초 이내로 완료됩니다.

역할이 전환되는 동안 두 데이터베이스를 모두 사용할 수 없는, 0-25초의 정도의 짧은 기간이 있습니다. 주 데이터베이스에 여러 개의 보조 데이터베이스가 있는 경우 이 명령을 사용하면 새로운 주 데이터베이스에 연결할 다른 보조 데이터베이스가 자동으로 다시 구성됩니다. 전체 작업은 정상적인 상황에서 완료하는데 1분 미만이 걸려야 합니다.

보조 데이터베이스 제거

이 작업은 보조 데이터베이스에 대한 복제를 영구적으로 중지하고 보조의 역할을 일반적인 읽기-쓰기 데이터베이스로 변경합니다. 보조 데이터베이스에 대한 연결이 끊어진 경우 명령이 성공하지만 연결이 복원된 후에야 보조는 읽기-쓰기가 수행됩니다.

  1. Azure Portal에서 지역에서 복제 파트너 관계에 있는 주 데이터베이스를 찾습니다.
  2. 복제본을 선택합니다.
  3. 지역 복제본 목록에서 지역 복제본 파트너 관계에서 제거하려는 데이터베이스를 선택하고, 줄임표를 선택한 후 복제 중지를 선택합니다.
  4. 확인 창이 열립니다. 지역에서 복제 파트너 관계에서 데이터베이스를 제거하려면 를 클릭합니다. (복제에 포함되지 않는 읽기-쓰기 데이터베이스로 설정)

구독 간 지역 복제

주 데이터베이스와 다른 구독에서 지역 보조 데이터베이스를 만들려면 이 섹션의 단계를 따릅니다. 이 위치는 동일한 Microsoft Entra ID(이전의 Azure Active Directory) 내일 수도 있고, 아닐 수도 있습니다.

  1. 아래 T-SQL 명령을 실행되는 클라이언트 컴퓨터의 IP 주소를 주 서버 및 보조 서버의 서버 방화벽에 모두 추가합니다. 동일한 클라이언트 머신에서 주 서버에 연결된 동안 다음 쿼리를 실행하여 IP 주소를 확인할 수 있습니다.

    select client_net_address from sys.dm_exec_connections where session_id = @@SPID;
    

    자세한 내용은 방화벽 구성을 참조하세요.

  2. 서버의 master 데이터베이스에서 활성 지역 복제 설정 전용 SQL 인증 로그인을 만듭니다. 로그인 이름 및 암호를 필요한 대로 조정합니다.

    create login geodrsetup with password = 'ComplexPassword01';
    
  3. 동일한 데이터베이스에서 로그인에 대한 사용자를 만들고 dbmanager 역할에 추가합니다.

    create user geodrsetup for login geodrsetup;
    alter role dbmanager add member geodrsetup;
    
  4. 새 로그인의 SID 값을 기록해 둡니다. 다음 쿼리를 사용하여 SID 값을 얻습니다.

    select sid from sys.sql_logins where name = 'geodrsetup';
    
  5. master 데이터베이스가 아닌 데이터베이스에 연결하고 동일한 로그인에 대한 사용자를 만듭니다.

    create user geodrsetup for login geodrsetup;
    
  6. 동일한 데이터베이스에서 db_owner 역할에 사용자를 추가합니다.

    alter role db_owner add member geodrsetup;
    
  7. 보조 서버의 master 데이터베이스에서 주 서버와 마찬가지로 동일한 이름, 암호 및 SID를 사용하여 동일한 로그인을 만듭니다. 아래 샘플 명령의 16진수 SID 값을 4단계에서 얻은 값으로 바꿉니다.

    create login geodrsetup with password = 'ComplexPassword01', sid=0x010600000000006400000000000000001C98F52B95D9C84BBBA8578FACE37C3E;
    
  8. 동일한 데이터베이스에서 로그인에 대한 사용자를 만들고 dbmanager 역할에 추가합니다.

    create user geodrsetup for login geodrsetup;
    alter role dbmanager add member geodrsetup;
    
  9. geodrsetup 로그인을 사용하여 서버의 master 데이터베이스에 연결하고, 보조 서버에서 지역 보조 만들기를 시작합니다. 데이터베이스 이름 및 보조 서버 이름을 필요한 대로 조정합니다. 명령이 실행되면 데이터베이스의 sys.dm_geo_replication_link_status 보기 및 서버의 master 데이터베이스의 sys.dm_operation_status 보기를 쿼리하여 지역 보조 만들기를 모니터링할 수 있습니다. 지역 보조를 만드는 데 필요한 시간은 주 데이터베이스 크기에 따라 다릅니다.

    alter database [dbrep] add secondary on server [servername];
    
  10. 지역 보조를 성공적으로 만든 후에는 이 절차에 따라 만든 사용자, 로그인 및 방화벽 규칙을 제거해도 됩니다.

참고 항목

설정 및 지역 장애 조치(failover)를 포함한 구독 간 지역 복제 작업은 REST API T-SQL 명령을 사용해서만 지원됩니다.

주 서버를 프라이빗 엔드포인트에 연결할 때 T-SQL 사용하여 지역 보조를 추가할 수 없습니다. 프라이빗 엔드포인트가 구성되었지만 공용 네트워크 액세스가 허용되는 경우 공용 IP 주소에서 주 서버에 연결할 때 지역 보조를 추가할 수 있습니다. 지역 보조가 추가된 후에는 공용 네트워크 액세스를 거부할 수 있습니다.

Microsoft Entra ID 전용 인증이 주 논리 서버 또는 보조 논리 서버에서 활성 상태인(사용하도록 설정된) 경우에는 다른 Microsoft Entra 테넌트의 논리 서버에 지역 보조를 만들 수 없습니다.

다음 단계