Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen pg_standby komutudur.
Program:
ADI
pg_standby - PostgreSQL sıcak bekleme sunucusunun oluşturulmasını destekler
SİNOPSİS
pg_standby [seçenek...] arşiv konumu sonraki dosya xlog dosyası yolu [yeniden başlatma dosyası]
TANIM
pg_standby, bir "sıcak bekleme" veritabanı sunucusunun oluşturulmasını destekler. Olmak üzere tasarlanmıştır
üretime hazır programın yanı sıra özelleştirilebilir bir şablona ihtiyacınız varsa
değişiklikler.
pg_standby beklemek için tasarlanmıştır geri yükleme_komutubir standardı döndürmek için gerekli olan
kurtarma işlemini sıcak bekleme işlemine arşivleyin. Diğer yapılandırma da gereklidir,
tümü ana sunucu kılavuzunda açıklanmıştır (bkz. Bölüm 25.2, “Log-Shipping
Bekleme Sunucuları”, belgelerde).
Bir bekleme sunucusunu pg_standby kullanacak şekilde yapılandırmak için, bunu recovery.conf dosyasına koyun.
yapılandırma dosyası:
restore_command = 'pg_standby arşivDir %f %p %r'
nerede arşivDir WAL segment dosyalarının geri yüklenmesi gereken dizindir.
If yeniden başlatma dosyası normalde %r makrosu kullanılarak belirtilir, ardından tüm WAL dosyaları
mantıksal olarak bu dosyadan önce kaldırılacak arşiv konumu. Bu en aza indirir
Kilitlenme-yeniden başlatma özelliğini korurken tutulması gereken dosya sayısı. Kullanmak
bu parametrenin uygun olması durumunda arşiv konumu için geçici bir evreleme alanıdır
bu özel bekleme sunucusu, ancak değil zaman arşiv konumu olarak tasarlanmıştır
uzun vadeli WAL arşiv alanı.
pg_standby olduğunu varsayar arşiv konumu sunucu sahibi kullanıcı tarafından okunabilen bir dizindir.
If yeniden başlatma dosyası (veya -k) belirtilirse, arşiv konumu dizin yazılabilir olmalıdır
çok.
Ana sunucu bir "sıcak bekleme" veritabanı sunucusuna yük devretmenin iki yolu vardır.
başarısız:
Akıllı Yük Devretme
Akıllı yük devretmede, sunucu, mevcut tüm WAL dosyaları uygulandıktan sonra açılır.
Arşiv. Bu, bekleme sunucusu düşmüş olsa bile sıfır veri kaybıyla sonuçlanır
geride, ancak çok fazla uygulanmamış WAL varsa, uygulamadan önce uzun zaman alabilir.
bekleme sunucusu hazır hale gelir. Akıllı yük devretmeyi tetiklemek için bir tetik dosyası oluşturun
akıllı kelimesini içeren veya sadece oluşturun ve boş bırakın.
Hızlı Yük Devretme
Hızlı yük devretmede sunucu hemen devreye alınır. Arşivdeki herhangi bir WAL dosyası
henüz uygulanmamış olanlar yoksayılacak ve bu dosyalardaki tüm işlemler
kayıp. Hızlı bir yük devretmeyi tetiklemek için bir tetik dosyası oluşturun ve hızlı kelimeyi yazın
bunun içine. pg_standby ayrıca otomatik olarak hızlı bir yük devretme yürütmek üzere yapılandırılabilir
tanımlı bir aralık içinde yeni bir WAL dosyası görüntülenmezse.
SEÇENEKLER
pg_standby aşağıdaki komut satırı bağımsız değişkenlerini kabul eder:
-c
WAL dosyalarını arşivden geri yüklemek için cp veya copy komutunu kullanın. Bu desteklenen tek
davranış, bu nedenle bu seçenek işe yaramaz.
-d
Stderr'de çok sayıda hata ayıklama günlüğü çıktısı yazdırın.
-k
Dosyaları şuradan kaldır: arşiv konumu bu kadar çok WAL dosyasından daha fazla değil
günceli arşivde tutulmaktadır. Sıfır (varsayılan), hiçbir dosyayı kaldırmamak anlamına gelir
itibaren arşiv konumu. Bu parametre, aşağıdaki durumlarda sessizce yoksayılır. yeniden başlatma dosyası is
belirtilen, çünkü bu spesifikasyon yöntemi, doğru olanı belirlemede daha doğru
Arşiv kesme noktası. Bu parametrenin kullanımı önerilmiyor PostgreSQL 8.3'ten itibaren; bu
belirtmek için daha güvenli ve daha verimli yeniden başlatma dosyası parametre. Çok küçük bir ayar
beklemenin yeniden başlatılması için hala gerekli olan dosyaların kaldırılmasına neden olabilir
sunucu, çok büyük bir ayar ise arşiv alanını boşa harcar.
-r maxreries
Başarısız olursa kopyalama komutunu yeniden denemek için maksimum sayıyı ayarlayın (varsayılan 3).
Her başarısızlıktan sonra bekleriz uyku zamanı * deneme_sayısı yani bekleme süresi
giderek artar. Yani varsayılan olarak 5 saniye, 10 saniye, ardından 15 saniye bekleyeceğiz.
arızayı bekleme sunucusuna bildirmeden önce. Bu şu şekilde yorumlanacak
kurtarmanın sonu ve sonuç olarak bekleme tamamen ortaya çıkacaktır.
-s uyku zamanı
olup olmadığını görmek için testler arasında uyku süresini (60'a kadar, varsayılan 5) ayarlayın.
Geri yüklenecek WAL dosyası henüz arşivde mevcut. Varsayılan ayar değil
mutlaka tavsiye edilir; bölümündeki Bölüm 25.2, “Günlük Gönderimi Bekleme Sunucuları”na başvurun.
tartışma için belgeler.
-t tetik dosyası
Varlığı yük devretmeye neden olması gereken bir tetikleyici dosya belirtin. tavsiye edilir
hangi sunucunun kullanıldığına dair kafa karışıklığını önlemek için yapılandırılmış bir dosya adı kullanıyorsunuz
aynı sistemde birden fazla sunucu bulunduğunda tetiklenir; Örneğin
/tmp/pgsql.trigger.5432.
-V
--versiyon
pg_standby sürümünü yazdırın ve çıkın.
-w maksimum bekleme süresi
Bir sonraki WAL dosyasını beklemek için maksimum saniye sayısını ayarlayın, ardından hızlı bir
yük devretme gerçekleştirilecektir. Sıfır ayarı (varsayılan), sonsuza kadar beklemek anlamına gelir. NS
varsayılan ayar mutlaka tavsiye edilmez; Bölüm 25.2'ye başvurun, “Günlük Gönderimi
Bekleme Sunucuları”, tartışma için belgelerde.
-?
--yardım et
pg_standby komut satırı argümanları hakkında yardım göster ve çık.
NOTLAR
pg_standby, PostgreSQL 8.2 ve sonraki sürümleriyle çalışmak üzere tasarlanmıştır.
PostgreSQL 8.3, pg_standby'nin son durumu bilmesini sağlamak için tasarlanmış %r makrosunu sağlar.
tutması gereken dosyadır. PostgreSQL 8.2 ile, arşiv temizliği yapılırsa -k seçeneği kullanılmalıdır.
gerekli. Bu seçenek 8.3'te mevcut olmaya devam etmektedir, ancak kullanımı kullanımdan kaldırılmıştır.
PostgreSQL 8.4 şunları sağlar: Recovery_end_command seçenek. Bu seçenek olmadan artık
tetik dosyası tehlikeli olabilir.
pg_standby, C ile yazılmıştır ve değiştirilmesi kolay bir kaynak koduna sahiptir.
kendi ihtiyaçlarınıza göre değiştirebileceğiniz belirlenmiş bölümler
ÖRNEKLER
Linux veya Unix sistemlerinde şunları kullanabilirsiniz:
arşiv_komutu = 'cp %p .../arşiv/%f'
restore_command = 'pg_standby -d -s 2 -t /tmp/pgsql.trigger.5442 .../archive %f %p %r 2>>standby.log'
recovery_end_command = 'rm -f /tmp/pgsql.trigger.5442'
arşiv dizini fiziksel olarak bekleme sunucusunda bulunur, böylece
arşiv_komutu NFS üzerinden erişiyor, ancak dosyalar bekleme modunda yerel
(ln kullanımını etkinleştirme). Bu irade:
· standby.log'da hata ayıklama çıktısı üret
· sonraki WAL dosyası kullanılabilirliği için kontroller arasında 2 saniye uyku
· yalnızca /tmp/pgsql.trigger.5442 adlı bir tetikleyici dosya göründüğünde beklemeyi bırakın ve
içeriğine göre yük devretme gerçekleştir
· kurtarma sona erdiğinde tetikleyici dosyayı kaldırın
· artık ihtiyaç duyulmayan dosyaları arşiv dizininden kaldırın
Windows'ta şunları kullanabilirsiniz:
arşiv_komutu = '%p kopyala ...\\archive\\%f'
restore_command = 'pg_standby -d -s 5 -t C:\pgsql.trigger.5442 ...\archive %f %p %r 2>>standby.log'
recovery_end_command = 'del C:\pgsql.trigger.5442'
Ters eğik çizgilerin iki katına çıkarılması gerektiğini unutmayın. arşiv_komutu, fakat değil içinde
geri yükleme_komutu or Recovery_end_command. Bu irade:
· WAL dosyalarını arşivden geri yüklemek için kopyala komutunu kullanın
· standby.log'da hata ayıklama çıktısı üret
· sonraki WAL dosyası kullanılabilirliği için kontroller arasında 5 saniye uyku
· yalnızca C:\pgsql.trigger.5442 adlı bir tetikleyici dosya göründüğünde beklemeyi bırakın ve
içeriğine göre yük devretme gerçekleştir
· kurtarma sona erdiğinde tetikleyici dosyayı kaldırın
· artık ihtiyaç duyulmayan dosyaları arşiv dizininden kaldırın
Windows'taki copy komutu, dosya tamamen kopyalanmadan önce son dosya boyutunu ayarlar.
normalde pg_standby'nin kafasını karıştırırdı. Bu nedenle pg_standby uyku süresi saniyelerini bekler
uygun dosya boyutunu gördüğünde. GNUWin32'nin cp'si dosya boyutunu yalnızca dosyadan sonra ayarlar
kopya tamamlandı.
Windows örneği her iki uçta da kopya kullandığından, sunuculardan biri veya her ikisi birden
ağ üzerinden arşiv dizinine erişim.
onworks.net hizmetlerini kullanarak pg_standby'yi çevrimiçi kullanın