มีสองตัวเลือก
การสำรองทางกายภาพ
หากคุณไม่คำนึงถึงการหยุดทำงานสิ่งที่ง่ายที่สุดที่จะทำคือ
service mongod stop
ทำสแน็ปช็อต LVM หรือแรงเดรัจฉานcp
ของโฟลเดอร์ข้อมูล Mongo ไปยังดิสก์อื่น
service mongod start
แน่นอนคุณไม่ต้องการหยุดทำงานหากข้อมูล 10TB อยู่ในเครื่องเดี่ยว
หากคุณมีชุดเรพลิกาที่มีสามโหนดให้ใช้หนึ่งในโหนดเพื่อสำรองข้อมูล
{
"_id" : "myreplica",
"version" : 1,
"members" : [
{
"_id" : 1,
"host" : "10.20.30.40:27017",
"priority" : 2
},
{
"_id" : 2,
"host" : "10.20.30.41:27017"
},
{
"_id" : 3,
"host" : "10.20.30.42:27017",
"priority" : 0,
"slaveDelay" : 3600
}
]
}
ใช้โหนดพร้อมกับ"_id' : 3
การสำรองข้อมูลทางกายภาพทั้งหมดของคุณ ดังนั้นจึงไม่มีการหยุดทำงาน ในการรับสแนปช็อตเที่ยงคืนคุณสามารถเรียกใช้การสำรองข้อมูลเวลา 1:00 น. เนื่องจากโหนดที่ซ่อนอยู่นั้นใช้เวลาไม่ถึง 1 ชั่วโมง
แน่นอนข้อเสียเปรียบคือต้องมีเซิร์ฟเวอร์เพิ่มอีกสองตัวโดยมีขนาด 10TB และความเสี่ยงของระบบดูแลระบบ
คุณสามารถใช้ mongodump กับเครื่องแบบสแตนด์อโลน แต่คุณต้องคาดหวังว่าประสิทธิภาพการทำงานลดลงเนื่องจาก mongodump เป็นโปรแกรมไคลเอนต์ที่ใช้การเชื่อมต่อเช่นการเชื่อมต่ออื่น ๆ
หากคุณต้องการสำรองข้อมูลแบบตรงเวลาคุณควรใช้
mongodump --oplog
การสำรองข้อมูล BSON เชิงตรรกะจะมีขนาดเล็กลง (โดยเฉพาะอย่างยิ่ง gzipped หรือ bzipped) มากกว่าการสำรองข้อมูลจริง
การใช้mongodump --oplog
จะทำกับโหนดที่ซ่อนอยู่ได้ดีที่สุด ด้วยวิธีนี้จะไม่มีการตีการแสดงต่ออาจารย์
การปฏิเสธความรับผิด
ฉันค่อนข้างใหม่กับ MongoDB (อุบัติเหตุ / อุบัติเหตุ MongoDBA) ฉันหวังว่าคำตอบของฉันจะช่วย