Записи на тему: ИТ и около


Столкнулся с следующей проблемой. При переносе баз Lync Server 2013 Standard Edition у меня перестал запускаться Front End сервер.

Приведу возможные куски логов, которые вы можете обнаружить (чтобы гуглилось легче)

Log Name: Lync Server
Source: LS User Services
Date: mm/dd/yyyy hh:mm:ss AM|PM
Event ID: 32118
Task Category: (1006)
Level: Warning
Keywords: Classic
User: N/A
Computer: server01.contoso.com
Description:
SQL server cross database chaining option is disabled for either rtc or rtcdyn database. This may be caused by attaching or restoring
an existing database. Since this condition causes performance issues, database will not be acquired until the issue is resolved.

Back-end Server: server01.contoso.com\lync Database: rtc Connection string of:
driver={SQL Server Native Client 10.0};Trusted_Connection=yes;AutoTranslate=no;server=server01.contoso.com\lync;database=rtc;
Cause: Check the eventlog description.

Resolution:
Please enable cross database chaining option (using "sp_dboption '<dbname>', 'db chaining', TRUE") for both rtc and rtcdyn databases.
Once this is done, Service will automatically reconnect to the backend.

The following Error event will be logged in the Office Communications Server Event log:

Log Name: Communications Server
Source: OCS Server
Date: mm/dd/yyyy hh:mm:ss AM|PM
Event ID: 12304
Task Category: (1000)
Level: Error
Keywords: Classic
User: N/A
Computer: server01.contoso.com

Description:
The component Live Communications User Services (application: Default) reported a critical error: code C3EE7D3D (SQL server cross database chaining option is disabled for either rtc or rtcdyn database. This may be caused by attaching or restoring an existing database. Since this condition causes performance issues, service will be stopped and will not start until the problem is resolved.

Windows could not start the Office Communications Server Front-End on Local Computer. For more information review the System Event Log. If this is a non-Microsoft service, contact the service vendor, and refer to service specific error code -1007780547

Спёрто здесь: http://support.microsoft.com/kb/968100

К сожалению, все найденные способы не подходили. Использовалась SP dboption не получалось. хз почему.

Выручили две команды: (которые на просторах инета были с ошибками в названии БД и я чуть не поседел)


alter database rtc set DB_Chaining ON

alter database rtcdyn set DB_Chaining ON 

благодаря этим командам после перезагрузки сервера сервис Front End Lync Server 2013 успешно стартовал. Алиллуйа :)

P.S. на будущее при переносе баз проще воспользоваться вот этими советами: http://unifiedme.co.uk/2013/05/move-lync-2013-sql-database-location/ правда по-моему там не всё правильно :) Но уже хотя бы что-то.

Для того, чтобы узнать, сколько сейчас пользователей Lync 2013 в сети можно выполнить запрос, подключившись к экземпляру FQDNSQLServer\RTCLOCAL и выполнив запрос:


Use rtcdyn
 SELECT UserAtHost, ClientApp, EndpointId, ContactInfo FROM RegistrarEndpoint T1
 LEFT OUTER JOIN rtc..Resource T2 ON T1.OwnerId = T2.ResourceId
 WHERE IsServerSource = 0 ORDER BY UserAtHost

Во время миграции это позволит быстро оценить у всех ли всё хорошо, или какому-нибудь филиалу или региону поплохело :)

Get-CsManagementStoreReplicationStatus

При миграции с Lync 2010 на Lync 2013 столкнулся с проблемой, что после переезда роли Configuration Management Server (инстанс Microsoft SQL "RTC") по мануалу от Microsoft требовалось выполнить проверку репликации при помощи команды:

Get-CsManagementStoreReplicationStatus

однако, команда не выводила никаких результатов.

И даже после выполнения Install or Update Lync Server System, Step 2: Setup or Remove Lync Server Components ничего не менялось.

Выяснилось, что вся проблема была в том, что сервисы Lync Server Master Replicator Agent и Lync Server File Transfer Agent не были запущены.

После их запуска команда начала выдавать уже какие-то результаты :)

UpToDate           : False
ReplicaFqdn        : lync2010.domainlocal
LastStatusReport   :
LastUpdateCreation :
ProductVersion     :

UpToDate           : False
ReplicaFqdn        : lync2013.domain.local
LastStatusReport   :
LastUpdateCreation :
ProductVersion     :

А чуть позже и вообще всё стало хорошо :)

UpToDate           : True
ReplicaFqdn        : lync2010.domain.local
LastStatusReport   : 06.06.2013 10:05:40
LastUpdateCreation : 06.06.2013 10:04:25
ProductVersion     : 4.0.7577.0

UpToDate           : True
ReplicaFqdn        : lync2013.domain.local
LastStatusReport   : 06.06.2013 10:05:41
LastUpdateCreation : 06.06.2013 10:04:25
ProductVersion     : 5.0.8308.0

В итоге всё было отлично :)

Ну что же!

Начинаем активный этап по изучению  и внедрению Windows Server 2012.

На очереди SCVMM 2012 SP1. Неприятная особенность - теперь требуется самостоятельно подготавливать сервер БД, и уже не поддерживается работа SQL Express (а ведь только когда отбирают, понимаешь как было удобно :) .

И вот при попытке установить Windows SQL 2012 она завершалась ошибкой. Ничего особо внятного в логах я найти не смог. Единственное что хоть как-то помогло нагуглить решение стала вот эта запись:

Overall summary:
Final result:                  Failed: see details below
Exit code (Decimal):           -2068643839
Start time:                    2013-03-18 11:49:48
End time:                      2013-03-18 11:52:59
Requested action:              Install

Setup completed with required actions for features.
Troubleshooting information for those features:
Next step for SQLEngine:       Use the following information to resolve the error, and then try the setup process again.
Next step for SNAC_SDK:        Use the following information to resolve the error, and then try the setup process again.

Выяснилось, что во всём виновато то, что хотел как лучше, а получилось как всегда. ISO образ с дистрибутивом SQL 2012 я попросту примаунтил средствами Windows и запускал установку уже с "виртуального" диска. SQL Server насколько я теперь вспоминаю часто плохо переносит подобные извращения.

Поэтому, на дворе 2013 год, а я всё так же, по старинке должен перед началом установки Мега Сервервного продукта всё так же распаковывать его, для того, чтобы начать его установку.

А сколько ещё всего интересного впереди - страшно представить ;)

Потребовалось на работе установить на сервер Poweredge T110 II ОС Windows Server 2012. Конфигурация встроенного SATA контроллера: RAID 1.

Оказалось, что с брендованного диска, поставлявщегося с сервером установить ОС не получится. В результате разборок оказалось, что имеющийся на борту контроллер не поддерживается в ОС Windows Server 2012.

3513.s100

К счастью, добрые люди подсказали вариант решения проблемы

Читать дальше »

Приехав на работу после продолжительных полевых работ нам поступил звонок о невозможности дозвониться до абонента Lync Server 2010. Начали проверять - действительно, звонок совершается, но после 6ти секунд обрывается.

Читать дальше »

Итак, мои планы на ближайшие 3 месяца в плане развития в ИТ:
Январь: E10-001 EMC Information Storage and Management Exam Version 2
Февраль: Microsoft 70-412: Configuring Advanced Windows Server 2012 Services
Март: Microsoft 70-411: Administering Windows Server 2012

EMC экзамен сдавал тестовый, со второго раза сдал нормально, но нужно будет ещё всё равно вникать и готовиться плотно.

70-412 для меня будет очень сложный экзамен, т.к. новинок очень много, времени достаточно мало и нужно будет поднимать нормальный тестовый стенд, чтобы протестировать функционал, а не только о нём прочитать.

70-411 надеюсь будет уже не таким сложным, т.к. как мне кажется там будет много повторения, да и по пути подготовки 70-412 знаний нахватаюсь немало...

Аляулю готовиться!

Microsoft подготовил отличный документ Windows Server 2012 Licensing & Pricing в формате FAQ'a, где описываются основные животрепещущие вопросы лицензирования новой версии Windows Server 2012.

Читаем, калькулируем, покупаем :)

Cкачать FAQ можно:

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

Поэтому вашему вниманию предлагаю свой маленький FAQ, который в ближайшее время будет продолжать наполняться.

Внимание, все изменения будут происходить в моей wiki, обязательно обращайтесь туда за самой актуальной версией.

http://bafff.ru/wiki/doku.php?id=windows:lync

В блоге будет старая "замануха" :)

Читать дальше »

После достаточно длительной подготовки по написанию и тестированию скрипта по установке службы SNMP на Windows сервера в подразделениях понадобилось оценить потери бойцов, а конкретно сколько MS SQL Server'ов упало в результате моей деятельности :D В итоге на нескольких  серверах сервис MSSQLSERVER был всё же остановлен, и о причинах, почему используемый мною в скрипте workaround не помог - ещё предстоит исследовать.

Отследить требовавшиеся мне события очень просто - был известен период запуска скрипта по установке службы SNMP и требовалось отловить event'ы с вполне определённым ID'ами: 7035, 7036 источником которых является Service Control Manager, с текстом, содержающим "sql", сигнализирующие о случаях, когда в результате установки службы SNMP несмотря на все принятые меры MS SQL Server всё же прекращал свою работу.

Текст событий:
Служба "SQL Server (MSSQLSERVER)" перешла в состояние Остановлена.
Служба "SQL Server (MSSQLSERVER)" успешно отправила управляющий элемент "остановить".

Я попытался написать скрипт на Powershell, который бы находил нужные мне события. И у меня это даже получилось (как обычно, на коленке):


$user = $env:username
 $servers = gc "C:\Documents and Settings\$user\Рабочий стол\servers.txt"

$After = get-date "2/07/12 09:34"
 $Before = get-date "2/08/12 09:35"

foreach ($server in $servers)
 {
write-host "Обрабатываем" $server "`n"
$Events = get-eventlog -logname "System" -computername $server -before $before -after $After -message "*sql*"
$Events | out-gridview
$events | %{write-host $_.EventId $_.Message $_.MachineName $_.UserName, $_.TimeGenerated}
 }

Проблема была в том, что скрипт отлично и быстро выполнялся на моей локальной машине (слава SSD!), медленно на серверах и уж совсем и очень грустно на удалённых серверах, связь с которыми ведётся по весьма небыстрым каналам. Я был не вполне уверен, но было ощущение, что скрипт просто зависает. С учётом, что итоговое множество, на которых мне нужно было найти события равнялось нескольким сотням - операция была бы очень медленной и грустно. После этого я добавил в скрипт вывод даты начала и окончания сбора статистики и выяснил ну очень удручающие данные:

07.08.2012 13:58:16
 Обрабатываем test_server
 ----
 7036 Служба "SQL Server (MSSQLSERVER)" перешла в состояние "Остановлена". test_server  02.08.2012 9:36:25
 7035 Служба "SQL Server (MSSQLSERVER)" успешно отправила управляющий элемент "остановить". test_server  02.08.2012 9:36:25
 ----
 07.08.2012 14:46:24

После этого мы с коллегой вспомнили об отличной утилите под названием EventCombNT, которая помогла мне выкрутиться из этой ситуации.

В утилитку EventCombNT был загружен список целевых серверов, указана дата искомых событий с помощью меню Options -> Set Data Range, искомые ID'ы событий, источник и текст (в моём случае "sql").

Полученный итог не может не радовать:
Просмотрено записей: 7227941 (7 миллионов!)
Найдено соответствующих записей: 6 (это хорошо, чем меньше, тем лучше :)
Производительность: 2250 записей в секунду (при 50 потоках)
Итого прочитано: 1,24Gb (!)
Целевых серверов: 372
Время выполнения: 55 минут

После проделанной работы мною были сделаны некоторые выводы.

  • Массовые мероприятия, в т.ч. установки/модификации ПО, особенно могущие повлечь за собой какие-либо печальные последствия должны проходить под присмотром обученного персонала. В моём случае я был отвлечён на очередную аварию, и у меня не было возможности контролировать процесс.
  • Массовые мероприятия должны иметь подготовленные заранее инструменты мониторинга успешности, а так же отслеживания возможных проблем. В моём случае - требовалось иметь понимание и умение пользоваться соответствующими инструментами для отслеживания событий, которые позволят выполнить это наиболее эффективно. В моём случае наиболее эффективным оказался специализированный софт, в других случаях это могут быть простые (или не очень) скрипты на Powershell / VBS. Это позволит как можно быстрее отреагировать на проблемы.
  • Скрипты это клёво, без них как без рук, особенно если нет возможности найти специализированный софт. Нужно постоянно совершенствоваться в их изучении / составлении, чтобы иметь возможность как можно быстрее делать маленькие инструменты для everyday use.

 

P.S. Нашёл информацию, что командлет Get-WinEvent работает значительно быстрее, позволяя фильтровать данные на машине источнике. Но, к сожалению, он работает только для 6.0/6.1 :(

© Баф 2006 - 2013