13 марта 2010

reacreate crm 3.0 sql jobs

Привет! Давно не обновлялся :(. Как всегда дела. Вот и сейчас сижу на "работе" несмотря на солнечную погоду за окном.

Ладно теперь о делах.
Тут у одного из моих подопечных клиентов возникла необходимость обновить Microsoft CRM 3.0 до CRM 4.0 (хотя лучше бы уж дождались выхода 5-ой версии ;)). Вот... О чем я? А... ну да...
В общем чтобы не испытывать судьбу и не делать все на горячюу сделал бэкап БД и решил развернуть их копию на совем тестовом домене.
Развернул с помощью Microsoft CRM Redeployment Wizard на новом своем домене. Проверил общую функциональность и вроде проблем не выявил.
Для пушей уверенности запустил Environment Diagnostics Wizard.
И вот тут мне выдало два предупреждения:
Job ST_MSCRM.Update Contract States could not be found in the sysjobs table.
Job Start_Incremental on ST_MSCRM.ftcat_documentindex.[7.5] could not be found in the sysjobs table.

Немного поискав нашел следующую статью от Microsoft:
How to move Microsoft Dynamics CRM 3.0 SQL databases from one server to a different server that is in the same domain
http://support.microsoft.com/kb/917948
В которой в 9 пункте говориться о SQL Jobs:
Verify that the following jobs are listed in the Jobs folder:
Organization_Name.Update Contract States
MSCRM Identity Reseeding
MSCRM Index Reindexing
MSCRM Stored Procedures Priming
Start_Incremental on Organization_Name_ftcat_documentindex

Задавшись вопросом того как все таки восстановить эти Jobs в моей среде нашел KB917948 в которой был дан совет отсылавший к KB910044:
When you move Microsoft Dynamics CRM databases to a new instance of SQL Server, SQL Server jobs may not be created
в которой написано буквально следующее:
To work around this problem, you can copy the script from other SQL Server jobs in another Microsoft CRM environment. For more information about how to copy scripts from other SQL Server jobs, contact Microsoft Product Customer Support Services.

Короче обращайтесь в поддержку. Так как кейсов на данный продукт у меня нет пришлось кумекать дальше. Итогом кумеканья стало 2 варианта:
1. Вариант:
- удалить CRM 3.0
- удалить БД
- установить CRM 3.0, не в существующую, а в тестовую БД
- удалить CRM
- удалить тестовую БД
- восстановить БД с данными из бэкапа
- установить CRM 3.0 с указанием существующей БД
- изменить SQL Jobs для того чтобы они ссылались на БД с данными
2. Вариант:
- запустить скипты которые создают Jobs.

Я решил действовать по короткому варианту :).

Два Jobs можно найти в файлике:
".\sql\1.0\11 - index msdb.sql"
в дистрибутиве CRM 3.0.
Открываем его и редактируем заменяя [mscrm] на имя своей БД.
Открываем SQL выбираем msdb - new query - paste - execute.
Два Jobs есть. Осталось найти остальные.
Остальные лежат в файлике:
".\sql\2.0\MSCRM\InstallJobs.sql"
С ним поступаем так же как и с первым. Меняем на нашу БД и запускаем на SQL сервере.

Вот собственно и все. Теперь для пущей уверенности запистим Environment Diagnostics Wizard и убедимся что все ок.

Удачный Вам обновлений CRM!