Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Бывало ли так, что вы проходили установку SQL Server, нажимая одни и те же кнопки, вводили одни и те же данные и ни разу не задумавшись об этом? Установка завершена, но вы забыли указать группу DBA в роли sysadmin. Затем вам пришлось выполнить следующие действия:
- Перейдите в однопользовательский режим.
- Добавьте соответствующих пользователей или групп.
- Верните SQL Server в многопользовательский режим.
- Тест.
Еще хуже то, что сейчас пошатнулась уверенность в целой системе. "Что еще я забыл?" Вы можете спросить себя.
Узнайте больше о PowerShell Desired State Configuration (DSC). С помощью DSC вы создадите один шаблон конфигурации, который можно повторно использовать более сотен и тысяч серверов. В зависимости от сборки может потребоваться настроить несколько параметров установки. Но это не важная проблема, так как вы можете сохранить все стандартные параметры. Это исключает возможность того, что вы забудете ввести важный параметр.
В этой статье рассматривается начальная настройка автономного экземпляра SQL Server 2017 в Windows Server 2016 с помощью ресурса SqlServerDsc DSC. Предварительные знания о DSC полезны, так как мы не будем изучать, как работает DSC.
Заметка
Эта статья относится к PowerShell 5.1, которая является версией PowerShell по умолчанию, установленной с Windows Server 2016, 2019 и 2022.
Для этого пошагового руководства требуются следующие элементы:
- Компьютер под управлением Windows Server 2016.
- Установочный носитель SQL Server 2017.
- Ресурс SqlServerDsc DSC.
Необходимые условия
В большинстве случаев DSC используется для обработки предварительных требований. Но для целей этой демонстрации мы обрабатываем предварительные требования вручную.
Установка ресурса DSC SqlServerDsc
Загрузите ресурс SqlServerDsc DSC из галереи PowerShell с помощью командлета Install-Module.
Заметка
Убедитесь, что PowerShell запущен в режиме администратора, чтобы установить модуль.
Install-Module -Name SqlServerDsc
Получение установочного носителя SQL Server 2017
Скачайте установочный носитель SQL Server 2017 на сервер. Мы скачали SQL Server 2017 Enterprise из подписки Visual Studio и скопировали ISO в C:\en_sql_server_2017_enterprise_x64_dvd_11293666.iso
.
Теперь ISO-код должен быть извлечен в каталог:
New-Item -Path C:\SQL2017 -ItemType Directory
$mountResult = Mount-DiskImage -ImagePath 'C:\en_sql_server_2017_enterprise_x64_dvd_11293666.iso' -PassThru
$volumeInfo = $mountResult | Get-Volume
$driveInfo = Get-PSDrive -Name $volumeInfo.DriveLetter
Copy-Item -Path ( Join-Path -Path $driveInfo.Root -ChildPath '*' ) -Destination C:\SQL2017\ -Recurse
Dismount-DiskImage -ImagePath 'C:\en_sql_server_2017_enterprise_x64_dvd_11293666.iso'
Создание конфигурации
Конфигурация
Создайте функцию конфигурации, которая будет вызываться для генерации документов формата управляемых объектов (MOF) .
Configuration SQLInstall
{...}
Модули
Импортируйте модули в текущий сеанс. Эти модули сообщают документу конфигурации, как создать документы MOF. Они также сообщают подсистеме DSC, как применить документы MOF к серверу:
Import-DscResource -ModuleName SqlServerDsc
Ресурсы
Платформа .NET Framework
SQL Server использует платформу .NET Framework. Поэтому перед установкой SQL Server необходимо убедиться, что он установлен. Ресурс WindowsFeature используется для установки компонента Net-Framework-45-Core Windows:
WindowsFeature 'NetFramework45'
{
Name = 'Net-Framework-45-Core'
Ensure = 'Present'
}
SqlSetup
Ресурс SqlSetup используется для того, чтобы сообщить DSC, как установить SQL Server. Параметры, необходимые для базовой установки, приведены следующим образом:
- имя_экземпляра. Имя экземпляра. Используйте MSSQLSERVER для экземпляра по умолчанию.
- функции. Функции для установки. В этом примере мы устанавливаем только функцию SQLEngine.
-
SourcePath. Путь к носителю установки SQL. В этом примере мы храним установочный носитель SQL в
C:\SQL2017
. Сетевой ресурс может свести к минимуму занимаемое пространство на сервере. - SQLSysAdminAccounts. Пользователи или группы, которые будут являться членами роли sysadmin. В этом примере мы предоставим локальной группе администраторов доступ sysadmin.
Заметка
Мы не рекомендуем использовать эту конфигурацию в среде с высоким уровнем безопасности.
Полный список и описание параметров, доступных в SqlSetup, доступны в репозитории SqlServerDsc GitHub.
Ресурс sqlSetup устанавливает только SQL Server и не поддерживать применяемые параметры. Примером является то, что SQLSysAdminAccounts указываются во время установки. Администратор может добавлять или удалять входы в роль sysadmin. Но это не повлияет на ресурс SqlSetup . Если вы хотите, чтобы DSC соблюдал членство в роли sysadmin, используйте ресурс SqlServerRole.
Завершите конфигурацию
Configuration SQLInstall
{
Import-DscResource -ModuleName SqlServerDsc
node localhost
{
WindowsFeature 'NetFramework45'
{
Name = 'NET-Framework-45-Core'
Ensure = 'Present'
}
SqlSetup 'InstallDefaultInstance'
{
InstanceName = 'MSSQLSERVER'
Features = 'SQLENGINE'
SourcePath = 'C:\SQL2017'
SQLSysAdminAccounts = @('Administrators')
DependsOn = '[WindowsFeature]NetFramework45'
}
}
}
Сборка и развертывание
Компиляция конфигурации
Запустите скрипт конфигурации с помощью команды "dot source":
. .\SQLInstallConfiguration.ps1
Запустите функцию конфигурации:
SQLInstall
Каталог с именем SQLInstall создается в рабочем каталоге. Он содержит файл с именем localhost.mof. Изучите содержимое MOF, в котором показана скомпилированная конфигурация DSC.
Развертывание конфигурации
Чтобы запустить развертывание DSC SQL Server, вызовите командлет Start-DscConfiguration. Следующие параметры предоставляются командлету:
-
пути. Путь к папке, содержащей документы MOF для развертывания. Примером является
C:\SQLInstall
. - Ожидание. Дождитесь завершения задания конфигурации.
- Принудительное. Переопределите все существующие конфигурации DSC.
- подробные. Отображение подробных выходных данных. Это полезно при первой отправке конфигурации, так как это помогает в устранении неполадок.
Start-DscConfiguration -Path C:\SQLInstall -Wait -Force -Verbose
По мере применения конфигурации подробные выходные данные показывают, что происходит. Если на экране не возникают ошибки (красный текст), то, когда на экране появляется операция 'Invoke CimMethod' завершена, SQL Server должен быть установлен.
Проверка установки
DSC
Командлеты Test-DscConfiguration могут определить, соответствует ли требуемому состоянию текущее состояние сервера. В этом случае это установка SQL Server. Результат Test-DscConfiguration должен быть True:
PS C:\> Test-DscConfiguration
True
Услуги
Список служб теперь возвращает службы SQL Server:
PS C:\> Get-Service -Name *SQL*
Status Name DisplayName
------ ---- -----------
Running MSSQLSERVER SQL Server (MSSQLSERVER)
Stopped SQLBrowser SQL Server Browser
Running SQLSERVERAGENT SQL Server Agent (MSSQLSERVER)
Running SQLTELEMETRY SQL Server CEIP service (MSSQLSERVER)
Running SQLWriter SQL Server VSS Writer
SQL Server
PS C:\> & sqlcmd -S $env:COMPUTERNAME
1> SELECT @@SERVERNAME
2> GO
1> quit