SQL Server 가용성 그룹에 대 한 RHEL 클러스터를 구성 합니다.Configure RHEL Cluster for SQL Server Availability Group

이 항목 적용 대상: 예(Linux에만 해당) SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스없습니다 병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (Linux only)noAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

이 문서에서는 Red Hat Enterprise Linux에서 SQL Server에 대 한 3 노드 가용성 그룹 클러스터를 만드는 방법을 설명 합니다.This document explains how to create a three-node availability group cluster for SQL Server on Red Hat Enterprise Linux. 고가용성을 위해 Linux에서 가용성 그룹에 노드가 3 개 필요-참조 가용성 그룹 구성에 대 한 높은 가용성 및 데이터 보호합니다.For high availability, an availability group on Linux requires three nodes - see High availability and data protection for availability group configurations. Red Hat Enterprise Linux (RHEL)를 기반으로 클러스터링 레이어 HA 추가 기능 기반으로 구축 Pacemaker합니다.The clustering layer is based on Red Hat Enterprise Linux (RHEL) HA add-on built on top of Pacemaker.

참고

Red Hat 전체 설명서에 대 한 액세스는 유효한 구독이 필요합니다.Access to Red Hat full documentation requires a valid subscription.

클러스터 구성, 리소스 에이전트 옵션 및 관리에 대 한 자세한 내용은 방문 RHEL 참조 설명서합니다.For more information on cluster configuration, resource agents options, and management, visit RHEL reference documentation.

참고

SQL Server와 긴밀 하 게와 통합 되지 않은 Pacemaker Linux에서 Windows Server 장애 조치 클러스터링과 그대로입니다.SQL Server is not as tightly integrated with Pacemaker on Linux as it is with Windows Server failover clustering. SQL Server 인스턴스 클러스터를 인식 하지 않습니다.A SQL Server instance is not aware of the cluster. Pacemaker는 클러스터 리소스 오케스트레이션을 제공합니다.Pacemaker provides cluster resource orchestration. 또한 Windows Server 장애 조치 클러스터링에 관련 된 가상 네트워크 이름-Pacemaker에서 같습니다.Also, the virtual network name is specific to Windows Server failover clustering - there is no equivalent in Pacemaker. 가용성 그룹 동적 관리 뷰 (Dmv) 클러스터 정보를 쿼리 하는 Pacemaker 클러스터에서 빈 행을 반환 합니다.Availability group dynamic management views (DMVs) that query cluster information return empty rows on Pacemaker clusters. 장애 조치 후 투명 하 게 다시 연결에 대 한 수신기를 만들려면 가상 IP 리소스를 만드는 데 IP와 함께 DNS에서 수신기 이름을 수동으로 등록 합니다.To create a listener for transparent reconnection after failover, manually register the listener name in DNS with the IP used to create the virtual IP resource.

다음 섹션에서는 Pacemaker 클러스터를 설정 하 고 고가용성을 위해 클러스터의 리소스와 가용성 그룹을 추가 하는 단계를 안내 합니다.The following sections walk through the steps to set up a Pacemaker cluster and add an availability group as resource in the cluster for high availability.

로드맵Roadmap

고가용성을 위해 Linux 서버에 가용성 그룹을 만드는 단계는 Windows Server 장애 조치 클러스터에는 단계와에서 다릅니다.The steps to create an availability group on Linux servers for high availability are different from the steps on a Windows Server failover cluster. 다음 목록에서는 단계를 간략히 설명합니다.The following list describes the high-level steps:

  1. SQL Server 클러스터 노드에서 구성합니다.Configure SQL Server on the cluster nodes.

  2. 가용성 그룹 만들기합니다.Create the availability group.

  3. Pacemaker 같은 클러스터 리소스 관리자를 구성 합니다.Configure a cluster resource manager, like Pacemaker. 이러한 지침은이 문서에 나와 있습니다.These instructions are in this document.

    클러스터 리소스 관리자를 구성 하는 방법은 특정 Linux 배포에 따라 달라 집니다.The way to configure a cluster resource manager depends on the specific Linux distribution.

    중요

    프로덕션 환경에서는 고가용성을 위해 STONITH 같은 펜스 에이전트를 해야 합니다.Production environments require a fencing agent, like STONITH for high availability. 이 설명서에서 데모 펜싱 에이전트를 사용 하지 마십시오.The demonstrations in this documentation do not use fencing agents. 데모는 테스트 및 유효성 검사에만 적용 됩니다.The demonstrations are for testing and validation only.

    Linux 클러스터 펜싱을 사용 하 여 알려진 상태로 클러스터를 반환 합니다.A Linux cluster uses fencing to return the cluster to a known state. 펜싱을 구성 하는 방법은 배포 및 환경에 따라 달라 집니다.The way to configure fencing depends on the distribution and the environment. 현재, 펜싱은 일부 클라우드 환경에서 사용할 수 없습니다.Currently, fencing is not available in some cloud environments. 자세한 내용은 참조 RHEL 높은 가용성 클러스터-가상화 플랫폼에 대 한 지원 정책을합니다.For more information, see Support Policies for RHEL High Availability Clusters - Virtualization Platforms.

  4. 가용성 그룹에 클러스터 리소스로 추가합니다.Add the availability group as a resource in the cluster.

RHEL에 대 한 고가용성을 구성 합니다.Configure high availability for RHEL

RHEL에 대 한 고가용성을 구성 하려면 항상 사용 가능한 구독을 사용 하도록 설정 하 고 Pacemaker를 구성 합니다.To configure high availability for RHEL, enable the high availability subscription and then configure Pacemaker.

RHEL에 대 한 고가용성 구독을 사용 하도록 설정Enable the high availability subscription for RHEL

클러스터의 각 노드에에 RHEL 및 높은 가용성 추가 대 한 적절 한 구독이 있어야 합니다.Each node in the cluster must have an appropriate subscription for RHEL and the High Availability Add on. 요구 사항을 검토 Red Hat Enterprise Linux에서 항상 사용 가능한 클러스터 패키지를 설치 하는 방법합니다.Review the requirements at How to install High Availability cluster packages in Red Hat Enterprise Linux. 구독 및 리포지토리를 구성 하려면 다음이 단계를 수행 합니다.Follow these steps to configure the subscription and repos:

  1. 시스템을 등록 합니다.Register the system.

    sudo subscription-manager register
    

    사용자 이름 및 암호를 제공 합니다.Provide your user name and password.

  2. 등록에 대 한 사용 가능한 풀을 나열 합니다.List the available pools for registration.

    sudo subscription-manager list --available
    

    사용 가능한 풀 목록에서 항상 사용 가능한 구독에 대 한 풀 ID를 note 합니다.From the list of available pools, note the pool ID for the high availability subscription.

  3. 다음 스크립트를 업데이트 합니다.Update the following script. 대체 <pool id> 이전 단계에서 고가용성을 위한 풀 id입니다.Replace <pool id> with the pool ID for high availability from the preceding step. 구독을 연결 하는 스크립트를 실행 합니다.Run the script to attach the subscription.

    sudo subscription-manager attach --pool=<pool id>
    
  4. 저장소를 사용 하도록 설정 합니다.Enable the repository.

    sudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-rpms
    

자세한 내용은 참조 Pacemaker –의 오픈 소스, 높은 가용성 클러스터합니다.For more information, see Pacemaker – The Open Source, High Availability Cluster.

구독을 구성한 후 Pacemaker를 구성 하려면 다음 단계를 완료:After you have configured the subscription, complete the following steps to configure Pacemaker:

Pacemaker 구성Configure Pacemaker

구독을 등록 하면 Pacemaker를 구성 하려면 다음 단계를 완료:After you register the subscription, complete the following steps to configure Pacemaker:

  1. 모든 클러스터 노드에서 Pacemaker 방화벽 포트를 엽니다.On all cluster nodes, open the Pacemaker firewall ports. firewalld를 사용하여 이러한 포트를 열려면 다음 명령을 실행합니다.To open these ports with firewalld, run the following command:

    sudo firewall-cmd --permanent --add-service=high-availability
    sudo firewall-cmd --reload
    

    방화벽에 고가용성 구성이 기본 제공되지 않는 경우 Pacemaker에 대해 다음 포트를 엽니다.If the firewall doesn’t have a built-in high-availability configuration, open the following ports for Pacemaker.

    • TCP: 포트 2224, 3121, 21064TCP: Ports 2224, 3121, 21064
    • UDP: 포트 5405UDP: Port 5405
  2. 모든 노드에 Pacemaker 패키지를 설치합니다.Install Pacemaker packages on all nodes.

    sudo yum install pacemaker pcs fence-agents-all resource-agents
    
  3. Pacemaker 및 Corosync 패키지를 설치할 때 생성된 기본 사용자의 암호를 설정합니다.Set the password for the default user that is created when installing Pacemaker and Corosync packages. 모든 노드에서 같은 암호를 사용합니다.Use the same password on all nodes.

    sudo passwd hacluster
    
  4. 다시 부팅 후 노드가 클러스터에 다시 조인할 수 있도록 pcsd 서비스 및 Pacemaker를 사용하도록 설정하고 시작합니다.To allow nodes to rejoin the cluster after the reboot, enable and start pcsd service and Pacemaker. 모든 노드에서 다음 명령을 실행합니다.Run the following command on all nodes.

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    sudo systemctl enable pacemaker
    
  5. 클러스터를 만듭니다.Create the Cluster. 클러스터를 만들려면 다음 명령을 실행합니다.To create the cluster, run the following command:

    sudo pcs cluster auth <node1> <node2> <node3> -u hacluster -p <password for hacluster>
    sudo pcs cluster setup --name <clusterName> <node1> <node2> <node3> 
    sudo pcs cluster start --all
    

    참고

    이전에 같은 노드에서 클러스터를 구성한 경우 pcs cluster setup을 실행할 때 --force 옵션을 사용해야 합니다.If you previously configured a cluster on the same nodes, you need to use --force option when running pcs cluster setup. 이 옵션은 pcs cluster destroy를 실행하는 것과 동일합니다.This option is equivalent to running pcs cluster destroy. Pacemaker를 다시 사용하도록 설정하려면 sudo systemctl enable pacemaker를 실행합니다.To re-enable pacemaker, run sudo systemctl enable pacemaker.

  6. SQL Server용 SQL Server 리소스 에이전트를 설치합니다.Install SQL Server resource agent for SQL Server. 모든 노드에서 다음 명령을 실행합니다.Run the following commands on all nodes.

    sudo yum install mssql-server-ha
    

사용 하 여 Pacemaker을 구성한 후 pcs 클러스터와 상호 작용할 수 있습니다.After Pacemaker is configured, use pcs to interact with the cluster. 클러스터에서 노드 하나에서 모든 명령을 실행 합니다.Execute all commands on one node from the cluster.

펜스 (STONITH) 구성Configure fencing (STONITH)

Pacemaker 클러스터 공급 업체를 사용 하도록 설정할 STONITH와 지원 되는 클러스터 설치에 대해 구성 된 펜싱 장치에 필요 합니다.Pacemaker cluster vendors require STONITH to be enabled and a fencing device configured for a supported cluster setup. STONITH는 "헤드에 있는 다른 노드를 해결 합니다."STONITH stands for "shoot the other node in the head." 클러스터 리소스 관리자 상태 노드 또는 노드에 있는 리소스의을 확인할 수 없는 펜싱 알려진 상태로 클러스터를 다시 가져옵니다.When the cluster resource manager cannot determine the state of a node or of a resource on a node, fencing brings the cluster to a known state again.

리소스 수준 펜싱 하면 리소스를 구성 하 여 중단 시 없는 데이터가 손상 되었습니다.Resource level fencing ensures that there is no data corruption in case of an outage by configuring a resource. 예를 들어 디스크를 표시 하려면 리소스 수준 펜싱을 사용할 수 있습니다 때 오래 된 대로 노드 통신 링크의 작동이 중지 합니다.For example, you can use resource level fencing to mark the disk on a node as outdated when the communication link goes down.

노드 수준 펜싱 하면 노드 모든 리소스를 실행 하지 않습니다.Node level fencing ensures that a node does not run any resources. 이 노드를 다시 설정 하 여 수행 됩니다.This is done by resetting the node. Pacemaker 다양 한 장치 방어를 지원 합니다.Pacemaker supports a great variety of fencing devices. 표시 되는 무정전 전원 공급 장치 또는 관리 인터페이스 카드 서버에 대 한 예로 있습니다.Examples include an uninterruptible power supply or management interface cards for servers.

STONITH, 및 펜싱에 대 한 내용은 다음 문서를 참조 합니다.For information about STONITH, and fencing, see the following articles:

노드 수준 구성 방어 사용자 환경에 따라 크게 달라 집니다, 때문에 (구성할 수 있습니다 나중)이이 자습서를 비활성화 합니다.Because the node level fencing configuration depends heavily on your environment, disable it for this tutorial (it can be configured later). 다음 스크립트는 노드 수준 펜싱을 비활성화합니다.The following script disables node level fencing:

sudo pcs property set stonith-enabled=false

중요

테스트 목적으로 하는 데 않습니다 STONITH를 사용 하지 않도록 설정 합니다.Disabling STONITH is just for testing purposes. Pacemaker 프로덕션 환경에서 사용 하려는 경우 환경에 따라 STONITH 구현을 계획 하 고 사용 하도록 설정 유지 해야 합니다.If you plan to use Pacemaker in a production environment, you should plan a STONITH implementation depending on your environment and keep it enabled. RHEL 모든 클라우드 환경 (Azure 포함) 또는 Hyper-v에 대 한 펜스 에이전트를 제공 하지 않습니다.RHEL does not provide fencing agents for any cloud environments (including Azure) or Hyper-V. 검사가 클러스터 공급 업체는 이러한 환경에서 실행 중인 프로덕션 클러스터에 대 한 지원을 제공 하지 않습니다.Consequentially, the cluster vendor does not offer support for running production clusters in these environments. 제작 하는 이후 릴리스에서 사용할 수 있는 이러한 차이 대 한 솔루션입니다.We are working on a solution for this gap that will be available in future releases.

클러스터 속성 클러스터-다시 확인-간격 설정Set cluster property cluster-recheck-interval

cluster-recheck-interval 리소스 매개 변수, 제약 조건 또는 기타 클러스터 옵션의 변경 내용에 대 한 클러스터를 확인 하는 폴링 간격을 나타냅니다.cluster-recheck-interval indicates the polling interval at which the cluster checks for changes in the resource parameters, constraints or other cluster options. 클러스터를 연결 된 간격으로 복제본을 다시 시작 하려고 복제본의 작동이 중지 하는 경우는 failure-timeout 값 및 cluster-recheck-interval 값입니다.If a replica goes down, the cluster tries to restart the replica at an interval that is bound by the failure-timeout value and the cluster-recheck-interval value. 예를 들어 경우 failure-timeout 60 초로 설정 되어 및 cluster-recheck-interval 설정 120 초로 다시 60 초 보다 작거나 120 초 보다 큰 간격으로 시도 됩니다.For example, if failure-timeout is set to 60 seconds and cluster-recheck-interval is set to 120 seconds, the restart is tried at an interval that is greater than 60 seconds but less than 120 seconds. 60 초 및 클러스터-다시 확인-간격을 60 초 보다 큰 값을 실패 제한 시간을 설정 하는 것이 좋습니다.We recommend that you set failure-timeout to 60s and cluster-recheck-interval to a value that is greater than 60 seconds. 클러스터 다시 확인 간격을 작은 값으로 설정 권장 되지 않습니다.Setting cluster-recheck-interval to a small value is not recommended.

속성 값을 업데이트 하려면 2 minutes 실행:To update the property value to 2 minutes run:

sudo pcs property set cluster-recheck-interval=2min

중요

해당 값이 false (RHEL 7.3 및 7.4 포함)의 최신 사용 가능한 Pacemaker 패키지 1.1.18-11.el7를 사용 하는 모든 분포 시작 실패-은-치명적이 지 클러스터 설정에 대 한 동작 변경을 소개 합니다.All distributions (including RHEL 7.3 and 7.4) that use the latest available Pacemaker package 1.1.18-11.el7 introduce a behavior change for the start-failure-is-fatal cluster setting when its value is false. 이 변경은 장애 조치 워크플로가 영향을 줍니다.This change affects the failover workflow. 주 복제본에 중단 되, 사용 가능한 보조 복제본 중 하나로 장애 조치 클러스터 사용할 수 있습니다.If a primary replica experiences an outage, the cluster is expected to failover to one of the available secondary replicas. 대신, 사용자가 클러스터 유지 실패 한 주 복제본을 시작 하려는 것을 알 수 있습니다.Instead, users will notice that the cluster keeps trying to start the failed primary replica. 해당 기본 하지 온라인 상태가 된 경우 (으로 인해 영구 작동 중단)를 클러스터 하지 장애 조치 다른 사용 가능한 보조 복제본으로 합니다.If that primary never comes online (because of a permanent outage), the cluster never fails over to another available secondary replica. 이러한 변경으로 인해 시작 실패-은-치명적이 지 설정 하려면 이전에 권장 되는 구성이 더 이상 유효 하 고 설정의 기본 값으로 다시 되돌릴 수 해야 true합니다.Because of this change, a previously recommended configuration to set start-failure-is-fatal is no longer valid and the setting needs to be reverted back to its default value of true. AG 리소스를 포함 하도록 업데이트 해야 하는 또한는 failover-timeout 속성입니다.Additionally, the AG resource needs to be updated to include the failover-timeout property.

속성 값을 업데이트 하려면 true 실행:To update the property value to true run:

sudo pcs property set start-failure-is-fatal=true

업데이트 하는 ag1 리소스 속성 failure-timeout60s 실행:To update the ag1 resource property failure-timeout to 60s run:

pcs resource update ag1 meta failure-timeout=60s

Pacemaker 클러스터 속성에 대 한 자세한 내용은 참조 하십시오. Pacemaker 클러스터 속성합니다.For information on Pacemaker cluster properties, see Pacemaker Clusters Properties.

Pacemaker에 대 한 SQL Server 로그인 만들기Create a SQL Server login for Pacemaker

  1. 모든 SQL Server에서 Pacemaker를 위한 서버 로그인을 만듭니다.On all SQL Servers, create a Server login for Pacemaker. 다음 Transact-SQL이 로그인을 만듭니다.The following Transact-SQL creates a login:

    USE [master]
    GO
    CREATE LOGIN [pacemakerLogin] with PASSWORD= N'ComplexP@$$w0rd!'
    
    ALTER SERVER ROLE [sysadmin] ADD MEMBER [pacemakerLogin]
    

    또는 더 세부적인 수준에서 권한을 설정할 수 있습니다.Alternatively, you can set the permissions at a more granular level. Pacemaker 로그인에는 가용성 그룹 관리를 위한 변경, 제어 및 보기 정의 권한을 비롯하여 로그인을 통해 sp_server_diagnostics를 실행하기 위한 서버 상태 보기가 필요합니다.The Pacemaker login requires ALTER, CONTROL, and VIEW DEFINITION PERMISSION for managing the availability group as well as VIEW SERVER STATE for the login to be able to run sp_server_diagnostics. 자세한 내용은 가용성 그룹 사용 권한 부여(Transact SQL)sp_server_diagnostic 권한을 참조하세요.For more information, see GRANT Availability Group Permissions (Transact-SQL) and sp_server_diagnostic permissions.

    다음 Transact-SQL은 Pacemaker 로그인에 필요한 권한을 부여합니다.The following Transact-SQL grants only the required permission to the Pacemaker login. 이 문에서 아래 'ag1'은 클러스터 리소스로 추가될 가용성 그룹의 이름입니다.In the statement below 'ag1' is the name of the availability group that will be added as a cluster resource.

    GRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::ag1 TO pacemakerLogin
    GRANT VIEW SERVER STATE TO pacemakerLogin
    
  2. 모든 SQL Server에서 SQL Server 로그인을 위한 자격 증명을 저장합니다.On all SQL Servers, save the credentials for the SQL Server login.

    echo 'pacemakerLogin' >> ~/pacemaker-passwd
    echo 'ComplexP@$$w0rd!' >> ~/pacemaker-passwd
    sudo mv ~/pacemaker-passwd /var/opt/mssql/secrets/passwd
    sudo chown root:root /var/opt/mssql/secrets/passwd
    sudo chmod 400 /var/opt/mssql/secrets/passwd # Only readable by root
    

가용성 그룹 리소스 만들기Create availability group resource

가용성 그룹 리소스를 만들려면 사용 pcs resource create 명령 및 리소스 속성을 설정 합니다.To create the availability group resource, use pcs resource create command and set the resource properties. 다음 명령은 만듭니다는 ocf:mssql:ag 형식 리소스 이름의 가용성 그룹에 대 한 마스터/슬레이브 ag1합니다.The following command creates a ocf:mssql:ag master/slave type resource for availability group with name ag1.

sudo pcs resource create ag_cluster ocf:mssql:ag ag_name=ag1 meta failure-timeout=30s master notify=true

참고

리소스를 만들 때와 이후 정기적으로 Pacemaker 리소스 에이전트는 가용성 그룹에서 REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT의 값을 가용성 그룹의 구성을 바탕으로 자동으로 설정합니다.When you create the resource, and periodically afterwards, the Pacemaker resource agent automatically sets the value of REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT on the availability group based on the availability group's configuration. 예를 들어 가용성 그룹에 세 개의 동기 복제본이 있는 경우 에이전트는 REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT1로 설정합니다.For example, if the availability group has three synchronous replicas, the agent will set REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT to 1. 자세한 내용 및 추가 구성 옵션은 High availability and data protection for availability group configurations(가용성 그룹 구성을 위한 고가용성 및 데이터 보호)를 참조하세요.For details and additional configuration options, see High availability and data protection for availability group configurations.

가상 IP 리소스 만들기Create virtual IP resource

가상 IP 주소 리소스를 만들려면 노드 하나에서 다음 명령을 실행 합니다.To create the virtual IP address resource, run the following command on one node. 네트워크에서 사용 가능한 고정 IP 주소를 사용 합니다.Use an available static IP address from the network. 사이의 IP 주소를 교체 <10.128.16.240> 유효한 IP 주소입니다.Replace the IP address between <10.128.16.240> with a valid IP address.

sudo pcs resource create virtualip ocf:heartbeat:IPaddr2 ip=<10.128.16.240>

Pacemaker에서 지정 된 동일한 가상 서버 이름이 없습니다.There is no virtual server name equivalent in Pacemaker. IP 주소 대신 문자열 서버 이름이를 가리키는 연결 문자열을 사용 하려면 DNS에서 원하는 가상 서버 이름과 가상 IP 리소스 주소를 등록 합니다.To use a connection string that points to a string server name instead of an IP address, register the virtual IP resource address and desired virtual server name in DNS. DR 구성에 대 한 주 데이터베이스와 DR 사이트 모두에서 DNS 서버와 함께 원하는 가상 서버 이름 및 IP 주소를 등록 합니다.For DR configurations, register the desired virtual server name and IP address with the DNS servers on both primary and DR site.

공동 배치 제약 조건 추가Add colocation constraint

Pacemaker 클러스터에서 리소스를 실행할 위치를 선택 하는 등 거의 모든 의사 결정은 점수를 비교 하 여 수행 됩니다.Almost every decision in a Pacemaker cluster, like choosing where a resource should run, is done by comparing scores. 리소스 당 점수 계산 됩니다.Scores are calculated per resource. 클러스터 리소스 관리자가 특정 리소스에 대 한 점수가 가장 높은 있는 노드를 선택합니다.The cluster resource manager chooses the node with the highest score for a particular resource. 노드는 리소스에 대 한 음수 점수 있으면 리소스는 해당 노드에서 실행할 수 없습니다.If a node has a negative score for a resource, the resource cannot run on that node.

Pacemaker 클러스터에서 제약 조건 사용 하 여 클러스터의 결정을 조작할 수 있습니다.On a pacemaker cluster, you can manipulate the decisions of the cluster with constraints. 제한에는 점수는.Constraints have a score. 제약 조건에는 점수 보다 낮은 경우 INFINITY, Pacemaker 권장 사항으로 간주 합니다.If a constraint has a score lower than INFINITY, Pacemaker regards it as recommendation. 점수는 INFINITY 필수입니다.A score of INFINITY is mandatory.

주 복제본과의 가상 ip 리소스가 동일한 호스트에서 실행 되도록 무한대의 점수와 공동 배치 제약 조건을 정의 합니다.To ensure that primary replica and the virtual ip resources run on the same host, define a colocation constraint with a score of INFINITY. 공동 배치 제약 조건에 추가 하려면 노드 하나에서 다음 명령을 실행 합니다.To add the colocation constraint, run the following command on one node.

sudo pcs constraint colocation add virtualip ag_cluster-master INFINITY with-rsc-role=Master

순서 지정 제약 조건 추가Add ordering constraint

공동 배치 제약 조건을는 암시적 순서 지정 제약 합니다.The colocation constraint has an implicit ordering constraint. 가용성 그룹 리소스를 이동 하기 전에 가상 IP 리소스를 이동 합니다.It moves the virtual IP resource before it moves the availability group resource. 기본적으로 이벤트의 순서는 같습니다.By default the sequence of events is:

  1. 사용자 문제 pcs resource move 가용성 그룹에 주 노드 1에서 노드 2로 합니다.User issues pcs resource move to the availability group primary from node1 to node2.
  2. 노드 1에서 가상 IP 리소스를 중지합니다.The virtual IP resource stops on node 1.
  3. 가상 IP 리소스 노드 2에서 시작합니다.The virtual IP resource starts on node 2.

    참고

    이 시점에서 IP 주소 일시적으로 노드 2 가리키는 노드 2는 여전히 이전 장애 조치 하는 동안 보조 합니다.At this point, the IP address temporarily points to node 2 while node 2 is still a pre-failover secondary.

  4. 노드 1에서 기본 가용성 그룹 보조로 강등 됩니다.The availability group primary on node 1 is demoted to secondary.

  5. 노드 2의 보조 가용성 그룹 주 승격 됩니다.The availability group secondary on node 2 is promoted to primary.

IP 주소를 장애 조치 이전 보조 서버와 노드를 가리키는 일시적으로 방지 하려면 정렬 제약 조건을 추가 합니다.To prevent the IP address from temporarily pointing to the node with the pre-failover secondary, add an ordering constraint.

정렬 제약을 추가 하려면 노드 하나에서 다음 명령을 실행 합니다.To add an ordering constraint, run the following command on one node:

sudo pcs constraint order promote ag_cluster-master then start virtualip

중요

클러스터를 구성 하 고를 클러스터 리소스로 가용성 그룹을 추가한 후 TRANSACT-SQL 장애 조치할 가용성 그룹 리소스를 사용할 수 없습니다.After you configure the cluster and add the availability group as a cluster resource, you cannot use Transact-SQL to fail over the availability group resources. Linux에서 SQL Server 클러스터 리소스 Windows Server 장애 조치 클러스터 (WSFC)에 운영 체제와 엄격히 결합 되지 됩니다.SQL Server cluster resources on Linux are not coupled as tightly with the operating system as they are on a Windows Server Failover Cluster (WSFC). SQL Server 서비스가 클러스터의 사용 여부 인식 하지 않습니다.SQL Server service is not aware of the presence of the cluster. 모든 오케스트레이션 클러스터 관리 도구를 통해 수행 됩니다.All orchestration is done through the cluster management tools. RHEL 또는 Ubuntu에서 사용 하 여 pcs 및 SLES 사용에서 crm 도구입니다.In RHEL or Ubuntu use pcs and in SLES use crm tools.

수동으로 가용성 그룹을 장애 조치할 pcs합니다.Manually fail over the availability group with pcs. TRANSACT-SQL로 장애 조치를 시작 하지 마십시오.Do not initiate failover with Transact-SQL. 자세한 내용은 장애 조치합니다.For instructions, see Failover.

다음 단계Next steps

HA 가용성 그룹 동작Operate HA availability group