Руководство по проектированию База данных Azure для PostgreSQL с помощью Azure CLI
Область применения: отдельный сервер Базы данных Azure для PostgreSQL
Внимание
База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".
Из этого руководства вы узнаете, как с помощью Azure CLI (интерфейса командной строки) и других служебных программ выполнять следующие операции:
- Создание сервера Базы данных Azure для PostgreSQL
- настройка брандмауэра сервера;
- использование служебной программы psql для создания базы данных;
- Отправка примера данных
- Запрос данных
- Обновление данных
- восстановление данных.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Необходимые компоненты
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Запуск Azure Cloud Shell
Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью.
Чтобы открыть Cloud Shell, просто выберите Попробовать в правом верхнем углу блока кода. Cloud Shell можно также запустить в отдельной вкладке браузера, перейдя на страницу https://shell.azure.com.
Когда откроется Cloud Shell, убедитесь, что для вашей среды выбран вариант Bash. В последующих сеансах в среде Bash будет использоваться Azure CLI. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу ВВОД, чтобы выполнить его.
Вход в Azure
Проверка подлинности Cloud Shell автоматически производится с данными той учетной записи, с которой был осуществлен вход. Используйте следующий скрипт, чтобы войти с другой подпиской, указав вместо <Subscription ID>
идентификатор нужной подписки Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
Дополнительные сведения см. в разделах Настройка активной подписки и Интерактивный вход.
Установка значений параметра
Следующие значения используются в последующих командах для создания базы данных и требуемых ресурсов. Имена серверов должны быть глобально уникальными в Azure, поэтому для создания имени сервера используется функция $RANDOM.
Измените расположение на соответствующее вашей среде. Замените значения 0.0.0.0
в диапазоне IP-адресов в соответствии с конкретной средой. Воспользуйтесь общедоступным IP-адресом используемого компьютера, чтобы разрешить доступ к серверу только своему IP-адресу.
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-postgresql-rg-$randomIdentifier"
tag="create-postgresql-server-and-firewall-rule"
server="msdocs-postgresql-server-$randomIdentifier"
sku="GP_Gen5_2"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"
# Specify appropriate IP address values for your environment
# to limit / allow access to the PostgreSQL server
startIp=0.0.0.0
endIp=0.0.0.0
echo "Using resource group $resourceGroup with login: $login, password: $password..."
Создание или изменение группы ресурсов
Создайте группу ресурсов с помощью команды az group create. Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.
# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag
Создание сервера
Создайте сервер с помощью команды az postgres server create.
# Create a PostgreSQL server in the resource group
# Name of a server maps to DNS name and is thus required to be globally unique in Azure.
echo "Creating $server in $location..."
az postgres server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password --sku-name $sku
Примечание.
- Имя сервера может содержать только строчные буквы, цифры и знак дефиса (-). Длина должна составлять от 3 до 63 символов. Дополнительные сведения см. в статье Правила именования в службе "База данных Azure для PostgreSQL".
- В качестве имени пользователя для администратора нельзя использовать варианты azure_superuser, admin, administrator, root, guest или public.
- Пароль должен содержать от 8 до 128 знаков трех из следующих категорий: прописные латинские буквы, строчные латинские буквы, цифры и другие символы.
- Дополнительные сведения об SKU см. на странице Цены на Базу данных Azure для PostgreSQL.
Внимание
- Версия PostgreSQL на вашем сервере по умолчанию — 9.6. Чтобы просмотреть все поддерживаемые версии, см. статью Поддерживаемые основные номера версии PostgreSQL.
- Протокол SSL включен на сервере по умолчанию. Дополнительные сведения об SSL см. в статье Настройка SSL-подключения.
Настройка правила брандмауэра на уровне сервера
Создайте правило брандмауэра с помощью команды az postgres server firewall-rule create, чтобы предоставить вашей локальной среде доступ для подключения к серверу.
# Configure a firewall rule for the server
echo "Configuring a firewall rule for $server for the IP address range of $startIp to $endIp"
az postgres server firewall-rule create --resource-group $resourceGroup --server $server --name AllowIps --start-ip-address $startIp --end-ip-address $endIp
Совет
Если вы не знаете свой IP-адрес, перейдите на сайт WhatIsMyIPAddress.com, чтобы его получить.
Примечание.
Во избежание проблем с подключением убедитесь, что в брандмауэре сети разрешен порт 5432. Серверы службы "База данных Azure для PostgreSQL" используют этот порт.
Список правил брандмауэра на основе сервера
Чтобы вывести список имеющихся правил брандмауэра сервера, запустите команду az postgres server firewall-rule list.
# List firewall rules for the server
echo "List of server-based firewall rules for $server"
az postgres server firewall-rule list --resource-group $resourceGroup --server-name $server
# You may use the switch `--output table` for a more readable table format as the output.
Выходные данные будут содержать правила брандмауэра (если они имеются) в используемом по умолчанию формате JSON. Вы можете использовать --output table
, чтобы получить выходные данные в виде более удобной таблицы.
Получение сведений о подключении
Чтобы подключиться к серверу, укажите сведения об узле и учетные данные для доступа.
az postgres server show --resource-group $resourceGroup --name $server
Запишите значения administratorLogin и fullyQualifiedDomainName.
Подключение к Базе данных Azure для PostgreSQL с помощью psql
Клиент psql — популярное средство, используемое для подключения к серверам PostgreSQL. Вы можете подключиться к серверу, используя psql
в Azure Cloud Shell. Вы можете также использовать psql
в локальной среде, если она доступна. С новым сервером PostgreSQL автоматически создается пустая база данных postgres. Эту базу данных можно использовать для подключения к psql
, как показано в следующем коде.
psql --host=<server_name>.postgres.database.azure.com --port=5432 --username=<admin_user>@<server_name> --dbname=postgres
Совет
Если вы предпочитаете использовать URL-путь для подключения к Postgres, закодируйте с помощью URL-адреса знак @ в имени пользователя с использованием %40
. Например, строка подключения для psql будет выглядеть так:
psql postgresql://<admin_user>%40<server_name>@<server_name>.postgres.database.azure.com:5432/postgres
Создание пустой базы данных
Подключившись к серверу, создайте пустую базу данных с помощью командной строки:
CREATE DATABASE mypgsqldb;
Чтобы подключиться к созданной базе данных mypgsqldb, выполните следующую команду в командной строке:
\c mypgsqldb
Создание таблиц в базе данных
Теперь, когда вы знаете, как подключиться к базе данных Azure для PostgreSQL, можно выполнить некоторые основные задачи.
Сначала создайте таблицу и заполните ее некоторыми данными. Например, создадим таблицу, с помощью которой можно отслеживать данные инвентаризации:
CREATE TABLE inventory (
id serial PRIMARY KEY,
name VARCHAR(50),
quantity INTEGER
);
Вы можете просмотреть созданную таблицу в списке таблиц, введя:
\dt
Загрузка данных в таблицу
Теперь, когда таблица создана, вставьте в нее некоторые данные. Чтобы вставить некоторые строки данных, в открытом окне командной строки выполните следующий запрос:
INSERT INTO inventory (id, name, quantity) VALUES (1, 'banana', 150);
INSERT INTO inventory (id, name, quantity) VALUES (2, 'orange', 154);
Итак, в созданной ранее таблице добавлено две строки демонстрационных данных.
Запрос и обновление данных в таблицах
Чтобы извлечь сведения из таблицы inventory, выполните приведенный ниже запрос:
SELECT * FROM inventory;
Вы можете также обновить данные в таблице inventory:
UPDATE inventory SET quantity = 200 WHERE name = 'banana';
При извлечении данных вы увидите обновленные значения:
SELECT * FROM inventory;
Восстановление базы данных до предыдущей точки во времени
Представьте, что вы случайно удалили таблицу. Восстановить ее будет не просто. База данных Azure для PostgreSQL позволяет вернуть состояние до любой точки времени при наличии резервных копий сервера (определяется по настроенному сроку хранения резервной копии) и восстановить данные до этой точки на новом сервере. Вы можете восстановить удаленные данные с помощью нового сервера.
Указанная ниже команда позволяет восстановить демонстрационный сервер до точки во времени, когда таблица еще не была создана:
az postgres server restore --resource-group myresourcegroup --name mydemoserver-restored --restore-point-in-time 2017-04-13T13:59:00Z --source-server mydemoserver
Для команды az postgres server restore
необходимо настроить следующие параметры:
Параметр | Предлагаемое значение | Описание |
---|---|---|
resource-group | myresourcegroup | Группа ресурсов, в которой находится исходный сервер. |
name | mydemoserver-restored | Имя нового сервера, созданного командой restore. |
restore-point-in-time | 2017-04-13T13:59:00Z | Выберите точку во времени, до которой необходимо выполнить восстановление. Значения даты и времени должны находиться в пределах срока хранения резервной копии исходного сервера. Используйте формат даты и времени ISO8601. Например, вы можете использовать свой местный часовой пояс, например 2017-04-13T05:59:00-08:00 , или использовать формат UTC Zulu 2017-04-13T13:59:00Z . |
source-server | mydemoserver | Имя или идентификатор исходного сервера, с которого необходимо выполнить восстановление. |
При восстановлении сервера до определенной точки во времени создается новый сервер путем копирования той точки во времени исходного сервера, которую вы задали. Значения расположения и ценовой категории для восстановленного сервера совпадают со значениями исходного сервера.
Команда выполняется в синхронном режиме и будет возвращена после восстановления сервера. После завершения восстановления найдите созданный сервер. Убедитесь, что данные восстановлены надлежащим образом.
Очистка ресурсов
Если вам больше не нужны определенные ресурсы, вы можете удалить их и соответствующую группу ресурсов с помощью команды az group delete. Как создание, так и удаление определенных ресурсов может занять некоторое время.
az group delete --name $resourceGroup
Следующие шаги
Из этого руководства вы узнали, как с помощью Azure CLI (интерфейса командной строки) и других служебных программ выполнить следующие операции:
- Создание сервера Базы данных Azure для PostgreSQL
- настройка брандмауэра сервера;
- использование служебной программы psql для создания базы данных;
- Отправка примера данных
- Запрос данных
- Обновление данных
- восстановление данных.