Поделиться через


Образец скрипта программы rs.exe служб Reporting Services для переноса содержимого между серверами отчетов

В этом разделе содержится и описывается пример скрипта RSS Reporting Services, который копирует элементы содержимого и параметры с одного сервера отчетов SQL Server Reporting Services на другой с помощью программыRS.exe. RS.exe устанавливается вместе со службами Reporting Services как в режиме работы в собственной системе команд, так и в режиме SharePoint. Скрипт копирует с одного сервера на другой элементы служб Reporting Services, например отчеты и подписки. Скрипт поддерживает как режим интеграции с SharePoint, так и собственный режим сервера отчетов.

Применимо к: Службы Reporting Services в режиме интеграции с SharePoint | Службы Reporting Services в собственном режиме

В этом разделе.

Загрузка скрипта ssrs_migration.rss

Скачайте скрипт с сайта CodePlex Скрипт программы RS.exe служб Reporting Services переносит содержимое в локальную папку. Дополнительную информацию смотрите в разделе Использование скрипта данной темы.

Поддерживаемые сценарии

Скрипт поддерживает как режим интеграции с SharePoint, так и собственный режим сервера отчетов. Скрипт поддерживает следующие версии сервера отчетов.

  • SQL Server 2014

  • SQL Server 2012

  • SQL Server 2008 R2

Скрипт может копировать содержимое между серверами отчетов, работающих в одном или разных режимах. Например, можно запустить скрипт для копирования содержимого с сервера отчетов SQL Server 2008 R2 в собственном режиме на сервер отчетов SQL Server 2012 с пакетом обновления 1 (SP1) в режиме sharePoint. Можно запустить скрипт с любого сервера, на котором установлена программа RS.exe. Например, в таком развертывании можно сделать следующее.

  • Запустите RS.exe и скрипт НА сервере A.

  • Скопировать содержимое С сервера В.

  • НА сервер С

Имя сервера Режим сервера отчетов
Сервер А Собственный
сервера В. SharePoint
сервер С SharePoint

Дополнительные сведения об утилите RS.exe см. в разделе Служебная программа RS.exe (SSRS).

Элементы и ресурсы, которые переносит скрипт

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

Item Перенесено SharePoint Описание
паролей Нет Нет Пароли НЕ переносятся. После переноса элементов содержимого обновите учетные данные на целевом сервере. Например, источники данных с сохраненными учетными данными.
Мои отчеты Нет Нет Работа функции "Мои отчеты" в собственном режиме основана на именах входа конкретных пользователей, поэтому служба скриптов не имеет доступа к содержимому папки "Мои отчеты" для пользователей, не указанных параметром -u, который используется для запуска скрипта RSS. Кроме того, "Мои отчеты" не является функцией Reporting Services режиме SharePoint, и элементы в папках не могут быть скопированы в среду SharePoint. Поэтому скрипт не копирует элементы отчета, которые находятся в папках "Мои отчеты" на исходном сервере отчетов в собственном режиме. Чтобы перенести содержимое в папках "Мои отчеты" с помощью этого скрипта, выполните следующие действия:

1) Создайте новые папки в диспетчере отчетов. Также можно создать папки или вложенные папки для каждого пользователя.

2) Войдите как один из пользователей с содержимым "Мои отчеты".

3) В диспетчере отчетов щелкните папку Мои отчеты .

4) Щелкните представление Сведения для папки.

5) Выберите каждый отчет, который требуется скопировать.

6) Нажмите кнопку Переместить на панели инструментов диспетчера отчетов.

7) Выберите нужную целевую папку.

8) Повторите шаги 2–7 для каждого пользователя.

9) Запустите скрипт.
Журнал Нет Нет
Параметры журнала Да Да Параметры журнала переносятся, в то время как данные журнала НЕТ.
Расписания да да Чтобы перенести расписания, агент SQL Server должен быть запущен на целевом сервере. Если агент SQL Server не запущен на целевом объекте, появится сообщение об ошибке следующего вида:

Migrating schedules: 1 items found. Migrating schedule: theMondaySchedule ... FAILURE: The SQL Agent service is not running. This operation requires the SQL Agent service. ---> Microsoft.ReportingServices.Diagnostics.Utilities.SchedulerNotResponding Exception: The SQL Agent service is not running. This operation requires the SQL Agent service.
Роли и системные политики Да Да По умолчанию скрипт не копирует пользовательскую схему разрешений с одного сервера на другой. По умолчанию элементы будут передаваться на целевой сервер с флагом "наследовать родительские разрешения" со значением TRUE. Если нужно, чтобы скрипт скопировал разрешения для отдельных элементов, воспользуйтесь переключателем SECURITY.

Если исходный и целевой серверы работают в разных режимах сервера отчетов, например выполняется перенос из собственного режима в режим интеграции с SharePoint, и используется выключатель SECURITY, скрипт попытается сопоставить роли и группы по умолчанию на основе сравнения, приведенного в следующем разделе Сравнение ролей и задач служб Reporting Services с группами и разрешениями SharePoint. Пользовательские роли и группы не будут скопированы на целевой сервер.

Если скрипт копирует между серверами, которые работают в одном режиме, и используется переключатель SECURITY, скрипт создает на целевом сервере новые роли (собственный режим) или группы (режим интеграции с SharePoint).

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

Migrating role: Browser ... FAILURE: The role 'Browser' already exists and cannot be created. ---> Microsoft.ReportingServices.Diagnostics.Utilities.RoleAlreadyExistsException: The role 'Browser' already exists and cannot be created.

Дополнительные сведения см. в статье Предоставление пользователю доступа к серверу отчетов (диспетчер отчетов)

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

Migrating DataSource: /Data Sources/Aworks2012_oltp ... FAILURE:The item '/Data Sources/Aworks2012_oltp' already exists. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemAlreadyExistsException: The item '/Data Source s/Aworks2012_oltp' already exists.

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

Migrating Folder: /Reports ... FAILURE: The item '/Reports' already exists. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemAlreadyExistsException: The item '/Reports' already exists.
Report Да Да Скрипт не перезаписывает существующие элементы на целевом сервере. Если элемент с таким же именем уже существует на целевом сервере, появится сообщение об ошибке следующего вида:

Migrating Report: /Reports/testThe item '/Reports/test' already exists. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ItemAlreadyExistsException: The item '/Reports/test' already exists.
Параметры Да Да
Подписки Да Да
Параметры журнала Да Да Параметры журнала переносятся, в то время как данные журнала НЕТ.
параметры обработки Да Да
параметры обновления кэша Да Да Зависимые параметры переносятся в составе элемента каталога. Далее приводится пример скрипта, который переносит отчет (RDL-файл), и связанные параметры, например параметры обновления кэша.

Параметры миграции для отчета TitleOnly.rdl: найдено 0 элементов.

Миграция подписок для отчета TitleOnly.rdl: найден 1 элемент.

Перенос подписки. Сохранение в \\server\public\savedreports как TitleOnly ... УСПЕХ

Миграция параметров журнала для отчета TitleOnly.rdl… УСПЕШНОЕ ЗАВЕРШЕНИЕ

Миграция параметров обработки для отчета TitleOnly.rdl… Найдено 0 элементов.

Миграция параметров обновления кэша для отчета TitleOnly.rdl… УСПЕШНОЕ ЗАВЕРШЕНИЕ

Миграция планов обновления кэша для отчета TitleOnly.rdl: найден 1 элемент.

Миграция плана обновления кэша titleonly_refresh735amM2F… УСПЕШНОЕ ЗАВЕРШЕНИЕ
Планы обновления кэша Да Да
Изображения Да Да
Элементы отчета Да Да

Необходимые разрешения

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

  • Обязательные разрешения для собственного режима: ReadProperties для элемента

  • Требуемые разрешения в режиме интеграции с SharePoint: ViewListItems

Элемент или ресурс Источник Назначение
Элементы каталога ListChildren

GetProperties

GetItemDataSources

GetItemReferences

GetDataSourceContents

GetItemLink
CreateCatalogItem

SetItemDataSources

GetItemReferences

CreateDataSource

CreateLinkedItem

CreateFolder
Роль ListRoles

GetRoleProperties
CreateRole
Системная политика GetSystemPolicies SetSystemPolicies
Расписание ListSchedules CreateSchedule
Подписка ListSubscriptions

GetSubscriptionProperties

GetDataDrivenSubscriptionProperties
CreateSubscription

CreateDataDrivenSubscription
План обновления кэша ListCacheRefreshPlans

GetCacheRefreshPlanProperties
CreateCacheRefreshPlan
Параметры GetItemParameters SetItemParameters
Параметры выполнения GetExecutionOptions SetExecutionOptions
Параметры кэша GetCacheOptions SetCacheOptions
Параметры журнала GetItemHistoryOptions SetItemHistoryOptions
Политика элемента GetPolicies SetPolicies

Дополнительные сведения см. в разделе Сравнение ролей и задач служб Reporting Services с группами и разрешениями SharePoint.

Как использовать сценарий

  1. Загрузите файл скрипта в локальную папку, например c:\rss\ssrs_migration.rss.

  2. Откройте командную строку с правами администратора.

  3. Перейдите к папке, содержащей файл ssrs_migration.rss.

  4. Выполните команду с параметрами, соответствующими сценарию.

Простой пример, из сервера отчетов в собственном режиме на сервер отчетов в собственном режиме.

В следующем примере выполняется миграция содержимого с Sourceserver в собственном режиме на Targetserverв собственном режиме.

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p password -v ts="http://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password"

Заметки по использованию.

  • Скрипт выполняется в два шага.

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

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

    Совет

    Если нужно просто провести аудит на одном сервере, используйте один сервер в качестве источника и целевого сервера и отмените все шаги после первого

    Хорошее применение данных аудита, получаемых после выполнения первого шага, — просмотреть существующие роли как на исходном, так и на целевом серверах, работающих в собственном режиме. Ниже приводится пример списка аудита, полученного после первого шага. Обратите внимание, что список содержит "роли" раздела, так как был использован параметр -v security="True".

    • Retrieve and report the list of items that will be migrated. You can cancel the script after step 1 if you do not want to start the actual migration.

      Retrieving roles:

      Role: Browser

      Role: Content Manager

      Role: Model Item Browser

      Retrieve and report the list of items that will be migrated. You can cancel the script after step 1 if you do not want to start the actual migration.

      Retrieving roles:

      Role: Browser

      Role: Content Manager

      Role: CustomRole

      Role: Model Item Browser

      Role: My Reports

      Role: Publisher

      Role: Report Builder

      Role: System Administrator

      Role: System User

      Retrieving system policies:

      Retrieving system policies:

      System policy: BUILTIN\Administrators

      System policy: domain\user1

      System policy: domain\ueser2

      Retrieving schedules:

      Schedule: theMondaySchedule

      Retrieving catalog items. This may take a while.

      Folder: /Data Sources

      DataSource: /Data Sources/Aworks2012_oltp

      Folder: /images

      Resource: /images/Boba Fett.png

      Resource: /images/R2-D2.png

      Folder: /Reports

      Report: /Reports/products

      Report: /Reports/test

      Report: /Reports/TitleOnly

  • SOURCE_URL и TARGET_URL должны быть действительными URL-адресами сервера отчетов, которые указывают на исходный и целевой сервер отчетов служб Reporting Services. В собственном режиме URL-адрес сервера отчетов выглядит следующим образом:

    • https://servername/reportserver

    В режиме интеграции с SharePoint URL-адрес выглядит следующим образом:

    • https://servername/_vti_bin/reportserver
  • Виртуальная структура папок, представленная пользователю в режиме интеграции с SharePoint, может отличаться от базовой. Откройте в браузере https://servername/_vti_bin/reportserver или https://servername/sites/site_name/_vti_bin/reportserver , чтобы увидеть физическую структуру папок. Это позволит задать имя, отличное от «/», для исходной и целевой папок на сервере в режиме интеграции с SharePoint.

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

Описание параметра

Параметр Описание Обязательное значение
-s Source_URL URL-адрес исходного сервера отчетов Да
-u Domain\password -p password Учетные данные для исходного сервера. OPTIONAL, если не указаны учетные данные, используются учетные данные по умолчанию.
-v st="SITE" OPTIONAL. Этот параметр используется только для серверов отчетов в режиме интеграции с SharePoint.
- v f="SOURCEFOLDER" Задайте «/», чтобы перенести все, либо «/folder/subfolder» для частичного переноса. Будет скопировано все из этой папки. OPTIONAL, «/» по умолчанию.
-v ts="TARGET_URL" URL-адрес целевого сервера отчетов
-v tu="domain\username" -v tp="password" Учетные данные для целевого сервера. OPTIONAL, если не указаны учетные данные, используются учетные данные по умолчанию. Примечание. На целевом сервере пользователь будет указан как "автор" общего расписания, чья учетная запись "изменила" элементы отчета.
-v tst="SITE" OPTIONAL. Этот параметр используется только для серверов отчетов в режиме интеграции с SharePoint.
-v tf ="TARGETFOLDER" Задайте «/» для перехода в корневой уровень. Задайте «/folder/subfolder» для копирования в уже существующую папку. Все из папки SOURCEFOLDER будет скопировано в папку TARGETFOLDER. OPTIONAL, «/» по умолчанию.
-v security= "True/False" Если значение равно FALSE, элементы целевого каталога унаследуют параметры безопасности в соответствии с параметрами целевой системы. Этот параметр рекомендуется использовать для миграций между серверами отчетов разных типов, например из собственного режима в режим интеграции с SharePoint. Если значение равно TRUE, скрипт попытается перенести параметры безопасности. OPTIONAL, значение по умолчанию FALSE.

Другие примеры

С сервера отчетов в собственном режиме на сервер отчетов в собственном режиме

В следующем примере выполняется миграция содержимого с Sourceserver в собственном режиме на Targetserverв собственном режиме.

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p password -v ts="http://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password"  

В следующем примере добавляется параметр безопасности:

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p password -v ts="http://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password" -v security="True"  

Из собственного режима в режим SharePoint — корневой сайт

В следующем примере выполняется миграция содержимого с SourceServer в собственном режиме на "корневой сайт" на сервере TargetServer в режиме интеграции с SharePoint. Папки "Отчеты" и "Источники данных" на сервере в собственном режиме переносятся в развертывание SharePoint как библиотеки.

ssrs_rss_migrate_root_site

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p Password -v ts="http://TargetServer/_vti_bin/ReportServer" -v tu="Domain\User" -v tp="Password"  

В собственном режиме в режиме SharePoint — семейство веб-сайтов bi

В следующем примере выполняется миграция содержимого с сервера в собственном режиме на сервер в режиме интеграции с SharePoint, который содержит семейство веб-сайтов, сайтов бизнес-аналитики и библиотеку общих документов. Скрипт создает папки в целевой библиотеке документов. Например, скрипт создает папки "Отчеты" и "Источники данных" в целевой библиотеке документов.

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p Password -v ts="http://TargetServer/sites/bi/_vti_bin/reportserver" -v tst="sites/bi" -v tf="Shared Documents" -v tu="Domain\User" -v tp="Password"  

Режим интеграции с SharePoint в режиме интеграции с SharePoint — семейство веб-сайтов bi

В следующем примере выполняется миграция содержимого:

  • С сервера SourceServer в режиме интеграции с SharePoint, содержащего семейство веб-сайтов бизнес-аналитики и общую библиотеку документов.

  • На TargetServer в режиме интеграции с SharePoint, который содержит семейство веб-сайтов бизнес-аналитики и общую библиотеку документов.

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/_vti_bin/reportserver -v st="sites/bi" -v f="Shared Documents" -u Domain\User1 -p Password -v ts="http://TargetServer/sites/bi/_vti_bin/reportserver" -v tst="sites/bi" -v tf="Shared Documents" -v tu="Domain\User" -v tp="Password"  

В собственном режиме — в собственном режиме — виртуальная машина Azure

В следующем примере выполняется миграция содержимого:

  • С сервера отчетов SourceServerв собственном режиме.

  • На сервер отчетов TargetServer в собственном режиме, работающий под управлением виртуальной машины Azure. TargetServer не присоединен к домену SourceServer, а пользователь User2 является администратором на виртуальной машине Azure TargetServer.

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\user1 -p Password -v ts="http://ssrsnativeazure.cloudapp.net/ReportServer" -v tu="user2" -v tp="Password2"  

Совет

Сведения по использованию Windows PowerShell для создания серверов отчетов Reporting Services на виртуальных машинах Azure см. в разделе Использование PowerShell для создания сервера отчетов на виртуальных машинах Azure в режиме работы в собственной системе команд.

Режим SharePoint — семейство веб-сайтов bi на сервере в собственном режиме на виртуальной машине Azure

В следующем примере выполняется миграция содержимого:

  • С сервера отчетов SourceServer в режиме интеграции с SharePoint, который содержит семейство веб-сайтов бизнес-аналитики и общую библиотеку документов.

  • На сервер отчетов TargetServer в собственном режиме, работающий под управлением виртуальной машины Azure. TargetServer не присоединен к домену SourceServer, а пользователь User2 является администратором на виртуальной машине Azure TargetServer.

rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://uetesta02/_vti_bin/reportserver -u user1 -p Password -v ts="http://ssrsnativeazure.cloudapp.net/ReportServer" -v tu="user2" -v tp="Passowrd2"  

Проверка

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

Расписания

Проверка расписаний на целевом сервере.

Native Mode

  1. Перейдите в диспетчер отчетов на целевом сервере.

  2. В верхнем меню щелкните Параметры сайтов .

  3. На левой панели щелкните Расписания .

Режим SharePoint:

  1. Перейдите к Параметры сайта.

  2. В группе Службы Reporting Services щелкните Управление общими расписаниями.

Роли и группы

Native Mode

  1. Откройте SQL Server Management Studio и подключитесь к серверу отчетов в режиме работы в собственной системе команд.

  2. В обозревателе объектов щелкните Безопасность.

  3. Выберите Роли.

Устранение неполадок

Используйте флаг трассировки -t для получения дополнительных сведений. Например, если при выполнении скрипта появляется сообщение следующего вида:

  • Не удалось подключиться к серверу: http://< имя>_сервера/ReportServer/ReportService2010.asmx

Запустите скрипт еще раз с флагом -t , чтобы увидеть следующее сообщение:

  • System.Exception: Не удалось подключиться к серверу: http:// имя>_сервера/ReportServer/ReportService2010.asmx ---> System.Net.WebException: запрос завершился ошибкой с состоянием HTTP 401: Не авторизовано.< в System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(сообщение SoapClientMessage, ответ WebResponse, responseStream потока, логическое asyncCall) на System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (строка имя_метода Object [] параметры) в Microsoft.SqlServer.ReportingServices2010.ReportingService2010.IsSSLRequired() на Microsoft.ReportingServices.ScriptHost.Management2010Endpoint.PingService (URL-адрес строки, строка userName, строковый пароль строка домена, время ожидания Int32) в Microsoft.ReportingServices.ScriptHost.ScriptHost.DetermineServerUrlSecurity()---конец трассировки стека внутреннего исключения---

См. также:

Служебная программа RS.exe (SSRS)
Сравнение ролей и задач служб Reporting Services с группами и разрешениями SharePoint