Перемещение баз данных сервера отчетов на другой компьютер (собственный режим SSRS)

Базы данных сервера отчетов, используемые в установке ядра СУБД SQL Server, можно переместить в экземпляр, который находится на другом компьютере. Сервер отчетов и базы данных reportservertempdb должны быть перемещены или скопированы вместе. Для установки служб Reporting Services требуются обе базы данных; База данных reportservertempdb должна быть связана по имени с базой данных основного сервера отчетов, которую вы перемещаете.

Применимо к: Собственный режим служб Reporting Services.

Перемещение базы данных не влияет на запланированные операции, которые в настоящее время определены для элементов сервера отчетов.

  • Расписания будут повторно созданы при первом перезапуске службы сервера отчетов.

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

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

  • Временный отчет и данные сеанса пользователя, хранящиеся в reportservertempdb, сохраняются при перемещении этой базы данных.

SQL Server предоставляет несколько подходов для перемещения баз данных, включая резервное копирование и восстановление, присоединение и отключение и копирование. Не все подходы подходят для перемещения существующей базы данных в новый экземпляр сервера. Подход, используемый для перемещения базы данных сервера отчетов, зависит от требований к доступности системы. Самый простой способ переместить базы данных сервера отчетов — подключить и отсоединить их. Однако этот подход требует, чтобы сервер отчетов был отключен при отключении базы данных. Резервное копирование и восстановление лучше использовать, если вы хотите свести к минимуму нарушения работы службы, но для выполнения операций необходимо выполнить команды Transact-SQL. Копирование базы данных не рекомендуется (в частности, с помощью мастера копирования базы данных); Он не сохраняет параметры разрешений в базе данных.

Это важно

Действия, описанные в этом разделе, рекомендуется выполнять при перемещении базы данных сервера отчетов, если это единственное изменение, которое вы вносите в существующую установку. Перенос всей установки служб Reporting Services (то есть перемещение базы данных и изменение удостоверения службы Windows сервера отчетов, использующей базу данных), требует перенастройки подключения и сброса ключа шифрования.

Отсоединение и подключение серверных баз отчетов

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

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

  1. Резервное копирование ключей шифрования для базы данных сервера отчетов, которую вы хотите переместить. Средство настройки служб Reporting Services можно использовать для резервного копирования ключей.

  2. Остановите службу сервера отчетов. Средство настройки служб Reporting Services можно использовать для остановки службы.

  3. Запустите SQL Server Management Studio и откройте подключение к экземпляру SQL Server, на котором размещены базы данных сервера отчетов.

  4. Щелкните правой кнопкой мыши базу данных сервера отчетов, наведите указатель на задачи и нажмите кнопку "Отсоединить". Повторите этот шаг для временной базы данных сервера отчетов.

  5. Скопируйте или переместите .mdf и LDF-файлы в папку данных экземпляра SQL Server, которую вы хотите использовать. Так как вы перемещаете две базы данных, убедитесь, что вы перемещаете или копируете все четыре файла.

  6. В Management Studio откройте подключение к новому экземпляру SQL Server, в котором будут размещаться базы данных сервера отчетов.

  7. Щелкните правой кнопкой мыши узел "Базы данных" и нажмите кнопку "Подключить".

  8. Нажмите кнопку "Добавить ", чтобы выбрать базу данных сервера отчетов .mdf и LDF-файлы, которые требуется присоединить. Повторите этот шаг для временной базы данных сервера отчетов.

  9. После подключения баз данных, убедитесь, что RSExecRole является ролью базы данных как в базе данных сервера отчетов, так и во временной базе данных. RSExecRole должны иметь разрешения на выбор, вставку, обновление, удаление и ссылку на таблицы базы данных сервера отчетов и разрешения на выполнение хранимых процедур. Дополнительные сведения см. в разделе "Создание RSExecRole".

  10. Запустите средство настройки служб Reporting Services и откройте подключение к серверу отчетов.

  11. На странице "База данных" выберите новый экземпляр SQL Server и нажмите кнопку "Подключить".

  12. Выберите только что перенесенную базу данных сервера отчетов и нажмите кнопку "Применить".

  13. На странице "Ключи шифрования" нажмите кнопку "Восстановить". Укажите файл, содержащий резервную копию ключей и пароль для разблокировки файла.

  14. Перезапустите службу сервера отчетов.

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

Если вы не можете отключить сервер отчетов, можно использовать резервное копирование и восстановление для перемещения баз данных сервера отчетов. Для резервного копирования и восстановления необходимо использовать инструкции Transact-SQL. После восстановления баз данных необходимо настроить сервер отчетов для использования базы данных на новом экземпляре сервера. Дополнительные сведения см. в инструкциях в конце этого раздела.

Использование BACKUP и COPY_ONLY для резервного копирования баз данных сервера отчетов

При резервном копировании баз данных задайте аргумент COPY_ONLY. Обязательно создайте резервную копию баз данных и файлов журналов.

-- To permit log backups, before the full database backup, alter the database   
-- to use the full recovery model.  
USE master;  
GO  
ALTER DATABASE ReportServer  
   SET RECOVERY FULL  
  
-- If the ReportServerData device does not exist yet, create it.   
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerData',   
'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\BACKUP\ReportServerData.bak'  
  
-- Create a logical backup device, ReportServerLog.  
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerLog',   
'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\BACKUP\ReportServerLog.bak'  
  
-- Back up the full ReportServer database.  
BACKUP DATABASE ReportServer  
   TO ReportServerData  
   WITH COPY_ONLY  
  
-- Back up the ReportServer log.  
BACKUP LOG ReportServer  
   TO ReportServerLog  
   WITH COPY_ONLY  
  
-- To permit log backups, before the full database backup, alter the database   
-- to use the full recovery model.  
USE master;  
GO  
ALTER DATABASE ReportServerTempdb  
   SET RECOVERY FULL  
  
-- If the ReportServerTempDBData device does not exist yet, create it.   
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBData',   
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\BACKUP\ReportServerTempDBData.bak'  
  
-- Create a logical backup device, ReportServerTempDBLog.  
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBLog',   
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\BACKUP\ReportServerTempDBLog.bak'  
  
-- Back up the full ReportServerTempDB database.  
BACKUP DATABASE ReportServerTempDB  
   TO ReportServerTempDBData  
   WITH COPY_ONLY  
  
-- Back up the ReportServerTempDB log.  
BACKUP LOG ReportServerTempDB  
   TO ReportServerTempDBLog  
   WITH COPY_ONLY  

Использование RESTORE и MOVE для перемещения баз данных сервера отчетов

При восстановлении баз данных обязательно включите аргумент MOVE, чтобы указать путь. Используйте аргумент NORECOVERY для выполнения первоначального восстановления; При этом база данных сохраняется в состоянии RESTOREING, что позволяет просматривать резервные копии журналов, чтобы определить, какой из них необходимо восстановить. Последний шаг повторяет операцию RESTORE с аргументом RECOVERY.

Аргумент MOVE использует логическое имя файла данных. Чтобы найти логическое имя, выполните следующую инструкцию: RESTORE FILELISTONLY FROM DISK='C:\ReportServerData.bak';

В следующих примерах приведен аргумент FILE, позволяющий указать расположение файла журнала для восстановления. Чтобы найти позицию файла, выполните следующую инструкцию: RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';

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

-- Restore the report server database and move to new instance folder   
RESTORE DATABASE ReportServer  
   FROM DISK='C:\ReportServerData.bak'  
   WITH NORECOVERY,   
      MOVE 'ReportServer' TO   
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer.mdf',   
      MOVE 'ReportServer_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer_Log.ldf';  
GO  
  
-- Restore the report server log file to new instance folder   
RESTORE LOG ReportServer  
   FROM DISK='C:\ReportServerData.bak'  
   WITH NORECOVERY, FILE=2  
      MOVE 'ReportServer' TO   
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer.mdf',   
      MOVE 'ReportServer_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer_Log.ldf';  
GO  
  
-- Restore and move the report server temporary database  
RESTORE DATABASE ReportServerTempdb  
   FROM DISK='C:\ReportServerTempDBData.bak'  
   WITH NORECOVERY,   
      MOVE 'ReportServerTempDB' TO   
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServerTempDB.mdf',   
      MOVE 'ReportServerTempDB_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\REportServerTempDB_Log.ldf';  
GO  
  
-- Restore the temporary database log file to new instance folder   
RESTORE LOG ReportServerTempdb  
   FROM DISK='C:\ReportServerTempDBData.bak'  
   WITH NORECOVERY, FILE=2  
      MOVE 'ReportServerTempDB' TO   
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServerTempDB.mdf',   
      MOVE 'ReportServerTempDB_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\REportServerTempDB_Log.ldf';  
GO  
  
-- Perform final restore  
RESTORE DATABASE ReportServer  
   WITH RECOVERY  
GO  
  
-- Perform final restore  
RESTORE DATABASE ReportServerTempDB  
   WITH RECOVERY  
GO  

Настройка подключения к базе данных сервера отчетов

  1. Запустите Диспетчер конфигурации служб Reporting Services и откройте подключение к серверу отчетов.

  2. На странице "База данных" нажмите кнопку "Изменить базу данных". Нажмите кнопку Далее.

  3. Выберите существующую базу данных сервера отчетов. Нажмите кнопку Далее.

  4. Выберите SQL Server, на котором размещена база данных сервера отчетов, и нажмите кнопку "Проверить подключение". Нажмите кнопку Далее.

  5. В имени базы данных выберите базу данных сервера отчетов, которую вы хотите использовать. Нажмите кнопку Далее.

  6. В учетных данных укажите учетные данные, которые сервер отчетов будет использовать для подключения к базе данных сервера отчетов. Нажмите кнопку Далее.

  7. Нажмите кнопку Далее , затем — кнопку Готово.

Замечание

Для установки Reporting Services требуется, чтобы инстанция ядра СУБД SQL Server имела роль RSExecRole. Создание ролей, регистрация входа и назначения ролей возникают при настройке подключения к базе данных сервера отчетов с помощью средства настройки служб Reporting Services. Если вы используете альтернативные подходы (в частности, если вы используете служебную программу командной строки rsconfig.exe) для настройки подключения, сервер отчетов не будет находиться в рабочем состоянии. Возможно, потребуется написать код WMI, чтобы сделать сервер отчетов доступным. Для получения дополнительной информации см. раздел "Доступ к поставщику WMI служб Reporting Services.

См. также

Создание RSExecRole
Запуск и остановка службы сервера отчетов
Настройка подключения к базе данных сервера отчетов (диспетчер конфигурации SSRS)
Настройка учетной записи автоматического выполнения (диспетчер конфигурации служб SSRS)
Менеджер настройки служб Reporting Services (собственный режим)
Служебная программа rsconfig (SSRS)
Настройка ключей шифрования и управление ими (диспетчер конфигурации SSRS)
База данных сервера отчетов (собственный режим SSRS)