cara melacak kemajuan dump postrgresql yang besar


13

Apakah ada cara untuk melihat kemajuan pg_dumpoperasi pada db besar (yaitu> 1GB)? menambahkan -vopsi hanya membuang teks di layar, tetapi tidak memberi saya banyak informasi pelacakan yang berarti.

Jawaban:


7

Anda dapat melihat kemajuan kasar menggunakan daftar TOC.

Pertama, dapatkan daftar objek TOC yang akan dipulihkan:

pg_restore -l -f list.toc db.dump

Kemudian, Anda dapat melihat daftar TOC baris demi baris dan membandingkan output dari verbose atau permintaan pg_stat_activity untuk melihat di mana di daftar TOC pg_restore masuk.

Itu hanya perkiraan kasar. Pertama karena setiap item dari daftar TOC mungkin memerlukan waktu yang sangat berbeda untuk memuat (misalnya, skema cepat, tetapi memuat data tabel besar dan indeks bangunan tidak), dan jika Anda menggunakan -j Anda akan memiliki item yang dikembalikan sebelum yang sebelumnya selesai. Juga, saya tidak 100% yakin jika pg_restore mengikuti daftar TOC dengan tepat jika Anda tidak menggunakan -L, tapi saya pikir itu benar.


Saya bingung dengan jawaban ini - pertanyaan awal menentukan dumping database, tetapi solusi ini menentukan mengembalikan database
jaydel

2

Berlaku untuk lingkungan Unix / Linux:

Utilitas Pipe Viewer (pv) dapat digunakan melacak kemajuan cadangan. Pv menggerakkan shell Anda dengan detail tentang waktu yang telah berlalu dan byte yang ditransfer.

Di bawah ini adalah contoh dumping menggunakan utilitas pv dan split untuk menjaga file dump besar dalam potongan kecil. Mungkin berguna untuk mentransfernya nanti ke lokasi lain.

# 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"

Kekurangannya - pendekatan ini tidak berfungsi, jika opsi pg_dump -Fd (dump to folder) digunakan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.