Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот раздел содержит и описывает пример скрипта RSS служб Reporting Services, который копирует элементы содержимого и параметры с одного сервера отчетов SQL Server Reporting Services на другой сервер отчетов с помощью служебной программы RS.exe . RS.exe устанавливается вместе со службами Reporting Services как в режиме работы в собственной системе команд, так и в режиме SharePoint. Скрипт копирует с одного сервера на другой элементы служб Reporting Services, например отчеты и подписки. Скрипт поддерживает как режим интеграции с SharePoint, так и собственный режим сервера отчетов.
| Применимо к: Режим SharePoint служб Reporting Services | Собственный режим служб Reporting Services |
В этом разделе.
Для загрузки скрипта ssrs_migration.rss
Скачайте скрипт с сайта CodePlex скрипт Reporting Services RS.exe переносит содержимое в локальную папку. Дополнительные сведения см. в разделе "Использование скрипта " в этом разделе.
Поддерживаемые сценарии
Скрипт поддерживает как режим интеграции с SharePoint, так и собственный режим сервера отчетов. Сценарий поддерживает следующие версии сервера отчетов:
SQL Server 2014
SQL Server 2012
SQL Server 2008 R2
Скрипт может копировать содержимое между серверами отчетов, работающих в одном или разных режимах. Например, можно запустить скрипт для копирования содержимого с сервера отчетов в родном режиме SQL Server 2008 R2 на сервер отчетов в режиме SharePoint SQL Server 2012 с пакетом обновления 1 (SP1). Можно запустить скрипт с любого сервера, на котором установлена программа RS.exe. Например, в таком развертывании можно сделать следующее.
Запустите RS.exe и скрипт НА сервере A.
Скопировать содержимое С сервера В.
НА сервер С
| Имя сервера | Режим сервера отчетов |
|---|---|
| Сервер A | Нативный |
| Сервер B | SharePoint |
| Сервер В | SharePoint |
Дополнительные сведения об утилите RS.exe см. в разделе Служебная программа RS.exe (SSRS).
Элементы и ресурсы, которые переносит скрипт
Скрипт не будет перезаписывать элементы содержимого, если их имена совпадают. Если скрипт обнаруживает элементы с тем же именем на целевом сервере, который находятся на исходном сервере, отдельные элементы будут приводить к сбою сообщения, и скрипт продолжится. В следующей таблице перечислены типы содержимого и ресурсов, которые скрипт может перенести в целевой режим сервера отчетов.
| Товар | Перемещено | SharePoint | Описание |
|---|---|---|---|
| Пароли | Нет | Нет | Пароли НЕ переносятся. После переноса элементов содержимого обновите учетные данные на целевом сервере. Например, источники данных с сохраненными учетными данными. |
| Мои отчеты | Нет | Нет | Функция "Мои отчеты" в собственном режиме основана на отдельных входах пользователей, поэтому служба сценариев не имеет доступа к содержимому в папках "Мои отчеты" для пользователей, отличных от параметра -u , используемого для запуска скрипта RSS. Кроме того, "Мои отчеты" не является функцией режима SharePoint служб Reporting Services, а элементы в папках не могут быть скопированы в среду 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. |
| Отчет | Да | Да | Скрипт не перезаписывает существующие элементы на целевом сервере. Если элемент на целевом сервере уже существует с тем же именем, появится сообщение об ошибке, аналогичное следующему: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 элементов найдено. Перенос подписки Save in \\server\public\savereports as 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.
Использование скрипта
Загрузите файл скрипта в локальную папку, например c:\rss\ssrs_migration.rss.
Откройте командную строку с правами администратора.
Перейдите к папке, содержащей файл ssrs_migration.rss.
Выполните команду с параметрами, соответствующими сценарию.
Простой пример, из сервера отчетов в собственном режиме на сервер отчетов в собственном режиме.
В следующем примере выполняется миграция содержимого с 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"
Заметки по использованию.
Скрипт выполняется в два шага.
Первым шагом является аудит, чтобы вернуть список элементов, которые будут перенесены, а второй этап — процесс миграции.
Скрипт можно отменить после шага, если хотите только увидеть возможный список миграции или изменить параметры. Зависимые параметры не перечислены на шаге один. Например, параметры кэша отчета не указаны в списке, тогда как сам отчет указан.
Подсказка
Если вы хотите просто проверить один сервер, используйте один и тот же сервер для источника и назначения и отмените его по шагу 1.
Хорошее применение данных аудита, получаемых после выполнения первого шага, — просмотреть существующие роли как на исходном, так и на целевом серверах, работающих в собственном режиме. Ниже приведен пример списка аудита для первого шага. Обратите внимание, что список содержит "роли" раздела, так как был использован параметр -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: BrowserRole: Content ManagerRole: Model Item BrowserRetrieve 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: BrowserRole: Content ManagerRole: CustomRoleRole: Model Item BrowserRole: My ReportsRole: PublisherRole: Report BuilderRole: System AdministratorRole: System UserRetrieving system policies:Retrieving system policies:System policy: BUILTIN\AdministratorsSystem policy: domain\user1System policy: domain\ueser2Retrieving schedules:Schedule: theMondayScheduleRetrieving catalog items. This may take a while.Folder: /Data SourcesDataSource: /Data Sources/Aworks2012_oltpFolder: /imagesResource: /images/Boba Fett.pngResource: /images/R2-D2.pngFolder: /ReportsReport: /Reports/productsReport: /Reports/testReport: /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 | Учетные данные для исходного сервера. | OPTIONAL, если не указаны учетные данные, используются учетные данные по умолчанию. |
| -v st="SITE" | Необязательно. Этот параметр используется только для серверов отчетов в режиме интеграции с SharePoint. | |
| - v f="SOURCEFOLDER" | Задайте «/», чтобы перенести все, либо «/folder/subfolder» для частичного переноса. Все, что в этой папке будет скопировано | Необязательно, значение по умолчанию — "/". |
| -v ts="TARGET_URL" | URL-адрес целевого сервера отчетов | |
| -v tu="domain\username" -v tp="password" | Учетные данные для целевого сервера. | OPTIONAL, если не указаны учетные данные, используются учетные данные по умолчанию. Примечание. Пользователь будет указан как создатель общих расписаний и учетная запись изменена для элементов отчета на целевом сервере. |
| -v tst="SITE" | Необязательно. Этот параметр используется только для серверов отчетов в режиме интеграции с SharePoint. | |
| -v tf ="TARGETFOLDER" | Для миграции на корневой уровень задано значение "/". Установите значение "/folder/subfolder", чтобы скопировать в уже существующую папку. Всё в папке SOURCEFOLDER будет скопировано в папку TARGETFOLDER. | Необязательно, значение по умолчанию — "/". |
| -v security= "True/False" | Если задано значение False, элементы каталога назначения наследуют параметры безопасности в соответствии с параметрами целевой системы. Это рекомендуемый параметр для миграции между различными типами сервера отчетов, например в собственном режиме в режим SharePoint. Если задано значение True, скрипт пытается перенести параметры безопасности. | Необязательно, значение по умолчанию — 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.
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.
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 см. в статье "Создание виртуальной машины Azure с помощью сервера отчетов в собственном режиме".
Семейство веб-сайтов в режиме SharePoint -'bi' на сервере собственного режима на виртуальной машине Azure
В следующем примере выполняется миграция содержимого:
Из сервера отчетов в режиме SharePoint SourceServer , содержащего семейство веб-сайтов "sites/bi" и общую библиотеку документов.
На сервере отчетов в режиме Native TargetServer, работающем на виртуальной машине Azure. TargetServer не присоединен к домену SourceServer, и User2 является администратором на целевом сервере виртуальной машины Azure.
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"
Проверка
Раздел содержит описание некоторых шагов, которые необходимо выполнить на целевом сервере, чтобы убедиться, что содержимое и политики были успешно перенесены.
Расписание
Проверка расписаний на целевом сервере.
Собственный режим
Перейдите к диспетчеру отчетов на целевом сервере.
Щелкните "Параметры сайта " в верхнем меню.
Щелкните "Расписания" в левой области.
Режим SharePoint:
Перейдите к Параметры сайта.
В группе службы отчётности нажмите «Управление общими расписаниями».
Роли и группы
Собственный режим
Откройте SQL Server Management Studio и подключитесь к серверу отчетов в режиме работы в собственной системе команд.
В обозревателе объектов щелкните "Безопасность".
Выберите Роли.
Устранение неполадок
Используйте флаг трассировки -t для получения дополнительных сведений. Например, если при выполнении скрипта появляется сообщение следующего вида:
- Не удалось подключиться к серверу: http://< servername>/ReportServer/ReportService2010.asmx
Запустите скрипт еще раз с флагом -t , чтобы увидеть сообщение, аналогичное следующему:
- System.Exception: не удалось подключиться к серверу: http:// servername>/ReportServer/ReportService2010.asmx ---> System.Net.WebException: запрос завершился ошибкой с состоянием HTTP 401: несанкционированный.< на сайте System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(Сообщение SoapClientMessage, ответ WebResponse, Stream responseStream, Boolean asyncCall) в System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) в Microsoft.SqlServer.ReportingServices2010.ReportingService2010.IsSSSLRequired() в Microsoft.ReportingServices.ScriptHost.Management2010Endpoint.PingService(String url, String userName, String Password, String password, Строковый домен, время ожидания Int32 в Microsoft.ReportingServices.ScriptHost.ScriptHost.DetermineServerUrlSecurity() --- конец трассировки внутреннего стека исключений ---
См. также
утилитаRS.exe (SSRS)
Сравнение ролей и задач в службах Reporting Services с группами и разрешениями SharePoint