User Tools

Site Tools


Sidebar


Здравствуйте!

Меня зовут Михаил!
Я системный администратор
и наполняю эту wiki,
решая разнообразные IT-задачки.

Моя специализация - виртуализация!

Я всегда готов помочь Вам
наладить IT-инфраструктуру
за скромное вознаграждение!

mike@autosys.tk
+7 (910) 911-96-23

citrix:если_пропало_подключение_к_базе_данных_xendesktop_7.6

Настройки подключения к базе в реестре прописаны для каждого сервиса и находятся тут: HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\XDservices. У каждого сервиса в папке Datastore есть ConnectionString.

SiteGuid лежит тут: HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Broker\Service\State\ConnectionLeasing

Замена админа

Замена админа если потерялись права: http://support.citrix.com/article/CTX201779
Получаем SID текущего пользователя:

wmic useraccount where name='username' get sid

Затем в PowerShell выполняем:

Asnp citrix.*
$sid = "----SID----"
$securityId = New-Object System.Security.Principal.SecurityIdentifier($sid)
$securityId.Translate([System.Security.Principal.NTAccount])

Например ситутация - сдох DDC (или кто-то отломил ему DBconnections) и надо натравить вновь установленный DDC настравить на существующую базульку.

На DDC запускаем powershell

Add-PSSnapin Citrix*

Текущее состояние подключений можно получить так:

Get-LogDataStore
Get-MonitorDataStore

Формируем строку подключения:

$cs = "Server=env3-sql2\AON;Initial Catalog=CitrixXD7;Integrated Security=True"

Тут меняем имя сервера\инстанса Server и имя базы данных Catalog. Отключаем Configuration Logging:

Set-LogSite -State Disabled
Set-MonitorConfiguration -DataCollectionEnabled $False

Затем заменяем все строки подключений на NULL:

Set-LogDBConnection -DataStore Logging -DBConnection $null
Set-MonitorDBConnection -DataStore Monitor -DBConnection $null
Set-MonitorDBConnection -DBConnection $null
Set-AcctDBConnection -DBConnection $null
Set-ProvDBConnection -DBConnection $null
Set-EnvTestDBConnection -DBConnection $null
Set-SfDBConnection -DBConnection $null
Set-HypDBConnection -DBConnection $null

Для некоторых опций нужно применить -force

Set-ConfigDBConnection -DBConnection $null -force
Set-LogDBConnection -DBConnection $null -force
Set-AdminDBConnection -DBConnection $null -force

В результате все компоненты XenDesktop будут отключены от базы данных.

На всякий случай следует проверить что DDC имеют права на SQL-сервере:

sqlcmd -S env3-sql2\AON -q "create login [2k3\DDC1$] from windows"

Тут также поправляем имя SQL-сервера\инстанса и имя домена\компа$

Теперь заново указываем строку для подключения сервисов к базе:

set-ConfigDBconnection -dbconnection $cs
set-AdminDBconnection -dbconnection $cs
set-LogDBconnection -dbconnection $cs
set-AcctDBconnection -dbconnection $cs
set-BrokerDBconnection -dbconnection $cs
set-EnvTestDBconnection -dbconnection $cs
set-HypDBconnection -dbconnection $cs
set-MonitorDBconnection -dbconnection $cs
set-ProvDBconnection -dbconnection $cs
set-SfDBconnection -dbconnection $cs
Set-LogDbConnection -DataStore logging -DbConnection $cs
Set-MonitorDbConnection -DataStore monitor -DbConnection $cs

Теперь снова включаем журнал конфигурирования:

Set-LogSite -State Enabled

И выполняем маленький тест подключения:

$testString = Get-BrokerDBConnection
Test-BrokerDBConnection $testString | fl

Теперь можно попробывать запустить Studio и проверить что получилось. Очень может быть, что система выдаст ServiceNotInSiteDB Скорее всего (как написано тут: https://discussions.citrix.com/topic/295003-broker-service-not-connecting-to-database/?p=1586659) возникло несоотвествие SID DDC, записанного в базе SID нового DDC.

Для начала нужно удалить текущие записи из базы. Получаем SID текущего контроллера и присваиваем его переменной:

sqlcmd -S .\SQLEXPRESS -d CitrixXenDesktopDB -Q 'select Sid from chb_Config.Controllers'

и присваиваем его переменной:

$sid = 'S-1-5-21...'

Дальше с помощью powershell генерируем запрос к базе, который выполнит удаление SID старого DDC из базы. При возникновении ошибок нужно с ними внимательно разбираться, поскольку дальнейшие действия могут все порушить.

$sid = 'S-1-5-....'
Get-ConfigDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Evict -SID $sid -Local > EvictDDC.sql
Get-AcctDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Evict -SID $sid -Local >> EvictDDC.sql
Get-HypDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Evict -SID $sid -Local >> EvictDDC.sql
Get-ProvDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Evict -SID $sid -Local >> EvictDDC.sql
Get-PvsVmDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Evict -SID $sid -Local >> EvictDDC.sql
Get-BrokerDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Evict -SID $sid -Local >> EvictDDC.sql
sqlcmd -S .\SQLEXPRESS -Q ':r EvictDDC.sql'

После удаления из базы SID старого DDC можно сформировать запрос, прописывающий в базу SID нового DDC:

Get-ConfigDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Instance -Local > AddDDC.sql
Get-AcctDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Instance -Local >> AddDDC.sql
Get-HypDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Instance -Local >> AddDDC.sql
Get-ProvDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Instance -Local >> AddDDC.sql
Get-PvsVmDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Instance -Local >> AddDDC.sql
Get-BrokerDBSchema -DatabaseName CitrixXenDesktopDB -ScriptType Instance -Local >> AddDDC.sql
sqlcmd -S .\SQLEXPRESS -Q ':r AddDDC.sql'

Discussion

Enter your comment. Wiki syntax is allowed:
U X O F F
 
citrix/если_пропало_подключение_к_базе_данных_xendesktop_7.6.txt · Last modified: 2018/09/18 07:18 by admin