意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

Mongodb中怎么实现副本集和分片

来源:恒创科技 编辑:恒创科技编辑部
2023-12-02 14:17:59

这篇文章将为大家详细讲解有关Mongodb中怎么实现副本集和分片,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Python只用mongo事务

在python中使用使用pymongo 来操作数据库


Mongodb中怎么实现副本集和分片

importpymongo
mc=pymongo.MongoClient('mongodb://localhost:27018',connect=False,maxPoolSize=2000)
withmc.start_session()assession:
withsession.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\
--replSetrs0--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\
--replSetrs0--fork

在mongo shell中执行

#启动一个新的副本集
rs.initiate()
#添加一个副本集
rs.add("localhost.localdomain:27019")

关于Mongodb中怎么实现副本集和分片就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

上一篇: mysql直接拷贝data目录下数据库源文件还原数据库方法 下一篇: JavaScript单线程和任务队列是什么