Компонент Service Broker с группами доступности AlwaysOn (SQL Server)
В этом разделе содержатся сведения о настройке компонента Service Broker для работы с Группы доступности AlwaysOn в SQL Server 2012.
В этом разделе:
Требования к службе в группе доступности для получения удаленных сообщений
Требования к отправке сообщений удаленной службе в группе доступности
Требования к службе в группе доступности для получения удаленных сообщений
Убедитесь, что группа доступности имеет прослушиватель.
Дополнительные сведения см. в разделе Создание или настройка прослушивателя группы доступности (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).
Предоставьте разрешение CONNECT на конечную точку.
Предоставьте разрешение CONNECT на конечную точку компонента Service Broker роли PUBLIC или некоторому имени входа.
В следующем примере разрешение на подключение к конечной точке компонента Service Broker с именем broker_endpoint предоставляется роли PUBLIC.
GRANT CONNECT ON ENDPOINT::[broker_endpoint] TO [PUBLIC]
Дополнительные сведения см. в разделе Инструкция GRANT (Transact-SQL).
Убедитесь, что база данных msdb содержит маршрут AutoCreatedLocal или маршрут к некоторой службе.
Примечание По умолчанию каждая пользовательская база данных, включая msdb, содержит маршрут AutoCreatedLocal. Он соответствует имени любой службы и любому экземпляру компонента Service Broker и указывает, что сообщение должно быть доставлено внутри текущего экземпляра. Маршрут AutoCreatedLocal имеет более низкий приоритет, чем маршруты, в которых явно указывается служба, обменивающаяся данными с удаленным экземпляром.
Сведения о создании маршрутов см. в разделе Примеры маршрутизации для компонента Service Broker (в версии электронной документации SQL Server 2008 R2) и разделе 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 или маршрут к некоторой службе. (Дополнительные сведения см. в подразделе Требования к службе в группе доступности для получения удаленных сообщений выше.)
[Top]
Связанные задачи
[Top]