PostgreSQL mimarisini anlama

Tamamlandı

PostgreSQL, istemci/sunucu ilişkisel veritabanı yönetim sistemidir (RDMS). PostgreSQL, PostgreSQL için Azure Cosmos DB seçeneğindeki Citus uzantısı gibi çok çeşitli uzantıları da destekler. Bir uzantı veritabanına yüklendikten sonra herhangi bir yerleşik özellik gibi çalışır.

PostgreSQL'in pgsql adlı kendi sorgu dili de vardır. Ayrıca PostgreSQL, Ruby on Rails gibi yordam dillerini destekler.

PostgreSQL uzantılarını ve dillerini gösteren ekran görüntüsü.

İstemci/sunucu mimarisi

PostgreSQL bir istemci/sunucu mimarisini temel alır. Sunucu verileri depolar, yönetir ve istemci programlarına döndürür. İstemci programları pgSQL veya PL/pgSQL gibi PostgreSQL'in desteklediği yordam dillerinden birini kullanarak veri ister.

PostgreSQL oturumu üç bölümden oluşur:

  • Posta yöneticisi
  • İstemci uygulaması
  • Bu

Postmaster

Postmaster, PostgreSQL sunucusunu yöneten gözetmen daemon işlemidir. Postmaster daemon, sunucuyu başlatma, sunucuyu kapatma, bağlantı isteklerini işleme ve diğer arka plan işlemlerini gerçekleştirme gibi çeşitli sunucu işlemleri arasındaki iletişimi yönetir. PostgreSQL için Azure Veritabanı dosya sistemine veya Postmaster işlemine erişiminiz yoktur.

İstemci uygulamaları

İstemciler sorguları çalıştırır ve PostgreSQL için Azure Veritabanı sunucusundaki veritabanlarıyla etkileşim kurar. Sorguları çalıştırmak için Azure Data Studio, DBeaver, pg Yönetici veya psql gibi bir istemci aracına ihtiyacınız vardır. Sonraki modülde istemci araçları hakkında bilgi edineceksiniz.

Sunucu işlemleri

Küme - tek bir PostgreSQL sunucusu birden çok kullanıcı veritabanını barındırabilir. PostgreSQL, bu veritabanı koleksiyonunu küme olarak ifade eder. Her veritabanı birbirinden ayrıdır ve kullanıcılar ve uygulamalar tek bir veritabanıyla etkileşim kurar. Kullanıcılar küme veya sunucu düzeyinde oluşturulur.

Bu veritabanlarının verileri, kümenin PGDATA adlı veri dizininde depolanır. PGDATA veri dizini, çalıştırılmakta olan PostgreSQL sürümünü içeren bir dosya, tablo alanları bağlantılarını içeren pg_tblspc ve önceden yazma günlük dosyalarını içeren pg_xlog içerir.

Not

PostgreSQL için Azure Veritabanları, depolamayı ve temel alınan dosya sistemini yöneten bir hizmettir. Bu sunucunun kullanıcısı olarak PGDATA dizinine veya alt dizinlerinden herhangi birine doğrudan erişiminiz yoktur.

Oluşturduğunuz veritabanlarına ek olarak üç sistem veritabanı vardır:

  • postgres - varsayılan veritabanı. Sunucunuz oluştuktan sonra postgres veritabanına bağlanırsınız.
  • azure_maintenance: Hizmet işlemlerini yöneten veritabanı. Bu veritabanına doğrudan erişiminiz yok.
  • azure_sys - Sorgu Deposu veritabanı. azure_sys veritabanını veya şemalarını değiştirmemelisiniz. azure_sys'da herhangi bir şeyi değiştirmek Sorgu Deposu ve diğer performans özelliklerinin düzgün çalışmasını engeller.

Şemalar - Şema, veritabanı nesnelerinin adlandırılmış bir gruplandırılmasıdır. Birçok nesneye sahip büyük veritabanları, nesneleri şemalar halinde düzenlemenin avantajını sağlar. Örneğin, satışla ilgili nesneler için bir şema ve istemciyle ilgili nesneler için şema oluşturmak, doğru nesneyi bulmayı kolaylaştırır.

Sunucu parametreleri - PostgreSQL'de veritabanı altyapısının nasıl çalışması gerektiğini belirleyen çeşitli yapılandırma dosyaları vardır. Ana PostgreSQL yapılandırma dosyası postgresql.conf olarak adlandırılır.

PostgreSQL için Azure Veritabanı bu yapılandırma dosyalarını Azure posta yoluyla veya Azure CLI kullanılarak erişilebilen sunucu parametreleri.

Azure portalında sunucu parametrelerini görüntülemek veya değiştirmek için:

  1. PostgreSQL için Azure Veritabanı sunucunuza gidin.
  2. Soldaki menüden Ayarlar altında Sunucu parametreleri'ni seçin.
  3. Parametre listesini filtrelemek için arama çubuğunu kullanın veya ihtiyacınız olan sayfa numarasını seçin.

Depolama - PostgreSQL için Azure Veritabanı sizin için veri depolama alanını yönetir ve sunucu düzeyinde sağlanır. İster Burstable, Genel amaçlı ister Bellek için iyileştirilmiş işlem katmanını seçin, 32 GB ile 16 TB arasında depolama alanı kullanabilirsiniz. Daha fazla depolama alanı sağlamak için PostgreSQL için Azure Veritabanı sunucunuza gidin ve Genel Bakış bölümünde Yapılandırmanızı seçin. İşlem + Depolama bölümü görüntülenir. Depolama ve Depolama boyutu (GB) altında, sağlanmasını istediğiniz depolama alanı miktarını seçmek için kaydırıcıyı kullanın.

Sağladığınız depolama alanı miktarı, PostgreSQL için Azure Veritabanı sunucunuz için kullanılabilir G/Ç kapasitesini tanımlar. G/Ç tüketiminizi Azure portalından veya Azure CLI komutlarını kullanarak izleyebilirsiniz. İzlenecek ölçümler depolama sınırı, depolama yüzdesi, kullanılan depolama alanı ve GÇ yüzdesidir.

Not

PostgreSQL için Azure Veritabanı sunucunuzu oluşturduktan sonra depolama miktarını artırabilirsiniz, ancak depolama miktarını azaltamazsınız.

Tablespaces - PostgreSQL'in şirket içi uygulamasıyla, pg_tblspc alt dizinini kullanarak PGDATA adlı ana depolama alanına bağlı tablo alanları oluşturabilirsiniz. PostgreSQL için Azure Veritabanı tablo alanlarını desteklemez: tüm tablolar ana depolama alanında oluşturulur.

Sistem katalogları - PostgreSQL, veritabanı nesneleriyle ilgili bilgileri depolayan birçok sistem tablosu ve görünümü içerir. Örneğin, pg_database bir sunucudaki tüm veritabanlarını döndürür ve pg_class tablolar hakkındaki istatistikleri depolar.

Not

PostgreSQL için Azure Veritabanı bazı sistem kataloglarına erişim izni verir ancak tüm sistem kataloglarına erişim izni vermez.

Uzantılar - PostgreSQL, veritabanı altyapısının temel işlevselliğini genişleten bir dizi uzantıyı destekler. Bu uzantılar PostgreSQL Uzantıları Ağı (PGXN) adlı bir depoda kullanılabilir hale getirilmektedir.

PostgreSQL uzantısını kullanmak için veritabanınıza yüklenmesi gerekir. Uzantı yüklemek için psql aracından CREATE EXTENSION komutunu çalıştırarak uzantıyı veritabanınıza yükleyin. Örneğin:

SELECT create_extension('postgis');

hangi uzantıların PostgreSQL için Azure Veritabanı desteklediğini öğrenmek için aşağıdaki sorguyu çalıştırın:

SELECT * FROM pg_available_extensions;

Tüm PostgreSQL için Azure Veritabanı sunucuları pg_stat_statements uzantısını içerir. Bu uzantı, SQL deyimlerinin yürütme istatistiklerini izlemeye yönelik işlevsellik sağlamak için zaten yüklüdür. pg_stat_statements.track sunucu parametresi, uzantı tarafından hangi deyimlerin sayılmasını tanımlar. Seçenekler şunlardır:

  • Top - doğrudan istemciler tarafından verilen tüm deyimleri izler (varsayılan).
  • Hiçbiri - hiçbir deyim izlenmez.
  • Tümü - iç içe deyimler ve işlevler tarafından çağrılan deyimler de dahil olmak üzere tüm deyimleri izler.

Not

Her SQL deyimini günlüğe kaydetmek için sunucuda performans ek yükü vardır. pg_stat_statements etkin olarak kullanmıyorsanız, bu parametreyi yok olarak ayarlayın. Ayrıca bazı üçüncü taraf izleme hizmetlerinin pg_stat_statements dayanabileceğini unutmayın.

Sorgu iyileştirici - PostgreSQL, maliyet tabanlı bir sorgu iyileştirme yöntemi kullanır. Ayrıştırıcı sorgu söz dizimini denetler ve sorguyu farklı bölümlere ayırır. Ayrıştırıcı bir ayrıştırma ağacı oluşturur ve sorguyu yeniden yazana geçirir ve bu da sorguya kurallar uygular. Planlayıcı, sorgu yürütülmeden önce sorguyu yürütmenin en iyi yolunu keşfeder.

Arka uç işlemleri - PostgreSQL işlemi- işlem başına model. Yeni bir kullanıcı bağlandığında, PostgreSQL kullanıcının kimliğini doğrular ve bağlantıyı işlemek için bir arka uç sunucu işlemi oluşturur. İstemci yalnızca sorgu gönderirken ve sorguların sonucunu alırken sunucu işlemiyle etkileşim kurar.