Aracılığıyla paylaş


Hızlı Başlangıç: PostgreSQL için Azure Veritabanı esnek sunucu oluşturma

PostgreSQL için Azure Veritabanı, bulutta yüksek oranda kullanılabilir PostgreSQL veritabanlarını çalıştırmak, yönetmek ve ölçeklendirmek için kullanabileceğiniz bir yönetilen hizmettir.

Bu hızlı başlangıçta, Azure portal, Azure CLI veya Azure Resource Manager (ARM) şablonlarını kullanarak PostgreSQL için Azure Veritabanı esnek sunucu örneğinin nasıl oluşturulacağı gösterilmektedir.

Önkoşullar

Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:

  • Bir Azure aboneliği. Hesabınız yoksa ücretsiz bir Azure hesabı oluşturun.
  • Aboneliğinizde kaynak oluşturmak için uygun izinler.

Ne oluşturduğunuzu anlama

PostgreSQL için Azure Veritabanı esnek sunucu örneği şunları içerir:

  • Yapılandırılmış işlem ve depolama kaynakları kümesi.
  • Azure kaynak grubu içinde dağıtım.
  • postgres Varsayılan olarak oluşturulan bir veritabanı.
  • azure_maintenance Yönetilen hizmet işlemleri için bir veritabanı.
  • azure_sys Sorgu deposu ve dizin ayarlama özellikleri için bir veritabanı.

Uyarı

Bağlantılar genellikle yerleşik PgBouncer bağlantı havuzu oluşturucu aracılığıyla bağlanıyorsa 5432 numaralı bağlantı noktasını veya 6432 numaralı bağlantı noktasını kullanır.

Azure portalını kullanarak sunucu oluşturma

  1. Azure portalınaoturum açın.
  2. Sol üst köşedeki Kaynak oluştur'u seçin.
  3. Kategoriler'in altında Veritabanları'yı seçin.
  4. PostgreSQL için Azure Veritabanı esnek sunucusunu bulun ve seçin.
  5. Oluştur'i seçin.

Temel ayarları yapılandırma

Proje ayrıntıları

Setting Önerilen değer Notes
Subscription Aboneliğiniz Kaynağın faturalandırıldığı yeri seçme
Kaynak Grubu myresourcegroup Yeni oluştur veya var olanı seç

Sunucu ayrıntıları

Setting Önerilen değer Description
Sunucu adı mydemoserver-pgsql Genel olarak benzersiz olması gerekir. Etki alanı .postgres.database.azure.com otomatik olarak eklenir
Region Size en yakın bölge Uyumluluk, veri yerleşimi, fiyatlandırma ve kullanıcılara yakınlığı göz önünde bulundurun
PostgreSQL sürümü En son mevcut Şu anda destekleniyor: 18, 17, 16, 15, 14, 13, 12, 11
İş yükü türü Gelişme Geliştirme patlamalı SKU'ları kullanır. Üretim, Genel Amaçlı veya Bellek İyileştirilmiş'i kullanır.
Kullanılabilirlik alanı Tercih yok Uygulamanızla birlikte kullanmak için kullanışlıdır

Yüksek ulaşılabilirlik

Seçenek SLA Description
Disabled 99,9% Yedek olmayan tek sunucu
Aynı bölge %99,95 Aynı kullanılabilirlik alanında bekleme
Alanlar arası yedekli %99,99 Farklı bir kullanılabilirlik alanında bekleme

Authentication

Setting Description Önerilir
Kimlik doğrulama yöntemi Kullanıcıların kimlik doğrulaması - Yalnızca PostgreSQL kimlik doğrulaması (hızlı başlangıç için)
- Microsoft Entra kimlik doğrulaması (üretim için)
- Her ikisi de (esneklik için)
Yönetici kullanıcı adı adminuser - 1-63 karakter uzunluğunda olmalıdır
- Yalnızca sayılar ve harfler
- pg_ ile başlayamaz
- Sistem tarafından rezerve edilmiş adlar olamaz
Parola Karmaşık parola Büyük harf, küçük harf, sayı ve özel karakter içeren 8-128 karakter

İşlem ve depolamayı yapılandırma

Özelleştirmek için Sunucuyu yapılandır'ı seçin:

İşlem katmanı

Katman Kullanım örneği Description
Patlama kapasiteli Gelişme Sürekli tam CPU gerektirmeyen iş yükleri için
Genel Amaçlı Üretim En yaygın üretim iş yükleri
Bellek için İyileştirilmiş Yüksek bellekli iş yükleri Yüksek bellek-CPU oranı gerektiren iş yükleri

Depolama ayarları

Setting Daha sonra değişebilir Description
Depolama türü ❌ Hayır Premium SSD veya Premium SSD v2
Depolama boyutu ✅ Evet (yalnızca artış) Oluşturma işleminden sonra küçülemiyor
Performans katmanı ✅ Evet IOPS ve aktarım hızını denetler
Depolama otomatik büyütme ✅ Evet Sınırlara yaklaşılırken otomatik olarak genişletme

Yedekleme ayarları

Setting Daha sonra değişebilir Description
Yedekleme saklama ✅ Evet 7-35 gün
Yedek yedeklilik ❌ Hayır Yerel olarak yedekli, Alanlar arası yedekli veya Coğrafi olarak yedekli
Coğrafi yedeklilik ❌ Hayır Yalnızca Azure eşleştirilmiş bölgelerinde kullanılabilir

Ağı yapılandırma

Bağlantı yönteminizi seçin (oluşturulduktan sonra değiştirilemez):

Genel erişim (izin verilen IP adresleri)

Güvenlik duvarı kurallarını kullanarak genel uç nokta üzerinden bağlanın.

Ayarlar:

Setting Description
Genel erişime izin ver Güvenlik duvarı kurallarını yapılandırmak için genel erişimi etkinleştirme
Azure hizmetlerine izin ver Tüm Azure hizmetlerinden bağlantılara izin ver
Geçerli istemci IP'sini ekle IP adresinizi izin ver listesine ekleme

Özel erişim (sanal ağ Tümleştirmesi)

Sanal ağ içindeki özel bir uç nokta üzerinden bağlanın. Daha fazla bilgi için bkz. PostgreSQL için Azure Veritabanı için özel erişime sahip ağ.

Güvenliği yapılandırma

Setting Daha sonra değişebilir Options
Veri şifreleme anahtarı ❌ Hayır Hizmet tarafından yönetilen veya Müşteri tarafından yönetilen

Kaynak etiketleri ekleme (isteğe bağlı)

Kaynakları ad-değer çiftleriyle düzenleyin:

İsim Değer Amaç
Çevre Gelişme Ortam türünü tanımlama
CostCenter IT-Dept Departmana göre maliyetleri izleme
Sahibi admin@contoso.com Sorumlu tarafı belirleme

Gözden geçirme ve oluşturma

  1. Seçin, gözden geçir ve oluştur.
  2. Tüm yapılandırmaları gözden geçirin.
  3. Dağıtmak için Oluştur'u seçin.

Dağıtım genellikle 5-10 dakika sürer. Tamamlandığında, sunucunuza erişmek için Kaynağa git'i seçin.

Azure CLI kullanarak sunucu oluşturma

CLI önkoşulları

Bu betik için Cloud Shell'de çalıştırılması çok uzun sürdüğü için Azure CLI'yi yerel olarak kullanın.

Azure'a Giriş Yap

Belirli bir abonelik kullanarak oturum açmak için aşağıdaki betiği kullanın.

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

Azure Cloud Shell kullanıyorsanız zaten oturum açmışsınız demektir.

CLI ile sunucu oluşturma

Tek bir komutla sunucu oluşturma:

az postgres flexible-server create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --location eastus \
  --admin-user myadmin \
  --admin-password <password> \
  --sku-name Standard_D4ds_v5 \
  --tier GeneralPurpose \
  --public-access 0.0.0.0 \
  --storage-size 128 \
  --tags "Environment=Development"

CLI parametreleri referansı

Parametre Description Example
--resource-group Kaynak grubu adı myresourcegroup
--name Genel olarak benzersiz sunucu adı mydemoserver-pgsql
--location Azure region eastus (bölge adı)
--admin-user Yönetici kullanıcı adı myadmin
--admin-password Yönetici parolası YourPassword123!
--sku-name Hesaplama SKU'su Standard_D4ds_v5
--tier İşlem katmanı Patlayabilir, Genel Amaçlı, Bellek Optimizasyonlu
--storage-size Depolama (GB) 128
--public-access İzin verilen IP adresleri 0.0.0.0 (tüm Azure hizmetleri), IP adresi veya IP aralığı
--version PostgreSQL sürümü 16
--high-availability HA modu Devre Dışı, SameZone, ZoneRedundant
--backup-retention Yedekleme saklama günleri 7-35

Gelişmiş CLI örneği

Alanlar arası yedekli yüksek oranda kullanılabilir bir sunucu oluşturun:

az postgres flexible-server create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql-ha \
  --location eastus \
  --admin-user myadmin \
  --admin-password <password> \
  --sku-name Standard_D4ds_v5 \
  --tier GeneralPurpose \
  --storage-size 256 \
  --storage-type PremiumV2_LRS \
  --high-availability ZoneRedundant \
  --zone 1 \
  --standby-zone 2 \
  --backup-retention 14 \
  --public-access 0.0.0.0

ARM şablonunu kullanarak sunucu oluşturma

ARM şablonuna genel bakış

Azure Resource Manager (ARM) şablonları, altyapıyı kod olarak tanımlamanıza olanak sağlar. Tekrarlanabilir dağıtımlar için şablonları kullanın.

Minimal ARM şablonu

Bu dosyayı olarak postgres-server-template.jsonkaydedin:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serverName": {
      "type": "string",
      "metadata": {
        "description": "Server name must be globally unique"
      }
    },
    "administratorLogin": {
      "type": "string",
      "minLength": 1,
      "maxLength": 63,
      "metadata": {
        "description": "Administrator username"
      }
    },
    "administratorLoginPassword": {
      "type": "securestring",
      "minLength": 8,
      "metadata": {
        "description": "Administrator password"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Server location"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.DBforPostgreSQL/flexibleServers",
      "apiVersion": "2024-08-01",
      "name": "[parameters('serverName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_D4ds_v5",
        "tier": "GeneralPurpose"
      },
      "properties": {
        "administratorLogin": "[parameters('administratorLogin')]",
        "administratorLoginPassword": "[parameters('administratorLoginPassword')]",
        "version": "16",
        "storage": {
          "storageSizeGB": 128,
          "type": "Premium_LRS",
          "autoGrow": "Enabled"
        },
        "backup": {
          "backupRetentionDays": 7,
          "geoRedundantBackup": "Disabled"
        },
        "network": {
          "publicNetworkAccess": "Enabled"
        },
        "highAvailability": {
          "mode": "Disabled"
        }
      }
    }
  ],
  "outputs": {
    "serverFQDN": {
      "type": "string",
      "value": "[reference(parameters('serverName')).fullyQualifiedDomainName]"
    }
  }
}

ARM şablonunu dağıtma

az group create --name myresourcegroup --location eastus

az deployment group create \
  --resource-group myresourcegroup \
  --template-file postgres-server-template.json \
  --parameters \
    serverName=mydemoserver-pgsql \
    administratorLogin=myadmin \
    administratorLoginPassword=<password>

Bağlantı bilgilerini alma

Sunucunuzu oluşturduktan sonra bağlantı ayrıntılarını alın:

Azure portalını kullanma

  1. Azure portalında sunucunuza gidin.
  2. Genel Bakış sayfasını açın.
  3. Şu değerleri kopyalayın:
    • Sunucu adı (Uç Nokta): mydemoserver-pgsql.postgres.database.azure.com
    • Yönetici oturum açma bilgileri: myadmin

Azure CLI’yı kullanma

az postgres flexible-server show \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --query "{serverName:fullyQualifiedDomainName, adminUser:administratorLogin}" \
  --output table

psql kullanarak bağlanma

psql yükleme

PostgreSQL istemci araçlarınız yoksa platformunuz için PostgreSQL'i indirin .

Sunucunuza bağlanma

psql "host=mydemoserver-pgsql.postgres.database.azure.com port=5432 dbname=postgres user=myadmin sslmode=require"

İstendiğinde, sunucu oluşturma sırasında ayarladığınız yönetici parolasını girin.

Bağlantı dizesi biçimi

host=<server-name>.postgres.database.azure.com port=5432 dbname=<database-name> user=<admin-user> password=<password> sslmode=require

Bağlantıyı doğrulama

Bağlandıktan sonra şunları görmeniz gerekir:

psql (14.13, server 16.4)
WARNING: psql major version 14, server major version 16.
         Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

postgres=>

veritabanı oluşturun

CREATE DATABASE user_database;
\c user_database
\q

Bağlantı sorunlarını giderme

Güvenlik duvarı bağlantıyı engelliyor

Şunu görüyorsanız:

connection to server at "mydemoserver-pgsql.postgres.database.azure.com" (###.###.###.###), port 5432 failed: Connection timed out

Çözüm: IP adresinizi güvenlik duvarı kurallarına ekleyin:

az postgres flexible-server firewall-rule create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --rule-name AllowMyIP \
  --start-ip-address <your-ip> \
  --end-ip-address <your-ip>

SSL gerekli ancak yapılandırılmamış

Bağlantı dizesinin sslmode=require içerdiğinden emin olun.

Kaynakları temizle

Hızlı başlangıcı tamamladığınızda, ücretlerden kaçınmak için kaynakları silin.

Kaynak grubunun tamamını silme

az group delete --name myresourcegroup --yes

Yalnızca sunucuyu silme

az postgres flexible-server delete \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --yes