PostgreSQL

PostgreSQL’de sürekli erişilebilir (HA) bir küme yapılandırması (cluster configuration) kurmak, çeşitli replikasyon (replication) metodları ile mümkündür. Sıklıkla Warm Standby veya Log Shipping şeklinde anılan replikasyon modellerinde sürekli arşivleme (continuous archiving); birincil/ana (primary/master) sunucu başarısız olursa işlemleri devralmaya hazır bir ya da daha fazla yedek (replica) sunucu olması ile sağlanır.

Bu yazıda, ana (master) sunucuyu çeşitli sebeplerden dolayı kaybedersek (fail scenarios) replika (yedek) sunucuyu nasıl birincil/ana sunucuya yükseltebileceğimizi (promote) göreceğiz.

Öncelikle yük dağıtma (failover) senaryosunun düzgün tamamlanabilmesi için ana sunucudaki postgresql servisinin durmuş olduğundan emin olmalıyız. Aynı anda çift master rolü olan bir replikasyon beklenmedik sonuçlar doğuracaktır. O yüzden imkan varsa -sunucu erişilmez hale gelmiş olabilir; donanımsal sorunlar vs-, önce ana (master) sunucudaki postgresql servisini durdurmalıyız.

Okumaya devam edin...

Bir sorgu optimizasyonu yaparken sorgunun nasıl planlandığını incelemek önemlidir.

Eğer sorgu çalıştırmak için pgAdmin aracını kullanıyorsanız, pgAdmin arayüzünde üst menüdeki explain explainanalyze butonuna tıklayabilirsiniz.

Ya da sorguyu psql ile veya yine pgAdmin’in sorgu panelinde şöyle çalıştırabilirsiniz:

Explain select * from table_a;
Explain analyze select * from table_a;

Yukarıdaki gibi explain ve explain analyze sorguları çalıştırıldığında farklı sorgu planları dönerler.

Explain ile olan sorgunun planı:

                            QUERY PLAN
------------------------------------------------------------------
 Seq Scan on table_a (cost=0.00..4740.30 rows=86430 width=140)
(1 row)
Okumaya devam edin...