Öğ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
- Sunucunuzdaki varsayılan PostgreSQL sürümü 9.6'dır. Desteklenen tüm sürümleri görmek için bkz . Desteklenen PostgreSQL ana sürümleri.
- SSL, sunucunuzda varsayılan olarak etkindir. SSL hakkında daha fazla bilgi için bkz . SSL bağlantısını yapılandırma.
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 psql
bağ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
Sunucuya bağlandıktan sonra, istemde boş bir veritabanı oluşturun:
CREATE DATABASE mypgsqldb;
İ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