NoSQL 資料庫案例實戰 -- MongoDB資料備份、恢復

2926143939發表於2021-02-17

MySQL資料遷移到MongoDB資料庫中

  • 前言
  • 一、資料備份
  • 二、資料恢復

 

前言

本環境是基於 Centos 7.8 系統構建mongodb-enterprise-4.2.8學習環境
具體構建,請參考 mongodb-enterprise-4.2.8 環境構建


一、資料備份

MongoDB資料備份

  • 邏輯備份mongodump
  • 可以用 mongodump 來做 MongoDB 的庫或表級別的備份,下面舉例說明 備份 my_mongodb 資料庫.

實戰案例

[root@localhost ~]# mongodump -d my_mongodb
2019-10-28T10:41:59.147+0800 writing my_mongodb.user to
2019-10-28T10:41:59.148+0800 done dumping my_mongodb.user (5 documents)
此時會在當前目錄下建立一個 dump 目錄,用於存放備份出來的檔案
[root@localhost ~]# ll dump/my_mongodb/
總用量 8
-rw-r--r-- 1 root root 280 10月 28 10:41 user.bson
-rw-r--r-- 1 root root 87 10月 28 10:41 user.metadata.json
指定備份存放目錄
[root@localhost ~]# mongodump -d my_mongodb -o my_mongodb_dump
2019-10-28T10:43:35.826+0800 writing my_mongodb.user to
2019-10-28T10:43:35.827+0800 done dumping my_mongodb.user (5 documents)
其他引數:
-h: MongoDB 所在伺服器地址,例如,127.0.0.1。 當然也可以指定埠號:127.0.0.1:27017
--port:埠號。
-d: 需要備份的資料庫例項,例如, test 。
-c: 需要備份的集合 。
-o: 備份資料的存放位置 。
-u: 使用者名稱 。
-P: 密碼。
--gzip: 壓縮 。
--oplog: point in time 恢復用,只支援全庫備份 。
--authenticationDatabase: 認證庫 。
--dumpDbUsersAndRoles
dump 使用者和角色 ,只有在單庫備份時才需要這麼做。
--archive=dbname.gz: 3.2 版本新增,不能和-o同時使用 。
歸檔備份為 l 個檔案,但不能和-o 同時使用。

全庫備份

mongodump -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase admin
-o /home/mongod/backup/full

備份test庫

mongodump -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase admin
-d test -o /home/mongod/backup/

備份test庫下的vast集合

mongodump -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase admin
-d test -c vast -o /home/mongod/backup/

壓縮備份庫

mongodump -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase admin
-d test -o /home/mongod/backup/ --gzip

壓縮備份單表

mongodump -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase admin
-d test -c vast -o /home/mongod/backup/ --gzip

二、資料恢復

MongoDB資料恢復

  • mongorestore與mongoimport引數類似

實戰案例

全庫備份中恢復單庫(基於之前的全庫備份)

mongorestore -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase
admin -d test --drop /home/mongod/backup/full/test/

恢復test庫

mongorestore -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase
admin -d test /home/mongod/backup/test/

恢復test庫下的vast集合

mongorestore -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase
admin -d test -c vast /home/mongod/backup/test/vast.bson

–drop引數實踐恢復

# 恢復單庫
mongorestore -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase
admin -d test --drop /home/mongod/backup/test/
# 恢復單表
mongorestore -h 192.168.150.15:27017 -uroot -proot --authenticationDatabase
admin -d test -c vast --drop /home/mongod/backup/test/vast.bson

相關文章