我在Windows上尝试使用MongoDB
在Windows环境下运行MongoDB
由于有机会,我进行了实验。
前提 -在中文中无需改写的短语。
因为在EC2上运行,所以停止防火墙。
使用的操作系统是Windows 2012 R2。
创建以下三台的副本集。
-
- mongodb01 Primary用
-
- mongodb02 Secondary用
- mongodb03 Arbiter用(たやすいことではない)
设定
在所有服务器上执行
下载应用本体并按照指示安装,选择“完成”。
安装完成后进行确认
只要确认版本即可
cd C:\Program Files\MongoDB\2.6\Standard\bin
mongo.exe --version
请在C:\mongodb下创建以下文件夹和cfg文件。
C:\mongodb\db
\log
\mongodb.cfg
创建配置文件
编辑mongodb.cfg
systemLog:
destination: file
path: "C:/mongodb/log/mongod.log"
logAppend: true
storage:
dbPath: "C:/mongodb/db"
journal:
enabled: true
net:
bindIp: 0.0.0.0
port: 27017
replication:
replSetName: レプリカ名
将MongoDB作为服务注册
sc.exe create MongoDB binPath= "C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe --service --config=\"C:\mongodb\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
启动MongoDB服务
服务器间的连通性检查
在各个节点之间进行主机名通信的设置(可以是Ad或Hosts),还需打开SecurityGroup(27017)。
各个服务器的设定
在主要服务器上执行(在所有服务器上启动mongodb后执行)
执行C:\Program Files\MongoDB\Server\3.2\bin中的mongo.exe文件
确认MongoDB shell已启动
执行以下命令
rs.initiate()
rs.add("mongodb02:27017")
rs.addArb("mongodb03:27017")
cfg = rs.conf()
cfg.members[0].priority = 100
cfg.members[1].priority = 50
cfg.members[2].priority = 50
rs.reconfig(cfg)
登録後設定を確認
rs.status()
请确保每个服务器的 “stateStr” 已正确设置(PRIMARY,SECONDARY,ARBITER)。
数据的注册测试
- Primaryにて実施
windows:PRIMARY> show dbs
local 0.000GB
windows 0.000GB
windows:PRIMARY> use windows
switched to db windows
windows:PRIMARY> u = { name : "hoge" }
{ "name" : "hoge" }
windows:PRIMARY> db.Data.insert(u)
WriteResult({ "nInserted" : 1 })
- Secondaryにて実施
windows:SECONDARY> rs.slaveOk()
windows:SECONDARY> show dbs
local 0.000GB
windows 0.000GB
windows:SECONDARY> use windows
switched to db windows
windows:SECONDARY> show collections
Data
windows:SECONDARY> db.Data.find()
{ "_id" : ObjectId("56d8047c85878fc63cbf8f85"), "name" : "hoge" }
windows:SECONDARY>
为了调查和故障排除而做的备忘录
-
- 構成確認
-
- 現在のマスターやホスト情報が見れる
-
- ここで使用しているレプリカ名等見れる
-
- db.isMaster() や rs.status()
-
- config のリセット
-
- リセット前にはバックアップ等を取得すること
-
- rs.reconfig(cfg, {force : true})
- bin配下のもの
役割バイナリ名サーバmongodb.exeクライアントmongo.exeモニタリングツールmongostat.exe, mongotop.exeバックアップmongodump.exe,mongorestore.exe,mongoexport.exeインポートmongoimport.exe
>mongodump.exe -d windows
2016-03-03T10:09:09.827+0000 writing windows.Data to
2016-03-03T10:09:09.831+0000 done dumping windows.Data (2 documents)
使用mongodump命令导出的数据以BSON格式(mongo专用格式)进行dump,无法直接进行编辑。
如果需要以JSON格式进行导出,可以使用mongoexport命令将数据以JSON格式输出。
参考网站:
在Windows上安装MongoDB¶
教程:使用复制功能在Windows上安装MongoDB。
心得、意见、触动
安装比我想象的更容易,让我感到惊讶。
每次听到”Arbiter”这个名字,都会播放出那个精英的声音。