Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server на виртуальной машине Azure
В этом руководстве рассматриваются варианты создания SQL Server на виртуальной машине Azure с помощью PowerShell. Упрощенный пример использования Azure PowerShell, основанный на значениях по умолчанию, см. в разделе Быстрый старт: SQL Server на виртуальной машине Azure с PowerShell или полный скрипт см. в статье Создание виртуальной машины SQL Server с помощью скрипта PowerShell.
Предварительные условия
Чтобы завершить работу с этим руководством, необходимо следующее:
- Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
- последняя версия Azure PowerShell.
Примечание.
В этой статье предусмотрено использование модуля Azure Az PowerShell, который является рекомендуемым модулем PowerShell для взаимодействия с Azure. Чтобы начать работу с модулем Az PowerShell, ознакомьтесь со статьей Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. Перенос 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 для производственных рабочих нагрузок.
$StorageName = "sqlvm" + "storage"
$StorageSku = "Premium_LRS"
Примечание.
Имя учетной записи хранения должно быть от 3 до 24 символов в длину и использовать только цифры и строчные буквы, поэтому убедитесь, что имя группы ресурсов не имеет специальных символов или измените имя учетной записи хранения, чтобы использовать другое имя, отличное от $ResourceGroupName.
Свойства сети
Определите свойства, используемые для сети на виртуальной машине.
- Сетевой интерфейс
- метод распределения 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
С помощью PowerShell можно развернуть более старый образ SQL Server, который недоступен в портале Azure.
Используйте следующие переменные, чтобы определить образ SQL Server, который будет применен для виртуальной машины.
С помощью команды Get-AzVMImageOffer перечислите все предложения образов SQL Server для отображения текущих доступных образов в портале Azure, в том числе старые образы, которые можно развернуть только с помощью PowerShell.
Get-AzVMImageOffer -Location $Location -Publisher 'MicrosoftSQLServer'
Примечание.
SQL Server 2008 и SQL Server 2008 R2 не поддерживаются и больше не доступны в Azure Marketplace.
Перечислите доступные выпуски для вашего предложения, используя Get-AzVMImageSku.
Get-AzVMImageSku -Location $Location -Publisher 'MicrosoftSQLServer' -Offer $OfferName | Select Skus
В этом руководстве используйте издание SQL Server 2022 Developer (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. Чтобы создать группу ресурсов и входящие в нее ресурсы Azure, используйте командлет New-AzResourceGroup. Укажите переменные, инициализированные ранее для имени группы ресурсов и расположения.
Выполните этот командлет, чтобы подключиться к 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. Для упрощения создайте один диск для обоих. Позже можно будет подключить дополнительные диски, выполнив командлет Add-Azure Disk, чтобы поместить файлы данных и журналов 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 (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, предоставляющий комплексный интерфейс, см. в статье "Развертывание SQL Server на виртуальной машине Azure с помощью PowerShell".
Связанный контент
После создания виртуальной машины можно:
- Подключение к виртуальной машине с помощью Бастиона
- Настройте параметры SQL Server на портале для виртуальной машины, в том числе:
- настраивать подключение;
- подключать клиентов и приложения к новому экземпляру SQL Server.