2014-01-02 3 views
0

У меня есть SQL2012, работающий на двух разных серверах с общедоступными статическими IP-адресами. Я хочу реализовать репликацию таким образом, чтобы синхронизировать оба сервера в любое время, независимо от того, какой сервер фактически получает данные. Я читал о модели абонента/издателя, но я не совсем уверен, какой из них должен быть. Несколько фактов о нашей настройке:Стратегия репликации SQL Server 2012

  • Я пытаюсь достичь отказа. Если сервер A не работает, мне нужен сервер B, который будет работать, и иметь все последние данные или как можно ближе. И наоборот. Когда сервер возвращается в сети, мне нужна репликация, чтобы быстро схватиться и начать работать снова. Мне нужны неудачи, чтобы быть изящными, другими словами, я не могу иметь сервер A получить странно только потому, что сервер B вышел в автономный режим.

  • Мне не нужна репликация в реальном времени, но близко было бы хорошо. Если сервер А находился на 10 секунд за сервером Б с обновлением данных, никто бы не заботился. Но если бы это был час, это было бы плохо. Быстрая производительность БД важнее того, что репликация в реальном времени, но опять же, закрыть было бы неплохо.

  • Моя база данных просто стесняется 900Mb и растет на 3Mb в день.

Я ищу совет по наилучшему способу установить это, учитывая мои настройки и потребности. Очень признателен.

ответ

0

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

Также должна быть процедура восстановления, чтобы гарантировать, что Первичный сервер обновлен.

Полезные статьи:

Database Mirroring and Log Shipping.

Configure Log Shipping

+0

Stoleg, это звучит хорошо, но что произойдет, если первичный и вторичный сбой привыкает в течение 1 дня, затем Primary возвращается и необходимо получить синхронизированы, и получать все последние изменения данных о Secondary , Как это происходит? – HerrimanCoder

+0

После исследования еще немного кажется, что зеркальное отображение базы данных может быть лучшим вариантом. Любые причины использования Log Shipping, когда у меня только 2 сервера? – HerrimanCoder

+0

Восстановление является необходимой частью процесса отказоустойчивости. Поскольку вы не указали логику/требования обратной синхронизации, я предложил простой способ обновления второго сервера. Существует несколько способов достижения функциональности отказоустойчивости, и это зависит от бизнес-использования системы. – Stoleg

Смежные вопросы