Доставка журналов SQL для отчетов
Я хотел бы создать доступную только для чтения копию своей базы данных SQL Server 2008 на вторичном сервере для отчетов и анализа. Я тестировал доставку журналов, настроенный на запуск каждые 5 минут или около того. Увы, кажется, что есть камень преткновения, поскольку во время восстановления требуется эксклюзивный доступ к целевой базе данных, что, в свою очередь, требует уничтожения всех активных соединений. Это далеко от идеала, особенно если пользователь находится в процессе запуска отчета. Есть лучшие предложения?
Изменить: я делаю это в экспресс-выпуске.
2 ответа
Если вы можете справиться с небольшой задержкой в данных, о которых вы сообщаете, то простым решением будет реже восстанавливать базу данных.
Вы по-прежнему можете выполнять резервное копирование и копирование каждые 5 минут, но просто измените частоту задания восстановления на один раз в час или что-либо другое.
Пользователи могут по-прежнему отключаться, но частота будет ниже.
Если вам нужен онлайн-доступ к данным, у вас есть несколько вариантов (если вы хотите использовать для решения только собственные функции SQL, если вы открыты для стороннего программного и / или аппаратного обеспечения, вы ' у меня есть довольно много других вариантов):
1) Репликация - скорее всего, репликация транзакций и один подписчик, доступный только для чтения (msdn - хорошее начало для обзора, я бы опубликовал ссылку, но на данный момент я могу использовать только 1, просто Google "SQL Server Replication msdn" и это будет наверху)
2) Сохраните конфигурацию доставки журналов, чтобы получать данные на вторичный сервер и использовать моментальные снимки базы данных в сочетании с общей базой данных и вращающимися синонимами (подробности об этом типе архитектуры см. Здесь). Это будет работать только в том случае, если вы используете корпоративную версию на вторичном сервере (только в версии, поддерживающей моментальные снимки).