Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения:SQL Server
В этом разделе содержатся сведения о настройке Компонента Service Broker для работы с группами доступности AlwaysOn в SQL Server.
Прием удаленных сообщений из других экземпляров Service Broker
Убедитесь, что группа доступности имеет прослушиватель.
Дополнительные сведения см. в разделе Создание или настройка прослушивателя группы доступности (SQL Server).
Убедитесь, что конечная точка компонента Service Broker существует и правильно настроена.
На каждом экземпляре SQL Server, на котором размещена реплика доступности для группы доступности, настройте конечную точку Service Broker следующим образом:
Установите параметр LISTENER_IP в значение ALL. Этот параметр разрешает соединения по любому допустимому IP-адресу, привязанному к прослушивателю группы доступности.
Установите в параметре PORT компонента Service Broker одинаковый номер порта во всех экземплярах сервера.
Совет
Чтобы просмотреть номер порта конечной точки компонента Service Broker в заданном экземпляре сервера, запросите столбец port представления каталога sys.tcp_endpoints , где type_desc = 'SERVICE_BROKER'.
В следующем примере создается конечная точка компонента Service Broker с проверкой подлинности Windows, которая использует порт компонента Service Broker по умолчанию (4022) и прослушивает все допустимые IP-адреса.
CREATE ENDPOINT [SSBEndpoint] STATE = STARTED AS TCP (LISTENER_PORT = 4022, LISTENER_IP = ALL ) FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS)Для получения дополнительной информации см. CREATE ENDPOINT (Transact-SQL).
Примечание.
Компонент SQL Server Service Broker не приспособлен для работы с несколькими подсетями. Задайте для параметра
RegisterAllProvidersIPзначение 0 и убедитесь, что кластер имеет необходимое разрешение в DNS для использования статических IP-адресов. Дополнительные сведения см. в разделе Настройка прослушивателя группы доступности. При попытке использования отключённого IP-адреса Service Broker может задержать сообщение со статусом "conversing".Предоставьте разрешение CONNECT на конечную точку.
Предоставьте разрешение CONNECT на конечную точку компонента Service Broker либо роли PUBLIC, либо пользователю.
В следующем примере разрешение на подключение к конечной точке компонента Service Broker с именем
SSBEndpointпредоставляется роли PUBLIC.GRANT CONNECT ON ENDPOINT::[SSBEndpoint] TO [PUBLIC]Дополнительные сведения см. в статье GRANT (Transact-SQL).
Убедитесь, что база данных msdb содержит маршрут AutoCreatedLocal или маршрут к некоторой службе.
Примечание.
По умолчанию все пользовательские базы данных, включая msdb, содержат маршрут AutoCreatedLocal. Этот маршрут соответствует любому имени службы и экземпляру брокера и указывает, что сообщение должно быть доставлено внутри текущего экземпляра. AutoCreatedLocal имеет более низкий приоритет, чем маршруты, которые явно указывают конкретную службу, обменивающуюся данными с удаленным экземпляром.
Дополнительные сведения о создании маршрутов см. в примерах маршрутизации Service Broker (в версии SQL Server 2008 R2 (10.50.x) документации в Интернете) и в CREATE ROUTE (Transact-SQL).
Требования к отправке сообщений удаленной службе в группе доступности
Создайте маршрут к целевой службе.
Настройте маршрут следующим образом.
Задайте в параметре ADDRESS IP-адрес прослушивателя группы доступности, в которой размещается база данных службы.
Установите значение параметра PORT в соответствии с портом, указанным в точке установки компонента Service Broker для каждого из удаленных экземпляров SQL Server.
В следующем примере создается маршрут с именем
RouteToTargetServiceдля службыISBNLookupRequestService. Маршрут ведет к прослушивателю группы доступностиMyAgListener, который использует порт 4022.CREATE ROUTE [RouteToTargetService] WITH SERVICE_NAME = 'ISBNLookupRequestService', ADDRESS = 'TCP://MyAgListener:4022';Дополнительные сведения см. в статье CREATE ROUTE (Transact-SQL).
Убедитесь, что база данных msdb содержит либо маршрут "AutoCreatedLocal", либо маршрут к определенной службе. (Дополнительные сведения см. в подразделе Требования к службе в группе доступности для получения удаленных сообщенийвыше.)
Связанные задачи
См. также
Обзор групп доступности Always On (SQL Server)
Слушатели групп доступности, подключение клиентов и автоматическое переключение при отказе приложений (SQL Server)
SQL Server Service Broker