Yük devretmeyi ayarlama
- Bu konuda açıklanan prosedürler PostgreSQL DBA'nız tarafından gerçekleştirilmelidir.
- Data Movement gateway 2024.11.14 veya sonraki sürümü gereklidir
Bu konu, PostgreSQL ve Data Movement gateway kurulumunun bir yük devretme senaryosunu destekleyecek şekilde nasıl yapılacağını açıklamaktadır. Gerçekleştirmeniz gereken prosedür, özel PostgreSQL yük devretme kurulumunuza bağlıdır.
Birincil ve ikincil veritabanı için veritabanı nesne kimliği yük devretmeden sonra aynı kalırsa (genellikle böyle olur) yalnızca Data Movement gateway makinesindeki ana bilgisayarlar dosyasını ikincil veritabanı sunucusunun IP adresiyle güncellemeniz gerekir. Ancak yük devretme sonrasında ikincil veritabanının veritabanı nesne kimliği birincil veritabanıyla aynı değilse ek yapılandırma gerekir. Nesne kimliğinin değişip değişmeyeceğini önceden bilmek genellikle mümkün değildir, ancak biliyorsanız aşağıda açıklanan Birincil ve ikincil veritabanı için nesne kimliği farklı olduğunda yük devretmeyi ayarlama prosedürünü gerçekleştirin. Nesne kimliğinin değişip değişmeyeceğini bilmiyorsanız Birincil ve ikincil veritabanı için nesne kimliği aynı olduğunda yük devretmeyi ayarlama bölümünde açıklanan daha basit prosedürü uygulamanızı öneririz çünkü nesne kimliği genellikle yük devretmeden sonra aynı kalacaktır.
Daha basit kurulumu gerçekleştirdiyseniz ve yük devretme sırasında Data Movement gateway kurtarılamazsa Birincil ve ikincil veritabanı için nesne kimliği farklı olduğunda yük devretmeyi ayarlama prosedürünü gerçekleştirmeniz gerekecektir.
Birincil ve ikincil veritabanının nesne kimliği aynı olduğunda yük devretmeyi ayarlama
Bir yük devretme gerçekleştiğinde, veri görevi kurtarılabilir bir hatayla karşılaşır ve birincil veritabanı sunucusunun IP adresine yeniden bağlanmaya çalışır. Ancak ikincil veritabanı sunucusu (neredeyse her zaman) farklı bir IP adresine sahip olacağından genellikle başarılı olmayacaktır.
IP adreslerinin değiştirilmesi bir DNS yük devretme hizmeti tarafından gerçekleştirilmiyorsa yeni IP adresini Data Movement gateway makinesindeki ana bilgisayarlar dosyasında belirtmeniz gerekecektir. Ana bilgisayarlar dosyasının yolu /etc/hosts şeklindedir. Ana bilgisayar dosyası güncellendikten sonra veri görevi otomatik olarak devam edecektir.
Birincil ve ikincil veritabanının nesne kimliği farklı olduğunda yük devretmeyi ayarlama
Standart çalışmada veri görevi, bir PostgreSQL kaynağından veri taşırken otomatik olarak bir yuva oluşturur. Yuva adları, adında veritabanının nesne kimliğini içerir. Nadir durumlarda, birincil ve ikincil veritabanlarının nesne kimliği farklı olabilir. Böyle bir durumda veri görevi, ikincil veritabanında birincil veritabanı için oluşturduğu yuvayı bulamayacağından yük devretme sırasında başarısız olacaktır. Bu durumda aşağıdaki hata meydana gelecektir:
[SOURCE_CAPTURE ]E: Can't resume task after replication slot was dropped. [1020101] (postgres_endpoint_capture.c:445)
Böyle bir hatayla karşılaşırsanız aşağıdakileri yapın:
-
Bağlayıcı ayarları Dahili özellikler bölümünde slotName dahili özelliğini ekleyin ve yuva adı değerini ayarlayın.
Belirtilen slotName, birincil PostgreSQL sunucusunda zaten mevcut olmalıdır. Yeni bir yuva oluşturabilir veya mevcut bir yuvayı kullanabilirsiniz.
Yeni bir yuva oluşturmak ve LSN'sini almak için aşağıdaki sorguyu çalıştırın:
SELECT lsn FROM pg_create_logical_replication_slot ('user_provided_slot_name', 'test_decoding');
Mevcut yuvaların ve LSN'lerinin bir listesi için aşağıdaki sorguyu çalıştırın:
SELECT slot_name, restart_lsn FROM pg_replication_slots WHERE slot_type = 'logical';
-
Belirtilen slotName için LSN'yi Gelişmiş çalıştırma seçenekleri iletişim kutusunun Kaynak değiştirme konumu alanına girin ve ardından veri görevini hazırlayıp başlatın.
Bir yük devretme gerçekleşirse ikincil sunucu hemen görevi devralacak ve birincil sunucu haline gelecektir. Yük devretme, pg_failover_slots uzantısı tarafından gerçekleştirilmelidir.
-
Bir yük devretme gerçekleştiğinde, veri görevi kurtarılabilir bir hatayla karşılaşır ve birincil veritabanı sunucusunun IP adresine yeniden bağlanmaya çalışır. Ancak ikincil veritabanı sunucusu (neredeyse her zaman) farklı bir IP adresine sahip olacağından genellikle başarılı olmayacaktır. IP adreslerinin değiştirilmesi bir DNS yük devretme hizmeti tarafından gerçekleştirilmiyorsa yeni IP adresini Data Movement gateway makinesindeki ana bilgisayarlar dosyasında belirtmeniz gerekecektir. Ana bilgisayarlar dosyasının yolu /etc/hosts şeklindedir. Ana bilgisayar dosyası güncellendikten sonra veri görevi otomatik olarak devam edecektir.