Aracılığıyla paylaş


Öğretici: PostgreSQL için Azure Veritabanı tasarlama - Azure CLI kullanarak Tek Sunucu

ŞUNLAR IÇIN GEÇERLIDIR: PostgreSQL için Azure Veritabanı - Tek Sunucu

Önemli

PostgreSQL için Azure Veritabanı - Tek Sunucu kullanımdan kaldırma yolundadır. PostgreSQL için Azure Veritabanı - Esnek Sunucu'ya yükseltmenizi kesinlikle öneririz. PostgreSQL için Azure Veritabanı - Esnek Sunucu'ya geçiş hakkında daha fazla bilgi için bkz. PostgreSQL için Azure Veritabanı Tek Sunucuya ne oluyor?.

Bu öğreticide, şunları nasıl yapacağınızı öğrenmek için Azure CLI (komut satırı arabirimi) ve diğer yardımcı programları kullanırsınız:

  • PostgreSQL için Azure Veritabanı sunucusu oluşturma
  • Sunucu güvenlik duvarını yapılandırma
  • Veritabanı oluşturmak için psql yardımcı programını kullanma
  • Örnek verileri yükleme
  • Verileri sorgulama
  • Verileri güncelleştirme
  • Verileri geri yükleme

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

Önkoşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

Azure Cloud Shell'i başlatma

Azure Cloud Shell, bu makaledeki adımları çalıştırmak için kullanabileceğiniz ücretsiz bir etkileşimli kabuktur. Yaygın Azure araçları, kabuğa önceden yüklenmiştir ve kabuk, hesabınızla birlikte kullanılacak şekilde yapılandırılmıştır.

Cloud Shell'i açmak için kod bloğunun sağ üst köşesinden Deneyin'i seçmeniz yeterlidir. İsterseniz https://shell.azure.com adresine giderek Cloud Shell'i ayrı bir tarayıcı sekmesinde de başlatabilirsiniz.

Cloud Shell açıldığında ortamınız için Bash'in seçili olduğunu doğrulayın. Sonraki oturumlarda Bash ortamında Azure CLI kullanılır, kod bloklarını kopyalamak için Kopyala'yı seçin, Cloud Shell'e yapıştırın ve çalıştırmak için Enter tuşuna basın.

Azure'da oturum açma

Cloud Shell'de oturum açılan ilk hesapta otomatik olarak kimlik doğrulaması yapılır. Farklı bir abonelik kullanarak oturum açmak için aşağıdaki betiği kullanın ve yerine <Subscription ID> Azure Abonelik Kimliğiniz yazın. Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

subscription="<subscriptionId>" # add subscription here

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

Daha fazla bilgi için bkz . Etkin aboneliği ayarlama veya etkileşimli olarak oturum açma

Parametre değerlerini ayarlama

Aşağıdaki değerler, veritabanını ve gerekli kaynakları oluşturmak için sonraki komutlarda kullanılır. Sunucu adlarının tüm Azure'da genel olarak benzersiz olması gerekir, bu nedenle sunucu adını oluşturmak için $RANDOM işlevi kullanılır.

Ortamınız için uygun konumu değiştirin. değerini, kendi ortamınızla eşleşecek IP adresi aralığıyla değiştirin 0.0.0.0 . Sunucuya erişimi yalnızca IP adresinizle kısıtlamak için kullandığınız bilgisayarın genel IP adresini kullanın.

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

Kaynak grubu oluşturma

az group create komutuyla bir kaynak grubu oluşturun. Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur:

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

Sunucu oluşturma

az postgres server create komutuyla bir sunucu oluşturun .

# 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

Not

  • Sunucu adı yalnızca küçük harf, sayı ve kısa çizgi (-) karakterini içerebilir. 3 ile 63 karakter uzunluğunda olmalıdır. Daha fazla bilgi için bkz. adlandırma kuralları PostgreSQL için Azure Veritabanı.
  • Yönetici kullanıcının kullanıcı adı azure_superuser, yönetici, yönetici, kök, konuk veya genel olamaz.
  • Parola şu üç kategoriden 8 ila 128 karakter içermelidir: İngilizce büyük harfler, İngilizce küçük harfler, sayılar ve alfasayısal olmayan karakterler.
  • SKU'lar hakkında bilgi için bkz. fiyatlandırma PostgreSQL için Azure Veritabanı.

Önemli

Sunucu tabanlı güvenlik duvarı kuralı oluşturma

Yerel ortamınıza sunucuya bağlanmak için erişim vermek için az postgres server firewall-rule create komutuyla bir güvenlik duvarı kuralı oluşturun.

# 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

İpucu

IP adresinizi bilmiyorsanız, almak için WhatIsMyIPAddress.com gidin.

Not

Bağlantı sorunlarını önlemek için ağınızın güvenlik duvarının 5432 numaralı bağlantı noktasına izin verdiğinden emin olun. PostgreSQL için Azure Veritabanı sunucuları bu bağlantı noktasını kullanır.

Sunucu tabanlı güvenlik duvarı kurallarını listeleme

Mevcut sunucu güvenlik duvarı kurallarını listelemek için az postgres server firewall-rule list komutunu çalıştırın.

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

Çıktı, varsa güvenlik duvarı kurallarını varsayılan olarak JSON biçiminde listeler. Çıkış olarak daha okunabilir bir tablo biçimi için anahtarını --output table kullanabilirsiniz.

Bağlantı bilgilerini alma

Sunucunuza bağlanmak için konak bilgilerini sağlayın ve kimlik bilgilerine erişin.

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

administratorLogin ve fullyQualifiedDomainName değerlerini not edin.

psql kullanarak PostgreSQL için Azure Veritabanı sunucusuna bağlanma

Psql istemcisi, PostgreSQL sunucularına bağlanmak için popüler bir seçenektir. Azure Cloud Shell ile kullanarak psql sunucunuza bağlanabilirsiniz. Varsa yerel ortamınızda da kullanabilirsiniz psql . Postgres adlı boş bir veritabanı, yeni bir PostgreSQL sunucusuyla otomatik olarak oluşturulur. Aşağıdaki kodda gösterildiği gibi ile psqlbağlanmak için bu veritabanını kullanabilirsiniz.

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

İpucu

Postgres'e bağlanmak için BIR URL yolu kullanmayı tercih ediyorsanız, URL ile kullanıcı adıyla %40@ oturum açma kodunu kodlayın. Örneğin, psql için bağlantı dizesi şöyle olabilir:

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

Boş veritabanı oluşturma

  1. Sunucuya bağlandıktan sonra, istemde boş bir veritabanı oluşturun:

    CREATE DATABASE mypgsqldb;
    
  2. İstemde, bağlantıyı yeni oluşturulan mypgsqldb veritabanına geçirmek için aşağıdaki komutu yürütün:

    \c mypgsqldb
    

Veritabanında tablo oluşturma

Artık PostgreSQL için Azure Veritabanına nasıl bağlanacağınızı bildiğinize göre bazı temel görevleri tamamlayabilirsiniz:

İlk olarak, bir tablo oluşturun ve bu tabloya bazı veriler yükleyin. Örneğin, stok bilgilerini izleyen bir tablo oluşturun:

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

Şimdi şunu yazarak tablo listesinde yeni oluşturulan tabloyu görebilirsiniz:

\dt

Tabloya veri yükleme

Şimdi oluşturulan bir tablo olmadığından buna bazı veriler ekleyin. Açık olan komut istemi penceresinde şu sorguyu çalıştırarak birkaç veri satırı ekleyin:

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

Daha önce oluşturduğunuz tabloya iki satırlık örnek veri eklediniz.

Tablolardaki verileri sorgulama ve güncelleştirme

Envanter tablosundan bilgileri almak için şu sorguyu yürütün:

SELECT * FROM inventory;

Envanter tablosundaki verileri güncelleştirme olanağınız da vardır:

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

Verileri alırken güncelleştirilmiş değerleri görebilirsiniz:

SELECT * FROM inventory;

Bir veritabanını daha önceki bir noktaya geri yükleme

Bir tabloyu yanlışlıkla sildiğinizi düşünün. Bu işlemi kolayca geri alamazsınız. PostgreSQL için Azure Veritabanı sunucunuzun yedeğinin olduğu herhangi bir noktaya dönerek (yapılandırdığınız yedekleme bekletme dönemine göre belirlenir) bu noktayı yeni bir sunucuya geri yükleyebilirsiniz. Bu yeni sunucuyu silinen verilerinizi kurtarmak için kullanabilirsiniz.

Aşağıdaki komut, örnek sunucuyu tablo eklenmeden önceki bir noktaya geri yükler:

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 komutu için aşağıdaki parametreler gerekir:

Ayar Önerilen değer Açıklama
resource-group  myresourcegroup  Kaynak sunucunun bulunduğu kaynak grubu. 
Adı mydemoserver-restored Geri yükleme komutu tarafından oluşturulan yeni sunucunun adı.
restore-point-in-time 2017-04-13T13:59:00Z Zaman içinde geri yüklenecek bir nokta seçin. Bu tarih ve saat, kaynak sunucunun yedekleme saklama dönemi içinde olmalıdır. ISO8601 tarih ve saat biçimini kullanın. Örneğin, 2017-04-13T05:59:00-08:00 şeklinde kendi yerel saat diliminizi ya da 2017-04-13T13:59:00Z şeklindeki UTC Zulu biçimini kullanabilirsiniz.
source-server mydemoserver Geri yükleme kaynağı olarak kullanılacak sunucunun adı veya kimliği.

Bir sunucu zaman içinde bir noktaya geri yüklendiğinde, özgün sunucunun belirttiğiniz noktadaki durumunun kopyalanmasıyla yeni bir sunucu oluşturulur. Geri yüklenen sunucunun konum ve fiyatlandırma katmanı değerleri kaynak sunucu ile aynı olur.

Komut zaman uyumludur ve sunucu geri yüklendikten sonra döndürülür. Geri yükleme tamamlandığında, oluşturulan yeni sunucuyu bulun. Verilerin beklenen şekilde geri yüklendiğini doğrulayın.

Kaynakları temizleme

Bu kaynaklara sürekli ihtiyaç duymadığınız sürece az group delete komutunu kullanarak kaynak grubunu ve onunla ilişkili tüm kaynakları kaldırmak için aşağıdaki komutu kullanın. Bu kaynaklardan bazılarının oluşturulması ve silinmesi biraz zaman alabilir.

az group delete --name $resourceGroup

Sonraki adımlar

Bu öğreticide, Azure CLI (komut satırı arabirimi) ve diğer yardımcı programları kullanarak aşağıdakileri nasıl yapabileceğinizi öğrendiniz:

  • PostgreSQL için Azure Veritabanı sunucusu oluşturma
  • Sunucu güvenlik duvarını yapılandırma
  • Veritabanı oluşturmak için psql yardımcı programını kullanma
  • Örnek verileri yükleme
  • Verileri sorgulama
  • Verileri güncelleştirme
  • Verileri geri yükleme