`

MongoDB 主(Master)/从(slave)数据库同步(转)

 
阅读更多

转载自:http://my.oschina.net/willSoft/blog/34993

 

需要启动的两个MongoDB文档数据库,一个是以主模式启动,另一

个属于从模式启动。因此,主服务器进程将创建一个local.oplog,将

通过这个交易记录同步到Slave服务器中。

1. 建立主/从服务器

主服务器:132.129.31.213:10111A

从服务器:132.129.31.213:10112B

启动Master数据库服务器:

$./mongod  –master -port=10111 -dbpath=/home/tsaip/mongodb/data/10111 

-nohttpinterface &

启动Slave数据库服务器:5s同步一次

$./mongod  –slave –source=132.129.31.213:10111 -port=10112

-dbpath=/home/tsaip/mongodb/data/10112 –slavedelay 5  -nohttpinterface &

测试同步结果:

//登录master数据库服务器

$ ./mongo -host 132.129.31.213 -port 10111

MongoDB shell version: 1.8.2-rc2

connecting to: 132.129.31.213:10111/test

> use test;

switched to db test

> db.user.insert({_id:1,name:'samlee',age:80});

> db.user.find();

{ "_id" : 1, "name" : "samlee", "age" : 80 }

>

//登录slave数据库服务器

$ ./mongo -host 132.129.31.213 -port 10112

MongoDB shell version: 1.8.2-rc2

connecting to: 132.129.31.213:10112/test

> use test;

switched to db test

> db.user.find();

{ "_id" : 1, "name" : "samlee", "age" : 80 }


21

 

>

数据同步成功!!

slave数据库服务器上执行如下操作:

> db.user.insert({_id:2,name:'Jack',age:23});

not master

>

提示not master ,所以slave服务器只可以执行读操作,不可以执行

写操作,如下图所示:

 

 

2. 相关参数说明

Master

 

    --master                            master模式

    --oplogSize arg             size limit (in MB) for op log

 

Slave

 

    --slave                             slave模式

    --source arg                    source指定master位置

    --only arg                        单独指定备份某一database

    --slavedelay arg            指定与Master延迟时间()

    --autoresync                    Slave数据过时后自动重连

 

 


22

 

3. Slave顶替Master

如果上面的主服务器A宕了,此时需要用B机器来顶替master服务,

步骤如下:

 停止B进程(mongod)

 删除B数据目录中的local.*

 --master模式启动B

4. 切换Master/Slave角色

a) 假设已经具备主机A和从机B,此时想切换它们的角色,步骤如下:(假设A是健康的)

b) fsync命令暂停A上的写操作, 

c) 确定B是从机,关闭B上的服务

d) 清空B上的local.*文件

e) -master选项重启B服务

f) B上执行一次写操作,初始化oplog,获得一个同步起始点

g) 关闭B服务,此时B已经有了信的local.*文件

h) 关闭A服务,并且用B上新的local.*文件来代替A上的local.*文件(拷贝之前,记得先

压缩,因为文件可能很大)

i) -master选项重启B服务

j) 在平时的slave选项上加一个-fastsync选项来重启A服务

 

如果A不是健康的,但是硬件是健康的,那么跳过上面的前两步,并且用B上所有文件去

替换A上的文件,重启服务。

5. 更新主服务器位置

假设现有从机启动方式如下:

$ mongod --slave --source 132.129.31.21310000

此时如果想更换主机的位置,可以通过以下的步骤来完成:

重启mongod服务,不要加-slave  –source选项:

$ mongod

启动shell,执行如下操作:


23

 

> use local

switched to db local

>  db.sources.update({host : "132.129.31.21310000"},

{$set : {host : "132.129.31.21310001"}})

接着重启从机上的服务:

$ ./mongod --slave --source 132.129.31.213:10001

$ # or

$ ./mongod --slave

分享到:
评论

相关推荐

    数据库-Mongodb的master-slave模式与master-master模式实验.rar

    在这个模式中,一个节点被指定为主节点(master),负责接受所有的写操作,而其他节点被称为从节点(slave),它们只接收并同步主节点的数据。主节点会定期将数据变更日志发送给从节点,确保数据的一致性。这种模式...

    mongodb linux 搭建mongo 主从配置安装手册

    - 复制现有的MongoDB安装文件作为从数据库: ```bash cp -rf /usr/local/northeasttycoon/mongodb /usr/local/northeasttycoon/mongodb2/ ``` 2. **配置主服务器**: - 启动主服务器: ```bash /usr/local/...

    MongoDB的Master-Slave主从模式配置及主从复制要点解析

    在这种模式中,一个MongoDB实例作为主节点(Master),负责处理所有的写操作,而其他的实例作为从节点(Slave),复制主节点的数据并处理读操作。这种配置在大型系统中尤其重要,因为它提供了数据冗余和故障恢复的...

    mongodb主从备份

    其中,主从备份是一种常见的备份方式,通过配置主节点和一个或多个从节点,实现数据的实时同步与备份,进而提高系统的可靠性和数据的安全性。 #### 二、MongoDB 主从备份环境搭建 本案例基于 Linux 环境进行 ...

    MongoDB 主从复制,副本集分布式存储

    MongoDB 是一种非常流行的非关系型数据库系统,它采用面向文档的数据模型,能够高效地处理大量的非结构化数据。为了提高系统的可用性和容错能力,MongoDB 提供了多种复制机制,其中最为常用的就是主从复制和副本集。...

    mongodb集群配置文档

    mkdir -p /data/log/mongodb/{master,slave,arbiter} ``` - **步骤2**:创建配置文件。 ```bash # master.conf dbpath=/data/master logpath=/data/log/mongodb/master/mongodb.log pidfilepath=/var/run/...

    5.2 MongoDB的三种集群模式1

    在主从架构中,有一个主节点(master)负责处理所有的写操作,并将这些更改同步到一个或多个从节点(slave)。主节点可读可写,而从节点只能读取数据,不可进行写操作,从而实现了读写分离,有效缓解了读压力,适合...

    MongoDB安装使用手册

    - **主从复制**:通过配置主节点和从节点实现数据同步。 - **配置主节点**:在主节点上运行`mongod --dbpath 'XXX' --master`。 - **配置从节点**:在从节点上运行`mongod --dbpath 'XXX' --slave --source=...

    MongoDB.The.Definitive.Guide.chapter9.replication.试译

    然后,启动从节点,通过`mongod --slave --source master_address`命令指定主节点的地址。在单台机器上进行测试时,可以分别配置不同的存储目录和端口。例如: ```bash $ mkdir -p ~/dbs/master $ ./mongod --...

    mongoDB集群实战.pdf

    4. 启动MongoDB从节点程序,在启动命令中加入“–slave”参数,同时指定主节点的IP地址和端口。 在搭建过程中,需要注意的是,一旦从节点开始工作,它会从主节点同步数据,保持与主节点的数据一致。在集群部署时,...

    Java面试MongoDB.pdf

    - **Secondary/Slave**:从节点(Secondary/Slave)负责从主节点同步数据。它们可以用于读取操作,但不能接收写入操作。从节点的存在主要用于提供冗余和提高系统的可用性。 #### 五、备份与故障恢复 **备份**是指...

    mongodb集群搭建教程

    - `--slavedelay`:设置从节点与主数据库同步数据的时间延迟(单位为秒)。 - `--fastsync`:从节点以主数据库的节点快照为起点启动从数据库。 - `--autoresync`:如果从节点不同步,则重新同步数据库。 #### 二、...

    MongoDB 主从复制实例讲解

    1. **创建数据库目录**:为主节点和从节点分别创建数据存储目录,例如`/application/mongodb/data/master`和`/application/mongodb/data/slave`。 2. **启动主节点**:使用`mongod`命令启动主节点,并指定`--dbpath`...

    windows7下使用MongoDB实现仓储设计

    MongoDB是一种分布式文档型数据库,特别适合处理大量结构化和半结构化数据,尤其在物联网(IoT)环境中,它可以高效地存储和处理高频率的数据记录。在Windows 7操作系统下,我们可以按照以下步骤来配置和使用MongoDB来...

    mongodb的大型分布式部署

    - **启动从数据库服务器**:指定数据存放路径、主数据库地址及同步间隔等参数。 ```bash ./mongod --slave --source=10.1.1.1:5500 --dbpath=/data/slave/ --port=5511 --slavedelay=10 ``` ##### 2.2 Replica ...

    mongodb主从复制.docx

    MongoDB的主从复制是一种常见的数据复制模式,它允许数据从一个主节点(Master)复制到一个或多个从节点(Slave)。这种架构有助于实现数据冗余、提高读取性能以及确保系统的高可用性。本文将详细探讨如何配置和管理...

    mongodb学习手册.pdf

    在主从数据库同步方面,MongoDB提供了主(Master)/从(Slave)模式,确保了数据的高可用性和复制。主服务器负责处理客户端的写操作,而从服务器则是主服务器数据的副本。当主服务器不可用时,从服务器可以提升为新...

Global site tag (gtag.js) - Google Analytics