mongodb之备份
前言
數據庫的備份非常重要
?
備份方式
使用Mongodb自帶的運維管理工具(Ops Manager)
需要單獨部署,比較麻煩和復雜
通過文件系統快照
Linux需要LVM支持
需要開啟journal日志
journal日志和數據文件需要在同一個邏輯卷
通過使用cp或者rsync類似命令復制數據目錄
復制前需要服務停止寫,否則可能會造成文件數據不一致
復制所有的目錄或者文件會造成空間的浪費
do not support point in time recovery for replica sets
不適合大分片集群
通過mongodump命令備份
連接mongodb實例讀取數據,然后生成BSON文件,然后通過mongorestore恢復數據
對小系統簡單高效,不適合大系統的備份和恢復
僅備份文檔數據,恢復數據時需要重建索引
備份大數據量時,可能會造成page faults,影響服務性能
默認情況下不備份本地數據庫local
備份過程中,數據可能會修改,可以加上--oplog選項,恢復時加上--oplogReplay選項
mongodump命令
用途
備份數據
用法
mongodump options --out path || --archive=filename
常用選項
--host <hostname><:port>, -h <hostname><:port>
連接主機地址
--port <port>
連接端口
--username <username>, -u <username>
登錄用戶名
--password <password>, -p <password>
登錄密碼
--authenticationDatabase <dbname>
授權數據庫,有指定導出db,則設置為導出db,默認為admin
--db <database>, -d <database>
指定備份的db,未指定導出所有
--collection <collection>, -c <collection>
指定備份的集合,未指定導出所有
--query <json>, -q <json>
導出過濾,未設置導出所有
--gzip
壓縮導出數據
--out <path>, -o <path>
導出保存路徑
--archive <file or null>
導出數據保存為archive打包文件,導出目錄和導出打包文件只能二選一,--archive=打包文件名
--oplog
導出oplog日志,對mongos無效,只對有生成oplog的節點生效
--excludeCollection string
指定哪些集合不備份,有多個則選項使用多次即可
--excludeCollectionsWithPrefix string
根據集合前綴排除不備份的集合,有多個則選項使用多次即可
mongorestore命令
用途
還原數據 跟mongodump搭配使用
用法
mongorestore options <path>
mongorestore options --archive=filepath
常用選項
--host <hostname><:port>, -h <hostname><:port>
連接主機地址
--port <port>
連接端口
--username <username>, -u <username>
授權用戶名
--password <password>, -p <password>
授權用戶密碼
--authenticationDatabase <dbname>
授權數據庫
--db <database>, -d <database>
指定導入數據庫
--collection <collection>, -c <collection>
指定導入集合
--drop
恢復前刪除已存在的集合
--oplogReplay
導入后執行oplog,保證數據的一致性
--gzip
備份文件是否壓縮
--archive <=file|null>
導出的是打包文件,指定打包文件路徑 --archive=filepath
實踐
備份數據
mongodump --host 127.0.0.1 --port 27025 -u root -p root --gzip --archive=mongodb_backup_2017-11-29.tar.gz
恢復數據
mongorestore --host 127.0.0.1 --port 27025 -u root -p root --gzip --nsExclude config* --archive=mongodb_backup_2017-11-29.tar.gz
?
備注
1. 使用mongorestore命令還原shards集群時需要過濾掉config數據庫
2. 不同類型集群備份需要注意的事項和步驟有差異,詳情看相關的操作步驟文檔
3. 備份方式優先選擇順序 系統快照 > 數據目錄備份 > Mongodb工具
4. 可以考慮專門使用一從實例用于備份使用
?
參考資料
【1】mongodb備份方式
https://docs.mongodb.com/manual/core/backups/
【2】文件系統快照備份和恢復
https://docs.mongodb.com/manual/tutorial/backup-with-filesystem-snapshots/
【3】mongodb命令工具進行備份
https://docs.mongodb.com/manual/tutorial/backup-and-restore-tools/
【4】mongodump備份命令
https://docs.mongodb.com/manual/reference/program/mongodump/
【5】mongorestore恢復命令
https://docs.mongodb.com/manual/reference/program/mongorestore/
【6】副本集集群備份和恢復步驟
https://docs.mongodb.com/manual/tutorial/restore-replica-set-from-backup/
【7】分片集群備份和恢復
https://docs.mongodb.com/manual/administration/backup-sharded-clusters/
【8】單個實例恢復
https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/
【9】Mongodb運維工具
https://docs.opsmanager.mongodb.com/current/application/
?
轉載于:https://www.cnblogs.com/wadeyu/p/7941784.html
總結
以上是生活随笔為你收集整理的mongodb之备份的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 去黄褐斑需要多少钱 脸上的很难办啊
- 下一篇: 家庭酿制葡萄酒需要哪些设备