Доставка журналов, репликация и зеркалирование в SQL Server 2012

У меня есть база данных SQL Server 2012, которая в настоящее время используется в качестве базы данных транзакций и базы данных отчетов. Приложение читает/записывает в ту же базу данных, и отчеты также генерируются для той же базы данных.

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

Ниже приведены требования:

  1. База данных отчетов должна синхронизироваться с базой данных транзакций каждый час. То есть база данных отчетов может содержать устаревшие данные максимум за 1 час.

  2. Это должна быть база данных только для чтения.

  3. Основная цель НЕ восстановление или доступность.

Я не уверен, какая стратегия — доставка журналов транзакций, зеркалирование или репликация — лучше всего подойдет в моем случае. Кроме того, если я буду выполнять операцию синхронизации чаще (скажем, каждые 10 минут), повлияет ли это на транзакционную базу данных или службу отчетов?

Спасибо


comment
Ознакомьтесь с технологией AlwaysOn — она в основном предназначена для обеспечения высокой доступности, но работает с репликами базы данных, которые также можно использовать для создания отчетов и т. д.   -  person marc_s    schedule 24.02.2015


Ответы (1)


Я настоятельно рекомендую вам использовать резервную базу данных в состоянии только для чтения. И каждые 15 минут у вашего sqlserveragent есть запланированное задание: а) создать новый файл журнала .trn в основной базе данных и б) восстановить его в резервный (ваши отчеты базы данных). Единственная проблема: при использовании этой техники ваш сеанс будет отключен, пока агент восстанавливает файл журнала .trn. Но если вы можете остановить задание восстановления, запустить свои отчеты, а затем повторно активировать его, проблем не будет. Кажется, это именно то, что вам нужно. Или, если ваши отчеты выполняются быстро, вероятно, они не будут отключены... если я не ошибаюсь, задание восстановления также можно настроить на ожидание завершения открытого сеанса или его закрытие. Я могу проверить это последнее сомнение для вас завтра, если вы не найдете ..

Как только он запустится на том же экземпляре сервера sql, вам не нужно беспокоиться о дополнительном лицензировании...

person Hudson Santos    schedule 03.12.2015
comment
Я подтвердил, и ДА, вы можете выбрать, хотите ли вы отключить активных пользователей, которые только читают, или нет. Как вы можете видеть, этот флажок (снят) на данном снимке экрана: sqlshack.com/wp-content/uploads/2014/03/ - person Hudson Santos; 03.12.2015