Репликация SQL Server на программном уровне? - PullRequest
0 голосов
/ 05 января 2010

Мне нужно сделать удаленное соединение через линию DSL (получая около 16 к / с) с экземпляром SQL Express 2005 гораздо быстрее.

Я думаю, что могу сделать это, имея SQL Express 2005экземпляр на локальном компьютере клиента, и пусть это будет кэшированная версия данных на сервере.

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

Итак, поддерживает ли SQL Express мне запросы по сети, например:

INSERT INTO local.dbo.users (id, username, email, timestamp_modified)
    SELECT remote.dbo.users(id, username, email, timestamp_modified) 
        WHERE remote.dbo.users.timestamp_modified > LAST MODIFIED

Ответы [ 2 ]

2 голосов
/ 05 января 2010

Для одного вы можете использовать реальную репликацию. Вам также следует заглянуть в Service Broker. Оба позволяют передавать данные из удаленного в экземпляр SQL Express. Компонент Service Broker работает и масштабируется намного лучше, доказано, что он работает на медленных DSL-соединениях, но имеет крутой кривой обучения. Репликация проста в настройке, но вам придется жить с ее ограничениями.

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

1 голос
/ 05 января 2010

Зачем писать то, что уже создано и доступно вам с уже установленным продуктом?

Вы должны посмотреть на доставку журналов через линию DSL. Это очень надежный продукт SQL Server, который был тщательно протестирован.

http://msdn.microsoft.com/en-us/library/ms187103.aspx

Хотя в экспресс-выпуске нет агента SQL Server, есть обходные пути, которые можно использовать:

http://blog.willbeattie.net/2009/07/log-shipping-in-sql-server-express-2008.html

...