我在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”这个名字,都会播放出那个精英的声音。

bannerAds