Зеркальное отображение базы данных между виртуальными машинами Windows Azure

У меня есть две виртуальные машины R2 центра обработки данных Windows Server 2012 с запущенным стандартом SQL Server 2012. Я установил свое приложение и сервер БД на каждую из виртуальных машин. Обе виртуальные машины находятся в одной облачной службе.

Также настраиваю балансировку нагрузки между двумя виртуальными машинами через порт: 80. Теперь нужно зеркалировать базы данных. Я попытался настроить зеркалирование SQL, но пока безуспешно. Я не уверен, как эти две виртуальные машины взаимодействуют друг с другом через один и тот же порт 5022.

Также я кое-что прочитал, но все же не уверен, как это сделать. Мне определенно нужна помощь сейчас.

Вопросы: а) Нужно ли мне создавать виртуальную сеть для зеркалирования баз данных? б) Могу ли я разместить зеркальные базы данных в одной виртуальной сети? c) Если мои предположения выше неверны, как лучше всего двигаться дальше?

Заранее спасибо!!

ОБНОВЛЕНИЕ. Мне удалось настроить основной сервер на виртуальной машине 1, а серверы Mirror & Witness - на виртуальной машине 2 (если у вас есть ресурсы, лучше всего разместить их на отдельных виртуальных машинах). Обе виртуальные машины находятся в одной виртуальной сети и одной облачной службе.

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

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

- Principle : 5022
- Mirror    : 5022
- Witness   : 5023

person ecasper    schedule 23.05.2014    source источник
comment
Находятся ли виртуальные машины в одной аффинити-группе?   -  person crthompson    schedule 23.05.2014
comment
Да, я поместил их обоих в тот же регион, что и Восточная Азия.   -  person ecasper    schedule 23.05.2014
comment
Какое отношение этот вопрос имеет к зеркалированию? Это чисто проблема сети в Azure.   -  person usr    schedule 23.05.2014


Ответы (2)


Они могут находиться в одной облачной службе, и их размещение в одной CS упростит жизнь, поскольку нет необходимости иметь дело с общедоступными конечными точками. Фактически облачная служба - это просто контейнер для виртуальных машин и / или ролей, который также связан с неявно созданной сетью (поэтому вам нужна конечная точка для доступа к ней извне).

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

Самый простой способ настроить DBM - использовать сертификаты. Вы можете увидеть пример здесь.

Примечание: не забудьте настроить свидетель, если вам нужно автоматическое переключение при отказе.

person Evgeny Krivosheev    schedule 23.05.2014
comment
Привет, Евгений, я хочу отразить БД, чтобы использовать балансировку нагрузки. т.е. если я могу поддерживать копию БД VM1 и хранить ее на VM2. Если виртуальная машина 1 недоступна, мое приложение будет подключено к виртуальной машине 2 с помощью балансировки нагрузки Azure. Но не уверен, как лучше всего настроить мои виртуальные машины без потери обеих функций. то есть зеркалирование БД и балансировка нагрузки. - person ecasper; 23.05.2014
comment
Также означает ли это, что мне не обязательно иметь виртуальную сеть? можно ли его заархивировать таким же облачным сервисом? - person ecasper; 23.05.2014
comment
К сожалению, DBM можно использовать для балансировки нагрузки только в том случае, если вы можете использовать с ним моментальные снимки БД, что означает, что ваши данные на вторичных серверах всегда будут отставать. Другими вариантами являются группы доступности AlwaysOn (особенно в SQL 2014, где у вас есть до 8 доступных для чтения вторичных реплик). Если вам не нужна высокая доступность, а нужна только балансировка нагрузки, вы можете взглянуть на доставку журналов. Это даст вам практически неограниченное количество читаемых реплик, но данные могут отставать от них. - person Evgeny Krivosheev; 23.05.2014
comment
Спасибо за ваши мысли, но у меня стандарт SQL-сервера, и я предполагаю, что Always On недоступен для std. Кстати с DBM, если вторичная БД (зеркало) будет изменена, отразятся ли изменения в первичной? - person ecasper; 23.05.2014
comment
Думаю, поэтому мне нужен свидетельский сервер. - person ecasper; 23.05.2014
comment
Невозможно отразить ваши изменения в первичной. Более того, зеркало всегда находится в состоянии восстановления, что означает, что обычные методы чтения недоступны. Вот почему вам нужны снимки, если вы хотите читать БД. Однако технически моментальный снимок - это другая БД. DBM - это технология высокой доступности, а не балансировка нагрузки. Если вам нужен LB, я бы порекомендовал изучить другие варианты, такие как репликация, синхронизация или доставка журналов. - person Evgeny Krivosheev; 24.05.2014
comment
Свидетель необходим для аварийного переключения. Когда зеркальный сервер не может видеть принципала, ему нужен другой индикатор, доступен ли принципал или нет. Это делает свидетель. - person Evgeny Krivosheev; 24.05.2014
comment
Мне удалось настроить Principle в VM1 и Mirror & Witness в VM2 в одном облаке и той же виртуальной сети. Также я заметил, что, когда принцип недоступен, Witness автоматически устанавливает зеркало на принцип и больше не находится в состоянии восстановления. Это именно то, что я искал. Спасибо за помощь!! - person ecasper; 25.05.2014

Чтобы две виртуальные машины Azure могли взаимодействовать, они должны быть настроены в одной группе привязки.

Виртуальная сеть - это специализированная аффинити-группа, в которой вы можете управлять IP-адресами.

После настройки виртуальной сети у вас не должно возникнуть проблем с настройкой репликации для вашей базы данных.

person crthompson    schedule 23.05.2014
comment
Должны ли они также находиться в одной облачной службе? - person ecasper; 23.05.2014
comment
Нет, вообще-то, я не думаю, что у них может быть одна и та же облачная служба. Я этого не пробовал, но отдельные облачные сервисы всегда работают лучше. В прошлом я сталкивался с конфликтами. - person crthompson; 23.05.2014
comment
Я думал, что балансировка нагрузки не будет работать с разными облачными сервисами. Источник: blogs.msdn.com/b/walterm/archive/2013/06/13/ - person ecasper; 23.05.2014
comment
Не могли бы вы подтвердить выше? т.е. балансировка нагрузки по-прежнему работает с разными облачными сервисами в одной виртуальной сети? Мое чтение говорит, что это не так. - person ecasper; 23.05.2014
comment
Похоже, у @Evgeny есть опыт работы с облачным сервисом и репликацией. Я бы согласился с его советом по этому поводу. - person crthompson; 23.05.2014
comment
Я попробую это сделать и расскажу о прогрессе. Скрещенные пальцы!! - person ecasper; 23.05.2014