Назад | Перейти на главную страницу

Высокая доступность посредника подключений RDS не может подключиться к базе данных

Сценарий

Вы хотите настроить посредник подключений служб удаленных рабочих столов в режиме высокой доступности, используя (как минимум) Windows Server 2016.

Вы выполнили и проверили все предварительные условия:

Вы начинаете настройку высокой доступности с помощью мастера:

или через Powershell:

Set-RDConnectionBrokerHighAvailability `
    -ClientAccessName "rds.contoso.com" `
    -DatabaseConnectionString "DRIVER=SQL Server Native Client 11.0;SERVER=db.contoso.com;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=rdscbha"

Вы опускаете «Папку для хранения базы данных» или -DatabaseFilePath потому что ну это по желанию и ваш MSSQL уже настроен на то, где по умолчанию хранить новые базы данных.

Проблема

В графическом интерфейсе появляется следующее сообщение об ошибке:

или следующая ошибка в PowerShell:

The database specified in the connection string DRIVER=SQL Server Native Client 11.0;SERVER=db.contoso.com;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=master is not available from the RD Connection Broker server RDS-01.CONTOSO.COM. Ensure that the database server is available on the network, the SQL Server Native Client is installed on all RD Connection Broker servers, and the computer accounts of the RD Connection Broker servers are members of the RDS Management Servers group on the database server.
    + CategoryInfo          : NotSpecified: (:) [Write-Error], RDManagementException
    + FullyQualifiedErrorId : SetRdmsHighAvailability,Microsoft.PowerShell.Commands.WriteErrorCommand
    + PSComputerName        : localhost

Диагностика

Вы действительно уверены буквально все в порядке. Вы можете запустить PowerShell как SYSTEM пользователь, использующий psexec -is powershell и создайте базу данных по своему усмотрению, используя инструменты PowerShell SQL и соответствующий драйвер.

Ничего страшного.

Хотя одно странно. Вы проверяете свой брандмауэр с помощью мастера графического интерфейса или команды PowerShell и видите абсолютно никакой попытки подключения к SQL серверу.

В чем дело?

Несмотря на то, что Microsoft утверждает в пользовательском интерфейсе или команде PowerShell ...

... путь к базе данных не является обязательным!

Ага. Как только вы добавите путь к базе данных, все начнет работать!

Волшебным образом, если вы укажете только путь к базе данных, например:

C:\ClusterStorage\SQL Data\MSSQL13.MSSQLSERVER\MSSQL\DATA

если ваши журналы имеют другой путь по умолчанию, будет создана вновь созданная база данных правильно:

C:\ClusterStorage\SQL Log\MSSQL13.MSSQLSERVER\MSSQL\DATA