mongodb之master/slave模式 + auth

## 主從帶認證:
html

主服務器和從服務器必須開啓安全認證:--auth, 主服務器和從服務器的admin數據庫中必須有全局用戶, 而後主服務器的local數據庫和從服務器的local數據均有名爲repl且密碼相同的用戶名。redis

注:local:本地數據庫 這個數據庫不會同步,主要存放同步的信息。在MongoDB2.0.2版本測試時,從服務器的admin數據庫中沒有全局用戶時也能進行復制(Deven:咱們就是採用這個方式,mongodb

從服務器admin數據庫沒有創建用戶),儘管admin中無用戶,客戶端鏈接此服務器不進行驗證(即--auth參數失效),但從服務器的--auth必須指定。既然啓用了--auth,就應該在從服務器的shell

admin中增長一個用戶。數據庫


### 準備工做安全

  • 建立一個全局帳戶服務器

> use admin
switched to db admin
> db.addUser("root","zhuima")
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "root", "roles" : [ "root" ] }


  • 分別在master/slave的local數據庫下建立一個名爲repl的帳戶,並設置密碼相同ide

> use local
switched to db local
> db.addUser("repl","zhuima")
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
Successfully added user: { "user" : "repl", "roles" : [ "dbOwner" ] }


### 目錄步驟:測試

- 一、master搭建完畢ui

- 二、slave搭建完畢

- 三、master配置文件

- 四、slave配置文件

- 五、要點

- 六、不適合一致性要求實時的場景


### 具體步驟:

- 一、master搭建完畢

參考:http://lovelace.blog.51cto.com/1028430/1440988


- 二、slave搭建完畢

參考:http://lovelace.blog.51cto.com/1028430/1440988


- 三、master配置文件

[root@redis ~]# sed -e '/^$/d;/^#/d' /etc/mongodb.conf 
bind_ip = 192.168.58.30
port = 27017
fork = true
pidfilepath = /var/run/mongodb/mongodb.pid
logpath = /var/log/mongodb/mongodb.log
dbpath =/mydata/data
journal = true
auth = true# 開啓認證模式
master = true                   # 指定該mongodb爲master模式


- 四、slave配置文件

[root@localhost ~]$ sed -e '/^$/d;/^#/d' /etc/mongodb.conf 
bind_ip = 192.168.58.10
port = 27017
fork = true
pidfilepath = /var/run/mongodb/mongodb.pid
logpath = /var/log/mongodb/mongodb.log
dbpath = /mydata/data
journal = true
auth = true   # 開啓認證模式
slave = true   # 指定該mongodb爲slave模式
source = 192.168.58.30:27017   # 指定master服務器


- 五、要點

 - 首先要在master的local數據庫中建立名爲repl的帳戶,並設置密碼

 - 從服務器上和master同樣 建立名爲repl的帳戶,並設置和master上同樣的密碼

 - 而後建立一個全局帳戶(管理帳戶,開啓同步便可)


- 六、前後重啓master\slave服務器,而後觀察日誌狀況(要有幾分鐘等待時間)


- 七、檢查同步狀況

> db.printReplicationInfo()
this is a slave, printing slave replication info.
source:   192.168.58.30:27017
 syncedTo: Fri Jul 18 2014 10:22:31 GMT+0200 (CEST)
 = 22 secs ago (0.01hrs)    # 這個是指延遲時長
>


- 八、手工同步

use admin;
db.runCommand ( { "resync": 1 } )



參考文章:

***/demo_c161_i64169.html



### 後記

  •  mongodb官方已經再也不推薦使用master/salve模式的結構

  • 官方推薦使用replica_set複製集模式

  • 僅供參考

相關文章
相關標籤/搜索