Я никогда не использовал зеркалирование, кластеризацию или другие методы восстановления после отказа.Но я исследую, как легко адаптировать мой DAL, чтобы прозрачное перенаправление клиента SQLNativeClient работало для нас, если мои клиенты решили использовать зеркалирование с Witness или без него.
Может ли кто-нибудь объяснить прагматический процесс для клиентского приложения, которое может находиться на сотнях рабочих столов, которые будут подключаться к экземпляру, который зеркально отображен и может переключаться при сбое?
Я думаю об отсутствии обслуживанияподход здесь для тех 100 настольных машин.Мои нынешние мысли таковы: если процесс обнаружения не будет автоматическим, мне потребуется файл / служба Интернета / интрасети, в которой описывается, какой сервер является основным, а какой - зеркалом, с каких приложений можно читать.
Справочная информация. Я прочитал несколько статей, касающихся использования атрибута соединения SQL_COPT_SS_FAILOVER_PARTNER, и того, что вам нужно указать зеркало в строке соединения, чтобы разрешить прозрачное перенаправление клиента SQLNCLI, но все это кажется немного задом наперед.Почему программист или конечный пользователь должны вмешиваться?Сетевая инфраструктура может измениться.
Я надеюсь, что попытка подключиться либо к главному ИЛИ зеркалу, либо к свидетелю перенаправит меня к правильному принципалу и просто «узнает», что это за зеркало.Я понимаю, что свидетель может управлять несколькими сеансами зеркального отображения базы данных, поэтому может потребоваться что-то еще.
Итак, как мне обнаружить зеркальный или основной сервер для запуска?Я не хочу, чтобы пользователь вводил это, поскольку это могло измениться.Нужно ли сначала подключаться к работающему принципалу, извлекать зарегистрированное зеркало из принципала, а затем повторно подключаться, используя эти параметры, или я могу установить соединение позже?
Я с нетерпением жду некоторого просветления!