powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / AlwaysOn - Балансировка нагрузки ReadOnly
2 сообщений из 2, страница 1 из 1
AlwaysOn - Балансировка нагрузки ReadOnly
    #40109786
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Версия Microsoft SQL Server 2017 (RTM-CU26)

Есть три реплики:
1. Первичная
2. Вторичная синхронная фиксация

Маршрутизация ReadOnly сейчас настроена без балансировки, вот скрипт

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
ALTER AVAILABILITY GROUP [MyAON]  
 MODIFY REPLICA ON  
N'Srv1' WITH   
(SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));  

ALTER AVAILABILITY GROUP [MyAON]  
 MODIFY REPLICA ON  
N'Srv1' WITH   
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://Srv1:1433'));  
  
ALTER AVAILABILITY GROUP [MyAON]  
 MODIFY REPLICA ON  
N'Srv2' WITH   
(SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));  

ALTER AVAILABILITY GROUP [MyAON]  
 MODIFY REPLICA ON  
N'Srv2' WITH   
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://Srv2:1433'));  
  
ALTER AVAILABILITY GROUP [MyAON]   
MODIFY REPLICA ON  
N'Srv1' WITH   
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('Srv2','Srv1')));  
  
ALTER AVAILABILITY GROUP [MyAON]   
MODIFY REPLICA ON  
N'Srv2' WITH   
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('Srv1','Srv2')));  
GO 



В приложении указываю ApplicationIntent=ReadOnly; DataBase=MyDataBase и запросы по чтению выполняются на вторичной реплике, всё хорошо.

Строка соединения "jdbc:sqlserver://Mylistner;DataBaseName=MyDataBase;ApplicationIntent=readOnly;MultiSubnetFailover=true;"

Добавляю третью реплику с асинхронной фиксацией - Srv3, хочу сделать балансировку по чтению между Srv2 и Srv3.
Выполняю вот такой скрипт
Код: sql
1.
2.
3.
4.
5.
6.
USE [master]
GO
-- адреса вторичных реплик в скобках
ALTER AVAILABILITY GROUP [MyAON]
MODIFY REPLICA ON N'Srv1' WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST = ((N'Srv2',N'Srv3'))))
GO



Перезапускаю своё приложение, начинаю выполнять запросы, вижу что ReadOnly запросы выполняются как на Srv2 так и на Srv3, радуюсь! Но не долго... потому, что через некоторое время, буквально 2-3 минуты все RedOnly запросы начинают выполнятся на первичной реплике Srv1, почему не понятно.

Кто-нибудь сталкивался с такой ситуацией, можете подсказать исправить?
...
Рейтинг: 0 / 0
AlwaysOn - Балансировка нагрузки ReadOnly
    #40109788
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока писал разобрался сам. Нужно было ещё прав для пользователя добавить на Srv3.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / AlwaysOn - Балансировка нагрузки ReadOnly
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]