มีวิธีดูความคืบหน้าของการpg_dump
ดำเนินการกับฐานข้อมูลขนาดใหญ่ (เช่น> 1GB) หรือไม่ การเพิ่ม-v
ตัวเลือกเพียงแค่ทิ้งข้อความบนหน้าจอ แต่ไม่ได้ให้ข้อมูลการติดตามที่มีความหมายกับฉันมากนัก
มีวิธีดูความคืบหน้าของการpg_dump
ดำเนินการกับฐานข้อมูลขนาดใหญ่ (เช่น> 1GB) หรือไม่ การเพิ่ม-v
ตัวเลือกเพียงแค่ทิ้งข้อความบนหน้าจอ แต่ไม่ได้ให้ข้อมูลการติดตามที่มีความหมายกับฉันมากนัก
คำตอบ:
คุณสามารถเห็นความคืบหน้าคร่าวๆโดยใช้รายการ TOC
ขั้นแรกให้รับรายการวัตถุ TOC ที่จะกู้คืน:
pg_restore -l -f list.toc db.dump
จากนั้นคุณสามารถดูบรรทัดรายการ TOC ทีละบรรทัดและเปรียบเทียบเอาต์พุตของ verbose หรือเคียวรี pg_stat_activity เพื่อดูตำแหน่งในรายการ TOC คือ pg_restore ใน
มันเป็นเพียงประมาณการคร่าวๆ ก่อนเนื่องจากแต่ละรายการจากรายการ TOC อาจใช้เวลาในการโหลดที่แตกต่างกันจริงๆ (ตัวอย่างเช่น schemas นั้นรวดเร็ว แต่การโหลดข้อมูลของตารางขนาดใหญ่และดัชนีการสร้างไม่ได้เป็นเช่นนั้น) และถ้าคุณใช้ -j คุณจะต้องเรียกคืนรายการ ก่อนที่ก่อนหน้านี้จะเสร็จสิ้น นอกจากนี้ฉันไม่แน่ใจ 100% ถ้า pg_restore ติดตามรายการ TOC อย่างแม่นยำหากคุณไม่ได้ใช้ -L แต่ฉันคิดว่ามันเป็นเช่นนั้น
ใช้ได้กับสภาพแวดล้อม Unix / Linux:
ยูทิลิตี Pipe Viewer (pv) สามารถใช้ติดตามความคืบหน้าการสำรองข้อมูล pv ทำให้เชลล์ของคุณเคลื่อนไหวโดยมีรายละเอียดเกี่ยวกับเวลาที่ผ่านไปและไบต์ที่ถูกถ่ายโอน
ด้านล่างนี้เป็นตัวอย่างของการดัมพ์โดยใช้ pv และยูทิลิตีการแยกเพื่อเก็บไฟล์ดัมพ์ขนาดใหญ่เป็นกลุ่มเล็ก ๆ มันอาจจะสะดวกในการถ่ายโอนในภายหลังไปยังตำแหน่งอื่น
# 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"
ข้อเสียเปรียบ - วิธีการนี้ใช้ไม่ได้หากใช้ตัวเลือก pg_dump -Fd (dump to folder)