Always On 가용성 그룹이 포함된 Service Broker(SQL Server)Service Broker with Always On Availability Groups (SQL Server)

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

이 항목에서는 Always On 가용성 그룹Always On availability groups 에서 SQL Server 2017SQL Server 2017과 함께 작동하도록 Service Broker를 구성하는 방법에 대한 정보를 제공합니다.This topic contains information about configuring Service Broker to work with Always On 가용성 그룹Always On availability groups in SQL Server 2017SQL Server 2017.

항목 내용:In This Topic:

가용성 그룹의 서비스가 원격 메시지를 받기 위한 요구 사항Requirements for a Service in an Availability Group to Receive Remote Messages

  1. 가용성 그룹에 수신기가 있는지 확인합니다.Ensure that the availability group possesses a listener.

    자세한 내용은 가용성 그룹 수신기 만들기 또는 구성(SQL Server)인스턴스에 AlwaysOn 가용성 그룹을 만드는 방법을 설명합니다.For more information, see Create or Configure an Availability Group Listener (SQL Server).

  2. Service Broker 끝점이 존재하고 올바르게 구성되어 있는지 확인합니다.Ensure that the Service Broker endpoint exists and is correctly configured.

    가용성 그룹에 대한 가용성 복제본을 호스팅하는 모든 SQL ServerSQL Server 인스턴스에서 다음과 같이 Service Broker 끝점을 구성해야 합니다.On every instance of SQL ServerSQL Server that hosts an availability replica for the availability group, configure the Service Broker endpoint, as follows:

    • LISTENER_IP를 'ALL'로 설정합니다.Set LISTENER_IP to 'ALL'. 이 설정을 사용하면 가용성 그룹 수신기에 바인딩된 모든 유효한 IP 주소에서 연결이 가능해집니다.This setting enables connections on any valid IP address that is bound to the availability group listener.

    • 모든 호스트 서버 인스턴스에서 Service Broker 포트를 동일한 포트 번호로 설정합니다.Set the Service Broker PORT to the same port number on all the host server instances.

      특정 서버 인스턴스에서 Service Broker 끝점의 포트 번호를 보려면 sys.tcp_endpoints 카탈로그 뷰의 port 열을 쿼리합니다. 여기서 type_desc = 'SERVICE_BROKER'입니다.To view the port number of the Service Broker endpoint on a given server instance, query the port column of the sys.tcp_endpoints catalog view, where type_desc = 'SERVICE_BROKER'.

      다음 예에서는 기본 Service Broker 포트(4022)를 사용하며 모든 유효한 IP 주소를 수신하는 Windows 인증 Service Broker 끝점을 만듭니다.The following example creates a Windows authenticated Service Broker endpoint that uses the default Service Broker port (4022) and listens to all valid IP addresses.

    CREATE ENDPOINT [SSBEndpoint]  
        STATE = STARTED  
        AS TCP  (LISTENER_PORT = 4022, LISTENER_IP = ALL )  
        FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS)  
    

    자세한 내용은 CREATE ENDPOINT(Transact-SQL)과 함께 작동하도록 Service Broker를 구성하는 방법에 대한 정보를 제공합니다.For more information, see CREATE ENDPOINT (Transact-SQL).

  3. 끝점에 대한 CONNECT 권한을 부여합니다.Grant CONNECT permission on the endpoint.

    Service Broker 끝점에 대한 CONNECT 권한을 PUBLIC 또는 로그인으로 부여합니다.Grant CONNECT permission on the Service Broker endpoint either to PUBLIC or to a login.

    다음 예에서는 broker_endpoint 라는 Service Broker 끝점에 대한 연결을 PUBLIC으로 부여합니다.The following example grants the connection on a Service Broker endpoint named broker_endpoint to PUBLIC.

    GRANT CONNECT ON ENDPOINT::[broker_endpoint] TO [PUBLIC]  
    

    자세한 내용은 GRANT(Transact-SQL)과 함께 작동하도록 Service Broker를 구성하는 방법에 대한 정보를 제공합니다.For more information, see GRANT (Transact-SQL).

  4. msdb에 AutoCreatedLocal 경로 또는 특정 서비스에 대한 경로가 포함되어 있는지 확인합니다.Ensure that msdb contains either an AutoCreatedLocal route or a route to the specific service.

    참고

    기본적으로 msdb를 비롯하여 각 사용자 데이터베이스에는 AutoCreatedLocal경로가 포함되어 있습니다.By default, each user database, including msdb, contains the route AutoCreatedLocal. 이 경로는 임의의 서비스 이름 및 Broker 인스턴스와 일치하며 메시지가 현재 인스턴스 내에 배달되도록 지정합니다.This route matches any service name and broker instance and specifies that the message should be delivered within the current instance. AutoCreatedLocal 의 우선 순위는 원격 인스턴스와 통신하는 특정 서비스를 명시적으로 지정하는 경로의 우선 순위보다 낮습니다.AutoCreatedLocal has lower priority than routes that explicitly specify a specific service that communicates with a remote instance.

    경로를 만드는 방법은 버전의 온라인 설명서에 있는 Service Broker 라우팅 예 SQL Server 2008 R2SQL Server 2008 R2CREATE ROUTE(Transact-SQL)과 함께 작동하도록 Service Broker를 구성하는 방법에 대한 정보를 제공합니다.For information about creating routes, see Service Broker Routing Examples (in the SQL Server 2008 R2SQL Server 2008 R2 version of Books Online) and CREATE ROUTE (Transact-SQL).

가용성 그룹의 원격 서비스에 메시지를 보내기 위한 요구 사항Requirements for Sending Messages to a Remote Service in an Availability Group

  1. 대상 서비스에 대한 경로를 만듭니다.Create a route to the target service.

    다음과 같이 경로를 구성합니다.Configure the route as follows:

    • ADDRESS를 서비스 데이터베이스를 호스팅하는 가용성 그룹의 수신기 IP 주소로 설정합니다.Set ADDRESS to the listener IP address of availability group that hosts the service database.

    • PORT를 각 원격 SQL Server 인스턴스의 Service Broker 끝점에 지정한 포트로 설정합니다.Set PORT to the port that you specified in the Service Broker endpoint of each of the remote SQL Server instances.

      다음 예에서는 RouteToTargetService 서비스에 대해 ISBNLookupRequestService 라는 경로를 만듭니다.The following example creates a route named RouteToTargetService for the ISBNLookupRequestService service. 이 경로는 포트 4022를 사용하는 가용성 그룹 수신기 MyAgListener를 대상으로 합니다.The route targets the availability group listener, MyAgListener, which uses port 4022.

    CREATE ROUTE [RouteToTargetService] WITH   
    SERVICE_NAME = 'ISBNLookupRequestService',   
    ADDRESS = 'TCP://MyAgListener:4022';  
    

    자세한 내용은 CREATE ROUTE(Transact-SQL)과 함께 작동하도록 Service Broker를 구성하는 방법에 대한 정보를 제공합니다.For more information, see CREATE ROUTE (Transact-SQL).

  2. msdb에 AutoCreatedLocal 경로 또는 특정 서비스에 대한 경로가 포함되어 있는지 확인합니다.Ensure that msdb contains either an AutoCreatedLocal route or a route to the specific service. 자세한 내용은 이 항목의 앞부분에 나오는 가용성 그룹의 서비스가 원격 메시지를 받기 위한 요구 사항을 참조하세요.(For more information, see Requirements for a Service in an Availability Group to Receive Remote Messages, earlier in this topic.)

관련 태스크Related Tasks

참고 항목See Also

Always On 가용성 그룹 개요(SQL Server) Overview of Always On Availability Groups (SQL Server)
가용성 그룹 수신기, 클라이언트 연결 및 응용 프로그램 장애 조치(failover)(SQL Server) Availability Group Listeners, Client Connectivity, and Application Failover (SQL Server)
SQL Server Service BrokerSQL Server Service Broker