Her biri kendi postgreSQL örneğini (9.0 ve 9.3 karışımı) kullanan bir vmware / paylaşılan depolama ortamında birçok Linux VM'si çalıştırıyoruz. Şu anda, tüm VM tek bir kök bölüme / birime oturur ve yedekleme / geri yükleme işlemi (ve DR sitemize çoğaltma) için temel VMFS birimlerinin depolama tabanlı anlık görüntülerini kullanarak büyük bir başarı elde ettik (~ 8 yıl).
Depolama alanımızın mimarisi nedeniyle, depolama tarafında daha az önbellek karmaşası sağlamak için postgres WAL dosyalarını önbelleğe alınmamış, çoğunlukla yazma birimine ayırmak avantajlı olacaktır. Depolama alanımızla (Çevik Depolama), her iki birimi de tek bir koruma / anlık görüntü grubuna atayabiliriz, ancak tedarikçimizden, anlık görüntülerin koruma grubundaki tüm birimlerde aynı anda OLACAĞINI sağlayamadım. - Muhtemelen olacak, ama her zaman milisaniye aralıklı olma şansı var.
Bu amaçla, pg_bench kullanarak DB'ye mümkün olduğunca hızlı veri yazarken bazı deneyler yaptık. Deneylerden sonra, anlık görüntü birimlerimizi geri yükledik ve VM + postgres'i başlattık
- Hem veri hem de günlük hacimlerini aynı anda yakınlaştı - sonuç: DB kurtarıldı
- Önce anlık görüntü veri hacmi, günlük hacmi ~ 1 dakika sonra - sonuç: DB kurtarıldı
- Önce anlık görüntü günlüğü hacmi, veri hacmi ~ 1 dakika sonra - sonuç: DB kurtarıldı
- WAL denetim noktasının veri dosyalarına yeni veriler yazmasından sonra ilk olarak anlık görüntü günlüğü birimi, veri hacmi ~ 3 dakika sonra: sonuç: DB kurtarıldı
Bu nedenle, her iki anlık görüntü de ses düzeyinde tutarlı olduğu ve nispeten birbirine yakın olduğu sürece, testin WAL / Log hacim anlık görüntüsünün zamanına bağlı olarak DB'nin tutarlı bir kopyasını aldığınız anlaşılıyor.
Sorum: Bu güvenli mi? Testlerimizde eksik olduğumuz köşe durumlar nelerdir ve ne ters gidebilir?
Postgres'in dokümanı bunun güvenli olmadığını gösteriyor, ancak testler oldukça sağlam olduğunu gösteriyor: http://www.postgresql.org/docs/9.1/static/backup-file.html
Veritabanınız birden fazla dosya sistemine yayılmışsa, tüm birimlerin tam olarak eşzamanlı dondurulmuş anlık görüntülerini elde etmenin bir yolu olmayabilir. Örneğin, veri dosyalarınız ve WAL günlüğünüz farklı disklerdeyse veya tablo alanları farklı dosya sistemindeyse, anlık görüntüler eşzamanlı olması gerektiğinden anlık görüntü yedeklemesi kullanmak mümkün olmayabilir. Bu gibi durumlarda tutarlı anlık görüntü tekniğine güvenmeden önce dosya sistemi belgelerinizi dikkatle okuyun.
NOT: Evet, tutarlı olmalarını sağlamak için PostgreSQL'i sıcak yedekleme moduna sokmak veya sanal makinelerin kendilerini sorgulamak için depolama alanımızın VMware entegrasyonunu kullanmak gibi diğer seçenekleri biliyoruz, ancak hız, kolaylık, ve müşterilerimize sıfır etki.