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




Nhận xét

Bài đăng phổ biến từ blog này

ActiveMQ 5.x

Redo and undo Log in MySQL transaction

[Kubernetes Series] - Bài 19 - Adding custom resource to Kubernetes