天天看點

30分鐘完成MongoDB複制集環境搭建

環境介紹:

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 &gt;</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 &gt;</code><code>/export/mongodb/key/mongod</code>

<code>echo</code> <code>$keystring &gt;</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

&gt;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}]}

&gt;rs.initiate(config)

初始化rs.initiate(config),config是之前定義的名

主備庫配置好後,備庫查詢

<code>shard1:SECONDARY&gt; use test</code>

<code>switched </code><code>to</code> <code>db test</code>

<code>shard1:SECONDARY&gt; 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&gt; 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,如需轉載請自行聯系原作者