Как я могу синхронизировать базы данных MS SQL Server? Есть ли какой-нибудь инструмент, желательно с открытым исходным кодом?
Для запланированной и специальной синхронизации базы данных вы можете использовать ApexSQL Diff (для синхронизации схемы объекта) и Разница в данных ApexSQL (для синхронизации записей)
Их нельзя использовать для синхронизации в реальном времени. ИМО, лучше всего использовать зеркальное отображение базы данных в реальном времени
Как уже говорили другие, в SQL Server 2008 есть множество встроенных способов для синхронизации двух серверов, в реальном времени или по расписанию.
Обратите внимание на некоторые моменты:
В зависимости от ответов вы можете выбрать наиболее подходящий для вас метод; кроме тех, которые уже были описаны (репликация и зеркалирование), помните, что вы также можете делать некоторые другие вещи:
Вы смотрели на встроенные функции зеркалирования? У Technet есть краткое описание Вот. Первичный сервер отправляет свои записи журнала транзакций вторичному серверу, который затем воспроизводит журнал транзакций.
Зеркальное отображение можно настроить синхронно или асинхронно.
Если я вас правильно понимаю, вы хотите иметь копию базы данных с веб-сервера на вашем локальном компьютере. Изменения в базе данных на веб-сервере следует периодически копировать на ваш локальный сервер.
Я считаю, что вы можете сделать это с помощью репликации, но вам понадобится как минимум версия SQL-сервера для рабочей группы на вашем веб-сервере.
Если ваша база данных небольшая или не меняется часто, вы можете использовать репликацию моментальных снимков. SQL Server будет периодически делать снимок базы данных и реплицировать его на ваш локальный сервер.
Для больших или часто изменяемых баз данных я бы посоветовал вам использовать репликацию слиянием. Это меньше времени и ресурсов.
Дополнительную информацию о репликации можно найти в электронной документации. Взгляните также на Паттерны движения данных.
у меня есть Сообщение блога описание того, как настроить зеркальное отображение базы данных для серверов, не относящихся к домену. Однако это не позволяет вам иметь оба сервера SQL одновременно активными, для этого вам потребуется выполнить некоторую форму репликации. В зависимости от того, как осуществляется доступ к данным, если они все читаются, тогда это не так уж плохо, если они читаются на одном сервере и читаются / пишутся на другом, опять же не так уж плохо, если они пишут / пишут, тогда вы будете в какие-то "интересные" времена.