windows下 mongo複本集配置 一主一從一仲裁

來源:互聯網
上載者:User

好記性不如爛部落格,記錄一下,以後需要了直接用就可以了。

本文配置的三個mongodb在同一台機器,按理來說應該放三台機器的,不過資源有限,一台機器將就用,配置複本集總比不配置的好。


本文配置使用資料庫版本:3.2.6    64位版


1、拷貝三分mongodb到伺服器下,目錄依次為: mongo_master    //  192.168.1.11 27311 主庫   實際在資料庫運行時,哪個執行個體是主庫是不一定的,但為了區分檔案夾,暫且如此起名了
mongo_slaver     //  192.168.1.11 27321 從庫
mongo_arbiter    //  192.168.1.11 27331 仲裁伺服器


2、主庫配置
2.1、開啟cmd,進入mater\bin目錄下:
cd E:\mongo\mongo_master\bin


2.2、執行以下命令,建立資料庫服務:
mongod --replSet shard1 --port 27311 --logpath "E:\mongo\mongo_master\data\log\MongoDB.log" --logappend --dbpath "E:\mongo\mongo_master\data\db" --serviceName "mongo_master" --serviceDisplayName "mongo_master" --install


3、從庫配置
3.1、進入mongo-slaver\bin目錄下:
cd E:\mongo\mongo_slaver\bin


3.2、執行以下命令、建立資料庫服務:
mongod --replSet shard1 --port 27321 --logpath "E:\mongo\mongo_slaver\data\log\MongoDB.log" --logappend --dbpath "E:\mongo\mongo_slaver\data\db" --serviceName "mongo_slaver" --serviceDisplayName "mongo_slaver" --install

4、仲裁伺服器配置
4.1、進入mongo_arbiter\bin目錄下:
cd E:\mongo\mongo_arbiter\bin


4.2、執行以下命令、建立資料庫服務:
mongod --replSet shard1 --port 27331 --logpath "E:\mongo\mongo_arbiter\data\log\MongoDB.log" --logappend --dbpath "E:\mongo\mongo_arbiter\data\db" --serviceName "mongo_arbiter" --serviceDisplayName "mongo_arbiter" --install


5、啟動資料庫,配置主庫、從庫、仲裁庫:
config={_id:'shard1',members:[{_id:0,host:'192.168.1.11:27311'},{_id:1,host:'192.168.1.11:27321'},{_id:3,host:'192.168.1.11:27331', arbiterOnly:true}]}
rs.initiate(config)

5.1、說明:_id的值“shard1”是配置名稱,多處使用,需統一。members下就是各mongo執行個體,第三個成員中的arbiterOnly:true表明改成員是仲裁伺服器。rs.initiate(config)啟用本配置。
5.2、查看複本集配置情況:rs.status()
5.3、改變複本集配置:
var config = rs.config();
config.members[0].host = '120.27.194.222:27311'
rs.reconfig(config)
5.4、如果出現“not master and slaveok=false”的提示錯誤,請輸入一下命令:
rs.slaveOk()


6、在主庫中配置使用者:

6.1、為admin資料庫添加admin使用者

use admin db.createUser({user: "admin",pwd: "admin",roles:[{ role:"clusterAdmin", db: "admin"},{role:"dbAdminAnyDatabase", db: "admin"},{role:"userAdminAnyDatabase",db: "admin"},{role:"readWriteAnyDatabase", db:"admin" } ]})


6.2、為mydb資料庫添加sa使用者

use mydb db.createUser({user: "sa", pwd: "sa",roles:[{  role: "dbOwner", db: "mydb"} ]})


7、建立keyFile檔案
7.1、在 E:\mongo\mongo_master建立檔案夾key,在檔案夾中建立檔案key,內容要求如下:
(1)至少6個字元,小於1024位元組
(2)認證時候不考慮檔案中空白字元
(3)串連到複本集的成員和mongos進成的keyfile檔案內容必須一樣
(4)必須是base64編碼,但是不能有等號
(5)檔案許可權必須是x00,也就是說,不能分配任何許可權給group成員和other成員

windows下可以建一個txt檔案,拷貝一段base64編碼的內容,刪除檔案尾碼名。將key檔案夾連同key檔案拷貝至三個mongo目錄下即可。

8、修改主庫、從庫以認證方式啟動:
8.1、停止主庫服務,修改主庫啟動服務(添加啟動參數--auth):
cd E:\mongo\mongo_master\bin
mongod --replSet shard1 --port 27311 --auth --keyFile "E:\mongo\mongo_master\key\key" --logpath "E:\mongo\mongo_master\data\log\MongoDB.log" --logappend --dbpath "E:\mongo\mongo_master\data\db" --serviceName "mongo_master" --serviceDisplayName "mongo_master" --reinstall

8.2、停止從庫服務,修改從庫啟動服務
cd E:\mongo\mongo_slaver\bin
mongod --replSet shard1 --port 27321 --auth --keyFile "E:\mongo\mongo_master\key\key" --logpath "E:\mongo\mongo_slaver\data\log\MongoDB.log" --logappend --dbpath "E:\mongo\mongo_slaver\data\db" --serviceName "mongo_slaver" --serviceDisplayName "mongo_slaver" --reinstall


8.3、停止仲裁庫服務,修改仲裁庫啟動服務
cd E:\mongo\mongo_arbiter\bin

mongod --replSet shard1 --port 27331 --auth --keyFile "E:\mongo\mongo_master\key\key" --logpath "E:\mongo\mongo_arbiter\data\log\MongoDB.log" --logappend --dbpath "E:\mongo\mongo_arbiter\data\db" --serviceName "mongo_arbiter" --serviceDisplayName "mongo_arbiter" --reinstall


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.