Назад | Перейти на главную страницу

Как я могу синхронизировать базы данных MS SQL Server?

Как я могу синхронизировать базы данных MS SQL Server? Есть ли какой-нибудь инструмент, желательно с открытым исходным кодом?

Для запланированной и специальной синхронизации базы данных вы можете использовать ApexSQL Diff (для синхронизации схемы объекта) и Разница в данных ApexSQL (для синхронизации записей)

Их нельзя использовать для синхронизации в реальном времени. ИМО, лучше всего использовать зеркальное отображение базы данных в реальном времени

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

Обратите внимание на некоторые моменты:

  • Насколько «далеко» находятся два сервера (т. Е. Какова пропускная способность и задержка между ними)?
  • Насколько велики две базы данных?
  • Как часто и насколько меняются данные?
  • Действительно ли данные меняются, или к существующим добавляются только новые данные?

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

  • Log Доставка
  • Экспорт / импорт данных с помощью служб Integration Services.
  • Восстановления резервной копии.
  • Отсоедините, сделайте физическую копию, прикрепите.

Вы смотрели на встроенные функции зеркалирования? У Technet есть краткое описание Вот. Первичный сервер отправляет свои записи журнала транзакций вторичному серверу, который затем воспроизводит журнал транзакций.

Зеркальное отображение можно настроить синхронно или асинхронно.

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

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

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

Для больших или часто изменяемых баз данных я бы посоветовал вам использовать репликацию слиянием. Это меньше времени и ресурсов.

Дополнительную информацию о репликации можно найти в электронной документации. Взгляните также на Паттерны движения данных.

у меня есть Сообщение блога описание того, как настроить зеркальное отображение базы данных для серверов, не относящихся к домену. Однако это не позволяет вам иметь оба сервера SQL одновременно активными, для этого вам потребуется выполнить некоторую форму репликации. В зависимости от того, как осуществляется доступ к данным, если они все читаются, тогда это не так уж плохо, если они читаются на одном сервере и читаются / пишутся на другом, опять же не так уж плохо, если они пишут / пишут, тогда вы будете в какие-то "интересные" времена.