【Mongo 实战】——库备份和恢复,指定集合导出和导入
一.背景
对mongo 的数据存储方式改造,应产品需求的要求,多个片集数据,整合到一个片集。目前线上只有一台机器。
二.mongo 自带的工具
命令关键字 | 作用 |
---|---|
mongoimport / mongoexport | 导入导出 |
mongodump / mongorestore | 备份恢复 |
mongooplog | 拉取并重放oplog的工具 |
mongostat、mongotop、mongosniff | 监控工具 |
mongofiles | GridFS的命令行操作工具 |
bsondump | 查看bson文件的工具 |
三.实际使用
我的服务器是docker 安装 mongo,所以要先进入 docker 容器,如果非docker 容安装,找到安装目录进入 bin目录下。(实际使用,可以 使用 help命令查看具体参数 )
3.1 导出: mongoexport -u #{user} -p #{pwd} -d #{dbnamespace} -c #{collection} -o #{file}
例子:mongoexport -u test -p 123456 -d tbay_push_mesaage -c PUSH_20231030_20231105 -o PUSH_20231030_20231105.json
3.2 导入:mongoimport -u #{user} -p #{pwd} -d #{dbnamespace} -c #{collection} --file #{datafilePath}
例子: mongoimport -u test -p 123456 -d push_mesaage -c PUSH_MESSAGE --file PUSH_20231030_20231105.json
注意: 导入最后的时候是 '--file'。实际执行 4百万的数据导出,两分钟。导入需要12分钟
3.3 mongodump -u #{user} -p #{pwd} -d #{dbnamespace} -o #{filename}
mongodump -u situen -p 123456 -d situen -o situen_back
3.4 带条件的数据导出 主要是 --query 条件 增加查询条件
例子:mongoexport -u zhangbin -p 123456 -d Tbay -c PUSH_MESSAGE --query '{"createTime": {"$gte":{"$date":"2024-01-01T00:00:00Z"}}}' -o /data/backup/PUSH_202401_202402.json