Изучение отдельной базы данных SQL

Завершено

Мы рассмотрим несколько методов развертывания отдельной Базы данных SQL Azure.

Развертывание с помощью портала

Процесс создания отдельной базы данных с помощью портала Azure довольно прост. На портале в меню навигации слева выберите пункт "Базы данных SQL". В открывшемся диалоговом окне нажмите кнопку "Создать":

The Azure portal Azure SQL Database Deployment screen

В колонке на рисунке ниже вы заметите, что подписка уже должна быть предоставлена. Вам понадобится указать следующие сведения.

  • Группа ресурсов — если вы хотите использовать существующую группу ресурсов, ее можно выбрать в раскрывающемся списке. Если вы хотите создать группу ресурсов для этой Базы данных SQL Azure, можно щелкнуть элемент "Создать".
  • Имя базы данных — необходимо указать имя базы данных.
  • Сервер — каждая база данных должна располагаться на логическом сервере. Если у вас уже есть такой сервер в соответствующем регионе, можете использовать его. В противном случае можно щелкнуть ссылку Создать новую и следовать инструкциям, чтобы создать логический сервер для размещения базы данных.
  • Want to use SQL elastic pool? (Нужно ли использовать эластичный пул баз данных SQL?) Определите, следует ли использовать эластичный пул.
  • Вычисление и хранение — определите соответствующие необходимые вычислительные ресурсы. По умолчанию, если не выбрано ничего другого, используется ресурс 5-го поколения с 2 виртуальными ядрами и хранилищем на 32 ГБ. Щелкните Настроить базу данных, чтобы просмотреть другие параметры конфигурации.

Create SQL Database blade of Azure portal

На рисунке ниже показана колонка портала, в которой можно настроить параметры базы данных. Обратите внимание, что используется уровень служб "Общего назначения" и уровень вычислений "Подготовлено". Подготовка означает, что вычислительные ресурсы выделены предварительно и оплачиваются по часам в зависимости от количества настроенных виртуальных ядер. Другим вариантом является "Бессерверный", который был рассмотрен ранее. Бессерверные ресурсы оплачиваются по секундам в зависимости от числа используемых виртуальных ядер.

Service Tier selection in Azure portal

Развертывание Базы данных 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 ..."