Несколько минусов:
- 2 точки отказа
- Логика приложения должна учитывать задержку между записью чего-либо и последующим чтением, поскольку это не будет доступно сразу из вторичной базы данных
Стратегия, которую я использовал, заключается в том, чтобы отправлять ключевые отчетные данные во вторичную базу данных по ночам, ненормализуя их по пути, чтобы в этой базе данных могли выполняться сложные запросы вместо блокировки таблиц и кражи ресурсов с сервера OLTP. Я не использую какие-либо формальные инструменты для хранилищ данных или репликации, а скорее выявляю проблемные запросы, которые подходят без самых последних данных, и создаю структуры данных на вторичном сервере специально для этих запросов.
Определенно есть плюсы в подходе «повторить все»:
- Вы можете выполнить любой специальный запрос на вторичном сервере, так как он содержит все ваши данные
- Если ваш первичный сервер умирает, вы можете быстро переназначить вторичный сервер и занять