У меня есть два SQL-сервера, которые должны быть идентичными. Синхронизация должна происходить, может быть, пару раз в день, автоматически.
Два сервера не имеют «прямой» связи между ними, поэтому нет связанных дБ и т. Д. (Они находятся на совершенно разных машинах, в сетях, доменах, с межсетевыми экранами и т. Д.) Однако вы можете использовать Интернет, как веб-служба, FTP ...
CopyFromDB содержит много таблиц, но только около 20 таблиц (только данные, пока нет изменений схемы) должны быть синхронизированы с CopyToDB. Только около половины таблиц будут иметь новые / обновленные строки каждый день. Остальные пару раз в год. Я предполагаю, что сейчас это всего лишь пара тысяч строк в день. Однако в будущем это может возрасти до 100 000 строк в день. Так что, возможно, не слишком много данных, я думаю.
А также (на данный момент может измениться) данные должны синхронизироваться только одним способом, от CopyFromDB до CopyToDB. Было бы также неплохо, если бы он не «ломался» только потому, что кто-то добавляет дополнительный столбец в таблицу на CopyFromDB, но этот новый столбец не должен синхронизироваться с
CopyToDB автоматически. (Только столбцы, которые должны быть синхронизированы, находятся на CopyToDB, могут быть другие столбцы, которые не должны синхронизироваться)
Это должно сделать Вставить, Обновить или Вставить. В худшем случае я предполагаю, что это может полностью удалить и вставить, но мне это не нравится. (Конечно, есть FK и т. Д., Поэтому данные должны быть вставлены в правильном порядке)
На данный момент существует только один «CopyToDB», но это может увеличиться.
Решение также должно быть достаточно простым и не слишком сложным. : -)
У меня вопрос; что было бы лучшим способом сделать это? У меня есть пара идей ниже.
- WS на стороне CopyToDB, вызывается со стороны CopyFromDB службой или чем-то еще? Нажатие данных, только изменения с момента последней синхронизации.
- FTP на стороне CopyToDB, которая принимает "sql" -файл с изменениями. Как вставить / обновить / удалить. Это выдвигается там CopyFromDB.
- Что-то еще? Встроенный инструмент, который уже делает это? Или инструмент для 3d детали? Что-то вроде Red Gate SQL Data Compare, только автоматически.
Спасибо за ваши мысли и / или ответы!
Я искал на форуме свой вопрос. Но я могу только найти вопросы, когда два сервера имеют какое-то «прямое» соединение между ними или вы делаете резервное копирование / восстановление. Но если на этот вопрос уже был дан ответ, прошу прощения, и не могли бы вы сказать мне, где? :)