Score:0

Postgresql 13 - เพิ่มความเร็ว pg_dump เป็น 5 นาทีแทนที่จะเป็น 70 นาที

ธง cn

เราใช้ pg_dump ทุกคืนเพื่อสร้างภาพรวมของฐานข้อมูลของเรา ทำนานด้วยคำสั่งง่ายๆ

pg_dump -Fc ฐานข้อมูลชื่อ

ใช้เวลาประมาณหนึ่งชั่วโมงและสร้างไฟล์ขนาด 30+GByte

เราจะเร่งความเร็วได้อย่างไร?

Score:4
ธง cn

ตารางที่ใหญ่ที่สุดของเรามีข้อมูลภาพดิบในรูปแบบ บายที คอลัมน์.

เมื่อเราทำ COPY อย่างง่ายจาก psql ในตารางนี้ไปที่ แย่ค่อนข้างเร็ว (1 หรือ 2 นาที) แต่ pg_dump ช้ามาก ใช้เวลาประมาณ 60 นาที

ดังนั้นการตรวจสอบสิ่งนี้ฉันจึงพบสิ่งนี้ อภิปรายผล. ดูเหมือนว่าการบีบอัด pg_dump ค่อนข้างช้าหากข้อมูลถูกบีบอัดแล้วเช่นเดียวกับข้อมูลรูปภาพในรูปแบบไบต์ และเป็นการดีกว่าที่จะบีบอัดภายนอก pg_dump (-Z0)

นอกจากนี้ เราพบว่าเราสามารถใช้ซีพียูแบบมัลติคอร์ (-j10 และ pigz) ได้ ตอนนี้เรากำลังทำสิ่งนี้:

$ pg_dump -Z0 -j 10 -Fd database_name -f การถ่ายโอนข้อมูล
$ tar -cf - dumpdir | pigz > dumpdir.tar.gz
$ rm ขยะ

เวลาลดลงจาก ~70 นาทีเป็น ~5 นาที น่าทึ่งทีเดียว

คุณสามารถกู้คืนได้ดังนี้:

$ pigz -dc dumpdir.tar.gz | tar -C dumpdir --strip ส่วนประกอบ 1 -xf -
$ pg_restore -j 10 -Fd -O -d ฐานข้อมูลชื่อการถ่ายโอนข้อมูล
Melih avatar
gh flag
เรามีปัญหาที่คล้ายกัน ใช้เวลา 2 วันสำหรับ pg_dump และฉันยกเลิก แต่ฉันต้องทำการถ่ายโอนข้อมูล เรามีฐานข้อมูล 3 TB และมากกว่า 1,5 TB เป็นตารางภาพ bytea เวลาอาจลดลงในโต๊ะใหญ่?
Janning avatar
cn flag
ใช่ ฉันคิดว่ามันจะช่วยได้มาก (= ชั่วโมง)
plancys avatar
sd flag
คุณจะกู้คืน db จากสิ่งนี้ได้อย่างไร `pg_restore -d root -j 10 -Fd dump_2022-03-24_17_47_40.tar.gz` คืนค่าให้ฉัน `pg_restore: ข้อผิดพลาด: ไม่สามารถเปิดไฟล์อินพุต "dump_2022-03-24_17_47_40.tar.gz/toc.dat": ไม่ใช่ ไดเร็กทอรี`
Melih avatar
gh flag
@Janning ใช้เวลา 2 วัน ขณะนี้มี -j 2 6.5 ชั่วโมงฉันหวังว่าจะมีเวลาน้อยลงด้วย -j 10... ขอบคุณ
Janning avatar
cn flag
ปัญหาไม่ได้เกี่ยวกับ -j แต่ที่สำคัญคือ -Z0 เพื่อปิดใช้งานการบีบอัดและใช้ -Fd เพื่อดัมพ์ลงในไดเร็กทอรี -j เป็นเพียงการบอกกระบวนการว่าควรใช้ CPU กี่ตัว ถ้าคุณมีมากใช้ให้หมด

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา