主从复制是Mongodb最常用的复制方式。这种方式非常灵活,可用于备份、故障恢复、读扩展等。Mongodb主从结构如下图所示:
最基本的方式就是建立一个主节点和一个或者多个从节点,每个从节点要知道主节点的地址。主节点服务器使用mongod --master方式启动,而从节点服务器则使用mongod --slave --source master_address方式启动。其中master_address指的是主节点服务器的地址。
一般主从节点是在多台服务器上,这里我通过在单台机器上建立多个实例来模拟主从复制。
首先建立主从节点数据目录:
[root@localhost mongodb]# mkdir -p /opt/mongodb/data/dbs/master
[root@localhost mongodb]# mkdir -p /opt/mongodb/data/dbs/slave
然后配置主从节点的配置文件(也可以通过参数直接启动)
mongodb-master.conf(主节点配置文件)
port=10000
dbpath=data/dbs/master
logpath=log/mongodb-master.log
logappend=true
mongodb-slave.conf(从节点配置文件)
port=10001
dbpath=data/dbs/slave
logpath=log/mongodb-slave.log
logappend=true
接着分别启动主节点服务和从节点服务:
1)启动主节点服务
[root@localhost mongodb]# ./bin/mongod -f mongodb-master.conf --master
all output going to: log/mongodb-master.log
2)启动从节点服务(注意需要使用--source参数指定主服务的地址)
[root@localhost mongodb]# ./bin/mongod -f mongodb-slave.conf --slave --source localhost:10000
all output going to: log/mongodb-slave.log
然后连接到主节点
[root@localhost mongodb]# ./bin/mongo localhost:10000
MongoDB shell version: 2.0.6
connecting to: localhost:10000/test
> db.users.find() #查询主节点users集合中的数据,结果返回为空
>
使用另外一个连接连接到从节点
[root@localhost mongodb]# ./bin/mongo localhost:10001
MongoDB shell version: 2.0.6
connecting to: localhost:10001/test
> db.users.find() #查询从节点users集合中的数据,结果也返回为空
>
往主节点users集合中插入数据
#首先往users集合中插入数据
> db.users.save({"name":"zhouxiaofei","position":"Web tester"})
> db.users.save({"name":"chenzhou","position":"Java developer"})
> db.users.find() #查询主节点users集合中数据,返回如下结果
{ "_id" : ObjectId("502a83750e192a4a90d0f6c1"), "name" : "zhouxiaofei", "position" : "Web tester" }
{ "_id" : ObjectId("502a837c0e192a4a90d0f6c2"), "name" : "chenzhou", "position" : "Java developer" }
>
通过另外一个连接从节点的实例查询从节点中users集合中的数据
> db.users.find() #查询从节点中users集合,返回了主节点中插入的数据
{ "_id" : ObjectId("502a83750e192a4a90d0f6c1"), "name" : "zhouxiaofei", "position" : "Web tester" }
{ "_id" : ObjectId("502a837c0e192a4a90d0f6c2"), "name" : "chenzhou", "position" : "Java developer" }
>
根据结果可以看出,简单的主从复制已经实现。关于Mongodb主从复制更多的知识,可以参考mongodb在线文档,地址如下:http://www.mongodb.org/display/DOCS/Master+Slave
分享到:
相关推荐
### MongoDB 主从复制,副本集分布式存储 #### 一、MongoDB 主从复制与副本集的概念 MongoDB 是一种非常流行的非关系型数据库系统,它采用面向文档的数据模型,能够高效地处理大量的非结构化数据。为了提高系统的...
### MongoDB主从复制详解 #### 一、MongoDB主从复制概述 MongoDB的主从复制是一种常见的数据复制模式,它允许数据从一个主节点(Master)复制到一个或多个从节点(Slave)。这种架构有助于实现数据冗余、提高读取...
实施MongoDB主从复制的过程如下: 1. **配置主节点**:首先,启动一个MongoDB实例作为主节点,例如在D盘,通过命令`mongod --dbpath='XXX' --master`启动,使用默认的27017端口。 2. **配置从节点**:然后启动另一...
MongoMultiMaster是一个基于Python编写的工具,专门用于简化MongoDB主从复制(也称为分片集群)的配置过程。在大型分布式系统中,数据的可靠性和可用性是至关重要的,而MongoDB的主从复制机制正好能提供这样的功能。...
MongoDB的主从复制是一种数据冗余和故障转移机制,它允许数据在多个服务器之间进行复制,确保数据的安全性和可用性。在这个过程中,一个MongoDB实例作为主节点,负责接收所有写操作,而其他实例作为从节点,同步主...
MongoDB的主从复制是一种常见的数据冗余和故障恢复策略,它允许数据在多个服务器之间进行同步,确保数据的安全性和可用性。主从复制的基本原理是,一个MongoDB实例作为主节点,负责处理所有写操作,而其他节点作为从...
以下是对MongoDB主从环境搭建的详细步骤: 1. **安装MongoDB**: 首先,你需要在所有参与复制的服务器上安装MongoDB。根据你的操作系统(如Ubuntu、CentOS或Windows)下载并安装相应的MongoDB二进制包。 2. **...
1. **主从复制(Replication)**: MongoDB的主从复制是其高可用性架构的基础,通过复制数据到多个节点,确保即使主节点故障,从节点也能接管服务,保证数据不丢失。 2. **单台Windows系统**:尽管MongoDB推荐在多台...
MongoDB的主从复制是一种传统的高可用性和数据冗余机制,它允许数据在多个服务器之间进行复制,确保数据的安全性和服务的连续性。虽然现在MongoDB推荐使用副本集(Replica Sets)代替主从复制,因为副本集提供了更高...
标题“mongodb主从结构的配置”指的是在MongoDB环境中设置主从复制的过程。这一过程包括以下几个关键步骤: 1. **环境准备**:首先,你需要在至少两台服务器上安装MongoDB。一台作为主节点,另一台或多台作为从节点...
1. **KeyFile生成**:为了保证安全,MongoDB主从复制通常需要认证。这需要生成一个keyFile,然后将其放置在主节点和从节点的适当位置,并设置适当的权限。 2. **主节点配置**:在主节点的配置文件(如`/etc/mongodb...
1. **主从复制集** MongoDB 还支持更为复杂的复制集架构,可以通过增加更多的从节点形成复制集,进一步提升系统的可靠性和性能。 2. **故障转移** 当主节点出现故障时,复制集中的从节点之一可以自动晋升为主...
主从配置在 MongoDB 中是一个重要的概念,它允许一个主节点接收所有写操作,而从节点则复制主节点的数据,以便在主节点故障时能够无缝接管服务。 在 MongoDB 的主从配置中,通常有一个主服务器(master)负责处理...
k8s 安装 MongoDB 分片(Sharding)+ 副本集(Replica Set) k8s 安装 MongoDB 分片(Sharding)+ 副本集(Replica Set)是结合 Kubernetes(k8s)和 MongoDB 实现高可用性和高性能的解决方案。本解决方案通过使用 ...
通过以上步骤,您可以成功地在Linux环境下搭建MongoDB主从集群,并实现基本的数据管理和维护功能。这样的配置能够有效地提高数据处理能力和系统可用性,特别是在高并发场景下表现更加突出。希望这些步骤能帮助您更好...