Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server на виртуальной машине Azure
В этом руководстве рассматриваются варианты использования PowerShell для создания SQL Server на виртуальной машине Azure. Упрощенный пример Azure PowerShell, основанный на значениях по умолчанию, см. краткое руководство по SQL Server на виртуальной машине Azure с помощью PowerShell, или полный скрипт в Создание виртуальной машины SQL Server с помощью скрипта PowerShell.
Предварительные условия
Чтобы завершить работу с этим руководством, необходимо следующее:
- Подписка Azure. Если у вас нет подписки Azure, создайте учетную запись free перед началом работы.
- Последняя версия Azure PowerShell
Примечание.
В этой статье используется модуль Azure Az PowerShell, который является рекомендуемым модулем PowerShell для взаимодействия с Azure. Сведения о начале работы с модулем Az PowerShell см. в статье Install Azure PowerShell. Сведения о миграции в модуль Az PowerShell см. в статье Migrate Azure PowerShell из AzureRM в Az.
Определение переменных
Чтобы повторно использовать значения и упростить создание скриптов, начните с определения количества переменных. Изменяйте значения параметров по своему усмотрению, но учитывайте при этом ограничения именования, связанные с длиной имени и специальными знаками.
Начните с определения параметров, используемых в скрипте, таких как расположение, имя группы ресурсов, образ SQL Server и учетная запись хранения, которую вы хотите использовать, а также свойства сети и виртуальной машины.
Расположение и группа ресурсов
Определите область данных, группу ресурсов и подписку, в которой необходимо создать виртуальную машину SQL Server и связанные ресурсы.
Внесите изменения и выполните эти командлеты, чтобы инициализировать эти переменные.
$SubscriptionId = "<Enter Subscription ID>"
$Location = "<Enter Location>"
$ResourceGroupName = "<Enter Resource Group Name>"
$userName = "<Enter User Name for the virtual machine"
Свойства хранилища
Определите учетную запись хранения и тип хранилища для виртуальной машины.
Измените по своему усмотрению, а затем выполните следующий командлет, чтобы инициализировать переменные. Для рабочих нагрузок рекомендуется использовать SSD класса Premium .
$StorageName = "sqlvm" + "storage"
$StorageSku = "Premium_LRS"
Примечание.
Имя учетной записи хранения должно быть от 3 до 24 символов длиной и использовать только цифры и буквы нижнего регистра.
Свойства сети
Определите свойства, используемые для сети на виртуальной машине.
- Сетевой интерфейс
- метод распределения TCP/IP;
- имя виртуальной сети;
- имя виртуальной подсети;
- диапазон IP-адресов для виртуальной сети;
- диапазон IP-адресов для подсети;
- Метка общедоступного доменного имени
Измените по своему усмотрению, а затем выполните этот командлет, чтобы инициализировать переменные.
$InterfaceName = $ResourceGroupName + "ServerInterface"
$NsgName = $ResourceGroupName + "nsg"
$TCPIPAllocationMethod = "Dynamic"
$VNetName = $ResourceGroupName + "VNet"
$SubnetName = "Default"
$VNetAddressPrefix = "10.0.0.0/16"
$VNetSubnetAddressPrefix = "10.0.0.0/24"
$DomainName = $ResourceGroupName
Свойства виртуальной машины
Задайте следующие свойства.
- Имя виртуальной машины
- Имя компьютера
- размер виртуальной машины;
- имя диска операционной системы для виртуальной машины.
Измените по своему усмотрению, а затем выполните этот командлет, чтобы инициализировать переменные.
$VMName = $ResourceGroupName + "VM"
$ComputerName = $ResourceGroupName + "Server"
$VMSize = "Standard_DS13"
$OSDiskName = $VMName + "OSDisk"
Выберите образ SQL Server
Можно развернуть старый образ SQL Server, который недоступен на портале Azure с помощью PowerShell.
Используйте следующие переменные, чтобы определить образ SQL Server, используемый для виртуальной машины.
Перечислите все предложения образов SQL Server с помощью команды Get-AzVMImageOffer, чтобы указать доступные в данный момент образы на портале Azure, а также более старые образы, которые можно развернуть только с помощью PowerShell.
Get-AzVMImageOffer -Location $Location -Publisher 'MicrosoftSQLServer'Примечание.
SQL Server 2012 и SQL Server 2014 не поддерживаются и больше не доступны в Azure Marketplace.
Перечислите доступные выпуски для вашего предложения, используя Get-AzVMImageSku.
Get-AzVMImageSku -Location $Location -Publisher 'MicrosoftSQLServer' -Offer $OfferName | Select Skus
В этом руководстве используйте версию для разработчиков SQL Server 2022 (SQLDEV-GEN2) на Windows Server 2022. Выпуск Developer бесплатно лицензирован для тестирования и разработки, и вы оплачиваете только затраты на запуск виртуальной машины:
$OfferName = "SQL2022-WS2022"
$PublisherName = "MicrosoftSQLServer"
$Version = "latest"
$Sku = "SQLDEV-GEN2"
$License = 'PAYG'
# Define a credential object
$SecurePassword = ConvertTo-SecureString '<strong password>' `
-AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ($userName, $securePassword)
Создать группу ресурсов
Откройте PowerShell и установите доступ к учетной записи Azure, выполнив команду Connect-AzAccount и задайте контекст подписки Set-AzContext. По запросу введите свои учетные данные. Используйте ту же электронную почту и пароль, которые вы используете для входа на портал Azure.
После установки контекста подписки создается первый объект, который вы создаете, — это группа ресурсов. Используйте команду Connect-AzAccount для подключения к Azure и задайте контекст подписки с Set-AzContext. Используйте командлет New-AzResourceGroup для создания группы ресурсов Azure и ее ресурсов. Укажите переменные, инициализированные ранее для имени группы ресурсов и расположения.
Выполните этот командлет, чтобы подключиться к Azure, установить контекст подписки и создать новую группу ресурсов:
# Set subscription context
Connect-AzAccount
$subscriptionContextParams = @{
SubscriptionId = $SubscriptionId
}
Set-AzContext @subscriptionContextParams
# Create a resource group
$resourceGroupParams = @{
Name = $resourceGroupName
Location = $Location
Tag = @{Owner="SQLDocs-Samples"}
}
$resourceGroup = New-AzResourceGroup @resourceGroupParams
Создание учетной записи хранилища
Для виртуальной машины требуются ресурсы хранилища для диска операционной системы и для SQL Server файлов данных и журналов. Для упрощения создайте один диск для обоих. Дополнительные диски можно подключить позже с помощью командлета New-AzDisk, чтобы разместить файлы данных и журналов SQL Server на выделенных дисках. Чтобы создать стандартную учетную запись хранения в новой группе ресурсов, используйте командлет New-AzStorageAccount. Укажите ранее инициализированные переменные для имени учетной записи хранения, названия SKU хранилища и местоположения.
Выполните этот командлет, чтобы создать новую учетную запись хранения:
# Create storage account
$StorageAccount = New-AzStorageAccount -ResourceGroupName $ResourceGroupName `
-Name $StorageName -SkuName $StorageSku `
-Kind "Storage" -Location $Location
Совет
Создание учетной записи хранения может занять несколько минут.
Создание сетевых ресурсов
Виртуальной машине нужны сетевые ресурсы для подключения к сети.
- Каждой виртуальной машине требуется виртуальная сеть.
- Для виртуальной сети следует определить по крайней мере одну подсеть.
- Для сетевого интерфейса следует определить общедоступный или частный IP-адрес.
Создание конфигурации подсети в виртуальной сети
Сначала создайте конфигурацию подсети для виртуальной сети. В рамках этого руководства мы создадим подсеть по умолчанию, используя командлет New-AzVirtualNetworkSubnetConfig. Укажите переменные, инициализированные ранее для имени подсети и префикса адреса.
Примечание.
Выполнив этот командлет, можно определить дополнительные свойства конфигурации подсети виртуальной сети. Однако это выходит за рамки данного руководства.
Выполните следующий командлет, чтобы создать конфигурацию виртуальной подсети.
# Create a subnet configuration
$SubnetConfig = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $VNetSubnetAddressPrefix
Создание виртуальной сети
Далее с помощью командлета New-AzVirtualNetwork создайте виртуальную сеть в новой группе ресурсов. Укажите переменные, инициализированные ранее для имени, расположения и префикса адреса. Используйте конфигурацию подсети, определенную на предыдущем этапе.
Выполните этот командлет, чтобы создать виртуальную сеть:
# Create a virtual network
$VNet = New-AzVirtualNetwork -Name $VNetName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-AddressPrefix $VNetAddressPrefix -Subnet $SubnetConfig
Создание общедоступного IP-адреса
Теперь, когда виртуальная сеть определена, необходимо настроить IP-адрес для подключения к виртуальной машине. В рамках этого руководства мы создадим общедоступный IP-адрес с применением динамического предоставления IP-адресов, чтобы обеспечить подключение к Интернету. Создайте общедоступный IP-адрес в новой группе ресурсов с помощью командлета New-AzPublicIpAddress. Укажите переменные, инициализированные ранее для имени, расположения, метода распределения и метки доменного имени DNS.
Примечание.
Выполнив этот командлет, можно определить дополнительные свойства общедоступного IP-адреса. Однако это выходит за рамки данного руководства. Кроме того, можно создать частный или статический адрес, но это также выходит за рамки данного руководства.
Выполните следующий командлет, чтобы создать общедоступный IP-адрес.
# Create a public IP address
$PublicIp = New-AzPublicIpAddress -Name $InterfaceName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-AllocationMethod $TCPIPAllocationMethod -DomainNameLabel $DomainName
Создание группы безопасности сети
Чтобы защитить виртуальную машину и SQL Server трафик, создайте группу безопасности сети.
Создайте два правила группы безопасности сети с помощью New-AzNetworkSecurityRuleConfig, правила для удаленного рабочего стола (RDP) для разрешения подключений RDP и правила, разрешающего трафик через TCP-порт 1433. Это позволяет подключаться к SQL Server через Интернет.
# Create a network security group rule $NsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name "RDPRule" -Protocol Tcp ` -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * ` -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow $NsgRuleSQL = New-AzNetworkSecurityRuleConfig -Name "MSSQLRule" -Protocol Tcp ` -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * ` -DestinationAddressPrefix * -DestinationPortRange 1433 -Access AllowСоздайте группу безопасности сети с помощью New-AzNetworkSecurityGroup.
# Create a network security group $Nsg = New-AzNetworkSecurityGroup -ResourceGroupName $ResourceGroupName ` -Location $Location -Name $NsgName ` -SecurityRules $NsgRuleRDP,$NsgRuleSQL
Создание сетевого интерфейса
Теперь все готово для создания сетевого интерфейса, который будет использовать виртуальная машина. Создайте сетевой интерфейс в своей новой группе ресурсов с помощью командлета New-AzNetworkInterface. Укажите определенные ранее имя, расположение, подсеть и общедоступный IP-адрес.
Выполните следующий командлет, чтобы создать сетевой интерфейс.
# Create a network interface
$Interface = New-AzNetworkInterface -Name $InterfaceName `
-ResourceGroupName $ResourceGroupName -Location $Location `
-SubnetId $VNet.Subnets[0].Id -PublicIpAddressId $PublicIp.Id `
-NetworkSecurityGroupId $Nsg.Id
Настройка объекта виртуальной машины
После определения ресурсов хранения и сетевых ресурсов можно определить вычислительные ресурсы для виртуальной машины.
- Укажите размер виртуальной машины и различные свойства операционной системы.
- Укажите созданный ранее сетевой интерфейс.
- Определите хранилище BLOB-объектов.
- Укажите диск для операционной системы.
Создание виртуальной машины SQL Server
Чтобы создать виртуальную машину SQL Server, сначала создайте объект учетных данных, а затем создайте виртуальную машину.
Создание объекта учетных данных для хранения имени и пароля локального администратора
Чтобы задать свойства операционной системы для виртуальной машины, необходимо сначала предоставить учетные данные для учетной записи локального администратора в виде защищенной строки. Для этого используйте командлет Get-Credential.
Выполните следующий командлет. Необходимо ввести имя локального администратора виртуальной машины и пароль в окне запроса учетных данных PowerShell.
# Define a credential object
$SecurePassword = ConvertTo-SecureString '<strong password>' `
-AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ($userName, $securePassword)
Определение свойств и создание виртуальной машины
Теперь вы готовы задать свойства операционной системы виртуальной машины с помощью New-AzVMConfig, создать виртуальную машину с помощью New-AzVM и использовать командлет Add-AzVMNetworkInterface для добавления сетевого интерфейса с помощью переменной, определенной ранее.
Пример скрипта выполняет следующие действия:
- Настройте обязательную установку агента виртуальной машины.
- Указывает, что командлет включает автоматическое обновление.
- Указывает переменные, которые вы ранее инициализировали для имени виртуальной машины, имени компьютера и учетных данных.
Выполните следующий командлет, чтобы задать свойства операционной системы для виртуальной машины.
# Create a virtual machine configuration
$VMName = $ResourceGroupName + "VM"
$VMConfig = New-AzVMConfig -VMName $VMName -VMSize $VMSize |
Set-AzVMOperatingSystem -Windows -ComputerName $VMName -Credential $Cred -ProvisionVMAgent -EnableAutoUpdate |
Set-AzVMSourceImage -PublisherName $PublisherName -Offer $OfferName -Skus $Sku -Version $Version |
Add-AzVMNetworkInterface -Id $Interface.Id
# Create the VM
New-AzVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VMConfig
Теперь виртуальная машина создана.
Примечание.
Если вы получите сообщение об ошибке диагностики загрузки, ее можно пропустить. Стандартная учетная запись хранения создается для диагностики загрузки, так как для диска виртуальной машины указана учетная запись хранилища класса Premium.
Установите расширение агента IaaS для SQL
SQL Server виртуальные машины поддерживают функции автоматизированного управления с помощью расширения агента IaaS для SQL Server. Чтобы зарегистрировать SQL Server с помощью расширения, выполните команду New-AzSqlVM после создания виртуальной машины. Укажите тип лицензии для виртуальной машины SQL Server, выбрав между оплатой по мере использования (PAYG), Azure Hybrid Benefit (AHUB) или для аварийного восстановления (DR), чтобы активировать бесплатную лицензию на реплику для аварийного восстановления . Дополнительные сведения о лицензировании см. здесь.
Чтобы зарегистрировать виртуальную машину SQL Server с расширением агента IaaS SQL, сначала зарегистрируйте подписку в поставщике ресурсов с помощью Register-AzResourceProvider и зарегистрируйте виртуальную машину SQL Server с помощью расширения агента IaaS SQL с помощью New-AzSqlVM:
# Register the SQL IaaS Agent extension to your subscription
Register-AzResourceProvider -ProviderNamespace Microsoft.SqlVirtualMachine
# Register SQL Server VM with the extension
New-AzSqlVM -Name $VMName -ResourceGroupName $ResourceGroupName -Location $Location `
-LicenseType $License
Есть три способа регистрации в расширении:
- Автоматически для всех текущих и будущих виртуальных машин в подписке
- Вручную для одной виртуальной машины
- вручную для нескольких виртуальных машин одновременно.
Остановка или удаление виртуальной машины
Если не требуется, чтобы виртуальная машина работала постоянно, можно избежать ненужных затрат, останавливая ее, когда она не используется. С помощью следующей команды можно остановить виртуальную машину, оставив ее доступной для использования в будущем.
Stop-AzVM -Name $VMName -ResourceGroupName $ResourceGroupName
С помощью команды Remove-AzResourceGroup вы можете удалить все ресурсы, связанные с виртуальной машиной, без возможности восстановления. Это также приведет к окончательному удалению самой виртуальной машины, поэтому используйте указанную команду с осторожностью.
Полный сценарий
Полный скрипт PowerShell, предоставляющий комплексный интерфейс, см. в статье Deploy SQL Server на виртуальной машине Azure с помощью PowerShell.
Связанный контент
После создания виртуальной машины можно:
- Подключение к виртуальной машине с помощью Бастиона
- Настройте параметры SQL Server на портале для виртуальной машины, в том числе:
- настраивать подключение;
- Подключение клиентов и приложений к новому экземпляру SQL Server