Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL редиректор для приложения  [new]
tunknown
Member

Откуда:
Сообщений: 777
Как будут реагировать стандартные клиенты (sqloledb, sqlncli, msdasql) протокола SSRP, если в CLNT_UCAST_INST будет возвращено INSTANCENAME отличное от того, что запрашивалось?

1) проигнорируют и используют только TCP_PORT
2) выдадут ошибку
3) используют INSTANCENAME и TCP_PORT


Есть ли альтернативы сервису SQL Browser?

протокол здесь (скопировать в URL всю строку)
http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MC-SQLR].pdf
16 мар 17, 16:56    [20302984]     Ответить | Цитировать Сообщить модератору
 Re: SQL редиректор для приложения  [new]
tunknown
Member

Откуда:
Сообщений: 777
В библиотеке freetds (tds7_get_instance_port) внутри RESP_DATA проверяется INSTANCENAME, если он совпадает, то возвращается порт. С ней такое не пройдёт. Хотя, судя по комментариям, они о чём-то догадываются.
16 мар 17, 20:11    [20303603]     Ответить | Цитировать Сообщить модератору
 Re: SQL редиректор для приложения  [new]
komrad
Member

Откуда:
Сообщений: 5764
tunknown
Есть ли альтернативы сервису SQL Browser?

есть, называется SQL Server Configuration Manager и в нем: SQL Native Client xx Configuration -> Aliases
16 мар 17, 22:01    [20303841]     Ответить | Цитировать Сообщить модератору
 Re: SQL редиректор для приложения  [new]
tunknown
Member

Откуда:
Сообщений: 777
komrad
есть, называется SQL Server Configuration Manager и в нем: SQL Native Client xx Configuration -> Aliases

Нужен сервер-сервис, откликающийся по SSRP, работающий на сервере в единственном экземпляре. В крайнем случае- Aliasы можно настраивать, но только если клиентов не N+1 штук и они оперативно доступны.

Проверил jtds. Она при несовпадении INSTANCENAME выдаёт ошибку.
16 мар 17, 22:31    [20303924]     Ответить | Цитировать Сообщить модератору
 Re: SQL редиректор для приложения  [new]
komrad
Member

Откуда:
Сообщений: 5764
tunknown,

никто кроме Вас не знает ваши обстоятельства. Алиас в общем случае замена SQL Browser-у.

Как альтернатива - поправьте исходники jtds (опен-сорс всё-таки) и пересоберите для себя. Будет у вас пиленый транспорт.

А вообще, какую проблему решаете-то?
16 мар 17, 22:49    [20303969]     Ответить | Цитировать Сообщить модератору
 Re: SQL редиректор для приложения  [new]
tunknown
Member

Откуда:
Сообщений: 777
komrad
Как альтернатива - поправьте исходники jtds (опен-сорс всё-таки) и пересоберите для себя. ...А вообще, какую проблему решаете-то?

Есть несколько sql серверов/инстансов, возможно- Express. На них "одинаковая" база в readonly под логшиппингом из единого источника. Её использует windows приложение, использующее только стандартные клиенты доступа microsoft. Оно может быть от стороннего поставщика и/или возможности обновления. Приложение запущено во многих местах, от него большой трафик сравнительно мелкими запросами, но свежие данные не нужны, задержка в несколько минут от источника некритична. Простои нежелательны, а логшиппинг может быть достаточно частым. Одновременно доступны не все сервера/инстансы, на недоступных- восстанавливается лог. По восстановлению- недоступные меняются местами с доступными. Арбитр доступа запрещает новые соединения к серверу и ждёт, пока завершается уже работающие, затем разрешает восстанавливать лог.

SQL Browser реализует достаточно простой протокол, его можно заменить собственным арбитром, включающим SSRP сервер, минимального функционала.

Как я понимаю, в новых версиях SQL Browser содержит OLAP redirector service. Как он работает- мне неясно.
17 мар 17, 13:37    [20305730]     Ответить | Цитировать Сообщить модератору
 Re: SQL редиректор для приложения  [new]
komrad
Member

Откуда:
Сообщений: 5764
tunknown,

сама проблема не озвучена.

Не думали в сторону замены этого "монстра" с балансировкой доступа на транзакционную репликацию с подписчиками?
17 мар 17, 13:46    [20305792]     Ответить | Цитировать Сообщить модератору
 Re: SQL редиректор для приложения  [new]
tunknown
Member

Откуда:
Сообщений: 777
komrad,

Нужно переносить не данные, а содержимое базы целиком, с процедурами.
17 мар 17, 13:59    [20305870]     Ответить | Цитировать Сообщить модератору
 Re: SQL редиректор для приложения  [new]
tunknown
Member

Откуда:
Сообщений: 777
Видимо, sqlrelay умеет нечто подобное на уровне сети, а не на уровне приложения.

Возможно, любой прокси с динамическим управлением сможет что-то подобное.
17 мар 17, 19:17    [20307396]     Ответить | Цитировать Сообщить модератору
 Re: SQL редиректор для приложения  [new]
tunknown
Member

Откуда:
Сообщений: 777
Поторопился, sqlrelay- клиентская библиотека.
17 мар 17, 19:27    [20307420]     Ответить | Цитировать Сообщить модератору
 Re: SQL редиректор для приложения  [new]
komrad
Member

Откуда:
Сообщений: 5764
tunknown
komrad,

Нужно переносить не данные, а содержимое базы целиком, с процедурами.


что ни шаг, то новая напасть )

вероятно у вас достаточно весомых доводов для эксплуатации именно такого решения
однако, мне кажется, что есть более оптимальные варианты реализации доступа распределенных клиентов к распределенным базам с регулярным обновлением из центра

переубеждать или спорить не стану
17 мар 17, 19:36    [20307439]     Ответить | Цитировать Сообщить модератору
 Re: SQL редиректор для приложения  [new]
strh
Guest
tunknown
komrad,

Нужно переносить не данные, а содержимое базы целиком, с процедурами.

можно реплицировать и процедуры

Триггеры DDL
sp_addscriptexec
18 мар 17, 08:47    [20308318]     Ответить | Цитировать Сообщить модератору
 Re: SQL редиректор для приложения  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8839
Самый простой способ переключения - изменять IP на DNS сервере и обновлять локальный кэш DNS.
20 мар 17, 10:33    [20312761]     Ответить | Цитировать Сообщить модератору
 Re: SQL редиректор для приложения  [new]
tunknown
Member

Откуда:
Сообщений: 777
Владислав Колосов
Самый простой способ переключения - изменять IP на DNS сервере и обновлять локальный кэш DNS.

Когда активный sql сервер только один. Если нужно перенаправлять на несколько по разным условиям, то, вероятно, нужен хитрый прокси.

Если клиенты соединились с sql сервером, а он должен стать неактивным, то все соединённые клиенты могут продолжить работать заданное время, но новым соединяться запрещено. Поищу такие прокси.
20 мар 17, 12:11    [20313361]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить