|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
Всем привет. Развернул в тестовой среде: 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 но не понимаю, как эти маршруты конфигурирятся. Хочу добиться, что-бы чтения шли на вторичную группу. Научите пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2021, 13:14 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
Чтобы чтения шли с вторичной реплики, выполнять запросы на чтение надо на вторичной реплике. Роутинг помогает лишь сделать этот процесс более прозрачным для приложений. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2021, 14:05 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич Чтобы чтения шли с вторичной реплики, выполнять запросы на чтение надо на вторичной реплике. Роутинг помогает лишь сделать этот процесс более прозрачным для приложений. Насколько я понял, слушатель должен сам направлять "запросы с намерением только на чтение" на вторичную реплику. Хочется понять, как этим пользоваться? Как я понимаю, что-бы слушатель автоматически направлял запросы на чтение на реплику, нужно в параметрах подключения указать ApplicationIntent = ReadOnly, после чего select @@servername должен вернуть имя вторичной реплики, но у меня упорно возвращается имя первичной. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2021, 14:19 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
teCa Гавриленко Сергей Алексеевич Чтобы чтения шли с вторичной реплики, выполнять запросы на чтение надо на вторичной реплике. Роутинг помогает лишь сделать этот процесс более прозрачным для приложений. Насколько я понял, слушатель должен сам направлять "запросы с намерением только на чтение" на вторичную реплику. Хочется понять, как этим пользоваться? teCa Как я понимаю, что-бы слушатель автоматически направлял запросы на чтение на реплику, нужно в параметрах подключения указать ApplicationIntent = ReadOnly, после чего select @@servername должен вернуть имя вторичной реплики, но у меня упорно возвращается имя первичной. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2021, 14:34 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич, Да, вроде как разобрался. А подскажите, как это может использоваться в работе приложений? В чем в таком случае заключается балансировка? Если есть приложение, которое пишет/читает, то оно в любом случае будет работать с первичной репликой, не рвать же каждый раз соединение, если нужно что-то записать, а потом что-то прочитать? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2021, 14:47 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
teCa, для отчётов и отгрузок. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2021, 15:03 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
Владислав Колосов, Получается, что из плюсов, это только единая точка подключения, те листенер. Далее, на уровне приложения мы можем какие то формы грузить с ключом readonly. Хотя это мы делать и так можем подключаясь просто к разным экземплярам. Но если репликами я мог реплицировать только нужные данные, то тут реплицируется все, даже то, что мне читать никогда не нужно - это минус. Сразу поясню, что отказоустоичивость меня сейчас не интересует, скорее интересовала балансировка чтений/записей по разным серверам и масштабируемость. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2021, 15:56 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
teCa Владислав Колосов, Получается, что из плюсов, это только единая точка подключения, те листенер. Далее, на уровне приложения мы можем какие то формы грузить с ключом readonly. Хотя это мы делать и так можем подключаясь просто к разным экземплярам. Но если репликами я мог реплицировать только нужные данные, то тут реплицируется все, даже то, что мне читать никогда не нужно - это минус. Сразу поясню, что отказоустоичивость меня сейчас не интересует, скорее интересовала балансировка чтений/записей по разным серверам и масштабируемость. Ну так держите в коде два соединения, одно read-write, второе readonly Все read-write коннекты будут к основной ноде, readonly "размажутся" по вторичкам. Только помните, что даже на синхронных репликах со статусом synchronized данные могут появляться с какой угодно задержкой. Причем на разных вторичных репликах в один и тот же момент времени данные могут отличаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2021, 16:13 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
msLex Только помните, что даже на синхронных репликах со статусом synchronized данные могут появляться с какой угодно задержкой. Причем на разных вторичных репликах в один и тот же момент времени данные могут отличаться. Да, эту особенность я уже заметил, когда панель мониторинга показывает что всё отлично и синхронизировано, а redo_queue_size в это время раздувается. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2021, 16:41 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
teCa, не все так просто, при отказе вторичной реплики абоненты ничего не заметят. А вот если вы будете использовать две точки входа или произойдет переключение на дополнительную реплику, то получат отказ от обслуживания. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2021, 16:57 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
Владислав Колосов teCa, не все так просто, при отказе вторичной реплики абоненты ничего не заметят. А вот если вы будете использовать две точки входа или произойдет переключение на дополнительную реплику, то получат отказ от обслуживания. Именно поэтому, я уточнил, что не рассматриваю этот вопрос со стороны отказоустойчивости. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2021, 17:19 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
Как вариант, сделайте на серверах линкед-сервера с подключением через прослушивателя и с ApplicationIntent = ReadOnly. Потом сможете не только читать с реплики но и джоинить её в запросах. ...хотя линки конечно зло... ApplicationIntent = ReadOnly полезен для отчётов и аналитики. Но грабли с ростом очередей на REDO из-за блокировок на реплике могут сильно подпортить удовольствие, даже в асинхроне. Малость могут помочь вот эти флаги: 1448 и 1462 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2021, 11:29 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
Александр Гладченко Как вариант, сделайте на серверах линкед-сервера с подключением через прослушивателя и с ApplicationIntent = ReadOnly. Потом сможете не только читать с реплики но и джоинить её в запросах. ...хотя линки конечно зло... ApplicationIntent = ReadOnly полезен для отчётов и аналитики. Но грабли с ростом очередей на REDO из-за блокировок на реплике могут сильно подпортить удовольствие, даже в асинхроне. Малость могут помочь вот эти флаги: 1448 и 1462 Спасибо, с линкованием серверов интересное дополнение. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2021, 12:45 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
teCa, Вы пишете о взаимоисключающим вещах, в таком случае: "отказоустоичивость меня сейчас не интересует, скорее интересовала балансировка чтений/записей" "развернул АО в тестовой среде" второе исключает первое, либо вы решили использовать AlwaysOn не по назначению: "Но если репликами я мог реплицировать только нужные данные, то тут реплицируется все, даже то, что мне читать никогда не нужно". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2021, 15:25 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
Владислав Колосов, Интересно было разобраться, как работает маршрутизация запросов на чтение внутри AO, так же нравиться, как работает единая точка входа для группы доступности, выглядит многообещающе со стороны масштабируемости системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2021, 15:57 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
Владислав Колосов teCa, Вы пишете о взаимоисключающим вещах, в таком случае: "отказоустоичивость меня сейчас не интересует, скорее интересовала балансировка чтений/записей" "развернул АО в тестовой среде" второе исключает первое, либо вы решили использовать AlwaysOn не по назначению: "Но если репликами я мог реплицировать только нужные данные, то тут реплицируется все, даже то, что мне читать никогда не нужно". Есть даже "промышленное" решение по масштабированию нагрузки через RO синхронные реплики, включающее в себя как возможность явно указывать тип запросов, так механизм позволяющий определять это налету по тексту запроса. Использовалось (а может и до сих пор используется) для 1С базы, кажется, в Магните. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2021, 16:01 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
msLex, Интересно было бы посмотреть на что-то подобное. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2021, 16:09 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
teCa msLex, Интересно было бы посмотреть на что-то подобное. К сожалению, совсем не помню ни название этого продукта ни конторы, которая это решения разрабатывала. Был на докладе представителя этой конторы на одном из московских DevCon-ов лет 5-7 назад. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2021, 16:18 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
msLex, я так понимаю, что это "самопал" своего рода, так как для распределённых запросов предназначены PolyBase и архитектура Massively Parallell Processing. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2021, 16:19 |
|
Подскажите про настройку AO: отправка read на secondary?
|
|||
---|---|---|---|
#18+
Владислав Колосов msLex, я так понимаю, что это "самопал" своего рода, так как для распределённых запросов предназначены PolyBase и архитектура Massively Parallell Processing. Ну как самопал. Есть (или была) контора, которая целенаправленно разрабатывала подобное решение. 1С база Магнита, одно из мест внедрения (возможно самое крупное). Так то и, например, Citus над Postgres можно назвать "самопалом", а теперь ее MS с потрохами выкупила, и в Azure юзает. Massively Parallell Processing и PolyBase это все же не про OLTP. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2021, 16:25 |
|
|
start [/forum/topic.php?fid=46&fpage=31&tid=1684966]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 311ms |
total: | 475ms |
0 / 0 |