Google Cloud NetApp Volumes 블록 스토리지를 사용하여 SQL Server Always On 가용성 그룹 구성

이 튜토리얼에서는 인터넷 소형 컴퓨터 시스템 인터페이스 (iSCSI) 프로토콜과 함께 Google Cloud NetApp Volumes 블록 스토리지를 사용하여 Compute Engine 가상 머신 (VM) 인스턴스에 Microsoft SQL Server Always On 가용성 그룹을 배포하는 방법을 설명합니다. SQL Server 스토리지에 NetApp Volumes를 사용하면 스냅샷, 클로닝과 같은 고급 데이터 관리 기능이 있는 완전 관리형 고성능 스토리지 서비스에 액세스할 수 있습니다.

목표

이 튜토리얼에서는 다음 작업을 안내합니다.

비용

이 튜토리얼에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud구성요소를 사용합니다.

프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용합니다.

시작하기 전에

시작하기 전에 다음 사항을 확인하세요.

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Compute Engine, 네트워킹, ID 및 액세스 관리, Cloud Storage에 대한 관리 권한이 있는 Google Cloud 프로젝트
  4. 타겟 리전에 서브넷이 있는 VPC 네트워크
  5. 리전 내에 설정된 Active Directory 및 DNS 서비스
  6. 컴퓨터를 도메인에 조인하고 RDP를 사용하여 VM에 액세스할 수 있는 권한이 있는 Active Directory 사용자입니다.
  7. VPC 방화벽 규칙이 iSCSI (TCP 3260), WSFC (UDP/TCP 3343), SQL Server (TCP 1433), SQL Server AG 엔드포인트 (TCP 5022), SMB (TCP 445), RPC (TCP 135, TCP 49152~65535)의 노드 간 트래픽을 허용하는지 확인합니다.
  8. NetApp Volumes API를 사용 설정합니다.
  9. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    도메인 계정 구성

    SQL Server용 Active Directory 계정 두 개를 구성합니다.

    • 설치 계정: VM에 로그인하고 클러스터와 가용성 그룹을 구성할 수 있는 도메인 관리자 권한이 있는 계정 (예: DOMAIN\DomainAdmin)
    • 서비스 계정: SQL Server VM 모두에서 SQL Server 서비스 및 SQL 에이전트 서비스의 계정 (예: DOMAIN\sqlsvc)입니다.

    SQL Server용 Compute Engine VM 만들기

    Windows Server 2025에서 SQL Server 2022 Enterprise를 실행하는 Compute Engine 인스턴스 두 개 (sqlnode1sqlnode2)를 만듭니다.

    1. Google Cloud 콘솔에서 인스턴스 만들기 페이지로 이동합니다.

      인스턴스 만들기로 이동

    2. 이름sqlnode1를 입력합니다.

    3. 머신 구성 섹션에서 범용을 선택한 후 다음을 수행합니다.

      1. 시리즈 목록에서 N4를 선택합니다.
      2. 머신 유형 목록에서 n4-highmem-8 (vCPU 8개, 64GB 메모리)을 선택합니다.
    4. VPC를 구성한 리전영역을 선택합니다.

    5. 부팅 디스크 섹션에서 변경을 클릭한 후 다음을 수행합니다.

      1. 공개 이미지 탭의 운영체제 목록에서 SQL Server on Windows Server를 선택합니다.
      2. 버전 목록에서 SQL Server 2022 Enterprise on Windows Server 2025 Datacenter를 선택합니다.
      3. 부팅 디스크 유형 목록에서 Hyperdisk Balanced를 선택합니다.
      4. 크기 (GB)50로 설정합니다.
      5. 부팅 디스크 구성을 저장하려면 선택을 클릭합니다.
    6. 고급 옵션 섹션을 펼친 후 네트워킹을 펼칩니다.

    7. 네트워크 인터페이스에서 프로젝트의 VPC 및 서브넷을 선택합니다.

    8. 네트워크 인터페이스 카드 유형 목록에서 gVNIC를 선택합니다.

    9. 네트워크 서비스 등급에서 프리미엄을 선택합니다.

    10. 만들기를 클릭합니다.

    11. 이 단계를 반복하여 sqlnode2라는 두 번째 인스턴스를 만듭니다.

    서버를 도메인에 조인하고 클러스터링 준비

    sqlnode1sqlnode2 모두에서 다음 단계를 실행합니다.

    1. 로컬 관리자 계정을 사용하여 VM에 연결합니다.
    2. 서버 관리자에서 로컬 서버를 선택합니다.
    3. WORKGROUP 링크를 선택합니다.
    4. 컴퓨터 이름 섹션에서 변경을 선택합니다.
    5. 도메인 체크박스를 선택하고 도메인 이름 (예: cvsdemo.internal)을 입력한 후 확인을 클릭합니다.
    6. Windows 보안 대화상자에서 도메인 관리자 계정의 사용자 인증 정보를 입력하고 확인을 클릭합니다.
    7. 도메인에 대한 환영 메시지가 표시되면 다음 단계를 완료합니다. a. 확인을 클릭합니다. b. 닫기를 클릭한 다음 지금 다시 시작을 선택합니다.
    8. VM이 다시 시작되면 도메인 관리자 계정을 사용하여 VM에 연결합니다.
    9. VM의 로컬 Administrators 그룹에 DOMAIN\sqlsvc 계정을 추가합니다. 다음 PowerShell 명령어를 사용할 수 있습니다.
      Add-LocalGroupMember -Group "Administrators" -Member "DOMAIN\sqlsvc"
      
    10. 관리자 권한으로 PowerShell을 열고 다음 명령어를 실행하여 필수 Windows 기능을 설치합니다.

      # Install Failover Clustering and tools
      Install-WindowsFeature Failover-Clustering, RSAT-Clustering-PowerShell, RSAT-Clustering-CmdInterface -IncludeAllSubFeature -IncludeManagementTools
      # Install and enable MPIO for iSCSI
      Install-WindowsFeature -Name Multipath-IO
      Enable-MSDSMAutomaticClaim -BusType "iSCSI"
      # Install .NET and other SQL prereqs
      Install-WindowsFeature NET-Framework-45-Core, NET-Framework-45-Features
      Install-WindowsFeature RSAT-AD-PowerShell
      
    11. VM의 iSCSI 정규화된 이름 (IQN)을 가져오려면 iscsicpl.exe를 실행하고 구성 탭으로 이동하여 시작자 이름을 복사합니다. 또는 다음 PowerShell 명령어를 실행합니다.

      Get-InitiatorPort | Select-Object NodeAddress
      

      sqlnode1sqlnode2의 IQN을 기록합니다. 다음 섹션에서 필요합니다. 예를 들면 iqn.1991-05.com.microsoft:sqlnode1.cvsdemo.internal입니다.

    NetApp Volumes 블록 스토리지 볼륨 만들기

    다음 단계에 따라 호스트 그룹, 스토리지 풀, iSCSI 볼륨을 만드세요.

    호스트 그룹 만들기

    호스트 그룹을 사용하면 지정된 호스트 (SQL Server VM)만 생성한 볼륨에 액세스할 수 있습니다.

    • Cloud Shell에서 sqlnode1sqlnode2의 IQN을 포함하는 호스트 그룹을 만듭니다.

      gcloud netapp host-groups create HOST_GROUP_NAME 
      --location=LOCATION
      --type=ISCSI_INITIATOR
      --hosts=SQLNODE1_IQN,SQLNODE2_IQN
      --os-type=WINDOWS
      --description="SQL Server AG nodes"

      다음 정보를 바꿉니다.

      • HOST_GROUP_NAME: 호스트 그룹의 이름입니다(예: sql-ag-hosts).
      • LOCATION: 호스트 그룹의 리전입니다(예: us-west1).
      • SQLNODE1_IQN: sqlnode1의 IQN입니다.
      • SQLNODE2_IQN: sqlnode2의 IQN입니다.

    스토리지 풀 프로비저닝

    • Cloud Shell에서 볼륨용 스토리지 풀을 만듭니다.

      gcloud netapp storage-pools create POOL_NAME 
      --project=PROJECT_ID
      --location=ZONE
      --service-level=Flex
      --type=Unified
      --capacity=1024
      --total-throughput=64
      --total-iops=1024
      --network=name=VPC_NAME,psa-range=PSA_RANGE_NAME

      다음 정보를 바꿉니다.

      • POOL_NAME: 스토리지 풀의 이름입니다(예: sql-pool).
      • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
      • ZONE: 스토리지 풀의 영역입니다. VM의 영역과 일치해야 합니다(예: us-west1-b).
      • VPC_NAME: VPC 네트워크의 이름
      • PSA_RANGE_NAME: 할당된 비공개 서비스 액세스 연결 범위의 이름입니다.

    볼륨 만들기

    각 노드의 SQL Server 데이터, 로그, tempdb, 백업에 대해 별도의 볼륨을 만듭니다.

    • Cloud Shell에서 생성해야 하는 각 볼륨에 대해 다음 명령어를 실행합니다.

      gcloud netapp volumes create VOLUME_NAME 
      --project=PROJECT_ID
      --location=ZONE
      --storage-pool=POOL_NAME
      --capacity=200
      --protocols=ISCSI
      --block-devices="name=VOLUME_NAME,host-groups=projects/PROJECT_ID/locations/LOCATION/hostGroups/HOST_GROUP_NAME,os-type=WINDOWS"
      --snapshot-directory=false

      VOLUME_NAME을 각 볼륨의 고유한 이름으로 바꿉니다. 이 2노드 튜토리얼에서는 각 노드의 데이터, 로그, tempdb, 백업용 볼륨을 만들기 위해 명령을 8번 실행해야 합니다 (예: sqlnode1-data, sqlnode1-log, sqlnode1-temp, sqlnode1-backup, sqlnode2-data, sqlnode2-log, sqlnode2-temp, sqlnode2-backup).

    각 SQL VM에 iSCSI 볼륨 마운트

    각 VM (sqlnode1sqlnode2)에 대해 해당 노드에 대해 만든 볼륨을 마운트합니다.

    1. Google Cloud 콘솔에서 NetApp Volumes볼륨 페이지로 이동합니다.

      볼륨으로 이동

      구성 중인 노드에 할당된 볼륨을 선택합니다. iSCSI 대상 세부정보 섹션에 나열된 대상 포털 IP 주소를 확인합니다. 볼륨에 연결하려면 이러한 주소가 필요합니다.

    2. VM에서 관리자 권한으로 PowerShell을 열고 다음 명령어를 실행합니다. 이때 예시 IP를 볼륨의 타겟 포털 IP로 바꿉니다.

      "10.165.128.216","10.165.128.217" | ForEach-Object { New-IscsiTargetPortal -TargetPortalAddress $_ }
      

    3. iscsicpl.exe을 실행하여 iSCSI Initiator Properties(iSCSI 초기자 속성)를 엽니다.

    4. 타겟 탭으로 이동하여 목록에서 볼륨 타겟 중 하나를 선택하고 연결을 클릭합니다.

    5. Connect to Target 대화상자에서 Enable multi-path를 선택하고 Advanced를 클릭합니다.

    6. 고급 설정 대화상자에서 다음을 수행합니다.

      1. 로컬 어댑터: Microsoft iSCSI Initiator를 선택합니다.
      2. 시작자 IP: VM의 IP 주소를 선택합니다.
      3. 타겟 포털 IP: 검색된 포털 IP 중 하나를 선택합니다.
      4. 확인을 클릭합니다.
    7. Connect to Target 대화상자에서 OK를 클릭합니다.

    8. VM과 연결된 모든 타겟에 대해 연결 단계를 반복합니다.

    9. iSCSI 기기의 MPIO를 구성하려면 제어판 또는 서버 관리자에서 MPIO 속성을 엽니다.

    10. 다중 경로 검색 탭을 클릭합니다.

    11. iSCSI 기기 지원 추가를 선택하고 추가를 클릭합니다. 메시지가 표시되면 VM을 재부팅합니다.

    12. 재부팅 후 기기 관리자를 열고 디스크 드라이브를 펼칩니다. iSCSI 디스크가 다중 경로 기기로 표시됩니다.

    13. 디스크 관리 (compmgmt.msc)를 엽니다. 새 디스크마다 다음 단계를 따르세요.

      1. 디스크를 온라인으로 전환합니다.
      2. 디스크를 초기화합니다 (GPT).
      3. 새 볼륨을 만들고 드라이브 문자 (예: 데이터용 D, 로그용 E, 백업용 F, tempdb용 G)를 할당한 후 할당 단위 크기64K인 NTFS를 사용하여 포맷합니다.
    14. 새로 포맷된 드라이브에 SQL Server의 디렉터리 구조를 만듭니다. 예를 들면 다음과 같습니다.

      $paths = "D:\MSSQL\DATA","E:\MSSQL\Log","F:\MSSQL\Backup","G:\MSSQL\Temp"
      $paths | ForEach-Object { New-Item -ItemType Directory -Path $_ -Force }
      

    SQL Server 구성

    각 볼륨을 마운트한 후 sqlnode1sqlnode2 모두에서 다음 단계를 실행합니다.

    1. SQL Server 구성 관리자를 엽니다.
    2. 왼쪽 창에서 SQL Server 서비스를 선택합니다.
    3. 오른쪽 창에서 SQL Server (MSSQLSERVER)를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 로그온 탭으로 이동하여 계정 이름을 서비스 계정 (DOMAIN\sqlsvc)으로 변경합니다. 비밀번호를 입력하고 확인을 클릭합니다.
    4. SQL Server 에이전트 (MSSQLSERVER)에 대해 이전 단계를 반복합니다.
    5. 도메인 관리자 계정으로 SQL Server Management Studio (SSMS)를 사용하여 SQL Server 인스턴스에 연결합니다.
    6. 서비스 계정의 로그인을 만들고 필요한 권한을 부여합니다.
      USE [master];
      GO
      CREATE LOGIN [DOMAIN\sqlsvc] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english];
      GO
      ALTER SERVER ROLE [sysadmin] ADD MEMBER [DOMAIN\sqlsvc];
      GO
      
    7. SSMS에서 다음 스크립트를 실행하여 기본 데이터베이스, 로그, 백업, tempdb 경로를 마운트한 iSCSI 볼륨으로 리디렉션합니다.
      USE [master];
      GO
      EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'BackupDirectory', REG_SZ, N'F:\MSSQL\Backup';
      GO
      EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', REG_SZ, N'D:\MSSQL\DATA';
      GO
      EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', REG_SZ, N'E:\MSSQL\Log';
      GO
      -- Modify model and msdb paths
      ALTER DATABASE model MODIFY FILE (NAME = modeldev, FILENAME = 'D:\MSSQL\DATA\model.mdf');
      ALTER DATABASE model MODIFY FILE (NAME = modellog, FILENAME = 'E:\MSSQL\Log\modellog.ldf');
      ALTER DATABASE msdb  MODIFY FILE (NAME = MSDBData, FILENAME = 'D:\MSSQL\DATA\MSDBData.mdf');
      ALTER DATABASE msdb  MODIFY FILE (NAME = MSDBLog,  FILENAME = 'E:\MSSQL\Log\MSDBLog.ldf');
      GO
      -- Modify tempdb paths
      ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'G:\MSSQL\Temp\tempdb.mdf');
      ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'G:\MSSQL\Temp\templog.ldf');
      GO
      
    8. SQL Server (MSSQLSERVER) 서비스를 중지합니다.
    9. 기존 model, msdb, tempdb 파일을 이전 위치 (예: C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA)에서 D:, E:, G: 드라이브의 새 위치로 이동합니다.
    10. master 데이터베이스와 ERRORLOG를 이동하려면 다음을 실행하세요.
      1. SQL Server 구성 관리자를 엽니다.
      2. SQL Server (MSSQLSERVER)를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 시작 매개변수 탭으로 이동합니다.
      3. C: 드라이브를 가리키는 기존 매개변수 -d, -e, -l를 각각 선택하고 삭제를 클릭합니다.
      4. 다음 매개변수를 추가하고 각 매개변수에 대해 추가를 클릭합니다.
        • -dD:\MSSQL\DATA\master.mdf
        • -lE:\MSSQL\Log\mastlog.ldf
        • -eE:\MSSQL\Log\ERRORLOG
      5. 확인을 클릭합니다.
      6. master.mdfmastlog.ldf를 각각 C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA에서 D:\MSSQL\DATA\` andE:\MSSQL\Log` 로 수동으로 이동합니다.
      7. ERRORLOG 파일을 이전 위치에서 `E:\MSSQL\Log`로 이동합니다.
    11. SQL Server (MSSQLSERVER) 서비스를 시작합니다.

    Windows Server 장애 조치 클러스터링 설정

    다음 단계에 따라 클러스터를 만들고 쿼럼 감시를 구성하세요.

    Windows 방화벽 구성

    클러스터를 만들기 전에 각 노드의 Windows 방화벽에서 WSFC, SQL Server, iSCSI 트래픽을 허용하는지 확인합니다.

    sqlnode1sqlnode2에서 관리자 권한으로 PowerShell을 열고 다음 명령어를 실행합니다.

    New-NetFirewallRule -DisplayName 'Failover Clusters (UDP-In)' -Direction Inbound -Protocol UDP -LocalPort 3343 -Action Allow
    New-NetFirewallRule -DisplayName 'Failover Clusters (TCP-In)' -Direction Inbound -Protocol TCP -LocalPort 3343 -Action Allow
    New-NetFirewallRule -DisplayName 'RPC Endpoint Mapper' -Direction Inbound -Protocol TCP -LocalPort 135 -Action Allow
    New-NetFirewallRule -DisplayName 'File and Printer Sharing (SMB-In)' -Direction Inbound -Protocol TCP -LocalPort 445 -Action Allow
    New-NetFirewallRule -DisplayName 'Failover Cluster Manager RPC' -Direction Inbound -Protocol TCP -LocalPort 49152-65535 -Action Allow
    New-NetFirewallRule -DisplayName 'iSCSI' -Direction Inbound -Protocol TCP -LocalPort 3260 -Action Allow
    New-NetFirewallRule -DisplayName 'SQL Server' -Direction Inbound -Protocol TCP -LocalPort 1433 -Action Allow
    New-NetFirewallRule -DisplayName 'SQL Server AG Endpoint' -Direction Inbound -Protocol TCP -LocalPort 5022 -Action Allow
    

    클러스터 만들기

    1. sqlnode1에서 장애 조치 클러스터 관리자 (cluadmin.msc)를 엽니다.
    2. 관리 섹션에서 구성 유효성 검사를 선택합니다. 마법사에 따라 sqlnode1sqlnode2의 유효성을 검사합니다. 계속하기 전에 모든 테스트를 통과해야 합니다.
    3. 유효성 검사를 마친 후 클러스터 만들기를 선택합니다.
    4. 클러스터 만들기 마법사에서 sqlnode1sqlnode2을 클러스터 노드로 추가합니다.
    5. 클러스터 관리 액세스 포인트클러스터 이름 (예: sqlcluster)을 입력하고 클러스터의 고정 IP 주소를 제공합니다.
    6. 메시지에 따라 클러스터를 만듭니다.

    클러스터 쿼럼용 파일 공유 만들기

    클러스터 쿼럼 증인 역할을 할 세 번째 VM에 파일 공유를 만드는 것이 좋습니다(다른 영역에 있는 것이 좋음).

    1. 파일 공유 감시로 사용할 VM에 연결합니다.
    2. 서버 관리자 창에서 도구 > 컴퓨터 관리를 선택합니다.
    3. 시스템 도구 > 공유 폴더를 펼치고 공유를 마우스 오른쪽 버튼으로 클릭한 다음 새 공유를 선택합니다.
    4. 공유 폴더 만들기 마법사를 따릅니다. 폴더 경로 페이지에서 공유할 폴더를 찾아보거나 만듭니다.
    5. 권한 페이지에서 권한 맞춤설정을 선택합니다.
    6. 추가를 클릭하고 클러스터 이름 객체 (CNO) 계정 (예: sqlcluster$)에 모든 권한을 부여합니다.
    7. 마법사를 완료하여 공유를 만듭니다.

    클러스터 쿼럼 구성

    1. sqlnode1에서 장애 조치 클러스터 관리자를 엽니다.
    2. 클러스터 이름을 마우스 오른쪽 버튼으로 클릭하고 추가 작업 > 클러스터 쿼럼 설정 구성을 선택합니다.
    3. 클러스터 쿼럼 구성 마법사에서 다음을 선택합니다.
    4. 쿼럼 구성 옵션 선택 페이지에서 쿼럼 감시 선택을 선택하고 다음을 클릭합니다.
    5. 쿼럼 감시 선택 페이지에서 파일 공유 감시 구성을 선택하고 다음을 클릭합니다.
    6. 파일 공유 경로에 생성한 공유의 경로 (예: \\witness-server\quorum)를 입력하고 다음을 클릭합니다.
    7. 설정을 확인하고 다음을 클릭한 후 완료를 클릭합니다.

    Always On 가용성 그룹 구성

    이 섹션의 단계를 두 SQL Server VM에 적용하여 가용성 그룹을 사용 설정하고 구성합니다.

    SQL Server에서 가용성 그룹 사용 설정

    1. SQL Server 구성 관리자를 엽니다.
    2. 브라우저 트리에서 SQL Server 서비스를 선택합니다.
    3. SQL Server (MSSQLSERVER)를 마우스 오른쪽 버튼으로 클릭한 다음 속성을 선택합니다.
    4. Always On 고가용성 탭을 선택하고 Always On 가용성 그룹 사용 설정을 선택합니다.
    5. Apply를 클릭한 후 OK를 클릭합니다. SQL Server 서비스를 다시 시작합니다.

    가용성 그룹의 데이터베이스 만들기

    1. SSMS를 사용하여 sqlnode1에 연결합니다.
    2. 객체 탐색기 창에서 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 새 데이터베이스를 선택합니다.
    3. 데이터베이스 이름MyDB1를 입력하고 확인을 클릭합니다.
    4. MyDB1를 마우스 오른쪽 버튼으로 클릭하고 Tasks > Back Up을 선택합니다. 전체 백업을 실행합니다. 데이터베이스 복구 모델이 전체인지 확인합니다.
    5. MyDB1를 마우스 오른쪽 버튼으로 클릭하고 Tasks > Back Up을 선택합니다. 트랜잭션 로그 백업을 수행합니다.
    6. 전체 및 트랜잭션 로그 백업 파일을 sqlnode2에 복사합니다.
    7. SSMS를 사용하여 sqlnode2에 연결합니다. 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 데이터베이스 복원을 선택합니다.
    8. sqlnode1에서 MyDB1의 전체 백업을 복원하고 옵션 페이지에서 NORECOVERY로 복원을 지정합니다.
    9. sqlnode2에서 MyDB1를 마우스 오른쪽 버튼으로 클릭하고 Tasks > Restore > Transaction Log를 선택합니다. 트랜잭션 로그 백업을 복원하고 RESTORE WITH NORECOVERY도 지정합니다.

    가용성 그룹 만들기

    1. SSMS를 사용하여 sqlnode1에 연결합니다.
    2. 객체 탐색기에서 Always On 고가용성을 마우스 오른쪽 버튼으로 클릭하고 새 가용성 그룹 마법사를 선택합니다.
    3. 가용성 그룹 이름(예: sql-ag)을 지정합니다.
    4. 포함할 데이터베이스로 MyDB1를 선택합니다.
    5. 복제본 지정 페이지에서 복제본 추가를 클릭하고 sqlnode2에 연결합니다.
    6. 두 복제본 모두에 자동 장애 조치를 사용 설정하고 가용성 모드동기 커밋으로, 읽기 가능한 보조로 설정합니다.
    7. 엔드포인트 탭으로 이동하여 포트 5022가 사용되고 있는지 확인합니다.
    8. 초기 데이터 동기화 선택 페이지에서 참여만을 선택합니다.
    9. 마법사를 완료하여 가용성 그룹을 만듭니다.

    가용성 그룹의 DNN 리소스 만들기

    부하 분산기 대신 분산 네트워크 이름 (DNN)을 사용하여 클라이언트 트래픽을 가용성 그룹 리스너로 라우팅합니다.

    1. 장애 조치 클러스터 관리자를 열고 역할을 펼친 다음 가용성 그룹 역할을 선택합니다.
    2. 리소스에서 가용성 그룹 리소스를 마우스 오른쪽 버튼으로 클릭하고 리소스 추가 > 클라이언트 액세스 포인트를 선택합니다.
    3. DNN 리스너의 이름을 입력하고 마법사를 완료합니다.
    4. 새 DNN 리소스를 온라인으로 전환합니다.
    5. 기본적으로 클러스터는 DNN DNS 이름을 클러스터의 모든 노드에 바인딩합니다. SQL Server 복제본을 호스팅하지 않는 노드가 클러스터에 있는 경우 DNN의 가능한 소유자에서 해당 노드를 제외해야 합니다.
      1. 생성한 DNN 리소스를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.
      2. 가용성 그룹 복제본이 아닌 노드의 체크박스를 선택 해제합니다.
      3. 확인을 클릭합니다.
    6. DNN 리스너 이름에 연결하고 MultiSubnetFailover=True을 포함하도록 애플리케이션 연결 문자열을 업데이트합니다.

    장애 조치 테스트

    1. SSMS를 사용하여 sqlnode1 또는 sqlnode2에 연결하고 다음 쿼리를 실행하여 기본 복제본을 확인하고 두 복제본이 동기 커밋 및 자동 장애 조치로 구성되어 있는지 확인합니다.

      -- Check primary replica
      SELECT ag.name AS AG_Name, ar.replica_server_name as PrimaryReplica
      FROM sys.dm_hadr_availability_replica_states AS ars
      JOIN sys.availability_groups AS ag ON ag.group_id = ars.group_id
      JOIN sys.availability_replicas ar ON ar.replica_id = ars.replica_id
      WHERE ars.role_desc = 'PRIMARY';

      -- Check replica configuration SELECT replica_server_name, availability_mode_desc, failover_mode_desc FROM sys.availability_replicas WHERE group_id = (SELECT group_id FROM sys.availability_groups WHERE name = N'sql-ag');

    2. 수동 장애 조치를 시작하려면 SSMS에서 보조 복제본에 연결하고 다음을 실행합니다.

      ALTER AVAILABILITY GROUP [sql-ag] FAILOVER;
      

    3. 장애 조치 후 SELECT @@SERVERNAME;을 실행하거나 DNN 리스너에 다시 연결하고 서버 이름을 확인하여 새 기본 서버를 확인합니다.

    4. Always On 고가용성에서 가용성 그룹을 마우스 오른쪽 버튼으로 클릭하고 대시보드 표시를 선택하여 SSMS에서 가용성 그룹 상태를 확인할 수도 있습니다.

    삭제

    프로젝트 삭제

    이 튜토리얼에서 사용한 리소스 비용이 Google Cloud 프로젝트에 청구되지 않도록 하려면 프로젝트를 삭제합니다. 자세한 내용은 프로젝트 종료를 참고하세요.