Mongodb 备份与恢复

Posted 飞哥非哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongodb 备份与恢复相关的知识,希望对你有一定的参考价值。

MonogoDb 备份和恢复

  • Back Up with Filesystem Snapshots

  • Back Up with mongodump

Back Up with Filesystem Snapshots

MongoDB 3.2 之后增加了当MongoDB实例的数据文件和日志文件位于不同的卷上时,使用WiredTiger存储引擎添加对MongoDB实例的卷级备份的支持。

Back Up

 
   
   
 
  1.   1. lvcreate --size 100M --snapshot --name mdb-snap01 /dev/vg0/mongodb

  2.   2. umount /dev/vg0/mdb-snap01

  3.   3. dd if=/dev/vg0/mdb-snap01 | gzip > mdb-snap01.gz

  4.   ssh备份到远程的服务器:

  5.   3. dd if=/dev/vg0/mdb-snap01 | ssh username@example.com gzip > /opt/backup/mdb-snap01.gz

Restore a Snapshot

 
   
   
 
  1.   1. lvcreate --size 1G --name mdb-new vg0

  2.   2. gzip -d -c mdb-snap01.gz | dd of=/dev/vg0/mdb-new

  3.   3. mount /dev/vg0/mdb-new /srv/mongodb

  4.   ssh远程恢复:

  5.   2. ssh username@example.com gzip -d -c /opt/backup/mdb-snap01.gz | dd of=/dev/vg0/mdb-new

Back Up with mongodump

  • mongodump

 
   
   
 
  1. #备份所有库

  2. mongodump --port 29017 --host kafka1.shared --oplog -o /home/fanlifei/

  3. #备份单个库

  4. mongodump --port 29017 --host kafka1.shared -d myTest -o /home/fanlifei/

  5. #备份单个集合

  6. mongodump --port 29017 --host kafka1.shared -d myTest -c colTest  -o /home/fanlifei/  

  • mongorestore

 
   
   
 
  1. mongorestore --port <port number> <path to the backup>

  2. 如果备份的时候有 --oplog 参加,则在恢复的时候需要加上 --oplogReplay

恢复一个副本集

 
   
   
 
  1.  #恢复数据到单节点副本集

  2.  1、获取备份文件

  3.  2、如果备份中存在local,则删除local数据库

  4.     mongod --dbpath /data/db

  5.     use local

  6.     dropDatabase()

  7.     db.shutdownServer()

  8.  3、启动单节点副本集

  9.    mongod --dbpath /data/db --replSet <replName>

  10.  4、连接mongodb并初始化副本集

  11.     rs.initiate( {

  12.     _id : <replName>,

  13.     members: [ { _id : 0, host : <host:port> } ]

  14.   })

  15.  5、增加副本集成员

  16.    1> 手动将数据库文件复制到每个数据目录

  17.       #关闭恢复的mongo实例

  18.       db.shutdownServer()或者--shutdown

  19.       #复制primary’s的数据文件到每一个secondary

  20.       cp primary/dbpath secondary/dbpath

  21.       #启动恢复的Mongo实例

  22.       mongod --dbpath /data/db --replSet <replName>

  23.       #加入secondary成员

  24.       rs.add()

  25.    2> 初始同步自动分配数据。

  26.       Ensure that the data directories on the prospective replica set members are empty.

  27.       Add each prospective member to the replica set.


以上是关于Mongodb 备份与恢复的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb 备份与恢复

python | MongoDB备份恢复与导出导入

mongodb备份与恢复

MongoDB备份与恢复

MongoDB备份与恢复

MongoDB数据备份与恢复