[MongoDB] MongoDB如何备份远端数据库且记录一次问题解决过程

14. 大数据 同时被 2 个专栏收录
85 篇文章 0 订阅

前言

最近堆的需要整理的东西有点多. 慢慢把这些东西全部整理出来.
之前有使用mongoimportmongoexport导入导出单表的操作. 本次主要介绍的是mongodumpmongostore.


基本操作命令

  • 导出
./mongodump.exe -h 127.0.0.1 -p 27017 -u username -p password --authenticationDataBase SeanDataBase --db SeanDataBase -o C:\\mongodb\\dump\\

-h/--hostname: hostname
-u:username
-p: password
--authenticationDataBase: 授权数据库
--db: 指定需要导出的db. 不写导出全部.
-o: 导出文件目录. 也有不用-o, 直接写<path>的.

  • 导入
./mongorestore.exe --host 127.0.0.1 --port 27017 --db SeanDataBase2 --dir C:\\mongodb\\dump\\SeanDataBase

--host: 服务器地址
--port: 端口
--db: 导入的DB名称. 可以随意取名. 不必要和导出的名字一致.
--dir: 导入的文件地址.


操作记录

dump
mongodump -h 127.0.0.1 -port 27017 --db yanxml -o  /Users/sean/dump/
  • 导出记录
    在这里插入图片描述

  • 查看导出的文件
    在这里插入图片描述

  • 数据库原文件
    在这里插入图片描述
    注意: 这里你会发现. Collection为4个, 但是导出的文件为6个(6/3). 这其实是不对应上的. 这个是因为文件系统, 大小写不敏感导致的. 大写文件和小写文件哪个后写会覆盖前一个文件.

导入
  • 先新建一个db. yanxml_store
    在这里插入图片描述
  • 执行dump命令
mongorestore --host 127.0.0.1 --port 27017 --db yanxml_store --dir /Users/sean/dump/yanxml/

在这里插入图片描述
在这里插入图片描述

注意: 此处可以看到. 有一句报错语句. 这个其实是因为重名表导致的. 因为在MongoDBhelloworldHelloWorld被认为是2张表. 但是操作系统(此处为Mac)认为是一个文件. 后一个文件覆盖前一个文件, 且未覆盖完全. 所以会导致这个BSON异常. 此处的BSON异常是因为表重名导致文件覆盖导致的.


Failed: error restoring fromst.bson: reading bson input: invalid BSONSize:

这个问题. 我们后来知道了是因为大小写文件被覆盖导致的. 之前看过这些参考资料.

由于无效的BSONSize,mongorestore失败(mongorestore fails due to invalid BSONSize)

stackoverflow-1
stackoverflow-2
stackoverflow-3


Windows 开启目录大小写不敏感

由于工作的电脑为Windows. 此处顺便记录一下Windows如何解决大小写敏感问题.

打开powershell,记得用管理员权限打开.

fsutil.exe file SetCaseSensitiveInfo 文件夹 enable

[1]. Windows文件(名/夹)大小写敏感识别方法
[2]. windows 10 大小写敏感

Linux 如何解决大小写敏感问题

linux系统大小写敏感

Mac - 20210712

后来我用mac也进行了测试. 发现mac也是大小写不区分的. Mac解决的方案要更加的麻烦.


MongoDB 如何查看版本信息

定位问题的时候. 最开始是怀疑MongoDB的版本不对.

# 进入后
db.version();
#mongo命令
./mongo --version

MongoDB查看版本信息总结


Reference

[1]. mongodb远程连接以及备份、还原、导出、导入
[2]. MongoDB 逻辑备份工具mongodump
[3]. MongoDB 备份与还原 mongodump、mongorestore
[4]. 菜鸟教程- MongoDB 备份(mongodump)与恢复(mongorestore)
[5]. MongoDB备份和恢复命令


撑不住了. 今天的文章就写到这吧.

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值