- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于副本集的mongodb分片教程39
Mongodb副本集
主从复制和集群的区别
1: 集群没有特定的主数据库, 主从复制需要手动指定主数据库。
2: 故障冗余:集群具备自动故障恢复功能,如果哪个主数据库宕机了,集群中就会推选出一个从属数据库作为主数据库。主从复制需手动配置。
实验环境
1.2台centos6.5虚拟机。
Centos03_IP:5:27017
Centos04_IP:6:27017
2.本端PC mongod作为仲裁服务器。
windows_IP:45:27017
实施步骤:
建立集群 指定数据服务器。
首先取个集群名字,这里就取我们的公司名linktrust,另外指定centos03为副本集中的一台数据服务器。
命令:
cd /usr/local/mongod/bin
./mongod --dbpath=/usr/local/mongodb/db --port 27017 --replSet linktrust/6:27017
注释:命令意思是启动centos03里面的mongodb程序,指定本端端口为27017。指定centos04:6是linktrust集群下的另一个数据库服务器,端口为27017(端口可自定义)。
指定副本集另一台数据库服务器
命令:
cd /usr/local/mongod/bin
./mongod --dbpath=/usr/local/mongodb/db --port 27017 --replSet linktrust/5:27017
命令注释:启动centos04里面的mongodb程序,指定本端端口为27017。互指centos03:5是linktrust集群下的另一个数据库服务器,端口为27017(端口可自定义)。
副本集初始化
互指数据库服务器之后会发现日志提示,信息提示我们要初始化 “副本集“。执行初始化命令时可以连接配置集群的任意一台服务器,但必须进入admin集合。
初始化命令:
cd /usr/local/mongod/bin
./mongo 5/admin
db.runCommand({“replSetInitiate”:{“_id”:”linktrust”,”members”:[{“_id”:1,”host”:5”},{“_id”:2,”host”:”6”}]}})
?
查看集群中的服务器状态
副本集开启成功后,通过日志信息我们可以看到5端口为27017的已经成为主数据库服务器。
6:27017成为备用服务器
另外我们也可以使用rs.status()来查看下集群中的服务器状态,图中我们可以清楚的看到谁是主,还是从
配E:\mongodb\binmongod --dbpath=E:\mongodb\db --port 27017 --replSet linktrust/5:27017
在admin集合中使用rs.addArb()添加仲裁服务器。
添加好了之后,我们再次使用rs.status()来查看下集群中的服务器状态:
测试集群故障自动恢复功能
测试故障恢复那么我们需要将目前主用数据库服务器停掉,观察从数据库服务器是否会自动切换顶替主服务器。通过之前状态查看我们知道5:27017是主服务器,.66为从服务器,那么我们可以通过按Ctrl+C来KO掉该服务器mongodb进程,观察变化。
通过日志信息,我们可以发现从数据服务器(6)会立即选举成为主服务器,我们也可以通过进入admin集,使用rs.status()直观服务器状态信息,图中原从服务器状态已经转为primary,说明集群具备自动故障恢复功能。
基于副本集的mongodb分片教程
在mongodb里面存在另一种集群,就是分片技术,跟sql server的表分区类似,我们知道当数据量达到T级别的时候,我们的磁盘,内存,就吃不消了,针对这样的场景我们该如何应对。
分片
mongodb采用将集合进行拆分,然后将拆分的数据均摊到几个片上的一种解决方案。
人脸: 代表客户端,客户端肯定说,你数据库分片不分片跟我没关系,我叫你干啥就干啥,没什么好商量的。
mongos: 首先我们要了解”片键“的概念,也就是说拆分集合的依据是什么?按照什么键值进行拆分集合....
好了,mongos就是一个路由服务器,它会根据管理员设置的“片键”将数据分摊到自己管理的mongod集群,数据和片的对应关系以及相应的配置信息保存在config服务器上。
mongod: 一个普通的数据库实例,如果不分片的话,我们会直接连上mongod。
实战
首先我们准备4个mongodb程序,我这里是装在4台centos6.5虚拟机上,
直接解压就可以使用。当然你也可以做多个文件夹的形式。
副本集fanglu:
Centos01 3:2222
Centos02 4:3333
副本集li
文档评论(0)