MongoDB(三) 备份与恢复

MongoDB备份与恢复

1. 备份 mongodump

用法: mongodump

将mongodb里的数据导出为.bson文件

常用配置:

参数 用法
/help 打印帮助
/version 打印工具版本
/v, /verbose: 指定日志(v的数量代表了日志级别, 如:-vvvv, 也可以指定数字, 如:–verbose=N)
/quiet 静默执行, 不打印任何日志输出
/h, /host: 指明数据库服务器的IP
/port: 服务端口 (也可以这么用 –host hostname:port)
/u, /username: 连接服务器的用户名
/p, /password: 连接数据库的密码
/authenticationDatabase: 存储用户凭据的数据库
/authenticationMechanism: 认证机制
/d, /db: 将要备份的数据库
/c, /collection: 将要备份的集合(数据表)
/o, /out: 备份文件输出路径, 默认路径是bin下的dump 或者指定为’-’ 表示输出到控制台(例: -o -)

2. 恢复 mongorestore

用法: mongorestore

常用配置:

同上

3. 其他方法

有时别人会把整个MongoDB的数据文件发给你, 这种”备份”方式很不推荐, 因为这样很有可能在复制文件的时候有更新操作, 导致拿到的文件时不完整的, 从而无法恢复. 使用上述备份与恢复方法可以避免这个问题.

如果拿到的是数据文件:
- 首先看是否有.wt文件, 如果有, 则说明原始库用的是WiredTiger引擎, 如果你的MongoDB是3.2以上版本, 则默认就是WiredTiger引擎, 无需额外加参数. 如果没有.wt文件, 而是有xxx.ns和xxx.0 xxx.1等文件, 则说明用的是mmap引擎, 3.2一下版本默认就是这个引擎, 而3.2以上版本需要指定参数:–storageEngine=mmapv1
- 然后看文件夹中是不是每个数据库都有自己的子文件夹, 这将决定启动mongod的时候是否需要加参数–directoryperdb, 有子文件夹则需要加这个参数, MongoDB将会去相应的子文件夹中读取数据文件
- 最后别忘了加参数–dbpath用于指定你所拿到备库文件夹的路径

你可能感兴趣的:(Mongodb)