mongodb 的数据备份与恢复
2024-07-21 02:52:27
供稿:网友
导入/导出可以操作是本地的或远程的,所以都有以下通用选项【如果是操作本地机并且没有密码的话可以省去】:
1、-h host 主机 2、-port port 端口 3、-u username 用户名 4、-p passWord 密码 导出【这两种格式适合做数据交换】: ./bin/mongoexport -d test -c stu -f sn,name -q '{sn:{$lte:1000}}' -o ./test.stu.json【因为导出的是 json 格式,所以是 json 后缀命名】 -d 库名 -c 表名 -f 属性名(列名,不声明就是全部导出) -q 导出条件 -o 存放文件位置及名字 ./bin/mongoexport -d test -c stu -f sn,name -q '{sn:{$lte:1000}}' --csv -o ./test.stu.csv【因为导出的是csv 格式,所以是 csv 后缀命名】 --csv 声明是 csv 格式【便于和传统型数据库交换数据,因为 MySQL 有一个引擎就是 csv 的,只要把文件放在mysql相关目录,引擎改为 csv 的,就能直接读取数据】 导出成二进制格式: ./bin/mongodump -d test -c tea -d 导出库名 -c 导出的表名(不写导出库内所有表) -f 导出的字段(不写导出表内所有字段) 【导出成二进制文件,好处是索引文件也被备份下来了,适合做备份,且导出速度快】 规律: 默认会导出到 mongo 下的dump目录 导出的文件放在 库名 的命名目录下 每个表生成两个文件,分别是 bson 结构的数据文件,json 的索引信息 如果不声明表名,会导出所有表 导入: ./bin/mongoimport -d test -c animal --type json --file ./test.stu.json 【导入 json 格式】 -d 导入的库名 -c 导入的表名【不存在会隐式创建】 --type 导入数据的类型【不写默认 json】 --file 导入数据文件路径 ./bin/mongoimport -d test -c bird --type csv -f sn,name --headerline --file ./test.stu.csv 【导入 csv 格式】 因为 csv 格式文件第一行是逗号分割的字段名,所以需要声明都有哪些字段。并且 mondodb 会把第一行也当作数据,所以我们要 --headerline 声明跳过第一行 导入【二进制文件】 ./bin/mongorestore -d test --directoryperdb dump/test -d 导入进的库名【不存在会创建】 --directoryperdb 备份文件存放的位置【会把此目录下的所有备份文件都导入】