Восстановление
системной бд MSDB с одного сервера на другой упрощает процесс перехода на новый сервер, тем
что, например, все задания службы агента SQL Server переносятся автоматом. Админам остается только в шагах заданий подкорректировать
источники данных, название нового
сервера, и тд. Но при таком переходе есть и подводные камни J
Например, вчера после такого восстановления, все не запускались пакеты SSIS из шага заданий, как на рисунке ниже:
Т.е не могли загрузиться подсистемы, которые мы видим в
списке внутри каждого задания:
Например, вчера после такого восстановления, все не запускались пакеты SSIS из шага заданий, как на рисунке ниже:
В логе агента были зафиксированы ошибки вида [125] Subsystem
'SSIS' could not be loaded (reason: 126):
Агент
SQL Server хранит путь к этим
подсистемам (файлам .dll) в таблице msdb.dbo.syssubsystems колонке
subsystem_dll :
В
данном случае названия инстансов старого и нового сервера были разные, и соответственно
пути размещения файлов тоже был разные, например,
на старом сервере было 'C:\Program Files\Microsoft SQL Server\MSSQL.1',а
на
новом
'C:\Program Files\Microsoft SQL Server\MSSQL.2'
После
восстановления msdb таблица msdb.dbo.syssubsystems заменилась данными старого сервера, и на новом сервере путь к
файлам стал не совпадать с фактическим месторасположением файлов. Отсюда и
ошибки при запуске заданий.
После
корректировки данных, и перезапуска агента SQL Server все заработало на ура J
Allow updates to system tables */
sp_configure
'allow updates',
1 RECONFIGURE WITH OVERRIDE
/* Update to correct path */
UPDATE
msdb.dbo.syssubsystems
SET
subsystem_dll =
REPLACE
(subsystem_dll,
'C:\Program
Files\Microsoft SQL Server\MSSQL.1',
C:\Program
Files\Microsoft SQL Server\MSSQL.2')
FROM
msdb.dbo.syssubsystems
WHERE
subsystem_dll LIKE
'C:\Program Files\Microsoft SQL Server\MSSQL.1%'
/* Dis-allow updates to system tables */
sp_configure
'allow updates',
0 RECONFIGURE WITH OVERRIDE
/* Verify update */
SELECT * FROM msdb.dbo.syssubsystems
0 комм.:
Отправить комментарий