büyük bir postrgresql dökümü ilerleme nasıl izlenir


14

pg_dumpBüyük bir db'deki (örn.> 1GB) bir işlemin ilerlemesini görmenin bir yolu var mı ? -vseçeneğin eklenmesi sadece metni ekrana döker, ancak bana çok anlamlı izleme bilgisi vermez.

Yanıtlar:


8

İçindekiler listesini kullanarak kabaca bir ilerleme görebilirsiniz.

İlk olarak, geri yüklenecek nesnelerin TOK listesini alın:

pg_restore -l -f list.toc db.dump

Ardından, İçindekiler listesini satır satır görebilir ve İçindekiler listesinin nerede olduğunu görmek için ayrıntılı veya sorgu pg_stat_activity çıktılarını karşılaştırabilirsiniz.

Bu sadece kaba bir tahmindir. İlk olarak, TOK listesindeki her öğenin yüklenmesi gerçekten farklı zaman alabilir (örneğin, şemalar hızlıdır, ancak büyük tabloların ve bina dizinlerinin yüklenmesi) değildir ve -j'yi kullanırsanız geri yüklenen bir öğeniz olur bir öncekini bitirmeden önce. Ayrıca, pg_restore -L kullanmıyorsanız tam olarak TOC listesini takip ederse% 100 emin değilim, ama öyle olduğunu düşünüyorum.


2
Bu cevapla kafam karıştı - asıl soru bir veritabanının boşaltılmasını belirtir, ancak bu çözüm veritabanının geri yüklenmesini belirtir
jaydel 15:19

2

Unix / Linux ortamları için geçerlidir:

Boru Görüntüleyicisi (pv) yardımcı programı yedekleme ilerlemesini izlemek için kullanılabilir. Pv, geçen süre ve aktarılan baytlarla ilgili ayrıntılarla kabuğunuzu canlandırır.

Aşağıda, büyük döküm dosyalarını küçük parçalar halinde tutmak için pv ve split yardımcı programlarını kullanarak dökümü örneği verilmiştir. Daha sonra başka bir yere aktarmak yararlı olabilir.

# dump the PREDATA in clear text into a .PREDATA.SQL text file
pg_dump -s -o --section=pre-data  -n $schemaname $DatabaseConnString | pv | split -d -b $chunksize - $backuppath/$backupfilename".PREDATA.sql"

# dump the POSTDATA in clear text into a .PREDATA.SQL text file
pg_dump -s -o --section=post-data -n $schemaname $DatabaseConnString | pv | split -d -b $chunksize - $backuppath/$backupfilename".POSTDATA.sql"

# dump the DATA into the .DATA.dump compressed (binary) file
pg_dump -Fc   --section=data      -n $schemaname $DatabaseConnString | pv | split -d -b $chunksize - $backuppath/$backupfilename".DATA.dump"

Dezavantajı - pg_dump -Fd seçeneği (klasöre dökümü) kullanılırsa bu yaklaşım işe yaramaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.