Построение и обновление базы данных отчетов

В данном разделе рассматриваются способы построения или обновления базы данных отчетов, предназначенной для использования в качестве масштабируемой общей базы данных. База данных отчетов может быть копией рабочей базы данных, как на рисунке, или содержать данные отчетов, импортированные из одной или более рабочих баз данных. Процесс построения или обновления базы данных отчетов называется фазой построения или фазой обновления, в зависимости от того, создается новая база данных отчетов или же обновляется устаревшая база данных отчетов.

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

Чтобы создать или обновить базу данных отчетов, можно воспользоваться любым методом копирования данных, поддерживаемым в SQL Server для копирования данных или баз данных. Дополнительные сведения см. в подразделе «Методы построения или обновления базы данных отчетов» далее в этом разделе.

Методы построения или обновления базы данных отчетов

ПримечаниеПримечание

До построения или обновления базы данных отчетов набор ее томов отчетов должен быть присоединен к рабочему серверу, а каждый из томов должен быть помечен как доступный для чтения и записи. Описание всех шагов этого процесса см. в подразделе «Шаги для построения или обновления базы данных», далее в этом разделе.

SQL Server 2005 и более поздние версии поддерживают следующие методы построения и обновления базы данных отчетов:

  • Службы SQL Server Integration Services

    Создать или скопировать базу данных можно, запустив пакеты служб SSIS при помощи задач «Выполнение SQL» или «Передача базы данных».

    • Задача «Выполнение SQL» выполняет инструкции SQL или хранимые процедуры из пакета. С помощью задачи «Выполнение SQL» можно создавать базу данных посредством выполнения инструкции CREATE DATABASE и последующего ее заполнения с помощью копирования одной или более таблиц или представлений. Дополнительные сведения см. в разделе Задача служб SSIS «Выполнение SQL».

    • Задача «Передача базы данных» копирует базу данных внутри одного экземпляра сервера или между двумя экземплярами. Дополнительные сведения см. в разделе Задача «Передача базы данных».

    ПримечаниеПримечание

    Также можно создать базу данных при помощи мастера импорта и экспорта SQL Server, но необходимо скопировать по меньшей мере одну таблицу или представление. Дополнительные сведения см. в разделе Перенос данных с помощью мастера импорта и экспорта SQL Server.

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

    Можно восстановить резервную копию рабочей базы данных на томе отчетов. Эта операция включает восстановление полной резервной копии базы данных на томе отчетов.

    • При использовании одинаковой буквы диска присоедините том отчетов к другому узлу и подключитесь к экземпляру сервера, на который будет восстанавливаться база данных.

    • При использовании томом отчетов буквы диска, отличной от буквы рабочего тома, необходимо добавить в инструкцию RESTORE DATABASE предложение WITH MOVE, указывающее букву диска тома отчета в пути восстанавливаемой базы данных.

    Сведения о копировании базы данных путем восстановления из резервной копии см. в разделе Создание копий баз данных с помощью резервного копирования и восстановления.

  • Копирование рабочей базы данных

    Перед копированием базы данных необходимо вручную или с помощью метода отсоединения и присоединения мастера копирования баз данных перевести базу данных в автономный режим, а после копирования вернуть ее в оперативный режим. Однако мастер копирования баз данных предлагает альтернативный метод, метод передачи SMO, позволяющий копировать базу данных в оперативном режиме. Хотя этот метод медленнее метода отсоединения и присоединения, его преимущество — в сохранении активных подключений к базе данных.

    Дополнительные сведения см. в разделе Использование мастера копирования баз данных.

ПримечаниеПримечание

Рекомендуется всегда использовать одинаковые пути к рабочим базам данных и базам данных отчетов при построении базы данных отчетов и по возможности одинаковую букву диска для рабочего тома и тома отчетов (при подключении к серверам отчетов).

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

  • Обновление или повторное создание статистики по затронутым таблицам и индексам по мере необходимости.

  • Перестроение индекса с коэффициентом заполнения, равным 100.

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

ПримечаниеПримечание

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

Если база данных готова, необходимо пометить тома отчетов как доступные только для чтения и отсоединить их от рабочего сервера. Дополнительные сведения см. в подразделе «Шаги фазы построения или обновления» далее в этом разделе.

Шаги фазы построения или обновления

ПримечаниеПримечание

Перед обновлением базы данных отчетов необходимо отсоединить ее набор томов отчетов от всех серверов отчетов. Дополнительные сведения см. в разделе Отсоединение масштабируемой общей базы данных.

Для построения или обновления базы данных отчетов выполните следующие действия на рабочем сервере.

  1. При помощи служебных программ производителя оборудования снимите маску номера логической единицы (LUN), соответствующую каждому тому отчетов, чтобы открыть доступ рабочего сервера к тому. Если база данных использует несколько томов отчетов, выполните этот шаг для каждого тома.

  2. Присоедините каждый том отчетов и пометьте его как доступный для чтения и записи. Команда DiskPart list volumes, отображающая все диски и тома на компьютере полезна для получения сведений о томе. Чтобы использовать служебную программу DiskPart для присоединения тома, введите следующие команды в командной строке:

    DiskPart

    DISKPART> select volume=<номер-диска>

    DISKPART> assign letter=<буква-диска>

    DISKPART> attribute clear readonly

    DISKPART> exit

    где <номер-диска> — номер тома, назначенный операционной системой Windows, а <drive-letter> — буква, назначенная тому отчетов. Если база данных использует несколько томов отчетов, выполните этот шаг для каждого тома.

  3. При обновлении существующей базы данных отчетов выполните следующее.

  4. Постройте или обновите базу данных.

    Администратор строит или обновляет базу данных с помощью любого метода построения или обновления базы данных отчетов. База данных отчетов может использовать любое допустимое имя. Дополнительные сведения см. в подразделе «Методы построения или обновления базы данных» ранее в этом разделе.

    ПримечаниеПримечание

    В базе данных отчетов рекомендуется установить параметр PAGE_VERIFY в значение CHECKSUM, используемое по умолчанию. Дополнительные сведения см. в разделе ALTER DATABASE (Transact-SQL).

  5. Отсоедините базу данных от экземпляра рабочего сервера.

    Это можно выполнить с помощью следующей инструкции Transact-SQL:

    sp_detach_db @dbname='<database_name>'
    

    где <database_name> — имя базы данных.

    ПримечаниеПримечание

    По умолчанию процедура sp_detach_db выполняет инструкцию UPDATE STATISTICS для осуществления повторной выборки статистики. Однако некоторые реализации могут потребовать отдельного выполнения инструкции UPDATE STATISTICS с параметром FULL SCAN.

  6. Пометьте каждый том отчетов как доступный только для чтения и отсоедините его от рабочего сервера.

    Чтобы использовать служебную программу DiskPart для отсоединения тома, введите следующие команды в командной строке:

    DiskPart

    DISKPART> select volume=<номер-диска>

    DISKPART> attribute set readonly

    DISKPART> remove

    где <номер-диска> — номер тома, назначенный операционной системой Windows, а <буква-диска> — буква, назначенная тому отчетов. Если база данных использует несколько томов отчетов, выполните этот шаг для каждого тома.

    Важное примечаниеВажно!

    Перед отсоединением от рабочего сервера тома отчетов должны быть доступны только для чтения.

Теперь базу данных отчетов можно сделать доступной в качестве масштабируемой общей базы данных. Дополнительные сведения см. в разделе Подключение базы данных отчетов как масштабируемой общей базы данных.