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

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


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

Как я понимаю, что-бы слушатель автоматически направлял запросы на чтение на реплику, нужно в параметрах подключения указать ApplicationIntent = ReadOnly, после чего select @@servername должен вернуть имя вторичной реплики, но у меня упорно возвращается имя первичной.
...
Рейтинг: 0 / 0
Подскажите про настройку AO: отправка read на secondary?
    #40052604
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Подскажите про настройку AO: отправка read на secondary?
    #40052609
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич,

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

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

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

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

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

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

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

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

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


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

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

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


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


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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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



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

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


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