这篇文章将为大家详细讲解有关mongoDB中怎么实现副本集和分片,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python只用mongo事务在python中
这篇文章将为大家详细讲解有关mongoDB中怎么实现副本集和分片,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
Python只用mongo事务
import pymongo
mc = pymongo.MongoClient('mongodb://localhost:27018', connect=False, maxPoolSize=2000)
with mc.start_session() as session:
with session.start_transaction():
mc['test']['test'].insert_one({'a': 1}, session=session)
mc['test']['test'].delete_one({'a': 1}, session=session)
...
但在实际使用中却报了个错
MongoError: Transaction numbers are only allowed on a replica set member or mongos.
上网搜索后很多解决方法都是npm安装一个什么包,然后用它启动mongo。
其实根据英文的意思也差不多能明白是怎么回事,网上搜索后发现了根本原因:事务只支持副本集和切片。而我这开发环境是直接mongod启的
副本集
副本集搭建
启动两个mongodb服务(一个master,一个slave)
# 1
/usr/local/mongodb/mongodb4.0.10/bin/mongod \
--bind_ip=0.0.0.0 --port=27018
--logpath=/var/log/mongodb/mongodb_4_0_10.log \
--dbpath=/data/mongo_4.0.10_db \
--replSet rs0 --fork
# 2
/usr/local/mongodb/mongodb4.0.10/bin/mongod \
--bind_ip=0.0.0.0 --port=27019 \
--logpath=/var/log/mongodb/mongodb_4_0_10-2.log \
--dbpath=/data/mongo_4.0.10_db-2 \
--replSet rs0 --fork
在mongo shell中执行
# 启动一个新的副本集
rs.initiate()
# 添加一个副本集
rs.add("localhost.localdomain:27019")
关于Mongodb中怎么实现副本集和分片就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
--结束END--
本文标题: Mongodb中怎么实现副本集和分片
本文链接: https://lsjlt.com/news/56582.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0