Репликация базы данных. 2 сервера, основная база данных и 2-й только для чтения - PullRequest
7 голосов
/ 16 августа 2008

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

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

Ответы [ 5 ]

7 голосов
/ 16 августа 2008

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

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

3 голосов
/ 16 августа 2008

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

  • Транзакционная для односторонней репликации только для чтения
  • Объединение для двухсторонней репликации
  • Snapshot
2 голосов
/ 16 августа 2008

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

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

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

0 голосов
/ 31 октября 2008

Транзакционная репликация в режиме реального времени.

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

0 голосов
/ 16 августа 2008

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

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

...