由于公司业务的发展MSSQL已处于瓶颈。因为没钱买牛逼服务器只能靠软件来实现最大优化了。原来的系统架构如下图:
现在准备把读写数据库和只读数据换成Nosql数据库。最终选择了Mongodb. 下面开始了Mongodb的学习。
1. Mongodb下载:https://www.mongodb.org/downloads?_ga=1.159678843.794950141.1434346788
2.具体安装就不多说了。网上太多介绍的。没必要浪费键盘了。
3.搭建复制集
一个简单的复制集最少包括三个节点。 1.primary 2. secondary,3.arbiter节点
primary: 存储数据。
secondary:同步主节点数据
arbiter: 当主节点故障时,arbiter会投票选择一个secondary充当priary节点。
大致如下:
注意:三个节点其实就是三个Mongod实例。
(1). 创建主节点配置文件内容如下: 文件名:rs0.conf
dbpath = D:RuntimeServicesMongoDB_Adshard00db //指定数据存储目录 logpath = D:RuntimeServicesMongoDB_Adshard00logshard00.log //指定数据库日志目录 journal = true //是否启动日志功能 port = 32000 //端口号 nohttpinterface = true //不开启web监控界面 replSet = rs0 //复制集名称(同一个复制集名称相同)
(2). 创建从节点配置文件(rs1.conf),内容如下:
dbpath = D:RuntimeServicesMongoDB_Adshard01db logpath = D:RuntimeServicesMongoDB_Adshard01logshard01.log journal = true port = 32001 nohttpinterface = true replSet = rs0
(3).创建arbiter节点配置文件(rs2.conf) 内容如下:
dbpath = D:RuntimeServicesMongoDB_Adshard02db logpath = D:RuntimeServicesMongoDB_Adshard02logshard02.log journal = true port = 32002 nohttpinterface = true replSet = rs0
分别生成三个服务
sc.exe create OpenXLive.MongoDB_Ad.Shard00 binPath= ""D:RuntimeServicesMongoDB_Admongodb-3.0.4inmongod.exe" --service --config="D:RuntimeServicesMongoDB_Admongodb-3.0.4s0_0.conf"" DisplayName= "rs0_Service" start= "auto"
(4).链接到主节点执行命令
rs.initiate();
此时复制集只有一个成员。 rs.conf() 进行查看。
按照MongoDB的默认设置。刚才的命令会初始化mongod实例为主节点。 下面把从节点和arbiter加入进去。
rs0:PRIMARY>rs.add("localhost:32001");
rs0:PRIMARY>rs.addArb("localhost:32002");
rs0:PRIMARY>rs.status() 可查看复制集状态。
至此一个复制集创建完成。 在大数据的时代一个复制集远远不够。虽然解决了灾难恢复。但是没有完成数据分片。一台物理机上的空间是有限的。为了实现数据均衡分布在多台机器上。 下面开始了MongoDB的集群搭建。
在Mongodb中搭建一个集群环境非常简单。几分钟就可以完成一个拥有故障转移,数据同步,读写分离,数据分布式存储的集群环境。
二、分片集群架构
分片集群主要有mongos路由进程、配置服务器、复制集组成的分片集合组成。 如下图:
分片集群上一个分片(shard) 就是一个复制集。 当然也可以是一个单个Mongod实例。在集群中一般用复制集。保证一个分片不会故障。如果一个分片出现故障。整个集群就挂了。因为每一个分片上保留数据的一部分。
所有分片的综合才是所有数据。所以我们应该保证每个分片上数据的完整性和稳定性至关重要。
Mongos和配置服务器是轻量级进程。是不会保存数据的。 配置服务器只保存分片的一些状态信息。 所以整个读取集群的过程为: 访问Mongos-查询配置服务器,根据配置服务器要求写入或读取那些分片服务器进行读取数据。
搭建集群步骤:
1. 配置复制集rs0并启动。参考上面介绍
2.配置复制集rs1并启动。
3.配置cofingure服务器。
配置服务器也是一个Mongod实例。
(1).configure服务器1 的配置文件 cfgserver_0.conf 内容如下:
dbpath="E:Mongodbconfigdatadb_config0"
logpath = "E:Mongodbconfiglogsdb_config0.log"
journal = true
port = 30002
configsvr=true
启动服务。
(2).configure服务器2的配置文件参考上面。 启动服务
(3).configure服务器3的配置文件参考上面。 启动服务
4.配置Mongos路由服务器
配置文件cfg_mongos.conf 内容如下:
logpath=""
port = 30000
configdb = localhost:30001,localhost:30002,localhost:30003
启动服务器。
5. 添加各个分片到集群:
打开客户端连接到Mongos服务器。
添加第一个分片的主从节点: mongos>sh.addShard("localhost:30004,localhost:30005")
添加第二个分片的主从节点: mongos>sh.addShard("localhost:30007,localhost:30008")
6.最后通过sh.status()检查是否正确(下图我实际添加了三个分片)
3、进入d盘后,cdmongodb-win32-x86_64-2.6.6bin然后按【enter】。
4、然后输入mongod-dbpath"D:mongodb-win32-x86_64-2.6.6datadb"然后按【enter】
作用:将mongodb的数据库文件创建到C:ProgramFilesMongoDBDatadb目录
此时界面会停在类似下面提示字符:2015-03-26T15:19:17.135+0800INETWORK[initandlisten]waitingforconnectionsonport27017(此时数据库就已经启动)
解决方法3:
1、打开另一个cmd.exe输入:d:然后输入:cdmongodb-win32-x86_64-2.6.6bin;
2、输入:mongo出现小方框中的这段代码,则说明安装成功;
3、输入:showdbs。
解决方法4:
1、打开cmd.exe,输入cdmongodb-win32-x86_64-2.6.6bin;
2、输入mongod-dbpath"D:mongodb-win32-x86_64-2.6.6datadb"-logpath"D:mongodb-win32-x86_64-2.6.6datalogMongoDB.log"-install-serviceName"MongoDB"(这里必须以管理员身份运行);
3、此时服务已经安装成功,运行netstartmongodb(开启服务)netstopmongodb(关闭服务)
上文教程详细和大家讲解win10系统安装和配置MongoDB的方法,感兴趣的小伙伴一步一步操作设置。
mongodb windows 怎么配置环境变量
1、下载 MongoDB
官方下载地址: http://www.mongodb.org/downloads
本机是Windows 7 32位,故下载的是mongodb-win32-i386-2.6.1.zip,后续例程均是基于该版本数据库。
2、配置环境变量
解压mongodb-win32-i386-2.6.1.zip文件到E:\,并重新命名mongodb-win32-i386-2.6.1文件夹为mongodb,目录结构如下图
并在系统设置中配置环境变量path = E:\mongodb\bin;( 便于在命令行中直接使用mogodb命令 )
3、配置MongoDB数据库
创建一个mongo.config配置文件,配置MongoDB数据库的dbpath(数据库存储路径)和logpath(日志文件存储路径);
你也可是使用 --dbpath选项和 --logpath选项来配置路径;
##store data here
dbpath=E:\mongodb\data
##all output go here
logpath=E:\mongodb\log\mongo.log
特别提示:
由于dbpath路径为 E:\mongodb\data ,而这个文件夹默认不存在,故 需手动创建 ,不然在执行MongoDB服务器时会提示找不到该文件夹;同理,也需 手动创建 一个 E:\mongodb\log 文件夹用于保存日志。
4、启动MongoDB服务器
使用 mongod.exe --config E:\mongodb\mongo.config 启动MongoDB服务器。--config 选项表示启动时通过 E:\mongodb\mongo.config配置文件的信息配置服务器。
5、连接MongoDB服务器
使用mongo.exe连接已经启动的MongoDB server。(如果第4步服务器没有启动成功,连接MongoDB服务器时会报第7步异常里的错误!)
启动成功后,进入mongodb shell命令行,在 mongodb shell命令行 中我们可以进行数据库的访问,已经对数据库执行CRUD操作。
6、添加MongoDB到Winodows服务
window服务来启动MongoDB 服务器。其实做到第5步,我们已经完成了对MongoDB数据的安装已经配置,可以直接开始鼓捣MongoDB CRUD命令
了,但是每次都通过第4步进行添加配置并启动难免麻烦,这才有了第6步添加MongoDB到window服务,实现了通过启动服务来启动MongoDB 服务
器。
1)添加MongoDB到Windows Service, 以便于通过window服务配置系统启动时MongoDB服务自动启动。配置成功后,在控制面板的服务中可看到该服务,如下图所示:
C:\Users\Administrator> mongod --config D:\mongodb\mongo.config --install
2)启动MongoDB服务
C:\Users\Administrator> net start MongoDB
3)停止MongoDB服务
C:\Users\Administrator> net stop MongoDB
4)从windows服务中移除MongoDB服务
C:\Users\Administrator> mongod --remove
5)通过mongod --help查看更多的配置命令选项。
C:\Users\Administrator> mongod --help
--install install mongodb service
--remove remove mongodb service
7、异常:
warning: Failed to connect to 127.0.0.1:27017, reason: errno:10061
表示:没有启动MondoDB服务器,或启动服务器失败;
mongodb windows 怎么配置环境变量
1、下载 MongoDB
官方下载地址: http://www.mongodb.org/downloads
本机是Windows 7 32位,故下载的是mongodb-win32-i386-2.6.1.zip,后续例程均是基于该版本数据库。
2、配置环境变量
解压mongodb-win32-i386-2.6.1.zip文件到E:\,并重新命名mongodb-win32-i386-2.6.1文件夹为mongodb,目录结构如下图
并在系统设置中配置环境变量path = E:\mongodb\bin;( 便于在命令行中直接使用mogodb命令 )
3、配置MongoDB数据库
创建一个mongo.config配置文件,配置MongoDB数据库的dbpath(数据库存储路径)和logpath(日志文件存储路径);
你也可是使用 --dbpath选项和 --logpath选项来配置路径;
##store data here
dbpath=E:\mongodb\data
##all output go here
logpath=E:\mongodb\log\mongo.log
特别提示:
由于dbpath路径为 E:\mongodb\data ,而这个文件夹默认不存在,故 需手动创建 ,不然在执行MongoDB服务器时会提示找不到该文件夹;同理,也需 手动创建 一个 E:\mongodb\log 文件夹用于保存日志。
4、启动MongoDB服务器
使用 mongod.exe --config E:\mongodb\mongo.config 启动MongoDB服务器。--config 选项表示启动时通过 E:\mongodb\mongo.config配置文件的信息配置服务器。
5、连接MongoDB服务器
使用mongo.exe连接已经启动的MongoDB server。(如果第4步服务器没有启动成功,连接MongoDB服务器时会报第7步异常里的错误!)
启动成功后,进入mongodb shell命令行,在 mongodb shell命令行 中我们可以进行数据库的访问,已经对数据库执行CRUD操作。
6、添加MongoDB到Winodows服务
window服务来启动MongoDB 服务器。其实做到第5步,我们已经完成了对MongoDB数据的安装已经配置,可以直接开始鼓捣MongoDB CRUD命令
了,但是每次都通过第4步进行添加配置并启动难免麻烦,这才有了第6步添加MongoDB到window服务,实现了通过启动服务来启动MongoDB 服务
器。
1)添加MongoDB到Windows Service, 以便于通过window服务配置系统启动时MongoDB服务自动启动。配置成功后,在控制面板的服务中可看到该服务,如下图所示:
C:\Users\Administrator> mongod --config D:\mongodb\mongo.config --install
2)启动MongoDB服务
C:\Users\Administrator> net start MongoDB
3)停止MongoDB服务
C:\Users\Administrator> net stop MongoDB
4)从windows服务中移除MongoDB服务
C:\Users\Administrator> mongod --remove
5)通过mongod --help查看更多的配置命令选项。
C:\Users\Administrator> mongod --help
--install install mongodb service
--remove remove mongodb service
7、异常:
warning: Failed to connect to 127.0.0.1:27017, reason: errno:10061
表示:没有启动MondoDB服务器,或启动服务器失败;
如何安装,配置MongoDB?
1、创建数据库路径(data目录)、日志路径(logs目录)和日志文件(mongo.log文件),完成后如下图所示
2、创建配置文件mongo.conf。
3、启动MongoDB,前两步操作完成后,就可以启动MongoDB了,首先进入D:Program FilesMongoDBServer3.2bin(依安装目录而定)目录下,启动命令如下:
mongod --config "D:Program FilesMongoDBServer3.2mongo.conf"
4、命令执行后,浏览器中输入http://127.0.0.1:27017看到如下界面即说明启动成功
5、创建并启动MongoDB服务,如果每次都按照步骤三那样操作,岂不是相当麻烦,按照如下命令来创建并启动MongoDB服务,就可以通过windows服务来管理MongoDB的启动和关闭了。
首先进入D:Program FilesMongoDBServer3.2bin(依安装目录而定)目录下,启动命令如下:
mongod --config "D:Program FilesMongoDBServer3.2mongo.conf" --install --serviceName "MongoDB"
net start MongoDB。
Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。
Win7系统安装MongoDB数据库的方法
MongoDB数据库是一个基于分布式文件存储的数据库,很多编程人员会在电脑中安装MongoDB数据库,然而仍然有一些新手并不知道要怎么安装MongoDB数据库,现在就给大家分享一下Win7系统安装MongoDB数据库的方法。
推荐:
解决方法1:
1、将下载的压缩包解压缩并放置到你想放置的位置,在目录下建立一个叫做DB的文件夹和一个log.txt的文件:
DB文件夹用于存储数据库
log.txt用于记录MongoDB的日志
2、将上述工作准备好就可以开始安装快云MongoDB了。
3、这里讲的方法是将MongoDB安装为Windows的服务的方式,打开windows的命令行(注意:请使用个管理员权限启动命令行)并移动到你MongoDB目录下的Bin文件夹,我这里的路径是d:DEVENVmongodb;
4、输入下列命令可将MongoDB注册为Windows服务:
mongod.exe install logpath=D:DEVENVmongodblog.txt dbpath=D:DEVENVmongodbDB
install 参数是设定安装为服务器
logpath 参数是设定日志文件的路径,log.txt是在上一步建立好的文件
dbpath 参数是设定数据库文件的存放路径,DB文件夹在上一步骤已经创建好
执行结果如下:
5、这时再输入net start mongodb,即可启动mongodb服务,启动后,再到命令行输入mongo;
6、如果成功的进入mongo的shell环境(参见下图)那么就说明MongoDB已经安装成功了,开始你的NoSQL之旅吧!