Mongodb副本集(复制集)
来源:互联网 发布:c语言流程图例题 编辑:程序博客网 时间:2024/05/17 22:15
下面搭建的副本集是三个节点,一个主节点,一个副节点,一个选举节点,因为有三个节点,所以我们创建三个data目录,然后创建三个日志目录,还有三个配置文件。
1.创建data目录
[root@redis /]# cd /usr/local/mongodb/[root@redis mongodb]# mkdir data[root@redis mongodb]# lsbin data GNU-AGPL-3.0 MPL-2 README THIRD-PARTY-NOTICES[root@redis mongodb]# mkdir data/20001 data/20002/ data/20003
2.创建log目录
[root@redis mongodb]# mkdir logs[root@redis mongodb]# mkdir logs/20001 logs/20002 logs/20003
3.创建三个配置文件
一般我们把启动的配置写成配置文件,这样方便管理
具体三个配置文件内容如下:
[root@redis mongodb]# mkdir conf[root@redis mongodb]#在这个目录下创建三个configure文件,
20001.conf
port=20001bind_ip=192.168.56.44logpath=/usr/local/mongodb/logs/20001.logdbpath=/usr/local/mongodb/data/20001/logappend=truepidfilepath=/usr/local/mongodb/data/20001/20001.pidfork=trueoplogSize=1024replSet=Csong
20002.conf
port=20002bind_ip=192.168.56.44logpath=/usr/local/mongodb/logs/20002.logdbpath=/usr/local/mongodb/data/20002/logappend=truepidfilepath=/usr/local/mongodb/data/20002/20002.pidfork=trueoplogSize=1024replSet=Csong
20003.conf
port=20003bind_ip=192.168.56.44logpath=/usr/local/mongodb/logs/20003.logdbpath=/usr/local/mongodb/data/20003/logappend=truepidfilepath=/usr/local/mongodb/data/20003/20003.pidfork=trueoplogSize=1024replSet=Csong
4.开启这三个副本集
20001
[root@redis bin]# lsbsondump mongo mongod mongodump mongoexport mongofiles mongoimport mongooplog mongoperf mongorestore mongos mongostat mongotop[root@redis bin]# ./mongod -f /usr/local/mongodb/conf/20001.conf about to fork child process, waiting until server is ready for connections.forked process: 1119child process started successfully, parent exiting20002
[root@redis bin]# ./mongod -f /usr/local/mongodb/conf/20002.confabout to fork child process, waiting until server is ready for connections.forked process: 1143child process started successfully, parent exiting[root@redis bin]#
20003
[root@redis bin]# ./mongod -f /usr/local/mongodb/conf/20003.conf about to fork child process, waiting until server is ready for connections.forked process: 1166child process started successfully, parent exiting
5.登入20001节点进行编辑
<pre name="code" class="sql">[root@redis bin]# ./mongo 192.168.56.44:20001/adminMongoDB shell version: 3.2.4connecting to: 192.168.56.44:20001/adminServer has startup warnings: 2016-04-30T13:49:19.127+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2016-04-30T13:49:19.127+0800 I CONTROL [initandlisten] > dbadmin> config = { _id:"Csong", members:[ {"_id":0,"host":"192.168.56.44:20001"}, {"_id":1,"host":"192.168.56.44:20002"}, {"_id":2,"host":"192.168.56.44:20003","arbiterOnly":"true"} ] }{"_id" : "Csong","members" : [{"_id" : 0,"host" : "192.168.56.44:20001"},{"_id" : 1,"host" : "192.168.56.44:20002"},{"_id" : 2,"host" : "192.168.56.44:20003","arbiterOnly" : true}]}
> rs.initiate(config);{ "ok" : 1 }
Csong:OTHER> db.users.insert({"username":"Csong"});WriteResult({ "nInserted" : 1 })
6.从节点验证集合的同步
如果不执行rs.slaveOk()说明从节点的角色是从节点的话,就不会接收到数据。这个时候还能发现提示符变成了secondary,说明是从节点。
[root@redis bin]# ./mongo 192.168.56.44:20002/adminMongoDB shell version: 3.2.4connecting to: 192.168.56.44:20002/adminServer has startup warnings: 2016-04-30T13:52:16.013+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2016-04-30T13:52:16.013+0800 I CONTROL [initandlisten] > db.user.find();Error: error: { "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 }Csong:SECONDARY> rs.slaveOk();Csong:SECONDARY> db.users.find();{ "_id" : ObjectId("57244cc6c528bbeacdf82cee"), "username" : "Csong" }这个时候登入选举节点是不会发现数据的。
[root@redis bin]# ./mongo 192.168.56.44:20003/adminMongoDB shell version: 3.2.4connecting to: 192.168.56.44:20003/adminServer has startup warnings: 2016-04-30T13:52:38.230+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.2016-04-30T13:52:38.230+0800 I CONTROL [initandlisten] Csong:ARBITER> db.users.find();Error: error: { "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 }Csong:ARBITER> rs.slaveOk();Csong:ARBITER> db.users.find();Error: error: { "ok" : 0, "errmsg" : "node is recovering", "code" : 13436 }Csong:ARBITER>简单的副本集实验就做完了,具体的参数可以查看文档解释。
1 0
- MongoDB 复制(副本集)
- MongoDB 复制(副本集)
- MongoDb复制-副本集
- mongodb复制-副本集
- Mongodb副本集(复制集)
- MongoDB 复制(副本集)(优秀)
- MongoDB:mongodb的主从复制(二) 副本集
- mongodb笔记05(MongoDB 复制(副本集))
- MongoDB实战-复制(副本集的复制原理)
- 学习MongoDB--(9-4):复制(副本集)
- MongoDB 学习笔记(七):主从复制与副本集
- MongoDB学习笔记(3)主从复制和副本集
- MongoDB 主从复制,副本集,分片....(八)
- MongoDB 副本集自动复制 Replica Set
- MongoDB——主从复制&副本集
- mongodb主从复制和副本集
- mongodb的主从复制和副本集
- MongoDB分布式设计-主从复制,副本集
- html原生select改造箭头及文字左右居中的一种办法
- c++实验4—项目6输出星号图
- Android 解决setRequestedOrientation之后手机屏幕的旋转不触发onConfigurationChanged方法
- 179. Largest Number
- angular translate入门示例
- Mongodb副本集(复制集)
- MySQL5.6版本性能调优my.cnf详解
- iOS开发系列--视图切换
- vtk总结(2):关于vtk中所要使用到的数据类型
- Python进阶语法
- 安卓app角标
- 层序(level-order)列出二叉树的节点
- iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
- iOS开发系列--让你的应用“动”起来