MongoDB Backup & Restore
MongoDB Backup & Restore
# Các phương pháp backup cho mongoDB
- mongdump:
+ Sử dụng trong trương hợp kích thước data không quá lớn
+ Thời gian backup và restore lâu
+ Dẽ dàng thao tác
- rsync and copy
+ Phù hợp với kích thước nhỏ
+ Thời gian backup lâu, nhưng restore nhanh
+ Dễ dàng cho việc thao tác
- Percona hot backup:
?
- Point in time use oplog .
+ Cho phép recovery tại một thời diểm mong muốn
+ Phải enable oplog => replication
+ Thời gian backup and restore nhanh
# Tim hieu command "mongodump"
-
# Quy trình thực hiệc backup : point in time use oplog
- B1. Chuẩn bị để việc login dễ dang hơn
$ auth="--host localhost:27017 --username akira --password secret authenticationDatabase admin"
- B2. Thực hiện dump the oplog
$ mongodump ${auth} -d local -c oplog.rs --query '{"ns": {"$nin": ["config.system.sessions", "config.cache.collections"]}}' --out /data/oplog_dump_full
- B3. Thực hiên lấy timestamp
$bsondump /data/oplog_dump_full/local/oplog.rs.bson 2>/dev/null | grep drop| head -n 1
{"ts":{"$timestamp":{"t":1564558677,"i":1}},"t":{"$numberLong":"4"},"h":
{"$numberLong":"8756691072931811632"},"v":2,"op":"c","ns":"newdb.$cmd","ui":{"$binary":"ptLeCZA1S0m"$type":"04"},
"wall":{"$date":"2019-07-31T07:37:57.643Z"},"o":{"drop":"city_inspections"}}
=> thời điểm collection drop là 1564558677
- B4. Thực hiên restore lại tại thời điểm backup dump lần trước
$ mongorestore --db newdb --drop /var/backups/newdb/newdb-2019-07-31-1007/newdb/
- B5. Thực hiện restore lại tại một thời điểm mong muốn. ví dụ khi drop collection
$bad_drop_epoch_sec=1564558677
$mongorestore ${auth} --oplogReplay --oplogFile /data/oplog_dump_full/oplog.rs.bson --oplogLimit ${bad_drop_epoch_sec}:0 --stopOnError /tmp/fake_empty_dir
Nội dung oplog : https://kienbv.blogspot.com/2019/07/mongodb-understanding-oplog.html
# Các phương pháp backup cho mongoDB
- mongdump:
+ Sử dụng trong trương hợp kích thước data không quá lớn
+ Thời gian backup và restore lâu
+ Dẽ dàng thao tác
- rsync and copy
+ Phù hợp với kích thước nhỏ
+ Thời gian backup lâu, nhưng restore nhanh
+ Dễ dàng cho việc thao tác
- Percona hot backup:
?
- Point in time use oplog .
+ Cho phép recovery tại một thời diểm mong muốn
+ Phải enable oplog => replication
+ Thời gian backup and restore nhanh
# Tim hieu command "mongodump"
-
# Quy trình thực hiệc backup : point in time use oplog
- B1. Chuẩn bị để việc login dễ dang hơn
$ auth="--host localhost:27017 --username akira --password secret authenticationDatabase admin"
- B2. Thực hiện dump the oplog
$ mongodump ${auth} -d local -c oplog.rs --query '{"ns": {"$nin": ["config.system.sessions", "config.cache.collections"]}}' --out /data/oplog_dump_full
- B3. Thực hiên lấy timestamp
$bsondump /data/oplog_dump_full/local/oplog.rs.bson 2>/dev/null | grep drop| head -n 1
{"ts":{"$timestamp":{"t":1564558677,"i":1}},"t":{"$numberLong":"4"},"h":
{"$numberLong":"8756691072931811632"},"v":2,"op":"c","ns":"newdb.$cmd","ui":{"$binary":"ptLeCZA1S0m"$type":"04"},
"wall":{"$date":"2019-07-31T07:37:57.643Z"},"o":{"drop":"city_inspections"}}
=> thời điểm collection drop là 1564558677
- B4. Thực hiên restore lại tại thời điểm backup dump lần trước
$ mongorestore --db newdb --drop /var/backups/newdb/newdb-2019-07-31-1007/newdb/
- B5. Thực hiện restore lại tại một thời điểm mong muốn. ví dụ khi drop collection
$bad_drop_epoch_sec=1564558677
$mongorestore ${auth} --oplogReplay --oplogFile /data/oplog_dump_full/oplog.rs.bson --oplogLimit ${bad_drop_epoch_sec}:0 --stopOnError /tmp/fake_empty_dir
Nội dung oplog : https://kienbv.blogspot.com/2019/07/mongodb-understanding-oplog.html
Nhận xét
Đăng nhận xét