|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
Добрый день! Есть задача изменить названия серверов всех отчетов ms sql reporting service - отчетов много и скачивать каждый отчет отдельно, менять сервер и вновь загружать потребует больших затрат. Есть БД ReportServer однако информация о подключениях в самих отчетах в ней я не нашел. Подскажите, пожалуйста, есть ли какой то способ сделать это быстро - количество отчетов порядка 300? Заранее спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 18:04 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
dermama информация о подключениях в самих отчетах в ней я не нашел. https://docs.microsoft.com/en-us/sql/reporting-services/report-data/create-modify-and-delete-shared-data-sources-ssrs?view=sql-server-ver15 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 18:16 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
dermama, это зависит от того, используют ли отчеты свои собственные или shared источники данных. shared datasources поменять легко в случае собственных... можно выгрузить сами отчеты в виде xml в файлы с помощью подобного запроса (см. столбец extract command) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
поправить и залить обратно а на счет "быстро" приходит на ум только такое - в файле hosts прописать соответствия старых и новых серверов править на сервере, где установлен SSRS ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 18:47 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
komrad, Доброе утро, спасибо - я правильно понимаю, что выгружать в rdl посредством cmd? А уточните, пожалуйста, как я смогу залить измененные rdl обратно в БД reportserver? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 10:32 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
dermama komrad, Доброе утро, спасибо - я правильно понимаю, что выгружать в rdl посредством cmd? А уточните, пожалуйста, как я смогу залить измененные rdl обратно в БД reportserver? И еще, уточните, пожалуйста, а в какую папку будет произведена выгрузка - так как в столбце extract command пути не указано - я ранее не работал с таким функционалом. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 11:00 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
dermama, Перенесите бекап БД ReportServer на новый сервер и настройте подключение к ней. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 12:11 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
dermama komrad, Доброе утро, спасибо - я правильно понимаю, что выгружать в rdl посредством cmd? да, BCP это утилита командной строки; обычно идет вместе с SQL Native Client dermama А уточните, пожалуйста, как я смогу залить измененные rdl обратно в БД reportserver? Тут два варианта: вручную и автоматизированная массовая. Автоматизированная массовая - это сложный процесс. Гуглить на тему "ssrs upload multiple rdl" Однако, непонятны следующие моменты: - структура папок в SSRS (отчеты надо разложить в существующие папки) - какие типы data sources используются (надо ли выгружать все отчеты или достаточно поправить shared data sources?) - имеются ли подписки на отчеты (слетят ли они при перезаписи отчета?) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 12:12 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
dermama И еще, уточните, пожалуйста, а в какую папку будет произведена выгрузка - так как в столбце extract command пути не указано - я ранее не работал с таким функционалом. В ту папку, из которой будет вызываться BCP (текущую). Обратите внимание - отчеты будут выгружены с названиями папок. Таким образом обходится ситуация с одноименными отчетами в разных папках. Если создадите на диске копию структуры папок SSRS, то для выгрузки отчетов по папкам запрос можно модицифировать следующим образом: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Важно: - запрос запускать в базе ReportServer; - эккаунт, под котором запускается BCP и сама командная строка, должен иметь полный доступ к базе ReportServer; - BCP использует аутентификацию Windows. Если аутентификация SQL, то ключ "-T " надо заменить на "-U login -P password " со своими login и password. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 12:33 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
кстати, полагаю, что этот топик для раздела "Отчетные системы" ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 13:09 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
dermama, а, кстати, что вернет этот запрос? Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 13:36 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
komrad dermama, а, кстати, что вернет этот запрос? Код: sql 1. 2. 3. 4.
Данный запрос вернул мне 94 строки, с одинаковыми названиями отчетов, но в разных папках разных подкаталогов. количество повторяющихся названий от 2 до 9 если просто подсчитать количество отчетов по названиям, то получается 953 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 14:33 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
dermama Данный запрос вернул мне 94 строки, с одинаковыми названиями отчетов, но в разных папках разных подкаталогов. количество повторяющихся названий от 2 до 9 если просто подсчитать количество отчетов по названиям, то получается 953 тогда выгружать надо по ID и раскладывать по папкам локально исправленный скрипт Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 14:46 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
komrad тогда выгружать надо по ID и раскладывать по папкам локально скрипт на создание дерева папок SSRS в текущей папке Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 14:54 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
Нелегкая же дорога у тех, кто не желает пользоваться инструментами MS... Установите VS, добавьте инструментарий разработки баз данных, импортируйте отчеты в решение. Дальше - дело техники, поиск, замена, развертывание проекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2020, 15:52 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
Visual Studio - инструмент явно не для администрации (/конфиг.) и не для мониторинга SSRS/PBIRS, а для разработки (как правильно замечено выше) / контроля версий (тестирование и в некотором смысле - выгрузка, но не прод.) (хотя держать в проекте VS как советуют в пред. посте - вообще-то стандарт, можно ещё готовить к релизам но не сами релизы на выпуск) для этих целей у MS документирован REST API в основном, (SOAP {..asmx?wsdl..} уже списали несколько лет назад, но пока работает), ну ещё частично конфигуратор, SSMS и несколько других примочек (не важно как ими работать, частая практика - через PowerShell) Процедуры SSRS базы данных предназначены для внутренних целей сервиса, ну разве что таблицы можно для мониторинга использовать. (прямая выгрузка от туда и загрузка напрямую в SQL - явный кактус) Для пакетной обработки именно REST, в первую очередь, документировано (хоть и частичично кривовато) Если не по фэн-шую (потому-что не предназначено) переписывать напрямую в базу (против течения, там хоть и триггеров нет но наверное и хэши завязаны) - то как кто-то выше намекал: запросто можно побить и ID-шники со слётом связей к другим обьектам (и в др. системах, простейший пример: агент и подписки) потерять настройки доступа/безопасности на отчётах, и естественно искорёжить xранилище учётных данных / сбить ключи (крипта/шифрование) на те-же источники данных при некоторых типах аутентификации - сервера которых меняет TS REST API (метод GET) прекрасно даёт и список объектов (JSON) со свойствами (путь, размер, ID-шники и мн. пр.) и сам объект (скачать) по пути либо ID, и предоставляет возможность положить объекты обратно на сервер например: http://my-server/Reports/api/v2.0/CatalogItems задачи такого класса (пакетного/массового обслуживания) явно не для SQL (напрямую) и не для Visual Studio (хотя некоторые инструменты для этого там есть или хранятся/разрабатываются) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2020, 12:51 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
vikkiv REST API (метод GET) прекрасно даёт и список объектов (JSON) со свойствами (путь, размер, ID-шники и мн. пр.) и сам объект (скачать) по пути либо ID, и предоставляет возможность положить объекты обратно на сервер например: http://my-server/Reports/api/v2.0/CatalogItems задачи такого класса (пакетного/массового обслуживания) явно не для SQL (напрямую) и не для Visual Studio (хотя некоторые инструменты для этого там есть или хранятся/разрабатываются) Добрый день! Спасибо за подробный ответ. я нашел инфу на сайте swaggerhub с доступными командами по GET, POST и так далее - получилось выгрузить файл JSON по всем очтетам, попробовал также команды по datasource - выгружается инфа по всем Общим источникам данных - однако не получается выгрузить инфу по всем отчетам, с подробным описанием собственных коннектов отчета - такое возможно только если указывать ID какого либо отчета. Плюс как я понял, для того чтобы пользоваться командами GET, POST и т.д необходимо сторонне ПО такое как Postman к приемру для CHROME, а нам нельзя устанавливать сторонее на удаленку по причинам безопасности. Т.Е. по сути мне удалось выгрузить некую информацию по ссылке http://my-server/Reports/api/v2.0/CatalogItems однако подробной информации о коннектах здесь нет. Пробовал также http://my-server/Reports/api/v2.0/datasource - также общая инфа по общим коннектам. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 11:42 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
dermama vikkiv REST API (метод GET) прекрасно даёт и список объектов (JSON) со свойствами (путь, размер, ID-шники и мн. пр.) и сам объект (скачать) по пути либо ID, и предоставляет возможность положить объекты обратно на сервер например: http://my-server/Reports/api/v2.0/CatalogItems задачи такого класса (пакетного/массового обслуживания) явно не для SQL (напрямую) и не для Visual Studio (хотя некоторые инструменты для этого там есть или хранятся/разрабатываются) Добрый день! Спасибо за подробный ответ. я нашел инфу на сайте swaggerhub с доступными командами по GET, POST и так далее - получилось выгрузить файл JSON по всем очтетам, попробовал также команды по datasource - выгружается инфа по всем Общим источникам данных - однако не получается выгрузить инфу по всем отчетам, с подробным описанием собственных коннектов отчета - такое возможно только если указывать ID какого либо отчета. Плюс как я понял, для того чтобы пользоваться командами GET, POST и т.д необходимо сторонне ПО такое как Postman к приемру для CHROME, а нам нельзя устанавливать сторонее на удаленку по причинам безопасности. Т.Е. по сути мне удалось выгрузить некую информацию по ссылке http://my-server/Reports/api/v2.0/CatalogItems однако подробной информации о коннектах здесь нет. Пробовал также http://my-server/Reports/api/v2.0/datasource - также общая инфа по общим коннектам. и соответственно как обратно постить измененную инфу (в случае если бы удалось добраться до подробного описания собственных коннектов отчета) не понятно на данный момент. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 11:48 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
dermama, 300 отчетов, кстати, не так много, если не хотите пользоваться студией, то можно выполнить dowload каждого отчета, отредактировать и выполнить upload. За пару дней спокойно управитесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 16:05 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
Владислав Колосов dowload каждого отчета, отредактировать и выполнить upload+1 Гораздо дольше будет протестировать каждый отчет. Заодно можно будет проделать рефакторинг: просмотреть на все отчеты, отделить нужные отчеты от остальных, сформировать источники данных dermama количество повторяющихся названий от 2 до 9Нюхом чую бардак ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 16:31 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
SERG1257, бардак однозначно, т.к. даже проекта нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 17:24 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
dermama, если лог настроен, то можете отбросить неактуальное старье ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 17:37 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
Владислав Колосов то можно выполнить dowload каждого отчета, отредактировать и выполнить upload. За пару дней спокойно управитесь. завтра посыпятся предложения по ведению баз данных на бумаге карандашом, а огонь разжигать огнивом SERG1257 просмотреть на все отчеты, отделить нужные отчеты от остальных, в нормалньой организации навряд-ли есть позиции где IT-шникам нечем заняться до такой степени что приходится самим себе изобретать занятие.. обычно с натяжкой хватает времени разгребсти существующую нагрузку (и какие задачи отбросить из-за недостатка ресурса) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 12:15 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
dermama, На swaggerhub более глубокое древо API команд чем CatalogItems и DataSources, последняя применима для Shared DataSources а не для каждого отчёта для данной конкретной задачи (именно .rdl отчёты) рекомендую посмотреть ветку /Reports с более селективными: /Report() и /Report(id)/DataSources По инструменту проходящему принципы безопасников - из компилированных можно и C#/VB.NET (классом WebRequest или более новым WebClient ) разными вариантами (CLR напр.), кстати - эти языки встроены в SSIS, даже t-SQL (но если сервер может стучаться наружу то как-бы не по фэншую, даже включение этой функциональности если сеть закрытая - т.е. для внутренних сервисов) если вопрос прозрачности: из наглядных скриптовых методов - тот-же PowerShell сейчас по быстрому накидаю чего-нибудь из примеров, может в архивах сырое что осталось.. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 12:31 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
Всё есть в API документации (но там многое криво если честно - всё в стадии разработке и дополнений по возможности), покопался в сыром архиве по SSRS, на PowerShell вот так можно просмотреть все существующие ConnectionString (напр. в Shared DS его нет) из DataSources (которых на отчёт может быть несколько) где есть *local* Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
вот так скачать все .rdl (xml) отчёты (для других объектов - другая API ветка) в одну папку (по ID) для послед. обработки как xml ноды или под более примитивную текстовую замену Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9.
а вот так по полному пути (но я предпочитаю по ID т.к. как-то была проблема из-за слишком длинных путей при записи на сетевое хранилище, хотя и менее читабельно) хотя такое уже приведено выше более простым (и не совсем рекомендованным) методом через t-SQL (не факт что на сервере разрешена такая функциональность в конфигурации SQL Server-а) Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
вот так .rdl отчёт записывается на сервер (можно и развить пройдясь циклом для каждого обработанного отчёта в Out директории) Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
судя по документации REST методом можно записать и саму коллекцию DataSources (JSON) для конкретного отчёта напрямую на сервер без отдельного сохранения в дисковых папках (но это сам не делал, у нас немного другие задчи массового обслуживания SSRS инфраструктуры были) или в самих rdl через xml навигацию XPath методом SelectSingleNode с InnerXML или InnerText поменять значение ConnectionString ноды т.е. вместо REST метода PATCH на /CatalogItems(Id) - только PUT метод через /Reports(Id)/DataSources так-же зависит от SSRS версии - у меня это работает на последнем релизе Power BI Report Server ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 13:16 |
|
SQL Reporting Service замена обращениий к серверам и БД
|
|||
---|---|---|---|
#18+
vikkiv, готов поспорить, что Вы получили свои знания, которые продемонстрировали, не за пару дней, о которых я писал. А мой метод не требует никаких специальных знаний. Т.е. он эффективнее, учитывая однократность операции. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2020, 19:01 |
|
|
start [/forum/topic.php?fid=46&tid=1685410]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
127ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 322ms |
total: | 531ms |
0 / 0 |