Каков наилучший способ синхронизации нескольких SqlServer с одним SQL Server 2005? - PullRequest
0 голосов
/ 06 февраля 2011

У меня есть несколько клиентских баз данных, которые используют мое приложение для Windows.

Я хочу отправить эти данные для веб-сайта в Интернете.

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

Я использую этот способ для синхронизации баз данных;используйте другое приложение и используйте массовую копию C # с транзакцией для синхронизации баз данных.

Мой сервер базы данных sql сервер слишком занят и параллельная задача не может быть запущена.

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

Но сначала я должен отправить все данные!Огромный набор данных (больше 16 мг)

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

Ответы [ 3 ]

0 голосов
/ 06 февраля 2011

Как я понимаю, что вы пытаетесь сделать, вы хотите разрешить нескольким клиентским приложениям синхронизировать свои данные с сервером таким образом, чтобы на сервере были все данные со всех сайтов, но каждая запись такжеимеет идентификатор клиента, так что вы можете поддерживать прослеживаемость обратно к источнику.

Почему вы должны отправлять все данные на сервер, прежде чем получите настройку другой информации?Вы должны быть в состоянии построить все эти вещи одновременно.Кроме того, вам не нужно загружать все данные одновременно.Размещайте их по одному в день (при условии, что у вас есть небольшое количество клиентских баз данных), что даст вам возможность сосредоточиться на каждой из них по очереди и убедиться, что процесс завершен точно.

Будете ли вы реплицироватьданные обратно клиентам после объединения всех данных в одну таблицу?Информация о вашем размере была неверно передана, вы говорили, что каждая база данных была больше 16 ГБ?Таким образом, тогда 5 сайтов будут иметь суммарный размер 80 ГБ, который будет реплицирован обратно на отдельные сайты?

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

Собираетесь ли вы обновлять отдельные схемы после обновления базы данных master?Вы можете захотеть ALTER TABLE и добавить столбец bool к каждой записи и пометить их как «отправленные» или «не отправленные», чтобы отслеживать любые записи, которые были обновлены / вставлены «поздно».У меня такое чувство, что вы собираетесь выполнять развертывание / обновление по очереди, и вы пытаетесь понять, как сохранить все это "синхронно", не теряя ничего.

0 голосов
0 голосов
/ 06 февраля 2011

Рассматривали ли вы использование SSIS для выполнения запланированной синхронизации данных? Вы можете довольно легко выполнять преобразование данных и массовые вставки.

...