Открыть сервис

Report Server Database

Report Server Database — это реляционная база данных, в которой служба Microsoft SQL Server Reporting Services (SSRS) хранит все метаданные, конфигурации, объекты отчётов (определения отчётов, источники данных, расписания, подписки, параметры безопасности) и историю выполненных отчётов. Эту базу данных часто называют каталогом сервера отчётов (report server catalog); без неё работа службы Reporting Services невозможна. Фактически она является единственным источником истины для всех компонентов SSRS — веб-портала, веб-службы и фоновых процессов обработки.

Назначение и функции

Report Server Database выполняет несколько ключевых функций:

Архитектура и технология

Report Server Database использует реляционную модель хранения. Исторически поддерживаются только Microsoft SQL Server (все редакции, включая Express) и, начиная с SQL Server 2016, Azure SQL Database. СУБД требуется для работы службы — сама база данных не может быть размещена, например, на Oracle или PostgreSQL.

База данных автоматически создаётся при установке службы SSRS через мастер настройки Reporting Services Configuration Manager (RSConfigTool) или при развёртывании в режиме интеграции с SharePoint. Для новой установки создаётся пустая база данных. Для обновления — используется существующая (при совместимости версий).

Основные таблицы

Структура базы данных недокументирована для конечного пользователя — Microsoft не рекомендует изменять её напрямую, так как это может привести к неработоспособности службы. Тем не менее известны некоторые ключевые таблицы:

Взаимосвязь между таблицами многократна, поддерживается внешними ключами и индексами, оптимизированными для выполнения процедур dbo.CreateSnapshot, dbo.ExecuteReport и других системных хранимых процедур.

Режимы работы и топология

Режим собственного сервера (Native Mode)

Наиболее распространённая конфигурация. Сервер отчётов использует одну базу данных для каталога (ReportServer) и одну — для временного хранения сеансов и кэша (ReportServerTempDB). ReportServerTempDB содержит временные таблицы (SessionData, CacheData, SnapshotSegment) и очищается автоматически при перезапуске службы. Обе базы данных могут находиться на том же экземпляре SQL Server, на удалённом сервере (удалённом SQL Server) или в группе доступности Always On.

Режим интеграции с SharePoint

При развёртывании SSRS в ферме SharePoint (до версии 2016 включительно) используется та же структура базы данных, но управление безопасностью и папками делегируется SharePoint. В конфигурации присутствует дополнительная база данных — ReportServerSyncTempDB, используемая для синхронизации метаданных между службами.

Кластеризация и масштабирование

SSRS поддерживает развёртывание в режиме горизонтального масштабирования (scale-out): несколько серверов отчётов могут подключаться к одной и той же базе данных каталога. При этом все изменения мгновенно видны всем узлам. Для распределения нагрузки на базу данных используются чтение с реплик (Always Read-Only Routing) и кэширование отчётов. В масштабе до 10–15 узлов база данных редко становится узким местом; проблемные точки обычно связаны с производительностью самого SQL Server.

Обслуживание и производительность

Размер базы данных

Размер Report Server Database может быстро расти из-за:

Типовые значения через год эксплуатации — от 1 до 50 ГБ на каталог. При очень высокой нагрузке (миллионы выполнений в день) размер может достигать сотен гигабайт.

Управление журналом выполнения

Начиная с SQL Server 2008 R2, SSRS автоматически ведёт журнал выполнения в таблицах ExecutionLog / ExecutionLog2. Администратор может включать/отключать ведение журнала сервера отчётов, очищать старые записи с помощью хранимой процедуры dbo.CleanExecutionLog или устанавливать максимальный срок хранения через RSConfigTool.

Индексы и статистики

Microsoft регулярно выпускает обновления схемы (в составе кумулятивных обновлений SQL Server), которые улучшают производительность запросов к каталогу. При высокой нагрузке рекомендуется следить за фрагментацией индексов и обновлять статистики, особенно на таблицах Catalog, ExecutionLog2 и SnapshotData.

Резервное копирование и восстановление

Report Server Database должна регулярно резервироваться как любой производственный каталог. Для восстановления работоспособности службы необходимо:

  1. Восстановить базу данных на SQL Server.
  2. Для шифрования ключей — восстановить резервную копию ключа из базы (SSRS хранит зашифрованные строки подключения и учётные данные).
  3. Если база данных восстанавливается на новом экземпляре SQL Server — изменить имя сервера и учётные записи через RSConfigTool (команда rsconfig -c -s <сервер>).

Важное ограничение: нельзя использовать базу данных, созданную для более новой версии SSRS, в более старой — обратная совместимость отсутствует.

Ограничения и известные проблемы

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →