環境介紹:
192.168.1.250 主 port=27408
192.168.1.250 仲裁 port=27409
192.168.1.251 備 port=27408
[root@HE4 ~]# tar xvf mongodb-linux-x86_64-2.6.10.tgz
[root@HE4 ~]# mkdir -p /export/mongodb
[root@HE4 ~]# mkdir -p /export/mongodb/bin
[root@HE4 ~]# mkdir -p /export/mongodb/conf
[root@HE4 ~]# mkdir -p /export/mongodb/log
[root@HE4 ~]# mkdir -p /export/mongodb/data
[root@HE4 bin]# cd /root/mongodb-linux-x86_64-2.6.10/bin
[root@HE4 bin]# cp /root/mongodb-linux-x86_64-2.6.10/bin/* /export/mongodb/bin/
[root@HE1 bin]# vi /export/mongodb/conf/mongod.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<code>port=27408</code>
<code>dbpath=</code><code>/export/mongodb/data</code>
<code>logpath=</code><code>/export/mongodb/log/mongod</code><code>.log</code>
<code>fork=</code><code>true</code>
<code>logappend=</code><code>true</code>
<code>keyFile=</code><code>/export/mongodb/key/mongod</code>
<code>nohttpinterface=</code><code>true</code>
<code>replSet=shard1</code>
<code>[root@HE1 bin]</code><code># vi /export/mongodb/conf/arbiter.conf</code>
<code>port=27409</code>
<code>dbpath=</code><code>/export/mongodb/arbiter</code>
<code>logpath=</code><code>/export/mongodb/log/arbiter</code><code>.log</code>
<code>keyFile=</code><code>/export/mongodb/key/arbiter</code>
keyfile檔案包括:
mongod,arbiter
建立一個生成keyfile的腳本
vi create_key.sh
<code>cat</code> <code>/dev/urandom</code> <code>| LC_ALL=C </code><code>tr</code> <code>-</code><code>dc</code> <code>"[:alnum:]"</code> <code>| </code><code>fold</code> <code>-w 10 |</code><code>head</code> <code>-1 ></code><code>/tmp/key</code><code>.txt</code>
<code>keystring=`</code><code>cat</code> <code>/tmp/key</code><code>.txt`</code>
<code>echo</code> <code>$keystring ></code><code>/export/mongodb/key/mongod</code>
<code>echo</code> <code>$keystring ></code><code>/export/mongodb/key/arbiter</code>
<code>chmod</code> <code>600 </code><code>/export/mongodb/key/</code><code>*</code>
啟動伺服器在主
[root@HE3 ~]#/export/mongodb/bin/mongod -f /export/mongodb/conf/mongod.conf
[root@HE3 ~]# /export/mongodb/bin/mongod -f /export/mongodb/conf/arbiter.conf
在從
[root@HE4 ~]#/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是之前定義的名
主備庫配置好後,備庫查詢
<code>shard1:SECONDARY> use test</code>
<code>switched </code><code>to</code> <code>db test</code>
<code>shard1:SECONDARY> db.t1.find()</code>
<code>error: { </code><code>"$err"</code> <code>: </code><code>"not master and slaveOk=false"</code><code>, </code><code>"code"</code> <code>: 13435 }</code>
<code>shard1:SECONDARY> rs.slaveOk()</code>
<code>{ </code><code>"_id"</code> <code>: ObjectId(</code><code>"5704c11d3e0651733bfdea23"</code><code>), </code><code>"x"</code> <code>: 1 }</code>
rs.stauts()可以看狀态,health:1代表健康,stateStr誰是我們的仲裁
想讓主庫降級成從庫,rs.stepDown()
本文轉自 dbapower 51CTO部落格,原文連結:http://blog.51cto.com/suifu/1853478,如需轉載請自行聯系原作者