Односторонняя репликация SQL Server 2005 - PullRequest
4 голосов
/ 04 сентября 2008

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

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

  • Приложение читает из ведомого
  • Приложение пишет в основной
  • Первичные обновления ведомого автоматически

Каковы основные плюсы и минусы этого метода?

Ответы [ 2 ]

2 голосов
/ 04 сентября 2008

Несколько минусов:

  • 2 точки отказа
  • Логика приложения должна учитывать задержку между записью чего-либо и последующим чтением, поскольку это не будет доступно сразу из вторичной базы данных

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

Определенно есть плюсы в подходе «повторить все»:

  • Вы можете выполнить любой специальный запрос на вторичном сервере, так как он содержит все ваши данные
  • Если ваш первичный сервер умирает, вы можете быстро переназначить вторичный сервер и занять
1 голос
/ 04 сентября 2008

Мы используем односторонние репликации, но не из одного и того же приложения. Наши приложения выполняют чтение-запись в базу данных master, данные синхронизируются с базой данных replca, а инструменты отчетности используют эту реплику.

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

...