1

Тема: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

Поддерживает ли Технолоджикс работу с каким-либо видом отказоустойчивой конфигурации MS SQL?
Кластер на базе Windows Server кластера или мирроринг базы или может быть другие варианты?
Тестировалась ли работа с кластерами и есть ли рекомендации по выбору режима отказоустойчивости?

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

Вообще это функции SQL Server, хотя сама база данных может конечно накладывать ограничения, но у нас их нет.

Специальное тестирование не производилось, но эти функции SQL Server конечно поддерживаются (на внедрениях кластер разворачивали).

Подробную консультацию дать не  сможем, так как здесь все таки обязательно нужен грамотный администратор SQL Server на предприятии. То же самое и по рекомендациям - сильно зависит от конкретной работы, и кроме специалиста на предприятии никто данную проблему не решит, наши советы тут могут только  спровоцировать неправильную работу.

На все вопросы связанные с таким развертыванием конечно же постараемся ответить ( что касается работы БД IndustriCS).

3

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

Если брать вариант зеркалирования баз, то при этом требуется указать в строке соединения Failover Partner. На сколько я понимаю Технолоджикс не позволяет явно указывать строку соединения и обслуживает соединения с СУБД автоматически на основе данных введённых администратором в форму? А может быть Технолоджикс вообще не использует ADO.NET?

Вы имеете в виду, что разворачивался кластер MS SQL поверх кластера Windows Server (MSCS)?

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

Судя по документации получается что если клиент соединяется через ADO.NET либо SNAC, то должно произойти автоматическое пересоединение приложений.

TechnologiCS соединяется используя  SQL Ole DB провайдер. Опять же по документации сказано, что если установлен SNAC то OLE DB и ODBC будут работать поверх него. Произойдет ли при этом автоматическое пересоединение не совсем ясно, но видимо должно. Подробное описание данного механизма пока не  нашел, поэтому не могу точно сказать как среагирует TechnologiCS. ( в принципе есть возможность соеденить TechnologiCS используя SNAC, правда мы не проводили тестирование при таком подключении, хотя теоретически должно быть без разницы).

В любом случае так понимаю всегда можно выполнить пересоединение руками.

С кластером проще в том отношении что кластер для клиента всегда выглядит как один сервер.

5

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

Буквально на днях развернули на нашем предприятии Failover Cluster MS SQL 2008R2. При тестировании TechnologiCS обнаружили следующее - если происходит failover (неважно, ручной или аварийный), то клиенту выдается сообщение об ошибке - "сервер разорвал соединение". Выход - перезапуск программы у клиента.

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

Еще раз повторю что мы сами специального тестирования не проводили, но теоретически ограничений нет и, более того, кластер разворачивали и не раз.
Если важно, можем конечно попробовать помочь разобраться в  настройке (хотя сначала по доке надо уточнить что в данном случае происходит с уже активным соединениями).
Версия TechnologiCS нужна (лучше конечно если будет последняя), и версия ОС и SQL Server.

7

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

Windows Server 2008 R2 Enterprise,  SQL Server 2008 R2 Enterprise

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

ну до билда лучше бы указать и версия TCS нужна (бывает же что СП решает все).

9

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

Версия SQL Sevver 10.50.4000, версия TCS - 6

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

В TechnologiCS меню справка - Показать информацию о системе. Там есть информация обо всем что нужно.

На дистрибутивном диске TechnologiCS 6.3 есть папка "Microsoft SQL Server Native Client" . Давайте начнем с того что установим его на клиентской машине где будем испытывать. Возможно имеет смысл взять его последний с дистриба вашего SQL Server  (если найдете его там).

11 (изменено: , 11-02-2014 08:08:01)

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

Наша текущая версия 6.2

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

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

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

Ну тогда с этим приложением экспериментировать возможно проще.

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

Ну тут то проблем и не должно быть в  любом случае smile.

Вообще я не помню четкого указания что будет происходить с существующими коннектами при отказе одного из узлов кластера.

у 2008 исталлятор не хилый, но Native Client SQL Server там должен быть. ВОт что пишут

Помимо установки Native Client SQL Server, в рамках установки SQL Server имеется распространяемый установщик sqlncli.msi, который можно найти на установочном диске SQL Server в следующем каталоге. %CD%\Setup\.

13

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

Native Client 10 версии

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

Главное чтобы он был установлен на клиентской машине.

Вот что написано в доке по 2008 (в инете ссылку прямую пока не нашел)

SQL Server 2008 Books Online 
Автоматический переход на другой ресурс 
-------------------------------------------------------------
Автоматический переход на другой ресурс поддерживается только в сеансах зеркального отображения базы данных, выполняющихся со следящим сервером в режиме высокой безопасности (режим высокой безопасности с автоматическим переходом на другой ресурс). Если при работе в режиме высокой безопасности с автоматическим переходом на другой ресурс основная база данных становится недоступной, после синхронизации выполняется автоматический переход на другой ресурс. При автоматическом переходе на другой ресурс зеркальный сервер берет на себя роль основного сервера данных и выводит свою копию базы данных в оперативный режим как основную базу данных. Обязательная синхронизация базы данных предотвращает потерю данных во время перехода на другой ресурс, поскольку все транзакции, которые фиксируется в основной базе данных, фиксируются также в зеркальной базе данных.

....

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

Далее читаем раздел Клиентские соединения с зеркальной базой данных. где собственно находим такое замечание

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

То есть похоже что без поддержки приложения автоматическое пересоединение само не произойдет никак.

Есть правда параметр Failover Partner для ручного указания запасного адреса, но опять таки нет указания что при этом автоматом все сработает. Попробуйте на своем приложении (лучше на оси выше WindowsXP, так как на старых клиентах есть какие-то нюансы).

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

Мы пока поизучаем вопрос с повторным соединением, хотя по факту это все равно сводится к повторному запуску.

15

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

В приведенной вами доке описано поведение клиентских соединений при зеркалировании, мы же используем для обеспечения отказоуйстойчивости Failover Cluster. При Failover Cluster переключение также происходит автоматически. При зеркалировании и при кластеризации, если происходит переключение ролей, все текущие подключения закрываются и откатываются активные транзакции.

16

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

Как в TechnologiCS организовано подключение к БД? Если подключение открывается при запуске приложения и используется во всем сеансе работы с приложением, то появление такой ошибки закономерно.

Re: Поддерживается ли работа с отказоустойчивыми кластерами MS SQL

Ну это на 2008 дока, на 2008 R2 возможно доработано (а может и тут что-то сказано нет так).

Ну в любом случае реконнект по факту и есть перезапуск smile. Пусть и немного более быстрый.