Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLAR IÇIN GEÇERLIDIR:
PostgreSQL için Azure Veritabanı - Esnek Sunucu
PostgreSQL için Azure Veritabanı esnek sunucu, uzantıları kullanarak veritabanınızın işlevselliğini genişletme olanağı sağlar. Uzantılar, veritabanınızdan yüklenebilen veya kaldırılabilen birden çok ilişkili SQL nesnesini tek bir pakette bir komutla paketler. Uzantılar veritabanına yüklendikten sonra yerleşik özellikler gibi çalışır.
PostgreSQL uzantılarını kullanma
Uzantıları esnek PostgreSQL için Azure Veritabanı sunucuya yüklemeden önce, bu uzantıları kullanmak üzere izin verilenler listesine eklemeniz gerekir.
- PostgreSQL için Azure Veritabanı esnek sunucu örneğinizi seçin.
Azure CLI kullanma:
CLI parametre kümesi komutuyla uzantıların izin verilenler listesine girebilirsiniz.
az postgres flexible-server parameter set --resource-group <resource_group> --server-name <server> --subscription <subscription_id> --name azure.extensions --value <extension_name>,<extension_name>
ARM Şablonunu Kullanma: Aşağıdaki örnek, adı postgres-test-server: olan bir sunucuda , pg_buffercache dict_xsynuzantılarını izin verilenler dblinklistesine ekler:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"flexibleServers_name": {
"defaultValue": "postgres-test-server",
"type": "String"
},
"azure_extensions_set_value": {
"defaultValue": " dblink,dict_xsyn,pg_buffercache",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.DBforPostgreSQL/flexibleServers/configurations",
"apiVersion": "2021-06-01",
"name": "[concat(parameters('flexibleServers_name'), '/azure.extensions')]",
"properties": {
"value": "[parameters('azure_extensions_set_value')]",
"source": "user-override"
}
}
]
}
shared_preload_libraries, esnek PostgreSQL için Azure Veritabanı sunucu başlatıldığında hangi kitaplıkların yüklenmesi gerektiğini belirleyen bir sunucu yapılandırma parametresidir. Paylaşılan bellek kullanan tüm kitaplıklar bu parametre aracılığıyla yüklenmelidir. Uzantınızın paylaşılan ön yükleme kitaplıklarına eklenmesi gerekiyorsa şu adımları izleyin:
- PostgreSQL için Azure Veritabanı esnek sunucu örneğinizi seçin.
- Kaynak menüsünde, Ayarlar bölümünde Sunucu parametreleri'ni seçin.
- parametresini
shared_preload_librariesarayın. - Eklemek istediğiniz kitaplıkları seçin.
:::image type="content" source="./media/concepts-extensions/shared-libraries.png" alt-text="Screenshot showing Azure Database for PostgreSQL -setting shared preload libraries parameter setting for extensions installation." lightbox="./media/concepts-extensions/shared-libraries.png":::
```Using [Azure CLI](/cli/azure/):
You can set `shared_preload_libraries` via CLI [parameter set](/cli/azure/postgres/flexible-server/parameter?view=azure-cli-latest&preserve-view=true) command.
```azurecli
az postgres flexible-server parameter set --resource-group <resource_group> --server-name <server> --subscription <subscription_id> --name shared_preload_libraries --value <extension_name>,<extension_name>
Uzantı Oluştur
Uzantılar izin verilenler listesine eklendikten ve yüklendikten sonra, bunları kullanmayı planladığınız her veritabanına yüklenmelidir.
- Bir kullanıcının uzantı oluşturabilmesi için rolün
azure_pg_adminüyesi olması gerekir. Rolünazure_pg_adminbir üyesi diğer kullanıcılara uzantı oluşturma ayrıcalıkları verebilir. - Belirli bir uzantıyı yüklemek için CREATE EXTENSION komutunu çalıştırmanız gerekir. Bu komut, paketlenmiş nesneleri veritabanınıza yükler.
Not
Esnek PostgreSQL için Azure Veritabanı sunucuda sunulan üçüncü taraf uzantıları lisanslı açık kaynak kodlardır. Şu anda premium veya özel lisanslama modellerine sahip üçüncü taraf uzantıları veya uzantı sürümleri sunmıyoruz.
PostgreSQL için Azure Veritabanı esnek sunucu örneği, aşağıdaki tabloda listelendiği gibi önemli PostgreSQL uzantılarının bir alt kümesini destekler. Bu bilgiler, çalıştırılarak SHOW azure.extensions;da kullanılabilir. Bu belgede listelenmeyen uzantılar PostgreSQL için Azure Veritabanı esnek sunucuda desteklenmez. Esnek PostgreSQL için Azure Veritabanı sunucuda kendi uzantınızı oluşturamaz veya yükleyemezsiniz.
Uzantı sürümleri
Esnek PostgreSQL için Azure Veritabanı sunucuda aşağıdaki uzantılar kullanılabilir:
Not
Aşağıdaki tabloda ✔️ yer alan ve işaretli uzantılar, sunucu parametresinde ilgili kitaplıklarının etkinleştirilmesini shared_preload_libraries gerektirir.
| Uzantı adı | Açıklama | PostgreSQL 17 | PostgreSQL 16 | PostgreSQL 15 | PostgreSQL 14 | PostgreSQL 13 | PostgreSQL 12 | PostgreSQL 11 |
|---|---|---|---|---|---|---|---|---|
| address_standardizer | Bir adresi bileşen öğelerine ayrıştırmak için kullanılır. Genellikle coğrafi kodlama adresi normalleştirme adımlarını desteklemek için kullanılır. | 3.5.0 | 3.3.3 | 3.3.1 | 3.2.3 | 3.2.3 | 3.2.3 | 3.2.3 |
| address_standardizer_data_us | Adres Standardizer ABD veri kümesi örneği | 3.5.0 | 3.3.3 | 3.3.1 | 3.2.3 | 3.2.3 | 3.2.3 | 3.2.3 |
| age (Önizleme) | Grafik veritabanı özellikleri sağlar | Yok | 1.5.0 ✔️ | 1.5.0 ✔️ | 1.5.0 ✔️ | 1.5.0 ✔️ | Yok | Yok |
| amcheck | İlişki bütünlüğünü doğrulama işlevleri | 1.4 | 1.3 | 1.3 | 1.3 | 1.2 | 1.2 | 1.1 |
| anon (Önizleme) | Veri anonimleştirme araçları | 1.3.2 ✔️ | 1.3.2 ✔️ | 1.3.2 ✔️ | 1.3.2 ✔️ | 1.3.2 ✔️ | 1.3.2 ✔️ | 1.3.2 ✔️ |
| azure_ai | PostgreSQL için Azure AI ve ML Services tümleştirmesi | Yok | 1.1.0 | 1.1.0 | 1.1.0 | 1.1.0 | 1.1.0 | Yok |
| azure_storage | PostgreSQL için Azure tümleştirmesi | Yok | 1,5 ✔️ | 1,5 ✔️ | 1,5 ✔️ | 1,5 ✔️ | 1,5 ✔️ | Yok |
| çiçeklenmek | Bloom erişim yöntemi - imza dosyası tabanlı dizin | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| btree_gin | GIN'de ortak veri türlerini dizine ekleme desteği | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 |
| btree_gist | GiST'de ortak veri türlerini dizine ekleme desteği | 1.7 | 1.7 | 1.7 | 1.6 | 1.5 | 1.5 | 1.5 |
| citext | Büyük/küçük harfe duyarlı olmayan karakter dizeleri için veri türü | 1.6 | 1.6 | 1.6 | 1.6 | 1.6 | 1.6 | 1.5 |
| küp | Çok boyutlu küpler için veri türü | 1.5 | 1.5 | 1.5 | 1.5 | 1.4 | 1.4 | 1.4 |
| dblink | Veritabanı içinden diğer PostgreSQL veritabanlarına bağlanma | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
| dict_int | Tamsayılar için metin arama sözlüğü şablonu | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| dict_xsyn | Genişletilmiş eş anlamlı işleme için metin arama sözlüğü şablonu | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| toprakçılık | Dünya yüzeyindeki büyük daire mesafelerini hesaplama | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
| fuzzystrmatch | Dizeler arasındaki benzerlikleri ve uzaklığı belirleme | 1.2 | 1.2 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
| hstore | (anahtar, değer) çiftlerinin kümelerini depolamak için veri türü | 1.8 | 1.8 | 1.8 | 1.8 | 1.7 | 1.6 | 1.5 |
| hipopg | PostgreSQL için varsayımsal dizinler | 1.4.0 | 1.4.0 | 1.4.0 | 1.4.0 | 1.4.0 | 1.4.0 | 1.4.0 |
| intagg | Tamsayı toplayıcısı ve numaralandırıcı (eski) | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
| intarray | 1-B tamsayı dizileri için işlevler, işleçler ve dizin desteği | 1.5 | 1.5 | 1.5 | 1.5 | 1.3 | 1.2 | 1.2 |
| ısn | Uluslararası ürün numaralandırma standartları için veri türleri | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
| işte | Büyük Nesne bakımı | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
| login_hook | Login_hook - oturum açma zamanında login_hook.login() yürütme kancası | 1.5 | 1.5 | 1.4 | 1.4 | 1.4 | 1.4 | 1.4 |
| ltree | Hiyerarşik ağaç benzeri yapılar için veri türü | 1.3 | 1.2 | 1.2 | 1.2 | 1.2 | 1.1 | 1.1 |
| oracle_fdw | Oracle veritabanları için yabancı veri sarmalayıcı | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | Yok |
| orafce | Oracle RDBMS'den işlevlerin ve paketlerin bir alt kümesini öykünen işlevler ve işleçler | 4,9 | 4.4 | 3.24 | 3.18 | 3.18 | 3.18 | 3.7 |
| pageinspect | Veritabanı sayfalarının içeriğini düşük düzeyde inceleme | 1.12 | 1.12 | 1.11 | 1.9 | 1.8 | 1.7 | 1.7 |
| pgaudit | Denetim işlevselliği sağlar | 16.0 ✔️ | 16.0 ✔️ | 1,7 ✔️ | 1.6.2 ✔️ | 1,5 ✔️ | 1.4.3 ✔️ | 1.3.2 ✔️ |
| pg_buffercache | Paylaşılan arabellek önbelleğini inceleme | 1.5 | 1.4 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 |
| pg_cron | PostgreSQL için iş zamanlayıcı | 1.6 ✔️ | 1.6 ✔️ | 1.6 ✔️ | 1.6 ✔️ | 1.6 ✔️ | 1.6 ✔️ | 1.4-1 ✔️ |
| pgcrypto | Şifreleme işlevleri | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 | 1.3 |
| pg_freespacemap | Boş alan haritasını (FSM) inceleme | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
| pg_hint_plan | SQL açıklamalarında sözde ipuçları kullanarak PostgreSQL yürütme planlarında ince ayar yapmayı mümkün kılar. | 1.7.0 ✔️ | 1.6.0 ✔️ | 1,5 ✔️ | 1.4 ✔️ | 1.3.7 ✔️ | 1.3.7 ✔️ | 1.3.7 ✔️ |
| pglogical | PostgreSQL Mantıksal Çoğaltma | 2.4.5 ✔️ | 2.4.4 ✔️ | 2.4.2 ✔️ | 2.4.1 ✔️ | 2.4.1 ✔️ | 2.4.1 ✔️ | 2.4.1 ✔️ |
| pg_partman | Bölümlenmiş tabloları zamana veya kimliklere göre yönetmek için uzantı | 5.0.1 ✔️ | 5.0.1 ✔️ | 4.7.1 ✔️ | 4.6.1 ✔️ | 4.5.0 ✔️ | 4.5.0 ✔️ | 4.5.0 ✔️ |
| pg_prewarm | Önceden uyarı ilişkisi verileri | 1.2 ✔️ | 1.2 ✔️ | 1.2 ✔️ | 1.2 ✔️ | 1.2 ✔️ | 1.2 ✔️ | 1.2 ✔️ |
| pg_repack | PostgreSQL veritabanlarındaki tabloları minimum kilitlerle yeniden düzenleme | 1.4.7 | 1.4.7 | 1.4.7 | 1.4.7 | 1.4.7 | 1.4.7 | 1.4.7 |
| pgrouting | PgRouting Uzantısı | Yok | Yok | 3.5.0 | 3.3.0 | 3.3.0 | 3.3.0 | 3.3.0 |
| pgrowlocks | Satır düzeyi kilitleme bilgilerini göster | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
| pg_squeeze | İlişkiden kullanılmayan alanı kaldırma aracı. | 1,7 ✔️ | 1.6 ✔️ | 1.6 ✔️ | 1,5 ✔️ | 1,5 ✔️ | 1,5 ✔️ | 1,5 ✔️ |
| pg_stat_statements | Yürütülen tüm SQL deyimlerinin yürütme istatistiklerini izleme | 1.11 ✔️ | 1.10 ✔️ | 1.10 ✔️ | 1,9 ✔️ | 1,8 ✔️ | 1,7 ✔️ | 1.6 ✔️ |
| pgstattuple | Tanımlama grubu düzeyinde istatistikleri göster | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 | 1.5 |
| pg_trgm | Metin benzerliği ölçümü ve trigramlara göre dizin araması | 1.6 | 1.6 | 1.6 | 1.6 | 1.5 | 1.4 | 1.4 |
| pg_visibility | Görünürlük haritasını (VM) ve sayfa düzeyinde görünürlük bilgilerini inceleme | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
| plpgsql | PL/pgSQL yordam dili | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| plv8 | PL/JavaScript (v8) güvenilen yordam dili | 3.1.7 | 3.1.7 | 3.1.7 | 3.0.0 | 3.0.0 | 3.0.0 | 3.0.0 |
| postgis | PostGIS geometrisi ve coğrafya uzamsal türleri ve işlevleri | 3.5.0 | 3.3.3 | 3.3.1 | 3.2.3 | 3.2.3 | 3.2.3 | 3.2.3 |
| postgis_raster | PostGIS raster türleri ve işlevleri | 3.5.0 | 3.3.3 | 3.3.1 | 3.2.3 | 3.2.3 | 3.2.3 | 3.2.3 |
| postgis_sfcgal | PostGIS SFCGAL işlevleri | 3.5.0 | 3.3.3 | 3.3.1 | 3.2.3 | 3.2.3 | 3.2.3 | 3.2.3 |
| postgis_tiger_geocoder | PostGIS tiger geocoder ve ters coğrafi kodlayıcı | 3.5.0 | 3.3.3 | 3.3.1 | 3.2.3 | 3.2.3 | 3.2.3 | 3.2.3 |
| postgis_topology | PostGIS topolojisi uzamsal türleri ve işlevleri | 3.5.0 | 3.3.3 | 3.3.1 | 3.2.3 | 3.2.3 | 3.2.3 | 3.2.3 |
| postgres_fdw | Uzak PostgreSQL sunucuları için yabancı veri sarmalayıcı | 1.1 | 1.1 | 1.1 | 1.1 | 1.0 | 1.0 | 1.0 |
| postgres_protobuf | PostgreSQL için protokol arabellekleri | 0,2 | 0,2 | 0,2 | 0,2 | 0,2 | 0,2 | Yok |
| semver | Anlamsal sürüm veri türü | 0.32.1 | 0.32.1 | 0.32.0 | 0.32.0 | 0.32.0 | 0.32.0 | 0.32.0 |
| session_variable | Session_variable - oturum değişkenlerinin ve sabitlerinin kaydı ve işlemesi | 3.3 | 3.3 | 3.3 | 3.3 | 3.3 | 3.3 | 3.3 |
| sslinfo | SSL sertifikaları hakkında bilgi | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
| tablefunc | Çapraz da dahil olmak üzere tüm tabloları işleyen işlevler | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| tds_fdw | TDS veritabanını sorgulamak için yabancı veri sarmalayıcı (Sybase veya Microsoft SQL Server) | 2.0.3 | 2.0.3 | 2.0.3 | 2.0.3 | 2.0.3 | 2.0.3 | 2.0.3 |
| timescaledb | Zaman serisi verileri için ölçeklenebilir eklemeleri ve karmaşık sorguları etkinleştirir | Yok | 2.13.0 ✔️ | 2.10.0 ✔️ | 2.10.0 ✔️ | 2.10.0 ✔️ | 2.10.0 ✔️ | 1.7.4 ✔️ |
| tsm_system_rows | Satır sayısını sınır olarak kabul eden TABLESAMPLE yöntemi | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| tsm_system_time | Milisaniye cinsinden süreyi sınır olarak kabul eden TABLESAMPLE yöntemi | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| doğru olmayan | Aksanları kaldıran metin arama sözlüğü | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
| uuid-ossp | Evrensel olarak benzersiz tanımlayıcılar (UUID' ler) oluşturma | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
| vektör | Vektör veri türü ve ivfflat ve hnsw erişim yöntemleri | 0.7.0 | 0.7.0 | 0.7.0 | 0.7.0 | 0.7.0 | 0.7.0 | 0.5.1 |
PostgreSQL uzantılarını yükseltme
Veritabanı uzantılarının yerinde yükseltmelerine basit bir komutla izin verilir. Bu özellik, müşterilerin üçüncü taraf uzantılarını en son sürümlere otomatik olarak güncelleştirmelerini ve mevcut ve güvenli sistemleri el ile çalışmadan korumalarını sağlar.
Uzantıları Güncelleştirme
Yüklü bir uzantıyı Azure tarafından desteklenen en son kullanılabilir sürüme güncelleştirmek için aşağıdaki SQL komutunu kullanın:
ALTER EXTENSION <extension_name> UPDATE;
Bu komut, kullanıcıların Azure tarafından onaylanan en son sürüme el ile yükseltmesine olanak tanıyarak veritabanı uzantılarının yönetimini basitleştirerek hem uyumluluğu hem de güvenliği geliştirir.
Sınırlamalar
Uzantıları güncelleştirmek basittir ancak bazı sınırlamalar vardır:
- Belirli bir sürümün seçimi: Komut, bir uzantının ara sürümlerine güncelleştirmeyi desteklemez. Her zaman en son kullanılabilir sürüme güncelleştirilir.
- Eski sürüme düşürme: Bir uzantıyı önceki bir sürüme düşürmeyi desteklemez. Bir sürüm düşürme gerekiyorsa, destek yardımı gerektirebilir ve önceki sürümün kullanılabilirliğine bağlıdır.
Yüklü uzantılar
Veritabanınızda yüklü olan uzantıları listelemek için aşağıdaki SQL komutunu kullanın:
SELECT * FROM pg_extension;
Kullanılabilir uzantılar ve sürümleri
Geçerli veritabanı yüklemenizde bir uzantının hangi sürümlerinin kullanılabilir olduğunu denetlemek için sistem kataloğu görünümünü sorgula pg_available_extensions . Örneğin, uzantı için kullanılabilir sürümü belirlemek için azure_aişunu yürütür:
SELECT * FROM pg_available_extensions WHERE name = 'azure_ai';
Bu komutlar veritabanınızın uzantı yapılandırmaları hakkında gerekli içgörüleri sağlayarak sistemlerinizin verimli ve güvenli bir şekilde korunmasına yardımcı olur. PostgreSQL için Azure Veritabanı, en son uzantı sürümlerinde kolay güncelleştirmeleri etkinleştirerek veritabanı uygulamalarınızın sağlam, güvenli ve verimli yönetimini desteklemeye devam eder.
PostgreSQL için Azure Veritabanı esnek sunucuya özgü önemli noktalar
Aşağıda, PostgreSQL için Azure Veritabanı esnek sunucu hizmetinde kullanıldığında dikkat edilmesi gereken bazı önemli noktalar gerektiren desteklenen uzantıların listesi yer alır. Liste alfabetik olarak sıralanır.
dblink
dblink, bir PostgreSQL için Azure Veritabanı esnek sunucu örneğinden diğerine veya aynı sunucudaki başka bir veritabanına bağlanmanızı sağlar. PostgreSQL için Azure Veritabanı esnek sunucu, herhangi bir PostgreSQL sunucusuna hem gelen hem de giden bağlantıları destekler. Gönderen sunucunun alıcı sunucuya giden bağlantılara izin verebilmesi gerekir. Benzer şekilde, alıcı sunucunun gönderen sunucudan bağlantılara izin vermesi gerekir.
Bu uzantıyı kullanmayı planlıyorsanız sunucularınızı sanal ağ tümleştirmesi ile dağıtmanızı öneririz. Varsayılan olarak sanal ağ tümleştirmesi, sanal ağdaki sunucular arasında bağlantılara izin verir. Erişimi özelleştirmek için sanal ağ güvenlik gruplarını kullanmayı da seçebilirsiniz.
pg_buffercache
pg_buffercacheshared_buffers içeriğini incelemek için kullanılabilir. Bu uzantıyı kullanarak belirli bir ilişkinin önbelleğe alındığını veya önbelleğe alınmadığını anlayabilirsiniz (içindeshared_buffers). Bu uzantı, performans sorunlarını (önbelleğe almayla ilgili performans sorunlarını) gidermenize yardımcı olabilir.
Bu uzantı PostgreSQL'in çekirdek yüklemesi ile tümleşiktir ve kolayca yüklenebilir.
CREATE EXTENSION pg_buffercache;
pg_cron
pg_cron, veritabanının içinde uzantı olarak çalışan postgreSQL için basit, cron tabanlı bir iş zamanlayıcıdır. Uzantı, pg_cron PostgreSQL veritabanında zamanlanmış bakım görevlerini çalıştırmak için kullanılabilir. Örneğin, bir tablonun düzenli aralıklı vakumlarını çalıştırabilir veya eski veri işlerini kaldırabilirsiniz.
pg_cron birden çok işi paralel olarak çalıştırabilir, ancak aynı anda işin en fazla bir örneğini çalıştırır. İkinci çalıştırmanın ilk çalıştırma tamamlanmadan başlaması gerekiyorsa, ikinci çalıştırma kuyruğa alınır ve ilk çalıştırma tamamlanır tamamlanmaz başlatılır. Bu şekilde, işlerin tam olarak zamanlandığı kadar çok kez çalıştığından ve kendileriyle aynı anda çalışmadığından emin olunması sağlanır.
Bazı örnekler:
Eski verileri Cumartesi günü saat 03:30'da (GMT) silmek için.
SELECT cron.schedule('30 3 * * 6', $$DELETE FROM events WHERE event_time < now() - interval '1 week'$$);
Her gün saat 10:00'da (GMT) varsayılan veritabanında postgresvakum çalıştırmak için.
SELECT cron.schedule('0 10 * * *', 'VACUUM');
'den pg_crontüm görevleri zamanlanmamış olarak ayarlamak için.
SELECT cron.unschedule(jobid) FROM cron.job;
ile pg_cronzamanlanmış olan tüm işleri görmek için.
SELECT * FROM cron.job;
Vakumu her gün saat 10:00'da (GMT) azure_pg_admin rol hesabı altında 'testcron' veritabanında çalıştırmak için.
SELECT cron.schedule_in_database('VACUUM','0 10 * * * ','VACUUM','testcron',null,TRUE);
Not
pg_cron uzantısı, güvenlikten ödün vermeden PostgreSQL için Azure Veritabanı esnek sunucu veritabanı örneğinizdeki diğer veritabanlarında çalışacak işler zamanlama olanağı sağlamak amacıyla postgres veritabanı içindeki her PostgreSQL için Azure Veritabanı esnek sunucu örneği için önceden yüklenirshared_preload_libraries. Ancak, güvenlik nedeniyle liste uzantısına izin vermeli pg_cron ve CREATE EXTENSION komutunu kullanarak yüklemelisiniz.
pg_cron Sürüm 1.4'den başlayarak ve cron.alter_job işlevlerini kullanarak cron.schedule_in_database işinizi belirli bir veritabanında zamanlayabilir ve mevcut bir zamanlamayı güncelleştirebilirsiniz.
Bazı örnekler:
DbName veritabanındaki eski verileri Cumartesi günü saat 03:30'da (GMT) silmek için.
SELECT cron.schedule_in_database('JobName', '30 3 * * 6', $$DELETE FROM events WHERE event_time < now() - interval '1 week'$$,'DBName');
Not
cron_schedule_in_database işlevi, isteğe bağlı parametre olarak kullanıcı adı sağlar. Kullanıcı adını null olmayan bir değere ayarlamak için PostgreSQL süper kullanıcı ayrıcalığı gerekir ve esnek PostgreSQL için Azure Veritabanı sunucuda desteklenmez. Yukarıdaki örneklerde, işi azure_pg_admin rol ayrıcalıklarına sahip olması gereken, işi zamanlayan kullanıcı bağlamında çalıştırılan isteğe bağlı kullanıcı adı parametresi atlanmış veya null olarak ayarlanmış bu işlevin çalıştırılması gösterilmektedir.
Mevcut zamanlamada veritabanı adını güncelleştirmek veya değiştirmek için
SELECT cron.alter_job(job_id:=MyJobID,database:='NewDBName');
pg_failover_slots
PG Yük Devretme Yuvaları uzantısı, hem mantıksal çoğaltma hem de yüksek kullanılabilirlik özellikli sunucularla çalışırken PostgreSQL için Azure Veritabanı esnek sunucuyu geliştirir. Yük devretme sonrasında mantıksal çoğaltma yuvalarını korumayan standart PostgreSQL altyapısındaki sınamayı etkili bir şekilde ele alır. Bu yuvaların korunması, birincil sunucu rolü değişiklikleri sırasında çoğaltma duraklamalarını veya veri uyuşmazlıklarını önlemek ve işletimsel sürekliliği ve veri bütünlüğünü sağlamak için kritik öneme sahiptir.
Uzantı, çoğaltma yuvalarının gerekli aktarımını, temizlemesini ve eşitlemesini yöneterek yük devretme işlemini kolaylaştırır ve böylece sunucu rolü değişiklikleri sırasında sorunsuz bir geçiş sağlar. Uzantı, PostgreSQL sürüm 11 ile 16 için desteklenir.
GitHub sayfasında PG Yük Devretme Yuvaları uzantısını nasıl kullanacağınız hakkında daha fazla bilgi bulabilirsiniz.
pg_failover_slots etkinleştirme
PostgreSQL için Azure Veritabanı esnek sunucu örneğinizde PG Yük Devretme Yuvaları uzantısını etkinleştirmek için, uzantıyı sunucunun paylaşılan ön yükleme kitaplıklarına ekleyerek ve belirli bir sunucu parametresini ayarlayarak sunucunun yapılandırmasını değiştirmeniz gerekir. Süreç şu şekildedir:
- parametresini güncelleştirerek sunucunun paylaşılan ön yükleme kitaplıklarına
shared_preload_librariesekleyinpg_failover_slots. - Sunucu parametresini
hot_standby_feedbackolarakondeğiştirin.
parametresinde shared_preload_libraries yapılan tüm değişikliklerin etkili olması için sunucunun yeniden başlatılması gerekir.
- PostgreSQL için Azure Veritabanı esnek sunucu örneğinizi seçin.
- Kaynak menüsünde, Ayarlar bölümünde Sunucu parametreleri'ni seçin.
- parametresini
shared_preload_librariesarayın ve değerini içerecekpg_failover_slotsşekilde düzenleyin. - parametresini
hot_standby_feedbackarayın ve değerini olarakonayarlayın. - Değişikliklerinizi korumak için Kaydet'i seçin. Şimdi Kaydet ve yeniden başlat seçeneğiniz vardır. Değişiklik
shared_preload_librariessunucunun yeniden başlatılmasını gerektirdiğinden değişikliklerin etkili olduğundan emin olmak için bunu seçin.
Kaydet ve yeniden başlat'ı seçerek sunucunuz otomatik olarak yeniden başlatılır ve yeni yapılan değişiklikler uygulanır. Sunucu yeniden çevrimiçi olduktan sonra PG Yük Devretme Yuvaları uzantısı birincil PostgreSQL için Azure Veritabanı esnek sunucu örneğinizde etkinleştirilir ve çalışır duruma gelir ve yük devretme sırasında mantıksal çoğaltma yuvalarını işlemeye hazırdır.
pg_hint_plan
pg_hint_plan aşağıdakiler gibi SQL açıklamalarında "ipuçları" olarak adlandırılan postgreSQL yürütme planlarını ayarlamayı mümkün kılar:
/*+ SeqScan(a) */
pg_hint_plan hedef SQL deyimiyle verilen özel formun açıklamasındaki ipucu tümceciklerini okur. Özel form "/*+" karakter dizisiyle başlar ve "*/" ile biter. İpucu tümcecikleri, ipucu adından ve parantez içine alınmış ve boşluklarla sınırlandırılmış aşağıdaki parametrelerden oluşur. Okunabilirlik için yeni satırlar, her ipucu tümceciği sınırlandırabilir.
Örnek:
/*+
HashJoin(a b)
SeqScan(a)
*/
SELECT *
FROM pgbench_branches b
JOIN pgbench_accounts an ON b.bid = a.bid
ORDER BY a.aid;
Önceki örnek, planlayıcının a tablosundaki bir seq scan sonucunu kullanarak b tablosuyla birleştirilmesine hash joinneden olur.
PostgreSQL uzantılarını kullanma konusunda gösterildiği gibi, pg_hint_plan yüklemek ve listelemeye izin vermek için, bunu sunucunun paylaşılan ön yükleme kitaplıklarına eklemeniz gerekir. Postgres'in shared_preload_libraries parametresinde yapılan bir değişiklik, sunucunun yeniden başlatılmasının etkili olmasını gerektirir. Azure portalını veya Azure CLI'yi kullanarak parametreleri değiştirebilirsiniz.
- PostgreSQL için Azure Veritabanı esnek sunucu örneğinizi seçin.
- Kaynak menüsünde, Ayarlar bölümünde Sunucu parametreleri'ni seçin.
- parametresini
shared_preload_librariesarayın ve değerini içerecekpg_hint_planşekilde düzenleyin. - Değişikliklerinizi korumak için Kaydet'i seçin. Şimdi Kaydet ve yeniden başlat seçeneğiniz vardır. Değişiklik
shared_preload_librariessunucunun yeniden başlatılmasını gerektirdiğinden değişikliklerin etkili olduğundan emin olmak için bunu seçin. Artık PostgreSQL için Azure Veritabanı esnek sunucu veritabanınızı pg_hint_plan etkinleştirebilirsiniz. Veritabanına bağlanın ve aşağıdaki komutu çalıştırın:
CREATE EXTENSION pg_hint_plan;
pg_prewarm
Uzantı ilişkisel pg_prewarm verileri önbelleğe yükler. Önbelleklerinizi önceden hazırlamanız, sorgularınızın yeniden başlatma sonrasında ilk çalıştırmalarında daha iyi yanıt sürelerine sahip olduğu anlamına gelir. Otomatik uyarı öncesi işlevi şu anda PostgreSQL için Azure Veritabanı esnek sunucuda kullanılamaz.
pg_repack
kullanıcıların bu uzantıyı ilk kullanmaya çalıştıkları zaman sordıkları tipik bir soru: pg_repack bir uzantı mı yoksa psql veya pg_dump gibi istemci tarafı yürütülebilir dosyası mı?
Bunun cevabı aslında ikisinin de olmasıdır. pg_repack/lib , oluşturduğu şema ve SQL yapıtları ve bu işlevlerden birkaçının kodunu uygulayan C kitaplığı dahil olmak üzere uzantının kodunu tutar. Öte yandan pg_repack/bin, uzantı tarafından oluşturulan programlanabilirlik yapıtlarıyla nasıl etkileşim kurulduğunu bilen istemci uygulamasının kodunu tutar. Bu istemci uygulaması, kullanıcıya anlaşılması daha kolay olan bazı komut satırı seçenekleri sunarak sunucu tarafı uzantısı tarafından ortaya çıkan farklı arabirimlerle etkileşim kurmanın karmaşıklığını kolaylaştırmayı amaçlar. İşaret edilen veritabanında oluşturulan uzantı olmadan istemci uygulaması işe yaramaz. Sunucu tarafı uzantısı tamamen işlevsel olacaktır, ancak kullanıcının uzantı tarafından uygulanan işlevlere giriş olarak kullanılan verileri almak için sorgu yürütmeyi içeren karmaşık bir etkileşim desenini anlamasını gerektirir.
Şema yeniden paketleme için izin reddedildi
Şu andan itibaren, bu uzantı tarafından oluşturulan yeniden paketleme şemasına izin verme şeklimiz nedeniyle, yalnızca bağlamından azure_pg_adminpg_repack işlevselliğinin çalıştırılması desteklenir.
olmayan bir tablonun sahibi pg_repack azure_pg_adminçalıştırmayı denerse aşağıdaki gibi bir hata aldıklarını fark edebilirsiniz:
NOTICE: Setting up workers.conns
ERROR: pg_repack failed with error: ERROR: permission denied for schema repack
LINE 1: select repack.version(), repack.version_sql()
Bu hatayı önlemek için bağlamından azure_pg_adminpg_repack çalıştırdığınızdan emin olun.
pg_stat_statements
pg_stat_statements uzantısı, veritabanınızda çalıştırdığınız tüm sorguların bir görünümünü sağlar. Bu, sorgu iş yükü performansınızın üretim sisteminde nasıl göründüğünü anlamak için yararlıdır.
pg_stat_statements uzantısı, SQL deyimlerinin yürütme istatistiklerini izlemenizi sağlayan her PostgreSQL için Azure Veritabanı esnek sunucu örneğine önceden yüklenirshared_preload_libraries.
Ancak, güvenlik nedeniyle uzantıyı pg_stat_statements izin verilenler listesineeklemeli ve CREATE EXTENSION komutunu kullanarak yüklemelisiniz.
uzantı tarafından hangi deyimlerin sayıldığını denetleyen ayarı pg_stat_statements.trackvarsayılan olarak ayarlanır; yani doğrudan istemciler toptarafından verilen tüm deyimler izlenir. Diğer iki izleme düzeyi ve allşeklindedirnone. Bu ayar sunucu parametresi olarak yapılandırılabilir.
pg_stat_statements tarafından sağlanan sorgu yürütme bilgilerinin bir dezavantajı vardır; bu her SQL sorgusunu günlüğe kaydettiğinden sunucu performansını etkiler. Uzantıyı pg_stat_statements etkin bir şekilde kullanmıyorsanız olarak ayarlamanız pg_stat_statements.track noneönerilir. Bazı üçüncü taraf izleme hizmetleri sorgu performansı içgörüleri sunmak için kullanabilir pg_stat_statements , bu nedenle bunun sizin için geçerli olup olmadığını onaylayın.
postgres_fdw
postgres_fdw, bir PostgreSQL için Azure Veritabanı esnek sunucu örneğinden diğerine veya aynı sunucudaki başka bir veritabanına bağlanmanızı sağlar. PostgreSQL için Azure Veritabanı esnek sunucu, herhangi bir PostgreSQL sunucusuna hem gelen hem de giden bağlantıları destekler. Gönderen sunucunun alıcı sunucuya giden bağlantılara izin verebilmesi gerekir. Benzer şekilde, alıcı sunucunun gönderen sunucudan bağlantılara izin vermesi gerekir.
Bu uzantıyı kullanmayı planlıyorsanız sunucularınızı sanal ağ tümleştirmesi ile dağıtmanızı öneririz. Varsayılan olarak sanal ağ tümleştirmesi, sanal ağdaki sunucular arasında bağlantılara izin verir. Erişimi özelleştirmek için sanal ağ güvenlik gruplarını kullanmayı da seçebilirsiniz.
pgstattuple
Postgres 11 ile 13 arasındaki sürümlerde şemada pg_toast tutulan nesnelerden tanımlama grubu istatistikleri elde etmeye çalışmak için 'pgstattuple' uzantısını kullanırken "şema pg_toast için izin reddedildi" hatası alırsınız.
Şema pg_toast için izin reddedildi
Esnek Sunucu için Azure Veritabanı'nda PostgreSQL sürüm 11 ile 13 arasında olan müşteriler, uzantıyı pgstattuple şema içindeki pg_toast nesnelerde kullanamaz.
PostgreSQL 16 ve 17'depg_read_all_data, rolüne otomatik olarak verilir ve pgstattuple düzgün çalışmasına izin verilirazure_pg_admin. PostgreSQL 14 ve 15'te müşteriler aynı sonucu elde etmek için azure_pg_admin rolü el ile verebilirpg_read_all_data. Ancak PostgreSQL 11 ile 13 pg_read_all_data arasında rol yoktur.
Müşteriler gerekli izinleri doğrudan veremez. Şema altındaki pg_toast nesnelere erişmek için çalıştırabilmeniz pgstattuple gerekiyorsa lütfen bir Azure desteği isteği oluşturmaya devam edin.
TimescaleDB
TimescaleDB, PostgreSQL uzantısı olarak paketlenmiş bir zaman serisi veritabanıdır. TimescaleDB, zaman serisi iş yükleri için zaman odaklı analitik işlevler, iyileştirmeler ve ölçeklendirmeler sağlar. TimescaleDB Apache-2 sürümünü sağlayan esnek sunucu PostgreSQL için Azure Veritabanı Timescale, Inc.'in kayıtlı ticari markası TimescaleDB hakkında daha fazla bilgi edinin.
TimescaleDB'yi yükleme
TimescaleDB'yi yüklemek için, yukarıda gösterildiği gibi listelenmesine izin vermek için, bunu sunucunun paylaşılan ön yükleme kitaplıklarına eklemeniz gerekir. Postgres'in shared_preload_libraries parametresinde yapılan bir değişiklik, sunucunun yeniden başlatılmasının etkili olmasını gerektirir. Azure portalını veya Azure CLI'yi kullanarak parametreleri değiştirebilirsiniz.
- PostgreSQL için Azure Veritabanı esnek sunucu örneğinizi seçin.
- Kaynak menüsünde, Ayarlar bölümünde Sunucu parametreleri'ni seçin.
- parametresini
shared_preload_librariesarayın ve değerini içerecekTimescaleDBşekilde düzenleyin. - Değişikliklerinizi korumak için Kaydet'i seçin. Şimdi Kaydet ve yeniden başlat seçeneğiniz vardır. Değişiklik
shared_preload_librariessunucunun yeniden başlatılmasını gerektirdiğinden değişikliklerin etkili olduğundan emin olmak için bunu seçin. Artık PostgreSQL için Azure Veritabanı esnek sunucu veritabanınızda TimescaleDB'yi etkinleştirebilirsiniz. Veritabanına bağlanın ve aşağıdaki komutu çalıştırın:
CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
İpucu
Bir hata görürseniz, shared_preload_libraries kaydettikten sonra sunucunuzu yeniden başlattığınızdan emin olun.
Artık sıfırdan bir TimescaleDB hiper tablosu oluşturabilir veya PostgreSQL'de mevcut zaman serisi verilerini geçirebilirsiniz.
pg_dump ve pg_restore kullanarak Zaman Ölçeği veritabanını geri yükleme
pg_dump ve pg_restore kullanarak zaman ölçeği veritabanını geri yüklemek için hedef veritabanında iki yardımcı yordam çalıştırmanız gerekir: timescaledb_pre_restore() ve timescaledb_post restore().
İlk olarak hedef veritabanını hazırlayın:
--create the new database where you want to perform the restore
CREATE DATABASE tutorial;
\c tutorial --connect to the database
CREATE EXTENSION timescaledb;
SELECT timescaledb_pre_restore();
Artık özgün veritabanında pg_dump çalıştırabilir ve ardından pg_restore yapabilirsiniz. Geri yükleme işleminden sonra, geri yüklenen veritabanında aşağıdaki komutu çalıştırdığınızdan emin olun:
SELECT timescaledb_post_restore();
Zaman Ölçeği etkinleştirilmiş veritabanı ile geri yükleme yöntemi hakkında daha fazla bilgi için Zaman Ölçeği belgelerine bakın.
Timescaledb-backup kullanarak Zaman Ölçeği veritabanını geri yükleme
Yukarıda listelenen yordamı çalıştırırken SELECT timescaledb_post_restore() timescaledb.restoreing bayrağını güncelleştirirken izinler reddedildi hatası alabilirsiniz. Bunun nedeni, Cloud PaaS veritabanı hizmetlerindeki ALTER DATABASE izninin sınırlı olmasıdır. Bu durumda, Zaman Ölçeği veritabanını yedeklemek ve geri yüklemek için aracı kullanarak timescaledb-backup alternatif yöntem gerçekleştirebilirsiniz. Timescaledb-backup, Bir TimescaleDB veritabanının dökümünü alma ve geri yükleme işlemlerini daha basit, daha az hataya açık ve daha performanslı hale getirmek için bir programdır.
Bunu yapmak için aşağıdakileri yapmalısınız
- Burada ayrıntılı olarak açıklandığı gibi araçları yükleme
- Esnek sunucu örneği ve veritabanı PostgreSQL için Azure Veritabanı hedef oluşturma
- Yukarıda gösterildiği gibi Zaman Ölçeği uzantısını etkinleştirme
- Kullanıcıya ts-restore tarafından kullanılacak rolü verme
azure_pg_admin - Veritabanını geri yüklemek için ts-restore komutunu çalıştırın
Bu yardımcı programlar hakkında daha fazla ayrıntıya buradan ulaşabilirsiniz.
Uzantılar ve Ana Sürüm Yükseltmesi
PostgreSQL için Azure Veritabanı esnek sunucu, tek bir tıklamayla PostgreSQL için Azure Veritabanı esnek sunucu örneğinin yerinde yükseltmesini gerçekleştiren bir yerinde ana sürüm yükseltme özelliği kullanıma sunulmuştur. Yerinde ana sürüm yükseltmesi, PostgreSQL için Azure Veritabanı esnek sunucu yükseltme işlemini basitleştirerek sunucuya erişen kullanıcıların ve uygulamaların kesintiye uğramasını en aza indirir. Yerinde ana sürüm yükseltmesi belirli uzantıları desteklemez ve belirli uzantıları yükseltmeye yönelik bazı sınırlamalar vardır. Yerleşik ana sürüm güncelleştirme özelliği kullanılırken tüm PostgreSQL için Azure Veritabanı esnek sunucu sürümleri için anon, Apache AGE, dblink, orafce, pgaudit, postgres_fdw ve Timescaledb uzantıları desteklenmez.
