İçeriğe Atla
Mustafa Erbay
Rehberler · 11 dk okuma · görüntülenme Read in English
100%

Eski PostgreSQL Replikasyonunun Gizli Tuzağı: Neden Dikkatli…

Eski PostgreSQL versiyonlarında replikasyon kurarken karşılaşabileceğiniz potansiyel tuzakları ve bu tuzaklardan kaçınma yollarını keşfedin. Güvenli ve stabil…

Eski PostgreSQL Replikasyonunun Gizli Tuzağı: Neden Dikkatli… — kapak görseli

Eski PostgreSQL Replikasyonunun Gizli Tuzağı: Giriş

Veritabanı sistemleri için yüksek erişilebilirlik (High Availability) ve felaket kurtarma (Disaster Recovery) stratejileri, günümüzün modern iş dünyasında vazgeçilmezdir. PostgreSQL, bu ihtiyaçları karşılamak üzere güçlü replikasyon mekanizmaları sunar. Ancak, özellikle eski PostgreSQL versiyonlarıyla çalışırken, modern sistemlerdeki konfor ve otomasyona alışkın olanlar için bazı gizli tuzaklar ortaya çıkabilir.

Bu yazıda, eski PostgreSQL replikasyon yöntemlerinin inceliklerini, potansiyel tehlikelerini ve bu tuzaklardan nasıl kaçınabileceğinizi detaylı bir şekilde inceleyeceğiz. Amacımız, mevcut eski sistemlerinizi yönetirken veya yeni bir kurulum yaparken karşılaşabileceğiniz olası sorunlara karşı sizi bilgilendirmek ve proaktif önlemler almanızı sağlamaktır. PostgreSQL’in gücünden tam anlamıyla faydalanmak için, geçmişten gelen bu mirasın getirdiği sorumlulukları anlamak kritik öneme sahiptir.

Eski PostgreSQL Replikasyon Mekanizmaları: Kısa Bir Bakış

PostgreSQL, uzun yıllardır farklı replikasyon yöntemleri geliştirerek veritabanı sürekliliğini sağlamıştır. Modern streaming replication ve logical replication mekanizmaları oldukça gelişmiş ve kullanımı kolay olsa da, daha eski versiyonlarda durum biraz farklıydı. Özellikle PostgreSQL 9.0 öncesi dönemde, replikasyon daha çok manuel süreçlere ve dosya tabanlı yaklaşımlara dayanıyordu.

Bu eski mekanizmaları anlamak, mevcut eski sistemlerinizdeki replikasyon sorunlarını teşhis etmek ve gidermek için temel bir adımdır. Güncel versiyonlarda otomatikleşen birçok sürecin, eski sistemlerde manuel olarak yönetilmesi gerektiğini unutmamak önemlidir. Bu durum, yanlış yapılandırmalar veya gözden kaçan detaylar nedeniyle sistem kararlılığını tehlikeye atabilir.

File-Based Log Shipping: Esneklik ve Riskler

PostgreSQL’in en eski ve en temel replikasyon yöntemlerinden biri, dosya tabanlı log shipping’dir. Bu yöntem, ana (primary) sunucudaki Write-Ahead Log (WAL) segmentlerinin ikincil (standby) sunucuya kopyalanması ve burada oynatılması prensibine dayanır. archive_mode ve archive_command parametreleri bu sürecin ana bileşenleridir.

Ana sunucu, tamamlanan WAL segmentlerini belirli bir dizine arşivler ve archive_command bu segmentleri standby sunucuya veya merkezi bir depolama alanına (örneğin NFS, S3) taşır. Standby sunucu ise restore_command kullanarak bu arşivlenmiş WAL segmentlerini geri yükler ve kendi veritabanını günceller. Bu yöntem, tamamen asenkron çalışır ve ana sunucu ile standby sunucu arasında gerçek zamanlı bir bağlantı gerektirmez, bu da ona belirli bir esneklik sağlar.

Ancak, bu esneklik beraberinde önemli riskleri de getirir. WAL segmentlerinin transferi ve uygulanması arasındaki gecikme, veri kaybı riskini artırır. Eğer ana sunucu çökerse ve son WAL segmenti henüz standby’a ulaşmamışsa, bu segmentteki veriler kaybolacaktır. Ayrıca, archive_command’ın başarısız olması veya ağ sorunları nedeniyle WAL dosyalarının transfer edilememesi, standby sunucunun geride kalmasına ve bir noktada replikasyonun tamamen bozulmasına yol açabilir. Disk alanı tüketimi de bu yöntemin önemli bir dezavantajıdır; arşivlenen WAL dosyalarının düzenli olarak yönetilmesi ve temizlenmesi gerekir.

-- primary sunucu postgresql.conf ayarları
archive_mode = on
archive_command = 'cp %p /mnt/server_archive/%f' -- Örnek: WAL dosyalarını başka bir dizine kopyalar
log_destination = 'stderr' -- Opsiyonel: Logların nereye yazılacağını belirler
-- standby sunucu recovery.conf (veya 12+ versiyonlarda postgresql.conf) ayarları
standby_mode = on
primary_conninfo = 'host=primary_ip port=5432 user=replication_user password=your_password'
restore_command = 'cp /mnt/server_archive/%f %p' -- Örnek: WAL dosyalarını arşiv dizininden alır
recovery_target_timeline = 'latest'

Erken Streaming Replication: Avantajlar ve Sınırlamalar

PostgreSQL 9.0 ile tanıtılan streaming replication, dosya tabanlı log shipping’e kıyasla önemli bir ilerlemeydi. Bu yöntem, ana sunucudan WAL kayıtlarını doğrudan standby sunucuya akış (stream) şeklinde gönderir, böylece WAL dosyalarının arşivlenmesi ve kopyalanması adımını atlar. Bu, replikasyon gecikmesini (lag) önemli ölçüde azaltır ve veri kaybı penceresini daraltır.

Streaming replication, primary_conninfo parametresi aracılığıyla ana sunucu ile standby sunucu arasında sürekli bir TCP/IP bağlantısı kurar. Ana sunucudaki wal_sender süreci WAL kayıtlarını gönderirken, standby sunucudaki wal_receiver süreci bu kayıtları alır ve uygular. Bu sayede, standby sunucu ana sunucuya çok daha yakın bir durumda kalabilir.

Ancak, erken streaming replication versiyonları, günümüzdeki kadar esnek ve robust değildi. Örneğin, replication slots özelliği PostgreSQL 9.4 ile tanıtıldı. Bu özellik olmadan, eğer standby sunucu uzun süre çevrimdışı kalırsa veya ana sunucu WAL dosyalarını wal_keep_segments ayarına göre temizlerse, standby sunucu ana sunucudan çok geride kalabilir ve replikasyonun bozulmasına neden olabilir. Bu durumda, standby sunucuyu yeniden ana sunucudan base backup alarak başlatmak gerekebilir ki bu da zaman alıcı ve kaynak yoğun bir işlemdir.

-- primary sunucu postgresql.conf ayarları (örnek PostgreSQL 9.x)
wal_level = hot_standby
max_wal_senders = 5 -- Standby sunucu sayısı kadar veya daha fazla
wal_keep_segments = 32 -- Her bir segment 16MB'dir. Bu ayar, diski doldurabilir.
listen_addresses = '*'
-- standby sunucu recovery.conf (örnek PostgreSQL 9.x)
standby_mode = on
primary_conninfo = 'host=primary_ip port=5432 user=replication_user password=your_password'
recovery_target_timeline = 'latest'

Gizli Tuzak: WAL Segment Yönetimi ve Alan Tüketimi

Eski PostgreSQL replikasyonunun en sinsi ve yaygın tuzaklarından biri, Write-Ahead Log (WAL) segmentlerinin yanlış yönetimi ve bunun sonucunda disk alanının tükenmesidir. Modern PostgreSQL versiyonları (replication slots, min_wal_size, max_wal_size gibi özelliklerle) bu riski büyük ölçüde azaltmış olsa da, eski sistemlerde bu kontrol mekanizmaları ya yoktur ya da daha ilkeldir.

WAL segmentleri, veritabanındaki tüm değişikliklerin kaydını tutan küçük dosyalardır (genellikle 16MB). Replikasyonun düzgün çalışabilmesi için, ana sunucudaki WAL segmentlerinin standby sunucuya ulaşması ve uygulanması gerekir. Ancak, ana sunucunun WAL segmentlerini ne kadar süreyle tutacağı veya ne zaman temizleyeceği konusundaki kontrol, eski versiyonlarda daha sınırlıydı. Bu durum, özellikle yüksek işlem hacimli sistemlerde veya replikasyonun aksadığı durumlarda ciddi sorunlara yol açabilir.

wal_keep_segments ve min_wal_size: Yanlış Ayarların Tehlikeleri

Eski PostgreSQL versiyonlarında, wal_keep_segments parametresi, ana sunucunun pg_wal (veya eski adıyla pg_xlog) dizininde tutacağı minimum WAL segmenti sayısını belirlerdi. Bu parametre, standby sunucunun ana sunucudan ne kadar geride kalabileceğini kontrol etmek için kullanılırdı. Ancak, bu ayarın doğru yapılmaması ciddi sorunlara yol açabilir.

Eğer wal_keep_segments çok düşük ayarlanırsa ve standby sunucu ağ sorunları, performans sorunları veya bakım nedeniyle uzun süre çevrimdışı kalırsa, ana sunucu ihtiyaç duyulan WAL segmentlerini temizleyebilir. Bu durumda, standby sunucu gerekli WAL segmentlerini bulamayacak ve replikasyon bozulacaktır. Replikasyonu yeniden başlatmak için tam bir base backup almak kaçınılmaz hale gelir.

Tam tersine, wal_keep_segments çok yüksek ayarlanırsa veya hiç ayarlanmazsa (veya default değeri kullanılırsa) ve replikasyon uzun süre çalışmazsa, pg_wal dizini aşırı büyüyerek disk alanını tamamen doldurabilir. Bu durum, ana sunucunun yeni WAL segmentleri yazmasını engeller ve tüm veritabanı işlemlerini durdurur. Bu, bir hizmet kesintisi (outage) anlamına gelir ve acil müdahale gerektirir.

PostgreSQL 9.4 ile gelen replication slots ve PostgreSQL 9.5 ile gelen min_wal_size ve max_wal_size parametreleri bu sorunları büyük ölçüde çözmüştür. replication slots, standby’ın ihtiyaç duyduğu WAL segmentlerinin otomatik olarak temizlenmesini engellerken, min_wal_size ve max_wal_size WAL dizininin boyutunu daha dinamik bir şekilde yönetmeye yardımcı olur. Eski versiyonlarda bu mekanizmaların yokluğu, WAL yönetimini manuel bir görev haline getirir.

-- PostgreSQL 9.x veya öncesi için örnek tehlikeli durum
-- postgresql.conf
wal_level = hot_standby
max_wal_senders = 5
wal_keep_segments = 16 -- Eğer standby uzun süre offline kalırsa bu 16 segment yetmeyebilir.

Bu senaryoda, her 16MB’lık WAL segmenti, wal_keep_segments = 16 ayarıyla sadece 256MB’lık bir tampon sağlar. Yüksek işlem hacmine sahip bir sistemde, bu tampon çok hızlı bir şekilde tükenir.

Replikasyon Gecikmesi ve WAL Birikimi

Replikasyon gecikmesi (replication lag), standby sunucunun ana sunucudan ne kadar geride olduğunu gösterir. Eski sistemlerde, replikasyon gecikmesini izlemek daha zordu ve bu gecikmenin ana sunucudaki WAL birikimine etkisi daha kritikti.

Eğer standby sunucu, ağ sorunları, düşük disk I/O performansı, yetersiz CPU kaynakları veya karmaşık sorguların standby’da çalıştırılması gibi nedenlerle ana sunucudaki değişiklikleri yeterince hızlı uygulayamazsa, replikasyon gecikmesi artar. Bu gecikme süresince, ana sunucu yeni WAL segmentleri üretmeye devam eder. wal_keep_segments ayarı olsa bile, eğer gecikme bu ayarın izin verdiğinden daha uzun sürerse, ana sunucu temizlemesi gereken WAL segmentlerini tutmaya devam edecektir.

Bu, pg_wal dizininin kontrolsüz bir şekilde büyümesine ve disk alanının tükenmesine yol açar. Ana sunucu, kritik işlemler için disk alanı bulamadığında, veritabanı tamamen durur. Bu durum, özellikle yoğun yazma işlemlerine sahip sistemlerde veya standby sunucunun uzun süreli sorunlar yaşadığı senaryolarda ciddi bir felakete dönüşebilir.

Ağ Sorunları ve Disk I/O: Performans Engelleri

Replikasyonun sorunsuz çalışması, yalnızca doğru yapılandırmaya değil, aynı zamanda sağlam bir ağ ve yüksek performanslı disk altyapısına da bağlıdır. Eski PostgreSQL replikasyon sistemlerinde, bu altyapısal faktörlerin etkisi daha belirgin ve yönetimi daha zor olabilirdi. Güncel sistemlerde bile bu faktörler kritik olsa da, eski sistemlerdeki daha az esnek WAL yönetim mekanizmaları nedeniyle etkileri daha yıkıcı olabilir.

Bant Genişliği ve Gecikme Sorunları

Streaming replication, adından da anlaşılacağı gibi, WAL kayıtlarının ana sunucudan standby sunucuya sürekli bir akış halinde gönderilmesini gerektirir. Bu akışın düzgün çalışabilmesi için yeterli ağ bant genişliği ve düşük ağ gecikmesi (latency) hayati öneme sahiptir.

  • Düşük Bant Genişliği: Ana sunucu yüksek miktarda WAL verisi üretiyorken (yoğun yazma işlemleri), eğer ağ bağlantısı bu veriyi yeterince hızlı taşıyamazsa, WAL sender süreçleri tıkanır. Bu, ana sunucuda WAL dosyalarının birikmesine ve disk alanının tükenme riskine yol açar. Özellikle farklı coğrafi konumlardaki sunucular arasında replikasyon yaparken bu durum daha sık görülebilir.
  • Yüksek Ağ Gecikmesi: Ağ gecikmesi, WAL kayıtlarının ana sunucudan standby’a ulaşma süresini uzatır. Bu, replikasyon gecikmesini artırır ve özellikle senkron replikasyon (eğer kullanılıyorsa) senaryolarında ana sunucunun işlem performansını doğrudan etkiler. Eski versiyonlarda, ağ gecikmesinin izlenmesi ve optimizasyonu daha karmaşık araçlar gerektirebilirdi.

Ağ sorunları genellikle geçicidir (kısa süreli kesintiler, paket kayıpları), ancak uzun süreli veya sık tekrarlayan sorunlar replikasyonun sürekli olarak geride kalmasına neden olabilir. Bu da wal_keep_segments ayarının etkisiz kalmasına ve WAL birikimine yol açar.

Disk I/O Performansının Önemi

Replikasyonun performansında ağ kadar önemli olan bir diğer faktör de disk I/O performansıdır, hem ana sunucuda hem de standby sunucuda.

  • Ana Sunucuda Disk I/O: Ana sunucu, veritabanı işlemlerini işlerken sürekli olarak WAL dosyalarına yazar. Eğer disk alt sistemi yavaşsa veya yoğun I/O yükü altındaysa, WAL yazma işlemleri yavaşlar. Bu, veritabanı işlemlerinin tamamlanmasını geciktirir ve genel sistem performansını düşürür. Ayrıca, WAL dosyalarının oluşum hızı, standby’a gönderilme hızını da etkiler.
  • Standby Sunucuda Disk I/O: Standby sunucu, ana sunucudan gelen WAL kayıtlarını kendi veritabanına uygular. Bu uygulama işlemi, yoğun disk yazma I/O’su gerektirir. Eğer standby sunucunun diskleri yavaşsa veya başka yoğun I/O işlemleriyle meşgulse, WAL kayıtlarını uygulama hızı düşer. Bu da replikasyon gecikmesinin artmasına neden olur. Standby’ın geride kalması, ana sunucuda WAL birikimi riskini yeniden gündeme getirir.

Eski donanımlar veya yanlış yapılandırılmış depolama sistemleri, bu tür I/O darboğazlarına neden olabilir. SSD’ler yerine HDD’lerin kullanıldığı veya RAID seviyelerinin yanlış seçildiği sistemlerde bu sorunlar daha sık görülür. Replikasyonun sağlıklı çalışması için, her iki tarafta da yeterli I/O kapasitesine sahip disk sistemleri kullanmak zorunludur.

Upgrade ve Versiyon Uyumluluğu: Replikasyonun Kırılganlığı

PostgreSQL ekosistemi sürekli gelişmekte ve her yeni büyük sürümle birlikte önemli iyileştirmeler ve yeni özellikler gelmektedir. Ancak bu gelişim, özellikle eski versiyonlardan yeni versiyonlara geçiş yaparken veya farklı versiyonlar arasında replikasyon kurmaya çalışırken bazı zorlukları da beraberinde getirir. Eski replikasyon mekanizmaları, versiyon uyumluluğu konusunda daha kırılgandı ve yanlış planlama ciddi kesintilere yol açabilirdi.

Büyük Versiyon Farklılıkları ve Replikasyon

PostgreSQL’de büyük versiyon yükseltmeleri (örneğin 9.x’ten 10.x’e veya 11.x’e geçiş), veritabanı disk formatında değişikliklere neden olabilir. Fiziksel replikasyon (hem dosya tabanlı log shipping hem de streaming replication), ana ve standby sunucuların tam olarak aynı ana versiyonda olmasını gerektirir. Farklı ana versiyonlar arasında fiziksel replikasyon kesinlikle çalışmaz.

Bu, eski bir PostgreSQL sunucusunu yükseltirken replikasyon setini de güncellemeniz gerektiği anlamına gelir. Genellikle izlenen prosedür şöyledir:

  1. Standby sunucularda replikasyonu durdurun.
  2. Ana sunucuyu yükseltin (örneğin pg_upgrade kullanarak).
  3. Yükseltilmiş ana sunucudan yeni bir base backup alın.
  4. Standby sunucuları bu yeni base backup ile yeniden oluşturun ve replikasyonu başlatın.

Bu süreç, özellikle büyük veritabanları için zaman alıcı olabilir ve planlı bir kesinti gerektirebilir. Eski versiyonlarda bu sürecin karmaşıklığı ve manuel adımların fazlalığı, hata yapma olasılığını artırırdı. Modern versiyonlarda, özellikle logical replication (PostgreSQL 10+) farklı ana versiyonlar arasında replikasyona izin vererek bu tür yükseltmeleri kolaylaştırmıştır. Ancak eski sistemler için bu bir seçenek değildir.

Minor Versiyon Güncellemeleri ve En İyi Pratikler

Ana versiyon güncellemelerinin aksine, minor versiyon güncellemeleri (örneğin 9.6.1’den 9.6.2’ye) genellikle disk formatında değişiklik yapmaz ve fiziksel replikasyon uyumluluğunu bozmaz. Bu nedenle, minor versiyon güncellemeleri genellikle daha güvenli ve kesintisiz bir şekilde yapılabilir.

Ancak yine de dikkatli olmak önemlidir:

  • Önce Standby, Sonra Ana: Genellikle, minor versiyon güncellemelerini önce standby sunucularda yapmak, ardından ana sunucuyu güncellemek iyi bir pratiktir. Bu yaklaşım, bir sorun çıkması durumunda hızlıca standby’a failover yapma seçeneğini korumanıza olanak tanır.
  • Test Ortamı: Her zaman güncellemeleri üretim dışı bir test ortamında denemek, olası sorunları önceden tespit etmek için kritik öneme sahiptir.
  • Dokümantasyon: Güncelleme öncesinde PostgreSQL dokümantasyonunu dikkatlice okuyun. Nadiren de olsa, bazı minor versiyon güncellemeleri özel dikkat gerektirebilir.

Eski PostgreSQL versiyonlarında, güncellemelerle ilgili bilgiye erişim ve topluluk desteği daha sınırlı olabilirdi. Bu nedenle, her minor güncellemenin bile dikkatli bir şekilde planlanması ve uygulanması gerekiyordu. Güvenli bir yükseltme stratejisi, replikasyonun kırılganlığını azaltarak sisteminizin uzun ömürlü olmasını sağlar.

İzleme ve Alarm Mekanizmaları: Erken Uyarı Sistemleri

Eski PostgreSQL replikasyon sistemlerinde, replikasyonun durumunu aktif olarak izlemek ve olası sorunlara karşı erken uyarı sistemleri kurmak hayati öneme sahipti. Modern sistemlerde pg_replication_slots gibi özellikler replikasyonun bozulmasını otomatik olarak engelleyebilirken, eski sistemlerde bu tür korumalar mevcut değildi. Bu da DBA’ların ve sistem yöneticilerinin daha uyanık olmasını gerektiriyordu. İzleme, potansiyel bir felaketin önüne geçmenin ilk adımıdır.

pg_stat_replication ve pg_replication_slots (veya Eksiklikleri)

PostgreSQL 9.1 ile tanıtılan pg_stat_replication view’ı, streaming replication’ın durumunu izlemek için çok değerli bilgiler sunar. Bu view, standby sunucuların ana sunucuya ne kadar geriden geldiğini (replay_lag), WAL gönderme ve uygulama durumlarını gösterir.

-- Ana sunucuda replikasyon durumunu kontrol etmek için
SELECT
    client_addr,
    state,
    sync_state,
    sync_priority,
    sent_lsn,
    write_lsn,
    flush_lsn,
    replay_lsn,
    (pg_current_wal_lsn() - replay_lsn) AS replication_lag_bytes
FROM pg_stat_replication;

Bu sorgu, her bir standby’ın ana sunucudan ne kadar WAL verisi aldığını (sent_lsn), diske yazdığını (write_lsn), işletim sistemi önbelleğinden diske senkronize ettiğini (flush_lsn) ve veritabanına uyguladığını (replay_lsn) gösterir. replication_lag_bytes değeri, standby’ın ana sunucudan ne kadar geride olduğunu gösterir. Bu değerin sürekli büyümesi, bir replikasyon sorunu olduğunun açık bir işaretidir.

Ancak, PostgreSQL 9.4 öncesi versiyonlarda replication slots özelliği mevcut değildi. Bu da, eğer bir standby sunucu çevrimdışı kalırsa, ana sunucunun wal_keep_segments ayarına göre WAL dosyalarını temizlemeye devam edeceği anlamına geliyordu. Standby tekrar çevrimiçi olduğunda, ihtiyaç duyduğu WAL segmentleri silinmiş olabilir ve replikasyonun bozulmasına yol açabilirdi. Bu durum, eski versiyonlarda pg_stat_replication ile sadece anlık durumu görebildiğiniz, ancak gelecekteki bir sorunu önleyemediğiniz anlamına geliyordu.

Custom Scripting ve Monitoring Tools

Eski sistemlerde replication slots gibi otomatik koruma mekanizmaları olmadığından, DBA’ların özel izleme ve alarm komut dosyaları geliştirmesi yaygındı. Bu komut dosyaları, replikasyon gecikmesini, WAL dizininin boyutunu ve archive_command’ın başarısını kontrol ederdi.

Örnek komut dosyası fikirleri:

  • WAL Dizini Boyutu Kontrolü: du -sh /var/lib/postgresql/data/pg_wal komutu ile pg_wal dizininin boyutunu düzenli olarak kontrol eden ve belirli bir eşiği aştığında alarm veren bir script.
  • Replikasyon Gecikmesi Kontrolü: pg_stat_replication view’ını sorgulayarak replay_lag değerini belirli aralıklarla kontrol eden ve eşik değerini aştığında bildirim gönderen bir script.
  • Arşiv Komutu Başarısı: archive_command’ın başarılı olup olmadığını kontrol etmek için arşiv dizinindeki son WAL dosyasının yaşını kontrol eden bir script (dosya tabanlı log shipping için).

Bu tür özel komut dosyaları, Nagios, Zabbix, Prometheus gibi kurumsal izleme sistemleriyle entegre edilerek merkezi bir izleme ve alarm altyapısı oluşturulabilirdi. Erken uyarılar, DBA’lara sorunlar büyümeden müdahale etme ve olası bir hizmet kesintisini önleme şansı verirdi.

Eski Sistemler İçin Çözüm Önerileri

Eski PostgreSQL replikasyon sistemleriyle çalışmak, modern versiyonlara kıyasla daha fazla dikkat ve manuel yönetim gerektirir. Ancak bu, imkansız olduğu anlamına gelmez. Doğru stratejiler ve proaktif önlemlerle, eski sistemlerinizde bile güvenilir bir replikasyon ortamı sağlayabilirsiniz. İşte eski PostgreSQL replikasyonu için bazı çözüm önerileri:

Düzenli WAL Segment Temizliği ve Arşivleme

Dosya tabanlı log shipping kullanıyorsanız veya replication slots özelliği olmayan eski streaming replication sistemleriniz varsa, WAL segment yönetimi sizin sorumluluğunuzdadur.

  • Arşiv Dizini Yönetimi: Eğer archive_command ile WAL dosyalarını ayrı bir dizine veya uzak bir depolama alanına arşivliyorsanız, bu arşiv dizinini düzenli olarak kontrol edin. Belirli bir yaştan (örneğin 7 gün) eski WAL dosyalarını otomatik olarak silen bir cron job veya script kurun. Ancak, bu temizliği yaparken basebackup ve PITR (Point-in-Time Recovery) ihtiyaçların
Paylaş:

Bu yazı faydalı oldu mu?

Yükleniyor...

Bu yazı nasıldı?

ME

Mustafa Erbay

Sistem Mimarisi · Network Uzmanı · Altyapı, Güvenlik ve Yazılım

2006'dan bu yana sistem mimarisi, network, sunucu altyapıları, büyük yapıların kurulumu, yazılım ve sistem güvenliği ekseninde çalışıyorum. Bu blogda sahada karşılığı olan teknik deneyimlerimi paylaşıyorum.

Kişisel Notlar

Bu notlar sadece sizde saklanır. Tarayıcınızda yerel olarak tutulur.

Hazır 0 karakter

Yorumlar

Sunucu Taraflı AI Moderasyon

Yorumlar sunucuda yapay zeka ile denetlenir ve kalıcı olarak saklanır.

?
0/2000

Sunucu taraflı AI denetim

✉️ Ücretsiz · Spam yok · İstediğin an çık

Haftalık özet — AI değil, bizzat ben seçiyorum

Haftada bir mail: o haftanın en önemli yazısı, perde arkası notları, ve "bu hafta gerçekten kullandığım araç" bölümü. Az gürültü, çok sinyal.

  • 📌
    Haftanın en iyisi Sadece okumaya değer tek yazı
  • 🔧
    Alet çantası Bu hafta kullandığım araçlar
  • 🧠
    Perde arkası Blog'a girmeyen notlar

Spam yapmıyoruz. İstediğiniz zaman ayrılabilirsiniz. · Sadece Umami (self-hosted, Google yok) ile takip.

Okuma İstatistikleriniz

0

Yazı Okundu

0dk

Okuma Süresi

0

Gün Serisi

-

Favori Kategori

İlgili Yazılar