다음을 통해 공유


ALTER ROUTE(Transact-SQL)

업데이트: 2007년 9월 15일

기존 경로에 대한 경로 정보를 수정합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

ALTER ROUTE route_name
WITH  
  [ SERVICE_NAME = 'service_name' [ , ] ]
  [ BROKER_INSTANCE = 'broker_instance' [ , ] ]
  [ LIFETIME = route_lifetime [ , ] ]
  [ ADDRESS =  'next_hop_address' [ , ] ]
  [ MIRROR_ADDRESS = 'next_hop_mirror_address' ]
[ ; ]

인수

  • route_name
    변경할 경로의 이름입니다. 서버, 데이터베이스 및 스키마 이름은 지정될 수 없습니다.
  • WITH
    변경되는 경로를 정의하는 절을 지정합니다.
  • SERVICE_NAME ='service_name'
    이 경로가 가리키는 원격 서비스 이름을 지정합니다. service_name은 원격 서비스에서 사용되는 이름과 정확히 일치해야 합니다. Service Broker는 바이트 단위로 비교하여 일치하는 service_name을 찾습니다. 즉, 비교 시 대/소문자가 구분되고 현재 데이터 정렬은 고려되지 않습니다. 서비스 이름이 **'SQL/ServiceBroker/BrokerConfiguration'**인 경로는 Broker Configuration Notice 서비스에 대한 경로입니다. 이 서비스에 대한 경로에서 broker 인스턴스를 지정하지 않을 수 있습니다.

    SERVICE_NAME 절이 생략되면 경로의 서비스 이름이 변경되지 않습니다.

  • BROKER_INSTANCE ='broker_instance'
    대상 서비스를 호스팅하는 데이터베이스를 지정합니다. broker_instance 매개 변수는 선택한 데이터베이스에서 다음 쿼리를 실행하여 가져올 수 있는 원격 데이터베이스의 Broker 인스턴스 식별자여야 합니다.

    SELECT service_broker_guid
    FROM sys.databases
    WHERE database_id = DB_ID()
    

    BROKER_INSTANCE 절이 생략되면 경로의 Broker 인스턴스가 변경되지 않습니다.

  • LIFETIME **=**route_lifetime
    SQL Server에서 라우팅 테이블에 경로를 유지하는 시간(분)을 지정합니다. 수명이 다되어 경로가 만료되면 SQL Server는 새 대화를 위한 경로를 선택할 때 더 이상 해당 경로를 고려하지 않습니다. 이 절이 생략되면 경로의 수명이 변경되지 않습니다.
  • ADDRESS **='**next_hop_address'
    이 경로에 대한 네트워크 주소를 지정합니다. next_hop_address는 다음과 같은 형식으로 TCP/IP 주소를 지정합니다.

    TCP:// { dns_name | netbios_name |ip_address } :?port_number

    지정된 port_number는 지정된 컴퓨터에서 SQL Server 인스턴스의 Service Broker 끝점의 포트 번호와 일치해야 합니다. 이는 선택한 데이터베이스에서 다음 쿼리를 실행하여 얻을 수 있습니다.

    SELECT tcpe.port
    FROM sys.tcp_endpoints AS tcpe
    INNER JOIN sys.service_broker_endpoints AS ssbe
       ON ssbe.endpoint_id = tcpe.endpoint_id
    WHERE ssbe.name = N'MyServiceBrokerEndpoint';
    

    경로에 next_hop_address가 **'LOCAL'**로 지정되어 있으면 메시지는 현재 SQL Server 인스턴스 내의 서비스로 배달됩니다.

    경로에 next_hop_address가 **'TRANSPORT'**로 지정되어 있으면 네트워크 주소는 서비스 이름의 네트워크 주소를 기준으로 결정됩니다. **'TRANSPORT'**를 지정하는 경로는 서비스 이름이나 Broker 인스턴스를 지정할 수 있습니다.

    next_hop_address가 데이터베이스 미러의 주 서버인 경우에는 미러 서버에 대해 MIRROR_ADDRESS도 지정해야 합니다. 그렇지 않으면 이 경로는 미러 서버에 대해 자동으로 장애 조치(Failover)하지 않습니다.

  • MIRROR_ADDRESS ='next_hop_mirror_address'
    주 서버가 next_hop_address에 있는 미러링된 쌍의 미러 서버에 대해 네트워크 주소를 지정합니다. next_hop_mirror_address는 다음과 같은 형식으로 TCP/IP 주소를 지정합니다.

    TCP://{ dns_name | netbios_name | ip_address } **:**port_number

    지정된 port_number는 지정된 컴퓨터에서 SQL Server 인스턴스의 Service Broker 끝점의 포트 번호와 일치해야 합니다. 이는 선택한 데이터베이스에서 다음 쿼리를 실행하여 얻을 수 있습니다.

    SELECT tcpe.port
    FROM sys.tcp_endpoints AS tcpe
    INNER JOIN sys.service_broker_endpoints AS ssbe
       ON ssbe.endpoint_id = tcpe.endpoint_id
    WHERE ssbe.name = N'MyServiceBrokerEndpoint';
    

    MIRROR_ADDRESS가 지정된 경로에는 SERVICE_NAME 절 및 BROKER_INSTANCE 절을 지정해야 합니다. next_hop_address'LOCAL' 또는 **'TRANSPORT'**로 지정된 경로에는 미러 주소가 지정되지 않을 수 있습니다.

주의

경로를 저장하는 라우팅 테이블은 sys.routes 카탈로그 뷰를 통해 읽을 수 있는 메타데이터 테이블입니다. 라우팅 테이블은 CREATE ROUTE, ALTER ROUTE 및 DROP ROUTE 문으로만 업데이트할 수 있습니다.

ALTER ROUTE 명령에서 지정하지 않은 절은 변경되지 않은 상태로 유지됩니다. 따라서 경로의 제한 시간이 초과되지 않거나, 경로가 서비스 이름과 일치하거나, 경로가 모든 Broker 인스턴와 일치하도록 지정하는 경로를 변경할 수 없습니다. 이러한 경로의 특성을 변경하려면 기존 경로를 삭제하고 새 정보로 새 경로를 만들어야 합니다.

경로에 next_hop_address가 **'TRANSPORT'**로 지정되어 있으면 네트워크 주소는 서비스 이름의 네트워크 주소를 기준으로 결정됩니다. SQL Server는 next_hop_address에 유효한 형식의 네트워크 주소로 시작하는 서비스 이름을 처리할 수 있습니다. 유효한 네트워크 경로를 포함하는 이름의 서비스는 서비스 이름에 있는 네트워크 경로로 라우팅됩니다.

라우팅 테이블에는 동일한 서비스, 네트워크 주소 및 Broker 인스턴스 식별자를 지정하는 경로가 여러 개일 수 있습니다. 이 경우 Service Broker는 라우팅 테이블의 정보 중 대화에 지정된 정보와 가장 정확하게 일치하는 정보를 찾을 수 있도록 개발된 프로시저를 사용하여 경로를 선택합니다. Service Broker의 경로 선택 방법은 Service Broker 라우팅 및 네트워킹을 참조하십시오.

서비스에 대한 AUTHORIZATION을 변경하려면 ALTER AUTHORIZATION 문을 사용합니다.

사용 권한

경로 변경 권한은 기본적으로 경로 소유자, db_ddladmin 또는 db_owner 고정 데이터베이스 역할의 멤버 및 sysadmin 고정 서버 역할의 멤버에게 있습니다.

1. 경로에 대한 서비스 변경

다음 예에서는 //Adventure-Works.com/Expenses 원격 서비스를 가리키도록 ExpenseRoute 경로를 수정합니다.

ALTER ROUTE ExpenseRoute
   WITH 
     SERVICE_NAME = '//Adventure-Works.com/Expenses'

2. 경로의 대상 데이터베이스 변경

다음 예에서는 ExpenseRoute 경로의 대상 데이터베이스를 D8D4D268-00A3-4C62-8F91-634B89B1E317. 고유 식별자로 식별되는 데이터베이스로 변경합니다.

ALTER ROUTE ExpenseRoute
   WITH 
     BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89B1E317'

3. 경로의 주소 변경

다음 예에서는 ExpenseRoute 경로의 네트워크 주소를 IP 주소가 10.2.19.72인 호스트의 TCP 포트 1234로 변경합니다.

ALTER ROUTE ExpenseRoute 
   WITH 
     ADDRESS = 'TCP://10.2.19.72:1234'

4. 경로의 데이터베이스 및 주소 변경

다음 예에서는 ExpenseRoute 경로의 네트워크 주소를 DNS 이름이 www.Adventure-Works.com인 호스트의 TCP 포트 1234로 변경하고 대상 데이터베이스를 D8D4D268-00A3-4C62-8F91-634B89B1E317 고유 식별자로 식별되는 데이터베이스로 변경합니다.

ALTER ROUTE ExpenseRoute
   WITH 
     BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89B1E317',
     ADDRESS = 'TCP://www.Adventure-Works.com:1234'

참고 항목

참조

CREATE ROUTE(Transact-SQL)
DROP ROUTE(Transact-SQL)
EVENTDATA(Transact-SQL)

관련 자료

Service Broker 라우팅

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2007년 9월 15일

변경된 내용
  • ADDRESS 및 MIRROR_ADDRESS 인수에 대한 끝점 포트 주소를 찾는 쿼리 예를 추가했습니다.