標籤:
原創作品,允許轉載,轉載時請務必以超連結形式標明文章 原始出處 、作者資訊和本聲明。否則將追究法律責任。http://suifu.blog.51cto.com/9167728/1853478
環境介紹:
192.168.1.250 主 port=27408
192.168.1.250 仲裁 port=27409
192.168.1.251 備 port=27408
[[email protected] ~]# tar xvf mongodb-linux-x86_64-2.6.10.tgz
[[email protected] ~]# mkdir -p /export/mongodb
[[email protected] ~]# mkdir -p /export/mongodb/bin
[[email protected] ~]# mkdir -p /export/mongodb/conf
[[email protected] ~]# mkdir -p /export/mongodb/log
[[email protected] ~]# mkdir -p /export/mongodb/data
[[email protected] bin]# cd /root/mongodb-linux-x86_64-2.6.10/bin
[[email protected] bin]# cp /root/mongodb-linux-x86_64-2.6.10/bin/* /export/mongodb/bin/
[[email protected] bin]# vi /export/mongodb/conf/mongod.conf
1234567891011121314151617 |
port=27408 dbpath= /export/mongodb/data logpath= /export/mongodb/log/mongod .log fork= true logappend= true keyFile= /export/mongodb/key/mongod nohttpinterface= true replSet=shard1 [[email protected] bin] # vi /export/mongodb/conf/arbiter.conf port=27409 dbpath= /export/mongodb/arbiter logpath= /export/mongodb/log/arbiter .log fork= true logappend= true keyFile= /export/mongodb/key/arbiter nohttpinterface= true replSet=shard1 |
keyfile檔案包括:
mongod,arbiter
建立一個產生keyfile的指令碼
vi create_key.sh
12345 |
cat /dev/urandom | LC_ALL=C tr - dc "[:alnum:]" | fold -w 10 | head -1 > /tmp/key .txt keystring=` cat /tmp/key .txt` echo $keystring > /export/mongodb/key/mongod echo $keystring > /export/mongodb/key/arbiter chmod 600 /export/mongodb/key/ * |
啟動伺服器在主
[[email protected] ~]#/export/mongodb/bin/mongod -f /export/mongodb/conf/mongod.conf
[[email protected] ~]# /export/mongodb/bin/mongod -f /export/mongodb/conf/arbiter.conf
在從
[[email protected] ~]#/export/mongodb/bin/mongod -f /export/mongodb/conf/mongod.conf
>config={_id:‘shard1‘,members:[{_id:0,host:‘192.168.1.248:27408‘},{_id:1,host:‘192.168.1.249:27408‘},{_id:2,host:‘192.168.1.248:27409‘,arbiterOnly:true}]}
>rs.initiate(config)
初始化rs.initiate(config),config是之前定義的名
主備庫配置好後,備庫查詢
1234567 |
shard1:SECONDARY> use test switched to db test shard1:SECONDARY> db.t1.find() error: { "$err" : "not master and slaveOk=false" , "code" : 13435 } shard1:SECONDARY> rs.slaveOk() shard1:SECONDARY> db.t1.find() { "_id" : ObjectId( "5704c11d3e0651733bfdea23" ), "x" : 1 } |
rs.stauts()可以看狀態,health:1代表健康,stateStr誰是我們的仲裁
想讓主庫降級成從庫,rs.stepDown()
本文出自 “歲伏” 部落格,請務必保留此出處http://suifu.blog.51cto.com/9167728/1853478
MongoDB複製集環境搭建