这些天捣鼓了一下mongodb的replica set
本人初学,属菜鸟。现在将一些心得分享给大家。若有不对之处,望各位大鸟指点。
#创建三个数据存放目录用来做db的路径
/data/data/r0
/data/data/r1
/data/data/r2
#启动一个mongod实例
./mongod --port 27017 --dbpath /data/data/r0
#因为我需要做带用户验证的replica set,所以先这样启动来设置用户
#若要使用replica set,那么所有的节点机器必须在local库里要新增一个repl的用户
use local
db.addUser('repl','replication')
否则,当我们启动slave时,会报错:
引用
replauthenticate: no user in local.system.users to use for authentication
replauthenticate: can't authenticate to master server, user:repl
#同样,启动另外两个mongod实例,添加local用户
./mongod --port 27018 --dbpath /data/data/r1
./mongod --port 27019 --dbpath /data/data/r2
use local
db.addUser('repl','replication')
完成后将三个实例在控制台关闭
use admin
db.shutdownServer();
#接下来我们以replica set的方式启动这三个实例
./mongod --replSet testrs --port 27017 --dbpath /data/data/r0 --auth
./mongod --replSet testrs --port 27018 --dbpath /data/data/r1 --auth
./mongod --replSet testrs --port 27019 --dbpath /data/data/r2 --auth
注意,这里带上了--auth参数,要求客户端使用用户登录
启动好这三个实例后,要去其中一台机的控制台去初始化。该初始化操作只执行一次如下:
db.runCommand({"replSetInitiate":{"_id":"testrs","members":[
{"_id":1, "host":"localhost:27017",priority : 1},
{"_id":2,"host":"localhost:27018",priority : 1},
{"_id":3,"host":"localhost:27019",priority : 0 }
]}})
执行完这个命令后,没什么意外的话,三个实例的replica set就配置启动好了。
通过rs.status();查看哪个实例是主节点,去登录主节点的客户端。
由于设置了--auth参数,所以我们要先建立用户。
use admin;
db.addUser('root','root'); //在admin库里创建一个root用户
db.auth('root','root');
use wj;
db.addUser('wj','wj'); //在wj库里创建一个wj用户
这样,在wj库里新增数据的话,就可以在三台实例里查看到了。
在从节点查看数据的话,需要执行db.getMongo().setSlaveOk()
分享到:
相关推荐
MongoDB的副本集(Replica Set)是一种高可用性解决方案,它通过在多个节点之间复制数据来确保数据的冗余和容错性。在MongoDB中,副本集由一组 MongoDB实例组成,包括一个主节点(Primary)和多个从节点...
信息 该文件描述了如何在 Docker 上运行 Mongo DB Replica Set。 我们假设主机上的 ...$ cd docker-mongodb-replicaset $ docker build -t mongo . 使用副本集启动 docker 容器 $ ./start.sh 使用 bash 再运行一个
- 其中,`username`和`password`是数据库认证信息,`host1:port1,host2:port2`是副本集成员的地址,`dbname`是数据库名,`replicaSet=rs0`指定了副本集名称。 4. **读写策略** - SpringBoot 默认会将所有操作发送...
在大型分布式系统中,为了实现高可用性和水平扩展,MongoDB提供了两种关键特性:副本集(Replica Sets)和分片(Sharding)。这篇博客将探讨如何搭建MongoDB的副本集和分片集群。 首先,我们来理解一下MongoDB的...
在本文中,我们将详细讨论如何配置一个包含三台服务器的高性能MongoDB Replica Set。 首先,我们需要为每台服务器创建数据库目录。在本例中,我们有三台服务器,分别运行在127.0.0.1的27017、27018和27019端口上。...
在这个“MongoDB集群测试代码”中,我们关注的是MongoDB的两个关键特性:副本集(Replica Set)和分片(Sharding),以及如何通过配置文件和脚本来进行集群的设置与测试。 1. **副本集(Replica Set)**: - 副本...
5. **Replica Set**:MongoDB的高可用性通常通过副本集(Replica Set)实现,每个副本集包含多个数据节点,每个节点都有自己的数据副本。副本集可以容忍单点故障,保持数据一致性,并提供读写分离的能力。 6. **...
在大型分布式系统中,为了实现水平扩展和数据冗余,MongoDB提供了分片(Sharding)和复制集(Replica Set)的功能。本文将深入探讨如何使用这两种技术来设置MongoDB集群。 **一、MongoDB分片** 1. **分片概念**: ...
4. MongoDB Replica Set 自动部署.exe和MongDB Replica Set 自动部署.pdb:这是实际的自动部署程序和其对应的调试信息文件。exe文件是可执行程序,可以直接运行在Windows环境下,通过SSH连接到Linux服务器并执行部署...
- MongoDB的复制集(Replica Set)配置,实现高可用性。 - 分片(Sharding)配置,以支持大数据量的横向扩展。 - 使用MongoDB的管理工具,如`mongo` shell和`mongotop`等监控工具。 - MongoDB的安全性,包括用户认证...
MongoDB是一种流行的NoSQL数据库,它以其高性能、高可用性和易扩展...MongoDB的Replica Set和Sharding集群模式在具体实践中可能会有更复杂的配置和管理需求,建议进一步深入学习MongoDB的官方文档来获得更详尽的指导。
6. 高可用性:MongoDB的复制集(Replica Set)机制可以确保数据的冗余和故障转移,提高服务的连续性。学习如何设置和管理复制集至关重要。 7. 聚合框架:MongoDB的聚合框架允许在服务器端进行数据处理,包括数据...
2. 移动解压后的文件到指定目录(如`/usr/local/mongodb`),创建并设置用户权限(例如用户`mongo`)。 3. 创建Config Server、shard和mongos所需的目录,包括数据和日志存储路径。 4. 初始化Config Server、shard和...
4. 复制集(Replica Set): - 复制集是MongoDB提供的一种高可用性解决方案,它包括一个主节点和多个从节点,数据在所有节点间实时同步。 - 设置复制集需要在每个成员上配置复制集参数,并指定其他成员的信息。 -...
本文将详细介绍如何在Linux环境下设置MongoDB复制集,同时涵盖用户认证的配置以及MongoDB与Spring框架的集成。 首先,让我们了解MongoDB复制集。复制集是MongoDB中的一组MongoDB实例,它们之间保持着数据同步。当主...
1. `replicaSet`:设置复制集的名称。 2. `net`:网络设置,如端口、绑定IP等。 3. `storage`:数据存储配置,如日志路径、数据文件位置等。 4. `systemLog`:日志记录配置,如日志级别、输出位置等。 5. `security`...
7. **副本集与分片**:在生产环境中,为了实现高可用性和水平扩展,可以配置MongoDB的副本集(Replica Set)或分片集群(Sharding)。副本集确保数据的冗余和故障转移能力,而分片则通过在多个服务器上分配数据来...
配置时,需要提供所有副本集节点的地址,并设置replicaSet属性。 此外,安全性和性能优化也是重要的考虑因素,包括设置合适的写入策略、启用身份验证、使用SSL连接、调整MongoDB的性能参数等。对于大型应用,可能还...
4. **配置复制集**:在每个节点(包括主节点和从节点)上,需要在配置文件中启用复制集模式,并设置replicaSet参数,如`replicaSet=myReplicaSet`。还需要指定每个节点的角色,如`hidden=true`(隐藏从节点,只用于...
##### 2.2 Replica Set配置 为了提高系统的可靠性和性能,推荐使用Replica Set。这种配置方式支持故障转移等功能。 - **配置主服务器**:指定数据存放路径、端口和复制集名称等参数。 ```bash ./mongod --fork -...