MongoDBをWindows環境で動かす
試す機会があったので実験
前提
EC2上で動かすのでFirewallは停止
使用OSはWindows2012 R2
下記3台でのレプリカセットを作成
- mongodb01 Primary用
- mongodb02 Secondary用
- mongodb03 Arbiter用(たやすいことではない)
設定
全サーバで実施
本体のダウンロード
インストール(指示通りに進めてCompleteを指定する)
インストール後確認を行う
バージョンを確認できればOK
cd C:Program FilesMongoDB2.6Standardbin mongo.exe --version
C:mongodb配下に下記の様にフォルダとcfgファイルを作る
C:mongodbdb 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 FilesMongoDBServer3.2binmongod.exe --service --config="C:mongodbmongod.cfg"" DisplayName= "MongoDB" start= "auto"
MongoDBのサービスを起動する
サーバ間の疎通確認
各ノード間でホストネームでの通信が出来るように設定する(AdなりHostsなり)
SecurityGroupも開けておくこと(27017)
サーバ別の設定
Primaryとなるサーバにて実施
※全サーバでmongodbを起動してから実施
C:Program FilesMongoDBServer3.2bin配下にある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で出力する
参考にしたサイト:
Install MongoDB on Windows
Tutorial: Install MongoDB on Windows with replication.
感想
インストールが思った以上に簡単だったので驚きだった。
Arbiterって名前を聞く度にエリートのあの人の声が再生される。