- 浏览: 2262633 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (423)
- FileNet相关 (3)
- 应用服务器相关 (22)
- Java综合 (77)
- 持久层 (24)
- struts (11)
- webservice (8)
- 虚拟机 (2)
- 光盘刻录 (0)
- AD及AD集群 (1)
- JS (33)
- F5 (0)
- loadrunner8.1 (0)
- Java 反编译工具 (2)
- DataBase (62)
- ant (1)
- 操作系统 (29)
- 我的任务 (3)
- 平台架构 (16)
- 业务规则引擎 (2)
- 模板 (1)
- EJB (5)
- spring (24)
- CMMI (1)
- 项目管理 (20)
- LDAP (13)
- JMS (10)
- JSP (19)
- JBPM (2)
- web MVC框架设计思想 (2)
- 第三方支付平台 (2)
- BUG管理工具 (1)
- 垃圾站 (2)
- php (1)
- swing (1)
- 书籍 (1)
- QQ qq (2)
- 移动互联网 (26)
- 爱听的歌曲 (0)
- hadoop (4)
- 数据库 (9)
- 设计模式 (1)
- 面试经验只谈 (1)
- 大数据 (9)
- sp (1)
- 缓存数据库 (8)
- storm (2)
- taobao (2)
- 分布式,高并发,大型互联网,负载均衡 (6)
- Apache Ignite (0)
- Docker & K8S (0)
最新评论
-
wangyudong:
新版本 Wisdom RESTClienthttps://gi ...
spring rest mvc使用RestTemplate调用 -
wangyudong:
很多API doc生成工具生成API文档需要引入第三方依赖,重 ...
spring rest mvc使用RestTemplate调用 -
zhaoshijie:
cfying 写道大侠,还是加载了两次,怎么解决啊?求。QQ: ...
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
xinglianxlxl:
对我有用,非常感谢
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
k_caesar:
多谢,学习了
利用maven的resources、filter和profile实现不同环境使用不同配置文件
关键字:Mongodb副本集(三个节点:一主一从一仲裁)-配置文件方式启动
1.建立数据文件夹
一般情况下不会把数据目录建立在mongodb的解压目录下,不过这里方便起见,就建在mongodb解压目录下吧。
[plain] view plaincopy
mkdir -p /mongodb/data/master
mkdir -p /mongodb/data/slaver
mkdir -p /mongodb/data/arbiter
#三个目录分别对应主,备,仲裁节点
2.建立配置文件
由于配置比较多,所以我们将配置写到文件里。
[plain] view plaincopy
#master.conf
dbpath=/mongodb/data/master
logpath=/mongodb/log/master.log
pidfilepath=/mongodb/master.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=10.10.148.130
port=27017
oplogSize=10000
fork=true
noprealloc=true
[plain] view plaincopy
#slaver.conf
dbpath=/mongodb/data/slaver
logpath=/mongodb/log/slaver.log
pidfilepath=/mongodb/slaver.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=10.10.148.131
port=27017
oplogSize=10000
fork=true
noprealloc=true
[plain] view plaincopy
#arbiter.conf
dbpath=/mongodb/data/arbiter
logpath=/mongodb/log/arbiter.log
pidfilepath=/mongodb/arbiter.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=10.10.148.132
port=27017
oplogSize=10000
fork=true
noprealloc=true
参数解释:
dbpath:数据存放目录
logpath:日志存放路径
pidfilepath:进程文件,方便停止mongodb
directoryperdb:为每一个数据库按照数据库名建立文件夹存放
logappend:以追加的方式记录日志
replSet:replica set的名字
bind_ip:mongodb所绑定的ip地址
port:mongodb进程所使用的端口号,默认为27017
oplogSize:mongodb操作日志文件的最大大小。单位为Mb,默认为硬盘剩余空间的5%
fork:以后台方式运行进程
noprealloc:不预先分配存储
3.启动mongodb
进入每个mongodb节点的bin目录下
[java] view plaincopy
./monood -f master.conf
./mongod -f slaver.conf
./mongod -f arbiter.conf
注意配置文件的路径一定要保证正确,可以是相对路径也可以是绝对路径。
4.配置主,备,仲裁节点
可以通过客户端连接mongodb,也可以直接在三个节点中选择一个连接mongodb。
[plain] view plaincopy
./mongo 10.10.148.130:27017 #ip和port是某个节点的地址
>use admin
>cfg={ _id:"testrs", members:[ {_id:0,host:'10.10.148.130:27017',priority:2}, {_id:1,host:'10.10.148.131:27017',priority:1},
{_id:2,host:'10.10.148.132:27017',arbiterOnly:true}] };
>rs.initiate(cfg) #使配置生效
cfg是可以任意的名字,当然最好不要是mongodb的关键字,conf,config都可以。最外层的_id表示replica set的名字,members里包含的是所有节点的地址以及优先级。优先级最高的即成为主节点,即这里的10.10.148.130:27017。特别注意的是,对于仲裁节点,需要有个特别的配置——arbiterOnly:true。这个千万不能少了,不然主备模式就不能生效。
配置的生效时间根据不同的机器配置会有长有短,配置不错的话基本上十几秒内就能生效,有的配置需要一两分钟。如果生效了,执行rs.status()命令会看到如下信息:
[plain] view plaincopy
{
"set" : "testrs",
"date" : ISODate("2013-01-05T02:44:43Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "10.10.148.130:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 200,
"optime" : Timestamp(1357285565000, 1),
"optimeDate" : ISODate("2013-01-04T07:46:05Z"),
"self" : true
},
{
"_id" : 1,
"name" : "10.10.148.131:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 200,
"optime" : Timestamp(1357285565000, 1),
"optimeDate" : ISODate("2013-01-04T07:46:05Z"),
"lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),
"pingMs" : 0
},
{
"_id" : 2,
"name" : "10.10.148.132:27017",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 200,
"lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),
"pingMs" : 0
}
],
"ok" : 1
}
如果配置正在生效,其中会包含如下信息:
[plain] view plaincopy
"stateStr" : "RECOVERING"
同时可以查看对应节点的日志,发现正在等待别的节点生效或者正在分配数据文件。
现在基本上已经完成了集群的所有搭建工作。至于测试工作,可以留给大家自己试试。一个是往主节点插入数据,能从备节点查到之前插入的数据(查询备节点可能会遇到某个问题,可以自己去网上查查看)。二是停掉主节点,备节点能变成主节点提供服务。三是恢复主节点,备节点也能恢复其备的角色,而不是继续充当主的角色。二和三都可以通过rs.status()命令实时查看集群的变化。
1.建立数据文件夹
一般情况下不会把数据目录建立在mongodb的解压目录下,不过这里方便起见,就建在mongodb解压目录下吧。
[plain] view plaincopy
mkdir -p /mongodb/data/master
mkdir -p /mongodb/data/slaver
mkdir -p /mongodb/data/arbiter
#三个目录分别对应主,备,仲裁节点
2.建立配置文件
由于配置比较多,所以我们将配置写到文件里。
[plain] view plaincopy
#master.conf
dbpath=/mongodb/data/master
logpath=/mongodb/log/master.log
pidfilepath=/mongodb/master.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=10.10.148.130
port=27017
oplogSize=10000
fork=true
noprealloc=true
[plain] view plaincopy
#slaver.conf
dbpath=/mongodb/data/slaver
logpath=/mongodb/log/slaver.log
pidfilepath=/mongodb/slaver.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=10.10.148.131
port=27017
oplogSize=10000
fork=true
noprealloc=true
[plain] view plaincopy
#arbiter.conf
dbpath=/mongodb/data/arbiter
logpath=/mongodb/log/arbiter.log
pidfilepath=/mongodb/arbiter.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=10.10.148.132
port=27017
oplogSize=10000
fork=true
noprealloc=true
参数解释:
dbpath:数据存放目录
logpath:日志存放路径
pidfilepath:进程文件,方便停止mongodb
directoryperdb:为每一个数据库按照数据库名建立文件夹存放
logappend:以追加的方式记录日志
replSet:replica set的名字
bind_ip:mongodb所绑定的ip地址
port:mongodb进程所使用的端口号,默认为27017
oplogSize:mongodb操作日志文件的最大大小。单位为Mb,默认为硬盘剩余空间的5%
fork:以后台方式运行进程
noprealloc:不预先分配存储
3.启动mongodb
进入每个mongodb节点的bin目录下
[java] view plaincopy
./monood -f master.conf
./mongod -f slaver.conf
./mongod -f arbiter.conf
注意配置文件的路径一定要保证正确,可以是相对路径也可以是绝对路径。
4.配置主,备,仲裁节点
可以通过客户端连接mongodb,也可以直接在三个节点中选择一个连接mongodb。
[plain] view plaincopy
./mongo 10.10.148.130:27017 #ip和port是某个节点的地址
>use admin
>cfg={ _id:"testrs", members:[ {_id:0,host:'10.10.148.130:27017',priority:2}, {_id:1,host:'10.10.148.131:27017',priority:1},
{_id:2,host:'10.10.148.132:27017',arbiterOnly:true}] };
>rs.initiate(cfg) #使配置生效
cfg是可以任意的名字,当然最好不要是mongodb的关键字,conf,config都可以。最外层的_id表示replica set的名字,members里包含的是所有节点的地址以及优先级。优先级最高的即成为主节点,即这里的10.10.148.130:27017。特别注意的是,对于仲裁节点,需要有个特别的配置——arbiterOnly:true。这个千万不能少了,不然主备模式就不能生效。
配置的生效时间根据不同的机器配置会有长有短,配置不错的话基本上十几秒内就能生效,有的配置需要一两分钟。如果生效了,执行rs.status()命令会看到如下信息:
[plain] view plaincopy
{
"set" : "testrs",
"date" : ISODate("2013-01-05T02:44:43Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "10.10.148.130:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 200,
"optime" : Timestamp(1357285565000, 1),
"optimeDate" : ISODate("2013-01-04T07:46:05Z"),
"self" : true
},
{
"_id" : 1,
"name" : "10.10.148.131:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 200,
"optime" : Timestamp(1357285565000, 1),
"optimeDate" : ISODate("2013-01-04T07:46:05Z"),
"lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),
"pingMs" : 0
},
{
"_id" : 2,
"name" : "10.10.148.132:27017",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 200,
"lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),
"pingMs" : 0
}
],
"ok" : 1
}
如果配置正在生效,其中会包含如下信息:
[plain] view plaincopy
"stateStr" : "RECOVERING"
同时可以查看对应节点的日志,发现正在等待别的节点生效或者正在分配数据文件。
现在基本上已经完成了集群的所有搭建工作。至于测试工作,可以留给大家自己试试。一个是往主节点插入数据,能从备节点查到之前插入的数据(查询备节点可能会遇到某个问题,可以自己去网上查查看)。二是停掉主节点,备节点能变成主节点提供服务。三是恢复主节点,备节点也能恢复其备的角色,而不是继续充当主的角色。二和三都可以通过rs.status()命令实时查看集群的变化。
发表评论
-
性能优化重要的mysql profile功能
2023-02-24 23:24 236关键字:性能优化重要的mysql profile功能 ... -
mysql源码解读之事务提交过程--第二篇
2018-01-10 15:03 519关键字:mysql源码解读 ... -
循环创建多张表 和 多个数据库sql语句(数据库水平分库分表时方便)
2016-03-04 12:58 12385关键字:循环创建多张 ... -
高可用、开源的Redis缓存集群方案
2015-04-16 12:25 3758推荐综合架构交流群:J ... -
Oracle实现类split函数的方
2015-04-16 10:10 642关键字:Oracle实现类split函数的方 项目里需要保存结 ... -
各种Nosql数据库系统对比及应用场景分析
2015-04-15 16:29 756关键字:各种Nosql数据库系统对比及应用场景分析 导读:Kr ... -
数据库迁移之从oracle 到 MySQL
2015-04-11 09:38 916关键字:数据库迁移之从oracle 到 MySQL 开场白: ... -
Mongodb命令大全
2015-03-18 11:18 803关键字:Mongodb命令大全 他支持的数据结构非常松散,是类 ... -
MongoDB中缩减Shard集群(删除一个Shard)--删除一个分片
2015-03-13 12:29 3644关键字:MongoDB中缩减Shard集群(删除一个Shard ... -
win7 64位的数据源(ODBC)配置问题
2015-01-20 16:36 1079关键字:win7 64位的数据源(ODBC)配置问题 ... -
atomikos(com.atomikos.icatch.SysException: Error in init(): Log already in use)
2014-10-15 13:12 8530关键字:atomikos(com.atomikos.icatc ... -
Mysql高可用架构
2014-09-02 11:41 2801关键字:Mysql高可用架构 最近花了点时间研究了一下mys ... -
MySQL原生HA方案 – Fabric体验之旅
2014-08-21 13:13 7111关键字:MySQL原生HA方案 – Fabric体验之旅 ta ... -
性能优化重要的mysql profile功能
2014-02-10 15:25 51关键字:性能优化重要的mysql profile功能 my ... -
mysql profile功能
2014-02-10 15:12 24关键字:mysql profile功能 mysql的sql ... -
mybatis优化
2013-11-29 00:12 6457关键字:mybatis优化 1、每个bean都要有对应的g ... -
动态分库分表策略
2013-11-21 15:52 1352关键字:动态分库分表策略 参考网址:http://drag ... -
Windows 2008下如何配置Oracle ASM
2013-08-19 13:23 58804关键字:Windows 2008下如何配置Oracle ASM ... -
plsql 链接远程机器零配置
2013-07-17 12:06 3891关键字:plsql 链接远程机器零配置 打开plsql会弹 ... -
MySQL+ODBC+5.1.9-win32驱动.rar
2012-11-16 13:51 1103关键字:MySQL+ODBC+5.1.9-win32驱动.r ...
相关推荐
10. 配置文件和参数设定:正确设定MongoDB配置文件中的各项参数对于集群的稳定运行至关重要,包括但不限于配置文件路径、日志文件路径、端口号、副本集名称等。 总结以上知识点,搭建MongoDB分片副本集集群需要考虑...
2. **初始化配置文件**:为每个节点创建一个配置文件,指定副本集名称、初始成员等信息。 3. **启动MongoDB实例**:以副本集模式启动每个实例,使用`--replSet`参数指定副本集名称。 4. **配置副本集**:在一个...
- 在三个节点上以副本集的方式启动MongoDB服务。 - 通过Shell连接到任意MongoDB实例,执行`rs.initiate()`方法初始化副本集。 - **副本集更新**: - 添加成员:`rs.add("172.16.250.240:27017")` - 删除成员:`...
本示例中的环境为四台服务器,每台服务器上将启动三个MongoDB实例。这些实例将分别扮演主节点(Primary)、从节点(Secondary)以及仲裁节点(Arbiter)的角色。具体来说: - **主节点(Primary)**:负责处理写入操作,并将...
这段配置定义了一个名为`policydb`的副本集,其中包含了三个成员:一个主节点、一个备节点和一个仲裁节点。主节点的优先级设置为2,备节点优先级为1,而仲裁节点不参与数据同步,只负责投票决策。 **3. 配置其他分...
在实际部署中,建议至少有三个节点来组成副本集,因为奇数个节点可以避免选举过程中的平票情况,提高系统的稳定性。同时,为了监控和管理副本集,可以使用`rs.status()`、`rs.add()`、`rs.remove()`等MongoDB的管理...
在上述环境中,配置文件应分别针对三个节点设置不同的端口和数据存储路径,然后依次启动每个服务。初始化和添加成员的操作需要在MongoDB shell中执行,确保所有节点成功加入复制集并正常运行。 总之,MongoDB复制集...
- **部署复制集**: 介绍了如何部署一个基本的复制集,包括配置文件的编写、启动和管理等步骤。 - **部署用于测试和开发的复制集**: 介绍如何快速搭建一个用于测试或开发环境的复制集。 - **部署地理冗余复制集**: ...
该模式的核心在于建立一个主节点和一个或多个从节点,确保每个从节点能够与主节点保持同步。 **关键特点**: - **主服务器唯一性**:集群中必须有一个明确的主服务器,且只能有一个。 - **从服务器配置**:从...
在创建集群时,我们通常会设置至少三个副本集成员,其中一个是主节点,其他是从节点,仲裁者则用于解决选举过程中的冲突。 要启动一个MongoDB集群,你需要完成以下步骤: 1. **配置文件**:为每个节点创建一个配置...
1. **初始化复制集**:首先需要启动至少三个 MongoDB 实例作为集群成员,然后通过命令行初始化复制集。 2. **配置复制集成员**:指定哪些实例作为主节点,哪些作为从节点。 3. **设置仲裁节点**:可选步骤,用于在主...
MongoDB集群是指通过在网络中连接多台MongoDB服务器实例,使其协作完成数据库的读写、复制、故障恢复等任务的一种数据库架构方式...同时,仲裁节点不应与数据节点部署在同一台机器上,以防硬件故障同时影响到多个节点。
2. **服务器准备**:假设您已经准备好三台服务器用于部署MongoDB副本集,分别为`10.10.8.64`、`10.10.8.65`和`10.10.8.66`。确保这三台服务器之间能够互相通信,并且已经安装了必要的软件环境。 #### 三、部署步骤 ...
- 创建并编写配置文件,指定节点的角色和相关设置。 - 设置Read Preferences Modes,允许客户端将读请求定向到副本节点。 #### 四、总结 MongoDB的集群部署模式提供了灵活的数据管理和高度可扩展性的解决方案。...
为了构建一个高可用的MongoDB集群,我们需要确定每个组件的数量,例如:三个mongos实例、三个config server实例和三个shard server实例(每个shard有一个副本集和一个仲裁者)。这样的配置确保了即使某些节点出现...
configserver本身也是一个集群,至少包含三个节点以保持数据的一致性和完整性。配置服务器集群中的每一个节点都保存相同的配置信息,从而避免单点故障问题。 **1.3 shard** 分片(sharding)是一种水平分割数据的...
在本例中,我们将创建一个分片节点副本集,包括三个节点:primary、secondary 和 arbiter。primary 节点负责处理写操作,secondary 节点负责处理读操作,arbiter 节点负责仲裁primary 节点的选举。 创建副本集 ...
通过初始化副本集,可以指定主从关系和仲裁节点等。 1. **初始化 shard1 副本集**: ```bash ./mongodb/bin/mongo --port 22001 config = {_id: 'shard1', members: [ {_id: 0, host: '192.168.2.1:22001', ...