Односторонняя репликация SQL Server 2005

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

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
0
1 942
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

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

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

В подходе "копировать все" определенно есть свои плюсы:

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

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

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

Другие вопросы по теме