Mongo集羣之主從複製

  上線的系統,數據存儲是重要部位,若一個公司的數據庫部署還是待用單點部署,那若是宕機或是機器被損壞則是多糟糕的事情呀。

 

  

  主從複製的部署方式爲下圖


 

主從複製是一個簡單的數據庫同步備份集羣技術。這種方式簡單靈活,可用於備份、故障恢復,讀擴展。爲了平衡負載,一般通過讀寫分離模式,即主庫寫、從庫讀。


要明確

在數據庫集羣中要明確知道誰是主服務器,主服務器只有一臺

從服務器要知道自己的數據源也就是對於的主服務器是誰

 

這裏我們用兩臺數據庫進行模擬,一個主master,一個從數據庫。Master用來確定主服務器,slave用來控制增服務器


master配置


 配置主服務器數據庫信息

 Master.conf

dbpath=J:\java\mongoSlave\master\database #主服務器地址
port =8888 #主數據庫端口號
bind_ip= 127.0.0.1  #主數據庫所在服務器
master=true#確定爲從服務器


啓動配置文件

mast.bat

mongod --configmast.conf


連接數據庫文件mongConn.bat

mongo 127.0.0.1:8888

依次啓動mast.bat ,mongConn.bat連接數據庫

顯示登錄成功信息



slave配置


  從服務器的配置信息


dbpath=J:\java\mongoSlave\salve1\database #從服務器地址
port =7778 #從數據庫端口號
bind_ip= 127.0.0.1  #從數據庫所在服務器
source=  127.0.0.1:8888 #確定主的數據庫端口號
slave=true#確定爲從服務器


 啓動數據配置

mongod --configslave.conf 


連接數據庫配置

mongo 127.0.0.1:7778

再次啓動從服務器 

 

啓動成功後如下圖


 

從服務器啓動

 


測試添加數據

master主數據庫創建foobar數據庫,添加集合,並集合中有一條數據。

 


 

查看從數據庫,則有主數據庫添加的數據


 

動態擴充從數據庫


使用shell腳本

這個時候我們的添加新數據的配置就稍微有所不同了

dbpath=J:\java\mongoSlave\savle2\database #從服務器地址
port =7779 #從數據庫端口
bind_ip= 127.0.0.1  #從數據庫所在服務器
#source =  127.0.0.1:8888 #確定我的數據庫端口號 刪除了主服務器的地址
slave=true#確定爲從服務器

我們通過shell命令進行配置,打開從服務器數據庫命令窗口

Use local
Db.sources.find()
Db.sources.insert({"host":"127.0.0.1:8888"}})


 

就連接上主服務器,並複製數據庫了

 

小結:


主從數據庫複製,添加數據只能在主數據庫,而從數據庫只可以進行數據的查找。對於大數據量這種情況有些不適應,這時候我們就需要另外一種形式,分片技術,下篇介紹副本集


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章