powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Миграция RS с 2005 на 2008
2 сообщений из 2, страница 1 из 1
Миграция RS с 2005 на 2008
    #36186973
Фотография student-uni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Вы поставили 2008 студию и перенесли репорты туда то наверняка заметите что они больше не публикуются на 2005-ом сервере.
Ошибка происходит из за изменения хмл-заголовка в рдль-файле.
При небольшом количестве репортов и при нечастых публикациях можно править рдл-Файл руками.
А можно перенести RS на SQL 2008.

И тут небольшая проблемка. У Майкрософт описано как апгрейдить на одном сервере с 2005 на 2008,
описано как переносить между серверами с 2008 на 2008, или 2005 на 2005.
Но особенности переноса с 2005 на 2008 я не нашел. (может плохо искал)

Простейший способ сохранить ключ безопасности, отцепить базу от 2005, прицепить базу на 2008, восстановить ключ.
(Как это работает на деле я не пробовал)

А что делать если нельзя отцеплять базу ?

Получилось таким образом.

Удаляем на свежеустановленном РС 2008 все что есть в базе.

Открываем Диаграмму БД 2005 и смотрим в каком порядке надо переносить таблицы так чтоб ключи создавались последовательно.

Создаем скрипт (его текст приведен ниже)

Запускаем скрипт

Получаем точную копию на 2008.

Крючков было два:
- в новой версии появилось два дополнительных поля в одной таблице
- источники данных (подключения к БД с паролями для датасетов) пришлось грохнуть и создать заново.

Вот и все. Удачи. Спасибо если кто даст более умное решение.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
DELETE FROM SERVER_DESTINATION.ReportServer.dbo.PolicyUserRoles
DELETE FROM SERVER_DESTINATION.ReportServer.dbo.Users

INSERT INTO SERVER_DESTINATION.ReportServer.dbo.Users
Select * From SERVER_SOURCE.ReportServer.dbo.Users

INSERT INTO SERVER_DESTINATION.ReportServer.dbo.Policies
Select * From SERVER_SOURCE.ReportServer.dbo.Policies
Where PolicyID not in (Select PolicyID From SERVER_DESTINATION.ReportServer.dbo.Policies)

INSERT INTO SERVER_DESTINATION.ReportServer.dbo.SecData
Select * From SERVER_SOURCE.ReportServer.dbo.SecData
Where PolicyID not in (Select PolicyID From SERVER_DESTINATION.ReportServer.dbo.SecData)

INSERT INTO SERVER_DESTINATION.ReportServer.dbo.Roles
Select * From SERVER_SOURCE.ReportServer.dbo.Roles
Where RoleID not in (Select RoleID From SERVER_DESTINATION.ReportServer.dbo.Roles)
AND RoleName Not In (Select RoleName From SERVER_DESTINATION.ReportServer.dbo.Roles)

INSERT INTO SERVER_DESTINATION.ReportServer.dbo.PolicyUserRole
Select * From SERVER_SOURCE.ReportServer.dbo.PolicyUserRole
Where UserID  in (Select UserID From SERVER_DESTINATION.ReportServer.dbo.Users)
AND PolicyID IN (Select PolicyID From SERVER_DESTINATION.ReportServer.dbo.Policies)
AND RoleID  in (Select RoleID From SERVER_DESTINATION.ReportServer.dbo.Roles)

GO

-------------------------------------------------------------------------

/* !!! Loop for 0 Return  !!! */
/*Руками повторять до тех пор пока результат не будет 0 обработанных записей*/
INSERT INTO SERVER_DESTINATION.ReportServer.dbo.[Catalog]
Select  * From SERVER_SOURCE.ReportServer.dbo.[Catalog]
Where [Path] Not In (Select [Path] From SERVER_DESTINATION.ReportServer.dbo.[Catalog])
AND CreatedByID IN (Select UserID From SERVER_DESTINATION.ReportServer.dbo.Users)
AND ItemID NOT IN (Select ItemID From SERVER_DESTINATION.ReportServer.dbo.[Catalog])
AND ParentID IN (Select ItemID From SERVER_DESTINATION.ReportServer.dbo.[Catalog])
Order By PArentID, ItemID

---------------------------------------------------------------

INSERT INTO SERVER_DESTINATION.ReportServer.dbo.DataSource
Select * From SERVER_SOURCE.ReportServer.dbo.DataSource

INSERT INTO SERVER_DESTINATION.ReportServer.dbo.Schedule
Select * From SERVER_SOURCE.ReportServer.dbo.Schedule

INSERT INTO SERVER_DESTINATION.ReportServer.dbo.ReportSchedule
Select * From SERVER_SOURCE.ReportServer.dbo.ReportSchedule

INSERT INTO SERVER_DESTINATION.ReportServer.dbo.Subscriptions
Select * From SERVER_SOURCE.ReportServer.dbo.Subscriptions


INSERT INTO SERVER_DESTINATION.ReportServer.dbo.SnapshotData
Select *,  0  as PaginationMode,  0  as ProcessingFlags From SERVER_SOURCE.ReportServer.dbo.SnapshotData

DECLARE @MachineName nvarchar( 256 )
DECLARE @InstallationID uniqueidentifier

Select @MachineName = [MachineName], @InstallationID = [InstallationID] From SERVER_DESTINATION.ReportServer.dbo.Keys

DELETE FROM SERVER_DESTINATION.ReportServer.dbo.Keys
INSERT INTO SERVER_DESTINATION.ReportServer.dbo.Keys
Select * From SERVER_SOURCE.ReportServer.dbo.Keys

UPDATE SERVER_DESTINATION.ReportServer.dbo.Keys SET  [MachineName] = @MachineName, [InstallationID] = @InstallationID Where [MachineName] = 'SERVER_SOURCE'




П.С.
возможно вам прийдется тем же макаром перенести еще некоторые таблицы,
в моем скрипте задействованы лишь те которые были у меня заполнены.
Мои пустые здесь не перечисленны.
В этом случае вам надо смотреть на диаграмму БД и по ключам определять что раньше копировать
...
Рейтинг: 0 / 0
Миграция RS с 2005 на 2008
    #36189178
Фотография student-uni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
New Version
автор
DELETE FROM SRV_2008.ReportServer.dbo.[DataSource]
DELETE FROM SRV_2008.ReportServer.dbo.[Catalog]
DELETE FROM SRV_2008.ReportServer.dbo.PolicyUserRole
DELETE FROM SRV_2008.ReportServer.dbo.Users
DELETE FROM SRV_2008.ReportServer.dbo.SecData
DELETE FROM SRV_2008.ReportServer.dbo.Roles
DELETE FROM SRV_2008.ReportServer.dbo.Policies


INSERT INTO SRV_2008.ReportServer.dbo.Users
Select * From SRV_2005.ReportServer.dbo.Users

INSERT INTO SRV_2008.ReportServer.dbo.Policies
Select * From SRV_2005.ReportServer.dbo.Policies

INSERT INTO SRV_2008.ReportServer.dbo.SecData
Select * From SRV_2005.ReportServer.dbo.SecData

INSERT INTO SRV_2008.ReportServer.dbo.Roles
Select * From SRV_2005.ReportServer.dbo.Roles

INSERT INTO SRV_2008.ReportServer.dbo.PolicyUserRole
Select * From SRV_2005.ReportServer.dbo.PolicyUserRole

INSERT INTO SRV_2008.ReportServer.dbo.[Catalog]
Select * From SRV_2005.ReportServer.dbo.[Catalog]

INSERT INTO SRV_2008.ReportServer.dbo.DataSource
Select * From SRV_2005.ReportServer.dbo.DataSource

INSERT INTO SRV_2008.ReportServer.dbo.Schedule
Select * From SRV_2005.ReportServer.dbo.Schedule

INSERT INTO SRV_2008.ReportServer.dbo.ReportSchedule
Select * From SRV_2005.ReportServer.dbo.ReportSchedule

INSERT INTO SRV_2008.ReportServer.dbo.Subscriptions
Select * From SRV_2005.ReportServer.dbo.Subscriptions

DELETE FROM SRV_2008.ReportServer.dbo.SnapshotData

INSERT INTO SRV_2008.ReportServer.dbo.SnapshotData
Select *, 0 as PaginationMode, 0 as ProcessingFlags
From SRV_2005.ReportServer.dbo.SnapshotData

DELETE FROM SRV_2008.ReportServer.dbo.Keys
INSERT INTO SRV_2008.ReportServer.dbo.Keys
Select * From SRV_2005.ReportServer.dbo.Keys


DECLARE @MachineName nvarchar(256)

Select @MachineName = [MachineName] From SRV_2008.ReportServer.dbo.Keys

INSERT INTO SRV_2008.ReportServer.dbo.Keys
Select * From SRV_2005.ReportServer.dbo.Keys

UPDATE SRV_2008.ReportServer.dbo.Keys SET [MachineName] = @MachineName

DELETE FROM SRV_2008.ReportServer.dbo.ConfigurationInfo
INSERT INTO SRV_2008.ReportServer.dbo.ConfigurationInfo
Select * From SRV_2005.ReportServer.dbo.ConfigurationInfo

DELETE FROM SRV_2008.ReportServer.dbo.ChunkData
INSERT INTO SRV_2008.ReportServer.dbo.ChunkData
Select * From SRV_2005.ReportServer.dbo.ChunkData





Then 2008 in Configuration Manager Erase Key and ReMake all DataSources.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Миграция RS с 2005 на 2008
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]