Kurz: Návrh jednoúčelového serveru Azure Database for PostgreSQL pomocí Azure CLI

PLATÍ PRO: Azure Database for PostgreSQL – Jednoúčelový server

Důležité

Jednoúčelový server Azure Database for PostgreSQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for PostgreSQL. Další informace o migraci na flexibilní server Azure Database for PostgreSQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for PostgreSQL?

V tomto kurzu použijete Azure CLI (rozhraní příkazového řádku) a další nástroje k získání informací o těchto tématech:

  • Vytvoření serveru Azure Database for PostgreSQL
  • Konfigurace brány firewall serveru
  • Vytvoření databáze pomocí nástroje psql
  • Načtení ukázkových dat
  • Zadávání dotazů na data
  • Aktualizace dat
  • Obnovení dat

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Požadavky

Spuštění služby Azure Cloud Shell

Azure Cloud Shell je bezplatné interaktivní prostředí, které můžete použít k provedení kroků v tomto článku. Má předinstalované obecné nástroje Azure, které jsou nakonfigurované pro použití s vaším účtem.

Pokud chcete otevřít Cloud Shell, vyberte položku Vyzkoušet v pravém horním rohu bloku kódu. Cloud Shell můžete spustit také na samostatné kartě prohlížeče na adrese https://shell.azure.com.

Po otevření Cloud Shellu ověřte, že je pro vaše prostředí vybraný Bash . Následující relace budou používat Azure CLI v prostředí Bash, výběrem možnosti Kopírovat zkopírujte bloky kódu, vložte ho do Cloud Shellu a stisknutím klávesy Enter ho spusťte.

Přihlášení k Azure

Cloud Shell se automaticky ověřuje pod počátečním přihlášeným účtem. Pomocí následujícího skriptu se přihlaste pomocí jiného předplatného a nahraďte <Subscription ID> ID předplatného Azure. Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Další informace najdete v tématu Nastavení aktivního předplatného nebo interaktivního přihlášení.

Nastavení hodnot parametrů

Následující hodnoty se používají v následujících příkazech k vytvoření databáze a požadovaných prostředků. Názvy serverů musí být globálně jedinečné ve všech Azure, aby se k vytvoření názvu serveru použila funkce $RANDOM.

Změňte umístění podle potřeby pro vaše prostředí. Nahraďte 0.0.0.0 rozsah IP adres tak, aby odpovídal vašemu konkrétnímu prostředí. Pomocí veřejné IP adresy počítače, který používáte, omezte přístup k serveru jenom na vaši IP adresu.

# 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..."

Vytvoření skupiny zdrojů

Vytvořte skupinu prostředků pomocí příkazu az group create. Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění eastus:

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

Vytvoření serveru

Vytvořte server pomocí příkazu 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

Poznámka:

  • Název serveru může obsahovat pouze malá písmena, číslice a znak spojovníku (-). Musí obsahovat 3 až 63 znaků. Další informace najdete v tématu Pravidla pojmenování služby Azure Database for PostgreSQL.
  • Uživatelské jméno pro uživatele s rolí správce nemůže být azure_superuser, správce, správce, kořen, host nebo veřejné.
  • Heslo musí obsahovat 8 až 128 znaků ze tří z následujících kategorií: velká písmena anglické abecedy, malá písmena anglické abecedy, číslice a jiné než alfanumerické znaky.
  • Informace o cenách skladových položek služby Azure Database for PostgreSQL najdete v tématu s cenami.

Důležité

  • Výchozí verze PostgreSQL na vašem serveru je 9.6. Pokud chcete zobrazit všechny podporované verze, přečtěte si téma Podporované hlavní verze PostgreSQL.
  • Protokol SSL je na vašem serveru ve výchozím nastavení povolený. Další informace o protokolu SSL najdete v tématu Konfigurace připojení SSL.

Konfigurace pravidla firewallu na serveru

Vytvořte pravidlo brány firewall pomocí příkazu az postgres server firewall-rule create , kterým dáte místnímu prostředí přístup pro připojení k serveru.

# 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

Tip

Pokud ip adresu neznáte, přejděte na WhatIsMyIPAddress.com a získejte ji.

Poznámka:

Abyste se vyhnuli problémům s připojením, ujistěte se, že brána firewall vaší sítě povoluje port 5432. Servery Azure Database for PostgreSQL používají tento port.

Výpis pravidel brány firewall založených na serveru

Pokud chcete zobrazit seznam existujících pravidel brány firewall serveru, spusťte příkaz 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.

Ve výstupu jsou ve výchozím nastavení uvedena pravidla brány firewall ve formátu JSON. Přepínač --output table můžete použít pro čitelnější formát tabulky jako výstup.

Získání informací o připojení

Pokud se chcete připojit k serveru, zadejte informace o hostiteli a přihlašovací údaje pro přístup.

az postgres server show --resource-group $resourceGroup --name $server

Poznamenejte si hodnoty administratorLogin a fullyQualifiedDomainName .

Připojení k serveru Azure Database for PostgreSQL pomocí psql

Klient psql je oblíbenou volbou pro připojení k serverům PostgreSQL. Ke svému serveru se můžete připojit pomocí psqlAzure Cloud Shellu. Pokud ho máte k dispozici, můžete ho také použít psql ve svém místním prostředí. Prázdná databáze postgres se automaticky vytvoří s novým serverem PostgreSQL. Tuto databázi můžete použít k připojení pomocí psqlkódu, jak je znázorněno v následujícím kódu.

psql --host=<server_name>.postgres.database.azure.com --port=5432 --username=<admin_user>@<server_name> --dbname=postgres

Tip

Pokud dáváte přednost použití cesty URL pro připojení k Postgres, adresa URL zakóduje znak @ v uživatelském jménu pomocí %40. Například připojovací řetězec pro psql:

psql postgresql://<admin_user>%40<server_name>@<server_name>.postgres.database.azure.com:5432/postgres

Vytvoření prázdné databáze

  1. Po připojení k serveru vytvořte na příkazovém řádku prázdnou databázi:

    CREATE DATABASE mypgsqldb;
    
  2. Na příkazovém řádku spusťte následující příkaz, který přepne připojení na nově vytvořenou databázi mypgsqldb:

    \c mypgsqldb
    

Vytvoření tabulek v databázi

Teď víte, jak se připojit k databázi Azure Database for PostgreSQL, a můžete začít provádět některé základní úlohy:

Nejdřív vytvoříte tabulku a načtete do ní data. Vytvořte například tabulku, která sleduje informace o inventáři:

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

Teď můžete nově vytvořenou databázi zobrazit v seznamu databází zadáním:

\dt

Načtení dat do tabulky

Když teď máte vytvořenou tabulku, přidejte do ní nějaká data. V otevřeném okně příkazového řádku spusťte následující dotaz, který vloží několik řádků dat:

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

Právě jste do tabulky, kterou jste vytvořili dříve, vložili dva řádky ukázkových dat.

Dotazování na data a aktualizace dat v tabulkách

Provedením následujícího dotazu načtěte informace z tabulky inventáře:

SELECT * FROM inventory;

Data v tabulce inventáře můžete také aktualizovat:

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

Aktualizované hodnoty se zobrazí po načtení dat:

SELECT * FROM inventory;

Obnovení databáze k dřívějšímu bodu v čase

Představte si, že jste některou tabulku omylem odstranili. Taková situace se těžko napravuje. Azure Database for PostgreSQL umožňuje přejít zpět k jakémukoli bodu v čase, pro který má server zálohy (závisí na konfigurovaném období uchovávání záloh), a obnovit tento bod v čase na nový server. Tento nový server můžete použít k obnovení odstraněných dat.

Následující příklad obnoví ukázkový server do bodu před přidáním tabulky:

az postgres server restore --resource-group myresourcegroup --name mydemoserver-restored --restore-point-in-time 2017-04-13T13:59:00Z --source-server mydemoserver

Příkaz az postgres server restore potřebuje následující parametry:

Nastavení Navrhovaná hodnota Popis
resource-group  myresourcegroup  Skupina prostředků, ve které se nachází zdrojový server. 
name mydemoserver-restored Název nového serveru, který se vytvoří příkazem restore.
restore-point-in-time 2017-04-13T13:59:00Z Vyberte bod v čase, ke kterému se má provést obnovení. Tato datum a čas musí být v rámci doby uchovávání záloh zdrojového serveru. Použijte formát data a času ISO8601. Můžete použít například své místní časové pásmo, třeba 2017-04-13T05:59:00-08:00, nebo formát UTC Zulu 2017-04-13T13:59:00Z.
source-server mydemoserver Název nebo ID zdrojového serveru, ze kterého se má provést obnovení.

Obnovení serveru k bodu v čase vytvoří nový server jako kopii původního serveru k zadanému bodu v čase. Umístění a cenová úroveň obnoveného serveru jsou stejné jako u zdrojového serveru.

Příkaz je synchronní a vrátí se po obnovení serveru. Po dokončení obnovení vyhledejte nově vytvořený server. Ověřte, že se data obnovila podle očekávání.

Vyčištění prostředků

Pomocí následujícího příkazu odeberte skupinu prostředků a všechny prostředky přidružené k ní pomocí příkazu az group delete – pokud tyto prostředky nepotřebujete. Vytvoření některých z těchto prostředků a odstranění může chvíli trvat.

az group delete --name $resourceGroup

Další kroky

V tomto kurzu jste zjistili, jak pomocí Azure CLI (rozhraní příkazového řádku) a dalších nástrojů provést následující:

  • Vytvoření serveru Azure Database for PostgreSQL
  • Konfigurace brány firewall serveru
  • Vytvoření databáze pomocí nástroje psql
  • Načtení ukázkových dat
  • Zadávání dotazů na data
  • Aktualizace dat
  • Obnovení dat