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

Откуда: Рашен Федерэйшен
Сообщений: 2272
Проблема/задача в следующем:

есть 2 сервера на которых крутиться одно и тоже web-приложение. Каждое приложение использует свою базу данных (свой локальный сервер).
Нужно как-то сделать так, чтобы данные одной базы копировались в другую и наоборот. Если один из серверов бд приказал долго жить, то все запросы должны идти на второй.

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

Как-то так...

Я не очень разбираюсь в отказоустойчивости и репликации, поэтому прошу помощи.
17 апр 12, 09:41    [12425474]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение (кластер, репликация)  [new]
Eagle_84
Member

Откуда: Москва
Сообщений: 1535
версия сервера какая?

вам много что подойдет (если версия севера поддерживает это), например
зеркалирование
можно и логшиппинг настроить
17 апр 12, 10:02    [12425564]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение (кластер, репликация)  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
версия sql 2008 enterprise

насчёт этого зеркалирования хз, т.к. нужно гарантировать, что в кратчайший срок другая база будет обновлена.
Или этого можно достичь, если хранилище будет одно на всяких там RAID'ах и SAN'ах ,а 2 разных сервера "смотрят" на это хранилище?
17 апр 12, 10:15    [12425627]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение (кластер, репликация)  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
погуглил, есть типа несколько решений для sql server high avability

Failover clustering
Database mirroring
Log shipping
Replication

Что мне следует использовать?
17 апр 12, 10:28    [12425695]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение (кластер, репликация)  [new]
Eagle_84
Member

Откуда: Москва
Сообщений: 1535
CmeTanka
насчёт этого зеркалирования хз, т.к. нужно гарантировать, что в кратчайший срок другая база будет обновлена.


так в чем проблема? :)
при зеркалировании есть несколько режимов
в вашем случае High safety without automatic failover (или если вдруг решите использовать витнес сервер, то High safety with automatic failover (synchronous))

CmeTanka
Или этого можно достичь, если хранилище будет одно на всяких там RAID'ах и SAN'ах ,а 2 разных сервера "смотрят" на это хранилище?


в идеале, хранилище должно быть всегда отдельно, но часто это дорого, поэтому и не оправдано. смотрите по вашим ресурсам.
17 апр 12, 10:30    [12425716]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение (кластер, репликация)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
CmeTanka
насчёт этого зеркалирования хз, т.к. нужно гарантировать, что в кратчайший срок другая база будет обновлена.
При зеркалировании можно использовать как вариант с точностью до транзакции, так и асинхронный, причём второй тоже будет идти с небольшой задержкой.

CmeTanka
Или этого можно достичь, если хранилище будет одно на всяких там RAID'ах и SAN'ах ,а 2 разных сервера "смотрят" на это хранилище?
Это как раз и есть Failover clustering.

CmeTanka
Что мне следует использовать?
Failover clustering или Database mirroring. Кластер сложнее в настройке и администрировании.

Можнро использовать Replication, если нужен доступ одновременно к 2-м базам, но это решение будет с чуть большими задержками и труднее в поддержке.
17 апр 12, 10:33    [12425738]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение (кластер, репликация)  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
alexeyvg
Можнро использовать Replication, если нужен доступ одновременно к 2-м базам, но это решение будет с чуть большими задержками и труднее в поддержке.


Да, скорей всего доступ нужен будет к 2-м базам. А кто тогда будет подписчиком, а кто издателем? или сервер может быть одновременно и тем, и тем?
17 апр 12, 10:43    [12425797]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение (кластер, репликация)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
CmeTanka
alexeyvg
Можнро использовать Replication, если нужен доступ одновременно к 2-м базам, но это решение будет с чуть большими задержками и труднее в поддержке.


Да, скорей всего доступ нужен будет к 2-м базам. А кто тогда будет подписчиком, а кто издателем? или сервер может быть одновременно и тем, и тем?
Одновременно не может, но в принципе есть merge-репликация, в которой можно одновременно делать изменения на всех серверах.

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

И merge-репликация существенно сложнее обычной односторонней, которая позволит сделать один пишущий сервер и множество только для чтения.

В общем, нужно сначала определить цели (можно несколько вариантов) и понять приемлимую стоимость, потом посчитать стоимость для каждого варианта. Может окажется, что достаточно просто делать бакапы? :-)
17 апр 12, 10:51    [12425844]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение (кластер, репликация)  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
Тогда следуем далее,

Peer-to-Peer Transactional Replication или Merge Replication в моём случае?

Вот примерную схему взаимодействия приложил. Пользователь обращается к web-страничке. Балансировщик по своему алгоритму направляет его или на первый или на второй сервер. У каждого сервера своя бд. Т.е. пользователь сначала попадает на одну страничку, что-то изменяет, потом идёт на другую страничку. Когда он идёт на другую страничку (новый http-запрос) его может уже перекинуть на другой сервер. Дык, вот нужно чтоб на этом другом сервере данные из бд были уже актуальные (с первого сервера)

К сообщению приложен файл. Размер - 9Kb
17 апр 12, 11:44    [12426260]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение (кластер, репликация)  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
как правильно организовать взаимодействие между серверами бд?
17 апр 12, 11:47    [12426288]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение (кластер, репликация)  [new]
invm
Member

Откуда: Москва
Сообщений: 9824
CmeTanka, если возможны конфликты, то мерж-репликация, иначе можно и p2p.
Т.к. в любом случае синхронизация требует некоторого времени, то ваш балансировщик должен распределять нагрузку на уровне вебовых сессий, т.е. запросы в рамках одной сессии всегда направляются на один и тот же сервер.
17 апр 12, 12:05    [12426437]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение (кластер, репликация)  [new]
AxuliON
Member

Откуда: оттуда, и на лыжах
Сообщений: 574
CmeTanka
как правильно организовать взаимодействие между серверами бд?


Кластерное решение надежное, но нужно учесть, что при "падении" основного сервера "ведомый" будет подниматься некоторое время. У нас при экспериментах это занимало 1-3 минуты. В это время сервис будет недоступен.
Ну и естественно единый дисковый массив для обоих серваков.
17 апр 12, 12:57    [12426938]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите решение (кластер, репликация)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
CmeTanka
Тогда следуем далее,

Peer-to-Peer Transactional Replication или Merge Replication в моём случае?

Вот примерную схему взаимодействия приложил. Пользователь обращается к web-страничке. Балансировщик по своему алгоритму направляет его или на первый или на второй сервер. У каждого сервера своя бд. Т.е. пользователь сначала попадает на одну страничку, что-то изменяет, потом идёт на другую страничку. Когда он идёт на другую страничку (новый http-запрос) его может уже перекинуть на другой сервер. Дык, вот нужно чтоб на этом другом сервере данные из бд были уже актуальные (с первого сервера)
Для этого нужно спроектировать приложение как распределённое, встроенных средств в MSSQL нету.

Есть только конктерные технологии, фичи, которые помогут при реализации такого приложения, и тут можно выбирать из многих технологий. Когда вы разработаете приложение, то вопросы о фичах субд отпадут сами.
17 апр 12, 14:52    [12427791]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить