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

Откуда:
Сообщений: 4
Здравствуйте.
В MS SQL не очень силен, требуется помощь :)
Значит, есть два сервера под управлением MS Windows 2003 Server Standard SP2. На каждом из них имеется MS SQL Standard 2005. На сервере 1 есть БД (порядка 3,5 Гб и продолжает расти), в БД очень активно поступают данные, делаются запросы с сайта. Необходимо, чтобы на сервере 2 находилась актуальная копия этой БД, т.е. имеется ввиду, что все изменения в БД на сервере 1 отражались автоматически и в БД на сервере 2. Осложняется задача тем, что время от времени будет происходить переключение работы с одного сервера на другой, т.е. данные и запросы будут приходить на сервер 2, а сервер 1 будет "пассивным" и уже данные он должен будет брать с БД сервера 2.
Почитал пару дней интернеты, но подсказки пока не увидел, заранее спасибо! :)
21 апр 10, 10:33    [8661158]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация\репликация двух БД  [new]
gallam
Member

Откуда:
Сообщений: 178
dokman,
Рассмотрите наше решение обмен БД 1С softpoint.ru,
оно может быть адаптировано к любой БД.
Решение представляет собой близкую к транзакционной репликации MS SQL,
при этом более гибкое разрешение конфликтов, уменьшение трафика, настройка,
поддержка, оповещение.
21 апр 10, 10:42    [8661219]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация\репликация двух БД  [new]
dokman
Member

Откуда:
Сообщений: 4
gallam,
Спасибо конечно, но денег выделять руководство больше не планирует и реализовать задачу нужно имеющимися средствами.
21 апр 10, 10:44    [8661230]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация\репликация двух БД  [new]
Хопа
Member

Откуда: Роддом №1
Сообщений: 2380
dokman
Здравствуйте.
В MS SQL не очень силен, требуется помощь :)
Значит, есть два сервера под управлением MS Windows 2003 Server Standard SP2. На каждом из них имеется MS SQL Standard 2005. На сервере 1 есть БД (порядка 3,5 Гб и продолжает расти), в БД очень активно поступают данные, делаются запросы с сайта. Необходимо, чтобы на сервере 2 находилась актуальная копия этой БД, т.е. имеется ввиду, что все изменения в БД на сервере 1 отражались автоматически и в БД на сервере 2. Осложняется задача тем, что время от времени будет происходить переключение работы с одного сервера на другой, т.е. данные и запросы будут приходить на сервер 2, а сервер 1 будет "пассивным" и уже данные он должен будет брать с БД сервера 2.
Почитал пару дней интернеты, но подсказки пока не увидел, заранее спасибо! :)


http://www.rsdn.ru/res/book/db/sqlservernew.xml#EOOAE
Зеркалирование баз данных

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

Схема зеркалирования подразумевает, что в ней используются как минимум три сервера с запущенными SQL Server 2005. Каждый из трех серверов выполняет определенные операции, характерные только для него:

главный сервер - сервер, на котором располагается приложение, выполняющее транзакцию;
зеркальный сервер - сервер, на котором выполняется вторичное протоколирование транзакции. Протоколирование на этом сервере может выполняться как в синхронном, так и в асинхронном режиме. Зеркальный сервер находится в состоянии, в котором запрещен прямой доступ к данным. На главном сервере выполняется протоколирование транзакции, одновременно с этим аналогичные операции выполняются на зеркальном сервере. Благодаря этому протоколы баз данных обоих серверов совпадают, а серверы находятся в одинаковых состояниях выполнения транзакции. Таким образом, можно добиться дублирования данных на обоих серверах и возможности моментального восстановления транзакции при разрыве соединения с главным сервером;
cервер-удостоверитель - это сервер, использующийся для разрешения конфликтов между главным и зеркальным серверами. Его ''голос'' учитывается во время определения, какой из двух серверов является главным, а какой зеркальным в той или иной ситуации. Главный и зеркальный серверы всегда "прислушиваются" к мнению данного сервера, что позволяет исключить конфликтные ситуации. Для клиентского компьютера переключение между главным и зеркальным незаметно, при этом сервер-удостоверитель используется для более быстрого разрешения конфликтов.
Среди основных преимуществ зеркалирования баз данных следует выделить возможность использования данного механизма в системах с низкой пропускной способностью сетей, а также возможность выполнения синхронизации данных в обоих направлениях. Это означает, что в некоторых ситуациях главный и зеркальный серверы могут меняться местами. В том случае, если по каким-либо причинам главный сервер становится недоступным, выполнение транзакции продолжается на зеркальном сервере. После этого зеркальный сервер становится главным. После того как бывший перед этим главным сервер станет доступным, он принимает на себя обязанности зеркального сервера. Как только будет закончена синхронизация данных, он будет готов подменить главный сервер в случае возникновения каких-либо проблем. Отметим еще одно преимущество зеркалирования баз данных: для данного механизма не требуется дополнительного программного или аппаратного обеспечения, что в конечном итоге удешевляет решение.


Это нужно?
21 апр 10, 10:47    [8661263]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация\репликация двух БД  [new]
dokman
Member

Откуда:
Сообщений: 4
Хопа,
в общем и целом похоже :)
но есть пара нюансов. Может, я чего не понимаю, но у Вас написана схема с использованием трех серверов, а у меня сервера всего два. Транзакций как таковых у нас нет, имеются лишь одиночные записи, одиночные запросы. К слову сказать, данные в базу пишут практически постоянно (идет сбор данных с неких приборов, которые эти данные на сервер посылают), имеется спад прихода данных в ночное время.
21 апр 10, 11:08    [8661503]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация\репликация двух БД  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5123
ну дак к первоисточнику зеркальное отображение базы данных
21 апр 10, 11:10    [8661525]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация\репликация двух БД  [new]
dokman
Member

Откуда:
Сообщений: 4
Спасибо! :)
Куда двигаться понял, будем разбираться.
21 апр 10, 12:13    [8662241]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Синхронизация\репликация двух БД  [new]
Schranz_88
Member

Откуда:
Сообщений: 1
dokman,

dokman,
Проблема такая же как у dokman'a, только сервера два и зеркалирование не походит потому, что изменять структуру нет надобности... Короче говоря необходимо осуществить автоматической обновление одной базы данных если внесены изменения в другую...заранее спасибо всем откличнувшимся)
26 дек 12, 09:43    [13686576]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация\репликация двух БД  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
А что будет происходит с тем сервром и данными на нем, работа с которого переключилась на второй сервер ?
26 дек 12, 09:58    [13686668]     Ответить | Цитировать Сообщить модератору
 Re: Синхронизация\репликация двух БД  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5123
Schranz_88
необходимо осуществить автоматической обновление одной базы данных если внесены изменения в другую

о каких изменениях говорим?
26 дек 12, 10:51    [13687016]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить