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 PostgreSQL sürüm 17 (önizleme), 16, 15, 14, 13, 12, 11'i destekler. Postgres topluluğu, yılda bir kez yeni özellikler içeren yeni bir ana sürüm yayınlar. Ayrıca, her ana sürüm küçük sürümler biçiminde düzenli hata düzeltmeleri alır. İkincil sürüm yükseltmeleri, mevcut uygulamalarla geriye dönük uyumlu değişiklikler içerir. PostgreSQL için Azure Veritabanı esnek sunucu, müşterinin bakım penceresi sırasında ikincil sürümleri düzenli aralıklarla güncelleştirir.
Ana sürüm yükseltmeleri, ikincil sürüm yükseltmelerinden daha karmaşıktır. Bunlar, mevcut uygulamalarla geriye dönük olarak uyumlu olmayan iç değişiklikler ve yeni özellikler içerebilir.
PostgreSQL için Azure Veritabanı esnek sunucu, tek bir tıklamayla sunucunun yerinde ana sürüm yükseltmesini gerçekleştiren bir özelliğe sahiptir. Bu özellik, sunucuya erişen kullanıcıların ve uygulamaların kesintisini en aza indirerek yükseltme işlemini basitleştirir.
Yerinde yükseltmeler, ana sürümün yükseltildikten sonra geçerli sunucunun sunucu adını ve diğer ayarlarını korur. Veri geçişi veya uygulama bağlantı dizesi değişiklik gerektirmez. Yerinde yükseltmeler, veri taşımaya göre daha hızlıdır ve daha az kesinti süresi yaşatır.
Yükseltme İşlemi
Yerinde ana sürüm yükseltmeleriyle ilgili dikkat edilmesi gereken önemli noktalardan bazıları şunlardır:
- Yükseltmeye başlamadan önce sunucunuzda en az 10-20% boş depolama alanı olduğundan emin olun. Yükseltme işlemi sırasında, geçici günlük dosyaları ve meta veri işlemleri disk kullanımını artırabilir. Yetersiz boş alan yükseltme hatalarına veya geri alma sorunlarına neden olabilir.
- Yerinde ana sürüm yükseltme işlemi sırasında PostgreSQL için Azure Veritabanı esnek sunucu, yükseltmenin başarısız olmasına neden olabilecek olası sorunları belirlemek için bir ön denetim yordamı çalıştırır.
- Ön denetim herhangi bir uyumsuzluk bulursa, bir hata iletisiyle birlikte yükseltme ön denetiminin başarısız olduğunu gösteren bir günlük olayı oluşturur.
- Ön denetim başarılı olursa, PostgreSQL için Azure Veritabanı esnek sunucu hizmeti durdurur ve yükseltmeyi başlatmadan hemen önce örtük bir yedekleme alır. Hizmet, bir yükseltme hatası olduğunda veritabanı örneğini önceki sürümüne geri yüklemek için bu yedeklemeyi kullanabilir.
- PostgreSQL için Azure Veritabanı esnek sunucu yerinde ana sürüm yükseltmeleri gerçekleştirmek için pg_upgrade aracını kullanır. Hizmet, sürümleri atlama ve doğrudan sonraki sürümlere yükseltme esnekliği sağlar.
- Yüksek kullanılabilirlik (HA) için etkinleştirilen bir sunucunun yerinde ana sürüm yükseltmesi sırasında hizmet HA'yı devre dışı bırakır, birincil sunucuda yükseltmeyi gerçekleştirir ve yükseltme tamamlandıktan sonra HA'yı yeniden etkinleştirir.
- Uzantıların çoğu, bazı özel durumlar dışında yerinde ana sürüm yükseltmesi sırasında otomatik olarak sonraki sürümlere yükseltilir.
- PostgreSQL İçin Azure Veritabanı Esnek Sunucusu'nda yerinde gerçekleştirilen ana sürüm yükseltme işlemi, desteklenen en son küçük sürümü otomatik olarak dağıtır.
- Yerinde ana sürüm yükseltmesi çevrimdışı bir işlemdir ve bu işlem sırasında sunucunun kullanılamayacağı anlamına gelir. Çoğu yükseltme 15 dakikadan kısa bir süre içinde tamamlasa da, gerçek süre veritabanının boyutuna ve karmaşıklığına bağlıdır. Özellikle, gerekli süre PostgreSQL örneğinizdeki nesne sayısıyla (tablolar, dizinler, şemalar) doğrudan orantılıdır. Daha büyük veya daha karmaşık şemalar daha uzun yükseltme süreleri yaşayabilir.
- Yükseltmeden önce uzun süre çalışan işlemler veya yüksek iş yükü veritabanını kapatmak için geçen süreyi artırabilir ve yükseltme süresini artırabilir.
- Yerinde ana sürüm yükseltmesi başarılı olduktan sonra, önceki sürüme geri dönmenin otomatik bir yolu yoktur. Ancak, veritabanı örneğinin önceki sürümünü geri yüklemek için yükseltmeden önceki bir zamana yönelik belirli bir noktaya kadar geri yükleme (PITR) gerçekleştirebilirsiniz.
- PostgreSQL için Azure Veritabanı Esnek Sunucu, yükseltme sırasında veritabanınızın anlık görüntüsünü alır. Yükseltme başlamadan önce anlık görüntü alınır. Yükseltme başarısız olursa sistem veritabanınızı anlık görüntüden durumuna otomatik olarak geri yükler.
- PostgreSQL 16, rol tabanlı güvenlik önlemlerini tanıtır. PostgreSQL için Azure Veritabanı esnek sunucusunda ana sürüm yükseltmesinin ardından, sunucuda oluşturulan ilk kullanıcı (YÖNETİÇİ seçeneği verilmiştir) artık temel bakım işlemleri için diğer roller üzerinde yönetici ayrıcalıklarına sahip olacaktır.
Yükseltmeyle İlgili Önemli Noktalar ve Sınırlamalar
Yerinde ana sürüm yükseltmesi sırasında ön denetim işlemi başarısız olursa, yükseltme ayrıntılı bir hata iletisiyle engellenir. Yükseltmenin başarısız olmasına veya beklenmedik şekilde davranmasına neden olabilecek bilinen sınırlamalar aşağıdadır:
Desteklenmeyen Sunucu Yapılandırmaları
- Yerinde yükseltmeler sırasında okuma amaçlı çoğaltmalar desteklenmez. Birincil sunucuyu yükseltmeden önce okuma kopyasını silmeniz gerekir. Yükseltmeden sonra replikayı yeniden oluşturabilirsiniz.
- Ağ trafiği kuralları yükseltme işlemlerini engelleyebilir.
- Esnek sunucunuzun sanal ağı içindeki 5432 ve 6432 bağlantı noktalarından ve Azure Depolama'ya (günlük arşivleme için) trafik gönderebildiğinden/alabildiğinden emin olun.
- Ağ Güvenlik Grupları (NSG) bu trafiği kısıtlarsa, HA yükseltme sonrasında otomatik olarak yeniden etkinleştirilmez. NSG kurallarını el ile güncelleştirmeniz ve HA'yı yeniden etkinleştirmeniz gerekebilir.
- Mantıksal çoğaltma yuvaları yerinde ana sürüm yükseltmeleri sırasında desteklenmez.
- SSDv2 depolama alanı kullanan sunucular ana sürüm yükseltmeleri için uygun değildir.
- Bağımlı
pg_stat_activity
görünümler, ana sürüm yükseltmeleri sırasında desteklenmez.
Uzantı Sınırlamaları
Yerinde ana sürüm yükseltmeleri tüm PostgreSQL uzantılarını desteklemez. Desteklenmeyen uzantılar bulunursa yükseltme ön denetim sırasında başarısız olur.
- Aşağıdaki uzantılar hiçbir PostgreSQL sürümünde desteklenmez:
timescaledb
,dblink
,orafce
, ,pg_partman
,postgres_fdw
- Yükseltme hedefi PostgreSQL 16 veya üzeri olduğunda aşağıdaki uzantılar desteklenmez:
pgrouting
- PostgreSQL 17'ye yükseltilirken aşağıdaki uzantılar desteklenmez:
pgrouting
,age
,azure_ai
,hll
, ,pg_diskann
- gibi
pg_repack
hypopg
uzantılar yerinde yükseltmeleri desteklemez ve yükseltmeden önce bırakılıp sonra yeniden oluşturulmalıdır. Bu uzantılar kalıcı değildir ve yükseltme sonrası yeniden yapılandırılması güvenlidir.
Yükseltmeden önce bu uzantıların azure.extensions sunucu parametresinden kaldırılması gerekir. Varsa yükseltme engellenir.
PostGIS-Specific Düşünceler
PostGIS veya bağımlı uzantılar kullanıyorsanız, search_path sunucu parametresini şunları içerecek şekilde yapılandırmanız gerekir:
- PostGIS ile ilgili şemalar
- Bağımlı uzantılar, dahil olmak üzere:
postgis
,postgis_raster
,postgis_sfcgal
,postgis_tiger_geocoder
,postgis_topology
,address_standardizer
,address_standardizer_data_us
,fuzzystrmatch
- search_path doğru yapılandırılmaması, yükseltme sonrasında yükseltme hatalarına veya bozuk nesnelere yol açabilir.
Yükseltmeyle ilgili dikkat edilmesi gereken diğer noktalar
- Büyük nesneler (LO'lar): Milyonlarca büyük nesneye (içinde
pg_largeobject
depolanan) sahip veritabanları, yüksek bellek kullanımı veya günlük hacmi nedeniyle yükseltme hatalarına neden olabilir. Kullanılmayan LO'ları temizlemek için vacuumlo yardımcı programını kullanın ve birçok LO hala kullanılıyorsa yükseltmeden önce sunucunuzun ölçeğini artırmayı göz önünde bulundurun.
Uyarı
Vacuumlo ile dikkatli olun.
vacuumlo
geleneksel başvuru sütunlarına (oid, lo) göre yalnız bırakılmış büyük nesneleri tanımlar. Uygulamanız özel veya dolaylı başvuru türleri kullanıyorsa, geçerli büyük nesneler yanlışlıkla silinebilir. Ayrıca, vacuumlo
özellikle milyonlarca büyük nesneye sahip veritabanlarında önemli CPU, bellek ve IOPS tüketebilir. Bakım pencereleri sırasında çalıştırın ve önce üretim dışı ortamda test edin.
Yükseltme sonrası
Ana sürüm yükseltmesi tamamlandıktan sonra, ANALYZE
komutunu her veritabanında çalıştırarak pg_statistic
tablosunu yenilemenizi öneririz. Eksik veya eski istatistikler hatalı sorgu planlarına yol açabilir ve bu da performansı düşürebilir ve aşırı bellek alabilir.
postgres=> analyze;
ANALYZE
Yükseltme günlüklerini görüntüleme
Ana sürüm yükseltme günlükleri (PG_Upgrade_Logs
), ayrıntılı sunucu günlüklerine doğrudan erişim sağlar.
PG_Upgrade_Logs
Yükseltme sürecinizle tümleştirmek, yeni PostgreSQL sürümlerine daha sorunsuz ve şeffaf bir geçiş sağlamaya yardımcı olabilir.
Aşağıdaki sunucu parametrelerini kullanarak ana sürüm yükseltme günlüklerinizi sunucu günlükleriyle aynı şekilde yapılandırabilirsiniz:
- Özelliği açmak için
logfiles.download_enable
değeriniON
olarak ayarlayın. - Gün cinsinden günlük dosyalarının saklama süresini tanımlamak için
logfiles.retention_days
kullanın.
Yükseltme günlüklerini ayarlama
kullanmaya PG_Upgrade_Logs
başlamak için PostgreSQL sunucu günlüklerinin ve ana sürüm yükseltme günlüklerinin yakalanmasını yapılandırabilirsiniz.
Sunucu günlükleri için kullanıcı arabirimi aracılığıyla yükseltme günlüklerine erişebilirsiniz. Burada PostgreSQL ana sürüm yükseltmelerinizin ilerleme durumunu ve ayrıntılarını gerçek zamanlı olarak izleyebilirsiniz. Bu kullanıcı arabirimi günlükleri görüntülemek için merkezi bir konum sağlar, böylece yükseltme işlemini daha kolay izleyebilir ve sorunlarını giderebilirsiniz.
Yükseltme günlüklerini kullanmanın avantajları
-
İçgörü sağlayan tanılamalar:
PG_Upgrade_Logs
Yükseltme işlemiyle ilgili değerli içgörüler sağlar. Gerçekleştirilen işlemler hakkında ayrıntılı bilgileri yakalar ve oluşan hataları veya uyarıları vurgular. Bu ayrıntı düzeyi, daha sorunsuz bir geçiş için yükseltme sırasında ortaya çıkabilecek sorunları tanılama ve çözme açısından önemlidir. - Kolaylaştırılmış sorun giderme: Bu günlüklere doğrudan erişimle olası yükseltme engellerini hızla tanımlayıp giderebilir, kapalı kalma süresini azaltabilir ve işlemlerinizin üzerindeki etkiyi en aza indirebilirsiniz. Günlükler, daha verimli ve etkili bir sorun çözümü sağlayarak önemli bir sorun giderme aracı görevi görür.
Uyarı
Yerinde ana sürüm yükseltmeleri otomatik olarak dağıtılan sunucularda desteklenir. Otomatik olarak dağıtılan bir sunucuda başarılı bir yerinde Ana Sürüm Yükseltmesi sonrasında, kullanıcı adı biçimi username@servername artık desteklenmeyecektir. Bunun yerine standart biçimi kullanmanız gerekir: kullanıcı adı. Kimlik doğrulaması sorunlarını önlemek için uygulamalarınızdaki ve betiklerinizdeki tüm bağlantı dizelerini dikkatle gözden geçirin ve güncelleştirerek yükseltmeden sonra güncelleştirilmiş kullanıcı adı biçimini kullandıklarından emin olun.