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

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

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


person public static    schedule 16.08.2008    source источник


Ответы (5)


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

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

person jeremcc    schedule 16.08.2008

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

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

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

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

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

person Ryan    schedule 16.08.2008
comment
Просто нажмите на ссылку, которую вы предоставили, и похоже, что вам больше не нужна учетная запись. - person MatthewD; 05.07.2016

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

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

person Jarod Elliott    schedule 16.08.2008

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

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

person Samiksha    schedule 31.10.2008