Как мне создать копию моей базы данных SQL Server 2005 в реальном времени?

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

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

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

Спасибо!


person Tarzan    schedule 17.11.2010    source источник
comment
Вы рассматривали возможность использования OLAP?   -  person YWE    schedule 17.11.2010
comment
OLAP не приближается к реальному времени и представляет собой специализированный сценарий отчетности. Хотя это, вероятно, улучшило бы производительность длительных отчетов, требования реального времени важнее технологии.   -  person Paul Sasik    schedule 17.11.2010
comment
Мне нравится OLAP, и моим клиентам нравится возможность принятия решений, которую он им дает. Однако в этом сценарии он не дает полного решения.   -  person Tarzan    schedule 18.11.2010


Ответы (2)


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

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

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

  • Согласованность транзакций
  • Низкая задержка
  • Высокая пропускная способность
  • Минимальные накладные расходы
person Paul Sasik    schedule 17.11.2010

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

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

person gbn    schedule 17.11.2010
comment
30-минутное отставание - не проблема. Практично ли создавать моментальные снимки каждые 30 минут в сценарии зеркалирования или все же лучше использовать репликацию? - person Tarzan; 18.11.2010