понедельник, 19 ноября 2012 г.

SCCM 2012: проблема с SQL Native Client от SQL 2008 R2

В SCCM 2012 существует проблема при использовании SQL Native Client 2008 R2 на стороне сайт-сервера. Сам SCCM при установке сайт-сервера не ставит Native Client 2008 R2, а как раз ставит правильный - Native Client 2008.
В моем случае сервер для установки SCCM готовил не я сам. Уидимо кто-то решил помочь и  поставил этот компонент. И что самое интересное, SCCM работал без проблем пару недель. Можно конечно подумать что накатились обновления, но software update для этого сервера отключен и в журналах никаких признаков установки нет.

Симптомы:
1) Консоль управления не цепляется к сайту. В логах SMS-prov следующие ошибки:
*** [08001][-2146893022][Microsoft][SQL Server Native Client 10.0]SSL Provider: The target principal name is incorrect.
*~*~[08001][-2146893022][Microsoft][SQL Server Native Client 10.0]SSL Provider: The target principal name is incorrect.~~     ThreadID : 1256 , DbError: -2146893022 , Sev: 0~*~*
*** [08001][-2146893022][Microsoft][SQL Server Native Client 10.0]Client unable to establish connection
*~*~[08001][-2146893022][Microsoft][SQL Server Native Client 10.0]Client unable to establish connection   [08001][-2146893022][Microsoft][SQL Server Native Client 10.0]SSL Provider: The target principal name is incorrect.~~  ThreadID : 1256 , DbError: -2146893022 , Sev: 0~*~*
*** Failed to connect to the SQL Server.
*~*~e:\nts_sccm_release\sms\siteserver\sdk_provider\smsprov\sspobjectquery.cpp(6194) : SQL Connection attempt timed out~ SQL Error: [08001][-2146893022][Microsoft][SQL Server Native Client 10.0]Client unable to establish connection~*~*
*~*~SQL Connection attempt timed out [08001][-2146893022][Microsoft][SQL Server Native Client 10.0]Client unable to establish connection~*~*
<*><*> CANT CONNECT TO SQL, RETURNING ERROR <*><*>

2) Сервис SMS_Executive пишет следующие ошибки в лог smsexec.log:
*** [08001][-2146893022][Microsoft][SQL Server Native Client 10.0]SSL Provider: The target principal name is incorrect.
*** [08001][-2146893022][Microsoft][SQL Server Native Client 10.0]Client unable to establish connection
*** Failed to connect to the SQL Server.
CSiteControlEx::GetCurrentSiteInfo: Failed to get SQL connection
CSiteControlEx::GetMasterSCF:Failed to read site information from database, retry in 5 seconds ...

3) В системном журнале Windows генерируется множество следующих ошибок:
Source: Schannel
Event ID: 36888
The following fatal alert was generated: 43. The internal error state is 552.

Source: Schannel
Event ID: 36884
The certificate received from the remote server does not contain the expected name. It is therefore not possible to determine whether we are connecting to the correct server. The server name we were expecting is clusql.domain.com. The SSL connection request has failed. The attached data contains the server certificate.

Решение:
1) Удалить SQL Native Client от SQL 2008 R2 на сайт сервере
2) Установить SQL Native Client от SQL 2008 SP3 CU4

После этого сервис SMS_Executive начал подключаться к SQL без ошибок.

Правда появлись дополнительная проблема: сломался .Net framework 4.0. В связи с чем консоль управления начала вылетать с ошибкой:
Faulting application name: Microsoft.ConfigurationManagement.exe, version: 5.0.7711.0, time stamp: 0x4f42f40f
Faulting module name: clr.dll, version: 4.0.30319.237, time stamp: 0x4dd234a8
Exception code: 0xc0000005
Fault offset: 0x00024e38
Faulting process id: 0x748
Faulting application start time: 0x01cdc638010579f4
Faulting application path: C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\Microsoft.ConfigurationManagement.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Report Id: 410b61bf-322b-11e2-b254-005056bf4d9e

Полечилось переустановкой (Repair) Net framework 4.0.

Комментариев нет: