Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите про настройку AO: отправка read на secondary? / 21 сообщений из 21, страница 1 из 1
11.03.2021, 13:14
    #40052573
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
Всем привет.

Развернул в тестовой среде:
vSQLAO01 - primary
vSQLAO02 - secondary
vSQLAO-Listen

Создал группу доступности с слушателем.

Не могу сообразить, как отправлять read чтения на secondary?

https://blogs.msdn.microsoft.com/mattn/2012/04/25/calculating-read_only_routing_url-for-alwayson/
При помощи скрипта из этой статьи я сгенерировал read_only_routing_url
Для vSQLAO01 - tcp://vSQL-ENT1.book.ru:50239
Для vSQLAO02 - tcp://vSQL-ENT2.book.ru:49993


но не понимаю, как эти маршруты конфигурирятся.

Хочу добиться, что-бы чтения шли на вторичную группу.

Научите пожалуйста.
...
Рейтинг: 0 / 0
11.03.2021, 14:05
    #40052591
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
Чтобы чтения шли с вторичной реплики, выполнять запросы на чтение надо на вторичной реплике. Роутинг помогает лишь сделать этот процесс более прозрачным для приложений.
...
Рейтинг: 0 / 0
11.03.2021, 14:19
    #40052596
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
Гавриленко Сергей Алексеевич
Чтобы чтения шли с вторичной реплики, выполнять запросы на чтение надо на вторичной реплике. Роутинг помогает лишь сделать этот процесс более прозрачным для приложений.


Насколько я понял, слушатель должен сам направлять "запросы с намерением только на чтение" на вторичную реплику. Хочется понять, как этим пользоваться?

Как я понимаю, что-бы слушатель автоматически направлял запросы на чтение на реплику, нужно в параметрах подключения указать ApplicationIntent = ReadOnly, после чего select @@servername должен вернуть имя вторичной реплики, но у меня упорно возвращается имя первичной.
...
Рейтинг: 0 / 0
11.03.2021, 14:34
    #40052604
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
teCa
Гавриленко Сергей Алексеевич
Чтобы чтения шли с вторичной реплики, выполнять запросы на чтение надо на вторичной реплике. Роутинг помогает лишь сделать этот процесс более прозрачным для приложений.


Насколько я понял, слушатель должен сам направлять "запросы с намерением только на чтение" на вторичную реплику. Хочется понять, как этим пользоваться?
Не запросы. А соединение.

teCa
Как я понимаю, что-бы слушатель автоматически направлял запросы на чтение на реплику, нужно в параметрах подключения указать ApplicationIntent = ReadOnly, после чего select @@servername должен вернуть имя вторичной реплики, но у меня упорно возвращается имя первичной.
https://docs.microsoft.com/ru-ru/sql/database-engine/availability-groups/windows/troubleshoot-always-on-availability-groups-configuration-sql-server?view=sql-server-ver15#ROR
...
Рейтинг: 0 / 0
11.03.2021, 14:47
    #40052609
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
Гавриленко Сергей Алексеевич,

Да, вроде как разобрался. А подскажите, как это может использоваться в работе приложений? В чем в таком случае заключается балансировка? Если есть приложение, которое пишет/читает, то оно в любом случае будет работать с первичной репликой, не рвать же каждый раз соединение, если нужно что-то записать, а потом что-то прочитать?
...
Рейтинг: 0 / 0
11.03.2021, 15:03
    #40052621
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
teCa,

для отчётов и отгрузок.
...
Рейтинг: 0 / 0
11.03.2021, 15:56
    #40052640
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
Владислав Колосов,

Получается, что из плюсов, это только единая точка подключения, те листенер. Далее, на уровне приложения мы можем какие то формы грузить с ключом readonly. Хотя это мы делать и так можем подключаясь просто к разным экземплярам. Но если репликами я мог реплицировать только нужные данные, то тут реплицируется все, даже то, что мне читать никогда не нужно - это минус.

Сразу поясню, что отказоустоичивость меня сейчас не интересует, скорее интересовала балансировка чтений/записей по разным серверам и масштабируемость.
...
Рейтинг: 0 / 0
11.03.2021, 16:13
    #40052644
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
teCa
Владислав Колосов,

Получается, что из плюсов, это только единая точка подключения, те листенер. Далее, на уровне приложения мы можем какие то формы грузить с ключом readonly. Хотя это мы делать и так можем подключаясь просто к разным экземплярам. Но если репликами я мог реплицировать только нужные данные, то тут реплицируется все, даже то, что мне читать никогда не нужно - это минус.

Сразу поясню, что отказоустоичивость меня сейчас не интересует, скорее интересовала балансировка чтений/записей по разным серверам и масштабируемость.

Ну так держите в коде два соединения, одно read-write, второе readonly

Все read-write коннекты будут к основной ноде, readonly "размажутся" по вторичкам.
Только помните, что даже на синхронных репликах со статусом synchronized данные могут появляться с какой угодно задержкой.
Причем на разных вторичных репликах в один и тот же момент времени данные могут отличаться.
...
Рейтинг: 0 / 0
11.03.2021, 16:41
    #40052656
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
msLex

Только помните, что даже на синхронных репликах со статусом synchronized данные могут появляться с какой угодно задержкой.
Причем на разных вторичных репликах в один и тот же момент времени данные могут отличаться.


Да, эту особенность я уже заметил, когда панель мониторинга показывает что всё отлично и синхронизировано, а redo_queue_size в это время раздувается.
...
Рейтинг: 0 / 0
11.03.2021, 16:57
    #40052662
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
teCa,

не все так просто, при отказе вторичной реплики абоненты ничего не заметят. А вот если вы будете использовать две точки входа или произойдет переключение на дополнительную реплику, то получат отказ от обслуживания.
...
Рейтинг: 0 / 0
11.03.2021, 17:19
    #40052668
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
Владислав Колосов
teCa,

не все так просто, при отказе вторичной реплики абоненты ничего не заметят. А вот если вы будете использовать две точки входа или произойдет переключение на дополнительную реплику, то получат отказ от обслуживания.


Именно поэтому, я уточнил, что не рассматриваю этот вопрос со стороны отказоустойчивости.
...
Рейтинг: 0 / 0
12.03.2021, 11:29
    #40052838
Александр Гладченко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
Как вариант, сделайте на серверах линкед-сервера с подключением через прослушивателя и с ApplicationIntent = ReadOnly.
Потом сможете не только читать с реплики но и джоинить её в запросах. ...хотя линки конечно зло...
ApplicationIntent = ReadOnly полезен для отчётов и аналитики. Но грабли с ростом очередей на REDO из-за блокировок на реплике могут сильно подпортить удовольствие, даже в асинхроне.
Малость могут помочь вот эти флаги: 1448 и 1462
...
Рейтинг: 0 / 0
12.03.2021, 12:45
    #40052863
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
Александр Гладченко
Как вариант, сделайте на серверах линкед-сервера с подключением через прослушивателя и с ApplicationIntent = ReadOnly.
Потом сможете не только читать с реплики но и джоинить её в запросах. ...хотя линки конечно зло...
ApplicationIntent = ReadOnly полезен для отчётов и аналитики. Но грабли с ростом очередей на REDO из-за блокировок на реплике могут сильно подпортить удовольствие, даже в асинхроне.
Малость могут помочь вот эти флаги: 1448 и 1462


Спасибо, с линкованием серверов интересное дополнение.
...
Рейтинг: 0 / 0
12.03.2021, 15:25
    #40052921
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
teCa,

Вы пишете о взаимоисключающим вещах, в таком случае:

"отказоустоичивость меня сейчас не интересует, скорее интересовала балансировка чтений/записей"
"развернул АО в тестовой среде"

второе исключает первое, либо вы решили использовать AlwaysOn не по назначению:
"Но если репликами я мог реплицировать только нужные данные, то тут реплицируется все, даже то, что мне читать никогда не нужно".
...
Рейтинг: 0 / 0
12.03.2021, 15:57
    #40052930
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
Владислав Колосов,

Интересно было разобраться, как работает маршрутизация запросов на чтение внутри AO, так же нравиться, как работает единая точка входа для группы доступности, выглядит многообещающе со стороны масштабируемости системы.
...
Рейтинг: 0 / 0
12.03.2021, 16:01
    #40052932
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
Владислав Колосов
teCa,

Вы пишете о взаимоисключающим вещах, в таком случае:

"отказоустоичивость меня сейчас не интересует, скорее интересовала балансировка чтений/записей"
"развернул АО в тестовой среде"

второе исключает первое, либо вы решили использовать AlwaysOn не по назначению:
"Но если репликами я мог реплицировать только нужные данные, то тут реплицируется все, даже то, что мне читать никогда не нужно".



Есть даже "промышленное" решение по масштабированию нагрузки через RO синхронные реплики, включающее в себя как возможность явно указывать тип запросов, так механизм позволяющий определять это налету по тексту запроса.

Использовалось (а может и до сих пор используется) для 1С базы, кажется, в Магните.
...
Рейтинг: 0 / 0
12.03.2021, 16:09
    #40052933
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
msLex,

Интересно было бы посмотреть на что-то подобное.
...
Рейтинг: 0 / 0
12.03.2021, 16:18
    #40052939
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
teCa
msLex,

Интересно было бы посмотреть на что-то подобное.

К сожалению, совсем не помню ни название этого продукта ни конторы, которая это решения разрабатывала.

Был на докладе представителя этой конторы на одном из московских DevCon-ов лет 5-7 назад.
...
Рейтинг: 0 / 0
12.03.2021, 16:19
    #40052942
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
msLex,

я так понимаю, что это "самопал" своего рода, так как для распределённых запросов предназначены PolyBase и архитектура Massively Parallell Processing.
...
Рейтинг: 0 / 0
12.03.2021, 16:25
    #40052949
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
Владислав Колосов
msLex,

я так понимаю, что это "самопал" своего рода, так как для распределённых запросов предназначены PolyBase и архитектура Massively Parallell Processing.

Ну как самопал.
Есть (или была) контора, которая целенаправленно разрабатывала подобное решение. 1С база Магнита, одно из мест внедрения (возможно самое крупное).
Так то и, например, Citus над Postgres можно назвать "самопалом", а теперь ее MS с потрохами выкупила, и в Azure юзает.



Massively Parallell Processing и PolyBase это все же не про OLTP.
...
Рейтинг: 0 / 0
12.03.2021, 17:15
    #40052966
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите про настройку AO: отправка read на secondary?
msLex,

да, не OLTP, но тоже имеет целью извлечение данных :) Спасибо, понятно.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Подскажите про настройку AO: отправка read на secondary? / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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