Расширенная функциональность
22
Окт
10

Лучшая практика применения обновлений Microsoft CRM 4.0

Вы, возможно, обратили внимание, что обновления для Microsoft CRM (т.н. Update Rollups) выпускаются на регулярной основе каждые 2 месяца (начиная с Update Rollup 2). Это намного чаще чем предыдущие выпуски обновлений (вышедшие через 6 и 9 месяцев, соответственно, после начала продаж MS CRM 4.0).
В основном есть три стратегии применения обновлений:

  1. Применение Update Rollup только при необходимости исправить какие-либо проблемы/ ошибки. Т.е. согласно принципу «Не стоить чинить то, что и так работает». Требует наименьшего администрирования, но может привести к остановки работы системы, вызванными проблемами/ошибками CRM, которые уже исправлены в Update Rollup;
  2. Применение каждого Update Rollup после выпуска. Требует большего усилия административного персоналя для обновления CRM Server и всех CRM Outlook Clients после каждого выпуска Update Rollup. Однако, это предлагает самое высокое предотвращение проблем/ошибок CRM, которые решены Update Rollup;
  3. Примените Update Rollup каждые 4, 5, или 6 месяцев. Хороший баланс между административным ресурсом и предотвращения риска из-за проблем/ошибок CRM, которые решены в Update Rollup. Что касается цикла обновления – 4, 5, или 6 месяцев – это на Ваше усмотрение.

Некоторые советы по развертыванию Update Rollups:

  • Многие исправления входящие в Update Rollup начинаются со слов «После того как Вы поставили предыдущий ролап…»… вообщем пошло-поехало 🙂 . Отсюда мораль: всегда резервируйте свою CRM систему прежде чем накатить Update Rollup. Если у Вас есть тестовая среда (лучше бы была 🙂 ), примените Update Rollup сначала на ней;
  • Подождите по крайней мере две недели после выпуска Update Rollup прежде, чем применить его. Точно так же, как любое другое программное обеспечение, Update Rollup может само содержать некоторые ошибки. Были некоторые Update Rollup в прошлом, которые были выпущены повторно из-за содержащихся в них ошибок. Если такое случилось, то стучитесь в службу поддержки Microsoft CRM для немедленного разрешения ситуации. И если бы Вы подождали две недели, то вероятность того, что для вашей проблемы/ошибки уже найдено решение (хотя бы временное) сильно повышается. Резюме: не применяйте Update Rollup в продуктивной среде сразу же после выхода, если он не устраняет определенную Вашу проблему/ошибку;
  • Не обязательно применять обновления сразу и для CRM Server’а и для CRM Outlook Client’а. Но настоятельно рекомендуется, чтобы они оба были применены одновременно, чтобы получить последние исправления во всей среде MS CRM (и Server и Outlook Client’ы);
  • У большинства предприятий нет большого количества пользователей CRM, но если у Вас есть, тогда Вам стоит изучить автоматические обновление CRM Outlook клиента, чтобы экономить время (также в Implementation Guide есть раздел «Automatically update Microsoft Dynamics CRM for Outlook»);
  • Что делать если Вы столкнулись с ошибкой/проблемой и еще не применили последний Update Rollup: откройте инцидент в службе поддержки MS CRM через CustomerSource. И если ваша проблема это ошибка программы, а не стандартный «функционал» или пользовательская ошибка, то тогда Вам ее решение ничего не будет стоить, и Вы получите решение от инженера службы поддержки CRM (либо примените последний Update Rollup, либо Hot Fix, либо временное решение).

П.С. Применять нужно только последний ролап, т.к. он содержит в себе все исправления предыдущих!

Комментарии (10)
  • Степан 22.10.2009

    А где можно подтвердить информацию что нужно ставить только последний Rollup?

  • slivka_83 22.10.2009

    Это написано в каждом ролапе (например в нотке по седьмому):
    http://support.microsoft.com/?kbid=971782

    цитирую:
    Update Rollup 7 is a cumulative update rollup that includes all the fixes for the issues that are documented in Update Rollup 1, in Update Rollup 2, in Update Rollup 3, in Update Rollup 4, in Update Rollup 5, and in Update Rollup 6.

  • Андрей 22.10.2009

    Занимаюсь переносом CRM 4.0 + SQL2008 с одного Win2008 R2 сервера на другой внутри одного домена. При чем сервер-источник рядовой сервер, а сервер-приемник 2-й контроллер домена. При импорте организации в Deployment manager на новом сервере было предупреждение (warning) о том, что базы разных версий. На CRM-источник накачены 9 и 10 rollup, на CRM-приемник 12. Я полагаю, что предупреждение как раз об этом. Поэтому я пытаюсь установить 12 rollup на CRM-источник, после чего сниму новые бакапы и надеюсь, что залью их на новый сервер. Но! Я не могу установить 12 rollup (к слову и 21 тоже, что делал для проверки). Мне в сообщает следующее:

    »
    Host CRMSRV.MSCRMAsyncService.c571956e-c81e-4445-b681-396c56db12eb: a config database error occured. Exception: System.Data.SqlClient.SqlException: При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения. (provider: Поставщик TCP, error: 0 — Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение.)
    в System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
    в System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
    в System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
    в System.Data.SqlClient.SqlConnection.Open()
    в Microsoft.Crm.CrmDbConnection.Open()
    в Microsoft.Crm.Asynchronous.JobDataAccess.RetrieveSqlServerName(Guid orgId)
    в Microsoft.Crm.Asynchronous.JobDataAccess.SelectJob(DateTime startCycleTime)»

    Этот же текст и при попытке установить 21 Rollup. На сервер я захожу по RDP доменным админом. Никаких проблем с запуском SQL SMStudio 2008 нет. Мои посики в интернете дают один скудный ответ, типа прав не хватает для соединения с сервером. В свойствах сервера галка разрешить удаленное подключение стоит. Rollup запускаю от имени администратора из контекстного меню. Не знаю в чем и дело!
    Другой вариант, на новом сервере переустановить CRM и накатить 10 rollup как на старом проблемном и переносить базы, и о старом CRM забыть. Но как-то это нехорошо.

  • slivka_83 22.10.2009

    Добрый день.

    Сам с такой ошибкой никогда не сталкивался. Кроме как переставить целевую систему ничего придумать не могу.

    З.Ы. бэкапы на исходной системе не откатывали? 🙂

  • Андрей 22.10.2009

    Спасибо за оперативный ответ, я тут со своей проблемой головную боль заработал себе — наобещал заказчику, что все просто (в теории-то это так и есть), а уже не первую ночь бьюсь с переносом, постоянно какие-то грабли.
    —-
    Совет, как я понял, состоит откатить все состояние системы, а не просто бакап CRM, правильно? Бакапов состояния системы все равно нет. Есть только sql-бакапы баз CRM.
    —-
    У меня глобальная задача перенести CRM на новый аппаратный сервер, т.к. старый медленный. В общем, перенести и забыть старый, отключить.
    —-
    Вот. Но сегодня постараюсь проверить следующее. В поисках решений своих проблем натолкнулся на совет глянуть в ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM
    Так вот, в этой ветке у меня на проблемном описываемом сервере-источнике есть параметры:

    «database»=»Provider=SQLOLEDB;Data Source=CRMSRV\\TEST;Initial Catalog=TEST_MSCRM;Integrated Security=SSPI»

    «metabase»=»Provider=SQLOLEDB;Data Source=CRMSRV\\TEST;Initial Catalog=TEST_MSCRM;Integrated Security=SSPI»

    Так вот CRMSRV\\TEST и соответсвенно TEST_MSCRM — это экзмепляр sql-сервера (надеюсь что я правильно использую терминологию) и база в нем, которые отключены в сервисах системы, к ним нельзя приконнектиться, пока не запустишь через сервисы. Рабочий сервер и база имеют другое имя. Видимо, изначально были созданы сервер и база с названием TEST, на него установили CRM, накатили rollup’ы, и только потом создали рабочие сервер и базу, а тестовый отключили, а удалять не стали.
    Другимми словами, rollup пытается коннектиться к серверу указанному именно в этих ключах, но сервер-то заглушен, база соответственно тоже недоступна, поэтому установщик rollup’а и не может ничего сделать. Т.е. для проверки моего предположения либо стартовать TEST-экземпляр sql-сервера, либо исправлять эти ключи, итолько потом накатывать rollup. Уж не знаю, что и страшнее-опаснее-правильнее 🙂 Что посоветуете, есть логика в моих догадках? С CRM ранее никогда не сталкивался, только с SQL.

  • Андрей 22.10.2009

    #3
    В общем, мои предположения в предыдущем посте оказались верны. Я стартанул TEST-экземпляр sql-сервера, после чего 12 rollup нормально установился. После чего и при импорте организации на сервере-приемнике не стало предупреждать, что базы разных версий.
    Но главную задачу я так и не решил. У меня зависает Deployment Manager либо при ручном маппинге пользователей (после выбора пользователя из списка пользователей домена и нажатия ОК), таким образом до старта процесса маппинга я даже не дохожу. Либо когда я делаю авто-маппинг (при этом меня предупреждают, что есть проблемы с маппингом), потом стартую непосредственно процесс импорта. После завершения которого мне сообщают, что не все ок. Далее делаю операцию «установить организацию по-умолчанию» над моей перенесенной оргаинзацией (ну чтобы ею была не та, что создана при установке CRM на сервере-приемнике), после чего Depl.Man-r висит, а статус моей импортируемой организации есть pending. В итоге DepMan-r могу выубить только с диспетчере задач. После чего в Depl.man-r остается только орг-я созданная при установке CRM, а моей импортируемой нет. В логах системы следующее:
    —-
    Невозможно найти индексную запись в индексе с идентификатором 1 таблицы 1724585232, в базе данных «BOX_MSCRM». Указанный индекс поврежден, или есть проблема с текущим планом обновлений. Запустите программу DBCC CHECKDB или DBCC CHECKTABLE. Если проблема не устранится, свяжитесь со службой поддержки продукта.
    Источник MSSQL$CRMSQLSERVER
    Код 8646
    —-
    и

    «Import Organization» failed to complete.
    Источник MSCRMDeployment
    Код 19726

    Здесь BOX_MSCRM — это база с сервера-источника, база созданная на сервере-приемнике называется BOX2_MSCRM (организация соответственно BOX2).
    Буду рыть по кодам ошибок и смотреть что такое «DBCC CHECKDB или DBCC CHECKTABLE». Ну и надеяться, что мне кто-нибудь что-нибудь подскажет, как воевать дальше.

  • Андрей 22.10.2009

    В общем, так и оказалось как предполагал, чтобы установился rollup в моем случае с двумя экземплярами sql-серверов (один остановлен, второй работает), я стартанул вручную все сервисы SQL с названием TEST (сервер, агент и прочее).

  • дмитрий 22.10.2009

    Не подскажете, а что именно нужно бэкапить перед установкой ролапов? какие-то отдельные файлы (папки) или полностью весь сервер?

  • slivka_83 22.10.2009

    Как минимум бэкап баз данных CRM. Можно еще и файлы CRM скопировать на всякий случай…

  • Матвей 22.10.2009

    Как и в случае Андрея, аналогичная проблема просто замучила. Вечное подвисание, разве это работа. А этот код ошибки 19726 ну просто достал, не пойму что делаю не так??? В партнерской компании работают с EasyWork24, уже начали шутки про меня сочинять. Уже дело принципа для меня разобраться. Есть прямые линки по кодам ошибок, поделитесь

*

code