mongodb 复制collection时需要注意
来源:互联网 发布:json.dump 格式化输出 编辑:程序博客网 时间:2024/06/06 00:57
前几天,在工作中遇到一个需求,需要将一个集合复制一份并且在复制后的集合上进行一些后处理,当时同事使用脚本进行的处理,先使用db.collection.copyTo()
进行复制集合,然后在js脚本中遍历新集合中的记录,查询出需要处理的记录并进行相应更新处理。
可是当时在现网执行的时候却出现了问题,在执行db.collection.copyTo()
这个命令的时候,现网出现了频繁的告警(后台做的对业务接口调用的功能监控),一些功能直接无法使用!到底是什么原因呢?
后来我们查看了官网对db.collection.copyTo()
这个方法的说明,原来我们踩到了地雷了,我们当时使用的Mongodb版本是3.0版本,查看3.0版本的这个方法的说明,发现这个方法在3.0版本已经被废弃了,已经不建议使用了。具体看了下,原来这个方法在执行的时候,会使用一个全局锁(什么是全局锁呢?就是你在执行过程中的,所有的对这个mongodb实例服务的读写操作都会被拒绝,多么坑爹的一个玩意),这就导致了后来我们的一些接口在调用这个实例上的数据查询服务时都遇到了异常。
当时看了下我们的库中的数据量,一百万条左右,当时直接导致现网故障时间就达两分钟,可想而知,要是当时数据库中的数据量再大点,那多占用多长的时间!!!
因此,以后在拷贝集合的时候尽量不要使用这个方法了。可以考虑一下mongoexport和mongoimport,或者mongosync。如果在拷贝的过程中还需要做一些逻辑处理,还可以写代码循环遍历集合中的数据,然后再插入到新集合中,这样就不会有任何问题了。
在使用NoSQL Manager for MongoDB的复制集合时遇到了无法访问数据库的情况,估计是其在底层使用了db.collection.copyTo()方法,将整个数据库锁死了。
- mongodb 复制collection时需要注意
- mongodb 本地快速复制collection
- [Python]对List进行复制时需要注意的问题
- MongoDB部署需要注意的事项
- Collection的toArray()使用上需要注意的地方
- mongoDB如何复制collection里的数据到另一个collection方法总结
- 复制collection
- mysql通过直接复制数据库文件夹来还原数据时需要注意的问题
- mysql通过直接复制数据库文件夹来还原数据时需要注意的问题
- 入门MongoDB,你需要注意的4个技巧
- 入门MongoDB,你需要注意的4个技巧
- 32位系统使用mongodb需要注意的几点
- MongoDB在Windows平台中需要注意的问题
- Windows上搭建MongoDB集群上需要注意的坑
- RMAN复制物理备库时需要注意的几点
- oracle高级复制需要注意的几点问题
- 复制数据库中需要注意的几点事项
- maven项目复制粘贴需要注意的地方
- Makefile——典型范例
- java使用poi,导出数据致word模板,以提供下载。
- 工厂模式-1
- springmvc拦截器静态资源的访问 前台css js样式加载的问题
- python笔记1.__init__.py &future模块
- mongodb 复制collection时需要注意
- Struts2(原理笔记下)
- View.js
- 一些好的网站记录(PART 6)
- 冒泡排序
- 蚊子看了想咬人,人类看了都说好
- Mac 下WebStorm 常用快捷键
- 公有云的云主机实例在停机状态下是否收费?
- 【openpyxl】openpyxl对Excel表格的创建与写操作例程