mongodb数据库迁移

如果遇到权限问题,终极解决办法:关掉权限!

如:assertion: 18 { ok: 0.0, errmsg: "auth failed", code: 18 }等错误

Mongodb自带了mongodump和mongorestore这两个工具来实现对数据的备份和恢复。

mongodump能够在Mongodb运行时进行备份,它的工作原理是对运行的Mongodb做查询,然后将所有查到的文档写入磁盘。但是使用mongodump产生的备份不一定是数据库的实时快照,如果我们在备份时对数据库进行了写入操作,则备份出来的文件可能不完全和Mongodb实时数据相等。另外在备份时可能会对其它客户端性能产生不利的影响。

使用这两个命令应注意如果数据库设置了权限认证(视情况而定,有的时候直接关掉权限认证会更省事),操作时需带上:

  1. mongodump数据库备份命令:
    root@ubuntu-PowerEdge-R410:/opt/mongodb/bin# mongodump -h 127.0.0.1 -d zrcv -o /data/dump -u xxxx -p xxxx
    • -h:

      MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017

    • -d:

      需要备份的数据库实例,例如:test

    • -o:

      备份的数据存放位置,例如:c:datadump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。

  2. mongorestore数据库恢复命令:

    恢复全部数据库:

    mongorestore --drop --directoryperdb  /home/backup/mongod_bak/mongod_bak_now/2015_02_28/ 

    恢复单个数据库:

    mongorestore --drop -d dataname --directoryperdb /home/backup/mongod_bak/mongod_bak_now/2015_02_28/dataname -u xxxx -p xxxx

    --drop参数:恢复数据之前删除原来数据库数据,避免数据重复。

    --directoryperdb参数:数据库备份目录

    -d参数:后面跟要恢复的数据库名称

查资料不过是偏门,撸源码才是脱离苦海的正道。
原文地址:https://www.cnblogs.com/jarvisjin/p/6088816.html