Как создать копию базы данных SQL Server 2005 в реальном времени? - PullRequest
4 голосов
/ 17 ноября 2010

У меня есть веб-приложение, которое используется на нескольких континентах. Базовая БД транзакций блокируется при запуске больших отчетов. Я хочу:

  1. создает в реальном времени базу данных SQL Server 2005 для базы данных отчетов
  2. направлять всю отчетность в базу данных отчетов

Теоретически это предотвратит блокировку транзакций для вставок и обновлений. Это нормально, если БД отчетов временно блокируется, пока продолжаются транзакции. БД отчетов может получать новые транзакции, когда она находится под меньшей нагрузкой. Каков наилучший способ поддерживать копию базы данных транзакций в реальном времени? Должен ли я использовать репликацию, зеркалирование или их комбинацию? Каким общим правилам я должен следовать?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 17 ноября 2010

Зеркалирование = вся БД, репликация - это подмножество обычно в зависимости от того, что вы "публикуете"

В этом случае я бы использовал репликациюесли вам нужно в режиме реального времени.Я бы подумал о зеркалировании, если отчеты могут задерживаться на несколько минут или отчеты должны быть «статичными» в течение определенного периода времени.

2 голосов
/ 17 ноября 2010

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

Существует несколько разновидностей репликации Sql Server, и вам, вероятно, понадобится сервер-сервер. Также смотритеэта статья о хранилище данных и отчетности .В нем описывается точный сценарий, с которым вы сталкиваетесь, и ваши цели:

Конструктивно репликация транзакций отвечает основным требованиям этого сценария:

  • Транзакционныйсогласованность
  • низкая задержка
  • высокая пропускная способность
  • минимальные накладные расходы
...