SQL Server 2005/2008 Международная доступность в режиме реального времени

Моя компания недавно открыла офис в Сингапуре. Я работаю над веб-приложением, которое мы используем внутри компании для управления компанией, используя серверную часть SQL Server 2005. Из-за медленного доступа по сети из Сингапура мы отправляем им сервер, на котором будет размещаться локальная копия веб-приложения и базы данных, и мы хотим, чтобы их локальная версия базы данных была синхронизирована с нашей. И приложение для США, и приложение для Сингапура могут читать/записывать данные.

Является ли репликация слиянием правильным решением этой проблемы? Это путь, который я исследовал, и он кажется наиболее подходящим для того, что мы хотим. Есть ли что-то лучше в SQL Server 2008? Какие решения по доступности баз данных вы внедрили для международного сотрудничества?


person Community    schedule 01.05.2009    source источник


Ответы (1)


Репликация слиянием подходит, если некоторым людям в обоих местах необходимо обновить какие-либо данные. Но...

Я мог бы рекомендовать использование одноранговой репликации в случае, если:

  • Office1 (США?) должен обновлять/удалять только записи, вставленные приложениями Office1.

  • Office2 (Сингапур) должен обновлять/удалять только записи, вставленные приложениями Office2.

Оба офиса могут запросить все данные.

Цитата: Самая основная концепция, которую вам нужно понять в одноранговой репликации, заключается в том, что каждый сервер содержит все данные, но каждый сервер отвечает за обновление только своего собственного подмножества данных. Таким образом, каждый сервер имеет одну и ту же схему, и каждый сервер является подписчиком на все изменения, происходящие на других серверах, и в то же время является издателем своих собственных измененных данных. Когда данные изменяются на одном сервере, эти изменения распространяются на всех подписчиков в одноранговой сети. Каждый сервер содержит и обновляет данные, относящиеся к его географическому местоположению, а также видит все данные из других местоположений. Ключевой частью одноранговой репликации является то, что каждый сервер отвечает за изменение своего собственного набора данных, и никакое другое место не может изменить какие-либо данные в этом наборе данных. Если это правило нарушается, данные могут быть изменены в двух местах, а поскольку нет блокировки данных между сайтами, при репликации данных вы можете получить противоречивые результаты.

Дополнительную информацию можно найти здесь: http://www.sqlmag.com/Article/ArticleID/49241/sql_server_49241.html

http://technet.microsoft.com/en-us/magazine/2006.07.insidemsft.aspx

http://www.sql-server-performance.com/articles/dba/peer-to-peer_replication_p1.aspx

Как это можно реализовать.

Таблицы, которые должны быть обновлены из обоих мест, вы должны продублировать, например:

TableOrders1 (OrderID int IDENTITY(1,2) NOT NULL, Col1 int, Col1 nvarchar(), etc.) 
TableOrders2 (OrderID int IDENTITY(2,2) NOT NULL, Col1 int, Col1 nvarchar(), etc.) 

Затем вы отправляете данные из TableOrders1 в Office2, данные из TableOrders2 в Office1 с использованием одноранговой репликации и так далее…

Для запроса данных вы можете создать представление.

person Irina C    schedule 01.05.2009