Çoğaltmayı ve mantıksal kod çözmeyi açıklama

Tamamlandı

parametresi wal_level , günlüğe ne kadar bilgi yazılacağını tanımlamanızı sağlar. İki seçenek vardır: MANTıKSAL veya ÇOĞALTMA. ÇOĞALTMA varsayılan değerdir. Sunucu başlatıldığında bu parametre ayarlanır.

Yüksek kullanılabilirlik

Yüksek kullanılabilirlik, canlı sunucunuzda bir hata olduğunda devralmaya hazır bekleyen bir sunucu sağlayan bir PostgreSQL için Azure Veritabanı hizmetidir. esnek PostgreSQL için Azure Veritabanı sunucuda yüksek kullanılabilirlik, bekleyen sunucuyu veri değişiklikleriyle otomatik olarak güncelleştirmek için çoğaltmayı kullanır.

esnek PostgreSQL için Azure Veritabanı sunucu için yüksek kullanılabilirlik yapılandırdığınızda, birincil sunucu tek bir kullanılabilirlik alanına yerleştirilir ve farklı bir kullanılabilirlik alanında bir bekleme sunucusu oluşturulur. Veriler, zaman uyumlu modda PostgreSQL akış çoğaltması kullanılarak birincil sunucudan hazır bekleyen sunucuya çoğaltılır.

Her kullanılabilirlik alanı bir veya daha fazla veri merkezinden oluşur. Kullanılabilirlik alanlarının kendi güç kaynakları, soğutma sistemleri, ağ altyapısı vb. vardır ve bu da onları birbirinden bağımsız hale getirir. Veri dosyalarının ve önceden yazma günlük (WAL) dosyalarının üç kopyası, her kullanılabilirlik alanı içinde yerel olarak yedekli depolamada depolanır ve birincil ve bekleme sunucuları arasında fiziksel yalıtım sağlar. Bir kullanılabilirlik alanı başarısız olursa, diğer ikisi büyük olasılıkla çalışmaya devam eder. Bir bölgedeki kullanılabilirlik alanları, gidiş dönüş gecikme süresi 2 milisaniyeden kısa olan hızlı fiber ağlarla bağlanır.

Bir bölgedeki kullanılabilirlik alanlarının hızlı fiber ağlara bağlı olduğunu gösteren ekran görüntüsü.

Not

Tüm bölgelerde kullanılabilirlik alanları yoktur.

Yüksek kullanılabilirlik sayesinde veriler, veritabanı kullanımda olduğu her zaman çoğaltılır ve özgün kopyanın güncel bir kopyası sağlanır. Kilitlenme varsa, çoğaltma özgün yerine kullanılabilir. Çoğaltmanın birincil sunucusu ve hazır bekleyen sunucusu vardır. Birincil sunucu, WAL günlük dosyalarını wal günlük dosyalarını alan hazır bekleyen sunucuya gönderir.

Hazır bekleyen sunucu, yazdığı son önceden yazma günlüğü ve diske boşaltılan son konum gibi bilgilerle birincil sunucuya geri bildirir. WAL alıcısının rapor göndermesi için en düşük sıklığı tanımlamak için wal_receiver_status_interval parametresini ayarlayın. max_replication_slots parametresi, sunucunun destekleyebileceğiniz çoğaltma yuvası sayısı üst sınırını tanımlar. wal_level ÇOĞALTMA olarak ayarlandığında, max_replication_slots en az bir olmalıdır, ancak izin verilen değer aralığı ile 2 ile 262.143 arasındadır.

max_wal_senders parametresi en fazla WAL gönderen işlemi sayısını ayarlar.

Alanlar arası yedekli yüksek kullanılabilirlik mimarisini gösteren ekran görüntüsü.

Birincil ve hazır bekleyen sunucular izlenir ve hazır bekleyen sunucuya yük devretme tetikleme de dahil olmak üzere sorunları gidermek için uygun eylemler yapılır. Aşağıda alanlar arası yedekli yüksek kullanılabilirlik durumları listelenir:

  • Başlatma - Yeni bir hazır bekleyen sunucu oluşturma sürecinde.
  • Çoğaltma - Veri Çoğaltma kararlı durumda ve iyi durumda.
  • Sağlıklı - Bekleme birincil tarafından güncelleştiriliyor.
  • Yük Devretme - Birincil veritabanı sunucusu beklemeye yük devretme sürecindedir.
  • BeklemeYi Kaldırma - Hazır bekleyen sunucuyu silme işleminde.
  • Etkin Değil - Alanlar arası yedekli yüksek kullanılabilirlik etkinleştirilmedi.

Mevcut veritabanı sunucusu için yüksek kullanılabilirlik ekleyebilirsiniz. Canlı bir sunucuda yüksek kullanılabilirliği etkinleştiriyor veya devre dışı bırakıyorsanız, çok az etkinlik olduğunda işlemi gerçekleştirin.

Azure portalından:

  1. PostgreSQL için Azure Veritabanı sunucunuza gidin.
  2. Genel Bakış bölümünde geçerli Yapılandırmanızı seçin. İşlem + Depolama bölümü görüntülenir.
  3. Yüksek kullanılabilirlik'i etkinleştirmek için Yüksek kullanılabilirlik (alanlar arası yedekli) onay kutusunu seçin. Yüksek kullanılabilirlik, Burstable katmanı için desteklenmez.

Yüksek kullanılabilirlik seçeneğinin olağanüstü durum kurtarma seçeneği olduğunu unutmayın. Hazır bekleyen sunucuyu salt okunur veritabanlarına erişim izni verme gibi başka bir amaç için kullanamazsınız. Ancak, yayımcı ve abone modeli kullanarak iki PostgreSQL için Azure Veritabanı sunucusu arasında çoğaltma yapılandırabilirsiniz. Bu yapılandırma, aralarında veri çoğaltılan iki sunucu tutar. Ardından abone sunucusuna tam erişiminiz olur ve veritabanlarını herhangi bir amaçla kullanabilirsiniz. Bu modülün sonundaki alıştırmada bu yapılandırmayı uygulayacaksınız.

Mantıksal kod çözme

Mantıksal kod çözme, önceden yazma günlüğüne gönderilen verileri de kullanır. Adından da anlaşılacağı gibi, önceden yazma günlüğündeki girdilerin kodunu çözerek bunları anlaşılır hale getirir. Tüm INSERT, UPDATE ve DELETE değişiklikleri mantıksal kod çözme için kullanılabilir.

Mantıksal kod çözme, denetim, analiz veya ne zaman ve ne zaman değiştiğini bilmek isteyebileceğiniz başka bir neden için kullanılabilir.

Mantıksal kod çözme, veritabanındaki tüm tablolardaki değişiklikleri ayıklar. Bu değişiklikleri başka bir PostgreSQL örneğine gönderememesinden çoğaltmadan farklıdır. Bunun yerine, postgreSQL uzantısı değişikliklerin akışını yapmak için bir eklentidir.

Mantıksal kod çözme, önceden yazma günlüğünün içeriğinin anlaşılması kolay bir biçimde çözülmesini sağlar ve bu, veritabanı yapısı bilgisi olmadan yorumlanabilir. PostgreSQL için Azure Veritabanı, Postgres için Azure Veritabanı sunucularına yüklenen mantıksal kod çözmeyi ve wal2json eklentisini destekler.

Mantıksal akış çoğaltmasına izin veren pglogical uzantısı gibi diğer uzantılar kullanılabilir.

Mantıksal kod çözmeyi kullanmak için Sunucu parametreleri bölümünde şunları ayarlayın:

  • LOGICAL'a wal_level
  • max_replication_slots = 10
  • max_wal_senders = 10

Bu değişiklikler yapıldıktan sonra sunucunun yeniden başlatılması gerekir.

Azure portalından pglogical uzantısını kullanmak için:

  1. PostgreSQL için Azure Veritabanı sunucunuza gidin.
  2. Sunucu parametreleri'ne tıklayın ve shared_preload_libraries arayın. Açılan kutudan pglogical öğesini seçin.
  3. azure.extensions için arama. Açılan kutudan pglogical öğesini seçin.
  4. Değişiklikleri uygulamak için sunucuyu yeniden başlatın.

Çoğaltma için yönetici kullanıcı izinlerini de vermelisiniz:

ALTER ROLE <adminname> WITH REPLICATION;

Daha fazla bilgi için pglogical extension documentation online belgelerini gözden geçirin.

Mantıksal kod çözme, veri değişikliklerini mantıksal çoğaltma yuvası olarak adlandırılan bir akış olarak oluşturur.

  1. Her yuvada tanımlayabileceğiniz bir çıkış eklentisi vardır.
  2. Her yuva yalnızca bir veritabanından değişiklik sağlar, ancak bir veritabanında birden çok yuva olabilir.
  3. Her veri değişikliği normalde yuva başına bir kez yayılır.
  4. PostgreSQL yeniden başlatılırsa bir yuva, istemcinin işlemesi gereken değişiklikleri yeniden yayabilir.
  5. Yuvalar izlenmelidir. Tamamlanmamış yuvalar, bu tutarsız değişiklikler için tüm WAL dosyalarında tutun. Bu durum, depolamanın tam veya işlem kimliği sarmalanmasına yol açabilir.