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

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

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

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

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

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

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

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

SQL Server предоставляет несколько подходов для перемещения баз данных, включая резервное копирование и восстановление, присоединение и отключение и копирование. Не все из них пригодны для переноса существующей базы данных на новый экземпляр сервера. Подход, который следует использовать для перемещения базы данных сервера отчетов, зависит от требований к доступности системы. Наиболее простой способ перемещения баз данных сервера отчетов состоит в их отсоединении и присоединении. Однако такой подход требует, чтобы сервер отчетов во время отсоединения базы данных был переведен в режим «вне сети». Действия резервного копирования и восстановления лучше подходят для минимизации сбоев служб, но для выполнения операций необходимо выполнить команды Transact-SQL. Копирование базы данных не рекомендуется, в частности с помощью мастера копирования базы данных. Он не сохраняет параметры разрешений в базе данных.

Важно!

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

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

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

Для перемещения баз данных выполните следующие шаги:

  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\MSSQL13.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\MSSQL13.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 Используйте аргумент для выполнения первоначального восстановления. Этот аргумент сохраняет базу данных в RESTORING состоянии, что позволяет просматривать резервные копии журналов, чтобы определить, какой из них необходимо восстановить. Последний шаг повторяет 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, на котором размещена база данных сервера отчетов, и выберите тестовый Подключение ion. Выберите Далее.

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

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

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

Примечание.

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

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

Есть еще вопросы? Посетите форум служб Reporting Services.