MongoDB备份、恢复

备份数据库

mongodump -h 地址 --port 端口 -u 用户名 -p 密码 -d 数据库 -o 导出文件目录 --authenticationDatabase admim 授权认证数据库
  • 如果是本地服务器,默认27017端口时,可以战斗力-h-d 参数
  • 如果要导出整个库时,可以不在-d参数
  • 如果用户是-d数据库的用户可以不加authenticationDatabase admim,如果出现 Authentication failed验证失败时,需要加上--authenticationDatabase admim 授权认证数据库
  • 导出的数据,每个库为一个目录,每张表二个文件,一个json是结构,一个bson是数据
    mongodump -uroot -p123456 -d Test -o /data/db/ --authenticationDatabase admin

恢复数据库

mongorestore -h 地址 --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 导入文件目录 --authenticationDatabase admin

–drop 导入的是备份的数据库目录

mongorestore -uroot -p123456 -d Test --drop /data/db/Test

导出表、或者部分字段

mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -q 条件判断 -f 字段 --authenticationDatabase admin
  • -q 可以根查询条件导出,-q '{_id:{$gt:100}}'导出_id大于100的数据
  • -f 导出指字段,以字号分割,-f _id,name,age导出id,name,age这三个字段
  • –csv 表示导出的文件格式为csv的
  1. 导出整张表
    mongoexport -uroot -p123456 -d Test -c Users -o /data/db/Test/Users.dat
  2. 导出表中部分字段
    mongoexport -uroot -p123456 -d Test -c Users --csv  -f _id,name,age -o /data/db/Test/Users.csv
  3. 根据条件敢出数据
    mongoexport -uroot -p123456 -d Test -c Users -q '{_id:{$gt:100}}' -o /data/db/Test/Users.json

    导入表,或者表中部分字段

  4. 还原整表导出的非csv文件
    mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsert --drop 文件名 --authenticationDatabase admin
  • –upsert 插入或者更新现有数据
    mongoimport -uroot -p123456 -d Test -c Users  --upsert /data/db/Test/Users.dat
  1. 还原部分字段的导出文件
    mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsertFields 字段 --drop 文件名 --authenticationDatabase admin
  • –upsertFields根–upsert一样
    mongoimport -uroot -p123456 -d Test -c Users  --upsertFields _id,name,age  /data/db/Test/Users.dat
  1. 还原csv文件
    mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --type 类型 --headerline --upsert --drop 文件名 --authenticationDatabase admin
  • –type 文件类型
    mongoimport -uroot -p123456 -d Test -c Users --type csv --headerline --file /data/db/Test/Users.csv
0%