pgBackRest เป็นโซลูชันการสำรองข้อมูลและกู้คืนที่เชื่อถือได้สำหรับ PostgreSQL ซึ่งขยายขนาดฐานข้อมูลและปริมาณงานที่ใหญ่ที่สุดได้อย่างราบรื่น
pgBackRest v2.54.0 เป็นเวอร์ชันเสถียรในปัจจุบัน บันทึกประจำรุ่นอยู่ในหน้าการเผยแพร่
กรุณาหาเราบน GitHub และให้ดาวเราถ้าคุณชอบ pgBackRest!
การบีบอัดมักจะเป็นปัญหาคอขวดในระหว่างการสำรองข้อมูล ดังนั้น pgBackRest จึงแก้ปัญหานี้ด้วยการประมวลผลแบบขนานและอัลกอริธึมการบีบอัดที่มีประสิทธิภาพมากขึ้น เช่น lz4 และ zstd
โปรโตคอลแบบกำหนดเองช่วยให้ pgBackRest สามารถสำรองข้อมูล กู้คืน และจัดเก็บถาวรภายในหรือระยะไกลผ่าน TLS/SSH ด้วยการกำหนดค่าขั้นต่ำ นอกจากนี้ อินเทอร์เฟซสำหรับการสืบค้น PostgreSQL ยังมีให้ผ่านเลเยอร์โปรโตคอล ดังนั้นจึงไม่จำเป็นต้องเข้าถึง PostgreSQL จากระยะไกล ซึ่งช่วยเพิ่มความปลอดภัย
ที่เก็บข้อมูลหลายรายการอนุญาตให้มีที่เก็บข้อมูลในตัวเครื่องที่มีการเก็บรักษาน้อยที่สุดเพื่อการกู้คืนที่รวดเร็ว และพื้นที่เก็บข้อมูลระยะไกลที่มีการเก็บรักษาที่นานกว่าเพื่อความซ้ำซ้อนและการเข้าถึงทั่วทั้งองค์กร
รองรับการสำรองข้อมูลแบบเต็ม ส่วนต่าง และส่วนเพิ่ม pgBackRest ไม่ไวต่อปัญหาการแก้ไขเวลาของ rsync ทำให้การสำรองข้อมูลส่วนต่างและส่วนเพิ่มมีความปลอดภัย โดยไม่ต้องตรวจสอบผลรวมแต่ละไฟล์ การสำรองข้อมูลระดับบล็อกช่วยประหยัดพื้นที่โดยการคัดลอกเฉพาะส่วนของไฟล์ที่มีการเปลี่ยนแปลงเท่านั้น
นโยบายการเก็บรักษาสามารถตั้งค่าสำหรับการสำรองข้อมูลแบบเต็มและส่วนต่างเพื่อสร้างความครอบคลุมสำหรับกรอบเวลาใดก็ได้ สามารถรักษาไฟล์เก็บถาวร WAL สำหรับการสำรองข้อมูลทั้งหมดหรือสำหรับการสำรองข้อมูลล่าสุดเท่านั้น ในกรณีหลัง WAL ที่จำเป็นในการสำรองข้อมูลเก่าให้สอดคล้องกันจะถูกเก็บรักษาไว้ในไฟล์เก็บถาวร
เช็คซัมจะถูกคำนวณสำหรับทุกไฟล์ในข้อมูลสำรอง และตรวจสอบอีกครั้งระหว่างการกู้คืนหรือตรวจสอบ หลังจากการสำรองข้อมูลเสร็จสิ้นการคัดลอกไฟล์ ระบบจะรอจนกระทั่งทุกส่วนของ WAL ที่จำเป็นเพื่อทำให้การสำรองข้อมูลสอดคล้องกันไปถึงพื้นที่เก็บข้อมูล
ข้อมูลสำรองในพื้นที่เก็บข้อมูลอาจถูกจัดเก็บในรูปแบบเดียวกับคลัสเตอร์ PostgreSQL มาตรฐาน (รวมถึงพื้นที่ตาราง) หากปิดใช้งานการบีบอัดและเปิดใช้งานฮาร์ดลิงก์ ก็สามารถสแน็ปช็อตการสำรองข้อมูลในพื้นที่เก็บข้อมูลและเรียกใช้คลัสเตอร์ PostgreSQL บนสแน็ปช็อตได้โดยตรง ซึ่งเป็นประโยชน์สำหรับฐานข้อมูลขนาดเทราไบต์ที่ต้องใช้เวลาในการกู้คืนด้วยวิธีดั้งเดิม
การดำเนินการทั้งหมดใช้ fsync ระดับไฟล์และไดเร็กทอรีเพื่อรับประกันความทนทาน
หากเปิดใช้งานการตรวจสอบหน้า pgBackRest จะตรวจสอบความถูกต้องของการตรวจสอบสำหรับทุกไฟล์ที่ถูกคัดลอกระหว่างการสำรองข้อมูล การตรวจสอบความถูกต้องของหน้าทั้งหมดได้รับการตรวจสอบระหว่างการสำรองข้อมูลเต็มรูปแบบ และการตรวจสอบความถูกต้องในไฟล์ที่มีการเปลี่ยนแปลงจะได้รับการตรวจสอบความถูกต้องในระหว่างการสำรองข้อมูลส่วนต่างและการสำรองข้อมูลส่วนเพิ่ม
ความล้มเหลวในการตรวจสอบไม่ได้หยุดกระบวนการสำรองข้อมูล แต่คำเตือนพร้อมรายละเอียดว่าเพจใดที่ไม่ผ่านการตรวจสอบจะถูกส่งออกไปยังคอนโซลและบันทึกไฟล์
คุณลักษณะนี้ช่วยให้ตรวจพบความเสียหายระดับเพจได้ตั้งแต่เนิ่นๆ ก่อนที่การสำรองข้อมูลที่มีสำเนาข้อมูลที่ถูกต้องจะหมดอายุ
การสำรองข้อมูลที่ถูกขัดจังหวะสามารถดำเนินการต่อจากจุดที่หยุดไว้ได้ ไฟล์ที่ถูกคัดลอกแล้วจะถูกเปรียบเทียบกับเช็คซัมในรายการเพื่อให้แน่ใจว่ามีความสมบูรณ์ เนื่องจากการดำเนินการนี้สามารถเกิดขึ้นได้ทั้งหมดบนโฮสต์พื้นที่เก็บข้อมูล จึงช่วยลดภาระบนโฮสต์ PostgreSQL และประหยัดเวลาเนื่องจากการคำนวณเช็คซัมเร็วกว่าการบีบอัดและส่งข้อมูลซ้ำ
การคำนวณการบีบอัดและการตรวจสอบจะดำเนินการในสตรีมในขณะที่ไฟล์กำลังถูกคัดลอกไปยังพื้นที่เก็บข้อมูล ไม่ว่าพื้นที่เก็บข้อมูลจะอยู่ในเครื่องหรือจากระยะไกลก็ตาม
หากพื้นที่เก็บข้อมูลอยู่บนโฮสต์พื้นที่เก็บข้อมูล การบีบอัดจะดำเนินการบนโฮสต์ PostgreSQL และไฟล์จะถูกส่งในรูปแบบบีบอัด และจัดเก็บไว้ในโฮสต์พื้นที่เก็บข้อมูล เมื่อปิดใช้งานการบีบอัด การบีบอัดในระดับต่ำจะถูกนำมาใช้เพื่อให้การใช้แบนด์วิธที่มีอยู่มีประสิทธิภาพ ในขณะเดียวกันก็รักษาต้นทุนของ CPU ให้ต่ำที่สุด
ไฟล์ Manifest มีเช็คซัมสำหรับทุกไฟล์ในข้อมูลสำรอง ดังนั้นในระหว่างการกู้คืน คุณจึงสามารถใช้เช็คซัมเหล่านี้เพื่อเพิ่มความเร็วในการประมวลผลได้อย่างมหาศาล ในการกู้คืนแบบเดลต้า ไฟล์ใดๆ ที่ไม่มีอยู่ในข้อมูลสำรองจะถูกลบออกก่อน จากนั้นจึงสร้างเช็คซัมสำหรับไฟล์ที่เหลือ ไฟล์ที่ตรงกับข้อมูลสำรองจะถูกทิ้งไว้และไฟล์ที่เหลือจะได้รับการกู้คืนตามปกติ การประมวลผลแบบขนานสามารถนำไปสู่การลดเวลาในการกู้คืนได้อย่างมาก
รวมคำสั่งเฉพาะสำหรับการพุช WAL ไปยังไฟล์เก็บถาวรและรับ WAL จากไฟล์เก็บถาวร คำสั่งทั้งสองรองรับการทำงานแบบขนานเพื่อเร่งการประมวลผลและทำงานแบบอะซิงโครนัสเพื่อให้เวลาตอบสนองต่อ PostgreSQL เร็วที่สุด
การพุช WAL จะตรวจจับส่วน WAL ที่ถูกพุชหลายครั้งโดยอัตโนมัติและยกเลิกการทำซ้ำเมื่อส่วนนั้นเหมือนกัน มิฉะนั้นจะเกิดข้อผิดพลาด การพุช WAL แบบอะซิงโครนัสทำให้การถ่ายโอนถูกถ่ายโอนไปยังกระบวนการอื่นซึ่งบีบอัดเซ็กเมนต์ WAL แบบขนานเพื่อให้ได้ปริมาณงานสูงสุด นี่อาจเป็นคุณลักษณะที่สำคัญสำหรับฐานข้อมูลที่มีปริมาณการเขียนที่สูงมาก
Asynchronous WAL get จะรักษาคิวโลคัลของเซ็กเมนต์ WAL ที่ถูกคลายการบีบอัดและพร้อมสำหรับการเล่นซ้ำ ซึ่งจะช่วยลดเวลาที่ต้องใช้ในการจัดเตรียม WAL ให้กับ PostgreSQL ซึ่งจะเพิ่มความเร็วในการเล่นซ้ำให้สูงสุด การเชื่อมต่อและพื้นที่จัดเก็บข้อมูลที่มีเวลาแฝงสูงกว่า (เช่น S3) จะได้รับประโยชน์สูงสุด
คำสั่ง push และ get ช่วยให้มั่นใจได้ว่าฐานข้อมูลและพื้นที่เก็บข้อมูลตรงกันโดยการเปรียบเทียบเวอร์ชันของ PostgreSQL และตัวระบุระบบ สิ่งนี้แทบจะขจัดความเป็นไปได้ในการกำหนดค่าตำแหน่งไฟล์เก็บถาวร WAL ผิดพลาด
รองรับ Tablespaces อย่างสมบูรณ์ และสามารถแมปตารางใหม่ไปยังตำแหน่งใดก็ได้เมื่อเรียกคืน นอกจากนี้ยังสามารถทำการแมปพื้นที่ตารางทั้งหมดใหม่ไปยังตำแหน่งเดียวด้วยคำสั่งเดียวซึ่งมีประโยชน์สำหรับการกู้คืนการพัฒนา
รองรับลิงก์ไฟล์และไดเร็กทอรีสำหรับไฟล์หรือไดเร็กทอรีในคลัสเตอร์ PostgreSQL เมื่อกู้คืน เป็นไปได้ที่จะกู้คืนลิงก์ทั้งหมดไปยังตำแหน่งเดิม รีแมปลิงก์บางส่วนหรือทั้งหมด หรือกู้คืนลิงก์บางส่วนหรือทั้งหมดเป็นไฟล์หรือไดเร็กทอรีปกติภายในไดเร็กทอรีคลัสเตอร์
พื้นที่เก็บข้อมูล pgBackRest สามารถอยู่ในที่เก็บอ็อบเจ็กต์ที่เข้ากันได้กับ S3, Azure และ GCS เพื่อให้สามารถรองรับความจุและการเก็บรักษาได้ไม่จำกัด
pgBackRest สามารถเข้ารหัสพื้นที่เก็บข้อมูลเพื่อความปลอดภัยของการสำรองข้อมูลไม่ว่าจะจัดเก็บไว้ที่ใด
pgBackRest รองรับ PostgreSQL สิบเวอร์ชัน, ห้าเวอร์ชันที่รองรับ และ EOL ห้าเวอร์ชันล่าสุด ซึ่งช่วยให้มีเวลาเหลือเฟือในการอัพเกรดเป็นเวอร์ชันที่รองรับ
pgBackRest มุ่งมั่นที่จะกำหนดค่าและดำเนินการได้ง่าย:
คู่มือผู้ใช้สำหรับระบบปฏิบัติการต่างๆ และเวอร์ชัน PostgreSQL
การอ้างอิงคำสั่งสำหรับการดำเนินการบรรทัดคำสั่ง
การอ้างอิงการกำหนดค่าสำหรับการสร้างการกำหนดค่า pgBackRest
สามารถดูเอกสารประกอบสำหรับ v1 ได้ที่นี่ ไม่มีการวางแผนการเปิดตัวเพิ่มเติมสำหรับ v1 เนื่องจาก v2 มีความเข้ากันได้แบบย้อนหลังกับตัวเลือกและที่เก็บ v1
การมีส่วนร่วมกับ pgBackRest ยินดีต้อนรับเสมอ! โปรดดูแนวทางการสนับสนุนของเราสำหรับรายละเอียดเกี่ยวกับวิธีการมีส่วนร่วมกับฟีเจอร์ การปรับปรุง หรือปัญหาต่างๆ
pgBackRest เป็นโอเพ่นซอร์สฟรีโดยสมบูรณ์ภายใต้ใบอนุญาต MIT คุณสามารถใช้เพื่อวัตถุประสงค์ส่วนตัวหรือเชิงพาณิชย์โดยไม่มีข้อจำกัดใดๆ ทั้งสิ้น รายงานข้อผิดพลาดได้รับการพิจารณาอย่างจริงจังและจะได้รับการแก้ไขโดยเร็วที่สุด
การสร้างนโยบายการกู้คืนระบบที่มีประสิทธิภาพด้วยการจำลองแบบและกลยุทธ์การสำรองข้อมูลที่เหมาะสมอาจเป็นงานที่ซับซ้อนและน่ากังวล คุณอาจพบว่าคุณต้องการความช่วยเหลือในระหว่างขั้นตอนสถาปัตยกรรมและการสนับสนุนอย่างต่อเนื่องเพื่อให้แน่ใจว่าองค์กรของคุณยังคงทำงานได้อย่างราบรื่น
Crunchy Data นำเสนอ pgBackRest เวอร์ชันแพ็กเกจสำหรับระบบปฏิบัติการหลัก และการสนับสนุนเชิงพาณิชย์ตลอดอายุการใช้งานโดยผู้เชี่ยวชาญสำหรับ pgBackRest และ PostgreSQL ทุกสิ่ง Crunchy Data มุ่งมั่นที่จะนำเสนอโซลูชั่นโอเพ่นซอร์สโดยไม่ต้องผูกมัดกับผู้จำหน่าย เพื่อให้มั่นใจว่าความเข้ากันได้ข้ามกับ pgBackRest เวอร์ชันชุมชนนั้นได้รับการดูแลอย่างเข้มงวดเสมอ
กรุณาเยี่ยมชม Crunchy Data สำหรับข้อมูลเพิ่มเติม
การยกย่องเบื้องต้นเป็นของ Stephen Frost สำหรับคำแนะนำและคำวิจารณ์อันมีค่าทั้งหมดของเขาในระหว่างการพัฒนา pgBackRest
Crunchy Data มีส่วนสำคัญในด้านเวลาและทรัพยากรให้กับ pgBackRest และยังคงสนับสนุนการพัฒนาอย่างต่อเนื่อง Resonate ยังมีส่วนช่วยในการพัฒนา pgBackRest และอนุญาตให้ติดตั้งเวอร์ชันก่อนหน้า (แต่ผ่านการทดสอบมาอย่างดี) เป็นโซลูชันการสำรองข้อมูล PostgreSQL หลัก
กราฟิกอาร์มแชร์โดย Sandor Szabo