Поделиться через


Руководство по проектированию База данных Azure для MariaDB с помощью PowerShell

Внимание

База данных Azure для MariaDB находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить миграцию в База данных Azure для MySQL. Дополнительные сведения о переходе на База данных Azure для MySQL см. в статье "Что происходит с База данных Azure для MariaDB?".

База данных Azure для MariaDB — это служба реляционной базы данных в среде Microsoft Cloud на основе ядра СУБД MariaDB Community Edition. При работе с этим учебником вы будете использовать PowerShell и другие средства, чтобы выполнить следующие операции:

  • создание Базы данных Azure для MariaDB;
  • настройка брандмауэра сервера;
  • использование программы командной строки MySQL для создания базы данных.
  • Отправка примера данных
  • Запрос данных
  • Обновление данных
  • восстановление данных.

Необходимые компоненты

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Если вы решили использовать PowerShell локально, для работы с этой статьей установите модуль PowerShell Az и подключитесь к учетной записи Azure с помощью командлета Connect-AzAccount. См. сведения об установке модуля Azure PowerShell.

Внимание

Так как модуль PowerShell Az.MariaDb предоставляется в предварительной версии, его нужно установить отдельно от модуля Az PowerShell с помощью команды Install-Module -Name Az.MariaDb -AllowPrerelease. Как только модуль PowerShell Az.MariaDb станет общедоступным, он будет включен в один из будущих выпусков модуля Az PowerShell и встроен в Azure Cloud Shell.

Если вы впервые используете службу "База данных Azure для MariaDB", необходимо зарегистрировать поставщик ресурсов Microsoft.DBforMariaDB.

Register-AzResourceProvider -ProviderNamespace Microsoft.DBforMariaDB

Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.

Начало работы с Azure Cloud Shell

Вариант Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. Снимок экрана: пример открытия Azure Cloud Shell с помощью кнопки
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Кнопка запуска Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Снимок экрана: кнопка

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

  4. Нажмите клавишу ВВОД, чтобы запустить код или команду.

Если вы используете несколько подписок Azure, выберите ту, за ресурсы в которой будут выставляться счета. Выберите идентификатор требуемой подписки с помощью командлета Set-AzContext.

Set-AzContext -SubscriptionId 00000000-0000-0000-0000-000000000000

Создание или изменение группы ресурсов

Создайте группу ресурсов Azure с помощью командлета New-AzResourceGroup. Группа ресурсов — это логический контейнер, в котором ресурсы Azure развертываются и администрируются как группа.

В следующем примере создается группа ресурсов с именем myresourcegroup в регионе Западная часть США.

New-AzResourceGroup -Name myresourcegroup -Location westus

Создание сервера Базы данных Azure для MariaDB

Создайте сервер Базы данных Azure для MariaDB с помощью командлета New-AzMariaDbServer. Сервер может управлять несколькими базами данных. Как правило, для каждого проекта и для каждого пользователя используется отдельная база данных.

В следующем примере в регионе Западная часть США создается сервер MariaDB с именем mydemoserver в группе ресурсов myresourcegroup с администратором сервера с именем myadmin. Это сервер 5-го поколения ценовой категории "Общего назначения" с двумя виртуальными ядрами и геоизбыточным резервным копированием. Запишите пароль, указанный в первой строке примера, так как это пароль для учетной записи администратора сервера MariaDB.

Совет

Имя сервера сопоставляется с DNS-именем и должно быть глобально уникальным в Azure.

$Password = Read-Host -Prompt 'Please enter your password' -AsSecureString
New-AzMariaDbServer -Name mydemoserver -ResourceGroupName myresourcegroup -Sku GP_Gen5_2 -GeoRedundantBackup Enabled -Location westus -AdministratorUsername myadmin -AdministratorLoginPassword $Password

Значение параметра Sku соответствует формату ценовая-категория_поколение-вычислительных-ресурсов_количество-виртуальных-ядер, как показано в примерах ниже.

  • -Sku B_Gen5_1 — "Базовый", поколение 5, 1 виртуальное ядро; Это номер SKU наименьший по размеру из доступных.
  • -Sku GP_Gen5_32 — "Общего назначения", поколение 5, 32 виртуальных ядра;
  • -Sku MO_Gen5_2 — "оптимизированный для операций в памяти", поколение 5, 2 виртуальных ядра.

См. сведения о допустимых значениях SKU по регионам и ценовым категориям в описании ценовых категорий Базы данных Azure для MariaDB.

Используйте ценовую категорию "Базовый", если для вашей рабочей нагрузки не требуется большое количество вычислительных ресурсов и операций ввода-вывода.

Внимание

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

Настройка правила брандмауэра

Создайте правило брандмауэра для сервера Базы данных Azure для MariaDB, используя командлет New-AzMariaDbFirewallRule. Правило брандмауэра на уровне сервера позволяет внешним приложениям, таким как программа командной строки mysql или MariaDB Workbench, подключаться к серверу через брандмауэр службы "База данных Azure для MariaDB".

В приведенном ниже примере создается правило брандмауэра с именем AllowMyIP, которое разрешает подключения с определенного IP-адреса (192.168.0.1). Замените его IP-адресом или диапазоном IP-адресов, которые применяются для того расположения, из которого вы подключаетесь.

New-AzMariaDbFirewallRule -Name AllowMyIP -ResourceGroupName myresourcegroup -ServerName mydemoserver -StartIPAddress 192.168.0.1 -EndIPAddress 192.168.0.1

Примечание.

Подключитесь к Базе данных Azure для MariaDB через порт 3306. Если вы пытаетесь подключиться из корпоративной сети, исходящий трафик через порт 3306 может быть запрещен. В этом сценарии вы сможете подключиться к серверу, только если ИТ-отдел откроет для вас порт 3306.

Получение сведений о подключении

Чтобы подключиться к серверу, необходимо указать сведения об узле и учетные данные для доступа. Чтобы получить сведения о подключении, используйте следующий пример. Запишите значения FullyQualifiedDomainName и AdministratorLogin.

Get-AzMariaDbServer -Name mydemoserver -ResourceGroupName myresourcegroup |
  Select-Object -Property FullyQualifiedDomainName, AdministratorLogin
FullyQualifiedDomainName                    AdministratorLogin
------------------------                    ------------------
mydemoserver.mariadb.database.azure.com       myadmin

Подключение к серверу с помощью средства командной строки mysql

Подключитесь к серверу с помощью средства командной строки mysql. Скачать и установить его можно здесь. Вы можете также получить доступ к предустановленной версии средства командной строки mysql из Azure Cloud Shell, нажав кнопку Попробовать в примере кода в этой статье. Azure Cloud Shell также можно открыть, нажав кнопку >_ на панели инструментов вверху справа на портале Azure или перейдя по адресу shell.azure.com.

mysql -h mydemoserver.mariadb.database.azure.com -u myadmin@mydemoserver -p

Создание базы данных

Подключившись к серверу, создайте пустую базу данных.

mysql> CREATE DATABASE mysampledb;

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

mysql> USE mysampledb;

Создание таблиц в базе данных

Теперь, когда вы знаете, как подключиться к базе данных Azure для MariaDB, выполните основные задачи.

Сначала создайте таблицу и заполните ее некоторыми данными. Давайте создадим таблицу, в которой хранятся данные инвентаризации.

CREATE TABLE inventory (
  id serial PRIMARY KEY,
  name VARCHAR(50),
  quantity INTEGER
);

Загрузка данных в таблицу

Теперь, когда таблица создана, мы можем вставить в нее данные. Чтобы вставить некоторые строки данных, в открытом окне командной строки выполните следующий запрос:

INSERT INTO inventory (id, name, quantity) VALUES (1, 'banana', 150);
INSERT INTO inventory (id, name, quantity) VALUES (2, 'orange', 154);

Итак, в созданной ранее таблице содержится две строки данных.

Запрос и обновление данных в таблицах

Чтобы извлечь сведения из таблицы базы данных, выполните приведенный ниже запрос.

SELECT * FROM inventory;

Вы можете также обновить данные в таблицах, выполнив следующую команду:

UPDATE inventory SET quantity = 200 WHERE name = 'banana';

При извлечении данных строка будет обновляться соответствующим образом.

SELECT * FROM inventory;

Восстановление базы данных до предыдущей точки во времени

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

Чтобы восстановить сервер, используйте командлет PowerShell Restore-AzMariaDbServer.

Выполнение команды restore

Чтобы восстановить сервер, выполните следующий пример в PowerShell.

$restorePointInTime = (Get-Date).AddMinutes(-10)
Get-AzMariaDbServer -Name mydemoserver -ResourceGroupName myresourcegroup |
  Restore-AzMariaDbServer -Name mydemoserver-restored -ResourceGroupName myresourcegroup -RestorePointInTime $restorePointInTime -UsePointInTimeRestore

При восстановлении сервера до более ранней точки во времени будет создан новый сервер. Исходный сервер и его базы данных, начиная с указанного момента во времени, копируются на новый сервер.

Значения расположения и ценовой категории для восстановленного сервера совпадают со значениями исходного сервера.

После завершения восстановления найдите новый сервер, чтобы убедиться, что данные были восстановлены, как и ожидалось. Имя и пароль администратора сервера для входа на него будут теми же, что и для исходного сервера в момент, когда было запущен процесс восстановления. Пароль можно изменить на странице Обзор для нового сервера.

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

Следующие шаги