Изучение отдельной базы данных SQL
Мы рассмотрим несколько методов развертывания отдельной Базы данных SQL Azure.
Развертывание с помощью портала
Процесс создания отдельной базы данных с помощью портала Azure довольно прост. На портале в меню навигации слева выберите пункт "Базы данных SQL". В открывшемся диалоговом окне нажмите кнопку "Создать":
В колонке на рисунке ниже вы заметите, что подписка уже должна быть предоставлена. Вам понадобится указать следующие сведения.
- Группа ресурсов — если вы хотите использовать существующую группу ресурсов, ее можно выбрать в раскрывающемся списке. Если вы хотите создать группу ресурсов для этой Базы данных SQL Azure, можно щелкнуть элемент "Создать".
- Имя базы данных — необходимо указать имя базы данных.
- Сервер — каждая база данных должна располагаться на логическом сервере. Если у вас уже есть такой сервер в соответствующем регионе, можете использовать его. В противном случае можно щелкнуть ссылку Создать новую и следовать инструкциям, чтобы создать логический сервер для размещения базы данных.
- Want to use SQL elastic pool? (Нужно ли использовать эластичный пул баз данных SQL?) Определите, следует ли использовать эластичный пул.
- Вычисление и хранение — определите соответствующие необходимые вычислительные ресурсы. По умолчанию, если не выбрано ничего другого, используется ресурс 5-го поколения с 2 виртуальными ядрами и хранилищем на 32 ГБ. Щелкните Настроить базу данных, чтобы просмотреть другие параметры конфигурации.
На рисунке ниже показана колонка портала, в которой можно настроить параметры базы данных. Обратите внимание, что используется уровень служб "Общего назначения" и уровень вычислений "Подготовлено". Подготовка означает, что вычислительные ресурсы выделены предварительно и оплачиваются по часам в зависимости от количества настроенных виртуальных ядер. Другим вариантом является "Бессерверный", который был рассмотрен ранее. Бессерверные ресурсы оплачиваются по секундам в зависимости от числа используемых виртуальных ядер.
Развертывание Базы данных SQL Azure с помощью PowerShell или CLI
Базу данных также можно развернуть с помощью Azure PowerShell или Azure CLI. На рисунке ниже показан пример PowerShell, где вы создаете группу ресурсов и определяете администратора с именем SqlAdmin, а затем создаете сервер, базу данных и правило брандмауэра.
# Connect-AzAccount
# The SubscriptionId in which to create these objects
$SubscriptionId = ''
# Set the resource group name and location for your server
$resourceGroupName = "myResourceGroup-$(Get-Random)"
$location = "westus2"
# Set an admin login and password for your server
$adminSqlLogin = "SqlAdmin"
$password = "ChangeYourAdminPassword1"
# Set server name - the logical server name has to be unique in the system
$serverName = "server-$(Get-Random)"
# The sample database name
$databaseName = "mySampleDatabase"
# The ip address range that you want to allow to access your server
$startIp = "0.0.0.0"
$endIp = "0.0.0.0"
# Set subscription
Set-AzContext -SubscriptionId $subscriptionId
# Create a resource group
$resourceGroup = New-AzResourceGroup -Name $resourceGroupName -Location $location
# Create a server with a system wide unique server name
$server = New-AzSqlServer -ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-Location $location `
-SqlAdministratorCredentials $(New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $adminSqlLogin, $(ConvertTo-SecureString -String $password -AsPlainText -Force))
# Create a server firewall rule that allows access from the specified IP range
$serverFirewallRule = New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-FirewallRuleName "AllowedIPs" -StartIpAddress $startIp -EndIpAddress $endIp
# Create a blank database with an S0 performance level
$database = New-AzSqlDatabase -ResourceGroupName $resourceGroupName `
-ServerName $serverName `
-DatabaseName $databaseName `
-RequestedServiceObjectiveName "S0" `
-SampleName "AdventureWorksLT"
Azure CLI также можно использовать для развертывания Базы данных SQL Azure, как показано ниже.
#!/bin/bash
# set execution context (if necessary)
az account set --subscription <replace with your subscription name or id>
# Set the resource group name and location for your server
resourceGroupName=myResourceGroup-$RANDOM
location=westus2
# Set an admin login and password for your database
adminlogin=ServerAdmin
password=`openssl rand -base64 16`
# password=<EnterYourComplexPasswordHere1>
# The logical server name has to be unique in all of Azure
servername=server-$RANDOM
# The ip address range that you want to allow to access your DB
startip=0.0.0.0
endip=0.0.0.0
# Create a resource group
az group create \
--name $resourceGroupName \
--location $location
# Create a logical server in the resource group
az sql server create \
--name $servername \
--resource-group $resourceGroupName \
--location $location \
--admin-user $adminlogin \
--admin-password $password
# Configure a firewall rule for the server
az sql server firewall-rule create \
--resource-group $resourceGroupName \
--server $servername \
-n AllowYourIp \
--start-ip-address $startip \
--end-ip-address $endip
# Create a database in the server
az sql db create \
--resource-group $resourceGroupName \
--server $servername
--name mySampleDatabase \
--sample-name AdventureWorksLT \
--edition GeneralPurpose \
--family Gen4 \
--capacity 1 \
# Echo random password
echo $password
Развертывание Базы данных SQL Azure с помощью шаблонов Azure Resource Manager
Другой метод развертывания ресурсов, как упоминалось ранее, заключается в использовании шаблона Azure Resource Manager. Шаблон Resource Manager обеспечивает наиболее детализированный контроль над ресурсами, при этом корпорация Майкрософт предоставляет репозиторий GitHub с именем Azure-Quickstart-Templates, содержащий шаблоны Azure Resource Manager, на которые можно ссылаться при развертываниях. Ниже показан пример развертывания шаблона на основе GitHub с использованием PowerShell.
#Define Variables for parameters to pass to template
$projectName = Read-Host -Prompt "Enter a project name"
$location = Read-Host -Prompt "Enter an Azure location (i.e. centralus)"
$adminUser = Read-Host -Prompt "Enter the SQL server administrator username"
$adminPassword = Read-Host -Prompt "Enter the SQl server administrator password" -AsSecureString
$resourceGroupName = "${projectName}rg"
#Create Resource Group and Deploy Template to Resource Group
New-AzResourceGroup -Name $resourceGroupName -Location $location
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName `
-TemplateUri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-sql-logical-server/azuredeploy.json" `
-administratorLogin $adminUser -administratorLoginPassword $adminPassword
Read-Host -Prompt "Press [ENTER] to continue ..."