Репликация базы данных. 2 сервера, основная база данных и 2-й только для чтения

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

Как вы подойдете к настройке подчиненной базы данных, которая отражает данные в главной базе данных? Насколько я понимаю, подчиненная база данных / база данных только для чтения должна использовать файл журнала транзакций главной базы данных для правильного отражения данных?
Какие у меня есть варианты с точки зрения того, как часто подчиненная база данных зеркалирует данные? (в реальном времени / каждые x минут?).

Ответов (5)

Решение

То, что вам нужно, называется репликацией транзакций в SQL Server 2005. Она будет реплицировать изменения почти в реальном времени по мере обновления базы данных издателя (т. Е. «Главной»).

Вот довольно хорошее пошаговое руководство по его настройке.

Ответ на этот вопрос будет зависеть от сервера базы данных, который вы используете для этого.

Изменить: извините, возможно, мне нужно научиться смотреть на теги, а не только на вопрос - я вижу, вы отметили это как sqlserver.

Репликация транзакций осуществляется в реальном времени.

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

Насколько я понимаю, подчиненная база данных / база данных только для чтения должна использовать файл журнала транзакций главной базы данных для правильного отражения данных? Какие у меня есть варианты с точки зрения того, как часто подчиненная база данных зеркалирует данные? (в реальном времени / каждые x минут?).

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

Вот хорошее представление о различиях между ними. К сожалению, вам нужно зарегистрировать учетную запись, чтобы прочитать это. = / http://www.sqlservercentral.com/articles/Replication/logshippingvsreplication/1399/

SQL Server 2008 имеет три различных режима репликации.

  • Транзакционный для односторонней репликации только для чтения
  • Слияние для двусторонней репликации
  • Снимок