Mongo 54-mongo data migrate 数据迁移
背景
有时候希望将一个库的数据迁移到另一个库中。
代码实现当然也是可以的,不过感觉有些麻烦。
mongodb 本身应该就自带的特性支持。
相同实例
use db_source;
var docs = db_source.collection_souce.find();
use db_target;
docs.forEach({db.collection_target.insert(...
2018-12-10 03:35:23 |
Database
Mongo 53-mongo indexes 索引如何备份
查看所有索引信息
MongoDB索引的元信息(描述信息)存储在local数据库的集合system.indexes中,这是系统提供的保留集合(创建数据库时),我们不能对其进行插入或删除操作,但我们可以从中查看索引定义的相关信息。
system.indexes 集合中包含了每个索引的详细信息,可以通过下面的命令查询已经存在的索引,例如:
db.system.indexes.find()
...
2018-12-10 03:35:23 |
Database
Mongo 52-读写分离
业务背景
访问 mongodb 有时候会出现不稳定的情况。
以前使用 v3.4.6 主从复制存在 BUG,所以一直没有使用读写分离。
现在升级到 v4.0,决定使用读写分离并且使用相对稳定的机器环境。
双管齐下,保证系统的稳定性。
mongo的集群方式有三种:
Replica Set(副本集)
其实简单来说就是集群当中包含了多份数据,保证主节点挂掉了,备节点能继续提供数据服务,...
2018-12-10 03:35:23 |
Database
Mongo 51-mongo expire mongo 过期索引 TTL Index
如何优雅删除
ttl index 作用
有些类似于 redis 的 expire,设置之后,mongo 会有一个异步进程去定时清理数据信息。
应用场景
现在的 mongo 中存放每天的数据信息,前一天的数据信息会进行清空。
原来是采用定时任务清空的方式。
定时任务虽然可以指定时间,但是对于 mongo 的瞬时压力还是很大的。
解决方式
使用 ttl index
TTL In...
2018-12-10 03:35:23 |
Database
Mongo 分片平衡器-50-优化实战
初始化
创建 collection
可以跳过,插入数据会默认创建。
初始化数据
for(i=1;i<=10000;i++){db.test.insert({"id":i,"name":"test", "amount": i+10000})}
for(i=1;i<=10000;i++){db.test.insert({"id":i,"name":"test2", "am...
2018-12-10 03:35:23 |
Database
Mongo 分片平衡器-48
平衡器
MongoDB平衡器是一个后台进程,用于监视每个分片上的块数。
当给定分片上的块数达到特定迁移阈值时,平衡器会尝试在分片之间自动迁移块,并在每个分片中达到相同数量的块。
分片群集的平衡过程对用户和应用程序层完全透明,但在执行过程时可能会对性能产生一些影响。
从MongoDB 3.4开始,balancer在配置服务器副本集(CSRS)的主服务器上运行:
在3.4版中,当平...
2018-12-10 03:35:23 |
Database
Mongo 分片 Chunks-48
Data Partitioning with Chunks
MongoDB Atlas使用最佳实践实现分片,允许您通过GUI扩展群集。
配置服务器和查询路由器的部署和管理是完全自动化的。 从这里开始吧。
MongoDB使用与集合关联的分片键将数据分区为块。
块由分片数据的子集组成。
每个块都具有基于分片键的包含较低且独占的较高范围。
mongos路由根据分片键值写入适当的块。...
2018-12-10 03:35:23 |
Database
Mongo 分片 Zones-47
Zones
在分片群集中,您可以根据分片键创建分片数据区域。您可以将每个区域与群集中的一个或多个分片相关联。分片可以与任意数量的区域相关联。在平衡群集中,MongoDB仅将区域覆盖的块迁移到与该区域关联的分片。
可以应用区域的一些常见部署模式如下:
隔离特定分片集上的特定数据子集。
确保最相关的数据驻留在地理上最靠近应用程序服务器的分片上。
根据分片硬件的硬件/性能将数据路由到分片...
2018-12-10 03:35:23 |
Database