Ошибка при обновлении до версии Operations Manager 2012 R2

Многие организации сейчас переходят на версию Operations Manager 2012 R2. В связи с этим, хотелось бы рассказать про одну потенциальную проблему. В целом, процесс миграции хорошо документирован на TechNet (https://technet.microsoft.com/en-us/library/dn249707.aspx), а также существуют примеры с подробным описанием (например, https://thoughtsonopsmgr.blogspot.nl/2013/10/my-personal-upgrade-experiences-from.html).

При попытке обновления одной из групп управления версии 2012 SP1 до версии 2012 R2 мы столкнулись с ошибкой на этапе обновления операционной базы данных (Operational Database). При просмотре лог файла, на этапе выполнения скриптов для базы данных, можно обнаружить следующие строчки:

[XX:XX:XX]: Error: :DB operations failed with SQL error 468: Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Cyrillic_General_CI_AS" in the equal to operation.
: Threw Exception.Type: System.Data.SqlClient.SqlException, Exception Error Code: 0x80131904, Exception.Message: Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Cyrillic_General_CI_AS" in the equal to operation.

Очевидно, что ошибка возникает в том случае, когда на СУБД SQL Server используется Collation отличный от Collation используемый в базе данных (в данном примере, конфликт между Cyrillic_General_CI_AS и SQL_Latin1_General_CP1_CI_AS). Данная проблема достаточно типичная для России - большинство экземпляров SQL Server устанавливаются с Collation со значением Cyrillic_General_CI_AS, а при установке Operations Manager, базы данных получают стандартный Collation  со значением SQL_Latin1_General_CP1_CI_AS.  Чтобы избежать этой ситуации, необходимо убедиться, что перед миграцией все базы данных Operations Manager, а также экземпляр SQL имели единый Collation, с которым обновление производится успешно - SQL_Latin1_General_CP1_CI_AS.

В случае, если вы уже видите ошибку, можно использовать следующий план действий:

  1. Восстановить базу данных Operations Manager из резервной копии (по состоянию до момента миграции)
  2. Восстановить сервер управления версии 2012 SP1  (так как в ходе обновления, он полностью удаляется)
  3. Выполнить процедуру изменения Collation для СУБД
  4. Выполнить повторное обновление до версии 2012 R2

Надеемся, что в остальном, обновление пройдет без проблем. В следующей статье, мы обязательно подробно опишем процесс смены Collation, так как эта операция пользуется определённой популярностью и имеет ряд особенностей при работе с Operations Manager. Следите за обновлениями.

P.S. Не смотря на официальную поддержку набора значений Collation, есть ряд причин, по которым мы всё-таки рекомендуем использовать значение SQL_Latin1_General_CP1_CI_AS (https://thoughtsonopsmgr.blogspot.ru/2012/09/om12-and-sql-collation-settings-only.html).

 

Данная статья носит информационный характер, ссылки на веб-сайты предоставляются для удобства пользователей. Корпорация Майкрософт не несетникакой ответственности за содержание веб-сайтов, не предоставляет никаких гарантий относительно точности, полноты или законности их содержания, ссылки на которые используются в данной статье. Ссылка на внешний узел не подразумевает одобрения мнений, информации или продукции представленной на таких веб-сайтах.